# Crysis 2 Remastered 1.3.0
# BID: B3967105033ACC08

unsafeCheck: true

MASTER_WRITE:
  # Redirect Dynamic Resolution Timings to read always not from .text
  -
    type: bytes
    main_offset: 0x2EE9A90
    value_type: uint32
    value: 0x1E204020
  -
    type: bytes
    main_offset: 0x2EE9AA8
    value_type: uint32
    value: 0x1E221C42
# Redirect Dynamic Resolution Timings readings to MAIN+0x453B300
  -
    type: bytes
    main_offset: 0x2EE9A38
    value_type: uint32
    value: 0xD000B28B
  -
    type: bytes
    main_offset: 0x2EE9A40
    value_type: uint32
    value: 
      - 0xD000B28C
      - 0xBD430161
      - 0xBD430582
  -
    type: bytes
    main_offset: 0x2EE9A50
    value_type: uint32
    value: 
      - 0xD000B28D
      - 0x910C21AD
  -
    type: bytes
    main_offset: 0x2EE9A7C
    value_type: uint32
    value: 
      - 0xD000B289
      - 0x910C4129
      - 0xD000B28B
      - 0x910C616B
# Write default values
  # MAIN + 0x333FAFC
  -
    type: bytes
    main_offset: 0x453B300
    value_type: float
    value: 31.5
  # MAIN + 0x333F844
  -
    type: bytes
    main_offset: 0x453B304
    value_type: float
    value: 32.5
  # MAIN + 0x333E360
  -
    type: bytes
    main_offset: 0x453B308
    value_type: float
    value: [33, 35]
  # MAIN + 0x333E258
  -
    type: bytes
    main_offset: 0x453B310
    value_type: float
    value: [32, 33.5]
  # MAIN + 0x333E9F8
  -
    type: bytes
    main_offset: 0x453B318
    value_type: float
    value: [28.75, 29.75]
ALL_FPS:
  # sys_MaxFPS
  -
    type: evaluate_write
    address: [MAIN, 0x43E0B14]
    value_type: int32
    value: FPS_LOCK_TARGET
  # Renderer thread delay
  -
    type: write
    address: [MAIN, 0x444A0D8]
    value_type: float
    value: 0.01
  # MAIN + 0x333FAFC
  -
    type: evaluate_write
    address: [MAIN, 0x453B300]
    value_type: float
    value: "0.945 * FRAMETIME_TARGET"
  # MAIN + 0x333F844
  -
    type: evaluate_write
    address: [MAIN, 0x453B304]
    value_type: float
    value: "0.975 * FRAMETIME_TARGET"
  # MAIN + 0x333E360
  -
    type: evaluate_write
    address: [MAIN, 0x453B308]
    value_type: float
    value: ["0.99 * FRAMETIME_TARGET", "0.99 * FRAMETIME_TARGET"]
  # MAIN + 0x333E258
  -
    type: evaluate_write
    address: [MAIN, 0x453B310]
    value_type: float
    value: ["0.96 * FRAMETIME_TARGET", "0.96 * FRAMETIME_TARGET"]
  # MAIN + 0x333E9F8
  -
    type: evaluate_write
    address: [MAIN, 0x453B318]
    value_type: float
    value: ["0.8625 * FRAMETIME_TARGET", "0.8625 * FRAMETIME_TARGET"]
  -
    type: block
    what: timing
