Ultra 2.3|R3

This commit is contained in:
redraz 2025-01-04 11:42:49 +03:00
parent 65461efd23
commit 9c3765e08c
69 changed files with 1116 additions and 372 deletions
README.mdREADME_ENG.md
SaltySD
plugins/FPSLocker/patches
010008E01E32A000
01000AB01F9C0000
01001CC01B2D4000
01001E3017A10000
010021801DD26000
010025C0145D4000
010027B01E32C000
01003B90136DA000
01003EB01C2F0000
010045301B86C000
01004A001E32E000
010050F01DF9C000
010054E01D878000
010058F01DF8C000
01005C7015D30000
01005EA01C0FC000
01005EA01C0FC001
010066F01A0E0000
01006F401D934000
010072E01CE0E000
010073C01AF34000
010074F013262000
010075101EF84000
01007EF00011E000
0100853015E86000
0100926016012000
0100947013122000
010097F018538000
0100A21017C42000
0100B2301F4A8000
0100C9801FEE6000
0100CAF00B744000
0100CE101B698000
0100D1501ABAE000
0100D5801E904000
0100DA201EBF8000
0100E6B01BD3A000
0100EE00205BA000
0100F2C0115B6000
0100FD101186C000
0100FF500E34A000
saltysd_core.elfsaltysd_core32.elf
atmosphere
config
contents
0000000000534C56
420000000000000B
hosts
package3stratosphere.romfs
bootloader
switch

