# Crysis 3 Remastered 1.3.0
# BID: 53EA0196A4AEB260

unsafeCheck: true

MASTER_WRITE:
  # Redirect Dynamic Resolution Timings to read always not from .text
  -
    type: bytes
    main_offset: 0x136A51C
    value_type: uint32
    value: 0xD503201F
  -
    type: bytes
    main_offset: 0x136A548
    value_type: uint32
    value: 
      - 0xD503201F
      - 0xD503201F
# Redirect Dynamic Resolution Timings readings to MAIN+0x3608E00
  -
    type: bytes
    main_offset: 0x136A520
    value_type: uint32
    value:
      - 0xD00114E8
      - 0xBD4E0100
      - 0xBD4E0501
      - 0xBD4E0902
      - 0xD503201F
      - 0xD503201F
  -
    type: bytes
    main_offset: 0x136A554
    value_type: uint32
    value:
      - 0xD00114E9
      - 0x91383129
# Write default values
  -
    type: bytes
    main_offset: 0x3443CA4
    value_type: float
    value: 28.5
  # MAIN + 0x22EA494
  -
    type: bytes
    main_offset: 0x3608E00
    value_type: float
    value: 33.5
  # MAIN + 0x22EAE14
  -
    type: bytes
    main_offset: 0x3608E04
    value_type: float
    value: 30.5
  # MAIN + 0x22EAB58
  -
    type: bytes
    main_offset: 0x3608E08
    value_type: float
    value: 32.5
  # MAIN + 0x22E9E48
  -
    type: bytes
    main_offset: 0x3608E0C
    value_type: float
    value: [31.5, 33.25]
15FPS:
  # sys_MaxFPS
  -
    type: write
    address: [MAIN, 0x34382D8]
    value_type: int32
    value: 15
  # Renderer thread delay (default value)
  -
    type: write
    address: [MAIN, 0x3466BB0]
    value_type: float
    value: 0.022
  -
    type: write
    address: [MAIN, 0x3443CA4]
    value_type: float
    value: 57
  # MAIN + 0x22EA494
  -
    type: write
    address: [MAIN, 0x3608E00]
    value_type: float
    value: 67
  # MAIN + 0x22EAE14
  -
    type: write
    address: [MAIN, 0x3608E04]
    value_type: float
    value: 61
  # MAIN + 0x22EAB58
  -
    type: write
    address: [MAIN, 0x3608E08]
    value_type: float
    value: 65
  # MAIN + 0x22E9E48
  -
    type: write
    address: [MAIN, 0x3608E0C]
    value_type: float
    value: [63, 63]
  -
    type: block
    what: timing
20FPS:
  # sys_MaxFPS
  -
    type: write
    address: [MAIN, 0x34382D8]
    value_type: int32
    value: 20
  # Renderer thread delay (default value)
  -
    type: write
    address: [MAIN, 0x3466BB0]
    value_type: float
    value: 0.022
  -
    type: write
    address: [MAIN, 0x3443CA4]
    value_type: float
    value: 42.75
  # MAIN + 0x22EA494
  -
    type: write
    address: [MAIN, 0x3608E00]
    value_type: float
    value: 50.25
  # MAIN + 0x22EAE14
  -
    type: write
    address: [MAIN, 0x3608E04]
    value_type: float
    value: 45.75
  # MAIN + 0x22EAB58
  -
    type: write
    address: [MAIN, 0x3608E08]
    value_type: float
    value: 48.75
  # MAIN + 0x22E9E48
  -
    type: write
    address: [MAIN, 0x3608E0C]
    value_type: float
    value: [47.25, 47.25]
  -
    type: block
    what: timing
