diff --git a/README.md b/README.md index 7c4ca41..07b592b 100644 --- a/README.md +++ b/README.md @@ -78,6 +78,7 @@ * [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - Программа для сброса контроллера батареи. Не используйте просто так! * [MemToolkitNX](https://discord.com/channels/854839758815363072/1173171845139288114/1324099100202766408) - Бенчмарк и Тестер памяти. Результат сильно зависит от разгона CPU. * [MemToolkitNX OLD](https://discord.com/channels/854839758815363072/1173171845139288114/1276196700750479480) - Бенчмарк и Тестер памяти. Результат сильно зависит от разгона CPU. Старая версия, которая многим нравится больше новой. + * [MicroMemBench](https://github.com/rashevskyv/4IFIR) - Бенчмарк. Результат сильно зависит от разгона CPU. Версия из Чифира которая в реальном времени тестирует CPU Copy, что позволяет быстро узнать результат после изменения таймингов. * Overlays: * [Status Monitor Ultra](https://github.com/Ultra-NX/Status-Monitor-Overlay) - Форк Status Monitor для UltraNX, поддерживает много пресетов Micro-оверлея, и обладает рядом уникальных фишек. diff --git a/README_ENG.md b/README_ENG.md index 147ec02..0ab8751 100644 --- a/README_ENG.md +++ b/README_ENG.md @@ -74,6 +74,7 @@ * [Battery Desync Fix](https://github.com/CTCaer/battery_desync_fix_nx) - Program to reset the battery controller. Do not use unnecessarily! * [MemToolkitNX](https://discord.com/channels/854839758815363072/1173171845139288114/1324099100202766408) - Benchmark and Memory Tester. The result is highly dependent on CPU overclocking. * [MemToolkitNX OLD](https://discord.com/channels/854839758815363072/1173171845139288114/1276196700750479480) - Benchmark and Memory Tester. The result is highly dependent on CPU overclocking. The old version, which many people like better than the new one. + * [MicroMemBench](https://github.com/rashevskyv/4IFIR) - Benchmark. The result is highly dependent on CPU overclocking. A version from 4ifir that tests CPU Copy in real time, which allows you to quickly find out the result after changing timings. * Overlays: * [Status Monitor Ultra](https://github.com/Ultra-NX/Status-Monitor-Overlay) - Status Monitor fork for UltraNX, supports many Micro-overlay presets, and has a number of unique features. diff --git a/SaltySD/plugins/FPSLocker/patches/0100047013378000/7E65E5BC3564BE46.yaml b/SaltySD/plugins/FPSLocker/patches/0100047013378000/7E65E5BC3564BE46.yaml new file mode 100644 index 0000000..256fe54 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100047013378000/7E65E5BC3564BE46.yaml @@ -0,0 +1,22 @@ +# Gal*Gun Returns 1.0.4 +# BID: 7E65E5BC3564BE46 +# Buffers are hardcoded into fixed size class, so it's hard to get triple buffer + +unsafeCheck: true + +ALL_FPS: + # FPS Target + FPS Lock + - + type: evaluate_write + address: [MAIN, 0x16CE8A8, 0x20] + value_type: float + value: "60 / FPS_TARGET" + # Lipsync fix + - + type: evaluate_write + address: [MAIN, 0x1BA0A1C] + value_type: uint32 + value: FPS_TARGET + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/010008301AA96000/2A5244CCB17B44AC.yaml b/SaltySD/plugins/FPSLocker/patches/010008301AA96000/2A5244CCB17B44AC.yaml new file mode 100644 index 0000000..3ac492e --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010008301AA96000/2A5244CCB17B44AC.yaml @@ -0,0 +1,36 @@ +# Tiebreak+: Official Game of the ATP and WTA 1.1.0 +# BID: 2A5244CCB17B44AC + +unsafeCheck: true + +MASTER_WRITE: + # Triple buffer + # REF: 00 40 00 00 00 04 00 00 00 88 00 00 02 00 00 00 + - + type: bytes + main_offset: 0x1A81E6C + value_type: uint32 + value: 3 + # Redirect Dynamic Resolution target reading to MAIN + 0x30C2F00 + # REF: 0C 9A 88 52 0C 6B A7 72 + - + type: bytes + main_offset: 0x147AA94 + value_type: uint32 + value: + - 0x9000E248 # ADRP X8, 0x30C2000 + - 0xBD4F0103 # LDR S3, [X8, 0xF00] + - 0xD503201F # NOP + ## Default values + - + type: bytes + main_offset: 0x30C2F00 + value_type: float + value: 0.03333333333 +ALL_FPS: + # Adjust Dynamic Resolution target, we are using this trick because function is overengineered and it's not easy to just use standard 1 / FPS_TARGET + - + type: evaluate_write + address: [MAIN, 0x30C2F00] + value_type: float + value: "0.8 / FPS_TARGET" \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01001CC01B2D4000/504EBEAB62E802AD.yaml b/SaltySD/plugins/FPSLocker/patches/01001CC01B2D4000/504EBEAB62E802AD.yaml new file mode 100644 index 0000000..24b6883 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01001CC01B2D4000/504EBEAB62E802AD.yaml @@ -0,0 +1,27 @@ +# Goat Simulator 3 1.0.7.7 +# BID: 504EBEAB62E802AD + +unsafeCheck: true + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget + - + type: evaluate_write + address: [MAIN, 0x99DC468, 0] + value_type: float + value: ["0.81 * FRAMETIME_TARGET", "0.81 * FRAMETIME_TARGET"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x9A02290, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x920CBF8, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010024700901A000/9CDFB0CD24CAE030.yaml b/SaltySD/plugins/FPSLocker/patches/010024700901A000/9CDFB0CD24CAE030.yaml new file mode 100644 index 0000000..89fbda4 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010024700901A000/9CDFB0CD24CAE030.yaml @@ -0,0 +1,27 @@ +# Gal*Gun 2 1.0.4 +# BID: 9CDFB0CD24CAE030 + +unsafeCheck: false + +ALL_FPS: + # r.VSync + - + type: write + address: [MAIN, 0x4346990, 0] + value_type: uint32 + value: [0, 0] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x44E6DA8, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # Disable custom FPS Lock + - + type: write + address: [MAIN, 0x44E6030, 0x764] + value_type: float + value: 0 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/010033501FF38000/B7F344920B6D140E.yaml b/SaltySD/plugins/FPSLocker/patches/010033501FF38000/B7F344920B6D140E.yaml new file mode 100644 index 0000000..a350421 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010033501FF38000/B7F344920B6D140E.yaml @@ -0,0 +1,21 @@ +# The Bridge Curse 2: The Extrication 1.0.1 +# BID: B7F344920B6D140E + +unsafeCheck: true + +ALL_FPS: + # r.VSync + - + type: write + address: [MAIN, 0x5DB8968, 0] + value_type: uint32 + value: [0, 0] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x65B48B8, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/010047E01EA24000/728D92CB9E54CE7A.yaml b/SaltySD/plugins/FPSLocker/patches/010047E01EA24000/728D92CB9E54CE7A.yaml new file mode 100644 index 0000000..969120c --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010047E01EA24000/728D92CB9E54CE7A.yaml @@ -0,0 +1,27 @@ +# Star Overdrive 1.0.6 +# BID: 728D92CB9E54CE7A + +unsafeCheck: true + +ALL_FPS: + # r.VSync + - + type: write + address: [MAIN, 0x674C6E8, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget (1000/FPS) cutted to 2 decimals + - + type: evaluate_write + address: [MAIN, 0x77322F0, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x776C850, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/01005AE0209A8000/71C5F3CB333F1542.yaml b/SaltySD/plugins/FPSLocker/patches/01005AE0209A8000/71C5F3CB333F1542.yaml new file mode 100644 index 0000000..c83abef --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01005AE0209A8000/71C5F3CB333F1542.yaml @@ -0,0 +1,75 @@ +# WARRIORS: Abyss 1.3.0 +# BID: 71C5F3CB333F1542 + +unsafeCheck: true + +MASTER_WRITE: + # REF: 09 49 A8 52 21 01 27 1E 00 20 21 1E + # Use FPS Target instead of vsync value for Dynamic Resolution max delta + - + type: bytes + main_offset: 0x6D24D0 + value_type: uint32 + value: + - 0xB0004841 # ADRP X1, 0xFDB000 + - 0xBD4E0021 # LDR S1, [X1, 0xE00] + # Redirect DR Targets to MAIN+0x1477F00 + - + type: bytes + main_offset: 0x6D2574 + value_type: uint32 + value: + - 0xB0006D29 # ADRP X9, 0x1477000 + - 0xBD4F0121 # LDR S1, [X9, 0xF00] + - + type: bytes + main_offset: 0x6D2584 + value_type: uint32 + value: + - 0xB0006D29 # ADRP X9, 0x1477000 + - 0xBD4F0521 # LDR S1, [X9, 0xF04] + # Default values + - + type: bytes + main_offset: 0x1477F00 + value_type: float + value: [50, 40] +ALL_FPS: + # REF: 00 00 F0 42 78 00 00 00 00 00 F0 42 04 00 00 00 + # FPS Lock + - + type: evaluate_write + address: [MAIN, 0xFDBE0C] + value_type: uint32 + value: "120 / FPS_LOCK_TARGET" + # Prevent from setting it as 0, otherwise game crashes + - + type: evaluate_compare + compare_address: [MAIN, 0xFDBE0C] + compare_type: "==" + compare_value_type: uint32 + compare_value: 0 + address: [MAIN, 0xFDBE0C] + value_type: uint32 + value: 1 + # Others + - + type: evaluate_write + address: [MAIN, 0xFDBE00] + value_type: float + value: "FPS_TARGET" + - + type: evaluate_write + address: [MAIN, 0xFDBE04] + value_type: uint32 + value: "FPS_TARGET" + - + type: evaluate_write + address: [MAIN, 0xFDBE08] + value_type: float + value: "FPS_TARGET" + - + type: evaluate_write + address: [MAIN, 0x1477F00] + value_type: float + value: ["1.5 * FRAMETIME_TARGET", "1.2 * FRAMETIME_TARGET"] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01006AC01F630000/FFF55266A618D06A.yaml b/SaltySD/plugins/FPSLocker/patches/01006AC01F630000/FFF55266A618D06A.yaml new file mode 100644 index 0000000..9480e63 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01006AC01F630000/FFF55266A618D06A.yaml @@ -0,0 +1,24 @@ +# Sword of the Necromancer: Resurrection 1.0.5 +# BID: FFF55266A618D06A + +unsafeCheck: true + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget + - + type: evaluate_write + address: [MAIN, 0x758CE00, 0] + value_type: float + value: ["0.9 * FRAMETIME_TARGET", "0.9 * FRAMETIME_TARGET"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x75C1298, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x6DE8CB8, 0] + value_type: int32 + value: [0, 0] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01006BD019A78000/F54FC539CAF24C64.yaml b/SaltySD/plugins/FPSLocker/patches/01006BD019A78000/F54FC539CAF24C64.yaml new file mode 100644 index 0000000..eb10f75 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01006BD019A78000/F54FC539CAF24C64.yaml @@ -0,0 +1,21 @@ +# The Bridge Curse - Road to Salvation 1.6.0.1 +# BID: F54FC539CAF24C64 + +unsafeCheck: true + +ALL_FPS: + # r.VSync + - + type: write + address: [MAIN, 0x6560E98, 0] + value_type: uint32 + value: [0, 0] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x6D5D3B8, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/01006C7021024000/72D353380DD03B52.yaml b/SaltySD/plugins/FPSLocker/patches/01006C7021024000/72D353380DD03B52.yaml new file mode 100644 index 0000000..5cadd1b --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01006C7021024000/72D353380DD03B52.yaml @@ -0,0 +1,27 @@ +# MotoGP 25 1.0.1 +# BID: 72D353380DD03B52 + +unsafeCheck: true + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget + - + type: evaluate_write + address: [MAIN, 0xA033518, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0xA06EDD0, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x904FC00, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01006F301AE9C000/B46B22D9AC7E567B.yaml b/SaltySD/plugins/FPSLocker/patches/01006F301AE9C000/B46B22D9AC7E567B.yaml new file mode 100644 index 0000000..f423724 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01006F301AE9C000/B46B22D9AC7E567B.yaml @@ -0,0 +1,21 @@ +# Grounded 1.13 +# BID: B46B22D9AC7E567B + +unsafeCheck: true + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget + - + type: evaluate_write + address: [MAIN, 0x8E50418, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x8E76560, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100803005D52000/62B7F19804BCB70E.yaml b/SaltySD/plugins/FPSLocker/patches/0100803005D52000/62B7F19804BCB70E.yaml new file mode 100644 index 0000000..98679be --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100803005D52000/62B7F19804BCB70E.yaml @@ -0,0 +1,27 @@ +# ぎゃる☆がん2 1.0.4 +# BID: 62B7F19804BCB70E + +unsafeCheck: false + +ALL_FPS: + # r.VSync + - + type: write + address: [MAIN, 0x4346990, 0] + value_type: uint32 + value: [0, 0] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x44E6DA8, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # Disable custom FPS Lock + - + type: write + address: [MAIN, 0x44E6030, 0x764] + value_type: float + value: 0 + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/010097F018538000/0E7A0A7276477C53.yaml b/SaltySD/plugins/FPSLocker/patches/010097F018538000/0E7A0A7276477C53.yaml new file mode 100644 index 0000000..a9d5ee9 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010097F018538000/0E7A0A7276477C53.yaml @@ -0,0 +1,12 @@ +# DAVE THE DIVER 1.0.4.1039 +# BID: 0E7A0A7276477C53 + +unsafeCheck: true + +ALL_FPS: + # UnityEngine.Time::fixedDeltaTime + - + type: evaluate_write + address: [MAIN, 0x98DE640, 0x48] + value_type: float + value: "1 / FPS_TARGET" diff --git a/SaltySD/plugins/FPSLocker/patches/01009FA01FF6C000/1218D04A7C77F2DA.yaml b/SaltySD/plugins/FPSLocker/patches/01009FA01FF6C000/1218D04A7C77F2DA.yaml index 8becd9d..9e2386e 100644 --- a/SaltySD/plugins/FPSLocker/patches/01009FA01FF6C000/1218D04A7C77F2DA.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01009FA01FF6C000/1218D04A7C77F2DA.yaml @@ -1,4 +1,4 @@ -# Nikoderiko: The Magical World 1.0.3 +# Nikoderiko: The Magical World 1.0.3/1.0.4 # BID: 1218D04A7C77F2DA unsafeCheck: true diff --git a/SaltySD/plugins/FPSLocker/patches/0100A21017C42000/693314C08EA157F3.yaml b/SaltySD/plugins/FPSLocker/patches/0100A21017C42000/693314C08EA157F3.yaml new file mode 100644 index 0000000..d9d2912 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100A21017C42000/693314C08EA157F3.yaml @@ -0,0 +1,80 @@ +# Another Crab's Treasure 1.1.100.2 +# BID: 693314C08EA157F3 + +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: 0x18AE7B8 + value_type: uint32 + value: + - 0xF001ED48 # adrp x8, 0x5659000 + - 0xB9406908 # ldr w8, [x8, #0x68] + - 0x1E230101 # ucvtf s1, w8 + - 0x1E2E1000 # fmov s0, #1.00000000 + - 0x1E211800 # fdiv s0, s0, s1 + - + type: bytes + main_offset: 0x18B2570 + value_type: uint32 + value: + - 0xF001ED28 # adrp x8, 0x5659000 + - 0xB9406908 # ldr w8, [x8, #0x68] + - 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+0x5ACEF08 + - + type: bytes + main_offset: 0x389C824 + value_type: uint32 + value: + - 0xD0011188 # adrp x8, #0x5ACE000 + - 0xF9478508 # ldr x8, [x8, #0xf08] + - 0xD503201F # nop + - 0xD503201F # nop + - + type: bytes + main_offset: 0x389C8A4 + value_type: uint32 + value: + - 0xD0011188 # adrp x8, #0x5ACE000 + - 0xF9478508 # ldr x8, [x8, #0xf08] + - 0xBD402A60 # ldr s0, [x19, #0x28] + - 0xD503201F # nop + - 0xD503201F # nop + - + type: bytes + main_offset: 0x389C918 + value_type: uint32 + value: + - 0xD0011188 # adrp x8, #0x5ACE000 + - 0xF9478508 # ldr x8, [x8, #0xf08] + - 0xD503201F # nop + - 0xD503201F # nop + # Default values + - + type: bytes + main_offset: 0x5659068 + value_type: uint32 + value: 30 + - + type: bytes + main_offset: 0x5ACEF08 + value_type: double + value: 28.57142857142857 +ALL_FPS: + # UnityEngine.Application::targetFrameRate + - + type: evaluate_write + address: [MAIN, 0x5659068] + value_type: uint32 + value: FPS_TARGET + # GPU Timing Target + - + type: evaluate_write + address: [MAIN, 0x5ACEF08] + value_type: double + value: "1000 / (FPS_TARGET + 5)" \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100C1101EE5A000/950FB0C3D58D6A7B.yaml b/SaltySD/plugins/FPSLocker/patches/0100C1101EE5A000/950FB0C3D58D6A7B.yaml new file mode 100644 index 0000000..1f62fcd --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100C1101EE5A000/950FB0C3D58D6A7B.yaml @@ -0,0 +1,27 @@ +# High On Life 1.0.3 +# BID: 950FB0C3D58D6A7B + +unsafeCheck: true + +ALL_FPS: + # r.VSync + - + type: write + address: [MAIN, 0x6BA6D78, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget + - + type: evaluate_write + address: [MAIN, 0x77560C8, 0] + value_type: float + value: ["0.93 * FRAMETIME_TARGET", "0.93 * FRAMETIME_TARGET"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x7784130, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100E6B01BD3A000/C9D5E4BE40E7EB66.yaml b/SaltySD/plugins/FPSLocker/patches/0100E6B01BD3A000/C9D5E4BE40E7EB66.yaml new file mode 100644 index 0000000..1098587 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100E6B01BD3A000/C9D5E4BE40E7EB66.yaml @@ -0,0 +1,14 @@ +# Card-en-Ciel 1.5.3 +# BID: C9D5E4BE40E7EB66 +# 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, 0x21D8248, 0x5C] + value_type: float + value: 1 / FPS_LOCK_TARGET \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100F7E00C70E000/0C00FC37B0610FBD.yaml b/SaltySD/plugins/FPSLocker/patches/0100F7E00C70E000/0C00FC37B0610FBD.yaml new file mode 100644 index 0000000..fb31f8f --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100F7E00C70E000/0C00FC37B0610FBD.yaml @@ -0,0 +1,27 @@ +# Hogwarts Legacy 1.0.5 +# BID: 0C00FC37B0610FBD + +unsafeCheck: true + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget + - + type: evaluate_write + address: [MAIN, 0xA42C688, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0xA4603A0, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x9C0EED0, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/saltysd_core.elf b/SaltySD/saltysd_core.elf index 6e90dac..19ed202 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 index 6c12945..3cb1721 100644 Binary files a/SaltySD/saltysd_core32.elf and b/SaltySD/saltysd_core32.elf differ diff --git a/atmosphere/contents/690000000000000D/exefs.nsp b/atmosphere/contents/690000000000000D/exefs.nsp index a258a66..be20090 100644 Binary files a/atmosphere/contents/690000000000000D/exefs.nsp and b/atmosphere/contents/690000000000000D/exefs.nsp differ diff --git a/atmosphere/package3 b/atmosphere/package3 index f4d8c81..6a9504f 100644 Binary files a/atmosphere/package3 and b/atmosphere/package3 differ diff --git a/config/aio-switch-updater/preserve.txt b/config/aio-switch-updater/preserve.txt index e5de4eb..fe50e7a 100644 --- a/config/aio-switch-updater/preserve.txt +++ b/config/aio-switch-updater/preserve.txt @@ -1,9 +1,10 @@ -/atmosphere/config/ +/atmosphere/config/system_settings.ini /bootloader/hekate_ipl.ini /bootloader/nyx.ini -/config/sys-clk/ -/config/status-monitor/ -/config/tesla/ +/config/sys-clk/config.ini +/config/status-monitor/config.ini +/config/tesla/config.ini +/config/sphaira/config.ini /config/ultrahand/config.ini /config/ultrahand/theme.ini /config/ultrahand/overlays.ini diff --git a/config/sphaira/config.ini b/config/sphaira/config.ini new file mode 100644 index 0000000..a7c4cae --- /dev/null +++ b/config/sphaira/config.ini @@ -0,0 +1,4 @@ +[config] +theme=romfs:/themes/oled_black_theme.ini +[paths] +last_launch_path= diff --git a/hbmenu.nro b/hbmenu.nro index 22dd6ca..67ec6fc 100644 Binary files a/hbmenu.nro and b/hbmenu.nro differ diff --git a/switch/.overlays/FPSLocker.ovl b/switch/.overlays/FPSLocker.ovl index 500d1e9..5287078 100644 Binary files a/switch/.overlays/FPSLocker.ovl and b/switch/.overlays/FPSLocker.ovl differ diff --git a/switch/DBI/DBI.nro b/switch/DBI/DBI.nro index 78e1961..f18d90f 100644 Binary files a/switch/DBI/DBI.nro and b/switch/DBI/DBI.nro differ