# Trails in the Sky 1st Chapter 1.0.5
# BID: E5F70FFCBD0DD378

DECLARATIONS:
  # Lock Max Handheld Resolution to 720p instead of 900p
  -
    type: code
    name: adjustDrResToNativeInHH
    instructions: [
      [cmp, w10, 1280],
      [b.le, :goto1],
      [adrp, x21, 0x730000],
      [ldr, w21, [x21, 0x820]], ## REF: nn::oe::GetOperationMode in nnMain
      [cbnz, w21, :goto1],
      [mov, w10, 1280],
      [mov, w8, 720],
      :goto1, [stp, w10, w8, [x19, 0x10]],
      [ret]
    ]
MASTER_WRITE:
  ## REF: 88 C2 88 1A 6A 22 02 29
  -
    type: asm_a64
    main_offset: 0x2D0444
    instructions: [
      [bl, _adjustDrResToNativeInHH()]
    ]
ALL_FPS:
  # Min Delta
  ## REF: C1 03 80 52 28 4D 28 9B, first ADRP + ADD below it
  -
    type: evaluate_write
    address: [MAIN, 0x730850, 0x2C]
    value_type: uint32
    value: FPS_TARGET
  # Dynamic Resolution
  ## REF: First function in .init_array section, ADRP + ADD + 0x220 (default float: 2)
  ## Adding there 0.9 by myself because game seems to have issues with reaching 60 FPS without it
  -
    type: write
    address: [MAIN, 0x7303D0]
    value_type: float
    value: 0.95