25FPS:
  # sys_MaxFPS
  -
    type: write
    address: [MAIN, 0x34382D8]
    value_type: int32
    value: 25
  # Renderer thread delay (default value)
  -
    type: write
    address: [MAIN, 0x3466BB0]
    value_type: float
    value: 0.022
  -
    type: write
    address: [MAIN, 0x3443CA4]
    value_type: float
    value: 34.2
  # MAIN + 0x22EA494
  -
    type: write
    address: [MAIN, 0x3608E00]
    value_type: float
    value: 40.2
  # MAIN + 0x22EAE14
  -
    type: write
    address: [MAIN, 0x3608E04]
    value_type: float
    value: 36.6
  # MAIN + 0x22EAB58
  -
    type: write
    address: [MAIN, 0x3608E08]
    value_type: float
    value: 39
  # MAIN + 0x22E9E48
  -
    type: write
    address: [MAIN, 0x3608E0C]
    value_type: float
    value: [37.8, 37.8]
  -
    type: block
    what: timing
30FPS:
  # sys_MaxFPS (default value)
  -
    type: write
    address: [MAIN, 0x34382D8]
    value_type: int32
    value: 30
  # Renderer thread delay (default value)
  -
    type: write
    address: [MAIN, 0x3466BB0]
    value_type: float
    value: 0.022
  - # default value
    type: write
    address: [MAIN, 0x3443CA4]
    value_type: float
    value: 28.5
  # MAIN + 0x22EA494 (default value)
  -
    type: write
    address: [MAIN, 0x3608E00]
    value_type: float
    value: 33.5
  # MAIN + 0x22EAE14 (default value)
  -
    type: write
    address: [MAIN, 0x3608E04]
    value_type: float
    value: 30.5
  # MAIN + 0x22EAB58 (default value)
  -
    type: write
    address: [MAIN, 0x3608E08]
    value_type: float
    value: 32.5
  # MAIN + 0x22E9E48 (default value)
  -
    type: write
    address: [MAIN, 0x3608E0C]
    value_type: float
    value: [31.5, 33.25]
35FPS:
  # sys_MaxFPS
  -
    type: write
    address: [MAIN, 0x34382D8]
    value_type: int32
    value: 35
  # Renderer thread delay (default value)
  -
    type: write
    address: [MAIN, 0x3466BB0]
    value_type: float
    value: 0.022
  -
    type: write
    address: [MAIN, 0x3443CA4]
    value_type: float
    value: 24.4286
  # MAIN + 0x22EA494
  -
    type: write
    address: [MAIN, 0x3608E00]
    value_type: float
    value: 28.7143
  # MAIN + 0x22EAE14
  -
    type: write
    address: [MAIN, 0x3608E04]
    value_type: float
    value: 26.1429
  # MAIN + 0x22EAB58
  -
    type: write
    address: [MAIN, 0x3608E08]
    value_type: float
    value: 27.8571
  # MAIN + 0x22E9E48
  -
    type: write
    address: [MAIN, 0x3608E0C]
    value_type: float
    value: [27, 27]
  -
    type: block
    what: timing
40FPS:
  # sys_MaxFPS
  -
    type: write
    address: [MAIN, 0x34382D8]
    value_type: int32
    value: 40
  # Renderer thread delay (default value)
  -
    type: write
    address: [MAIN, 0x3466BB0]
    value_type: float
    value: 0.022
  -
    type: write
    address: [MAIN, 0x3443CA4]
    value_type: float
    value: 21.375
  # MAIN + 0x22EA494
  -
    type: write
    address: [MAIN, 0x3608E00]
    value_type: float
    value: 25.125
  # MAIN + 0x22EAE14
  -
    type: write
    address: [MAIN, 0x3608E04]
    value_type: float
    value: 22.875
  # MAIN + 0x22EAB58
  -
    type: write
    address: [MAIN, 0x3608E08]
    value_type: float
    value: 24.375
  # MAIN + 0x22E9E48
  -
    type: write
    address: [MAIN, 0x3608E0C]
    value_type: float
    value: [23.625, 23.625]
  -
    type: block
    what: timing