@ -71,8 +71,8 @@
* [Tinfoil](https://tinfoil.io) - Установщик и каталог игр. * [Tinfoil](https://tinfoil.io) - Установщик и каталог игр.
* [HB App Store](https://github.com/fortheusers/hb-appstore) - Бесплатный магазин для скачивания Homebrew приложений. * [HB App Store](https://github.com/fortheusers/hb-appstore) - Бесплатный магазин для скачивания Homebrew приложений.
* [PPSSPP](https://gbatemp.net/threads/ppsspp-switch-standalone-beta.544071/post-10492671) - Эмулятор PSP. * [PPSSPP](https://gbatemp.net/threads/ppsspp-switch-standalone-beta.544071/post-10492671) - Эмулятор PSP.
* [Moonlight Switch](https://github.com/XITRIX/Moonlight-Switch) - Клиент Moonlight, позволяет транслировать на консоль игры с PC.
* [ThemezerNX](https://github.com/suchmememanyskill/themezer-nx) + [NXThemes Installer](https://github.com/exelix11/SwitchThemeInjector) + [Theme Patches](https://github.com/exelix11/theme-patches) - Поиск и установка тем на свитч. * [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) - Программа для сброса контроллера батареи. Не используйте просто так! * [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - Программа для сброса контроллера батареи. Не используйте просто так!
* [MemToolkitNX](https://discord.com/channels/854839758815363072/1173171845139288114/1276196700750479480) - Бенчмарк и Тестер памяти. Результат сильно зависит от разгона CPU. * [MemToolkitNX](https://discord.com/channels/854839758815363072/1173171845139288114/1276196700750479480) - Бенчмарк и Тестер памяти. Результат сильно зависит от разгона CPU.
* Overlays: * Overlays:

@ -68,7 +68,6 @@
* [HB App Store](https://github.com/fortheusers/hb-appstore) - A free store for downloading Homebrew apps. * [HB App Store](https://github.com/fortheusers/hb-appstore) - A free store for downloading Homebrew apps.
* [PPSSPP](https://gbatemp.net/threads/ppsspp-switch-standalone-beta.544071/post-10492671) - PSP emulator. * [PPSSPP](https://gbatemp.net/threads/ppsspp-switch-standalone-beta.544071/post-10492671) - PSP emulator.
* [ThemezerNX](https://github.com/suchmememanyskill/themezer-nx) + [NXThemes Installer](https://github.com/exelix11/SwitchThemeInjector) + [Theme Patches](https://github.com/exelix11/theme-patches) - Searching and installing themes on Switch. * [ThemezerNX](https://github.com/suchmememanyskill/themezer-nx) + [NXThemes Installer](https://github.com/exelix11/SwitchThemeInjector) + [Theme Patches](https://github.com/exelix11/theme-patches) - Searching and installing themes on Switch.
* [ReverseNX Tool](https://github.com/masagrator/ReverseNX-Tool) - ReverseNX control program.
* [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - Program to reset the battery controller. Do not use unnecessarily! * [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - Program to reset the battery controller. Do not use unnecessarily!
* **`MemToolkitNX`** - Benchmark and Memory Tester. The result is highly dependent on CPU overclocking. * **`MemToolkitNX`** - Benchmark and Memory Tester. The result is highly dependent on CPU overclocking.

@ -0,0 +1,30 @@
# S.T.A.L.K.E.R.: Call of Prypiat 1.0.2
# BID: BBA39C65C1CC6463
unsafeCheck: true
ALL_FPS:
# psLoadedFrameLimitFps
-
type: evaluate_write
address: [MAIN, 0x17F9784]
value_type: float
value: FPS_LOCK_TARGET
# psCurrentFrameLimitFps
-
type: evaluate_write
address: [MAIN, 0x18168A0]
value_type: float
value: FPS_LOCK_TARGET
# psCurrentFrameLimitMs
-
type: evaluate_write
address: [MAIN, 0x1A8490C]
value_type: float
value: "1000 / FPS_LOCK_TARGET"
# ResolutionInfo::sDynresGPUBudgetMs
-
type: evaluate_write
address: [MAIN, 0x17F9760]
value_type: float
value: "0.99 * FRAMETIME_TARGET"

@ -0,0 +1,24 @@
# Chernobylite 1.1
# BID: 2D2065AEBF94F9AE
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x641EAB8, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x644C838, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x5C83700, 0]
value_type: int32
value: [0, 0]

@ -0,0 +1,27 @@
# Goat Simulator 3 1.0.7.5
# BID: C606C7DC1C0EC88F
unsafeCheck: false
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x954E2F8, 0]
value_type: float
value: ["0.81 * FRAMETIME_TARGET", "0.81 * FRAMETIME_TARGET"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x9573F60, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x8D7E218, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

@ -1,4 +1,4 @@
# Farming Simulator 23 Nintendo Switch Edition 1.6.0.0 # Farming Simulator 23 Nintendo Switch Edition 1.6.0.0/1.7.0.0
# BID: 17F37A56B17DD9CC # BID: 17F37A56B17DD9CC
unsafeCheck: true unsafeCheck: true

@ -0,0 +1,51 @@
# Momotaro Dentetsu: Showa, Heisei, Reiwa mo Teiban! Asia Edition 1.0.1
# BID: B2D4462B71536EC6
unsafeCheck: true
MASTER_WRITE:
# Remove double buffer
-
type: bytes
main_offset: 0x1B630
value_type: uint32
value: 0x52800061
-
type: bytes
main_offset: 0x5774C
value_type: uint32
value: 0x52800061
ALL_FPS:
# REF: 20 59 60 BC
# Internal FPS Lock
-
type: evaluate_write
address: [MAIN, 0xFF7090]
value_type: float
value: [FPS_TARGET, "60 / FPS_TARGET"]
# Blocking game to max 60 FPS because setting game speed ratio below 1 causes glitches
-
type: evaluate_compare
compare_address: [MAIN, 0xFF7090]
compare_type: ">"
compare_value_type: float
compare_value: 60
address: [MAIN, 0xFF7090]
value_type: float
value: 60
-
type: evaluate_compare
compare_address: [MAIN, 0xFF7090]
compare_type: "=="
compare_value_type: float
compare_value: 60
address: [MAIN, 0xFF7094]
value_type: float
value: 1
# Unknown value that is set based on FPS Lock function argument, 0 = 60 FPS, 1 = 30 FPS, 2 = 20 FPS, 3 = 15 FPS
# According to IDA is not used at all, but writing this anyway
-
type: evaluate_write
address: [MAIN, 0x10D8028]
value_type: uint32
value: "VSYNC_TARGET - 1"

@ -0,0 +1,27 @@
# GUNDAM BREAKER 4 1.9.0
# BID: 0CC82881FF112C6D
unsafeCheck: false
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x9F98D48, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x9FC67E8, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x97CADA8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

@ -0,0 +1,27 @@
# GUNDAM BREAKER 4 1.10.0
# BID: 6267E76E9540F2ED
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x9FA2D48, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x9FD07E8, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x97D4E48, 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.2
# BID: 227837B490A51033
unsafeCheck: true
ALL_FPS:
# psLoadedFrameLimitFps
-
type: evaluate_write
address: [MAIN, 0x17D4774]
value_type: float
value: FPS_LOCK_TARGET
# psCurrentFrameLimitFps
-
type: evaluate_write
address: [MAIN, 0x17F18E8]
value_type: float
value: FPS_LOCK_TARGET
# psCurrentFrameLimitMs
-
type: evaluate_write
address: [MAIN, 0x1A5F36C]
value_type: float
value: "1000 / FPS_LOCK_TARGET"
# ResolutionInfo::sDynresGPUBudgetMs
-
type: evaluate_write
address: [MAIN, 0x17D4750]
value_type: float
value: "0.99 * FRAMETIME_TARGET"

@ -0,0 +1,12 @@
# Shadowverse: Champion's Battle 1.3.0
# BID: 1F936E043FB8C349
unsafeCheck: true
ALL_FPS:
# UnityEngine.Time::fixedDeltaTime
-
type: evaluate_write
address: [MAIN, 0x64DB5C0, 0x48]
value_type: float
value: "1 / FPS_TARGET"

@ -0,0 +1,17 @@
# MEGATON MUSASHI W: WIRED 3.2.2
# BID: 1EC3E6373D7DA9A6
unsafeCheck: true
ALL_FPS:
# fixedDeltaTime = 1/FPS
-
type: evaluate_write
address: [MAIN, 0xCAC9F20, 0x48]
value_type: float
value: "1 / FPS_TARGET"
- # maximumDeltaTime = 1/15 (with this setting game will slow down below 15 FPS instead of 30 FPS)
type: write
address: [MAIN, 0xCAC9F20, 0x100]
value_type: float
value: 0.0666666666

@ -0,0 +1,17 @@
# MEGATON MUSASHI W: WIRED 3.2.0
# BID: 8286C091117CAECF
unsafeCheck: true
ALL_FPS:
# fixedDeltaTime = 1/FPS
-
type: evaluate_write
address: [MAIN, 0xCAA1720, 0x48]
value_type: float
value: "1 / FPS_TARGET"
- # maximumDeltaTime = 1/15 (with this setting game will slow down below 15 FPS instead of 30 FPS)
type: write
address: [MAIN, 0xCAA1720, 0x100]
value_type: float
value: 0.0666666666

@ -0,0 +1,12 @@
# MEGATON MUSASHI W: WIRED 3.2.3
# BID: D152798E91A87AE7
unsafeCheck: true
ALL_FPS:
# fixedDeltaTime = 1/FPS
-
type: evaluate_write
address: [MAIN, 0xCAC9F20, 0x48]
value_type: float
value: "1 / FPS_TARGET"

@ -0,0 +1,27 @@
# Romancing SaGa 2: Revenge of the Seven 1.0.2
# BID: 1933FBAFE977FA75
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6D1EA80, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x7BFAC70, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x7C534C0, 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.2
# BID: 8E8BFFE66292CFF1
unsafeCheck: true
ALL_FPS:
# psLoadedFrameLimitFps
-
type: evaluate_write
address: [MAIN, 0x165F4EC]
value_type: float
value: FPS_LOCK_TARGET
# psCurrentFrameLimitFps
-
type: evaluate_write
address: [MAIN, 0x167B9F0]
value_type: float
value: FPS_LOCK_TARGET
# psCurrentFrameLimitMs
-
type: evaluate_write
address: [MAIN, 0x18E7ACC]
value_type: float
value: "1000 / FPS_LOCK_TARGET"
# ResolutionInfo::sDynresGPUBudgetMs
-
type: evaluate_write
address: [MAIN, 0x165F2F0]
value_type: float
value: "0.99 * FRAMETIME_TARGET"

@ -0,0 +1,38 @@
# REYNATIS (US/EU) 1.0.6
# BID: 25A4C89527E7A6E6
unsafeCheck: true
MASTER_WRITE:
# Redirect reading DR timing in DynamicResolution::LowerResSW() to MAIN + 0x7C0DF00
# REF: 01 f0 67 1e
-
type: bytes
main_offset: 0x391CEEC
value_type: uint32
value: # 941702B0 818247FD 1020611E 6922482D CD020054 6A6240BD
- 0xB0021794 # adrp x20, #0x7c0d000
- 0xFD478281 # ldr d1, [x20, #0xf00]
- 0x1E612010 # fcmpe d0, d1
- 0x2D482269 # ldp s9, s8, [x19, #0x40]
- 0x540002CD # b.le #0x391cf54
- 0xBD40626A # ldr s10, [x19, #0x60]
-
type: bytes
main_offset: 0x391CF54
value_type: uint32
value:
- 0xFD478681 # ldr d1, [x20, #0xf08]
# Default handheld value
-
type: bytes
main_offset: 0x7C0DF00
value_type: double
value: [31, 29]
ALL_FPS:
# Dynamic Resolution Timing
-
type: evaluate_write
address: [MAIN, 0x7C0DF00]
value_type: double
value: ["0.93 * FRAMETIME_TARGET", "(0.93 * FRAMETIME_TARGET) - 2"]

@ -0,0 +1,38 @@
# REYNATIS (US/EU) 1.0.7
# BID: 7C8FE1FD610E1F1F
unsafeCheck: true
MASTER_WRITE:
# Redirect reading DR timing in DynamicResolution::LowerResSW() to MAIN + 0x7C0DF00
# REF: 01 f0 67 1e
-
type: bytes
main_offset: 0x391CEEC
value_type: uint32
value: # 941702B0 818247FD 1020611E 6922482D CD020054 6A6240BD
- 0xB0021794 # adrp x20, #0x7c0d000
- 0xFD478281 # ldr d1, [x20, #0xf00]
- 0x1E612010 # fcmpe d0, d1
- 0x2D482269 # ldp s9, s8, [x19, #0x40]
- 0x540002CD # b.le #0x391cf54
- 0xBD40626A # ldr s10, [x19, #0x60]
-
type: bytes
main_offset: 0x391CF54
value_type: uint32
value:
- 0xFD478681 # ldr d1, [x20, #0xf08]
# Default handheld value
-
type: bytes
main_offset: 0x7C0DF00
value_type: double
value: [31, 29]
ALL_FPS:
# Dynamic Resolution Timing
-
type: evaluate_write
address: [MAIN, 0x7C0DF00]
value_type: double
value: ["0.93 * FRAMETIME_TARGET", "(0.93 * FRAMETIME_TARGET) - 2"]

@ -0,0 +1,12 @@
# EA SPORTS FC 25 1.75.9499
# BID: 27BDC0166D5D5A1B
unsafeCheck: true
ALL_FPS:
# Internal FPS Lock
-
type: evaluate_write
address: [MAIN, 0xCE1DA68, 8]
value_type: double
value: FPS_TARGET

@ -0,0 +1,27 @@
# Funko Fusion 2.3.0
# BID: E6B427227FED8411
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x74BEA68, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x849A078, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x84C7F60, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

@ -0,0 +1,27 @@
# Funko Fusion 2.4.0
# BID: F0787926C4CFF8F1
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x74FBA68, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x84D7078, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x8504F60, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

@ -0,0 +1,21 @@
# Tales of Kenzera: TAU 1.5.0
# BID: 9E7FB72540D748BA
unsafeCheck: true
ALL_FPS:
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x6917E78, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x611ADC8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

@ -0,0 +1,28 @@
# SONIC X SHADOW GENERATIONS Launcher / SHADOW GENERATIONS 1.1.0
# BID: C8CDBFD621A6B29B
# FPS Lock is used to determine dynamic resolution timing too, but it doesn't work properly when setting higher FPS.
# DR Timing Fix is applied for anything above 30 FPS as it seems to fix the most notorious issue - stucking at 360p.
# Turn off Window Sync for better performance
unsafeCheck: true
ALL_FPS:
# Internal FPS Lock
# REF: C8 AA 8A 52 A8 30 A8 72 first ADRP above it
-
type: evaluate_write
address: [MAIN, 0x3EAB7B8, 0x14]
value_type: float
value: FPS_TARGET
# DR Timing fix, applied only for handheld
# Ref: 00 01 3F D6 B4 02 00 F9 E0 03 13 AA 01 3E 80 52 first ADRP above it
-
type: evaluate_compare
compare_address: [MAIN, 0x3EAB7E0, 0x18, 0x260, 0x24]
compare_value_type: float
compare_type: "=="
compare_value: -2.8
address: [MAIN, 0x3EAB7E0, 0x18, 0x260, 0x24]
value_type: float
value: ["-1.4 * VSYNC_TARGET", "-0.6 * VSYNC_TARGET", "0.025 * VSYNC_TARGET", "0.04 * VSYNC_TARGET", "0.05 * VSYNC_TARGET", "0.15 * VSYNC_TARGET"]

@ -1,4 +1,4 @@
# SONIC GENERATIONS 1.0.1 # SONIC GENERATIONS 1.0.1/1.1.0
# BID: D91C67509C6AED8D # BID: D91C67509C6AED8D
unsafeCheck: true unsafeCheck: true
@ -24,4 +24,4 @@ ALL_FPS:
type: write type: write
address: [MAIN, 0x5226F00] address: [MAIN, 0x5226F00]
value_type: uint8 value_type: uint8
value: 0 value: 0

@ -0,0 +1,21 @@
# Cassette Beasts 1.7.2
# BID: 153D5A2ABB9C0BA6
unsafeCheck: true
ALL_FPS:
# physics/common/physics_fps
-
type: evaluate_write
address: [MAIN, 0x30AAAE0, 0x24]
value_type: int32
value: FPS_TARGET
# debug/settings/fps/force_fps
-
type: evaluate_write
address: [MAIN, 0x30AAAE0, 0x30]
value_type: int32
value: FPS_LOCK_TARGET
-
type: block
what: timing

@ -0,0 +1,21 @@
# Cassette Beasts 1.7.1
# BID: F09EAE79357E3032
unsafeCheck: true
ALL_FPS:
# physics/common/physics_fps
-
type: evaluate_write
address: [MAIN, 0x30AAAE0, 0x24]
value_type: int32
value: FPS_LOCK_TARGET
# debug/settings/fps/force_fps
-
type: evaluate_write
address: [MAIN, 0x30AAAE0, 0x30]
value_type: int32
value: FPS_LOCK_TARGET
-
type: block
what: timing

@ -0,0 +1,21 @@
# Twilight Survivors 1.0.10
# BID: E3FBEB5A9C7788CD
unsafeCheck: true
ALL_FPS:
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x6583898, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x5D87128, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

@ -0,0 +1,27 @@
# F1 Manager 2024 1.10
# BID: 8A9EBE9FC405A31C
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0x7FC8A28, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x8002AA0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x7805AA8, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

@ -0,0 +1,27 @@
# LEGO Horizon Adventures 1.2.0
# BID: 675538722EE1FACB
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x9134990, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0xA103148, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0xA13DAF0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

@ -0,0 +1,27 @@
# LEGO Horizon Adventures 1.3.0
# BID: B3DFF885ABB66B5C
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x913A990, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals
-
type: evaluate_write
address: [MAIN, 0xA109148, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0xA143AF0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

@ -1,7 +1,7 @@
# Xenoblade Chronicles 3 2.2.0 # Xenoblade Chronicles 3 2.2.0
# BID: 82D187FE9EF9BE92 # BID: 82D187FE9EF9BE92
unsafeCheck: true unsafeCheck: false
MASTER_WRITE: MASTER_WRITE:
# Redirect DR frametime target reading to .bss code cave [MAIN, 0x236AB00] # Redirect DR frametime target reading to .bss code cave [MAIN, 0x236AB00]
@ -72,35 +72,7 @@ ALL_FPS:
compare_value: 0 compare_value: 0
address: [MAIN, 0x236AB00] address: [MAIN, 0x236AB00]
value_type: float value_type: float
value: "(1 / 30) / 2" value: "((1 / 30) / 2) * 0.78"
-
type: evaluate_compare
compare_address: [MAIN, 0x1BA1A98]
compare_type: "!="
compare_value_type: int8
compare_value: 0
address: [MAIN, 0x1BA1A90, 128]
value_type: float
value: "(1 / 30) / 2"
ALL_REFRESH_RATES:
-
type: compare
compare_address: [MAIN, 0x1BA1A98]
compare_type: "!="
compare_value_type: int8
compare_value: 0
address: [MAIN, 0x1B42DB0]
value_type: int32
value: [1, 1]
-
type: evaluate_compare
compare_address: [MAIN, 0x1BA1A98]
compare_type: "!="
compare_value_type: int8
compare_value: 0
address: [MAIN, 0x236AB00]
value_type: float
value: "1 / 30"
- -
type: evaluate_compare type: evaluate_compare
compare_address: [MAIN, 0x1BA1A98] compare_address: [MAIN, 0x1BA1A98]

@ -1,7 +1,7 @@
# Stray 1.6.0 # Stray 1.6.0
# BID: 109D974E180A5AA1 # BID: 109D974E180A5AA1
unsafeCheck: true unsafeCheck: false
ALL_FPS: ALL_FPS:
# Disable bUseFixedFrameRate # Disable bUseFixedFrameRate
@ -30,4 +30,4 @@ ALL_FPS:
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
- -
type: block type: block
what: timing what: timing

@ -95,8 +95,8 @@ MASTER_WRITE:
- 0xF9464422 - 0xF9464422
- 0xF9064420 - 0xF9064420
- 0xCB020000 - 0xCB020000
- 0x528502A2 - 0xD503201F
- 0x72A00FE2 - 0xB94D0822
- 0x52881541 - 0x52881541
- 0x72A07F21 - 0x72A07F21
- 0xEB01001F - 0xEB01001F
@ -193,6 +193,12 @@ MASTER_WRITE:
main_offset: 0x2D65C94 main_offset: 0x2D65C94
value_type: int32 value_type: int32
value: -2 value: -2
# Default min delta
-
type: bytes
main_offset: 0x2D65D08
value_type: int32
value: 33333333
ALL_FPS: ALL_FPS:
# DR GPU Time Factor # DR GPU Time Factor
- -
@ -200,13 +206,18 @@ ALL_FPS:
address: [MAIN, 0x2D65C80] address: [MAIN, 0x2D65C80]
value_type: float value_type: float
value: "(FPS_TARGET / 30) * 0.001" value: "(FPS_TARGET / 30) * 0.001"
# Set Min delta
-
type: evaluate_write
address: [MAIN, 0x2D65D08]
value_type: uint32
value: "FRAMETIME_TARGET * 1000000"
# Default vsync # Default vsync
- -
type: evaluate_write type: evaluate_write
address: [MAIN, 0x2D65C94] address: [MAIN, 0x2D65C94]
value_type: int32 value_type: int32
value: "VSYNC_TARGET * -1" value: "VSYNC_TARGET * -1"
ALL_REFRESH_RATES:
# Prerendered cutscenes must be played at 30 FPS # Prerendered cutscenes must be played at 30 FPS
- -
type: compare type: compare

@ -0,0 +1,34 @@
# No Man's Sky 5.2.9
# BID: 1FEBABDBBDE0228B
unsafeCheck: true
MASTER_WRITE:
# REF: A8 AA 8A 52 A8 40 A8 72
# NOP "CMP W8, #0" before ref
-
type: bytes
main_offset: 0x1F9CEC8
value_type: uint32
value: 0xD503201F
# Redirect DR frametime target to MAIN+0x4964F00
-
type: bytes
main_offset: 0x1F9CED4
value_type: uint32
value: # 52 4E 01 90 08 00 40 B9 40 02 4F BD
- 0x90014E52 # adrp x18, #0x4964000
- 0xB9400008 # ldr w8, [x0]
- 0xBD4F0240 # ldr s0, [x18, #0xf00]
# default value
-
type: bytes
main_offset: 0x4964F00
value_type: float
value: 33.3333333333
ALL_FPS:
-
type: evaluate_write
address: [MAIN, 0x4964F00]
value_type: float
value: FRAMETIME_TARGET

@ -0,0 +1,32 @@
# No Man's Sky 5.2.8
# BID: 6488A67709988BD7
unsafeCheck: true
MASTER_WRITE:
# Redirect DR frametime target to MAIN+0x4963F00
-
type: bytes
main_offset: 0x1F9D198
value_type: uint32
value: 0xD503201F
-
type: bytes
main_offset: 0x1F9D1A4
value_type: uint32
value:
- 0xD0014E32
- 0xB9400408
- 0xBD4F0240
# default value
-
type: bytes
main_offset: 0x4963F00
value_type: float
value: 33.3333333333
ALL_FPS:
-
type: evaluate_write
address: [MAIN, 0x4963F00]
value_type: float
value: FRAMETIME_TARGET

@ -0,0 +1,32 @@
# No Man's Sky 5.2.6
# BID: 9761E793CBE5895F
unsafeCheck: true
MASTER_WRITE:
# Redirect DR frametime target to MAIN+0x4962F00
-
type: bytes
main_offset: 0x1F9C5C8
value_type: uint32
value: 0xD503201F
-
type: bytes
main_offset: 0x1F9C5D4
value_type: uint32
value:
- 0xD0014E32
- 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,12 @@
# PowerWash Simulator 1.9.2
# BID: B2395B882C2BCB24
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

@ -3,76 +3,10 @@
unsafeCheck: true unsafeCheck: true
15FPS: #TODO: Patch DR FPS targets directly, for now -1 = 30 FPS, 0 = 60 FPS
# Address that is used to determine if it should use dev's own classes to get vsync target ALL_FPS:
# If we change it to anything that is above or equal 0, it's using Unity class that always returns -1
# Returning from function getting vsync target anything else than 2 results in Dynamic Resolution target set to 60 FPS, otherwise it's 30 FPS
# We cannot patch those FPS targets directly with FPSLocker as they are hardcoded
- -
type: write type: evaluate_write
address: [MAIN, 0x5B18318, 0x944] address: [MAIN, 0x5B18318, 0x944]
value_type: int32 value_type: int32
value: -1 value: "(VSYNC_TARGET * -1) + 1"
20FPS:
#Vsync target (default value)
-
type: write
address: [MAIN, 0x5B18318, 0x944]
value_type: int32
value: -1
25FPS:
#Vsync target (default value)
-
type: write
address: [MAIN, 0x5B18318, 0x944]
value_type: int32
value: -1
30FPS:
#Vsync target (default value)
-
type: write
address: [MAIN, 0x5B18318, 0x944]
value_type: int32
value: -1
35FPS:
#Vsync target
-
type: write
address: [MAIN, 0x5B18318, 0x944]
value_type: int32
value: 0
40FPS:
#Vsync target
-
type: write
address: [MAIN, 0x5B18318, 0x944]
value_type: int32
value: 0
45FPS:
#Vsync target
-
type: write
address: [MAIN, 0x5B18318, 0x944]
value_type: int32
value: 0
50FPS:
#Vsync target
-
type: write
address: [MAIN, 0x5B18318, 0x944]
value_type: int32
value: 0
55FPS:
#Vsync target
-
type: write
address: [MAIN, 0x5B18318, 0x944]
value_type: int32
value: 0
60FPS:
#Vsync target
-
type: write
address: [MAIN, 0x5B18318, 0x944]
value_type: int32
value: 0

@ -0,0 +1,12 @@
# DAVE THE DIVER 1.0.3.972
# BID: 448820AF8E20D65D
unsafeCheck: true
ALL_FPS:
# UnityEngine.Time::fixedDeltaTime
-
type: evaluate_write
address: [MAIN, 0x9735300, 0x48]
value_type: float
value: "1 / FPS_TARGET"

@ -0,0 +1,80 @@
# Another Crab's Treasure 1.0.103.9
# BID: 01CBDFDED43B80F5
unsafeCheck: true
MASTER_WRITE:
# Redirect updating various deltas to read frametime target from UnityEngine.Application::targetFrameRate, REF: 08 10 91 52 08 A1 A7 72
-
type: bytes
main_offset: 0x18EB7C8
value_type: uint32
value: # 08 EA 01 D0 08 39 4B B9 01 01 23 1E 00 10 2e 1e 00 18 21 1e
- 0xD001EA08 # adrp x8, 0x562d000
- 0xB94B3908 # ldr w8, [x8, #0xb38]
- 0x1E230101 # ucvtf s1, w8
- 0x1E2E1000 # fmov s0, #1.00000000
- 0x1E211800 # fdiv s0, s0, s1
-
type: bytes
main_offset: 0x18EF310
value_type: uint32
value: # E8 E9 01 D0 08 39 4B B9 01 01 23 1E 00 10 2e 1e 00 18 21 1e
- 0xD001E9E8 # adrp x8, 0x562d000
- 0xB94B3908 # ldr w8, [x8, #0xb38]
- 0x1E230101 # ucvtf s1, w8
- 0x1E2E1000 # fmov s0, #1.00000000
- 0x1E211800 # fdiv s0, s0, s1
# Redirect Dynamic Resolution GPU Timing target in DynamicResolutionScaler::Update to MAIN+0x5AA3F08
-
type: bytes
main_offset: 0x3882694
value_type: uint32
value: # 08 11 01 B0 08 85 47 F9 1F 20 03 D5 1F 20 03 D5
- 0xB0011108 # adrp x8, #0x5aa3000
- 0xF9478508 # ldr x8, [x8, #0xf08]
- 0xD503201F # nop
- 0xD503201F # nop
-
type: bytes
main_offset: 0x3882714
value_type: uint32
value: # 08 11 01 B0 08 85 47 F9 60 2A 40 BD 1F 20 03 D5 1F 20 03 D5
- 0xB0011108 # adrp x8, #0x5aa3000
- 0xF9478508 # ldr x8, [x8, #0xf08]
- 0xBD402A60 # ldr s0, [x19, #0x28]
- 0xD503201F # nop
- 0xD503201F # nop
-
type: bytes
main_offset: 0x3882788
value_type: uint32
value: # 08 11 01 B0 08 85 47 F9 1F 20 03 D5 1F 20 03 D5
- 0xB0011108 # adrp x8, #0x5aa3000
- 0xF9478508 # ldr x8, [x8, #0xf08]
- 0xD503201F # nop
- 0xD503201F # nop
# Default values
-
type: bytes
main_offset: 0x562DB38
value_type: uint32
value: 30
-
type: bytes
main_offset: 0x5AA3F08
value_type: double
value: 28.57142857142857
ALL_FPS:
# UnityEngine.Application::targetFrameRate
-
type: evaluate_write
address: [MAIN, 0x562DB38]
value_type: uint32
value: FPS_TARGET
# GPU Timing Target
-
type: evaluate_write
address: [MAIN, 0x5AA3F08]
value_type: double
value: "1000 / (FPS_TARGET + 5)"

@ -77,4 +77,4 @@ ALL_FPS:
type: evaluate_write type: evaluate_write
address: [MAIN, 0x5A8D908] address: [MAIN, 0x5A8D908]
value_type: double value_type: double
value: "1 / (FPS_TARGET + 5)" value: "1000 / (FPS_TARGET + 5)"

@ -0,0 +1,21 @@
# Life is Strange: Double Exposure 1.0.2
# BID: FF8EFD0E0E71BB03
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x6910E90, 0]
value_type: int32
value: [0, 0]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x791E2D8, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

@ -0,0 +1,17 @@
# Yakuza Kiwami 1.01
# BID: AE90FD64E7B2FE1E
unsafeCheck: true
ALL_FPS:
# Block cutscenes to 30 FPS to fix glitches
# REF 6B 01 40 F9 2A 29 42 B9 69 B9 40 F9, any result, second LDR above (LDR X9)
-
type: compare
compare_type: "!="
compare_value_type: uint64
compare_address: [MAIN, 0x2597E00]
compare_value: 0
address: [MAIN]
value_type: refresh_rate
value: 30

@ -1,6 +1,7 @@
# Valkyria Chronicles 1.0.0 # Valkyria Chronicles 1.0.0/1.0.1
# BID: FE77FFB8CBFB3A5C # BID: FE77FFB8CBFB3A5C
# 2D Animations speed is still tied to framerate # 2D Animations speed is still tied to framerate
# Buffers info is passed to fixed size class, making triple buffer patch requires effort
unsafeCheck: true unsafeCheck: true
@ -10,4 +11,4 @@ ALL_FPS:
type: evaluate_write type: evaluate_write
address: [MAIN, 0x95CA9C] address: [MAIN, 0x95CA9C]
value_type: float value_type: float
value: "60 / FPS_TARGET" value: "60 / FPS_TARGET"

@ -0,0 +1,27 @@
# Monster Jam Showdown 1.0.6
# BID: 35FC3A7D13060376
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0xAC39688, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0xAC74030, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x9C78970, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

@ -0,0 +1,27 @@
# Monster Jam Showdown 1.0.5
# BID: D07D96A610514C45
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0xAC34688, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0xAC6F030, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x9C73970, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

@ -0,0 +1,27 @@
# SOUTH PARK: SNOW DAY! 1.0.11
# BID: 4B7F793B8355C016
unsafeCheck: true
ALL_FPS:
# r.VSync
-
type: write
address: [MAIN, 0x7E97DC8, 0]
value_type: int32
value: [0, 0]
# r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 1 decimal
-
type: evaluate_write
address: [MAIN, 0x8663488, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x8688EF8, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
-
type: block
what: timing

@ -0,0 +1,18 @@
# Caravan SandWitch 1.0.5
# BID: CE493FC8CDD3D7B2
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x7A4A190, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x7A838A0, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]

@ -0,0 +1,27 @@
# Disney Epic Mickey: Rebrushed 1.0.4
# BID: 10844A7A20C5597E
unsafeCheck: true
ALL_FPS:
# r.DynamicRes.FrameTimeBudget
-
type: evaluate_write
address: [MAIN, 0x6E35A58, 0]
value_type: float
value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"]
# t.MaxFPS
-
type: evaluate_write
address: [MAIN, 0x6E636F8, 0]
value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x6666668, 0]
value_type: uint32
value: [0, 0]
-
type: block
what: timing

@ -0,0 +1,13 @@
# Card-en-Ciel 1.1.0
# BID: 27AB93A086868C70
unsafeCheck: true
ALL_FPS:
# Internal FPS Lock
# REF: look at nn::os::SleepThread() called in nnMain()
-
type: evaluate_write
address: [MAIN, 0x207F248, 0x5C]
value_type: float
value: 1 / FPS_LOCK_TARGET

@ -0,0 +1,14 @@
# Card-en-Ciel 1.2.0
# BID: 59C5C45EF17ACADA
# Buffers are hardcoded line by line and put into fixed size heap allocation, so getting triple buffer requires effort
unsafeCheck: true
ALL_FPS:
# Internal FPS Lock
# REF: look at nn::os::SleepThread() called in nnMain()
-
type: evaluate_write
address: [MAIN, 0x20F2248, 0x5C]
value_type: float
value: 1 / FPS_LOCK_TARGET

@ -0,0 +1,12 @@
# HEAVEN SEEKER ――The Savior of This Cruel World 1.0.4.126
# BID: E7011BF08747297B
unsafeCheck: true
ALL_FPS:
# UnityEngine.Time::fixedDeltaTime (default is 0.03268)
-
type: evaluate_write
address: [MAIN, 0x95672B8, 0x48]
value_type: float
value: "(1 / FPS_TARGET) / 1.02"

@ -165,7 +165,7 @@ ALL_FPS:
address: [MAIN, 0x472AAC4] address: [MAIN, 0x472AAC4]
value_type: float value_type: float
value: "(FPS_TARGET / 30) * 0.001" value: "(FPS_TARGET / 30) * 0.001"
ALL_REFRESH_RATES: # cutscenes must be played at 30 FPS
- -
type: compare type: compare
compare_address: [MAIN, 0x472AABC] compare_address: [MAIN, 0x472AABC]

@ -10,6 +10,12 @@ ALL_FPS:
address: [MAIN, 0x8082C68, 0] address: [MAIN, 0x8082C68, 0]
value_type: float value_type: float
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
# r.VSync
-
type: write
address: [MAIN, 0x78412B0, 0]
value_type: uint32
value: [0, 0]
- -
type: block type: block
what: timing what: timing

@ -1,7 +1,7 @@
# Xenoblade Chronicles 1.1.2 # Xenoblade Chronicles 1.1.2
# BID: 92C78BB3DCBBC3F7 # BID: 92C78BB3DCBBC3F7
unsafeCheck: true unsafeCheck: false
ALL_FPS: ALL_FPS:
- -

Binary file not shown.

Binary file not shown.

@ -1,7 +1,7 @@
[atmosphere] [atmosphere]
dmnt_cheats_enabled_by_default=u8!0x0 dmnt_cheats_enabled_by_default=u8!0x0
dmnt_always_save_cheat_toggles=u8!0x1 dmnt_always_save_cheat_toggles=u8!0x1
fatal_auto_reboot_interval=u64!0x0 fatal_auto_reboot_interval=u64!0x3000
enable_external_bluetooth_db=u8!0x1 enable_external_bluetooth_db=u8!0x1
[contents_delivery] [contents_delivery]

@ -1,8 +1,5 @@
127.0.0.1 *nintendo* 127.0.0.1 *nintendo*
127.0.0.1 ads.doubleclick.net 127.0.0.1 ads.doubleclick.net
127.0.0.1 s.ytimg.com
127.0.0.1 ad.youtube.com
127.0.0.1 ads.youtube.com
127.0.0.1 clients1.google.com 127.0.0.1 clients1.google.com
127.0.0.1 dts.innovid.com 127.0.0.1 dts.innovid.com
127.0.0.1 googleads4.g.doubleclick.net 127.0.0.1 googleads4.g.doubleclick.net
@ -23,7 +20,6 @@
127.0.0.1 files.adform.net 127.0.0.1 files.adform.net
127.0.0.1 secure-ds.serving-sys.com 127.0.0.1 secure-ds.serving-sys.com
127.0.0.1 securepubads.g.doubleclick.net 127.0.0.1 securepubads.g.doubleclick.net
127.0.0.1 s.youtube.com
127.0.0.1 2975c.v.fwmrm.net 127.0.0.1 2975c.v.fwmrm.net
127.0.0.1 static.doubleclick.net 127.0.0.1 static.doubleclick.net
127.0.0.1 googleadservices.com 127.0.0.1 googleadservices.com
@ -40,247 +36,5 @@
127.0.0.1 fwmrm.net 127.0.0.1 fwmrm.net
127.0.0.1 innovid.com 127.0.0.1 innovid.com
127.0.0.1 2mdn.net 127.0.0.1 2mdn.net
127.0.0.1 r8.sn-4g5ednzz.googlevideo.com
127.0.0.1 r8---sn-4g5ednzz.googlevideo.com
127.0.0.1 r6.sn-4g5ednll.googlevideo.com
127.0.0.1 r6.sn-4g5edney.googlevideo.com
127.0.0.1 r6.sn-4g5ednek.googlevideo.com
127.0.0.1 r6.sn-4g5ednee.googlevideo.com
127.0.0.1 r6.sn-4g5edn7e.googlevideo.com
127.0.0.1 r6.sn-4g5e6nez.googlevideo.com
127.0.0.1 r6---sn-4g5ednll.googlevideo.com
127.0.0.1 r6---sn-4g5edney.googlevideo.com
127.0.0.1 r6---sn-4g5ednek.googlevideo.com
127.0.0.1 r6---sn-4g5ednee.googlevideo.com
127.0.0.1 r6---sn-4g5edn7e.googlevideo.com
127.0.0.1 r6---sn-4g5e6nez.googlevideo.com
127.0.0.1 r5.sn-h0jeenek.googlevideo.com
127.0.0.1 r5.sn-4g5ednzz.googlevideo.com
127.0.0.1 r5.sn-4g5ednsz.googlevideo.com
127.0.0.1 r5.sn-4g5ednsy.googlevideo.com
127.0.0.1 r5.sn-4g5ednsr.googlevideo.com
127.0.0.1 r5.sn-4g5ednsl.googlevideo.com
127.0.0.1 r5.sn-4g5ednsd.googlevideo.com
127.0.0.1 r5.sn-4g5edns6.googlevideo.com
127.0.0.1 r5.sn-4g5ednly.googlevideo.com
127.0.0.1 r5.sn-4g5edn7s.googlevideo.com
127.0.0.1 r5.sn-4g5e6nzl.googlevideo.com
127.0.0.1 r5.sn-4g5e6nze.googlevideo.com
127.0.0.1 r5.sn-4g5e6nz7.googlevideo.com
127.0.0.1 r5.sn-4g5e6nsz.googlevideo.com
127.0.0.1 r5.sn-4g5e6nsy.googlevideo.com
127.0.0.1 r5.sn-4g5e6nss.googlevideo.com
127.0.0.1 r5.sn-4g5e6nsk.googlevideo.com
127.0.0.1 r5.sn-4g5e6ns7.googlevideo.com
127.0.0.1 r5.sn-4g5e6ns6.googlevideo.com
127.0.0.1 r5.sn-4g5e6nls.googlevideo.com
127.0.0.1 r5.sn-4g5e6ney.googlevideo.com
127.0.0.1 r5.sn-4g5e6n7r.googlevideo.com
127.0.0.1 r5.sn-4g5e6n7k.googlevideo.com
127.0.0.1 r5---sn-h0jeenek.googlevideo.com
127.0.0.1 r5---sn-4g5ednzz.googlevideo.com
127.0.0.1 r5---sn-4g5ednsz.googlevideo.com
127.0.0.1 r5---sn-4g5ednsy.googlevideo.com
127.0.0.1 r5---sn-4g5ednsr.googlevideo.com
127.0.0.1 r5---sn-4g5ednsl.googlevideo.com
127.0.0.1 r5---sn-4g5ednsd.googlevideo.com
127.0.0.1 r5---sn-4g5edns6.googlevideo.com
127.0.0.1 r5---sn-4g5ednly.googlevideo.com
127.0.0.1 r5---sn-4g5edn7s.googlevideo.com
127.0.0.1 r5---sn-4g5e6nzl.googlevideo.com
127.0.0.1 r5---sn-4g5e6nze.googlevideo.com
127.0.0.1 r5---sn-4g5e6nz7.googlevideo.com
127.0.0.1 r5---sn-4g5e6nsz.googlevideo.com
127.0.0.1 r5---sn-4g5e6nsy.googlevideo.com
127.0.0.1 r5---sn-4g5e6nss.googlevideo.com
127.0.0.1 r5---sn-4g5e6nsk.googlevideo.com
127.0.0.1 r5---sn-4g5e6ns7.googlevideo.com
127.0.0.1 r5---sn-4g5e6ns6.googlevideo.com
127.0.0.1 r5---sn-4g5e6nls.googlevideo.com
127.0.0.1 r5---sn-4g5e6ney.googlevideo.com
127.0.0.1 r5---sn-4g5e6n7r.googlevideo.com
127.0.0.1 r5---sn-4g5e6n7k.googlevideo.com
127.0.0.1 r4.sn-4g5ednz7.googlevideo.com
127.0.0.1 r4.sn-4g5ednsy.googlevideo.com
127.0.0.1 r4.sn-4g5ednsk.googlevideo.com
127.0.0.1 r4.sn-4g5ednsd.googlevideo.com
127.0.0.1 r4---sn-4g5ednz7.googlevideo.com
127.0.0.1 r4---sn-4g5ednsy.googlevideo.com
127.0.0.1 r4---sn-4g5ednsk.googlevideo.com
127.0.0.1 r4---sn-4g5ednsd.googlevideo.com
127.0.0.1 r3.sn-4g5ednz7.googlevideo.com
127.0.0.1 r3.sn-4g5ednss.googlevideo.com
127.0.0.1 r3.sn-4g5ednsd.googlevideo.com
127.0.0.1 r3.sn-4g5ednls.googlevideo.com
127.0.0.1 r3.sn-4g5ednll.googlevideo.com
127.0.0.1 r3.sn-4g5ednee.googlevideo.com
127.0.0.1 r3.sn-4g5edned.googlevideo.com
127.0.0.1 r3.sn-4g5edne7.googlevideo.com
127.0.0.1 r3.sn-4g5edne6.googlevideo.com
127.0.0.1 r3.sn-4g5e6nzz.googlevideo.com
127.0.0.1 r3.sn-4g5e6nzs.googlevideo.com
127.0.0.1 r3.sn-4g5e6nsz.googlevideo.com
127.0.0.1 r3.sn-4g5e6nsy.googlevideo.com
127.0.0.1 r3.sn-4g5e6nsk.googlevideo.com
127.0.0.1 r3.sn-4g5e6nle.googlevideo.com
127.0.0.1 r3.sn-4g5e6nld.googlevideo.com
127.0.0.1 r3---sn-4g5ednz7.googlevideo.com
127.0.0.1 r3---sn-4g5ednss.googlevideo.com
127.0.0.1 r3---sn-4g5ednsd.googlevideo.com
127.0.0.1 r3---sn-4g5ednls.googlevideo.com
127.0.0.1 r3---sn-4g5ednll.googlevideo.com
127.0.0.1 r3---sn-4g5ednee.googlevideo.com
127.0.0.1 r3---sn-4g5edned.googlevideo.com
127.0.0.1 r3---sn-4g5edne7.googlevideo.com
127.0.0.1 r3---sn-4g5edne6.googlevideo.com
127.0.0.1 r3---sn-4g5e6nzz.googlevideo.com
127.0.0.1 r3---sn-4g5e6nzs.googlevideo.com
127.0.0.1 r3---sn-4g5e6nsz.googlevideo.com
127.0.0.1 r3---sn-4g5e6nsy.googlevideo.com
127.0.0.1 r3---sn-4g5e6nsk.googlevideo.com
127.0.0.1 r3---sn-4g5e6nle.googlevideo.com
127.0.0.1 r3---sn-4g5e6nld.googlevideo.com
127.0.0.1 r2.sn-hp57kn6e.googlevideo.com
127.0.0.1 r2.sn-h0jeln7e.googlevideo.com
127.0.0.1 r2.sn-h0jeener.googlevideo.com
127.0.0.1 r2.sn-h0jeen76.googlevideo.com
127.0.0.1 r2.sn-4g5ednzz.googlevideo.com
127.0.0.1 r2.sn-4g5ednly.googlevideo.com
127.0.0.1 r2.sn-4g5ednls.googlevideo.com
127.0.0.1 r2.sn-4g5ednle.googlevideo.com
127.0.0.1 r2.sn-4g5ednee.googlevideo.com
127.0.0.1 r2.sn-4g5edned.googlevideo.com
127.0.0.1 r2.sn-4g5edn7y.googlevideo.com
127.0.0.1 r2.sn-4g5e6nsz.googlevideo.com
127.0.0.1 r2.sn-4g5e6nsy.googlevideo.com
127.0.0.1 r2.sn-4g5e6nsk.googlevideo.com
127.0.0.1 r2.sn-4g5e6ns6.googlevideo.com
127.0.0.1 r2.sn-4g5e6nl7.googlevideo.com
127.0.0.1 r2.sn-4g5e6ney.googlevideo.com
127.0.0.1 r2---sn-hp57kn6e.googlevideo.com
127.0.0.1 r2---sn-h0jeln7e.googlevideo.com
127.0.0.1 r2---sn-h0jeener.googlevideo.com
127.0.0.1 r2---sn-h0jeen76.googlevideo.com
127.0.0.1 r2---sn-4g5ednzz.googlevideo.com
127.0.0.1 r2---sn-4g5ednse.googlevideo.com
127.0.0.1 r2---sn-4g5ednly.googlevideo.com
127.0.0.1 r2---sn-4g5ednls.googlevideo.com
127.0.0.1 r2---sn-4g5ednle.googlevideo.com
127.0.0.1 r2---sn-4g5ednee.googlevideo.com
127.0.0.1 r2---sn-4g5edned.googlevideo.com
127.0.0.1 r2---sn-4g5edn7y.googlevideo.com
127.0.0.1 r2---sn-4g5e6nsz.googlevideo.com
127.0.0.1 r2---sn-4g5e6nsy.googlevideo.com
127.0.0.1 r2---sn-4g5e6nsk.googlevideo.com
127.0.0.1 r2---sn-4g5e6ns6.googlevideo.com
127.0.0.1 r2---sn-4g5e6nl7.googlevideo.com
127.0.0.1 r2---sn-4g5e6ney.googlevideo.com
127.0.0.1 r15.sn-4g5ednzz.googlevideo.com
127.0.0.1 r15---sn-4g5ednzz.googlevideo.com
127.0.0.1 r11.sn-4g5ednzz.googlevideo.com
127.0.0.1 r11---sn-4g5ednzz.googlevideo.com
127.0.0.1 r10.sn-4g5ednzz.googlevideo.com
127.0.0.1 r10---sn-4g5ednzz.googlevideo.com
127.0.0.1 r1.sn-h0jeln7e.googlevideo.com
127.0.0.1 r1.sn-h0jeened.googlevideo.com
127.0.0.1 r1.sn-h0jeen76.googlevideo.com
127.0.0.1 r1.sn-4g5ednsd.googlevideo.com
127.0.0.1 r1.sn-4g5ednly.googlevideo.com
127.0.0.1 r1.sn-4g5ednll.googlevideo.com
127.0.0.1 r1.sn-4g5edne6.googlevideo.com
127.0.0.1 r1.sn-4g5e6nzz.googlevideo.com
127.0.0.1 r1.sn-4g5e6nz7.googlevideo.com
127.0.0.1 r1.sn-4g5e6nsy.googlevideo.com
127.0.0.1 r1.sn-4g5e6nez.googlevideo.com
127.0.0.1 r1---sn-h0jeln7e.googlevideo.com
127.0.0.1 r1---sn-h0jeened.googlevideo.com
127.0.0.1 r1---sn-h0jeen76.googlevideo.com
127.0.0.1 r1---sn-4g5ednsd.googlevideo.com
127.0.0.1 r1---sn-4g5ednly.googlevideo.com
127.0.0.1 r1---sn-4g5ednll.googlevideo.com
127.0.0.1 r1---sn-4g5edne6.googlevideo.com
127.0.0.1 r1---sn-4g5e6nzz.googlevideo.com
127.0.0.1 r1---sn-4g5e6nz7.googlevideo.com
127.0.0.1 r1---sn-4g5e6nsy.googlevideo.com
127.0.0.1 r1---sn-4g5e6ns7.googlevideo.com
127.0.0.1 r1---sn-4g5e6nez.googlevideo.com
127.0.0.1 manifest.googlevideo.com
127.0.0.1 r8.sn-n02xgoxufvg3-2gbs.googlevideo.com
127.0.0.1 r8---sn-n02xgoxufvg3-2gbs.googlevideo.com
127.0.0.1 r6.sn-4g5edne7.googlevideo.com
127.0.0.1 r6---sn-4g5edne7.googlevideo.com
127.0.0.1 r5.sn-hp57yn7y.googlevideo.com
127.0.0.1 r5---sn-hp57yn7y.googlevideo.com
127.0.0.1 r4.sn-h0jeln7l.googlevideo.com
127.0.0.1 r4.sn-h0jeln7e.googlevideo.com
127.0.0.1 r4.sn-h0jeened.googlevideo.com
127.0.0.1 r4.sn-4g5ednzz.googlevideo.com
127.0.0.1 r4.sn-4g5edns7.googlevideo.com
127.0.0.1 r4.sn-4g5ednly.googlevideo.com
127.0.0.1 r4.sn-4g5ednld.googlevideo.com
127.0.0.1 r4.sn-4g5edney.googlevideo.com
127.0.0.1 r4.sn-4g5e6nzs.googlevideo.com
127.0.0.1 r4.sn-4g5e6ns6.googlevideo.com
127.0.0.1 r4.sn-4g5e6nez.googlevideo.com
127.0.0.1 r4---sn-h0jeln7l.googlevideo.com
127.0.0.1 r4---sn-h0jeln7e.googlevideo.com
127.0.0.1 r4---sn-h0jeened.googlevideo.com
127.0.0.1 r4---sn-4g5ednzz.googlevideo.com
127.0.0.1 r4---sn-4g5edns7.googlevideo.com
127.0.0.1 r4---sn-4g5ednly.googlevideo.com
127.0.0.1 r4---sn-4g5ednld.googlevideo.com
127.0.0.1 r4---sn-4g5edney.googlevideo.com
127.0.0.1 r4---sn-4g5e6nzs.googlevideo.com
127.0.0.1 r4---sn-4g5e6ns6.googlevideo.com
127.0.0.1 r4---sn-4g5e6nez.googlevideo.com
127.0.0.1 r3.sn-4g5ednzz.googlevideo.com
127.0.0.1 r3.sn-4g5ednsz.googlevideo.com
127.0.0.1 r3.sn-4g5edns6.googlevideo.com
127.0.0.1 r3.sn-4g5ednld.googlevideo.com
127.0.0.1 r3.sn-4g5e6nsr.googlevideo.com
127.0.0.1 r3.sn-4g5e6nl7.googlevideo.com
127.0.0.1 r3---sn-4g5ednzz.googlevideo.com
127.0.0.1 r3---sn-4g5ednsz.googlevideo.com
127.0.0.1 r3---sn-4g5edns6.googlevideo.com
127.0.0.1 r3---sn-4g5ednld.googlevideo.com
127.0.0.1 r3---sn-4g5e6nsr.googlevideo.com
127.0.0.1 r3---sn-4g5e6nl7.googlevideo.com
127.0.0.1 r2.sn-4g5ednse.googlevideo.com
127.0.0.1 r2.sn-4g5ednld.googlevideo.com
127.0.0.1 r2.sn-4g5e6nzl.googlevideo.com
127.0.0.1 r2.sn-4g5e6nez.googlevideo.com
127.0.0.1 r2---sn-4g5ednld.googlevideo.com
127.0.0.1 r2---sn-4g5e6nzl.googlevideo.com
127.0.0.1 r2---sn-4g5e6nez.googlevideo.com
127.0.0.1 r1.sn-4g5ednsr.googlevideo.com
127.0.0.1 r1.sn-4g5ednsl.googlevideo.com
127.0.0.1 r1.sn-4g5ednse.googlevideo.com
127.0.0.1 r1.sn-4g5edned.googlevideo.com
127.0.0.1 r1.sn-4g5e6ns7.googlevideo.com
127.0.0.1 r1.sn-4g5e6ns6.googlevideo.com
127.0.0.1 r1.sn-4g5e6nl6.googlevideo.com
127.0.0.1 r1.sn-4g5e6ne6.googlevideo.com
127.0.0.1 r1---sn-4g5ednsr.googlevideo.com
127.0.0.1 r1---sn-4g5ednsl.googlevideo.com
127.0.0.1 r1---sn-4g5ednse.googlevideo.com
127.0.0.1 r1---sn-4g5edned.googlevideo.com
127.0.0.1 r1---sn-4g5e6ns6.googlevideo.com
127.0.0.1 r1---sn-4g5e6nl6.googlevideo.com
127.0.0.1 r1---sn-4g5e6ne6.googlevideo.com
127.0.0.1 r2---sn-5hne6n7z.googlevideo.com
127.0.0.1 r2---sn-25ge7nsd.googlevideo.com
127.0.0.1 r4---sn-25ge7nsk.googlevideo.com
127.0.0.1 r6---sn-25ge7nsl.googlevideo.com
127.0.0.1 r1---sn-25glen7y.googlevideo.com
127.0.0.1 r1---sn-25glenez.googlevideo.com
127.0.0.1 r10---sn-4gxx-25gel.googlevideo.com
127.0.0.1 r11---sn-4gxx-25ge7.googlevideo.com
127.0.0.1 r4---sn-4gxx-25gee.googlevideo.com
127.0.0.1 r16---sn-4gxx-25ge7.googlevideo.com
127.0.0.1 r3---sn-4gxx-25gel.googlevideo.com
127.0.0.1 r1---sn-4gxx-25gel.googlevideo.com
127.0.0.1 r9---sn-4gxx-25gel.googlevideo.com
127.0.0.1 r9---sn-4gxx-25gy.googlevideo.com
127.0.0.1 r6---sn-4g5e6nes.googlevideo.com
95.216.149.205 *conntest.nintendowifi.net 95.216.149.205 *conntest.nintendowifi.net
95.216.149.205 *ctest.cdn.nintendo.net 95.216.149.205 *ctest.cdn.nintendo.net

Binary file not shown.

Binary file not shown.

@ -1,14 +1,13 @@
[config] [config]
autoboot=1 autoboot=1
autoboot_list=0 autoboot_list=0
bootwait=3 bootwait=4
backlight=40 backlight=40
noticker=0 noticker=0
autohosoff=2 autohosoff=2
autonogc=0 autonogc=0
updater2p=0 updater2p=0
bootprotect=0 bootprotect=0
{}
[Atmosphere] [Atmosphere]
fss0=atmosphere/package3 fss0=atmosphere/package3
@ -16,12 +15,9 @@ cal0blank=1
kip1=atmosphere/kips/* kip1=atmosphere/kips/*
logopath=bootloader/res/bootscreen.bmp logopath=bootloader/res/bootscreen.bmp
icon=bootloader/res/atmo_cfw.bmp icon=bootloader/res/atmo_cfw.bmp
{}
[Safe Mode] [Safe Mode]
fss0=atmosphere/package3 fss0=atmosphere/package3
cal0blank=1 cal0blank=1
logopath=bootloader/res/bootscreen.bmp logopath=bootloader/res/bootscreen.bmp
icon=bootloader/res/atmo_sm.bmp icon=bootloader/res/atmo_sm.bmp
{}

@ -1,4 +1,3 @@
[Semi Stock] [Semi Stock]
fss0=atmosphere/package3 fss0=atmosphere/package3
emummc_force_disable=1 emummc_force_disable=1
@ -6,7 +5,6 @@ cal0blank=0
kip1=atmosphere/kips/* kip1=atmosphere/kips/*
logopath=bootloader/res/bootscreen.bmp logopath=bootloader/res/bootscreen.bmp
icon=bootloader/res/sys_cfw.bmp icon=bootloader/res/sys_cfw.bmp
{}
[Semi Safe] [Semi Safe]
fss0=atmosphere/package3 fss0=atmosphere/package3
@ -14,7 +12,6 @@ emummc_force_disable=1
cal0blank=0 cal0blank=0
logopath=bootloader/res/bootscreen.bmp logopath=bootloader/res/bootscreen.bmp
icon=bootloader/res/sys_sm.bmp icon=bootloader/res/sys_sm.bmp
{}
[Full Stock] [Full Stock]
fss0=atmosphere/package3 fss0=atmosphere/package3
@ -22,4 +19,3 @@ emummc_force_disable=1
cal0blank=0 cal0blank=0
stock=1 stock=1
icon=bootloader/res/stock.bmp icon=bootloader/res/stock.bmp
{}

Binary file not shown.

Before

(image error) Size: 3.5 MiB

After

(image error) Size: 3.5 MiB

Binary file not shown.

Binary file not shown.

@ -4,17 +4,21 @@ set-ini-val /bootloader/hekate_ipl.ini config autoboot 1
set-ini-val /bootloader/hekate_ipl.ini config autoboot_list 0 set-ini-val /bootloader/hekate_ipl.ini config autoboot_list 0
reboot reboot
[Semi-Stock - Forced] [Semi Stock - Forced]
set-ini-val /bootloader/hekate_ipl.ini config autoboot 1 set-ini-val /bootloader/hekate_ipl.ini config autoboot 1
set-ini-val /bootloader/hekate_ipl.ini config autoboot_list 1 set-ini-val /bootloader/hekate_ipl.ini config autoboot_list 1
reboot reboot
[Hekate - Bootloader]
reboot HEKATE
[$] [$]
;mode=table ;mode=table
;background=false ;background=false
;gap=17 ;gap=17
[Other] [Other]
;mode=table ;mode=table
;background=false
;header_indent=true ;header_indent=true
;section_text_color=#FFFFFF ;section_text_color=#FFFFFF
;gap=20 ;gap=20