mirror of
https://github.com/Ultra-NX/UltraNX.git
synced 2025-05-10 06:12:41 +00:00
Ultra 2.3|R4+
This commit is contained in:
parent
b546edec8f
commit
b144b70918
SaltySD/plugins/FPSLocker/patches
010009D018A06000
01000AB01F9C0000
01000B202041A000
010023001969A000
010025C0145D4000
01002C101C1AA000
01003990220BE000
01003CC00D0BE000
010044B01E786000
0100453019AA8000
01004A600EC0A000
010050F01DF9C000
010051C0134F8000
0100544020572000
010054E01D878000
010058F01DF8C000
01005AE0209A8000
01005D2016934000
01006AC01F630000
01006BD018B54000
01006C300E9F0000
01006D0017F7A000
010072E01CE0E000
010073601DF1A000
010073C01AF34000
010078D000F88000
01007BE01FCC2000
010084F017B32000
0100853015E86000
010087E01FCD6000
010097F018538000
01009970122E4000
01009FA01FF6C000
0100B2301F4A8000
0100B6C01CDA0000
0100B7C01D480000
0100B9801F872000
0100CE101B698000
0100DC2020C50000
0100E5900F49A000
0100E66006406000
0100E6B01BD3A000
0100EE00205BA000
0100F6701FED4000
0100FBD013AB6000
atmosphere
config/sys-con
switch/DBI
@ -0,0 +1,27 @@
|
||||
# SWORD ART ONLINE Fractured Daydream JAP 1.2.2
|
||||
# BID: 012A8C2C413E79B8
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x8F57748, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x8F92210, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8791EC8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,27 @@
|
||||
# SWORD ART ONLINE Fractured Daydream JAP 1.2.1
|
||||
# BID: 26C1E658E9B5B612
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x8F41748, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x8F7C210, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x877BEC8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,24 @@
|
||||
# Chernobylite 1.2
|
||||
# BID: 657F40EEBD955F31
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x641EAB8, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x644C838, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x5C83700, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
@ -0,0 +1,12 @@
|
||||
# DreadOut Remastered Collection 1.0.2
|
||||
# BID: 725731C74E4CA6A9
|
||||
|
||||
unsafeCheck: false
|
||||
|
||||
ALL_FPS:
|
||||
# REF: DynamicResolution::.cctor
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x3E01640, 0, 0xB8, 8]
|
||||
value_type: double
|
||||
value: [FPS_TARGET, FRAMETIME_TARGET]
|
@ -0,0 +1,27 @@
|
||||
# Session: Skate Sim 1.1.4
|
||||
# BID: F327FFD8C2E85895
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7247868, 0]
|
||||
value_type: float
|
||||
value: ["FRAMETIME_TARGET", "FRAMETIME_TARGET"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7275438, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6A7A668, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,27 @@
|
||||
# GUNDAM BREAKER 4 1.12.0
|
||||
# BID: 0FF5CF27929E07F9
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xA080D48, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xA0AE7E8, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x98B2D28, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,27 @@
|
||||
# GUNDAM BREAKER 4 1.11.0
|
||||
# BID: E82F8A34CCC706E7
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xA03AD48, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xA0687E8, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x986C958, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,27 @@
|
||||
# Expeditions: A Mudrunner Game 1.14.0.0
|
||||
# BID: 08C88691FFA5407C
|
||||
# REF: 01 04 0C 5E 00 10 2E 1E
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
MASTER_WRITE:
|
||||
# Redirect DR frametime target to MAIN+0x36AEF00
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x1718A64
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xD000FCAC # adrp x12, #0x36AE000
|
||||
- 0xBD4F0182 # ldr s2, [x12, #0xf00]
|
||||
# default value
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x36AEF00
|
||||
value_type: float
|
||||
value: 33.3333333333
|
||||
ALL_FPS:
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x36AEF00]
|
||||
value_type: float
|
||||
value: FRAMETIME_TARGET
|
@ -0,0 +1,27 @@
|
||||
# Expeditions: A Mudrunner Game 1.13.0.0
|
||||
# BID: ED20E42E41B58D88
|
||||
# REF: 01 04 0C 5E 00 10 2E 1E
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
MASTER_WRITE:
|
||||
# Redirect DR frametime target to MAIN+0x3628F00
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x16AFA80
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xB000FBCC # adrp x12, #0x3628000
|
||||
- 0xBD4F0182 # ldr s2, [x12, #0xf00]
|
||||
# default value
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x3628F00
|
||||
value_type: float
|
||||
value: 33.3333333333
|
||||
ALL_FPS:
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x3628F00]
|
||||
value_type: float
|
||||
value: FRAMETIME_TARGET
|
@ -0,0 +1,12 @@
|
||||
# ABYSS SEEKER――What Do You See Deep in Abyss 1.1.0.012
|
||||
# BID: C17F9C48EEFAB9DF
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# UnityEngine.Time::fixedDeltaTime
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7B48F40, 0x48]
|
||||
value_type: float
|
||||
value: "1 / FPS_TARGET"
|
@ -0,0 +1,12 @@
|
||||
# ABYSS SEEKER――What Do You See Deep in Abyss 1.2.0.020
|
||||
# BID: FE67FB035271B5E4
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# UnityEngine.Time::fixedDeltaTime
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7B62100, 0x48]
|
||||
value_type: float
|
||||
value: "1 / FPS_TARGET"
|
@ -0,0 +1,60 @@
|
||||
# Amnesia Collection 1.3.0
|
||||
# BID: F6FB99E54347E740
|
||||
# Double buffer is hardcoded line by line, it's hard to make it triple
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
MASTER_WRITE:
|
||||
# Redirect FPS Lock and Dynamic Resolution target values to MAIN + 0x21036F00
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x13281C
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0x90107828 # ADRP X8, 0x21036000
|
||||
- 0xF9478108 # LDR X8, [X8, 0xF00]
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x3E324C
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xF0106288 # ADRP X8, 0x21036000
|
||||
- 0xF9478108 # LDR X8, [X8, 0xF00]
|
||||
# NOP updating Dynamic Resolution target value
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x2D94E8
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xB0106AE9 # ADRP X9, 0x21036000
|
||||
- 0xB94F0929 # LDR W9, [X9, 0xF08]
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x597C5C
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xF01054E9 # ADRP X9, 0x21036000
|
||||
- 0xB94F0929 # LDR W9, [X9, 0xF08]
|
||||
# Default values
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x21036F00
|
||||
value_type: double
|
||||
value: 0.03333333333333333
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x21036F08
|
||||
value_type: float
|
||||
value: 33.333333333333
|
||||
ALL_FPS:
|
||||
# FPS Lock
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x21036F00]
|
||||
value_type: double
|
||||
value: "1 / FPS_TARGET"
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x21036F08]
|
||||
value_type: float
|
||||
value: FRAMETIME_TARGET
|
@ -0,0 +1,21 @@
|
||||
# Big Helmet Heroes 1.0.3
|
||||
# BID: 2CF926BBD5D1AB4D
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7012260, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x5BB0718, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,374 @@
|
||||
# Xenoblade Chronicles X: Definitive Edition 1.0.1
|
||||
# BID: 3F2425864CF22684
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
MASTER_WRITE:
|
||||
# Dynamic speed mod for stuff like UI, lipsync, grass and rain
|
||||
## Redirect nvnQueuePresentTexture call to code cave at MAIN+0x1744D90
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x96ECD8
|
||||
value_type: uint32
|
||||
value: 0x1437582E
|
||||
## Code Cave (save floats for speed factor to MAIN+0x47CD268, frametime as FPS in MAIN+0x47CD26C, frametime in s in MAIN+0x47CD270)
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x1744D90
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xD63F0100
|
||||
- 0x97FFF52B
|
||||
- 0xB0018448
|
||||
- 0xF9413107
|
||||
- 0xF9013100
|
||||
- 0xB5000047
|
||||
- 0x17C8A7CD
|
||||
- 0xCB070000
|
||||
- 0x97FFF528
|
||||
- 0xB0018448
|
||||
- 0xB9430101
|
||||
- 0xEB00003F
|
||||
- 0x5400004B
|
||||
- 0xAA0103E0
|
||||
- 0xD2881541
|
||||
- 0xF2A07F21
|
||||
- 0xEB00003F
|
||||
- 0x5400004C
|
||||
- 0xAA0103E0
|
||||
- 0x9E630000
|
||||
- 0xD00005A0
|
||||
- 0xFD469C01
|
||||
- 0x1E611800
|
||||
- 0xD2807D00
|
||||
- 0x9E630001
|
||||
- 0x1E601821
|
||||
- 0xB0018440
|
||||
- 0x1E624021
|
||||
- 0xBD026C01
|
||||
- 0x1E27D002
|
||||
- 0x1E211842
|
||||
- 0xBD026802
|
||||
- 0xD2807D01
|
||||
- 0x9E630021
|
||||
- 0x1E611801
|
||||
- 0x1E624021
|
||||
- 0xBD027001
|
||||
- 0x17C8A7AE
|
||||
## Default values for code cave
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x47CD268
|
||||
value_type: float
|
||||
value: [1.0, 30.0, 0.033333333333]
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x47CD300
|
||||
value_type: uint32
|
||||
value: 33333333
|
||||
## Function 1 to speed factor // Usage unknown
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x2864C8
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xF0022A35
|
||||
- 0xF9470D00
|
||||
- 0xBD426AAA
|
||||
## Function 2 to speed factor // Weather effects (rain, fog)
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x2892AC
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0x90022A20
|
||||
- 0xF000D828
|
||||
- 0xBD426801
|
||||
## Function 3 to speed factor // Usage unknown
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0xA26D00
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xF001ED20
|
||||
- 0xBD426808
|
||||
## Function 4 to FPS // UI Speed
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0xA2EE60
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xF001ECE0
|
||||
- 0x1E270100
|
||||
- 0xBD426C00
|
||||
## Function 5 to FPS // Usage unknown
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x266E3C
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xF0022B20
|
||||
- 0x1E270100
|
||||
- 0x7940D268
|
||||
- 0xBD426C05
|
||||
## Function 6 to FPS
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x26D6D0
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0x90022B00
|
||||
- 0xBD426C00
|
||||
- 0x1E390000
|
||||
- 0x528000C9
|
||||
- 0x1AC90808
|
||||
## Function 7 to Frametime in s // Gameplay + cutscene speed
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x1E24E4
|
||||
value_type: uint32
|
||||
value: 0xF0022F49
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x1E24F8
|
||||
value_type: uint32
|
||||
value: 0xBD427120
|
||||
# Adjust various elements related to fighting
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x1E8B08
|
||||
value_type: uint32
|
||||
value: 0x145570EB
|
||||
## Code cave
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x1744EB4
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xB0018449
|
||||
- 0xBD426920
|
||||
- 0x17AA8F14
|
||||
## Fix gun speed
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x30F62C
|
||||
value_type: uint32
|
||||
value: 0xD503201F
|
||||
# Redirect DR Target to MAIN+0x47CDF00
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x13B8DF4
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xB001A0A8
|
||||
- 0xBD4F0100
|
||||
## Default value
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x47CDF00
|
||||
value_type: float
|
||||
value: 0.01666666666
|
||||
# Adjust camera speed rotation dynamically
|
||||
## Code cave
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x1744E48
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xB0018448
|
||||
- 0xBD426908
|
||||
- 0x1E200900
|
||||
- 0x1E202008
|
||||
- 0x540000AA
|
||||
- 0x1E214000
|
||||
- 0x1E21C000
|
||||
- 0x1E214000
|
||||
- 0xD65F03C0
|
||||
- 0x1E21C000
|
||||
- 0xD65F03C0
|
||||
## Connect function 1
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x1E1360
|
||||
value_type: uint32
|
||||
value: 0x94558EBA
|
||||
## Connect function 2
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x1E1370
|
||||
value_type: uint32
|
||||
value: 0xAD7D03A1
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x1E137C
|
||||
value_type: uint32
|
||||
value: 0x94558EB3
|
||||
# Force 1s sleep to synchronize audio if cutscene detected
|
||||
## Use function responsible for writing type of cutscene to write its ID if it's 8 or 16 (or 0 for any other) to MAIN+0x47CDFFF
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x2CFEB4
|
||||
value_type: uint32
|
||||
value: 0x1451D3F7
|
||||
### Code cave
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x1744E90
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xB9002279
|
||||
- 0x121D0720
|
||||
- 0xB0018448
|
||||
- 0x340000A0
|
||||
- 0x393FFD00
|
||||
- 0xD2994000
|
||||
- 0xF2A77340
|
||||
- 0x97FFF3D9
|
||||
- 0x17AE2C02
|
||||
## "startEvent" to write uint8 1 to MAIN+0x47CDFFF
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x3ECFD8
|
||||
value_type: uint32
|
||||
value: 0x144D5FBF
|
||||
### Code cave
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x1744ED4
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0x910003FD
|
||||
- 0xB0018448
|
||||
- 0x52800020
|
||||
- 0x393FFD00
|
||||
- 0x17B2A03E
|
||||
## "endEvent" to write uint8 0 to MAIN+0x47CDFFF
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x3ED178
|
||||
value_type: uint32
|
||||
value: 0x144D5F42
|
||||
### Code cave
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x1744E80
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0x910003FD
|
||||
- 0xB0018448
|
||||
- 0x393FFD1F
|
||||
- 0x17B2A0BC
|
||||
# Adjust Field Action gauge bar speed
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0xE5B00
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0x90023740
|
||||
- 0xD000E3E9
|
||||
- 0xBD426808
|
||||
## Fix for FN Site
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0xE5558
|
||||
value_type: uint32
|
||||
value: 0x14597E34
|
||||
### Code cave
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x1744E28
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xBD40D260
|
||||
- 0xB0018440
|
||||
- 0xBD426801
|
||||
- 0x1E210800
|
||||
- 0x17A681C9
|
||||
# Fix long jump when not running
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x23EAD0
|
||||
value_type: uint32
|
||||
value: 0x145418DB
|
||||
## Code cave
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x1744E3C
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0x1E27D00B
|
||||
- 0x1E2B296B
|
||||
- 0x17ABE724
|
||||
# Adjust QTE Speed
|
||||
## Code cave
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x1744E74
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xB0018454
|
||||
- 0xBD426A81
|
||||
- 0x17BA027E
|
||||
## Connect function
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x5C5870
|
||||
value_type: uint32
|
||||
value: 0x1445FD81
|
||||
# Adjust Overdrive counter, Follow Ball speed
|
||||
## Code cave
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x1744EC0
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xB0018440
|
||||
- 0xBD427000
|
||||
- 0xD65F03C0
|
||||
## Connect function
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x67354
|
||||
value_type: uint32
|
||||
value: 0x945B76DB
|
||||
ALL_FPS:
|
||||
# FPS Target
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x47CD300]
|
||||
value_type: uint32
|
||||
value: "FRAMETIME_TARGET * 1000000"
|
||||
# FPS Lock
|
||||
# ref: 00 01 00 b9 2a 01 00 b9 c0 03 5f d6
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x1DA33A0]
|
||||
value_type: int32
|
||||
value: [1, 1]
|
||||
# DR Target
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x47CDF00]
|
||||
value_type: float
|
||||
value: "1 / FPS_TARGET"
|
||||
# Lock game to 30 FPS when complex/prerendered cutscene is played
|
||||
## Adjusts DR target
|
||||
-
|
||||
type: compare
|
||||
compare_address: [MAIN, 0x47CDFFF]
|
||||
compare_value_type: uint8
|
||||
compare_type: "!="
|
||||
compare_value: 0
|
||||
address: [MAIN, 0x47CDF00]
|
||||
value_type: float
|
||||
value: 0.03333333333
|
||||
## Force OS to run at 60 Hz with interval 2
|
||||
-
|
||||
type: compare
|
||||
compare_address: [MAIN, 0x47CDFFF]
|
||||
compare_value_type: uint8
|
||||
compare_type: "!="
|
||||
compare_value: 0
|
||||
address: [MAIN]
|
||||
value_type: refresh_rate
|
||||
value: 30
|
@ -1,27 +0,0 @@
|
||||
# Immortals Fenyx Rising 1.3.4
|
||||
# BID: 70F3F6751D73C644
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
MASTER_WRITE:
|
||||
# Game switches resolution to 13/15 of normal resolution when moving camera with right stick and game cannot handle target FPS
|
||||
# Redirect reading DR time target to MAIN + 0xA7E4F00
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x15A9F10
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xF00491C8
|
||||
- 0xBD4F0101
|
||||
# Default value
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0xA7E4F00
|
||||
value_type: float
|
||||
value: 33.3333333333
|
||||
ALL_FPS:
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xA7E4F00]
|
||||
value_type: float
|
||||
value: FRAMETIME_TARGET
|
@ -0,0 +1,38 @@
|
||||
# REYNATIS (US/EU) 1.0.8
|
||||
# BID: 11D6D6158B566A74
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
MASTER_WRITE:
|
||||
# Redirect reading DR timing in DynamicResolution::LowerResSW() to MAIN + 0x7C0DF00
|
||||
# REF: 01 f0 67 1e
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x391CEEC
|
||||
value_type: uint32
|
||||
value: # 941702B0 818247FD 1020611E 6922482D CD020054 6A6240BD
|
||||
- 0xB0021794 # adrp x20, #0x7c0d000
|
||||
- 0xFD478281 # ldr d1, [x20, #0xf00]
|
||||
- 0x1E612010 # fcmpe d0, d1
|
||||
- 0x2D482269 # ldp s9, s8, [x19, #0x40]
|
||||
- 0x540002CD # b.le #0x391cf54
|
||||
- 0xBD40626A # ldr s10, [x19, #0x60]
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x391CF54
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xFD478681 # ldr d1, [x20, #0xf08]
|
||||
# Default handheld value
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x7C0DF00
|
||||
value_type: double
|
||||
value: [31, 29]
|
||||
ALL_FPS:
|
||||
# Dynamic Resolution Timing
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7C0DF00]
|
||||
value_type: double
|
||||
value: ["0.93 * FRAMETIME_TARGET", "(0.93 * FRAMETIME_TARGET) - 2"]
|
@ -0,0 +1,38 @@
|
||||
# REYNATIS (US/EU) 1.0.9
|
||||
# BID: C59C89CCDF382602
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
MASTER_WRITE:
|
||||
# Redirect reading DR timing in DynamicResolution::LowerResSW() to MAIN + 0x7C0DF00
|
||||
# REF: 01 f0 67 1e
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x391CEEC
|
||||
value_type: uint32
|
||||
value: # 941702B0 818247FD 1020611E 6922482D CD020054 6A6240BD
|
||||
- 0xB0021794 # adrp x20, #0x7c0d000
|
||||
- 0xFD478281 # ldr d1, [x20, #0xf00]
|
||||
- 0x1E612010 # fcmpe d0, d1
|
||||
- 0x2D482269 # ldp s9, s8, [x19, #0x40]
|
||||
- 0x540002CD # b.le #0x391cf54
|
||||
- 0xBD40626A # ldr s10, [x19, #0x60]
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x391CF54
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xFD478681 # ldr d1, [x20, #0xf08]
|
||||
# Default handheld value
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x7C0DF00
|
||||
value_type: double
|
||||
value: [31, 29]
|
||||
ALL_FPS:
|
||||
# Dynamic Resolution Timing
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7C0DF00]
|
||||
value_type: double
|
||||
value: ["0.93 * FRAMETIME_TARGET", "(0.93 * FRAMETIME_TARGET) - 2"]
|
@ -1,7 +1,7 @@
|
||||
# DRAGON BALL Z: KARAKOT + A NEW POWER AWAKENS SET 1.50
|
||||
# BID: 20503FA77FA416B7
|
||||
|
||||
unsafeCheck: true
|
||||
unsafeCheck: false
|
||||
|
||||
ALL_FPS:
|
||||
# Disable bUseFixedFrameRate in cutscenes to unlock framerate
|
||||
|
@ -1,7 +1,7 @@
|
||||
# DRAGON BALL Z: KARAKOT + A NEW POWER AWAKENS SET 1.51
|
||||
# BID: 389E38618E93A5E0
|
||||
|
||||
unsafeCheck: true
|
||||
unsafeCheck: false
|
||||
|
||||
ALL_FPS:
|
||||
# Disable bUseFixedFrameRate in cutscenes to unlock framerate
|
||||
@ -32,4 +32,4 @@ ALL_FPS:
|
||||
type: write
|
||||
address: [MAIN, 0x88C2C08, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
value: [0, 0]
|
||||
|
@ -0,0 +1,35 @@
|
||||
# DRAGON BALL Z: KARAKOT + A NEW POWER AWAKENS SET 1.52
|
||||
# BID: 72F6F8B54276185C
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# Disable bUseFixedFrameRate in cutscenes to unlock framerate
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x945A538, 0x810]
|
||||
value_type: uint32
|
||||
# Default is 0x47 in cutscenes, bUseFixedFrameRate |= 0x40
|
||||
# By writing 7 we are making sure that other flags are maintained:
|
||||
# bAllowMultiThreadedAnimationUpdate |= 4
|
||||
# bOptimizeAnimBlueprintMemberVariableAccess |= 2
|
||||
# bCanBlueprintsTickByDefault |= 1
|
||||
value: 7
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x9425478, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x945ADE8, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x88C6FD8, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
@ -0,0 +1,13 @@
|
||||
# Atelier Yumia: The Alchemist of Memories & the Envisioned Land 1.0.1
|
||||
# BID: A947DDE7826A3562
|
||||
|
||||
unsafeCheck: false
|
||||
|
||||
ALL_FPS:
|
||||
# Disable FPS Lock
|
||||
# REF: 88 46 40 F9 03 11 40 F9, first ADRP+LDR above it
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x2E8AB00, 0xE0, 0x284]
|
||||
value_type: uint8
|
||||
value: 0
|
@ -0,0 +1,12 @@
|
||||
# EA SPORTS FC 25 1.78.24C5
|
||||
# BID: 641E15F899C4A057
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# Internal FPS Lock
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xCE66A68, 8]
|
||||
value_type: double
|
||||
value: FPS_TARGET
|
@ -0,0 +1,12 @@
|
||||
# EA SPORTS FC 25 1.78.9aa6
|
||||
# BID: 7E587D3ADCFD66BC
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# Internal FPS Lock
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xCE6FA68, 8]
|
||||
value_type: double
|
||||
value: FPS_TARGET
|
@ -0,0 +1,12 @@
|
||||
# EA SPORTS FC 25 1.77.4815
|
||||
# BID: B8264CDBC1CBFFCF
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# Internal FPS Lock
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xCE3CA68, 8]
|
||||
value_type: double
|
||||
value: FPS_TARGET
|
@ -0,0 +1,12 @@
|
||||
# EA SPORTS FC 25 1.76.fc6a
|
||||
# BID: C953D6F477604662
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# Internal FPS Lock
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xCE3BA68, 8]
|
||||
value_type: double
|
||||
value: FPS_TARGET
|
@ -0,0 +1,27 @@
|
||||
# Funko Fusion 2.6.2
|
||||
# BID: BDB53001D5CAD0AE
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x752BA68, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x8507078, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x8534F60, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,75 @@
|
||||
# WARRIORS: Abyss 1.1.0
|
||||
# BID: 50C9028B61A0BB7F
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
MASTER_WRITE:
|
||||
# REF: 09 49 A8 52 21 01 27 1E 00 20 21 1E
|
||||
# Use FPS Target instead of vsync value for Dynamic Resolution max delta
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x6400D0
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0x90004441 # ADRP X1, 0xEC8000
|
||||
- 0xBD44C021 # LDR S1, [X1, 0x4C0]
|
||||
# Redirect DR Targets to MAIN+0x1359F00
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x640174
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xB00068C9 # ADRP X9, 0x1359000
|
||||
- 0xBD4F0121 # LDR S1, [X9, 0xF00]
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x640184
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xB00068C9 # ADRP X9, 0x1359000
|
||||
- 0xBD4F0521 # LDR S1, [X9, 0xF04]
|
||||
# Default values
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x1359F00
|
||||
value_type: float
|
||||
value: [50, 40]
|
||||
ALL_FPS:
|
||||
# REF: 00 00 F0 42 78 00 00 00 00 00 F0 42 04 00 00 00
|
||||
# FPS Lock
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xEC84CC]
|
||||
value_type: uint32
|
||||
value: "120 / FPS_LOCK_TARGET"
|
||||
# Prevent from setting it as 0, otherwise game crashes
|
||||
-
|
||||
type: evaluate_compare
|
||||
compare_address: [MAIN, 0xEC84CC]
|
||||
compare_type: "=="
|
||||
compare_value_type: uint32
|
||||
compare_value: 0
|
||||
address: [MAIN, 0xEC84CC]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# Others
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xEC84C0]
|
||||
value_type: float
|
||||
value: "FPS_TARGET"
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xEC84C4]
|
||||
value_type: uint32
|
||||
value: "FPS_TARGET"
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xEC84C8]
|
||||
value_type: float
|
||||
value: "FPS_TARGET"
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x1359F00]
|
||||
value_type: float
|
||||
value: ["1.5 * FRAMETIME_TARGET", "1.2 * FRAMETIME_TARGET"]
|
@ -0,0 +1,27 @@
|
||||
# Ghostbusters: Spirits Unleashed Ecto Edition 1.11.0
|
||||
# BID: 49F6F257348A42A1
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xBBFBF70, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xBC21B48, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xB42B9B8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,24 @@
|
||||
# Sword of the Necromancer: Resurrection 1.0.4
|
||||
# BID: 7C37B073B19F3CCF
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7577E00, 0]
|
||||
value_type: float
|
||||
value: ["0.9 * FRAMETIME_TARGET", "0.9 * FRAMETIME_TARGET"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x75AC298, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6DD3CB8, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
@ -0,0 +1,24 @@
|
||||
# Sword of the Necromancer: Resurrection 1.0.3
|
||||
# BID: B70551B5A2D0F15F
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7573E00, 0]
|
||||
value_type: float
|
||||
value: ["0.9 * FRAMETIME_TARGET", "0.9 * FRAMETIME_TARGET"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x75A8298, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6DCFCB8, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
@ -0,0 +1,27 @@
|
||||
# The Plucky Squire 1.0.7
|
||||
# BID: AFDEB128252898AC
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6C04668, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6C32348, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6434CE8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -1,4 +1,4 @@
|
||||
# DRAGON QUEST XI S: Echoes of an Elusive Age - Definitive Edition 1.0.3
|
||||
# DRAGON QUEST XI S: Echoes of an Elusive Age - Definitive Edition 1.0.3/1.0.4
|
||||
# BID: 1719AABFA5EAE42B
|
||||
|
||||
unsafeCheck: true
|
||||
@ -34,6 +34,12 @@ ALL_FPS:
|
||||
address: [MAIN, 0x8501C48, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7879500, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
|
@ -0,0 +1,21 @@
|
||||
# Mario & Luigi: Brothership 1.0.1
|
||||
# BID: BF0607AC795B593A
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x651F708, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6D1A498, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,27 @@
|
||||
# F1 Manager 2024 1.11
|
||||
# BID: 85F60F87D19B5270
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7FE9A28, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x8023AA0, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7826AA8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,48 @@
|
||||
# Amber Isle 1.0.2
|
||||
# BID: D36459588F85315D
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
MASTER_WRITE:
|
||||
# Redirect all hardcoded doubles in DynamicResolutionHandler::Update to MAIN+0x9093F00
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x21FE24C
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xB00374A8 # adrp x8, #0x9093000
|
||||
- 0xFD478100 # ldr d0, [x8, #0xf00]
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x21FE1F0
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xB00374A8 # adrp x8, #0x9093000
|
||||
- 0xFD478101 # ldr d1, [x8, #0xf00]
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x21FE360
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xB00374A8 # adrp x8, #0x9093000
|
||||
- 0xFD478100 # ldr d0, [x8, #0xf00]
|
||||
- 0x1E614000 # fneg d0, d0
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x21FE5E4
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xB00374A8 # adrp x8, #0x9093000
|
||||
- 0xFD478100 # ldr d0, [x8, #0xf00]
|
||||
# default value
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x9093F00
|
||||
value_type: double
|
||||
value: 25.333333333333336
|
||||
ALL_FPS:
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x9093F00]
|
||||
value_type: double
|
||||
value: "FRAMETIME_TARGET * 0.76"
|
@ -0,0 +1,27 @@
|
||||
# LEGO Horizon Adventures 1.4.0
|
||||
# BID: C6F56735E3837278
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x914A990, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xA119148, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xA153AF0, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,47 @@
|
||||
# DRAGON BALL XENOVERSE 2 FOR NINTENDO SWITCH 1.23.03
|
||||
# BID: 8263E738648A23E3
|
||||
# Double buffer is hardcoded in class, getting triple buffer is hard.
|
||||
# Some graphical effects like aura have wrong speed outside of 15, 20, 30 and 60 FPS
|
||||
|
||||
unsafeCheck: false
|
||||
|
||||
ALL_FPS:
|
||||
# Search those in Edizon by searching for 1/60 in title menu, then 1/30 when FPS lock is applied.
|
||||
# FPS Lock
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4AE9D78, 0x698]
|
||||
value_type: float
|
||||
value: 0.0
|
||||
# Unknown
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4AE9D78, 0x6A4]
|
||||
value_type: float
|
||||
value: 0.0
|
||||
# Game Battle Speed Factor
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x4AE9D78, 0x6B0]
|
||||
value_type: uint32
|
||||
value: VSYNC_TARGET
|
||||
# Cutscenes Speed Factor
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x4AE9D78, 0x6B4]
|
||||
value_type: uint32
|
||||
value: VSYNC_TARGET
|
||||
# Target Speed
|
||||
# REF: E9 03 00 32 09 01 00 39 C0 03 5F D6, first result, LDR instruction
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x24151D0]
|
||||
value_type: float
|
||||
value: "(1 / FPS_TARGET) * VSYNC_TARGET"
|
||||
# Dynamic Resolution FPS Target
|
||||
# REF: 16 4E A8 52 F7 03 60 B2, first ADRP + LDR above it
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x23F53C0, 0x1844]
|
||||
value_type: float
|
||||
value: "FPS_TARGET"
|
@ -0,0 +1,24 @@
|
||||
# Achilles Legends Untold 1.0.1
|
||||
# BID: BDDD7E8FA07C8C75
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6967B08, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6995508, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6199738, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
@ -10,6 +10,12 @@ ALL_FPS:
|
||||
address: [MAIN, 0xB4E7838, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAD15960, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
|
@ -0,0 +1,28 @@
|
||||
# No Man's Sky 5.5.2
|
||||
# BID: 63C5A645F3E5985A
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
MASTER_WRITE:
|
||||
# Redirect DR frametime target to MAIN+0x4B90FF0
|
||||
# REF: 08 4E A8 52 00 01 27 1E 48 8F A8 52, ADRP + ADD + LDR above that
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x2037260
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xB0015AC9 # adrp x9, #0x4b90000
|
||||
- 0xBD4FF120 # ldr s0, [x9, #0xff0]
|
||||
- 0xD503201F # NOP
|
||||
# default value
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x4B90FF0
|
||||
value_type: float
|
||||
value: 30
|
||||
ALL_FPS:
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x4B90FF0]
|
||||
value_type: float
|
||||
value: FPS_TARGET
|
@ -0,0 +1,28 @@
|
||||
# No Man's Sky 5.5.0
|
||||
# BID: 909C5FD598A092B1
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
MASTER_WRITE:
|
||||
# Redirect DR frametime target to MAIN+0x4B8AFF0
|
||||
# REF: 08 4E A8 52 00 01 27 1E 48 8F A8 52, ADRP + ADD + LDR above that
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x2032F20
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0x90015AC9 # adrp x9, #0x4b8a000
|
||||
- 0xBD4FF120 # ldr s0, [x9, #0xff0]
|
||||
- 0xD503201F # NOP
|
||||
# default value
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x4B8AFF0
|
||||
value_type: float
|
||||
value: 30
|
||||
ALL_FPS:
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x4B8AFF0]
|
||||
value_type: float
|
||||
value: FPS_TARGET
|
@ -0,0 +1,28 @@
|
||||
# No Man's Sky 5.5.5
|
||||
# BID: BC6CA2DEA3306522
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
MASTER_WRITE:
|
||||
# Redirect DR frametime target to MAIN+0x4B92FF0
|
||||
# REF: 08 4E A8 52 00 01 27 1E 48 8F A8 52, ADRP + ADD + LDR above that
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x20391B0
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xB0015AC9 # adrp x9, #0x4b92000
|
||||
- 0xBD4FF120 # ldr s0, [x9, #0xff0]
|
||||
- 0xD503201F # NOP
|
||||
# default value
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x4B92FF0
|
||||
value_type: float
|
||||
value: 30
|
||||
ALL_FPS:
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x4B92FF0]
|
||||
value_type: float
|
||||
value: FPS_TARGET
|
@ -0,0 +1,28 @@
|
||||
# No Man's Sky 5.5.8
|
||||
# BID: FB1995474546F7C0
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
MASTER_WRITE:
|
||||
# Redirect DR frametime target to MAIN+0x4B90FF0
|
||||
# REF: 08 4E A8 52 00 01 27 1E 48 8F A8 52, ADRP + ADD + LDR above that
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x201C7F8
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0x90015BA9 # adrp x9, #0x4b90000
|
||||
- 0xBD4FF120 # ldr s0, [x9, #0xff0]
|
||||
- 0xD503201F # NOP
|
||||
# default value
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x4B90FF0
|
||||
value_type: float
|
||||
value: 30
|
||||
ALL_FPS:
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x4B90FF0]
|
||||
value_type: float
|
||||
value: FPS_TARGET
|
@ -0,0 +1,12 @@
|
||||
# Cuisineer 2.0.27
|
||||
# BID: ACD959FBAECADE00
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# UnityEngine.Time::fixedDeltaTime
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x525D5A0, 0x48]
|
||||
value_type: float
|
||||
value: "1 / FPS_TARGET"
|
@ -0,0 +1,12 @@
|
||||
# DAVE THE DIVER 1.0.3.978
|
||||
# BID: 500A59C7C5A7C1E8
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# UnityEngine.Time::fixedDeltaTime
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x97367C0, 0x48]
|
||||
value_type: float
|
||||
value: "1 / FPS_TARGET"
|
@ -0,0 +1,27 @@
|
||||
# Borderlands 3 1.0.3
|
||||
# BID: AFDEB128252898AC
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xDD56640, 0]
|
||||
value_type: float
|
||||
value: ["0.969 * FRAMETIME_TARGET", "0.969 * FRAMETIME_TARGET"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xDD857C0, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xD0C52B8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,27 @@
|
||||
# Nikoderiko: The Magical World 1.0.2
|
||||
# BID: 6CFA2609A2D00FA5
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x64D9928, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x65075E8, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x5D08BF8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,21 @@
|
||||
# Life is Strange: Double Exposure 1.0.3
|
||||
# BID: BBEA8745A7893750
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6948E90, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x79562D8, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,21 @@
|
||||
# Garden Witch Life 1.0.5
|
||||
# BID: 13824B290C931FE5
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x863C140, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7644978, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
27
SaltySD/plugins/FPSLocker/patches/0100B7C01D480000/0100B7C01D480000/E8EA74BE6221F2E4.yaml
Normal file
27
SaltySD/plugins/FPSLocker/patches/0100B7C01D480000/0100B7C01D480000/E8EA74BE6221F2E4.yaml
Normal file
@ -0,0 +1,27 @@
|
||||
# Boti: Byteland Overclocked 1.0.1
|
||||
# BID: E8EA74BE6221F2E4
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x72C9718, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x8286DC8, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x82BF6D0, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,27 @@
|
||||
# Boti: Byteland Overclocked 1.0.2
|
||||
# BID: 567A8410AE613885
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x72D4718, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x8291E38, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x82CB9E0, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,43 @@
|
||||
# FAIRY TAIL 2 1.4.1
|
||||
# BID: A588F7BB864AAD5F
|
||||
|
||||
unsafeCheck: false
|
||||
|
||||
MASTER_WRITE:
|
||||
# Redirect Dynamic Resolution target to MAIN+0x2C53F00
|
||||
# REF: 6AC88252
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x138238C
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xB000C68A # ADRP X10, 0x2c53000
|
||||
- 0xB94F014A # LDR W10, [X10, 0xF00]
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x13823A8
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xB000C68A # ADRP X10, 0x2c53000
|
||||
- 0xB94F054A # LDR W10, [X10, 0xF04]
|
||||
# Default values
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x2C53F00
|
||||
value_type: float
|
||||
value: [0.043478, 0.037037]
|
||||
ALL_FPS:
|
||||
# FPS Lock
|
||||
# REF: 1F 00 00 71 C8 03 80 52, first ADRP+ADD above it
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x2C0B558, 0x170, 0x18C]
|
||||
value_type: int32
|
||||
value: FPS_LOCK_TARGET
|
||||
# Dynamic Resolution Target
|
||||
# Game proritizes resolution over framerate, I changed it to prefer framerate
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x2C53F00]
|
||||
value_type: float
|
||||
value: ["1 / FPS_TARGET", "1 / (FPS_TARGET + 5)"]
|
@ -0,0 +1,27 @@
|
||||
# Monster Jam Showdown 1.0.7
|
||||
# BID: 0CE2AE41BCCADC72
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xAC39688, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xAC74030, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x9C78970, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,27 @@
|
||||
# Monster Jam Showdown 1.0.8
|
||||
# BID: 1CE1386EAF0C5EF5
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xAC3B688, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xAC76030, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x9C7A970, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,12 @@
|
||||
# Call of Sentinels 1.0.1.7
|
||||
# BID: 4A64A3713EEA60CA
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# UnityEngine.Time::fixedDeltaTime
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6CA3940, 0x48]
|
||||
value_type: float
|
||||
value: "1 / FPS_TARGET"
|
@ -1,4 +1,4 @@
|
||||
# Othercide 1.3.0.5
|
||||
# Othercide 1.3.0.5/1.3.1.0
|
||||
# BID: A8BA2A8F93AAE647
|
||||
|
||||
unsafeCheck: true
|
||||
|
@ -0,0 +1,15 @@
|
||||
# OCTOPATH TRAVELER 1.0.4 JPN
|
||||
# BID: AA4277E6A92FEBE6
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x50B5698, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,14 @@
|
||||
# Card-en-Ciel 1.3.1
|
||||
# BID: 6A2E388EB364D4ED
|
||||
# Buffers are hardcoded line by line and put into fixed size heap allocation, so getting triple buffer requires effort
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# Internal FPS Lock
|
||||
# REF: look at nn::os::SleepThread() called in nnMain()
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x2165248, 0x5C]
|
||||
value_type: float
|
||||
value: 1 / FPS_LOCK_TARGET
|
@ -0,0 +1,14 @@
|
||||
# Card-en-Ciel 1.4.1
|
||||
# BID: CB3C7EF8E279A22D
|
||||
# Buffers are hardcoded line by line and put into fixed size heap allocation, so getting triple buffer requires effort
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# Internal FPS Lock
|
||||
# REF: look at nn::os::SleepThread() called in nnMain()
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x219C248, 0x5C]
|
||||
value_type: float
|
||||
value: 1 / FPS_LOCK_TARGET
|
@ -0,0 +1,12 @@
|
||||
# HEAVEN SEEKER ――The Savior of This Cruel World 1.0.5.130
|
||||
# BID: 21B3E4EA75F16551
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# UnityEngine.Time::fixedDeltaTime (default is 0.03268)
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x97D4478, 0x48]
|
||||
value_type: float
|
||||
value: "(1 / FPS_TARGET) / 1.02"
|
@ -0,0 +1,12 @@
|
||||
# HEAVEN SEEKER ――The Savior of This Cruel World 1.0.5.134
|
||||
# BID: AA3EDDE660D630AD
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# UnityEngine.Time::fixedDeltaTime (default is 0.03268)
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x9826738, 0x48]
|
||||
value_type: float
|
||||
value: "(1 / FPS_TARGET) / 1.02"
|
@ -0,0 +1,12 @@
|
||||
# The Legend of Heroes: Trails through Daybreak II 1.0.1
|
||||
# BID: 7CE83658C7B53BB6
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# REF: 88 01 80 52 C1 03 80 52 28 4D 28 9B 29 00 80 52, first ADRP + ADD below it
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6E2998, 0x34]
|
||||
value_type: uint32
|
||||
value: FPS_TARGET
|
@ -0,0 +1,27 @@
|
||||
# SnowRunner 1.0.36
|
||||
# BID: 038858A1EC679156
|
||||
# Just search for 0x42055555
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
MASTER_WRITE:
|
||||
# Redirect DR frametime target to MAIN+0x3040F00
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x18F8174
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0x9000BA4A # adrp x10, #0x3040000
|
||||
- 0xBD4F0142 # ldr s2, [x10, #0xf00]
|
||||
# default value
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x3040F00
|
||||
value_type: float
|
||||
value: 33.3333333333
|
||||
ALL_FPS:
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x3040F00]
|
||||
value_type: float
|
||||
value: FRAMETIME_TARGET
|
@ -0,0 +1,27 @@
|
||||
# SnowRunner 1.0.37
|
||||
# BID: CD9E844E29E8CA80
|
||||
# Just search for 0x42055555
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
MASTER_WRITE:
|
||||
# Redirect DR frametime target to MAIN+0x3090F00
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x192A254
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xD000BB2A # adrp x10, #0x3090000
|
||||
- 0xBD4F0142 # ldr s2, [x10, #0xf00]
|
||||
# default value
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x3090F00
|
||||
value_type: float
|
||||
value: 33.3333333333
|
||||
ALL_FPS:
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x3090F00]
|
||||
value_type: float
|
||||
value: FRAMETIME_TARGET
|
Binary file not shown.
Binary file not shown.
@ -41,7 +41,7 @@ auto_add_controller=1
|
||||
|
||||
; Default configuration is used as base of configuration for all controller (Do not change it)
|
||||
; If you want to change the default configuration, it's better to change the configuration of the controller you want to use
|
||||
;controller_type might be one of these ones: prowithbattery, tarragon, snes, pokeballplus, gamecube, pro, 3rdpartypro, n64, sega, nes, famicom
|
||||
;controller_type might be one of these ones: prowithbattery, tarragon, snes, pokeballplus, gamecube (Not supported since 19.0.1), pro, 3rdpartypro, n64, sega, nes, famicom
|
||||
|
||||
[default]
|
||||
driver=
|
||||
@ -561,12 +561,39 @@ r=6
|
||||
minus=7
|
||||
plus=8
|
||||
|
||||
[0d22-0c31] ; MSI GC30 V2 USB cable
|
||||
b=2
|
||||
a=3
|
||||
x=4
|
||||
y=1
|
||||
l=5
|
||||
r=6
|
||||
zl=7
|
||||
zr=8
|
||||
minus=9
|
||||
plus=10
|
||||
lstick_click=11
|
||||
rstick_click=12
|
||||
|
||||
[2dc8-3105] ;8BitDo Wireless Bluetooth USB Adapter 2 (Dinput mode)
|
||||
B=1
|
||||
A=2
|
||||
Y=4
|
||||
X=5
|
||||
L=7
|
||||
R=8
|
||||
ZL=9
|
||||
ZR=10
|
||||
minus=11
|
||||
plus=12
|
||||
home=13
|
||||
|
||||
; ***************************************
|
||||
; N64 / GC adapter
|
||||
; ***************************************
|
||||
|
||||
[0601-0101] ;GC controller adapter HS-WU025 (pc mode)
|
||||
controller_type=gamecube
|
||||
;controller_type=gamecube ;Not supported since 19.0.1
|
||||
b=3
|
||||
a=2
|
||||
x=1
|
||||
@ -579,7 +606,7 @@ dpad_up=13
|
||||
dpad_right=14
|
||||
|
||||
[0079-1846] ;GC controller adapter BX-W201C (pc mode)
|
||||
controller_type=gamecube
|
||||
;controller_type=gamecube ;Not supported since 19.0.1
|
||||
b=3
|
||||
a=2
|
||||
x=1
|
||||
@ -954,6 +981,9 @@ profile=xbox360w
|
||||
; XBOX360 controllers
|
||||
; ***************************************
|
||||
|
||||
[0d22-0c33] ; MSI GC30 V2 2.4G
|
||||
profile=xbox360
|
||||
|
||||
[0079-18d4] ;GPD Win 2 X-Box Controller
|
||||
profile=xbox360
|
||||
|
||||
|
Binary file not shown.
@ -54,12 +54,14 @@ ValidateSSL=false
|
||||
DBIUpdateURL=https://github.com/Ultra-NX/Ultra-Resources/releases/download/Homebrews/DBI.RU.zip
|
||||
; Dump generated forwarders to configured dump location
|
||||
DumpForwarders=false
|
||||
; Do not show folder.jpg in file browser
|
||||
HideFolderJpg=true
|
||||
|
||||
[Filtering]
|
||||
; Apply filebrowser filter to directories
|
||||
FilterFolders=true
|
||||
; Inherit filter in subfolders
|
||||
InheritFilter=true
|
||||
InheritFilter=false
|
||||
|
||||
; Visibility of main menu items
|
||||
[MainMenu]
|
||||
@ -136,7 +138,7 @@ SingleURB=false
|
||||
; MTP transmission buffer size in KB
|
||||
BufferSize=512
|
||||
; MTP transmission timeout in ms
|
||||
NewBufferTimeout=2500
|
||||
NewBufferTimeout=2000
|
||||
; Send Object_Removed event for files copied to Install storages
|
||||
AutoremoveInstalled=true
|
||||
|
||||
@ -156,13 +158,15 @@ MaxPassivePort=40100
|
||||
CDIR=false
|
||||
; Force UTF8 usage
|
||||
ForceUtf8=true
|
||||
; Use WaitAll option in recv. Can improve speed, incompatible with some clients.
|
||||
UseWaitAll=true
|
||||
|
||||
;HTTP options
|
||||
[HTTP]
|
||||
; Use parallel downloading
|
||||
UseParallelDownloading=true
|
||||
; Access port
|
||||
Port=1234
|
||||
; Data read timeout (seconds)
|
||||
Timeout=3
|
||||
|
||||
; Access point options
|
||||
[Access point]
|
||||
@ -198,7 +202,7 @@ Orientation=0
|
||||
; Network install sources
|
||||
[Network sources]
|
||||
; <display name>=<type>|<URL>
|
||||
notUltraNX=ApacheHTTP|https://tinfoil.ultranx.ru/dbi/
|
||||
notUltraNX=ApacheHTTP|https://dbi.ultranx.ru/
|
||||
;NSP Indexer=URLList|http://192.168.1.47/nspindexer/index.php?DBI
|
||||
;Home server=ApacheHTTP|http://192.168.1.47/Nintendo/Switch/
|
||||
;WebDAV test=WebDAV|http://user:password@192.168.1.47/webdav/
|
||||
|
4
switch/DBI/dbi.locations
Normal file
4
switch/DBI/dbi.locations
Normal file
@ -0,0 +1,4 @@
|
||||
[Location_0]
|
||||
Name=notUltraNX
|
||||
Type=ApacheHTTP
|
||||
URL=https://dbi.ultranx.ru/
|
Loading…
x
Reference in New Issue
Block a user