mirror of
https://github.com/Ultra-NX/UltraNX.git
synced 2025-04-18 08:34:05 +00:00
Ultra 2.3|R2
This commit is contained in:
parent
73b0904544
commit
e1812455bb
README.mdREADME_ENG.md
SaltySD
exceptions.txtsaltysd_bootstrap.elfsaltysd_bootstrap32_3k.elfsaltysd_bootstrap32_5k.elfsaltysd_core.elfsaltysd_core32.elf
plugins/FPSLocker/patches
010000A017F96000
010008E01E32A000
01000BB00E9D2000
010019B00BE72000
010019C00E9CC000
01001BE01908C000
010025C0145D4000
010027B01E32C000
010037A01F96C000
01003E601E324000
01004A001E32E000
010054E01D878000
01005D2016934000
010069C01AB82000
01006BD018B54000
01006D0017F7A000
010070A00E9CE000
010073C01AF34000
010076F00E9C8000
0100770008DD8000
0100853015E86000
010085500130A000
01008E401E6D0000
0100926016012000
010097F018538000
0100A9400C9C2000
0100AA80194B0000
0100B0500FE4E000
0100BF500207C000
0100BFE00E9CA000
0100C3800049C000
0100C9801FEE6000
0100CAF00B744000
0100D1501ABAE000
0100D3801E6CE000
0100D680194B2000
0100DA201EBF8000
0100E5600D446000
0100E6900A5A8000
0100E6B01BD3A000
0100E9001A94C000
0100E95004038000
0100F3400332C000
atmosphere
config
status-monitor
ultrahand/lang
switch
24
README.md
24
README.md
@ -74,7 +74,7 @@
|
||||
* [ThemezerNX](https://github.com/suchmememanyskill/themezer-nx) + [NXThemes Installer](https://github.com/exelix11/SwitchThemeInjector) + [Theme Patches](https://github.com/exelix11/theme-patches) - Поиск и установка тем на свитч.
|
||||
* [ReverseNX Tool](https://github.com/masagrator/ReverseNX-Tool) - Программа для управления ReverseNX.
|
||||
* [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - Программа для сброса контроллера батареи. Не используйте просто так!
|
||||
* **`MemToolkitNX`** - Бенчмарк и Тестер памяти. Результат сильно зависит от разгона CPU.
|
||||
* [MemToolkitNX](https://discord.com/channels/854839758815363072/1173171845139288114/1276196700750479480) - Бенчмарк и Тестер памяти. Результат сильно зависит от разгона CPU.
|
||||
* Overlays:
|
||||
* [Tetris](https://github.com/ppkantorski/Tetris-Overlay) - Та самая игра в виде оверлея. Работает только на последних версиях Ultrahand.
|
||||
* [BT Audio](https://github.com/masagrator/BT_Audio-ovl) - Оверлей, позволяющий быстро отключаться/подключаться к bluetooth-гарнитуре.
|
||||
@ -106,12 +106,12 @@
|
||||
|
||||
## Благодарности
|
||||
|
||||
* Meha
|
||||
* B3711
|
||||
* ppkantorski
|
||||
* Cooler3D
|
||||
* rashevskyv
|
||||
* Meha
|
||||
* duckbill
|
||||
* snupt
|
||||
* Cooler3D
|
||||
* 4PDA
|
||||
#### А так же - отдельная благодарность администрации и участникам Ultra Group
|
||||
|
||||
@ -120,15 +120,17 @@
|
||||
## Поддержка
|
||||
|
||||
Если вам нравится проект, и у вас появилось желание поддержать меня копеечкой - я буду очень благодарен.
|
||||
У меня в данный момент нет других заработков, так что любая денежная помощь очень ценна для меня.
|
||||
|
||||
### Tinkoff QR
|
||||

|
||||
У меня в данный момент нет других заработков, так что любая денежная помощь очень ценна для меня.
|
||||
```
|
||||
TON: UQDioCnnPI5sk4KvxWzfPWsWbAyWCkzwhaYjy8Qpg2QwWMiL
|
||||
BTC: 1HsC4z8X1YkZzcSKZz1t7MXRa7rPi8qChV
|
||||
USDT: TQi3qLVrNGcr6avfVQBXRjpPTyvp5JZ7i2
|
||||
|
||||
Сбербанк: 2202200513345833
|
||||
Tinkoff: 2200700170486970
|
||||
```
|
||||
СБП : +79168089980
|
||||
|
||||
Альфа : 2200152336577997
|
||||
Tinkoff : 2200700170486970
|
||||
```
|
||||
|
||||
### Tinkoff QR
|
||||

|
@ -102,12 +102,12 @@ Listed below are the licenses of those programs that have been modified specific
|
||||
|
||||
## Credits
|
||||
|
||||
* Meha
|
||||
* B3711
|
||||
* ppkantorski
|
||||
* Cooler3D
|
||||
* rashevskyv
|
||||
* Meha
|
||||
* duckbill
|
||||
* snupt
|
||||
* Cooler3D
|
||||
* 4PDA
|
||||
#### And also - a special thanks to the administration and members of Ultra Group
|
||||
|
||||
|
@ -14,10 +14,6 @@ X01003A400C3DA000
|
||||
;1.1_46609 - 1.1.4_60709 crash on first loading
|
||||
010075D00E8BA000
|
||||
|
||||
;Grandia Collection
|
||||
;Only launcher is 64-bit, games are 32-bit
|
||||
0100E0600BBC8000
|
||||
|
||||
;Immortals Fenyx Rising
|
||||
;1.0.3, 1.3.4 crash
|
||||
01004A600EC0A000
|
||||
|
@ -0,0 +1,27 @@
|
||||
# Gori: Cuddly Carnage 1.0.6
|
||||
# BID: 1146A5AA87A93969
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6A02E68, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6A3C938, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6245AA8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,30 @@
|
||||
# S.T.A.L.K.E.R.: Call of Prypiat 1.0.1
|
||||
# BID: 823FE359B4A99A4D
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# psLoadedFrameLimitFps
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x17DD77C]
|
||||
value_type: float
|
||||
value: FPS_LOCK_TARGET
|
||||
# psCurrentFrameLimitFps
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x17FA8A0]
|
||||
value_type: float
|
||||
value: FPS_LOCK_TARGET
|
||||
# psCurrentFrameLimitMs
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x1A6490C]
|
||||
value_type: float
|
||||
value: "1000 / FPS_LOCK_TARGET"
|
||||
# ResolutionInfo::sDynresGPUBudgetMs
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x17DD758]
|
||||
value_type: float
|
||||
value: "0.99 * FRAMETIME_TARGET"
|
@ -1,5 +1,5 @@
|
||||
# The Witcher 3: Wild Hund - Complete Edition 4.04b
|
||||
# BID: D27FD8A515077F34
|
||||
# BID: 4BC4A8A814FD46A4
|
||||
|
||||
unsafeCheck: true
|
||||
|
@ -0,0 +1,13 @@
|
||||
# Cel Damage HD 1.0.0
|
||||
# BID: 03B058B1F6BE7195
|
||||
# Credit to Hazerou for finding offset
|
||||
# His note: 60 FPS may cause some Graphical Glitches like huge shadow and flashing light/colors appearing out of nowhere.
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x32EE1C]
|
||||
value_type: float
|
||||
value: ["1/FPS_TARGET", "FPS_TARGET"]
|
@ -1,5 +1,5 @@
|
||||
# The Witcher 3: Wild Hund - Complete Edition 4.04b
|
||||
# BID: D27FD8A515077F34
|
||||
# BID: 4BC4A8A814FD46A4
|
||||
|
||||
unsafeCheck: true
|
||||
|
@ -0,0 +1,27 @@
|
||||
# HOT WHEELS UNLEASHED 2 1.0.11
|
||||
# BID: FE78C7B94C4E791A
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xAD73888, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xB58D090, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xB631E08, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,27 @@
|
||||
# GUNDAM BREAKER 4 1.6.0
|
||||
# BID: EA4853C29547CBBC
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x9F97D48, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x9FC57E8, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x97C9DA8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,30 @@
|
||||
# S.T.A.L.K.E.R.: Clear Sky 1.0.1
|
||||
# BID: 38171F8A5687B940
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# psLoadedFrameLimitFps
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x17BD76C]
|
||||
value_type: float
|
||||
value: FPS_LOCK_TARGET
|
||||
# psCurrentFrameLimitFps
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x17DA8E8]
|
||||
value_type: float
|
||||
value: FPS_LOCK_TARGET
|
||||
# psCurrentFrameLimitMs
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x1A4436C]
|
||||
value_type: float
|
||||
value: "1000 / FPS_LOCK_TARGET"
|
||||
# ResolutionInfo::sDynresGPUBudgetMs
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x17BD748]
|
||||
value_type: float
|
||||
value: "0.99 * FRAMETIME_TARGET"
|
@ -0,0 +1,12 @@
|
||||
# Shadows of the Damned: Hella Remastered 1.0.1
|
||||
# BID: 5B863A6EFCE084B0
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# Bool Lock FPS, ref: LDR S0, [X0,#0x694]
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x3A8A2F8]
|
||||
value_type: uint32
|
||||
value: 0
|
@ -0,0 +1,27 @@
|
||||
# DRAGON QUEST III HD-2D Remake 1.0.1
|
||||
# BID: 6F49452BD0B343B1
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x5A9D3E8, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6289E28, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x62B7B68, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,30 @@
|
||||
# S.T.A.L.K.E.R.: Shadow Of Chornobyl 1.0.1
|
||||
# BID: 0214CA2211DE8313
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# psLoadedFrameLimitFps
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x16494EC]
|
||||
value_type: float
|
||||
value: FPS_LOCK_TARGET
|
||||
# psCurrentFrameLimitFps
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x16659F0]
|
||||
value_type: float
|
||||
value: FPS_LOCK_TARGET
|
||||
# psCurrentFrameLimitMs
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x18CDACC]
|
||||
value_type: float
|
||||
value: "1000 / FPS_LOCK_TARGET"
|
||||
# ResolutionInfo::sDynresGPUBudgetMs
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x16492F0]
|
||||
value_type: float
|
||||
value: "0.99 * FRAMETIME_TARGET"
|
@ -0,0 +1,12 @@
|
||||
# EA SPORTS FC 25 1.74.9f94
|
||||
# BID: 0181E008CA25A289
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# Internal FPS Lock
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xCDFCA68, 8]
|
||||
value_type: double
|
||||
value: FPS_TARGET
|
@ -0,0 +1,27 @@
|
||||
# Ghostbusters: Spirits Unleashed Ecto Edition 1.10.0
|
||||
# BID: 090A100AA49CE00F
|
||||
|
||||
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,31 @@
|
||||
# SHIN MEGAMI TENSEI V: Vengeance 1.0.3 US/EUR
|
||||
# BID: 0A4F14A5C12F470A
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
MASTER_WRITE:
|
||||
# Block from reapplying t.MaxFPS by game, REF: 01 E4 00 2F 00 AC 21 1E 08 00 40 F9 08 75 41 F9, nop BLR X8 after LDR X8, [X8,#0x2E8]
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x3780DD0
|
||||
value_type: uint32
|
||||
value: 0xD503201F
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7AAFBB8, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7273AD0, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7AD5858, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
@ -0,0 +1,27 @@
|
||||
# The Plucky Squire 1.0.5
|
||||
# BID: 0A1AC10CCFE46061
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x63A30F8, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6B72668, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6BA0328, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,27 @@
|
||||
# Mario & Luigi: Brothership 1.0.0
|
||||
# BID: 59874C9B530095AC
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x651F708, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6CEC8C8, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6D1A498, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -1,5 +1,5 @@
|
||||
# The Witcher 3: Wild Hund - Complete Edition 4.04b
|
||||
# BID: D27FD8A515077F34
|
||||
# BID: 4BC4A8A814FD46A4
|
||||
|
||||
unsafeCheck: true
|
||||
|
@ -0,0 +1,27 @@
|
||||
# LEGO Horizon Adventures 1.1.0
|
||||
# BID: 2D99FA4793E426C3
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x90FC980, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xA0CA138, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xA104AE0, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -1,5 +1,5 @@
|
||||
# The Witcher 3: Wild Hund - Complete Edition 4.04b
|
||||
# BID: D27FD8A515077F34
|
||||
# BID: 4BC4A8A814FD46A4
|
||||
|
||||
unsafeCheck: true
|
||||
|
@ -0,0 +1,11 @@
|
||||
# Monster Hunter Generations Ultimate 1.4.0
|
||||
# BID: FB08F1D20FD1204F
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x18A6210, 0x243C]
|
||||
value_type: float
|
||||
value: FPS_LOCK_TARGET
|
@ -0,0 +1,32 @@
|
||||
# No Man's Sky 5.2.2
|
||||
# BID: 9AA64F897E1D50BA
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
MASTER_WRITE:
|
||||
# Redirect DR frametime target to MAIN+0x4962F00
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x1F9B6B8
|
||||
value_type: uint32
|
||||
value: 0xD503201F
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x1F9B6C4
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xF0014E32
|
||||
- 0xB9400408
|
||||
- 0xBD4F0240
|
||||
# default value
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x4962F00
|
||||
value_type: float
|
||||
value: 33.3333333333
|
||||
ALL_FPS:
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x4962F00]
|
||||
value_type: float
|
||||
value: FRAMETIME_TARGET
|
@ -0,0 +1,17 @@
|
||||
# LEGO City Undercover 1.0.3
|
||||
# BID: 32C590B064956546
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# Block to 30 FPS when prerendered cutscene is played
|
||||
# REF: LegoCutscenes::s_fmvCutsceneAudioInstance
|
||||
-
|
||||
type: compare
|
||||
compare_address: [MAIN, 0x2590998]
|
||||
compare_type: "!="
|
||||
compare_value_type: uint64
|
||||
compare_value: 0
|
||||
address: [MAIN]
|
||||
value_type: refresh_rate
|
||||
value: 30
|
@ -0,0 +1,27 @@
|
||||
# The Smurfs - Dreams 1.0.1
|
||||
# BID: C124FFD193F533B4
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x831F958, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x92DCDE8, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x9317260, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,27 @@
|
||||
# The Smurfs - Dreams 1.0.2
|
||||
# BID: E08769D5B56A5A25
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8321958, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x92DEDE8, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x9319260, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,12 @@
|
||||
# PowerWash Simulator 1.9.1
|
||||
# BID: 7FF42DE6AA57290B
|
||||
|
||||
unsafeCheck: false
|
||||
|
||||
ALL_FPS:
|
||||
# FuturLab.SingletonMonoBehaviour<FrameRateLimiter>_TypeInfo (don't block FPSlocker internal lock because game's lock is kinda shit)
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x5FA0BD8, 0xB8, 0, 0x28]
|
||||
value_type: int32
|
||||
value: FPS_LOCK_TARGET
|
@ -0,0 +1,12 @@
|
||||
# DAVE THE DIVER 1.0.3.938
|
||||
# BID: 54300203FF8ABCC6
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# UnityEngine.Time::fixedDeltaTime
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x97BB3C0, 0x48]
|
||||
value_type: float
|
||||
value: "1 / FPS_TARGET"
|
@ -0,0 +1,77 @@
|
||||
# Tokyo Mirage Sessions #FE Encore 1.0.0
|
||||
# BID: 33463E11899166BB
|
||||
# What is still not adjusted: movement speed in cutscenes, 2D animations speed (it includes UI and 2D effects on 3D objects), none of them uses 1/30 nor 1/60 float
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
MASTER_WRITE:
|
||||
# Triple buffer
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x2F3CD8
|
||||
value_type: uint32
|
||||
value: 0xE3A01003
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x35C218
|
||||
value_type: uint32
|
||||
value: 0xE3A00003
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x35C2C0
|
||||
value_type: uint32
|
||||
value: 0xE3A02003
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x35C2D0
|
||||
value_type: uint32
|
||||
value: 0xE3A02003
|
||||
# Code Cave, read speed from MAIN + 0x1B1CF00
|
||||
# Animation speed
|
||||
# Jump to MAIN + 0x4EFBE0
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x1CE4B4
|
||||
value_type: uint32
|
||||
value: 0xEA0C85C9
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x4EFBE0
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xE28F0616
|
||||
- 0xE30D1318
|
||||
- 0xE0800001
|
||||
- 0xE3A01802
|
||||
- 0xE0800001
|
||||
- 0xED909A00
|
||||
- 0xEAF37A2E
|
||||
# Movement speed
|
||||
# Jump to MAIN + 0x4EFBFC
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x20B750
|
||||
value_type: uint32
|
||||
value: 0xEA0B9129
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x4EFBFC
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xE28F0616
|
||||
- 0xE30D62FC
|
||||
- 0xE0800006
|
||||
- 0xE3A06802
|
||||
- 0xE0800006
|
||||
- 0xED901A00
|
||||
- 0xEAF46ECE
|
||||
type: bytes
|
||||
main_offset: 0x1B1CF00
|
||||
value_type: float
|
||||
value: 0.0333333333
|
||||
ALL_FPS:
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x1B1CF00]
|
||||
value_type: float
|
||||
value: 1 / FPS_TARGET
|
@ -0,0 +1,22 @@
|
||||
# Pikmin 1 1.1.0
|
||||
# BID: C32B29CB5FBA96D9
|
||||
# Credits to Hazerou for discovering offsets
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# Block cutscenes to 30 FPS
|
||||
-
|
||||
type: compare
|
||||
compare_address: [MAIN, 0x749A3C]
|
||||
compare_type: "!="
|
||||
compare_value_type: uint32
|
||||
compare_value: 0
|
||||
address: [MAIN]
|
||||
value_type: refresh_rate
|
||||
value: 30
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7606A0]
|
||||
value_type: uint32
|
||||
value: VSYNC_TARGET
|
@ -0,0 +1,12 @@
|
||||
# Good Job! 1.0.0
|
||||
# BID: 951D09EECE122A47
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# fixedDeltaTime
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x4D38EF8, 0x48]
|
||||
value_type: float
|
||||
value: 1 / FPS_TARGET
|
@ -0,0 +1,34 @@
|
||||
# Bloodstained: Ritual of the Night 1.60
|
||||
# BID: 461B14E505AB9555
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
MASTER_WRITE:
|
||||
# Disable double buffer
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0xB080C02
|
||||
value_type: int8
|
||||
value: 0x53
|
||||
ALL_FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xCC20CC8, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xD450E90, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xD477F10, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,27 @@
|
||||
# The Witcher 3: Wild Hund - Complete Edition 4.04b
|
||||
# BID: 4BC4A8A814FD46A4
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# DRGameTargetFrameTimeInMs
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x41312B4]
|
||||
value_type: float
|
||||
value: "0.945 * FRAMETIME_TARGET"
|
||||
# DRCinematicTargetFrameTimeInMs
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x41312E4]
|
||||
value_type: float
|
||||
value: "0.945 * FRAMETIME_TARGET"
|
||||
# LimitFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x411DCFC]
|
||||
value_type: int32
|
||||
value: FPS_LOCK_TARGET
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -1,27 +0,0 @@
|
||||
# The Witcher 3: Wild Hund - Complete Edition 4.04b
|
||||
# BID: D27FD8A515077F34
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# DRGameTargetFrameTimeInMs
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x41312B4]
|
||||
value_type: float
|
||||
value: "0.945 * FRAMETIME_TARGET"
|
||||
# DRCinematicTargetFrameTimeInMs
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x41312E4]
|
||||
value_type: float
|
||||
value: "0.945 * FRAMETIME_TARGET"
|
||||
# LimitFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x411DCFC]
|
||||
value_type: int32
|
||||
value: FPS_LOCK_TARGET
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,11 @@
|
||||
# Monster Hunter XX Nintendo Switch Ver. 1.5.1
|
||||
# BID: 9D4C86E6EF74504A
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x214B898, 0x484C]
|
||||
value_type: float
|
||||
value: FPS_LOCK_TARGET
|
@ -0,0 +1,16 @@
|
||||
# Yakuza Kiwami 1.00
|
||||
# BID: 53F407A2CFBF5202
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# Block cutscenes to 30 FPS to fix glitches, experimental
|
||||
-
|
||||
type: compare
|
||||
compare_type: "!="
|
||||
compare_value_type: uint64
|
||||
compare_address: [MAIN, 0x2596E00]
|
||||
compare_value: 0
|
||||
address: [MAIN]
|
||||
value_type: refresh_rate
|
||||
value: 30
|
@ -0,0 +1,13 @@
|
||||
# Valkyria Chronicles 1.0.0
|
||||
# BID: FE77FFB8CBFB3A5C
|
||||
# 2D Animations speed is still tied to framerate
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# 3D Game Speed
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x95CA9C]
|
||||
value_type: float
|
||||
value: "60 / FPS_TARGET"
|
@ -0,0 +1,27 @@
|
||||
# SOUTH PARK: SNOW DAY! 1.0.10
|
||||
# BID: 9A2DB2F402A31811
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7E96DB8, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x8662488, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x8687EF8, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,27 @@
|
||||
# Poppy Playtime: Chapter 2 1.1
|
||||
# BID: E3A3FC8EEC76A4FB
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x640E6A8, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x73F4290, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x742E790, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,67 @@
|
||||
# Pikmin 2 1.1.0
|
||||
# BID: 9A257FAB83444214
|
||||
# Credits to Hazerou for finding offsets
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xC104B0, 0x28]
|
||||
value_type: uint32
|
||||
value: 1
|
||||
# Block cutscenes to 30 FPS
|
||||
-
|
||||
type: evaluate_compare
|
||||
compare_address: [MAIN, 0xC18080]
|
||||
compare_type: "<="
|
||||
compare_value_type: uint32
|
||||
compare_value: 0x4B
|
||||
address: [MAIN, 0xC0C040, 0xE0]
|
||||
value_type: float
|
||||
value: "1 / 30"
|
||||
-
|
||||
type: compare
|
||||
compare_address: [MAIN, 0xC18080]
|
||||
compare_type: "<="
|
||||
compare_value_type: uint32
|
||||
compare_value: 0x4B
|
||||
address: [MAIN, 0xC0C040, 0x100]
|
||||
value_type: float
|
||||
value: 2
|
||||
-
|
||||
type: compare
|
||||
compare_address: [MAIN, 0xC18080]
|
||||
compare_type: "<="
|
||||
compare_value_type: uint32
|
||||
compare_value: 0x4B
|
||||
address: [MAIN]
|
||||
value_type: refresh_rate
|
||||
value: 30
|
||||
-
|
||||
type: evaluate_compare
|
||||
compare_address: [MAIN, 0xC18080]
|
||||
compare_type: "<"
|
||||
compare_value_type: uint32
|
||||
compare_value: 0x49
|
||||
address: [MAIN, 0xC0C040, 0xE0]
|
||||
value_type: float
|
||||
value: "1 / FPS_TARGET"
|
||||
-
|
||||
type: evaluate_compare
|
||||
compare_address: [MAIN, 0xC18080]
|
||||
compare_type: "<"
|
||||
compare_value_type: uint32
|
||||
compare_value: 0x49
|
||||
address: [MAIN, 0xC0C040, 0x100]
|
||||
value_type: float
|
||||
value: "60 / FPS_TARGET"
|
||||
-
|
||||
type: compare
|
||||
compare_address: [MAIN, 0xC18080]
|
||||
compare_type: "<"
|
||||
compare_value_type: uint32
|
||||
compare_value: 0x49
|
||||
address: [MAIN]
|
||||
value_type: refresh_rate
|
||||
value: 0
|
@ -0,0 +1,35 @@
|
||||
# Disney Epic Mickey: Rebrushed 1.0.3
|
||||
# BID: EE2CAB96FB6BEDA9
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
MASTER_WRITE:
|
||||
# Don't lock prerendered cutscenes to 30 FPS
|
||||
# REF: C1 02 40 FD 29 08 60 1E 61 1E 40 FD / second result, search for LDRB W8, [X19,#0x30] above it
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0xF6E9E8
|
||||
value_type: uint32
|
||||
value: 0x2A1F03E8
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6E34A58, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6E626F8, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6665658, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,22 @@
|
||||
# Ni no Kuni: Wrath of the White Witch 1.0.2
|
||||
# BID: C32B29CB5FBA96D9
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# Game speed value
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x2218B44, 0x20]
|
||||
value_type: float
|
||||
value: "1 / FPS_TARGET"
|
||||
# Play prerendered cutscenes only at 60 FPS
|
||||
-
|
||||
type: evaluate_compare
|
||||
compare_address: [MAIN, 0x1728B58]
|
||||
compare_type: "!="
|
||||
compare_value_type: uint32
|
||||
compare_value: 0
|
||||
address: [MAIN]
|
||||
value_type: refresh_rate
|
||||
value: 60
|
@ -0,0 +1,14 @@
|
||||
# 戦場のヴァルキュリア for Nintendo Switch 1.0.1
|
||||
# BID: A184B59D5091B68A
|
||||
# Main 2D Animations speed is still tied to framerate
|
||||
# Thanks to ~Arch for offset
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# 3D Game Speed
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x957E1C]
|
||||
value_type: float
|
||||
value: "60 / FPS_TARGET"
|
@ -0,0 +1,13 @@
|
||||
# Card-en-Ciel 1.0.4
|
||||
# BID: 393323C7FBCBD72D
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# Internal FPS Lock
|
||||
# REF: look at nn::os::SleepThread() called in nnMain()
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x2055248, 0x5C]
|
||||
value_type: float
|
||||
value: 1 / FPS_LOCK_TARGET
|
@ -0,0 +1,27 @@
|
||||
# TinTin Reporter - Cigars of the Pharaoh 1.4.0
|
||||
# BID: ACBD89C999804FD2
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (default is 50 ms xD)
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7868B48, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x78964B8, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x709A278, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
@ -0,0 +1,127 @@
|
||||
# Xenoblade Chronicles 2 2.1.0
|
||||
# BID: F77F1559371C0EC6
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
MASTER_WRITE:
|
||||
# Dynamic speed
|
||||
# Jump before pushing frame to the end of .plt, which is 0x8B3900 (backup: MOV W8, #0x21A0)
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x700164
|
||||
value_type: uint32
|
||||
value: 0x1406CDE7
|
||||
# Game speed math, write data to unused .bss, tick at 0x15ECF00, game speed at tick at 0x15ECF08, take min delta from 0x15ECF10
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x8B3900
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0x97FFFB80
|
||||
- 0xB00069C2
|
||||
- 0xF9478041
|
||||
- 0xF9078040
|
||||
- 0xB5000061
|
||||
- 0x52843408
|
||||
- 0x17F93214
|
||||
- 0xCB010000
|
||||
- 0x97FFFB7C
|
||||
- 0x1E25D002
|
||||
- 0x52807D01
|
||||
- 0x9AC10800
|
||||
- 0x9E220000
|
||||
- 0x52848001
|
||||
- 0x72A92E81
|
||||
- 0x1E270021
|
||||
- 0x14000018
|
||||
- 0x900016E0
|
||||
- 0xF9406800
|
||||
- 0xB4FFFE40
|
||||
- 0xBD007800
|
||||
- 0xBD007C00
|
||||
- 0xF0001B60
|
||||
- 0xF9416400
|
||||
- 0xBD008000
|
||||
- 0xB00069C0
|
||||
- 0xBD0F0800
|
||||
- 0x17FFFFEA
|
||||
- 0x1E2E1001
|
||||
- 0x1E221822
|
||||
- 0x1E222000
|
||||
- 0x5400006B
|
||||
- 0x1E204040
|
||||
- 0x17FFFFF0
|
||||
- 0xB00069C0
|
||||
- 0xBD4F1002
|
||||
- 0x1E222000
|
||||
- 0x54FFFD88
|
||||
- 0x1E204040
|
||||
- 0x17FFFFEA
|
||||
- 0x1E211800
|
||||
- 0x17FFFFF3
|
||||
# Patch wind speed to take game speed from MAIN + 0x15ECF08
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x747DD8
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xB0007528
|
||||
- 0xBD4F0906
|
||||
# Redirect DR timing to MAIN + 0x15ECF18
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x6AA14C
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xD0007A08
|
||||
- 0xBD4F1900
|
||||
# Default values
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x15ECF08
|
||||
value_type: float
|
||||
value: [0.0333333333, 0.0333333333, 0.0333333333, 0.0166666666]
|
||||
ALL_FPS:
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xB74BF0]
|
||||
value_type: uint32
|
||||
value: ["VSYNC_TARGET", "VSYNC_TARGET"]
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x15ECF10]
|
||||
value_type: float
|
||||
value: "1 / FPS_TARGET"
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x15ECF18]
|
||||
value_type: float
|
||||
value: "(1 / FPS_TARGET) / VSYNC_TARGET"
|
||||
# Cutscenes in 30 FPS
|
||||
-
|
||||
type: compare
|
||||
compare_type: "=="
|
||||
compare_value_type: uint8
|
||||
compare_value: 1
|
||||
compare_address: [MAIN, 0xBD7F40]
|
||||
address: [MAIN]
|
||||
value_type: refresh_rate
|
||||
value: 30
|
||||
-
|
||||
type: compare
|
||||
compare_type: "=="
|
||||
compare_value_type: uint8
|
||||
compare_value: 1
|
||||
compare_address: [MAIN, 0xBD7F40]
|
||||
address: [MAIN, 0x15ECF10]
|
||||
value_type: float
|
||||
value: 0.0333333333
|
||||
-
|
||||
type: compare
|
||||
compare_type: "=="
|
||||
compare_value_type: uint8
|
||||
compare_value: 1
|
||||
compare_address: [MAIN, 0xBD7F40]
|
||||
address: [MAIN, 0x15ECF18]
|
||||
value_type: float
|
||||
value: 0.0333333333
|
@ -0,0 +1,127 @@
|
||||
# Xenoblade2 2.0.2
|
||||
# BID: E3938FA78579C1CA
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
MASTER_WRITE:
|
||||
# Dynamic speed
|
||||
# Jump before pushing frame to the end of .plt, which is 0x8B3448 (backup: MOV W8, #0x21A0)
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x700050
|
||||
value_type: uint32
|
||||
value: 0x1406CCFE
|
||||
# Game speed math, write data to unused .bss, tick at 0x15ECF00, game speed at 0x15ECF08, take min delta from 0x15ECF10
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x8B3448
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0x97FFFB84
|
||||
- 0xB00069C2
|
||||
- 0xF9478041
|
||||
- 0xF9078040
|
||||
- 0xB5000061
|
||||
- 0x52843408
|
||||
- 0x17F932FD
|
||||
- 0xCB010000
|
||||
- 0x97FFFB80
|
||||
- 0x1E25D002
|
||||
- 0x52807D01
|
||||
- 0x9AC10800
|
||||
- 0x9E220000
|
||||
- 0x52848001
|
||||
- 0x72A92E81
|
||||
- 0x1E270021
|
||||
- 0x14000018
|
||||
- 0x900016E0
|
||||
- 0xF9406800
|
||||
- 0xB4FFFE40
|
||||
- 0xBD007800
|
||||
- 0xBD007C00
|
||||
- 0xF0001B60
|
||||
- 0xF9416400
|
||||
- 0xBD008000
|
||||
- 0xB00069C0
|
||||
- 0xBD0F0800
|
||||
- 0x17FFFFEA
|
||||
- 0x1E2E1001
|
||||
- 0x1E221822
|
||||
- 0x1E222000
|
||||
- 0x5400006B
|
||||
- 0x1E204040
|
||||
- 0x17FFFFF0
|
||||
- 0xB00069C0
|
||||
- 0xBD4F1002
|
||||
- 0x1E222000
|
||||
- 0x54FFFD88
|
||||
- 0x1E204040
|
||||
- 0x17FFFFEA
|
||||
- 0x1E211800
|
||||
- 0x17FFFFF3
|
||||
# Patch wind speed to take game speed from MAIN + 0x15ECF08
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x747CC4
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xB0007528
|
||||
- 0xBD4F0906
|
||||
# Redirect DR timing to MAIN + 0x15ECF18
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x6AA038
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xD0007A08
|
||||
- 0xBD4F1900
|
||||
# Default values
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x15ECF08
|
||||
value_type: float
|
||||
value: [0.0333333333, 0.0333333333, 0.0333333333, 0.0166666666, 0.0333333333]
|
||||
ALL_FPS:
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xB74BC0]
|
||||
value_type: uint32
|
||||
value: ["VSYNC_TARGET", "VSYNC_TARGET"]
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x15ECF10]
|
||||
value_type: float
|
||||
value: "1 / FPS_TARGET"
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x15ECF18]
|
||||
value_type: float
|
||||
value: "(1 / FPS_TARGET) / VSYNC_TARGET"
|
||||
# Cutscenes in 30 FPS
|
||||
-
|
||||
type: compare
|
||||
compare_type: "=="
|
||||
compare_value_type: uint8
|
||||
compare_value: 1
|
||||
compare_address: [MAIN, 0xBD7F40]
|
||||
address: [MAIN]
|
||||
value_type: refresh_rate
|
||||
value: 30
|
||||
-
|
||||
type: compare
|
||||
compare_type: "=="
|
||||
compare_value_type: uint8
|
||||
compare_value: 1
|
||||
compare_address: [MAIN, 0xBD7F40]
|
||||
address: [MAIN, 0x15ECF10]
|
||||
value_type: float
|
||||
value: 0.0333333333
|
||||
-
|
||||
type: compare
|
||||
compare_type: "=="
|
||||
compare_value_type: uint8
|
||||
compare_value: 1
|
||||
compare_address: [MAIN, 0xBD7F40]
|
||||
address: [MAIN, 0x15ECF18]
|
||||
value_type: float
|
||||
value: 0.0333333333
|
BIN
SaltySD/saltysd_bootstrap.elf
Normal file
BIN
SaltySD/saltysd_bootstrap.elf
Normal file
Binary file not shown.
BIN
SaltySD/saltysd_bootstrap32_3k.elf
Normal file
BIN
SaltySD/saltysd_bootstrap32_3k.elf
Normal file
Binary file not shown.
BIN
SaltySD/saltysd_bootstrap32_5k.elf
Normal file
BIN
SaltySD/saltysd_bootstrap32_5k.elf
Normal file
Binary file not shown.
Binary file not shown.
BIN
SaltySD/saltysd_core32.elf
Normal file
BIN
SaltySD/saltysd_core32.elf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -2,6 +2,7 @@
|
||||
ultra=Ultra
|
||||
battery_avg_iir_filter=false
|
||||
battery_time_left_refreshrate=60
|
||||
average_gpu_load=true
|
||||
|
||||
[full]
|
||||
refresh_rate=1
|
||||
|
@ -57,7 +57,7 @@
|
||||
"STORAGE": "Speicherplatz",
|
||||
"NOTICE": "Hinweis",
|
||||
"UTILIZES": "Verwendet",
|
||||
"FREE": "vrij",
|
||||
"FREE": "frei",
|
||||
"MEMORY_EXPANSION": "Speichererweiterung",
|
||||
"REBOOT_REQUIRED": "*Neustart erforderlich.",
|
||||
"LOCAL_IP": "Lokale IP",
|
||||
@ -72,18 +72,19 @@
|
||||
"OVERLAY_VERSIONS": "Overlay Versionsnr.",
|
||||
"PACKAGE_VERSIONS": "Paket Versionsnr.",
|
||||
"OPAQUE_SCREENSHOTS": "Undurchsichtige Screenshots",
|
||||
"PAGE_SWAP": "Seitenwechsel",
|
||||
"ON": "AN",
|
||||
"OFF": "AUS",
|
||||
"PACKAGE_INFO": "Paket-Info",
|
||||
"VERSION": "Version",
|
||||
"CREATOR": "Schöpfer",
|
||||
"CREATOR": "Ersteller",
|
||||
"ABOUT": "Über",
|
||||
"CREDITS": "Credits",
|
||||
"OK": "OK",
|
||||
"BACK": "Zurück",
|
||||
"REBOOT_TO": "Neustart zu",
|
||||
"REBOOT": "Neustart",
|
||||
"SHUTDOWN": "Abschalten",
|
||||
"SHUTDOWN": "Ausschalten",
|
||||
"BOOT_ENTRY": "Start Eintrag",
|
||||
"GAP_1": " ",
|
||||
"GAP_2": " ",
|
||||
@ -96,8 +97,8 @@
|
||||
"ON_A_COMMAND": "Auf einem Befehl",
|
||||
"ON_OVERLAY_PACKAGE": "Auf einem OVL/PKT",
|
||||
"EFFECTS": "Effekte",
|
||||
"SWIPE_TO_OPEN": "Swipe to Open",
|
||||
"RIGHT_SIDE_MODE": "Right-side Mode",
|
||||
"SWIPE_TO_OPEN": "Zum Öffnen wischen",
|
||||
"RIGHT_SIDE_MODE": "Rechtsmodus",
|
||||
"PROGRESS_ANIMATION": "Fortschrittsanimation",
|
||||
"EMPTY": "Leer",
|
||||
"SUNDAY": "Sonntag",
|
||||
|
@ -71,6 +71,7 @@
|
||||
"OVERLAY_VERSIONS": "Overlay Versions",
|
||||
"PACKAGE_VERSIONS": "Package Versions",
|
||||
"OPAQUE_SCREENSHOTS": "Opaque Screenshots",
|
||||
"PAGE_SWAP": "Page Swap",
|
||||
"ON": "On",
|
||||
"OFF": "Off",
|
||||
"PACKAGE_INFO": "Package Info",
|
||||
@ -87,7 +88,7 @@
|
||||
"BOOT_ENTRY": "Boot Entry",
|
||||
"GAP_1": " ",
|
||||
"GAP_2": " ",
|
||||
"USERGUIDE_OFFSET": "173",
|
||||
"USERGUIDE_OFFSET": "175",
|
||||
"SETTINGS_MENU": "Settings Menu",
|
||||
"SCRIPT_OVERLAY": "Script Overlay",
|
||||
"STAR_FAVORITE": "Star/Favorite",
|
||||
|
@ -71,6 +71,7 @@
|
||||
"OVERLAY_VERSIONS": "Etiquetas de Superposición",
|
||||
"PACKAGE_VERSIONS": "Etiquetas de Paquete",
|
||||
"OPAQUE_SCREENSHOTS": "Capturas de Pantalla Opacas",
|
||||
"PAGE_SWAP": "Page Swap",
|
||||
"ON": "Encendido",
|
||||
"OFF": "Apagado",
|
||||
"PACKAGE_INFO": "Información del Paquete",
|
||||
|
@ -71,6 +71,7 @@
|
||||
"OVERLAY_VERSIONS": "Étiquettes de superposition",
|
||||
"PACKAGE_VERSIONS": "Étiquettes de paquet",
|
||||
"OPAQUE_SCREENSHOTS": "Captures D’écran Opaques",
|
||||
"PAGE_SWAP": "Page Swap",
|
||||
"ON": "Activer",
|
||||
"OFF": "Désactiver",
|
||||
"PACKAGE_INFO": "Informations sur le paquet",
|
||||
|
@ -71,6 +71,7 @@
|
||||
"OVERLAY_VERSIONS": "Etichette Sovrapposte",
|
||||
"PACKAGE_VERSIONS": "Etichette Pacchetto",
|
||||
"OPAQUE_SCREENSHOTS": "Screenshot Opachi",
|
||||
"PAGE_SWAP": "Page Swap",
|
||||
"ON": "Acceso",
|
||||
"OFF": "Spento",
|
||||
"PACKAGE_INFO": "Informazioni Pacchetto",
|
||||
|
@ -71,6 +71,7 @@
|
||||
"OVERLAY_VERSIONS": "オーバーレイバージョン",
|
||||
"PACKAGE_VERSIONS": "パッケージバージョン",
|
||||
"OPAQUE_SCREENSHOTS": "不透明なスクリーンショット",
|
||||
"PAGE_SWAP": "Page Swap",
|
||||
"ON": "オン",
|
||||
"OFF": "オフ",
|
||||
"PACKAGE_INFO": "パッケージ情報",
|
||||
|
@ -71,6 +71,7 @@
|
||||
"OVERLAY_VERSIONS": "오버레이 라벨",
|
||||
"PACKAGE_VERSIONS": "패키지 라벨",
|
||||
"OPAQUE_SCREENSHOTS": "불투명한 스크린샷",
|
||||
"PAGE_SWAP": "Page Swap",
|
||||
"ON": "켜기",
|
||||
"OFF": "끄기",
|
||||
"PACKAGE_INFO": "패키지 정보",
|
||||
|
@ -71,6 +71,7 @@
|
||||
"OVERLAY_VERSIONS": "Overlay Labels",
|
||||
"PACKAGE_VERSIONS": "Pakket Labels",
|
||||
"OPAQUE_SCREENSHOTS": "Ondoorzichtige Screenshots",
|
||||
"PAGE_SWAP": "Page Swap",
|
||||
"ON": "Aan",
|
||||
"OFF": "Uit",
|
||||
"PACKAGE_INFO": "Pakketinformatie",
|
||||
|
@ -71,6 +71,7 @@
|
||||
"OVERLAY_VERSIONS": "Wersje Nakładek",
|
||||
"PACKAGE_VERSIONS": "Wersje Paczek",
|
||||
"OPAQUE_SCREENSHOTS": "Nieprzezroczyste zrzuty ekranu",
|
||||
"PAGE_SWAP": "Page Swap",
|
||||
"ON": "Włącz",
|
||||
"OFF": "Wyłącz",
|
||||
"PACKAGE_INFO": "Informacje o Paczce",
|
||||
|
@ -71,6 +71,7 @@
|
||||
"OVERLAY_VERSIONS": "Rótulos de Sobreposição",
|
||||
"PACKAGE_VERSIONS": "Rótulos de Pacote",
|
||||
"OPAQUE_SCREENSHOTS": "Capturas de Tela Opaques",
|
||||
"PAGE_SWAP": "Page Swap",
|
||||
"ON": "Ligado",
|
||||
"OFF": "Desligado",
|
||||
"PACKAGE_INFO": "Informações do Pacote",
|
||||
|
@ -71,6 +71,7 @@
|
||||
"OVERLAY_VERSIONS": "Версии Оверлеев",
|
||||
"PACKAGE_VERSIONS": "Версии Пакетов",
|
||||
"OPAQUE_SCREENSHOTS": "Непрозрачные Скриншоты",
|
||||
"PAGE_SWAP": "Page Swap",
|
||||
"ON": "Вкл",
|
||||
"OFF": "Выкл",
|
||||
"PACKAGE_INFO": "Информация",
|
||||
|
@ -71,6 +71,7 @@
|
||||
"OVERLAY_VERSIONS": "插件版本显示",
|
||||
"PACKAGE_VERSIONS": "插件包版本显示",
|
||||
"OPAQUE_SCREENSHOTS": "不透明的截图”",
|
||||
"PAGE_SWAP": "Page Swap",
|
||||
"ON": "开启",
|
||||
"OFF": "关闭",
|
||||
"PACKAGE_INFO": "插件包信息",
|
||||
|
@ -71,6 +71,7 @@
|
||||
"OVERLAY_VERSIONS": "插件的標簽",
|
||||
"PACKAGE_VERSIONS": "插件包的標簽",
|
||||
"OPAQUE_SCREENSHOTS": "不透明的截圖",
|
||||
"PAGE_SWAP": "Page Swap",
|
||||
"ON": "啟用",
|
||||
"OFF": "停用",
|
||||
"PACKAGE_INFO": "插件包信息",
|
||||
|
Binary file not shown.
Binary file not shown.
@ -1,6 +1,8 @@
|
||||
[boot]
|
||||
clear hex_sum_cache
|
||||
|
||||
hex-by-swap /atmosphere/kips/loader.kip 016B89FB 006B29FA
|
||||
|
||||
del '/atmosphere/config_templates/'
|
||||
del '/atmosphere/contents/00FF0000636C6BFF/toolbox.json'
|
||||
del '/atmosphere/flags/'
|
||||
|
Loading…
x
Reference in New Issue
Block a user