diff --git a/README.md b/README.md index e1c8bfc..013f82e 100644 --- a/README.md +++ b/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 -![](https://github.com/Ultra-NX/Ultra-Resources/raw/main/Tinkoff%20small.png) +У меня в данный момент нет других заработков, так что любая денежная помощь очень ценна для меня. ``` TON: UQDioCnnPI5sk4KvxWzfPWsWbAyWCkzwhaYjy8Qpg2QwWMiL BTC: 1HsC4z8X1YkZzcSKZz1t7MXRa7rPi8qChV USDT: TQi3qLVrNGcr6avfVQBXRjpPTyvp5JZ7i2 -Сбербанк: 2202200513345833 -Tinkoff: 2200700170486970 -``` \ No newline at end of file +СБП : +79168089980 + +Альфа : 2200152336577997 +Tinkoff : 2200700170486970 +``` + +### Tinkoff QR +![](https://github.com/Ultra-NX/Ultra-Resources/raw/main/Tinkoff%20small.png) \ No newline at end of file diff --git a/README_ENG.md b/README_ENG.md index 1485f7c..8aab842 100644 --- a/README_ENG.md +++ b/README_ENG.md @@ -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 diff --git a/SaltySD/exceptions.txt b/SaltySD/exceptions.txt index 5f5ecba..ca683b9 100644 --- a/SaltySD/exceptions.txt +++ b/SaltySD/exceptions.txt @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/010000A017F96000/1146A5AA87A93969.yaml b/SaltySD/plugins/FPSLocker/patches/010000A017F96000/1146A5AA87A93969.yaml new file mode 100644 index 0000000..a23463f --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010000A017F96000/1146A5AA87A93969.yaml @@ -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 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010008E01E32A000/823FE359B4A99A4D.yaml b/SaltySD/plugins/FPSLocker/patches/010008E01E32A000/823FE359B4A99A4D.yaml new file mode 100644 index 0000000..1867eac --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010008E01E32A000/823FE359B4A99A4D.yaml @@ -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" \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01000BB00E9D2000/D27FD8A515077F34.yaml b/SaltySD/plugins/FPSLocker/patches/01000BB00E9D2000/4BC4A8A814FD46A4.yaml similarity index 95% rename from SaltySD/plugins/FPSLocker/patches/01000BB00E9D2000/D27FD8A515077F34.yaml rename to SaltySD/plugins/FPSLocker/patches/01000BB00E9D2000/4BC4A8A814FD46A4.yaml index 7473097..b297814 100644 --- a/SaltySD/plugins/FPSLocker/patches/01000BB00E9D2000/D27FD8A515077F34.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01000BB00E9D2000/4BC4A8A814FD46A4.yaml @@ -1,5 +1,5 @@ # The Witcher 3: Wild Hund - Complete Edition 4.04b -# BID: D27FD8A515077F34 +# BID: 4BC4A8A814FD46A4 unsafeCheck: true diff --git a/SaltySD/plugins/FPSLocker/patches/010019B00BE72000/03B058B1F6BE7195.yaml b/SaltySD/plugins/FPSLocker/patches/010019B00BE72000/03B058B1F6BE7195.yaml new file mode 100644 index 0000000..916d34d --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010019B00BE72000/03B058B1F6BE7195.yaml @@ -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"] diff --git a/SaltySD/plugins/FPSLocker/patches/010019C00E9CC000/D27FD8A515077F34.yaml b/SaltySD/plugins/FPSLocker/patches/010019C00E9CC000/4BC4A8A814FD46A4.yaml similarity index 95% rename from SaltySD/plugins/FPSLocker/patches/010019C00E9CC000/D27FD8A515077F34.yaml rename to SaltySD/plugins/FPSLocker/patches/010019C00E9CC000/4BC4A8A814FD46A4.yaml index 7473097..b297814 100644 --- a/SaltySD/plugins/FPSLocker/patches/010019C00E9CC000/D27FD8A515077F34.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010019C00E9CC000/4BC4A8A814FD46A4.yaml @@ -1,5 +1,5 @@ # The Witcher 3: Wild Hund - Complete Edition 4.04b -# BID: D27FD8A515077F34 +# BID: 4BC4A8A814FD46A4 unsafeCheck: true diff --git a/SaltySD/plugins/FPSLocker/patches/01001BE01908C000/FE78C7B94C4E791A.yaml b/SaltySD/plugins/FPSLocker/patches/01001BE01908C000/FE78C7B94C4E791A.yaml new file mode 100644 index 0000000..3241383 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01001BE01908C000/FE78C7B94C4E791A.yaml @@ -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 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010025C0145D4000/EA4853C29547CBBC.yaml b/SaltySD/plugins/FPSLocker/patches/010025C0145D4000/EA4853C29547CBBC.yaml new file mode 100644 index 0000000..aeac733 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010025C0145D4000/EA4853C29547CBBC.yaml @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/010027B01E32C000/38171F8A5687B940.yaml b/SaltySD/plugins/FPSLocker/patches/010027B01E32C000/38171F8A5687B940.yaml new file mode 100644 index 0000000..4a7d4f4 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010027B01E32C000/38171F8A5687B940.yaml @@ -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" \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010037A01F96C000/5B863A6EFCE084B0.yaml b/SaltySD/plugins/FPSLocker/patches/010037A01F96C000/5B863A6EFCE084B0.yaml new file mode 100644 index 0000000..e8dc348 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010037A01F96C000/5B863A6EFCE084B0.yaml @@ -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 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01003E601E324000/6F49452BD0B343B1.yaml b/SaltySD/plugins/FPSLocker/patches/01003E601E324000/6F49452BD0B343B1.yaml new file mode 100644 index 0000000..57fd17f --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01003E601E324000/6F49452BD0B343B1.yaml @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/01004A001E32E000/0214CA2211DE8313.yaml b/SaltySD/plugins/FPSLocker/patches/01004A001E32E000/0214CA2211DE8313.yaml new file mode 100644 index 0000000..abcdb84 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01004A001E32E000/0214CA2211DE8313.yaml @@ -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" \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010054E01D878000/0181E008CA25A289.yaml b/SaltySD/plugins/FPSLocker/patches/010054E01D878000/0181E008CA25A289.yaml new file mode 100644 index 0000000..bb3bb4a --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010054E01D878000/0181E008CA25A289.yaml @@ -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 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01005D2016934000/090A100AA49CE00F.yaml b/SaltySD/plugins/FPSLocker/patches/01005D2016934000/090A100AA49CE00F.yaml new file mode 100644 index 0000000..8fc3c4d --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01005D2016934000/090A100AA49CE00F.yaml @@ -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 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010069C01AB82000/0A4F14A5C12F470A.yaml b/SaltySD/plugins/FPSLocker/patches/010069C01AB82000/0A4F14A5C12F470A.yaml new file mode 100644 index 0000000..f0c57c4 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010069C01AB82000/0A4F14A5C12F470A.yaml @@ -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] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01006BD018B54000/0A1AC10CCFE46061.yaml b/SaltySD/plugins/FPSLocker/patches/01006BD018B54000/0A1AC10CCFE46061.yaml new file mode 100644 index 0000000..6dc2852 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01006BD018B54000/0A1AC10CCFE46061.yaml @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/01006D0017F7A000/59874C9B530095AC.yaml b/SaltySD/plugins/FPSLocker/patches/01006D0017F7A000/59874C9B530095AC.yaml new file mode 100644 index 0000000..db2bc28 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01006D0017F7A000/59874C9B530095AC.yaml @@ -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 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010070A00E9CE000/D27FD8A515077F34.yaml b/SaltySD/plugins/FPSLocker/patches/010070A00E9CE000/4BC4A8A814FD46A4.yaml similarity index 95% rename from SaltySD/plugins/FPSLocker/patches/010070A00E9CE000/D27FD8A515077F34.yaml rename to SaltySD/plugins/FPSLocker/patches/010070A00E9CE000/4BC4A8A814FD46A4.yaml index 7473097..b297814 100644 --- a/SaltySD/plugins/FPSLocker/patches/010070A00E9CE000/D27FD8A515077F34.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010070A00E9CE000/4BC4A8A814FD46A4.yaml @@ -1,5 +1,5 @@ # The Witcher 3: Wild Hund - Complete Edition 4.04b -# BID: D27FD8A515077F34 +# BID: 4BC4A8A814FD46A4 unsafeCheck: true diff --git a/SaltySD/plugins/FPSLocker/patches/010073C01AF34000/2D99FA4793E426C3.yaml b/SaltySD/plugins/FPSLocker/patches/010073C01AF34000/2D99FA4793E426C3.yaml new file mode 100644 index 0000000..37d8e1e --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010073C01AF34000/2D99FA4793E426C3.yaml @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/010076F00E9C8000/D27FD8A515077F34.yaml b/SaltySD/plugins/FPSLocker/patches/010076F00E9C8000/4BC4A8A814FD46A4.yaml similarity index 95% rename from SaltySD/plugins/FPSLocker/patches/010076F00E9C8000/D27FD8A515077F34.yaml rename to SaltySD/plugins/FPSLocker/patches/010076F00E9C8000/4BC4A8A814FD46A4.yaml index 7473097..b297814 100644 --- a/SaltySD/plugins/FPSLocker/patches/010076F00E9C8000/D27FD8A515077F34.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010076F00E9C8000/4BC4A8A814FD46A4.yaml @@ -1,5 +1,5 @@ # The Witcher 3: Wild Hund - Complete Edition 4.04b -# BID: D27FD8A515077F34 +# BID: 4BC4A8A814FD46A4 unsafeCheck: true diff --git a/SaltySD/plugins/FPSLocker/patches/0100770008DD8000/FB08F1D20FD1204F.yaml b/SaltySD/plugins/FPSLocker/patches/0100770008DD8000/FB08F1D20FD1204F.yaml new file mode 100644 index 0000000..04a8916 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100770008DD8000/FB08F1D20FD1204F.yaml @@ -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 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100853015E86000/9AA64F897E1D50BA.yaml b/SaltySD/plugins/FPSLocker/patches/0100853015E86000/9AA64F897E1D50BA.yaml new file mode 100644 index 0000000..67c2581 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100853015E86000/9AA64F897E1D50BA.yaml @@ -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 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010085500130A000/32C590B064956546.yaml b/SaltySD/plugins/FPSLocker/patches/010085500130A000/32C590B064956546.yaml new file mode 100644 index 0000000..26f47a2 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010085500130A000/32C590B064956546.yaml @@ -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 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01008E401E6D0000/C124FFD193F533B4.yaml b/SaltySD/plugins/FPSLocker/patches/01008E401E6D0000/C124FFD193F533B4.yaml new file mode 100644 index 0000000..715385f --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01008E401E6D0000/C124FFD193F533B4.yaml @@ -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 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01008E401E6D0000/E08769D5B56A5A25.yaml b/SaltySD/plugins/FPSLocker/patches/01008E401E6D0000/E08769D5B56A5A25.yaml new file mode 100644 index 0000000..37dbcdb --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01008E401E6D0000/E08769D5B56A5A25.yaml @@ -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 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100926016012000/7FF42DE6AA57290B.yaml b/SaltySD/plugins/FPSLocker/patches/0100926016012000/7FF42DE6AA57290B.yaml new file mode 100644 index 0000000..c4174cb --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100926016012000/7FF42DE6AA57290B.yaml @@ -0,0 +1,12 @@ +# PowerWash Simulator 1.9.1 +# BID: 7FF42DE6AA57290B + +unsafeCheck: false + +ALL_FPS: + # FuturLab.SingletonMonoBehaviour_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 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010097F018538000/54300203FF8ABCC6.yaml b/SaltySD/plugins/FPSLocker/patches/010097F018538000/54300203FF8ABCC6.yaml new file mode 100644 index 0000000..ffac47e --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010097F018538000/54300203FF8ABCC6.yaml @@ -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" diff --git a/SaltySD/plugins/FPSLocker/patches/0100A9400C9C2000/33463E11899166BB.yaml b/SaltySD/plugins/FPSLocker/patches/0100A9400C9C2000/33463E11899166BB.yaml new file mode 100644 index 0000000..965b65d --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100A9400C9C2000/33463E11899166BB.yaml @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/0100AA80194B0000/3A8E744D8F65CDEA.yaml b/SaltySD/plugins/FPSLocker/patches/0100AA80194B0000/3A8E744D8F65CDEA.yaml new file mode 100644 index 0000000..e3d056f --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100AA80194B0000/3A8E744D8F65CDEA.yaml @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/0100B0500FE4E000/951D09EECE122A47.yaml b/SaltySD/plugins/FPSLocker/patches/0100B0500FE4E000/951D09EECE122A47.yaml new file mode 100644 index 0000000..b8bb2ea --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100B0500FE4E000/951D09EECE122A47.yaml @@ -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 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100BF500207C000/461B14E505AB9555.yaml b/SaltySD/plugins/FPSLocker/patches/0100BF500207C000/461B14E505AB9555.yaml new file mode 100644 index 0000000..8b239bb --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100BF500207C000/461B14E505AB9555.yaml @@ -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 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100BFE00E9CA000/4BC4A8A814FD46A4.yaml b/SaltySD/plugins/FPSLocker/patches/0100BFE00E9CA000/4BC4A8A814FD46A4.yaml new file mode 100644 index 0000000..b297814 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100BFE00E9CA000/4BC4A8A814FD46A4.yaml @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/0100BFE00E9CA000/D27FD8A515077F34.yaml b/SaltySD/plugins/FPSLocker/patches/0100BFE00E9CA000/D27FD8A515077F34.yaml deleted file mode 100644 index 7473097..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100BFE00E9CA000/D27FD8A515077F34.yaml +++ /dev/null @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/0100C3800049C000/9D4C86E6EF74504A.yaml b/SaltySD/plugins/FPSLocker/patches/0100C3800049C000/9D4C86E6EF74504A.yaml new file mode 100644 index 0000000..1635a7e --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100C3800049C000/9D4C86E6EF74504A.yaml @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/0100C9801FEE6000/53F407A2CFBF5202.yaml b/SaltySD/plugins/FPSLocker/patches/0100C9801FEE6000/53F407A2CFBF5202.yaml new file mode 100644 index 0000000..6e6add9 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100C9801FEE6000/53F407A2CFBF5202.yaml @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/0100CAF00B744000/FE77FFB8CBFB3A5C.yaml b/SaltySD/plugins/FPSLocker/patches/0100CAF00B744000/FE77FFB8CBFB3A5C.yaml new file mode 100644 index 0000000..d38623c --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100CAF00B744000/FE77FFB8CBFB3A5C.yaml @@ -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" \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100D1501ABAE000/9A2DB2F402A31811.yaml b/SaltySD/plugins/FPSLocker/patches/0100D1501ABAE000/9A2DB2F402A31811.yaml new file mode 100644 index 0000000..d640c74 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100D1501ABAE000/9A2DB2F402A31811.yaml @@ -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 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100D3801E6CE000/E3A3FC8EEC76A4FB.yaml b/SaltySD/plugins/FPSLocker/patches/0100D3801E6CE000/E3A3FC8EEC76A4FB.yaml new file mode 100644 index 0000000..cd5250c --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100D3801E6CE000/E3A3FC8EEC76A4FB.yaml @@ -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 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100D680194B2000/9A257FAB83444214.yaml b/SaltySD/plugins/FPSLocker/patches/0100D680194B2000/9A257FAB83444214.yaml new file mode 100644 index 0000000..b5c479e --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100D680194B2000/9A257FAB83444214.yaml @@ -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 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100DA201EBF8000/EE2CAB96FB6BEDA9.yaml b/SaltySD/plugins/FPSLocker/patches/0100DA201EBF8000/EE2CAB96FB6BEDA9.yaml new file mode 100644 index 0000000..76f6eb3 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100DA201EBF8000/EE2CAB96FB6BEDA9.yaml @@ -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 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100E5600D446000/C32B29CB5FBA96D9.yaml b/SaltySD/plugins/FPSLocker/patches/0100E5600D446000/C32B29CB5FBA96D9.yaml new file mode 100644 index 0000000..c204b91 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100E5600D446000/C32B29CB5FBA96D9.yaml @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/0100E6900A5A8000/A184B59D5091B68A.yaml b/SaltySD/plugins/FPSLocker/patches/0100E6900A5A8000/A184B59D5091B68A.yaml new file mode 100644 index 0000000..c0a8510 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100E6900A5A8000/A184B59D5091B68A.yaml @@ -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" \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100E6B01BD3A000/393323C7FBCBD72D.yaml b/SaltySD/plugins/FPSLocker/patches/0100E6B01BD3A000/393323C7FBCBD72D.yaml new file mode 100644 index 0000000..50cda4a --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100E6B01BD3A000/393323C7FBCBD72D.yaml @@ -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 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100E9001A94C000/ACBD89C999804FD2.yaml b/SaltySD/plugins/FPSLocker/patches/0100E9001A94C000/ACBD89C999804FD2.yaml new file mode 100644 index 0000000..dc64c21 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100E9001A94C000/ACBD89C999804FD2.yaml @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/0100E95004038000/F77F1559371C0EC6.yaml b/SaltySD/plugins/FPSLocker/patches/0100E95004038000/F77F1559371C0EC6.yaml new file mode 100644 index 0000000..dee5813 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100E95004038000/F77F1559371C0EC6.yaml @@ -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 diff --git a/SaltySD/plugins/FPSLocker/patches/0100F3400332C000/E3938FA78579C1CA.yaml b/SaltySD/plugins/FPSLocker/patches/0100F3400332C000/E3938FA78579C1CA.yaml new file mode 100644 index 0000000..9fb6e4f --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100F3400332C000/E3938FA78579C1CA.yaml @@ -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 diff --git a/SaltySD/saltysd_bootstrap.elf b/SaltySD/saltysd_bootstrap.elf new file mode 100644 index 0000000..27a032a Binary files /dev/null and b/SaltySD/saltysd_bootstrap.elf differ diff --git a/SaltySD/saltysd_bootstrap32_3k.elf b/SaltySD/saltysd_bootstrap32_3k.elf new file mode 100644 index 0000000..c23ec1b Binary files /dev/null and b/SaltySD/saltysd_bootstrap32_3k.elf differ diff --git a/SaltySD/saltysd_bootstrap32_5k.elf b/SaltySD/saltysd_bootstrap32_5k.elf new file mode 100644 index 0000000..dd57990 Binary files /dev/null and b/SaltySD/saltysd_bootstrap32_5k.elf differ diff --git a/SaltySD/saltysd_core.elf b/SaltySD/saltysd_core.elf index cf6289f..76020f8 100644 Binary files a/SaltySD/saltysd_core.elf and b/SaltySD/saltysd_core.elf differ diff --git a/SaltySD/saltysd_core32.elf b/SaltySD/saltysd_core32.elf new file mode 100644 index 0000000..b5d367e Binary files /dev/null and b/SaltySD/saltysd_core32.elf differ diff --git a/atmosphere/contents/0000000000534C56/exefs.nsp b/atmosphere/contents/0000000000534C56/exefs.nsp index f3786e3..985d37e 100644 Binary files a/atmosphere/contents/0000000000534C56/exefs.nsp and b/atmosphere/contents/0000000000534C56/exefs.nsp differ diff --git a/atmosphere/kips/loader.kip b/atmosphere/kips/loader.kip index 242c1cb..530cf4b 100644 Binary files a/atmosphere/kips/loader.kip and b/atmosphere/kips/loader.kip differ diff --git a/atmosphere/package3 b/atmosphere/package3 index a7a9413..d239d47 100644 Binary files a/atmosphere/package3 and b/atmosphere/package3 differ diff --git a/atmosphere/stratosphere.romfs b/atmosphere/stratosphere.romfs index 53a566c..77657c7 100644 Binary files a/atmosphere/stratosphere.romfs and b/atmosphere/stratosphere.romfs differ diff --git a/config/status-monitor/config.ini b/config/status-monitor/config.ini index eed318d..6c72735 100644 --- a/config/status-monitor/config.ini +++ b/config/status-monitor/config.ini @@ -2,6 +2,7 @@ ultra=Ultra battery_avg_iir_filter=false battery_time_left_refreshrate=60 +average_gpu_load=true [full] refresh_rate=1 diff --git a/config/ultrahand/lang/de.json b/config/ultrahand/lang/de.json index 079a5f6..9c19950 100644 --- a/config/ultrahand/lang/de.json +++ b/config/ultrahand/lang/de.json @@ -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", diff --git a/config/ultrahand/lang/en.json b/config/ultrahand/lang/en.json index 3fc70da..1b5275d 100644 --- a/config/ultrahand/lang/en.json +++ b/config/ultrahand/lang/en.json @@ -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", diff --git a/config/ultrahand/lang/es.json b/config/ultrahand/lang/es.json index f02b301..bdcd3e3 100644 --- a/config/ultrahand/lang/es.json +++ b/config/ultrahand/lang/es.json @@ -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", diff --git a/config/ultrahand/lang/fr.json b/config/ultrahand/lang/fr.json index 28e3246..9625664 100644 --- a/config/ultrahand/lang/fr.json +++ b/config/ultrahand/lang/fr.json @@ -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", diff --git a/config/ultrahand/lang/it.json b/config/ultrahand/lang/it.json index f5a8225..f6be67f 100644 --- a/config/ultrahand/lang/it.json +++ b/config/ultrahand/lang/it.json @@ -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", diff --git a/config/ultrahand/lang/ja.json b/config/ultrahand/lang/ja.json index 07ac02c..d94cd06 100644 --- a/config/ultrahand/lang/ja.json +++ b/config/ultrahand/lang/ja.json @@ -71,6 +71,7 @@ "OVERLAY_VERSIONS": "オーバーレイバージョン", "PACKAGE_VERSIONS": "パッケージバージョン", "OPAQUE_SCREENSHOTS": "不透明なスクリーンショット", + "PAGE_SWAP": "Page Swap", "ON": "オン", "OFF": "オフ", "PACKAGE_INFO": "パッケージ情報", diff --git a/config/ultrahand/lang/ko.json b/config/ultrahand/lang/ko.json index 89c8167..96643d9 100644 --- a/config/ultrahand/lang/ko.json +++ b/config/ultrahand/lang/ko.json @@ -71,6 +71,7 @@ "OVERLAY_VERSIONS": "오버레이 라벨", "PACKAGE_VERSIONS": "패키지 라벨", "OPAQUE_SCREENSHOTS": "불투명한 스크린샷", + "PAGE_SWAP": "Page Swap", "ON": "켜기", "OFF": "끄기", "PACKAGE_INFO": "패키지 정보", diff --git a/config/ultrahand/lang/nl.json b/config/ultrahand/lang/nl.json index e459e54..ff3b436 100644 --- a/config/ultrahand/lang/nl.json +++ b/config/ultrahand/lang/nl.json @@ -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", diff --git a/config/ultrahand/lang/pl.json b/config/ultrahand/lang/pl.json index 95184bc..02d75c6 100644 --- a/config/ultrahand/lang/pl.json +++ b/config/ultrahand/lang/pl.json @@ -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", diff --git a/config/ultrahand/lang/pt.json b/config/ultrahand/lang/pt.json index 887bdce..e1bff92 100644 --- a/config/ultrahand/lang/pt.json +++ b/config/ultrahand/lang/pt.json @@ -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", diff --git a/config/ultrahand/lang/ru.json b/config/ultrahand/lang/ru.json index 1f27501..6984dfb 100644 --- a/config/ultrahand/lang/ru.json +++ b/config/ultrahand/lang/ru.json @@ -71,6 +71,7 @@ "OVERLAY_VERSIONS": "Версии Оверлеев", "PACKAGE_VERSIONS": "Версии Пакетов", "OPAQUE_SCREENSHOTS": "Непрозрачные Скриншоты", + "PAGE_SWAP": "Page Swap", "ON": "Вкл", "OFF": "Выкл", "PACKAGE_INFO": "Информация", diff --git a/config/ultrahand/lang/zh-cn.json b/config/ultrahand/lang/zh-cn.json index 2fab35b..ad31b13 100644 --- a/config/ultrahand/lang/zh-cn.json +++ b/config/ultrahand/lang/zh-cn.json @@ -71,6 +71,7 @@ "OVERLAY_VERSIONS": "插件版本显示", "PACKAGE_VERSIONS": "插件包版本显示", "OPAQUE_SCREENSHOTS": "不透明的截图”", + "PAGE_SWAP": "Page Swap", "ON": "开启", "OFF": "关闭", "PACKAGE_INFO": "插件包信息", diff --git a/config/ultrahand/lang/zh-tw.json b/config/ultrahand/lang/zh-tw.json index adebde7..cb77f02 100644 --- a/config/ultrahand/lang/zh-tw.json +++ b/config/ultrahand/lang/zh-tw.json @@ -71,6 +71,7 @@ "OVERLAY_VERSIONS": "插件的標簽", "PACKAGE_VERSIONS": "插件包的標簽", "OPAQUE_SCREENSHOTS": "不透明的截圖", + "PAGE_SWAP": "Page Swap", "ON": "啟用", "OFF": "停用", "PACKAGE_INFO": "插件包信息", diff --git a/switch/.overlays/Status-Monitor-Overlay.ovl b/switch/.overlays/Status-Monitor-Overlay.ovl index 8f0b11c..89a1388 100644 Binary files a/switch/.overlays/Status-Monitor-Overlay.ovl and b/switch/.overlays/Status-Monitor-Overlay.ovl differ diff --git a/switch/.overlays/ovlmenu.ovl b/switch/.overlays/ovlmenu.ovl index 80f71a0..45fb230 100644 Binary files a/switch/.overlays/ovlmenu.ovl and b/switch/.overlays/ovlmenu.ovl differ diff --git a/switch/.packages/boot_package.ini b/switch/.packages/boot_package.ini index 498d1e4..3f0ddf8 100644 --- a/switch/.packages/boot_package.ini +++ b/switch/.packages/boot_package.ini @@ -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/'