45FPS:
  # sys_MaxFPS
  -
    type: write
    address: [MAIN, 0x34382D8]
    value_type: int32
    value: 45
  # Renderer thread delay (default value)
  -
    type: write
    address: [MAIN, 0x3466BB0]
    value_type: float
    value: 0.022
  -
    type: write
    address: [MAIN, 0x3443CA4]
    value_type: float
    value: 19
  # MAIN + 0x22EA494
  -
    type: write
    address: [MAIN, 0x3608E00]
    value_type: float
    value: 22.3333
  # MAIN + 0x22EAE14
  -
    type: write
    address: [MAIN, 0x3608E04]
    value_type: float
    value: 20.3333
  # MAIN + 0x22EAB58
  -
    type: write
    address: [MAIN, 0x3608E08]
    value_type: float
    value: 21.6667
  # MAIN + 0x22E9E48
  -
    type: write
    address: [MAIN, 0x3608E0C]
    value_type: float
    value: [21, 21]
  -
    type: block
    what: timing
50FPS:
  # sys_MaxFPS
  -
    type: write
    address: [MAIN, 0x34382D8]
    value_type: int32
    value: 50
  # Renderer thread delay
  -
    type: write
    address: [MAIN, 0x3466BB0]
    value_type: float
    value: 0.015
  -
    type: write
    address: [MAIN, 0x3443CA4]
    value_type: float
    value: 17.1
  # MAIN + 0x22EA494
  -
    type: write
    address: [MAIN, 0x3608E00]
    value_type: float
    value: 20.1
  # MAIN + 0x22EAE14
  -
    type: write
    address: [MAIN, 0x3608E04]
    value_type: float
    value: 18.3
  # MAIN + 0x22EAB58
  -
    type: write
    address: [MAIN, 0x3608E08]
    value_type: float
    value: 19.5
  # MAIN + 0x22E9E48
  -
    type: write
    address: [MAIN, 0x3608E0C]
    value_type: float
    value: [18.9, 18.9]
  -
    type: block
    what: timing
55FPS:
  # sys_MaxFPS
  -
    type: write
    address: [MAIN, 0x34382D8]
    value_type: int32
    value: 55
  # Renderer thread delay
  -
    type: write
    address: [MAIN, 0x3466BB0]
    value_type: float
    value: 0.015
  -
    type: write
    address: [MAIN, 0x3443CA4]
    value_type: float
    value: 15.5455
  # MAIN + 0x22EA494
  -
    type: write
    address: [MAIN, 0x3608E00]
    value_type: float
    value: 18.2727
  # MAIN + 0x22EAE14
  -
    type: write
    address: [MAIN, 0x3608E04]
    value_type: float
    value: 16.6364
  # MAIN + 0x22EAB58
  -
    type: write
    address: [MAIN, 0x3608E08]
    value_type: float
    value: 17.7273
  # MAIN + 0x22E9E48
  -
    type: write
    address: [MAIN, 0x3608E0C]
    value_type: float
    value: [17.1818, 17.1818]
  -
    type: block
    what: timing
60FPS:
  # sys_MaxFPS
  -
    type: write
    address: [MAIN, 0x34382D8]
    value_type: int32
    value: 60
  # Renderer thread delay
  -
    type: write
    address: [MAIN, 0x3466BB0]
    value_type: float
    value: 0.015
  -
    type: write
    address: [MAIN, 0x3443CA4]
    value_type: float
    value: 14.25
  # MAIN + 0x22EA494
  -
    type: write
    address: [MAIN, 0x3608E00]
    value_type: float
    value: 16.75
  # MAIN + 0x22EAE14
  -
    type: write
    address: [MAIN, 0x3608E04]
    value_type: float
    value: 15
  # MAIN + 0x22EAB58
  -
    type: write
    address: [MAIN, 0x3608E08]
    value_type: float
    value: 15.75
  # MAIN + 0x22E9E48
  -
    type: write
    address: [MAIN, 0x3608E0C]
    value_type: float
    value: [15.5, 15.5]
