# Dark Souls Remastered 1.0.3
# BID: DF3766A2BB651A3E

DECLARATIONS:
  -
    type: variable
    name: fps_target
    value_type: double
    default_value: 30
    evaluate: FPS_LOCK_TARGET
  -
    type: variable
    name: game_speed
    value_type: float
    default_value: 0.0333333333
    evaluate: "1/FPS_TARGET"

MASTER_WRITE:
  # Redirect FPS target to MAIN+0x55E9A00
  -
    type: asm_a64
    main_offset: 0x706FA4
    instructions: [
      [adrp, x1, $fps_target]
    ]
  -
    type: asm_a64
    main_offset: 0x7070B0
    instructions: [
      [ldr, d0, [x1, $fps_target]]
    ]
  # Redirect game speed to MAIN+0x55E9A08
  -
    type: asm_a64
    main_offset: 0x667900
    instructions: [
      [adrp, x8, $game_speed],
      [ldr, s8, [x8, $game_speed]]
    ]
ALL_FPS:
  -
    type: compare
    compare_address: [MAIN, 0x4543788, 0x470]
    compare_address_unsafe: true
    compare_type: "=="
    compare_value_type: int32
    compare_value: 1
    address: [VARIABLE, fps_target]
    value: 30
  -
    type: compare
    compare_address: [MAIN, 0x4543788, 0x470]
    compare_address_unsafe: true
    compare_type: "=="
    compare_value_type: int32
    compare_value: 1
    address: [VARIABLE, game_speed]
    value: 0.0333333333
  -
    type: block
    what: timing
