mirror of
https://github.com/Ultra-NX/UltraNX.git
synced 2025-12-13 10:23:57 +00:00
Ultra 2.7|R2
This commit is contained in:
parent
164babb735
commit
a7853bf3ac
@ -8,7 +8,7 @@
|
||||
|
||||
### Ultra - это функциональная кастомная прошивка для Nintendo Switch, с упором в разгон и улучшенный пользовательский опыт.
|
||||
|
||||
### [UltraNX 2.7|R1](https://github.com/Ultra-NX/UltraNX/releases/tag/2.7-R1) Поддерживает все HOS до 21.0.1 включительно
|
||||
### [UltraNX 2.7|R2](https://github.com/Ultra-NX/UltraNX/releases/tag/2.7-R2) Поддерживает все HOS до 21.1.0 включительно (21.1.0 в Safe Mode)
|
||||
|
||||
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
#
|
||||
### Ultra is a functional custom firmware for Nintendo Switch, with a focus on overclocking and an improved user experience.
|
||||
|
||||
### [UltraNX 2.7|R1](https://github.com/Ultra-NX/UltraNX/releases/tag/2.7-R1) Supports all HOS up to and including 21.0.1
|
||||
### [UltraNX 2.7|R2](https://github.com/Ultra-NX/UltraNX/releases/tag/2.7-R2) Supports all HOS up to and including 21.1.0 (21.1.0 in Safe Mode)
|
||||
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,16 @@
|
||||
# Lumo 2 1.0.0.0
|
||||
# BID: 5C2942CCDF0AA6EA
|
||||
|
||||
ALL_FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6BB0EE8, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7BC68D0, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
@ -0,0 +1,10 @@
|
||||
# Beholder 2 1.0.3
|
||||
# BID: 5D3FE9C0FAA44B4C
|
||||
|
||||
ALL_FPS:
|
||||
# UnityEngine.Time::fixedDeltaTime
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x4275238, 0x48]
|
||||
value_type: float
|
||||
value: "1 / FPS_TARGET"
|
||||
@ -0,0 +1,19 @@
|
||||
# PROGRESS ORDERS 1.0.3
|
||||
# BID: 33E7D684796F363B
|
||||
|
||||
ALL_FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7B26958, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x8B1E280, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
@ -0,0 +1,19 @@
|
||||
# 옥토패스 트래블러 0 1.0.2
|
||||
# BID: 6070FC72448EE560
|
||||
|
||||
ALL_FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6C5C6E8, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7C7E8E0, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
@ -0,0 +1,19 @@
|
||||
# Combat Forces 1.0.0
|
||||
# BID: 81C9C793B5370E9B
|
||||
|
||||
ALL_FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x604AC78, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6843A78, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
@ -0,0 +1,25 @@
|
||||
# Anime vs Evil: Apocalypse 1.0
|
||||
# BID: D2EADA78AA71283E
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x8DA64D0, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7DE4978, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x8DE1840, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
@ -0,0 +1,19 @@
|
||||
# World At War: Cobra 1.0.0
|
||||
# BID: 7DE262BD1732DBFB
|
||||
|
||||
ALL_FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x604AC78, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6843A78, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
@ -0,0 +1,25 @@
|
||||
# King's Bounty II 1.7
|
||||
# BID: 5EAF1BB0E2B89AF4
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x93CF440, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x8874BA0, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x93FB7B0, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
@ -5,7 +5,7 @@ ALL_FPS:
|
||||
# DynamicResolutionManager_TypeInfo
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x84A6F58, 0xB8, 0]
|
||||
address: [MAIN, 0x84A6F58, 0xB8, 8]
|
||||
address_unsafe: true
|
||||
value_type: double
|
||||
value: [FPS_TARGET, FRAMETIME_TARGET]
|
||||
value: [FPS_TARGET, FRAMETIME_TARGET]
|
||||
|
||||
@ -0,0 +1,40 @@
|
||||
# Wasteland 2: Director's Cut 1.0.1
|
||||
# BID: 77009C1234634A4E
|
||||
|
||||
DECLARATIONS:
|
||||
# Dynamic resolution is botched because it relies on whole frame rendering loop time,
|
||||
# which means we cannot set min to 60 FPS because otherwise it will never get back to higher resolutions
|
||||
-
|
||||
type: variable
|
||||
name: dr_fps_min
|
||||
value_type: float
|
||||
default_value: 20
|
||||
evaluate: "0.9 * FPS_TARGET"
|
||||
-
|
||||
type: variable
|
||||
name: dr_fps_max
|
||||
value_type: float
|
||||
default_value: 33
|
||||
evaluate: "FPS_TARGET"
|
||||
-
|
||||
type: code
|
||||
name: getDrFpsTargetMin
|
||||
instructions: [
|
||||
[adrp, x20, $dr_fps_min],
|
||||
[ldr, s1, [x20, $dr_fps_min]],
|
||||
[ret]
|
||||
]
|
||||
MASTER_WRITE:
|
||||
-
|
||||
type: asm_a64
|
||||
main_offset: 0x36EE98
|
||||
instructions: [
|
||||
[bl, _getDrFpsTargetMin()]
|
||||
]
|
||||
-
|
||||
type: asm_a64
|
||||
main_offset: 0x36EEF4
|
||||
instructions: [
|
||||
[adrp, x8, $dr_fps_max],
|
||||
[ldr, s1, [x8, $dr_fps_max]]
|
||||
]
|
||||
@ -0,0 +1,25 @@
|
||||
# American Arcadia 1.0.3
|
||||
# BID: 2CE51030AF9800A5
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget (default is 34.5)
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x76908F0, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x66B5390, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x76BE650, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
@ -0,0 +1,19 @@
|
||||
# Octopath Traveler 0 1.0.2
|
||||
# BID: FEABC8D141EECCA5
|
||||
|
||||
ALL_FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x6C5A6E8, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7C7C8E0, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
@ -0,0 +1,19 @@
|
||||
# VARIOUS DAYLIFE 1.0.1
|
||||
# BID: A2DDF741D0E37D15
|
||||
|
||||
ALL_FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x60D56A0, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x68986B0, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
@ -0,0 +1,25 @@
|
||||
# Wizard of Legend 2 1.1.0b
|
||||
# BID: F8FA82D6A1BFE328
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x85D8B28, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x75EE990, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x86132B8, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
@ -0,0 +1,25 @@
|
||||
# Super Street: Racer 1.0.1
|
||||
# BID: 8E82D24A9B7504FB
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6B6E560, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x632F270, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6B930B8, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
@ -0,0 +1,10 @@
|
||||
# Nice Day for Fishing 1.0.7
|
||||
# BID: 1A371F609F4B6172
|
||||
|
||||
ALL_FPS:
|
||||
# UnityEngine.Time::fixedDeltaTime
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x4D2C6C0, 0x48]
|
||||
value_type: float
|
||||
value: "1 / FPS_TARGET"
|
||||
@ -5,7 +5,7 @@ ALL_FPS:
|
||||
# DynamicResolutionManager_TypeInfo
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x84A6F58, 0xB8, 0]
|
||||
address: [MAIN, 0x84A6F58, 0xB8, 8]
|
||||
address_unsafe: true
|
||||
value_type: double
|
||||
value: [FPS_TARGET, FRAMETIME_TARGET]
|
||||
value: [FPS_TARGET, FRAMETIME_TARGET]
|
||||
|
||||
@ -0,0 +1,32 @@
|
||||
# MudRunner - American Wilds Edition 4.5
|
||||
# BID: 028C5AB881F17582
|
||||
|
||||
DECLARATIONS:
|
||||
-
|
||||
type: variable
|
||||
name: dr_gpu_target_max
|
||||
value_type: float
|
||||
default_value: 21.5
|
||||
evaluate: 0.645 * FRAMETIME_TARGET
|
||||
-
|
||||
type: variable
|
||||
name: dr_gpu_target_min
|
||||
value_type: float
|
||||
default_value: 19.5
|
||||
evaluate: (0.645 * FRAMETIME_TARGET) - 2
|
||||
MASTER_WRITE:
|
||||
# Redirect DR frametime target
|
||||
-
|
||||
type: asm_a64
|
||||
main_offset: 0xA30A0
|
||||
instructions: [
|
||||
[adrp, x9, $dr_gpu_target_max],
|
||||
[ldr, s1, [x9, $dr_gpu_target_max]]
|
||||
]
|
||||
-
|
||||
type: asm_a64
|
||||
main_offset: 0xA30D8
|
||||
instructions: [
|
||||
[adrp, x9, $dr_gpu_target_min],
|
||||
[ldr, s1, [x9, $dr_gpu_target_min]]
|
||||
]
|
||||
@ -0,0 +1,16 @@
|
||||
# Hannah 1.0.3
|
||||
# BID: 07E20F126ABEFF78
|
||||
|
||||
ALL_FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x60CB978, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x70C3140, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
@ -0,0 +1,10 @@
|
||||
# Fruitbus 1.0.2
|
||||
# BID: 2E049E21624484CF
|
||||
|
||||
ALL_FPS:
|
||||
# UnityEngine.Time::fixedDeltaTime
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x9A7CBF8, 0x48]
|
||||
value_type: float
|
||||
value: "1 / FPS_TARGET"
|
||||
@ -0,0 +1,11 @@
|
||||
# Risen 1.0.1
|
||||
# BID: 94EA2A7C7EE32EEF
|
||||
|
||||
ALL_FPS:
|
||||
# Dynamic Resolution factors
|
||||
# REF: g_GetModuleAdmin<eCGfxAdmin>(void)::s_pAdmin + 0x610
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x41FDEA0, 0x610]
|
||||
value_type: double
|
||||
value: ["5.2 * (FPS_TARGET / 30)", "1.3 * (FPS_TARGET / 30)"]
|
||||
@ -0,0 +1,28 @@
|
||||
# INAZUMA ELEVEN: Victory Road 1.4.0
|
||||
# BID: 062189E9CF83BA5D
|
||||
|
||||
DECLARATIONS:
|
||||
-
|
||||
type: variable
|
||||
name: fps_target
|
||||
value_type: float
|
||||
default_value: 30
|
||||
evaluate: FPS_TARGET
|
||||
MASTER_WRITE:
|
||||
# Dynamic Resolution FPS Target
|
||||
## REF: 62 02 23 1E 21 18 22 1E, ucvtf + fdiv
|
||||
-
|
||||
type: asm_a64
|
||||
main_offset: 0xC44848
|
||||
instructions: [
|
||||
[adrp, x9, $fps_target],
|
||||
[ldr, s1, [x9, $fps_target]]
|
||||
]
|
||||
ALL_FPS:
|
||||
# Disable FPS Lock
|
||||
## REF: 20 01 00 A9 00 01 63 9E, second LDRB below that, IDA will show address after full analyze
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x374CC29]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
@ -0,0 +1,19 @@
|
||||
# World At War: Normandy 1.0.0
|
||||
# BID: 6114E040846B8E3D
|
||||
|
||||
ALL_FPS:
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x604AC78, 0]
|
||||
value_type: int32
|
||||
value: [0, 0]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6843A78, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
@ -0,0 +1,47 @@
|
||||
# Beholder 3 1.0.1
|
||||
# BID: A3416631954C56C8
|
||||
|
||||
DECLARATIONS:
|
||||
# Changed math because frametime peaks at 60 FPS
|
||||
-
|
||||
type: variable
|
||||
name: fps_target
|
||||
value_type: uint32
|
||||
default_value: 30
|
||||
evaluate: FPS_TARGET - 5
|
||||
-
|
||||
type: variable
|
||||
name: fps_target_max
|
||||
value_type: uint32
|
||||
default_value: 40
|
||||
evaluate: FPS_TARGET - 1
|
||||
-
|
||||
type: code
|
||||
name: getFpsTarget
|
||||
instructions: [
|
||||
[adrp, x9, $fps_target],
|
||||
[ldr, w9, [x9, $fps_target]],
|
||||
[ret]
|
||||
]
|
||||
-
|
||||
type: code
|
||||
name: getFpsTargetMax
|
||||
instructions: [
|
||||
[adrp, x9, $fps_target_max],
|
||||
[ldr, w9, [x9, $fps_target_max]],
|
||||
[ret]
|
||||
]
|
||||
MASTER_WRITE:
|
||||
# DynamicResolutionURP::Update(), offsets 0x30 and 0x34
|
||||
-
|
||||
type: asm_a64
|
||||
main_offset: 0x2E765DC
|
||||
instructions: [
|
||||
[bl, _getFpsTarget()]
|
||||
]
|
||||
-
|
||||
type: asm_a64
|
||||
main_offset: 0x2E765F8
|
||||
instructions: [
|
||||
[bl, _getFpsTargetMax()]
|
||||
]
|
||||
@ -0,0 +1,19 @@
|
||||
# The Pathless 1.0
|
||||
# BID: 54E89AF3414E549A
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x74CC188, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x74FADF8, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
@ -0,0 +1,16 @@
|
||||
# Caravan SandWitch 1.0.8
|
||||
# BID: 2079893CE8402E04
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7A50210, 0]
|
||||
value_type: float
|
||||
value: ["TruncDec(FRAMETIME_TARGET, 2)", "TruncDec(FRAMETIME_TARGET, 2)"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7A89920, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
@ -0,0 +1,18 @@
|
||||
# Card-en-Ciel 1.6.0
|
||||
# BID: 9558FFD5CABC4612
|
||||
# Buffers are hardcoded line by line and put into fixed size heap allocation, so getting triple buffer requires effort
|
||||
|
||||
ALL_FPS:
|
||||
# Min delta FPS Target
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x2289610, 0x50]
|
||||
value_type: uint32
|
||||
value: FPS_TARGET
|
||||
# Internal FPS Lock
|
||||
# REF: look at nn::os::SleepThread() called in nnMain()
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x2289610, 0x60]
|
||||
value_type: float
|
||||
value: 1 / FPS_LOCK_TARGET
|
||||
@ -0,0 +1,10 @@
|
||||
# There Is No Light 1.0.3
|
||||
# BID: 76EB8E0320472553
|
||||
|
||||
ALL_FPS:
|
||||
# UnityEngine.Time::fixedDeltaTime
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x5E6BCA0, 0x48]
|
||||
value_type: float
|
||||
value: "1 / FPS_TARGET"
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -75,8 +75,7 @@
|
||||
"VENDOR": "Anbieter",
|
||||
"MODEL": "Modell",
|
||||
"STORAGE": "Speicherplatz",
|
||||
"NOTICE": "Hinweis",
|
||||
"UTILIZES": "Verwendet",
|
||||
"INCOMPATIBLE_WARNING": "Inkompatibel mit AMS v1.10+",
|
||||
"SYSTEM_RAM": "System-RAM",
|
||||
"FREE": "frei",
|
||||
"OVERLAY_MEMORY": "Overlay-Speicher",
|
||||
|
||||
@ -75,8 +75,7 @@
|
||||
"VENDOR": "Vendor",
|
||||
"MODEL": "Model",
|
||||
"STORAGE": "Storage",
|
||||
"NOTICE": "Notice",
|
||||
"UTILIZES": "Utilizes",
|
||||
"INCOMPATIBLE_WARNING": "Incompatible on AMS v1.10+",
|
||||
"SYSTEM_RAM": "System RAM",
|
||||
"FREE": "free",
|
||||
"OVERLAY_MEMORY": "Overlay Memory",
|
||||
|
||||
@ -75,8 +75,7 @@
|
||||
"VENDOR": "Fabricante",
|
||||
"MODEL": "Modelo",
|
||||
"STORAGE": "Almacenamiento",
|
||||
"NOTICE": "Aviso",
|
||||
"UTILIZES": "Utiliza",
|
||||
"INCOMPATIBLE_WARNING": "Incompatible con AMS v1.10+",
|
||||
"SYSTEM_RAM": "RAM del sistema",
|
||||
"FREE": "libre",
|
||||
"OVERLAY_MEMORY": "Memoria superposición",
|
||||
|
||||
@ -75,8 +75,7 @@
|
||||
"VENDOR": "Fabricant",
|
||||
"MODEL": "Modèle",
|
||||
"STORAGE": "Stockage",
|
||||
"NOTICE": "Note",
|
||||
"UTILIZES": "Utilise",
|
||||
"INCOMPATIBLE_WARNING": "Incompatible avec AMS v1.10+",
|
||||
"SYSTEM_RAM": "RAM système",
|
||||
"FREE": "libre",
|
||||
"OVERLAY_MEMORY": "Mémoire superposition",
|
||||
|
||||
@ -75,8 +75,7 @@
|
||||
"VENDOR": "Fornitore",
|
||||
"MODEL": "Modello",
|
||||
"STORAGE": "Archiviazione",
|
||||
"NOTICE": "Nota",
|
||||
"UTILIZES": "Utilizza",
|
||||
"INCOMPATIBLE_WARNING": "Incompatibile con AMS v1.10+",
|
||||
"SYSTEM_RAM": "RAM sistema",
|
||||
"FREE": "libero",
|
||||
"OVERLAY_MEMORY": "Memoria sovrapposizione",
|
||||
|
||||
@ -75,8 +75,7 @@
|
||||
"VENDOR": "ベンダー",
|
||||
"MODEL": "モデル",
|
||||
"STORAGE": "ストレージ",
|
||||
"NOTICE": "通知",
|
||||
"UTILIZES": "使用",
|
||||
"INCOMPATIBLE_WARNING": "AMS v1.10+ と互換性がありません",
|
||||
"SYSTEM_RAM": "システムRAM",
|
||||
"FREE": "空き",
|
||||
"OVERLAY_MEMORY": "オーバーレイメモリ",
|
||||
|
||||
@ -75,8 +75,7 @@
|
||||
"VENDOR": "제조사",
|
||||
"MODEL": "모델",
|
||||
"STORAGE": "저장소",
|
||||
"NOTICE": "공지",
|
||||
"UTILIZES": "사용",
|
||||
"INCOMPATIBLE_WARNING": "AMS v1.10+과 호환되지 않습니다",
|
||||
"SYSTEM_RAM": "시스템 RAM",
|
||||
"FREE": "여유",
|
||||
"OVERLAY_MEMORY": "오버레이 메모리",
|
||||
|
||||
@ -75,8 +75,7 @@
|
||||
"VENDOR": "Fabrikant",
|
||||
"MODEL": "Model",
|
||||
"STORAGE": "Opslag",
|
||||
"NOTICE": "Mededeling",
|
||||
"UTILIZES": "Gebruikt",
|
||||
"INCOMPATIBLE_WARNING": "Incompatibel met AMS v1.10+",
|
||||
"SYSTEM_RAM": "Systeem-RAM",
|
||||
"FREE": "vrij",
|
||||
"OVERLAY_MEMORY": "Overlay-geheugen",
|
||||
|
||||
@ -75,8 +75,7 @@
|
||||
"VENDOR": "Producent",
|
||||
"MODEL": "Model",
|
||||
"STORAGE": "Pamięć masowa",
|
||||
"NOTICE": "Uwaga",
|
||||
"UTILIZES": "Używa",
|
||||
"INCOMPATIBLE_WARNING": "Niezgodny z AMS v1.10+",
|
||||
"SYSTEM_RAM": "RAM systemu",
|
||||
"FREE": "wolne",
|
||||
"OVERLAY_MEMORY": "Pamięć nakładki",
|
||||
|
||||
@ -75,8 +75,7 @@
|
||||
"VENDOR": "Fabricante",
|
||||
"MODEL": "Modelo",
|
||||
"STORAGE": "Armazenamento",
|
||||
"NOTICE": "Aviso",
|
||||
"UTILIZES": "Utiliza",
|
||||
"INCOMPATIBLE_WARNING": "Incompatível com AMS v1.10+",
|
||||
"SYSTEM_RAM": "RAM do sistema",
|
||||
"FREE": "livre",
|
||||
"OVERLAY_MEMORY": "Memória de sobreposição",
|
||||
|
||||
@ -75,8 +75,7 @@
|
||||
"VENDOR": "Производитель",
|
||||
"MODEL": "Модель",
|
||||
"STORAGE": "Хранилище",
|
||||
"NOTICE": "Уведомление",
|
||||
"UTILIZES": "Использует",
|
||||
"INCOMPATIBLE_WARNING": "Несовместимо с AMS v1.10+",
|
||||
"SYSTEM_RAM": "ОЗУ системы",
|
||||
"FREE": "свободно",
|
||||
"OVERLAY_MEMORY": "Память оверлея",
|
||||
|
||||
@ -75,8 +75,7 @@
|
||||
"VENDOR": "Виробник",
|
||||
"MODEL": "Модель",
|
||||
"STORAGE": "Сховище",
|
||||
"NOTICE": "Повідомлення",
|
||||
"UTILIZES": "Використовує",
|
||||
"INCOMPATIBLE_WARNING": "Несумісно з AMS v1.10+",
|
||||
"SYSTEM_RAM": "ОЗУ системи",
|
||||
"FREE": "вільно",
|
||||
"OVERLAY_MEMORY": "Пам’ять оверлея",
|
||||
|
||||
@ -75,8 +75,7 @@
|
||||
"VENDOR": "厂商",
|
||||
"MODEL": "型号",
|
||||
"STORAGE": "存储",
|
||||
"NOTICE": "提示",
|
||||
"UTILIZES": "占用",
|
||||
"INCOMPATIBLE_WARNING": "与 AMS v1.10+ 不兼容",
|
||||
"SYSTEM_RAM": "系统内存",
|
||||
"FREE": "剩余",
|
||||
"OVERLAY_MEMORY": "插件内存",
|
||||
|
||||
@ -75,8 +75,7 @@
|
||||
"VENDOR": "廠商",
|
||||
"MODEL": "型號",
|
||||
"STORAGE": "儲存空間",
|
||||
"NOTICE": "提示",
|
||||
"UTILIZES": "占用",
|
||||
"INCOMPATIBLE_WARNING": "與 AMS v1.10+ 不相容",
|
||||
"SYSTEM_RAM": "系統記憶體",
|
||||
"FREE": "剩餘",
|
||||
"OVERLAY_MEMORY": "外掛記憶體",
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -75,6 +75,10 @@ del '/SaltySD/plugins/NX-FPS.elf'
|
||||
del '/SaltySD/plugins/ReverseNX-RT.elf'
|
||||
|
||||
|
||||
del '/tegraexplorer/scripts/DowngradeFix.te'
|
||||
|
||||
|
||||
|
||||
del '/switch/kefir-updater/'
|
||||
del '/switch/mhz.nro'
|
||||
del '/switch/RaytracingNX.nro'
|
||||
|
||||
Binary file not shown.
@ -1,109 +0,0 @@
|
||||
#REQUIRE VER 4.0.0
|
||||
#REQUIRE MINERVA
|
||||
#REQUIRE KEYS
|
||||
#REQUIRE SD
|
||||
#Script_by_CostelaBR
|
||||
|
||||
p = println
|
||||
fatal = {
|
||||
color(0xFF0000)
|
||||
p("\n[FATAL]", fatalMsg)
|
||||
pause()
|
||||
exit()
|
||||
}
|
||||
|
||||
wait = {
|
||||
t = timer()
|
||||
while (timer() < (t + tw)) {
|
||||
print("Wait for ", ((t + tw - timer()) / 1000), " seconds \r")
|
||||
}
|
||||
}
|
||||
|
||||
downgradeFix = {
|
||||
color(0x00FF00)
|
||||
p("Starting Downgrade Fix...")
|
||||
color(0xFFFFFF)
|
||||
|
||||
p("Mounting SYSTEM partition...")
|
||||
if (mount("SYSTEM")) {
|
||||
fatal(fatalMsg = "Failed to mount SYSTEM partition!")
|
||||
}
|
||||
|
||||
targetFile = "bis:/save/8000000000000073"
|
||||
if (!fsexists(targetFile)) {
|
||||
color(0xFFFF00)
|
||||
p("File 8000000000000073 not found in SYSTEM partition.")
|
||||
p("No action needed.")
|
||||
color(0xFFFFFF)
|
||||
pause()
|
||||
exit()
|
||||
}
|
||||
|
||||
color(0xFF0000)
|
||||
p("Deleting 8000000000000073 from SYSTEM partition...")
|
||||
color(0xFFFFFF)
|
||||
|
||||
if (delfile(targetFile)) {
|
||||
fatal(fatalMsg = "Failed to delete 8000000000000073!")
|
||||
}
|
||||
|
||||
if (fsexists(targetFile)) {
|
||||
fatal(fatalMsg = "File deletion failed - file still exists!")
|
||||
}
|
||||
|
||||
color(0x00FF00)
|
||||
p("SUCCESS: 8000000000000073 has been deleted!")
|
||||
color(0xFFFFFF)
|
||||
}
|
||||
|
||||
clear()
|
||||
color(0x00FFFF)
|
||||
p("=== Switch Downgrade Fix ===")
|
||||
p("This script will delete the 8000000000000073 save file")
|
||||
p("from the SYSTEM partition to prevent downgrade protection.")
|
||||
p()
|
||||
color(0xFFFFFF)
|
||||
|
||||
p("Select target:")
|
||||
target = menu(["Exit", "Sysmmc", "Emummc"], 0)
|
||||
|
||||
if (target == 0) {
|
||||
exit()
|
||||
}
|
||||
|
||||
if (target == 1) {
|
||||
mount = mountsys
|
||||
mmcType = "Sysmmc"
|
||||
} .else() {
|
||||
mount = mountemu
|
||||
mmcType = "Emummc"
|
||||
}
|
||||
|
||||
clear()
|
||||
color(0x00FFFF)
|
||||
p("=== Downgrade Fix Confirmation ===")
|
||||
color(0xFFFFFF)
|
||||
p("Target:", mmcType)
|
||||
p("Action: Delete 8000000000000073")
|
||||
p()
|
||||
color(0xFFFF00)
|
||||
p("WARNING: This will modify your SYSTEM partition!")
|
||||
p("Make sure you know what you doing before proceeding!")
|
||||
p()
|
||||
color(0xFFFFFF)
|
||||
|
||||
wait(tw = 5000)
|
||||
p("Press POWER to continue, any other key to exit")
|
||||
if (!pause().power) {
|
||||
exit()
|
||||
}
|
||||
|
||||
clear()
|
||||
downgradeFix()
|
||||
|
||||
p()
|
||||
color(0x00FF00)
|
||||
p("Downgrade fix completed successfully!")
|
||||
color(0xFFFFFF)
|
||||
p("Press any key to exit")
|
||||
pause()
|
||||
Loading…
x
Reference in New Issue
Block a user