diff --git a/SaltySD/patches/010013c00e930000/_ZN2nn2oe16GetOperationModeEv.asm32 b/SaltySD/patches/010013c00e930000/_ZN2nn2oe16GetOperationModeEv.asm32 new file mode 100644 index 0000000..50c7aa4 Binary files /dev/null and b/SaltySD/patches/010013c00e930000/_ZN2nn2oe16GetOperationModeEv.asm32 differ diff --git a/SaltySD/patches/010013c00e930000/_ZN2nn2oe16GetOperationModeEv.asm64 b/SaltySD/patches/010013c00e930000/_ZN2nn2oe16GetOperationModeEv.asm64 new file mode 100644 index 0000000..13b1577 Binary files /dev/null and b/SaltySD/patches/010013c00e930000/_ZN2nn2oe16GetOperationModeEv.asm64 differ diff --git a/SaltySD/patches/010013c00e930000/_ZN2nn2oe18GetPerformanceModeEv.asm32 b/SaltySD/patches/010013c00e930000/_ZN2nn2oe18GetPerformanceModeEv.asm32 new file mode 100644 index 0000000..50c7aa4 Binary files /dev/null and b/SaltySD/patches/010013c00e930000/_ZN2nn2oe18GetPerformanceModeEv.asm32 differ diff --git a/SaltySD/patches/010013c00e930000/_ZN2nn2oe18GetPerformanceModeEv.asm64 b/SaltySD/patches/010013c00e930000/_ZN2nn2oe18GetPerformanceModeEv.asm64 new file mode 100644 index 0000000..13b1577 Binary files /dev/null and b/SaltySD/patches/010013c00e930000/_ZN2nn2oe18GetPerformanceModeEv.asm64 differ diff --git a/SaltySD/patches/010013c00e930000/_ZN2nn2oe27GetDefaultDisplayResolutionEPiS1_.asm32 b/SaltySD/patches/010013c00e930000/_ZN2nn2oe27GetDefaultDisplayResolutionEPiS1_.asm32 new file mode 100644 index 0000000..24307dc Binary files /dev/null and b/SaltySD/patches/010013c00e930000/_ZN2nn2oe27GetDefaultDisplayResolutionEPiS1_.asm32 differ diff --git a/SaltySD/patches/010013c00e930000/_ZN2nn2oe27GetDefaultDisplayResolutionEPiS1_.asm64 b/SaltySD/patches/010013c00e930000/_ZN2nn2oe27GetDefaultDisplayResolutionEPiS1_.asm64 new file mode 100644 index 0000000..3efe783 Binary files /dev/null and b/SaltySD/patches/010013c00e930000/_ZN2nn2oe27GetDefaultDisplayResolutionEPiS1_.asm64 differ diff --git a/SaltySD/patches/0100A00019DE0000/_ZN2nn2oe16GetOperationModeEv.asm32 b/SaltySD/patches/0100A00019DE0000/_ZN2nn2oe16GetOperationModeEv.asm32 new file mode 100644 index 0000000..50c7aa4 Binary files /dev/null and b/SaltySD/patches/0100A00019DE0000/_ZN2nn2oe16GetOperationModeEv.asm32 differ diff --git a/SaltySD/patches/0100A00019DE0000/_ZN2nn2oe16GetOperationModeEv.asm64 b/SaltySD/patches/0100A00019DE0000/_ZN2nn2oe16GetOperationModeEv.asm64 new file mode 100644 index 0000000..13b1577 Binary files /dev/null and b/SaltySD/patches/0100A00019DE0000/_ZN2nn2oe16GetOperationModeEv.asm64 differ diff --git a/SaltySD/patches/0100A00019DE0000/_ZN2nn2oe18GetPerformanceModeEv.asm32 b/SaltySD/patches/0100A00019DE0000/_ZN2nn2oe18GetPerformanceModeEv.asm32 new file mode 100644 index 0000000..50c7aa4 Binary files /dev/null and b/SaltySD/patches/0100A00019DE0000/_ZN2nn2oe18GetPerformanceModeEv.asm32 differ diff --git a/SaltySD/patches/0100A00019DE0000/_ZN2nn2oe18GetPerformanceModeEv.asm64 b/SaltySD/patches/0100A00019DE0000/_ZN2nn2oe18GetPerformanceModeEv.asm64 new file mode 100644 index 0000000..13b1577 Binary files /dev/null and b/SaltySD/patches/0100A00019DE0000/_ZN2nn2oe18GetPerformanceModeEv.asm64 differ diff --git a/SaltySD/patches/0100A00019DE0000/_ZN2nn2oe27GetDefaultDisplayResolutionEPiS1_.asm32 b/SaltySD/patches/0100A00019DE0000/_ZN2nn2oe27GetDefaultDisplayResolutionEPiS1_.asm32 new file mode 100644 index 0000000..24307dc Binary files /dev/null and b/SaltySD/patches/0100A00019DE0000/_ZN2nn2oe27GetDefaultDisplayResolutionEPiS1_.asm32 differ diff --git a/SaltySD/patches/0100A00019DE0000/_ZN2nn2oe27GetDefaultDisplayResolutionEPiS1_.asm64 b/SaltySD/patches/0100A00019DE0000/_ZN2nn2oe27GetDefaultDisplayResolutionEPiS1_.asm64 new file mode 100644 index 0000000..3efe783 Binary files /dev/null and b/SaltySD/patches/0100A00019DE0000/_ZN2nn2oe27GetDefaultDisplayResolutionEPiS1_.asm64 differ diff --git a/SaltySD/plugins/FPSLocker/patches/010000F012936000/1570FE23108B93C4.yaml b/SaltySD/plugins/FPSLocker/patches/010000F012936000/1570FE23108B93C4.yaml index 02772fb..d3342ee 100644 --- a/SaltySD/plugins/FPSLocker/patches/010000F012936000/1570FE23108B93C4.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010000F012936000/1570FE23108B93C4.yaml @@ -1,8 +1,6 @@ -# Agatha Christie - Hercule Poirot: The First Cases 1.0.3 +# Agatha Christie - Hercule Poirot: The First Cases 1.0.3/1.0.3.1 # BID: 1570FE23108B93C4 -unsafeCheck: true - ALL_FPS: # fixedDeltaTime - diff --git a/SaltySD/plugins/FPSLocker/patches/010008301AA96000/612E3D607D2A13BB.yaml b/SaltySD/plugins/FPSLocker/patches/010008301AA96000/612E3D607D2A13BB.yaml new file mode 100644 index 0000000..2375020 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010008301AA96000/612E3D607D2A13BB.yaml @@ -0,0 +1,28 @@ +# Tiebreak+: Official Game of the ATP and WTA 1.4.0 +# BID: 612E3D607D2A13BB + +DECLARATIONS: + - + type: variable + name: dr_target + value_type: float + default_value: 0.03333333333 + evaluate: "0.8 / FPS_TARGET" # we are using this trick because function is overengineered and it's not easy to just use standard 1 / FPS_TARGET +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: 0x1A8B39C + value_type: uint32 + value: 3 + # Redirect Dynamic Resolution target reading to MAIN + 0x30C3F00 + # REF: 28 11 91 52 08 A1 A7 72 03 01 27 1E + - + type: asm_a64 + main_offset: 0x1483084 + instructions: [ + [adrp, x8, $dr_target], + [ldr, s3, [x8, $dr_target]], + [nop] + ] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010009D018A06000/CA61076D0CE6670D.yaml b/SaltySD/plugins/FPSLocker/patches/010009D018A06000/CA61076D0CE6670D.yaml new file mode 100644 index 0000000..472481e --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010009D018A06000/CA61076D0CE6670D.yaml @@ -0,0 +1,25 @@ +# SWORD ART ONLINE Fractured Daydream JAP 1.5.0.0 +# BID: CA61076D0CE6670D + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget + - + type: evaluate_write + address: [MAIN, 0x866F768, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x86AA2E0, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x7EA9F88, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01000F9020CD4000/6ACDAEE7DDC5E503.yaml b/SaltySD/plugins/FPSLocker/patches/01000F9020CD4000/6ACDAEE7DDC5E503.yaml new file mode 100644 index 0000000..34d06b2 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01000F9020CD4000/6ACDAEE7DDC5E503.yaml @@ -0,0 +1,11 @@ +# Atelier Resleriana: The Red Alchemist & the White Guardian 1.2a +# BID: 6ACDAEE7DDC5E503 + +ALL_FPS: + # MagicaCloth2.MagicaManager_TypeInfo + - + type: evaluate_write + address: [MAIN, 0x777A550, 0xB8, 0, 0x10, 0x20, 0x10] + address_unsafe: true + value_type: uint32 + value: "FPS_TARGET + 5" \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010019D01D736000/3BA6C7665F67A711.yaml b/SaltySD/plugins/FPSLocker/patches/010019D01D736000/3BA6C7665F67A711.yaml new file mode 100644 index 0000000..66cc22b --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010019D01D736000/3BA6C7665F67A711.yaml @@ -0,0 +1,58 @@ +# 삼국지8 REMAKE 1.0.8 +# BID: 3BA6C7665F67A711 +# Cursor speed is tied to framerate + +DECLARATIONS: + # DON'T PUT ANYTHING BETWEEN - START + - + type: variable + name: fps_lock + value_type: uint32 + default_value: 30 + evaluate: FPS_LOCK_TARGET + - + type: variable + name: fps_lock2 + value_type: uint32 + default_value: 60 + evaluate: FPS_LOCK_TARGET + - + type: variable + name: game_speed + value_type: float + default_value: 0.0333333333 + evaluate: "1/FPS_TARGET" + - + type: variable + name: game_speed2 + value_type: float + default_value: 0.0166666666 + # DON'T PUT ANYTHING BETWEEN - END + - + type: code + name: fpsLock + instructions: [ + [adrp, x8, $fps_lock], + [ldr, w8, [x8, $fps_lock]], + [ret] + ] +MASTER_WRITE: + # Redirect FPS Lock, REF: A8 EA 00 B9 08 00 40 B9, LDR W8, [X0] + - + type: asm_a64 + main_offset: 0x1F902CC + instructions: [ + [bl, _fpsLock()] + ] + # Redirect game speed, REF: 08 31 9F 9A 20 79 68 BC 68 6E 41 B9 + - + type: asm_a64 + main_offset: 0x88B320 + instructions: [ + [adrp, x8, $game_speed], + [ldr, s0, [x8, $game_speed]] + ] +ALL_FPS: + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010021801DD26000/B2D4462B71536EC6.yaml b/SaltySD/plugins/FPSLocker/patches/010021801DD26000/B2D4462B71536EC6.yaml index 34b4bf3..42313f3 100644 --- a/SaltySD/plugins/FPSLocker/patches/010021801DD26000/B2D4462B71536EC6.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010021801DD26000/B2D4462B71536EC6.yaml @@ -1,8 +1,6 @@ # Momotaro Dentetsu: Showa, Heisei, Reiwa mo Teiban! Asia Edition 1.0.1 # BID: B2D4462B71536EC6 -unsafeCheck: true - MASTER_WRITE: # Remove double buffer - @@ -27,7 +25,7 @@ ALL_FPS: value: [FPS_TARGET, "60 / FPS_TARGET"] # Blocking game to max 60 FPS because setting game speed ratio below 1 causes glitches - - type: evaluate_compare + type: compare compare_address: [MAIN, 0xFF7090] compare_type: ">" compare_value_type: float @@ -36,7 +34,7 @@ ALL_FPS: value_type: float value: 60 - - type: evaluate_compare + type: compare compare_address: [MAIN, 0xFF7090] compare_type: "==" compare_value_type: float @@ -50,5 +48,4 @@ ALL_FPS: type: evaluate_write address: [MAIN, 0x10D8028] value_type: uint32 - value: "VSYNC_TARGET - 1" diff --git a/SaltySD/plugins/FPSLocker/patches/01002C9022770000/E5F70FFCBD0DD378.yaml b/SaltySD/plugins/FPSLocker/patches/01002C9022770000/E5F70FFCBD0DD378.yaml new file mode 100644 index 0000000..de388ac --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01002C9022770000/E5F70FFCBD0DD378.yaml @@ -0,0 +1,43 @@ +# Trails in the Sky 1st Chapter 1.0.5 +# BID: E5F70FFCBD0DD378 + +DECLARATIONS: + # Lock Max Handheld Resolution to 720p instead of 900p + - + type: code + name: adjustDrResToNativeInHH + instructions: [ + [cmp, w10, 1280], + [b.le, :goto1], + [adrp, x21, 0x730000], + [ldr, w21, [x21, 0x820]], ## REF: nn::oe::GetOperationMode in nnMain + [cbnz, w21, :goto1], + [mov, w10, 1280], + [mov, w8, 720], + :goto1, [stp, w10, w8, [x19, 0x10]], + [ret] + ] +MASTER_WRITE: + ## REF: 88 C2 88 1A 6A 22 02 29 + - + type: asm_a64 + main_offset: 0x2D0444 + instructions: [ + [bl, _adjustDrResToNativeInHH()] + ] +ALL_FPS: + # Min Delta + ## REF: C1 03 80 52 28 4D 28 9B, first ADRP + ADD below it + - + type: evaluate_write + address: [MAIN, 0x730850, 0x2C] + value_type: uint32 + value: FPS_TARGET + # Dynamic Resolution + ## REF: First function in .init_array section, ADRP + ADD + 0x220 (default float: 2) + ## Adding there 0.9 by myself because game seems to have issues with reaching 60 FPS without it + - + type: write + address: [MAIN, 0x7303D0] + value_type: float + value: 0.95 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010033801EF3A000/503ACC27B3F97603.yaml b/SaltySD/plugins/FPSLocker/patches/010033801EF3A000/503ACC27B3F97603.yaml new file mode 100644 index 0000000..5cacb54 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010033801EF3A000/503ACC27B3F97603.yaml @@ -0,0 +1,10 @@ +# 英雄傳說 黎之軌跡Ⅱ for Nintendo Switch 1.0.1 +# BID: 503ACC27B3F97603 + +ALL_FPS: + # REF: 88 01 80 52 C1 03 80 52 28 4D 28 9B 29 00 80 52, first ADRP + ADD below it + - + type: evaluate_write + address: [MAIN, 0x6ECEB8, 0x34] + value_type: uint32 + value: FPS_TARGET \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01003AF0200B0000/742CA53262A767AE.yaml b/SaltySD/plugins/FPSLocker/patches/01003AF0200B0000/742CA53262A767AE.yaml new file mode 100644 index 0000000..16ee7ce --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01003AF0200B0000/742CA53262A767AE.yaml @@ -0,0 +1,25 @@ +# Rune Factory: Guardians of Azuma 1.1.0 +# BID: 742CA53262A767AE + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget + - + type: evaluate_write + address: [MAIN, 0x8F66D40, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x8FA0470, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x7F7F6E8, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010040A0209DC000/A4A3B5A20B03B2A7.yaml b/SaltySD/plugins/FPSLocker/patches/010040A0209DC000/A4A3B5A20B03B2A7.yaml new file mode 100644 index 0000000..a95597c --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010040A0209DC000/A4A3B5A20B03B2A7.yaml @@ -0,0 +1,53 @@ +# 모모타로전철 ~쇼와 헤이세이 레이와에서도 국룰!~ Korea Edition 1.0.1 +# BID: A4A3B5A20B03B2A7 + +MASTER_WRITE: + # Remove double buffer + ## REF: E1 80 82 52 E0 03 13 AA, MOV W1, #2 below it + - + type: asm_a64 + main_offset: 0x1B410 + instructions: [ + [mov, w1, 3] + ] + ## REF: Use xref of function where is passed w1 in patch above + - + type: asm_a64 + main_offset: 0x5752C + instructions: [ + [mov, w1, 3] + ] +ALL_FPS: + # REF: 20 59 60 BC + # Internal FPS Lock + - + type: evaluate_write + address: [MAIN, 0xFF6098] + 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: compare + compare_address: [MAIN, 0xFF6098] + compare_type: ">" + compare_value_type: float + compare_value: 60 + address: [MAIN, 0xFF6098] + value_type: float + value: 60 + - + type: compare + compare_address: [MAIN, 0xFF6098] + compare_type: "==" + compare_value_type: float + compare_value: 60 + address: [MAIN, 0xFF609C] + 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, 0x10D7028] + value_type: uint32 + value: "VSYNC_TARGET - 1" \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01004D20219E0000/555E8872455F107E.yaml b/SaltySD/plugins/FPSLocker/patches/01004D20219E0000/555E8872455F107E.yaml new file mode 100644 index 0000000..896fde7 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01004D20219E0000/555E8872455F107E.yaml @@ -0,0 +1,43 @@ +# 空の軌跡 the 1st 1.0.5 +# BID: 555E8872455F107E + +DECLARATIONS: + # Lock Max Handheld Resolution to 720p instead of 900p + - + type: code + name: adjustDrResToNativeInHH + instructions: [ + [cmp, w10, 1280], + [b.le, :goto1], + [adrp, x21, 0x72F000], + [ldr, w21, [x21, 0x820]], ## REF: nn::oe::GetOperationMode in nnMain + [cbnz, w21, :goto1], + [mov, w10, 1280], + [mov, w8, 720], + :goto1, [stp, w10, w8, [x19, 0x10]], + [ret] + ] +MASTER_WRITE: + ## REF: 6A 22 02 29 + - + type: asm_a64 + main_offset: 0x2CF374 + instructions: [ + [bl, _adjustDrResToNativeInHH()] + ] +ALL_FPS: + # Min Delta + ## REF: C1 03 80 52 28 4D 28 9B, first ADRP + ADD below it + - + type: evaluate_write + address: [MAIN, 0x72F850, 0x2C] + value_type: uint32 + value: FPS_TARGET + # Dynamic Resolution + ## REF: First function in .init_array section, ADRP + ADD + 0x220 (default float: 2) + ## Adding there 0.9 by myself because game seems to have issues with reaching 60 FPS without it + - + type: write + address: [MAIN, 0x72F3D0] + value_type: float + value: 0.95 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01004D300C5AE000/A6CE40DC3AEDB1BE.yaml b/SaltySD/plugins/FPSLocker/patches/01004D300C5AE000/A6CE40DC3AEDB1BE.yaml index 32c444a..40eae12 100644 --- a/SaltySD/plugins/FPSLocker/patches/01004D300C5AE000/A6CE40DC3AEDB1BE.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01004D300C5AE000/A6CE40DC3AEDB1BE.yaml @@ -103,4 +103,4 @@ ALL_FPS: address: [MAIN, 0xA767B0, 0x140, 0x1B0, 0x20, 0x34] address_unsafe: true value_type: float - value: ["(30 / FPS_TARGET) * 1.95", "(30 / FPS_TARGET) * 1.7"] \ No newline at end of file + value: ["(30 / FPS_TARGET) * 1.95", "(30 / FPS_TARGET) * 1.7"] diff --git a/SaltySD/plugins/FPSLocker/patches/01004D300C5AE000/D9BA7DB72FFAFECD.yaml b/SaltySD/plugins/FPSLocker/patches/01004D300C5AE000/D9BA7DB72FFAFECD.yaml index 51926ad..8a8a981 100644 --- a/SaltySD/plugins/FPSLocker/patches/01004D300C5AE000/D9BA7DB72FFAFECD.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01004D300C5AE000/D9BA7DB72FFAFECD.yaml @@ -92,5 +92,3 @@ ALL_FPS: address_unsafe: true value_type: float value: ["(30 / FPS_TARGET) * 1.95", "(30 / FPS_TARGET) * 1.7"] - - diff --git a/SaltySD/plugins/FPSLocker/patches/01004FF021942000/4EAC4BED64458C8C.yaml b/SaltySD/plugins/FPSLocker/patches/01004FF021942000/4EAC4BED64458C8C.yaml new file mode 100644 index 0000000..a995c34 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01004FF021942000/4EAC4BED64458C8C.yaml @@ -0,0 +1,13 @@ +# EA SPORTS FC 26 1.80.73bf +# BID: 4EAC4BED64458C8C + +ALL_FPS: + # Internal FPS Lock + - + type: evaluate_write + address: [MAIN, 0xC5D1448, 8] + value_type: double + value: FPS_TARGET + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01004FF021942000/5D738626CE19A40F.yaml b/SaltySD/plugins/FPSLocker/patches/01004FF021942000/5D738626CE19A40F.yaml index 7455fe9..a5dc601 100644 --- a/SaltySD/plugins/FPSLocker/patches/01004FF021942000/5D738626CE19A40F.yaml +++ b/SaltySD/plugins/FPSLocker/patches/01004FF021942000/5D738626CE19A40F.yaml @@ -7,4 +7,7 @@ ALL_FPS: type: evaluate_write address: [MAIN, 0xC5CC448, 8] value_type: double - value: FPS_TARGET \ No newline at end of file + value: FPS_TARGET + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/01004FF021942000/DF48D885EB914AC7.yaml b/SaltySD/plugins/FPSLocker/patches/01004FF021942000/DF48D885EB914AC7.yaml new file mode 100644 index 0000000..fef0051 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01004FF021942000/DF48D885EB914AC7.yaml @@ -0,0 +1,13 @@ +# EA SPORTS FC 26 1.80.43d0 +# BID: DF48D885EB914AC7 + +ALL_FPS: + # Internal FPS Lock + - + type: evaluate_write + address: [MAIN, 0xC5CB448, 8] + value_type: double + value: FPS_TARGET + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010053D014C44000/086367BD573D1899.yaml b/SaltySD/plugins/FPSLocker/patches/010053D014C44000/086367BD573D1899.yaml new file mode 100644 index 0000000..7b14a5d --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010053D014C44000/086367BD573D1899.yaml @@ -0,0 +1,10 @@ +# 英雄伝説 創の軌跡 1.0.6 +# BID: 086367BD573D1899 + +ALL_FPS: + # Set game to 60 FPS mode + - + type: write + address: [MAIN, 0x4FBEA80, 0x20A4] + value_type: uint32 + value: 0 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100544020572000/540477886936CDC5.yaml b/SaltySD/plugins/FPSLocker/patches/0100544020572000/540477886936CDC5.yaml new file mode 100644 index 0000000..7d009c6 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100544020572000/540477886936CDC5.yaml @@ -0,0 +1,30 @@ +# Atelier Yumia: The Alchemist of Memories & the Envisioned Land 1.5.1 +# BID: 540477886936CDC5 + +DECLARATIONS: + - + type: variable + name: dr_target + value_type: float + default_value: 0.035714287 # Basically = 1/28 + evaluate: "1.01 / FPS_TARGET" +MASTER_WRITE: + # Redirect DR + # REF: A9 24 89 52 49 A2 A7 72, second REF + - + type: asm_a64 + main_offset: 0x10F7B74 + instructions: [ + [adrp, x9, $dr_target], + [ldr, s1, [x9, $dr_target]], + [nop] + ] +ALL_FPS: + # Disable FPS Lock + # REF: 88 46 40 F9 03 11 40 F9, first ADRP+LDR above it + - + type: write + address: [MAIN, 0x2FEACB0, 0xE0, 0x294] + address_unsafe: true + value_type: uint8 + value: 0 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010054A020574000/FB3497202E5934FB.yaml b/SaltySD/plugins/FPSLocker/patches/010054A020574000/FB3497202E5934FB.yaml new file mode 100644 index 0000000..c79a0c0 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010054A020574000/FB3497202E5934FB.yaml @@ -0,0 +1,30 @@ +# 優米雅的鍊金工房 ~追憶之鍊金術士與幻創之地~ 1.5.1 +# BID: FB3497202E5934FB + +DECLARATIONS: + - + type: variable + name: dr_target + value_type: float + default_value: 0.035714287 # Basically = 1/28 + evaluate: "1.01 / FPS_TARGET" +MASTER_WRITE: + # Redirect DR + # REF: A9 24 89 52 49 A2 A7 72, second REF + - + type: asm_a64 + main_offset: 0x10F7B74 + instructions: [ + [adrp, x9, $dr_target], + [ldr, s1, [x9, $dr_target]], + [nop] + ] +ALL_FPS: + # Disable FPS Lock + # REF: 88 46 40 F9 03 11 40 F9, first ADRP+LDR above it + - + type: write + address: [MAIN, 0x2FEACB0, 0xE0, 0x294] + address_unsafe: true + value_type: uint8 + value: 0 diff --git a/SaltySD/plugins/FPSLocker/patches/010054E01D878000/39296BB1FD4A3F20.yaml b/SaltySD/plugins/FPSLocker/patches/010054E01D878000/39296BB1FD4A3F20.yaml index ee9c811..b9aae53 100644 --- a/SaltySD/plugins/FPSLocker/patches/010054E01D878000/39296BB1FD4A3F20.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010054E01D878000/39296BB1FD4A3F20.yaml @@ -1,8 +1,6 @@ # EA SPORTS FC 25 1.7e.e73a # BID: 39296BB1FD4A3F20 -unsafeCheck: true - ALL_FPS: # Internal FPS Lock - @@ -10,3 +8,6 @@ ALL_FPS: address: [MAIN, 0xCEEFA88, 8] value_type: double value: FPS_TARGET + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/01005D10128D2000/1A876E8881CEFBE3.yaml b/SaltySD/plugins/FPSLocker/patches/01005D10128D2000/1A876E8881CEFBE3.yaml new file mode 100644 index 0000000..eb5ed65 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01005D10128D2000/1A876E8881CEFBE3.yaml @@ -0,0 +1,26 @@ +# 碧藍航線 Crosswave 1.0.1 +# BID: 1A876E8881CEFBE3 + +ALL_FPS: + # Disable bUseFixedFrameRate and bSmoothFrameRate + - + type: write + address: [MAIN, 0x6BE5318, 0x778] + address_unsafe: true + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x6BE5DE8, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x6394958, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010064101356C000/652D04C4BD51AE83.yaml b/SaltySD/plugins/FPSLocker/patches/010064101356C000/652D04C4BD51AE83.yaml new file mode 100644 index 0000000..0a70ac4 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010064101356C000/652D04C4BD51AE83.yaml @@ -0,0 +1,54 @@ +# 英雄伝説 閃の軌跡Ⅳ 1.0.2 +# BID: 652D04C4BD51AE83 +# Button polling is 2x more sensitive to holding any button + +DECLARATIONS: + - + type: variable + name: fps_lock + value_type: uint32 + default_value: 33333333 + evaluate: "FRAMETIME_TARGET * 930000" + - + type: variable + name: frame_time + value_type: float + default_value: 0.0333333333 + - + type: code + name: dynamicSpeed + instructions: [ + [str, x0, [x19, 8]], + [fcvt, s4, d0], + [adrp, x8, $frame_time], + [str, s4, [x8, $frame_time]], + [ret] + ] +MASTER_WRITE: + # Move loading FPS lock time + ## REF: MOV with 0x1FCA055 + - + type: asm_a64 + main_offset: 0x60A998 + instructions: [ + [adrp, x9, $fps_lock], + [ldr, w9, [x9, $fps_lock]] + ] + # Write game's loop time as float + ## REF: 1F 01 09 EB 00 08 61 1E, replace STR X0, [X19,#8] below it + - + type: asm_a64 + main_offset: 0x60A9E8 + instructions: [ + [bl, _dynamicSpeed()] + ] + # Read lowest timing float factor + ## REF: E8 03 1F 2A 00 20 22 1E 60 5E 1A BD, ADRP + FMINM + LDR above it + - + type: asm_a64 + main_offset: 0x65518 + instructions: [ + [adrp, x8, $frame_time], + [fminnm, s0, s0, s2], + [ldr, s2, [x8, $frame_time]] + ] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010065D012FA0000/C403B87FCDAD7604.yaml b/SaltySD/plugins/FPSLocker/patches/010065D012FA0000/C403B87FCDAD7604.yaml new file mode 100644 index 0000000..1b0d77f --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010065D012FA0000/C403B87FCDAD7604.yaml @@ -0,0 +1,26 @@ +# Azur Lane: Crosswave 1.0.1 +# BID: C403B87FCDAD7604 + +ALL_FPS: + # Disable bUseFixedFrameRate and bSmoothFrameRate + - + type: write + address: [MAIN, 0x6BE6318, 0x778] + address_unsafe: true + value_type: uint32 + value: 7 + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x6BE6DE8, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x6395A88, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010066101A55A000/338C569A607B7C30.yaml b/SaltySD/plugins/FPSLocker/patches/010066101A55A000/338C569A607B7C30.yaml new file mode 100644 index 0000000..0a29423 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010066101A55A000/338C569A607B7C30.yaml @@ -0,0 +1,19 @@ +# Little Nightmares III 1.0.2 +# BID: 338C569A607B7C30 + +ALL_FPS: + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x7CACDF8, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x74B8210, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100690020FBE000/8FDB10262446CB3D.yaml b/SaltySD/plugins/FPSLocker/patches/0100690020FBE000/8FDB10262446CB3D.yaml new file mode 100644 index 0000000..1d35ca4 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100690020FBE000/8FDB10262446CB3D.yaml @@ -0,0 +1,25 @@ +# Formula Legends 1.0.4 +# BID: 8FDB10262446CB3D + +ALL_FPS: + # r.VSync + - + type: write + address: [MAIN, 0x73BBEE8, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget + - + type: evaluate_write + address: [MAIN, 0x839FF68, 0] + value_type: float + value: [FRAMETIME_TARGET, FRAMETIME_TARGET] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x83DB780, 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/01006C7021024000/499A85D046C70186.yaml b/SaltySD/plugins/FPSLocker/patches/01006C7021024000/499A85D046C70186.yaml new file mode 100644 index 0000000..1b720dc --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01006C7021024000/499A85D046C70186.yaml @@ -0,0 +1,25 @@ +# MotoGP 25 1.0.4 +# BID: 499A85D046C70186 + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget + - + type: evaluate_write + address: [MAIN, 0xA060518, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0xA09BDD0, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x907CC00, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100711022E24000/15AFE82282E0EF30.yaml b/SaltySD/plugins/FPSLocker/patches/0100711022E24000/15AFE82282E0EF30.yaml new file mode 100644 index 0000000..8060c97 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100711022E24000/15AFE82282E0EF30.yaml @@ -0,0 +1,25 @@ +# Lynked: Banner of the Spark 1.2.1 +# BID: 15AFE82282E0EF30 + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget + - + type: evaluate_write + address: [MAIN, 0x7EA5348, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x7ED3028, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: write + address: [MAIN, 0x76D62F8, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010072900AFF0000/FE757B10B45C3444.yaml b/SaltySD/plugins/FPSLocker/patches/010072900AFF0000/FE757B10B45C3444.yaml index 5d6c314..da2d999 100644 --- a/SaltySD/plugins/FPSLocker/patches/010072900AFF0000/FE757B10B45C3444.yaml +++ b/SaltySD/plugins/FPSLocker/patches/010072900AFF0000/FE757B10B45C3444.yaml @@ -18,9 +18,9 @@ DECLARATIONS: type: code name: getVsyncTarget instructions: [ - [adrp, x1, $vsync_target], - [ldr, w1, [x1, $vsync_target]], - [mov, w19, w1], + [adrp, x0, $vsync_target], + [ldr, w0, [x0, $vsync_target]], + [mov, w19, w0], [ret] ] - @@ -72,3 +72,5 @@ MASTER_WRITE: instructions: [ [bl, _getDrTarget()] ] + + diff --git a/SaltySD/plugins/FPSLocker/patches/0100781020710000/1FF44387A22D39F8.yaml b/SaltySD/plugins/FPSLocker/patches/0100781020710000/1FF44387A22D39F8.yaml new file mode 100644 index 0000000..f76e319 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100781020710000/1FF44387A22D39F8.yaml @@ -0,0 +1,10 @@ +# NINJA GAIDEN: Ragebound 1.0.6 +# BID: 1FF44387A22D39F8 + +ALL_FPS: + # UnityEngine.Time::fixedDeltaTime + - + type: evaluate_write + address: [MAIN, 0x6126A40, 0x48] + value_type: float + value: "1 / FPS_TARGET" \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100781020710000/CEDA530B146C0260.yaml b/SaltySD/plugins/FPSLocker/patches/0100781020710000/CEDA530B146C0260.yaml new file mode 100644 index 0000000..3d1170f --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100781020710000/CEDA530B146C0260.yaml @@ -0,0 +1,10 @@ +# NINJA GAIDEN: Ragebound 1.0.5 +# BID: CEDA530B146C0260 + +ALL_FPS: + # UnityEngine.Time::fixedDeltaTime + - + type: evaluate_write + address: [MAIN, 0x6125900, 0x48] + value_type: float + value: "1 / FPS_TARGET" \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100853015E86000/538D60FF5A324C92.yaml b/SaltySD/plugins/FPSLocker/patches/0100853015E86000/538D60FF5A324C92.yaml new file mode 100644 index 0000000..01bf2ef --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100853015E86000/538D60FF5A324C92.yaml @@ -0,0 +1,21 @@ +# No Man's Sky 6.5.0 +# BID: 538D60FF5A324C92 + +DECLARATIONS: + - + type: variable + name: dr_target + value_type: float + default_value: 30 + evaluate: FPS_TARGET +MASTER_WRITE: + # Redirect DR frametime target + # REF: 08 4E A8 52 00 01 27 1E 48 8F A8 52, ADRP + ADD + LDR above that + - + type: asm_a64 + main_offset: 0x1F9BC40 + instructions: [ + [adrp, x9, $dr_target], + [ldr, s0, [x9, $dr_target]], + [nop] + ] \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/010088B017734000/288908CE7F6177CC.yaml b/SaltySD/plugins/FPSLocker/patches/010088B017734000/288908CE7F6177CC.yaml new file mode 100644 index 0000000..ecde1c3 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/010088B017734000/288908CE7F6177CC.yaml @@ -0,0 +1,11 @@ +# 閃亂忍忍忍者大戰戰機少女-少女們的響艷- / 섬란 닌닌닌자 대전 넵튠 -소녀들의 향염- 1.0.0 +# BID: 288908CE7F6177CC + +ALL_FPS: + # 30FPS lock bool + ## REF: C8 01 18 37 68 0A 40 BD, check first ADRP + LDR inside first function below result + - + type: write + address: [MAIN, 0x9F1480, 8, 0x6C] + value_type: uint32 + value: 0 \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/01009EE01EB02000/63A4CF08E30A56B1.yaml b/SaltySD/plugins/FPSLocker/patches/01009EE01EB02000/63A4CF08E30A56B1.yaml new file mode 100644 index 0000000..60bbfe0 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/01009EE01EB02000/63A4CF08E30A56B1.yaml @@ -0,0 +1,10 @@ +# 英雄伝説 黎の軌跡II for Nintendo Switch 1.0.1 +# BID: 63A4CF08E30A56B1 + +ALL_FPS: + # REF: 88 01 80 52 C1 03 80 52 28 4D 28 9B 29 00 80 52, first ADRP + ADD below it + - + type: evaluate_write + address: [MAIN, 0x6E7998, 0x34] + value_type: uint32 + value: FPS_TARGET \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100A0C01BED8000/7E06539B5874B9C4.yaml b/SaltySD/plugins/FPSLocker/patches/0100A0C01BED8000/7E06539B5874B9C4.yaml new file mode 100644 index 0000000..6d936bd --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100A0C01BED8000/7E06539B5874B9C4.yaml @@ -0,0 +1,12 @@ +# 伊蘇X -北境歷險- 1.0.5 +# BID: 7E06539B5874B9C4 +# Credits to StevensND for finding assembly instruction from which I have derived pointer address + +ALL_FPS: + # Used to set min delta timing for various parts of game + DR target + # REF: 00 10 2C 1E 01 E4 00 2F 09 85 9A 52 29 00 A0 72 E1 03 1F 2A first ADRP above it + - + type: evaluate_write + address: [MAIN, 0xBDA228, 0x34] + value_type: uint32 + value: FPS_TARGET \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100A21017C42000/807A2202464D445B.yaml b/SaltySD/plugins/FPSLocker/patches/0100A21017C42000/807A2202464D445B.yaml new file mode 100644 index 0000000..24f0b69 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100A21017C42000/807A2202464D445B.yaml @@ -0,0 +1,74 @@ +# Another Crab's Treasure 1.1.100.3 +# BID: 807A2202464D445B + +DECLARATIONS: + - + type: variable + name: dr_target + value_type: double + default_value: 28.57142857142857 + evaluate: "1000 / (FPS_TARGET + 5)" +MASTER_WRITE: + # Redirect updating various deltas to read frametime target from UnityEngine.Application::targetFrameRate, REF: 08 10 91 52 08 A1 A7 72 + - + type: asm_a64 + main_offset: 0x18AE7B8 + instructions: [ + [adrp, x8, 0x565A000], + [ldr, w8, [x8, 0x78]], + [ucvtf, s1, w8], + [fmov, s0, 1.0], + [fdiv, s0, s0, s1] + ] + - + type: asm_a64 + main_offset: 0x18B2570 + instructions: [ + [adrp, x8, 0x565A000], + [ldr, w8, [x8, 0x78]], + [ucvtf, s1, w8], + [fmov, s0, 1.0], + [fdiv, s0, s0, s1] + ] + # Default value + - + type: bytes + main_offset: 0x565A078 + value_type: uint32 + value: 30 + # Redirect Dynamic Resolution GPU Timing target in DynamicResolutionScaler::Update + - + type: asm_a64 + main_offset: 0x1A0E404 + instructions: [ + [adrp, x8, $dr_target], + [ldr, x8, [x8, $dr_target]], + [nop], + [nop] + ] + - + type: asm_a64 + main_offset: 0x1A0E484 + instructions: [ + [adrp, x8, $dr_target], + [ldr, x8, [x8, $dr_target]], + [ldr, s0, [x19, 0x28]], + [nop], + [nop] + ] + - + type: asm_a64 + main_offset: 0x1A0E4F8 + instructions: [ + [adrp, x8, $dr_target], + [ldr, x8, [x8, $dr_target]], + [nop], + [nop] + ] +ALL_FPS: + # UnityEngine.Application::targetFrameRate + - + type: evaluate_write + address: [MAIN, 0x565A078] + value_type: uint32 + value: FPS_TARGET \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100A2902051A000/779FC981128BA290.yaml b/SaltySD/plugins/FPSLocker/patches/0100A2902051A000/779FC981128BA290.yaml new file mode 100644 index 0000000..af7eb2b --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100A2902051A000/779FC981128BA290.yaml @@ -0,0 +1,25 @@ +# Poppy Playtime: Chapter 4 1.3 +# BID: 779FC981128BA290 + +ALL_FPS: + # r.VSync + - + type: write + address: [MAIN, 0x7F28990, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget + - + type: evaluate_write + address: [MAIN, 0x8EE4E30, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x8F20150, 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/0100BD601EC3E000/3F1843C4FE400063.yaml b/SaltySD/plugins/FPSLocker/patches/0100BD601EC3E000/3F1843C4FE400063.yaml new file mode 100644 index 0000000..0f08168 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100BD601EC3E000/3F1843C4FE400063.yaml @@ -0,0 +1,32 @@ +# Poppy Playtime: Chapter 3 1.2 +# BID: 3F1843C4FE400063 + +ALL_FPS: + # Disable bUseFixedFrameRate + - + type: write + address: [MAIN, 0x778C438, 0xAA4] + address_unsafe: true + value_type: int32 + value: 6 + # r.VSync + - + type: write + address: [MAIN, 0x676D6E8, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget + - + type: evaluate_write + address: [MAIN, 0x7754230, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x778D990, 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/0100BDB01A0E6000/217A5C011269C81E.yaml b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/217A5C011269C81E.yaml index 430cbdf..aa378ab 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/217A5C011269C81E.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100BDB01A0E6000/217A5C011269C81E.yaml @@ -1,8 +1,6 @@ # EA SPORTS FC 24 1.5a.9115 # BID: 217A5C011269C81E -unsafeCheck: true - ALL_FPS: # Internal FPS Lock - @@ -10,3 +8,6 @@ ALL_FPS: address: [MAIN, 0xCDF1E20, 8] value_type: double value: FPS_TARGET + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100C0000CEEA000/B6E172353E696E65.yaml b/SaltySD/plugins/FPSLocker/patches/0100C0000CEEA000/B6E172353E696E65.yaml deleted file mode 100644 index bfc8f94..0000000 --- a/SaltySD/plugins/FPSLocker/patches/0100C0000CEEA000/B6E172353E696E65.yaml +++ /dev/null @@ -1,15 +0,0 @@ -# Yokai Watch 1 / Yo-kai Watch 1 -# 妖怪ウォッチ 1.3.0 -# BID: B6E172353E696E65 - -# Bugs: Camera movement is jaggy - -unsafeCheck: true - -ALL_FPS: - # Interval - - - type: evaluate_write - address: [MAIN, 0x8C4534] - value_type: int32 - value: VSYNC_TARGET diff --git a/SaltySD/plugins/FPSLocker/patches/0100C1101EE5A000/950FB0C3D58D6A7B.yaml b/SaltySD/plugins/FPSLocker/patches/0100C1101EE5A000/950FB0C3D58D6A7B.yaml index b01de64..baa2bce 100644 --- a/SaltySD/plugins/FPSLocker/patches/0100C1101EE5A000/950FB0C3D58D6A7B.yaml +++ b/SaltySD/plugins/FPSLocker/patches/0100C1101EE5A000/950FB0C3D58D6A7B.yaml @@ -1,4 +1,4 @@ -# High On Life 1.0.3/1.0.4 +# High On Life 1.0.3-1.0.5 # BID: 950FB0C3D58D6A7B ALL_FPS: diff --git a/SaltySD/plugins/FPSLocker/patches/0100C2A01A730000/9F7C33E21279D3E6.yaml b/SaltySD/plugins/FPSLocker/patches/0100C2A01A730000/9F7C33E21279D3E6.yaml new file mode 100644 index 0000000..22e91b1 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100C2A01A730000/9F7C33E21279D3E6.yaml @@ -0,0 +1,58 @@ +# ROMANCE OF THE THREE KINGDOMS 8 REMAKE 1.0.8 +# BID: 9F7C33E21279D3E6 +# Cursor speed is tied to framerate + +DECLARATIONS: + # DON'T PUT ANYTHING BETWEEN - START + - + type: variable + name: fps_lock + value_type: uint32 + default_value: 30 + evaluate: FPS_LOCK_TARGET + - + type: variable + name: fps_lock2 + value_type: uint32 + default_value: 60 + evaluate: FPS_LOCK_TARGET + - + type: variable + name: game_speed + value_type: float + default_value: 0.0333333333 + evaluate: "1/FPS_TARGET" + - + type: variable + name: game_speed2 + value_type: float + default_value: 0.0166666666 + # DON'T PUT ANYTHING BETWEEN - END + - + type: code + name: fpsLock + instructions: [ + [adrp, x8, $fps_lock], + [ldr, w8, [x8, $fps_lock]], + [ret] + ] +MASTER_WRITE: + # Redirect FPS Lock, REF: A8 EA 00 B9 08 00 40 B9, LDR W8, [X0] + - + type: asm_a64 + main_offset: 0x1F900BC + instructions: [ + [bl, _fpsLock()] + ] + # Redirect game speed, REF: 08 31 9F 9A 20 79 68 BC 68 6E 41 B9 + - + type: asm_a64 + main_offset: 0x88B230 + instructions: [ + [adrp, x8, $game_speed], + [ldr, s0, [x8, $game_speed]] + ] +ALL_FPS: + - + type: block + what: timing diff --git a/SaltySD/plugins/FPSLocker/patches/0100C56010FD8000/5AD255D6667B6EB5.yaml b/SaltySD/plugins/FPSLocker/patches/0100C56010FD8000/5AD255D6667B6EB5.yaml new file mode 100644 index 0000000..0d7e1ba --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100C56010FD8000/5AD255D6667B6EB5.yaml @@ -0,0 +1,11 @@ +# Plants vs. Zombies Battle for Neighborville 1.0.4 +# BID: 5AD255D6667B6EB5 + +ALL_FPS: + # fb::Settings::s_settings + 0x20 + # Dynamic Resolution frametime target + - + type: evaluate_write + address: [MAIN, 0x9ED3AA0, 0x20] + value_type: float + value: "0.93 * FRAMETIME_TARGET" \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100CC401A16C000/ACF8E5931E38EAA0.yaml b/SaltySD/plugins/FPSLocker/patches/0100CC401A16C000/ACF8E5931E38EAA0.yaml new file mode 100644 index 0000000..2206964 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100CC401A16C000/ACF8E5931E38EAA0.yaml @@ -0,0 +1,12 @@ +# イースX -NORDICS- 1.0.4 +# BID: ACF8E5931E38EAA0 +# Credits to StevensND for finding assembly instruction from which I have derived pointer address + +ALL_FPS: + # Used to set min delta timing for various parts of game + DR target + # REF: C9 03 80 52 C1 03 80 52 first ADRP above it + - + type: evaluate_write + address: [MAIN, 0xD87CB8, 0x34] + value_type: uint32 + value: FPS_TARGET \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100D3801E6CE000/0100D3801E6CE000/ACCFF102CED838CE.yaml b/SaltySD/plugins/FPSLocker/patches/0100D3801E6CE000/0100D3801E6CE000/ACCFF102CED838CE.yaml new file mode 100644 index 0000000..cfaa0a4 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100D3801E6CE000/0100D3801E6CE000/ACCFF102CED838CE.yaml @@ -0,0 +1,25 @@ +# Poppy Playtime: Chapter 2 1.4 +# BID: ACCFF102CED838CE + +ALL_FPS: + # r.VSync + - + type: write + address: [MAIN, 0x640D6A8, 0] + value_type: int32 + value: [0, 0] + # r.DynamicRes.FrameTimeBudget + - + type: evaluate_write + address: [MAIN, 0x73F3290, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x742D7F0, 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/0100D4A00B284000/2B70B1A7B478FCA3.yaml b/SaltySD/plugins/FPSLocker/patches/0100D4A00B284000/2B70B1A7B478FCA3.yaml new file mode 100644 index 0000000..2c3022f --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100D4A00B284000/2B70B1A7B478FCA3.yaml @@ -0,0 +1,19 @@ +# ARK: Survival Evolved 2.0.15 +# BID: 2B70B1A7B478FCA3 + +ALL_FPS: + # r.DynamicRes.FrameTimeBudget (1000/FPS) rounded to one decimal + - + type: evaluate_write + address: [MAIN, 0x7ACB1B8, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 1)", "TruncDec(FRAMETIME_TARGET, 1)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x7AF93E8, 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/0100D7700AF88000/F5AC009011277359.yaml b/SaltySD/plugins/FPSLocker/patches/0100D7700AF88000/F5AC009011277359.yaml new file mode 100644 index 0000000..b91751c --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100D7700AF88000/F5AC009011277359.yaml @@ -0,0 +1,26 @@ +# 光明之響 龍奏回音 1.0.0 +# BID: 069E3EFC16365FFD + +MASTER_WRITE: + # Triple buffer + # REF: 28 60 81 52 E8 37 00 B9 E8 03 1F 32 + - + type: asm_a64 + main_offset: 0x3AD308 + instructions: [ + [mov, w8, 3] + ] +ALL_FPS: + # Disable FPS Lock + # REF: C8 46 90 52 first ADRP + LDR + LDR above it + - + type: write + address: [MAIN, 0xFBEDA8] + value_type: uint32 + value: 0 + # Lipsync fix + - + type: evaluate_write + address: [MAIN, 0xFBEDBC] + value_type: float + value: "30.0 / FPS_TARGET" \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100D7C021496000/23E85FEDEC96439C.yaml b/SaltySD/plugins/FPSLocker/patches/0100D7C021496000/23E85FEDEC96439C.yaml new file mode 100644 index 0000000..82b354d --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100D7C021496000/23E85FEDEC96439C.yaml @@ -0,0 +1,36 @@ +# Twilight Monk 1.4.1 +# BID: 23E85FEDEC96439C + +ALL_FPS: + # Disable bUseFixedFrameRate to untie game speed from framerate and unlock FPS + - + type: write + address: [MAIN, 0x5E0A268, 0x7A4] + address_unsafe: true + value_type: uint32 + # Default is 0x46, bUseFixedFrameRate |= 0x40 + # By writing 6 we are making sure that other flags are maintained: + # bAllowMultiThreadedAnimationUpdate |= 4 + # bOptimizeAnimBlueprintMemberVariableAccess |= 2 + value: 6 + # r.DynamicRes.FrameTimeBudget + - + type: evaluate_write + address: [MAIN, 0x5DDCEC8, 0] + value_type: float + value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"] + # t.MaxFPS + - + type: evaluate_write + address: [MAIN, 0x5E0AB88, 0] + value_type: float + value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET] + # r.VSync + - + type: evaluate_write + address: [MAIN, 0x560EA78, 0] + value_type: uint32 + value: [0, 0] + - + type: block + what: timing \ No newline at end of file diff --git a/SaltySD/plugins/FPSLocker/patches/0100DE90162A0000/0BBD86F62F380844.yaml b/SaltySD/plugins/FPSLocker/patches/0100DE90162A0000/0BBD86F62F380844.yaml new file mode 100644 index 0000000..4403248 --- /dev/null +++ b/SaltySD/plugins/FPSLocker/patches/0100DE90162A0000/0BBD86F62F380844.yaml @@ -0,0 +1,55 @@ +# 영웅전설 섬의 궤적 IV -THE END OF SAGA- 1.0.0 +# BID: 0BBD86F62F380844 +# Button polling is 2x more sensitive to holding any button + +DECLARATIONS: + - + type: variable + name: fps_lock + value_type: uint32 + default_value: 33333333 + evaluate: "FRAMETIME_TARGET * 930000" + - + type: variable + name: frame_time + value_type: float + default_value: 0.0333333333 + - + type: code + name: dynamicSpeed + instructions: [ + [str, x0, [x19, 8]], + [fcvt, s4, d0], + [adrp, x8, $frame_time], + [str, s4, [x8, $frame_time]], + [ret] + ] +MASTER_WRITE: + # Move loading FPS lock time + ## REF: MOV with 0x1FC7945 + - + type: asm_a64 + main_offset: 0x5B22F8 + instructions: [ + [adrp, x20, $fps_lock], + [ldr, w20, [x20, $fps_lock]] + ] + # Write game's loop time as float + ## REF: 1F 01 09 EB 00 08 61 1E, replace STR X0, [X19,#8] below it + - + type: asm_a64 + main_offset: 0x5B2358 + instructions: [ + [bl, _dynamicSpeed()] + ] + # Read lowest timing float factor + ## REF: E8 03 1F 2A 00 20 22 1E 60 5E 1A BD, MOV with 0x3D088889 + FMINM + FMOV above it + - + type: asm_a64 + main_offset: 0x5F8E0 + instructions: [ + [adrp, x8, $frame_time], + [fminnm, s0, s0, s2], + [ldr, s2, [x8, $frame_time]], + [nop] + ] \ No newline at end of file diff --git a/SaltySD/saltysd_bootstrap32_3k.elf b/SaltySD/saltysd_bootstrap32_3k.elf index baef19b..3a093d2 100644 Binary files a/SaltySD/saltysd_bootstrap32_3k.elf and b/SaltySD/saltysd_bootstrap32_3k.elf differ diff --git a/SaltySD/saltysd_bootstrap32_5k.elf b/SaltySD/saltysd_bootstrap32_5k.elf index 57c8a22..a6e4cd3 100644 Binary files a/SaltySD/saltysd_bootstrap32_5k.elf and b/SaltySD/saltysd_bootstrap32_5k.elf differ diff --git a/SaltySD/saltysd_core.elf b/SaltySD/saltysd_core.elf index 32a61ea..51415f5 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 a22d49f..fc17e10 100644 Binary files a/SaltySD/saltysd_core32.elf and b/SaltySD/saltysd_core32.elf differ diff --git a/Ultra.zip b/Ultra.zip new file mode 100644 index 0000000..883d931 Binary files /dev/null and b/Ultra.zip differ diff --git a/atmosphere/contents/0000000000534C56/exefs.nsp b/atmosphere/contents/0000000000534C56/exefs.nsp index c5654f3..4750b0a 100644 Binary files a/atmosphere/contents/0000000000534C56/exefs.nsp and b/atmosphere/contents/0000000000534C56/exefs.nsp differ diff --git a/atmosphere/contents/0000000000534C56/toolbox.json b/atmosphere/contents/0000000000534C56/toolbox.json index 1cb1834..dd81b28 100644 --- a/atmosphere/contents/0000000000534C56/toolbox.json +++ b/atmosphere/contents/0000000000534C56/toolbox.json @@ -1,5 +1,6 @@ { "name": "SaltyNX", "tid": "0000000000534C56", - "requires_reboot": true -} \ No newline at end of file + "requires_reboot": true, + "version": "1.5.4" +} diff --git a/atmosphere/package3 b/atmosphere/package3 index a83f591..637194d 100644 Binary files a/atmosphere/package3 and b/atmosphere/package3 differ diff --git a/atmosphere/stratosphere.romfs b/atmosphere/stratosphere.romfs index 2bf42ed..fda7840 100644 Binary files a/atmosphere/stratosphere.romfs and b/atmosphere/stratosphere.romfs differ diff --git a/config/sys-clk/lang/de.json b/config/sys-clk/lang/de.json index aef6fb0..283ffe4 100644 --- a/config/sys-clk/lang/de.json +++ b/config/sys-clk/lang/de.json @@ -3,19 +3,19 @@ "Advanced": "Erweitert", "Edit Global Profile": "Globales Profil bearbeiten", "Temporary Overrides": "Temporäre Überschreibungen", - "Temporary Overrides   Reset": "Temporäre Überschreibungen   Reset", + "Temporary Overrides   Reset": "Temporäre Überschreibungen   Zurücksetzen", "Settings": "Einstellungen", "Enable": "Aktivieren", "Uncapped Clocks": "Unbegrenzte Taktraten", - "Override Boost Mode": "Boost Modus überschreiben", + "Boost GPU Override": "GPU-Boost Überschreiben", "Auto CPU Boost": "Auto CPU Boost", "Sync ReverseNX": "ReverseNX synchronisieren", "Auto GPU Vmin": "Auto GPU Vmin", "Off": "Aus", "Official Service": "Offizieller Dienst", - "Hijack": "Hijack", - "GPU Vmin Offset": "GPU Vmin Offset", - "App ID": "App ID", + "Hijack": "Entführen", + "GPU Vmin Offset": "GPU Vmin Versatz", + "App ID": "App-ID", "EOS mode": "EOS Modus", "Skin": "Skin", "Now": "Jetzt", @@ -25,12 +25,16 @@ "Charging": "Lädt", "Official Charger": "Offizielles Ladegerät", "USB Charger": "USB Ladegerät", - "Docked   Reset": "Gedockt   Reset", - "Handheld   Reset": "Handheld   Reset", - "Charging   Reset": "Lädt   Reset", - "Official Charger   Reset": "Offizielles Ladegerät   Reset", - "USB Charger   Reset": "USB Ladegerät   Reset", + "Docked   Reset": "Gedockt   Zurücksetzen", + "Handheld   Reset": "Handheld   Zurücksetzen", + "Charging   Reset": "Lädt   Zurücksetzen", + "Official Charger   Reset": "Offizielles Ladegerät   Zurücksetzen", + "USB Charger   Reset": "USB Ladegerät   Zurücksetzen", "Memory": "Speicher", "Do not override": "Nicht überschreiben", - "Profile": "Profil" + "Profile": "Profil", + "Fatal error": "Schwerwiegender Fehler", + "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.": "Keine Verbindung zu sys-clk.\n\n\nBitte prüfen Sie die Installation\n\nund Aktivierung.", + "sys-clk is not running.\n\n\nPlease make sure it is correctly\n\ninstalled and enabled.": "sys-clk läuft nicht.\n\n\nBitte prüfen Sie die Installation\n\nund Aktivierung.", + "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.": "Keine Verbindung zu sys-clk.\n\n\nBitte prüfen Sie die Installation\n\nund Aktivierung." } diff --git a/config/sys-clk/lang/en.json b/config/sys-clk/lang/en.json index b4c73ed..f6de4bc 100644 --- a/config/sys-clk/lang/en.json +++ b/config/sys-clk/lang/en.json @@ -7,7 +7,7 @@ "Settings": "Settings", "Enable": "Enable", "Uncapped Clocks": "Uncapped Clocks", - "Override Boost Mode": "Override Boost Mode", + "Boost GPU Override": "Boost GPU Override", "Auto CPU Boost": "Auto CPU Boost", "Sync ReverseNX": "Sync ReverseNX", "Auto GPU Vmin": "Auto GPU Vmin", @@ -32,5 +32,9 @@ "USB Charger   Reset": "USB Charger   Reset", "Memory": "Memory", "Do not override": "Do not overrride", - "Profile": "Profile" + "Profile": "Profile", + "Fatal error": "Fatal error", + "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.": "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.", + "sys-clk is not running.\n\n\nPlease make sure it is correctly\n\ninstalled and enabled.": "sys-clk is not running.\n\n\nPlease make sure it is correctly\n\ninstalled and enabled.", + "Could not connect to sys-clk.\n\n\nPlease make sure it is correctly\n\ninstalled and enabled.": "Could not connect to sys-clk.\n\n\nPlease make sure it is correctly\n\ninstalled and enabled." } diff --git a/config/sys-clk/lang/es.json b/config/sys-clk/lang/es.json index 028fe72..b62d32e 100644 --- a/config/sys-clk/lang/es.json +++ b/config/sys-clk/lang/es.json @@ -7,7 +7,7 @@ "Settings": "Configuración", "Enable": "Habilitar", "Uncapped Clocks": "Relojes sin límite", - "Override Boost Mode": "Sobrescribir modo Boost", + "Boost GPU Override": "GPU Boost Sobrescribir", "Auto CPU Boost": "Auto CPU Boost", "Sync ReverseNX": "Sincronizar con ReverseNX", "Auto GPU Vmin": "Auto GPU Vmin", @@ -32,5 +32,9 @@ "USB Charger   Reset": "Cargador USB   Reiniciar", "Memory": "Memoria", "Do not override": "No sobrescribir", - "Profile": "Perfil" + "Profile": "Perfil", + "Fatal error": "Error fatal", + "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.": "No se conectó a sys-clk.\n\n\nVerifica que todo esté\n\ninstalado y habilitado.", + "sys-clk is not running.\n\n\nPlease make sure it is correctly\n\ninstalled and enabled.": "sys-clk no está activo.\n\n\nVerifica que esté\n\ninstalado y habilitado.", + "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.": "No se conectó a sys-clk.\n\n\nVerifica que todo esté\n\ninstalado y habilitado." } diff --git a/config/sys-clk/lang/fr.json b/config/sys-clk/lang/fr.json index 6d0db46..8fa7ee3 100644 --- a/config/sys-clk/lang/fr.json +++ b/config/sys-clk/lang/fr.json @@ -7,7 +7,7 @@ "Settings": "Paramètres", "Enable": "Activer", "Uncapped Clocks": "Horloges sans limite", - "Override Boost Mode": "Forcer mode Boost", + "Boost GPU Override": "Boost GPU Remplacer", "Auto CPU Boost": "Boost CPU auto", "Sync ReverseNX": "Synchroniser ReverseNX", "Auto GPU Vmin": "Auto GPU Vmin", @@ -32,5 +32,9 @@ "USB Charger   Reset": "Chargeur USB   Réinitialiser", "Memory": "Mémoire", "Do not override": "Ne pas remplacer", - "Profile": "Profil" + "Profile": "Profil", + "Fatal error": "Erreur fatale", + "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.": "Connexion à sys-clk échouée.\n\n\nVérifiez l’installation\n\net l’activation.", + "sys-clk is not running.\n\n\nPlease make sure it is correctly\n\ninstalled and enabled.": "sys-clk non actif.\n\n\nVérifiez l’installation\n\net l’activation.", + "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.": "Connexion à sys-clk échouée.\n\n\nVérifiez l’installation\n\net l’activation." } diff --git a/config/sys-clk/lang/it.json b/config/sys-clk/lang/it.json index e133243..57d8374 100644 --- a/config/sys-clk/lang/it.json +++ b/config/sys-clk/lang/it.json @@ -7,7 +7,7 @@ "Settings": "Impostazioni", "Enable": "Abilita", "Uncapped Clocks": "Clock senza limiti", - "Override Boost Mode": "Forza modalità Boost", + "Boost GPU Override": "Boost GPU Sovrascrivere", "Auto CPU Boost": "Boost CPU automatico", "Sync ReverseNX": "Sincronizza con ReverseNX", "Auto GPU Vmin": "Auto GPU Vmin", @@ -32,5 +32,9 @@ "USB Charger   Reset": "Caricatore USB   Reimposta", "Memory": "Memoria", "Do not override": "Non sovrascrivere", - "Profile": "Profilo" + "Profile": "Profilo", + "Fatal error": "Errore fatale", + "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.": "Connessione a sys-clk fallita.\n\n\nVerifica installazione\n\ne attivazione.", + "sys-clk is not running.\n\n\nPlease make sure it is correctly\n\ninstalled and enabled.": "sys-clk non attivo.\n\n\nVerifica installazione\n\ne attivazione.", + "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.": "Connessione a sys-clk fallita.\n\n\nVerifica installazione\n\ne attivazione." } diff --git a/config/sys-clk/lang/ja.json b/config/sys-clk/lang/ja.json index 2fd1e8c..baa7d7f 100644 --- a/config/sys-clk/lang/ja.json +++ b/config/sys-clk/lang/ja.json @@ -7,7 +7,7 @@ "Settings": "設定", "Enable": "有効化", "Uncapped Clocks": "クロック制限解除", - "Override Boost Mode": "ブーストモードをオーバーライド", + "Boost GPU Override": "Boost GPU 上書き", "Auto CPU Boost": "自動CPUブースト", "Sync ReverseNX": "ReverseNXと同期", "Auto GPU Vmin": "自動GPU Vmin", @@ -32,5 +32,9 @@ "USB Charger   Reset": "USB充電器   リセット", "Memory": "メモリ", "Do not override": "オーバーライドしない", - "Profile": "プロフィール" + "Profile": "プロフィール", + "Fatal error": "致命的エラー", + "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.": "sys-clkに接続できません。\n\n\nインストールと有効化を\n\n確認してください。", + "sys-clk is not running.\n\n\nPlease make sure it is correctly\n\ninstalled and enabled.": "sys-clkが動作していません。\n\n\nインストールと有効化を\n\n確認してください。", + "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.": "sys-clkに接続できません。\n\n\nインストールと有効化を\n\n確認してください。" } diff --git a/config/sys-clk/lang/ko.json b/config/sys-clk/lang/ko.json index 125e336..d352a57 100644 --- a/config/sys-clk/lang/ko.json +++ b/config/sys-clk/lang/ko.json @@ -7,7 +7,7 @@ "Settings": "설정", "Enable": "활성화", "Uncapped Clocks": "클럭 제한 해제", - "Override Boost Mode": "부스트 모드 오버라이드", + "Boost GPU Override": "Boost GPU 덮어쓰기", "Auto CPU Boost": "자동 CPU 부스트", "Sync ReverseNX": "ReverseNX 동기화", "Auto GPU Vmin": "자동 GPU Vmin", @@ -32,5 +32,9 @@ "USB Charger   Reset": "USB 충전기   리셋", "Memory": "메모리", "Do not override": "오버라이드 안 함", - "Profile": "프로필" + "Profile": "프로필", + "Fatal error": "치명적 오류", + "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.": "sys-clk에 연결 실패.\n\n\n설치 및 활성화를\n\n확인하세요.", + "sys-clk is not running.\n\n\nPlease make sure it is correctly\n\ninstalled and enabled.": "sys-clk이 실행 안 됨.\n\n\n설치 및 활성화를\n\n확인하세요.", + "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.": "sys-clk에 연결 실패.\n\n\n설치 및 활성화를\n\n확인하세요." } diff --git a/config/sys-clk/lang/nl.json b/config/sys-clk/lang/nl.json index 2932326..120065a 100644 --- a/config/sys-clk/lang/nl.json +++ b/config/sys-clk/lang/nl.json @@ -7,7 +7,7 @@ "Settings": "Instellingen", "Enable": "Inschakelen", "Uncapped Clocks": "Ongelimiteerde kloksnelheden", - "Override Boost Mode": "Boostmodus overschrijven", + "Boost GPU Override": "Boost GPU Overschrijven", "Auto CPU Boost": "Automatische CPU-boost", "Sync ReverseNX": "ReverseNX synchroniseren", "Auto GPU Vmin": "Automatische GPU Vmin", @@ -32,5 +32,9 @@ "USB Charger   Reset": "USB-oplader   Resetten", "Memory": "Geheugen", "Do not override": "Niet overschrijven", - "Profile": "Profiel" + "Profile": "Profiel", + "Fatal error": "Fatale fout", + "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.": "Geen verbinding met sys-clk.\n\n\nControleer installatie\n\nen activering.", + "sys-clk is not running.\n\n\nPlease make sure it is correctly\n\ninstalled and enabled.": "sys-clk draait niet.\n\n\nControleer installatie\n\nen activering.", + "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.": "Geen verbinding met sys-clk.\n\n\nControleer installatie\n\nen activering." } diff --git a/config/sys-clk/lang/pl.json b/config/sys-clk/lang/pl.json index 7039d37..58dc28b 100644 --- a/config/sys-clk/lang/pl.json +++ b/config/sys-clk/lang/pl.json @@ -7,14 +7,14 @@ "Settings": "Ustawienia", "Enable": "Włącz", "Uncapped Clocks": "Nieograniczone taktowanie", - "Override Boost Mode": "Nadpisz tryb Boost", + "Boost GPU Override": "Boost GPU Nadpisz", "Auto CPU Boost": "Automatyczny Boost CPU", "Sync ReverseNX": "Synchronizuj z ReverseNX", "Auto GPU Vmin": "Automatyczny GPU Vmin", "Off": "Wył.", "Official Service": "Oficjalna usługa", "Hijack": "Przejęcie", - "GPU Vmin Offset": "GPU Vmin Offset", + "GPU Vmin Offset": "Przesunięcie Vmin GPU", "App ID": "ID app", "EOS mode": "Tryb EOS", "Skin": "Motyw", @@ -32,5 +32,9 @@ "USB Charger   Reset": "Ładowarka USB   Resetuj", "Memory": "Pamięć", "Do not override": "Nie nadpisuj", - "Profile": "Profil" + "Profile": "Profil", + "Fatal error": "Błąd krytyczny", + "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.": "Brak połączenia z sys-clk.\n\n\nSprawdź instalację\n\ni aktywację.", + "sys-clk is not running.\n\n\nPlease make sure it is correctly\n\ninstalled and enabled.": "sys-clk nie działa.\n\n\nSprawdź instalację\n\ni aktywację.", + "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.": "Brak połączenia z sys-clk.\n\n\nSprawdź instalację\n\ni aktywację." } diff --git a/config/sys-clk/lang/pt.json b/config/sys-clk/lang/pt.json index 1fd4d79..d923e37 100644 --- a/config/sys-clk/lang/pt.json +++ b/config/sys-clk/lang/pt.json @@ -7,14 +7,14 @@ "Settings": "Configurações", "Enable": "Ativar", "Uncapped Clocks": "Clock ilimitado", - "Override Boost Mode": "Substituir modo Boost", + "Boost GPU Override": "Boost GPU Substituir", "Auto CPU Boost": "Boost automático CPU", "Sync ReverseNX": "Sync ReverseNX", "Auto GPU Vmin": "Automático GPU Vmin", "Off": "Desligado", "Official Service": "Serviço oficial", "Hijack": "Sequestro", - "GPU Vmin Offset": "GPU Vmin Offset", + "GPU Vmin Offset": "Deslocamento Vmin GPU", "App ID": "ID app", "EOS mode": "Modo EOS", "Skin": "Tema", @@ -32,5 +32,9 @@ "USB Charger   Reset": "Carregador USB   Reiniciar", "Memory": "Memória", "Do not override": "Não substituir", - "Profile": "Perfil" + "Profile": "Perfil", + "Fatal error": "Erro fatal", + "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.": "Não conectou ao sys-clk.\n\n\nVerifique a instalação\n\ne ativação.", + "sys-clk is not running.\n\n\nPlease make sure it is correctly\n\ninstalled and enabled.": "sys-clk não está ativo.\n\n\nVerifique a instalação\n\ne ativação.", + "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.": "Não conectou ao sys-clk.\n\n\nVerifique a instalação\n\ne ativação." } diff --git a/config/sys-clk/lang/ru.json b/config/sys-clk/lang/ru.json index afb2ebb..ecb4b74 100644 --- a/config/sys-clk/lang/ru.json +++ b/config/sys-clk/lang/ru.json @@ -7,14 +7,14 @@ "Settings": "Настройки", "Enable": "sys-clk", "Uncapped Clocks": "Не ограничивать MHz", - "Override Boost Mode": "Замещать Boost", + "Boost GPU Override": "Boost GPU Перезапись", "Auto CPU Boost": "Авто Boost CPU", "Sync ReverseNX": "Синхр. с ReverseNX", "Auto GPU Vmin": "Авто GPU Vmin", "Off": "Отключен", "Official Service": "Официальный сервис", "Hijack": "Перехват", - "GPU Vmin Offset": "GPU Vmin Offset", + "GPU Vmin Offset": "GPU Vmin Смещение", "App ID": "App ID", "EOS mode": "Режим EOS", "Skin": "Плата", @@ -32,5 +32,9 @@ "USB Charger   Reset": "USB зарядка   Сброс", "Memory": "RAM", "Do not override": "По умолчанию", - "Profile": "Профиль" + "Profile": "Профиль", + "Fatal error": "Критическая ошибка", + "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.": "Не удалось подключить sys-clk.\n\n\nПроверьте установку\n\nи активацию.", + "sys-clk is not running.\n\n\nPlease make sure it is correctly\n\ninstalled and enabled.": "sys-clk не запущен.\n\n\nПроверьте установку\n\nи активацию.", + "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.": "Не удалось подключить sys-clk.\n\n\nПроверьте установку\n\nи активацию." } diff --git a/config/sys-clk/lang/uk.json b/config/sys-clk/lang/uk.json index a39cc47..0f84d18 100644 --- a/config/sys-clk/lang/uk.json +++ b/config/sys-clk/lang/uk.json @@ -7,7 +7,7 @@ "Settings": "Налаштування", "Enable": "Увімкнути", "Uncapped Clocks": "Без обмежень", - "Override Boost Mode": "Перезапис Boost", + "Boost GPU Override": "Boost GPU Override", "Auto CPU Boost": "Авто Boost CPU", "Sync ReverseNX": "Синхр. ReverseNX", "Auto GPU Vmin": "Авто GPU Vmin", @@ -32,5 +32,9 @@ "USB Charger   Reset": "USB зарядка   Скидання", "Memory": "Пам’ять", "Do not override": "Не змінювати", - "Profile": "Профіль" + "Profile": "Профіль", + "Fatal error": "Fatal error", + "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.": "Не вдалося підключити sys-clk.\n\n\nПеревірте, чи все\n\nвстановлено й увімкнено.", + "sys-clk is not running.\n\n\nPlease make sure it is correctly\n\ninstalled and enabled.": "sys-clk не запущено.\n\n\nПеревірте, чи його\n\nвстановлено й увімкнено.", + "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.": "Не вдалося підключити sys-clk.\n\n\nПеревірте, чи все\n\nвстановлено й увімкнено." } diff --git a/config/sys-clk/lang/zh-cn.json b/config/sys-clk/lang/zh-cn.json index b0c5b68..3b73dfc 100644 --- a/config/sys-clk/lang/zh-cn.json +++ b/config/sys-clk/lang/zh-cn.json @@ -7,17 +7,17 @@ "Settings": "高级设置", "Enable": "启用调频", "Uncapped Clocks": "解锁频率", - "Override Boost Mode": "升压模式", + "Boost GPU Override": "GPU加速覆盖", "Auto CPU Boost": "自动CPU", "Sync ReverseNX": "同步ReverseNX", - "Auto GPU Vmin": "自动GPU Vmin", + "Auto GPU Vmin": "自动GPU电压", "Off": "关闭", "Official Service": "官方服务", "Hijack": "劫持", "GPU Vmin Offset": "GPU Vmin偏移", "App ID": "程序ID", "EOS mode": "EOS", - "Skin": "Skin", + "Skin": "皮肤", "Now": "当前", "Avg": "平均", "Docked": "底座模式", @@ -32,5 +32,9 @@ "USB Charger   Reset": "USB充电器   重置", "Memory": "内存", "Do not override": "默认", - "Profile": "配置" + "Profile": "配置", + "Fatal error": "致命错误", + "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.": "无法连接sys-clk。\n\n\n请确认一切\n\n已正确安装和启用。", + "sys-clk is not running.\n\n\nPlease make sure it is correctly\n\ninstalled and enabled.": "sys-clk未运行。\n\n\n请确认其\n\n已正确安装和启用。", + "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.": "无法连接sys-clk。\n\n\n请确认一切\n\n已正确安装和启用。" } diff --git a/config/sys-clk/lang/zh-tw.json b/config/sys-clk/lang/zh-tw.json index 6d78668..2a01981 100644 --- a/config/sys-clk/lang/zh-tw.json +++ b/config/sys-clk/lang/zh-tw.json @@ -7,17 +7,17 @@ "Settings": "高階設定", "Enable": "啟用調頻", "Uncapped Clocks": "解鎖頻率", - "Override Boost Mode": "升壓模式", + "Boost GPU Override": "GPU加速覆蓋", "Auto CPU Boost": "自動CPU", "Sync ReverseNX": "同步ReverseNX", - "Auto GPU Vmin": "自動GPU Vmin", + "Auto GPU Vmin": "自動GPU電壓", "Off": "關閉", "Official Service": "官方服務", "Hijack": "劫持", "GPU Vmin Offset": "GPU Vmin偏移", "App ID": "程式ID", "EOS mode": "EOS", - "Skin": "Skin", + "Skin": "外觀", "Now": "當前", "Avg": "平均", "Docked": "底座模式", @@ -32,5 +32,9 @@ "USB Charger   Reset": "USB充電器   重置", "Memory": "記憶體", "Do not override": "預設", - "Profile": "配置" + "Profile": "配置", + "Fatal error": "致命錯誤", + "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.": "無法連線sys-clk。\n\n\n請確認一切\n\n已正確安裝與啟用。", + "sys-clk is not running.\n\n\nPlease make sure it is correctly\n\ninstalled and enabled.": "sys-clk未運行。\n\n\n請確認其\n\n已正確安裝與啟用。", + "Could not connect to sys-clk.\n\n\nPlease make sure everything is\n\ncorrectly installed and enabled.": "無法連線sys-clk。\n\n\n請確認一切\n\n已正確安裝與啟用。" } diff --git a/switch/.overlays/Status-Monitor-Overlay.ovl b/switch/.overlays/Status-Monitor-Overlay.ovl index a993713..216444e 100644 Binary files a/switch/.overlays/Status-Monitor-Overlay.ovl and b/switch/.overlays/Status-Monitor-Overlay.ovl differ diff --git a/switch/.overlays/ovlEdiZon.ovl b/switch/.overlays/ovlEdiZon.ovl index c9e3738..a3fdd06 100644 Binary files a/switch/.overlays/ovlEdiZon.ovl and b/switch/.overlays/ovlEdiZon.ovl differ diff --git a/switch/.overlays/ovlSysmodules.ovl b/switch/.overlays/ovlSysmodules.ovl index 00b5735..89d373f 100644 Binary files a/switch/.overlays/ovlSysmodules.ovl and b/switch/.overlays/ovlSysmodules.ovl differ diff --git a/switch/.overlays/ovlmenu.ovl b/switch/.overlays/ovlmenu.ovl index acb786c..f86b457 100644 Binary files a/switch/.overlays/ovlmenu.ovl and b/switch/.overlays/ovlmenu.ovl differ diff --git a/switch/.overlays/sys-clk-overlay.ovl b/switch/.overlays/sys-clk-overlay.ovl index 0a570a4..c2fde32 100644 Binary files a/switch/.overlays/sys-clk-overlay.ovl and b/switch/.overlays/sys-clk-overlay.ovl differ diff --git a/switch/DBI/DBI.nro b/switch/DBI/DBI.nro index ce55f31..e23473a 100644 Binary files a/switch/DBI/DBI.nro and b/switch/DBI/DBI.nro differ