mirror of
https://github.com/Ultra-NX/UltraNX.git
synced 2026-08-16 02:33:12 +00:00
UltraNX 3.0|R3x
This commit is contained in:
parent
5b016a714f
commit
1c296e9ff5
@ -1,4 +1,4 @@
|
||||
# Subnautica Below Zero 1.21.49397-1.22.54460
|
||||
# Subnautica Below Zero 1.21.49397-1.23.55063
|
||||
# BID: 5B050C55B8264040
|
||||
|
||||
ALL_FPS:
|
||||
|
||||
@ -0,0 +1,34 @@
|
||||
# Kingdom Rush Frontiers 3.2.23
|
||||
# BID: B1C0E2F9DBF2ADFB
|
||||
|
||||
MASTER_WRITE:
|
||||
- # REF: vtable with string "getAverageDelta", search inside that vtable "sleep", it's above actual function, patch BLX X1 inside that function
|
||||
type: bytes
|
||||
main_offset: 0xF5514
|
||||
value_type: uint32
|
||||
value: 0xEB069E4D # BL 0x29CE50
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x29CE50 # Code cave
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xE24F2008 # SUB R2, PC, #8
|
||||
- 0xE30931A8 # MOVW R3, #0x91A8
|
||||
- 0xE3403076 # MOVT R3, #0x0076
|
||||
- 0xE0822003 # ADD R2, R2, R3 - 0x29CE50 + 0x7691A8 = 0xA05FF8
|
||||
- 0xED921B00 # VLDR D1, [R2]
|
||||
- 0xEEB51B40 # VCMP.F64 D1, #0.0
|
||||
- 0xEEF1FA10 # VMRS APSR_nzcv, FPSCR
|
||||
- 0x1EB00B41 # VMOVNE.F64 D0, D1
|
||||
- 0xE12FFF11 # BX R1
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0xA05FF8
|
||||
value_type: double
|
||||
value: 0
|
||||
ALL_FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xA05FF8]
|
||||
value_type: double
|
||||
value: 0.001
|
||||
@ -0,0 +1,19 @@
|
||||
# 고스트러너 1.7
|
||||
# BID: F05A2BD2BD050256
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget = 0.93 * (1000/FPS)
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6B0C480, 0]
|
||||
value_type: float
|
||||
value: ["0.93 * FRAMETIME_TARGET", "0.93 * FRAMETIME_TARGET"]
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x6B35A08, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
@ -0,0 +1,82 @@
|
||||
# The Lord of the Rings: War in the North - Legacy Edition 1.0.1
|
||||
# BID: B18F4EAC4D5148A1
|
||||
# INFO: RenderThreadWaitOnGPU blocks game to 59 FPS and causes CPU cores to rampage if not adjusted, but if adjusted to allow perfect 60 FPS image starts tearing, so i decided to not change it
|
||||
|
||||
DECLARATIONS:
|
||||
-
|
||||
type: variable
|
||||
name: frametime
|
||||
value_type: uint32
|
||||
default_value: 33333
|
||||
evaluate: 1000000 / FPS_LOCK_TARGET
|
||||
-
|
||||
type: variable
|
||||
name: half_frametime
|
||||
value_type: float
|
||||
default_value: 0.01665
|
||||
evaluate: 0.999 * (1 / FPS_TARGET)
|
||||
-
|
||||
type: code
|
||||
name: sleep
|
||||
instructions: [
|
||||
[adrp, x26, $frametime],
|
||||
[ldr, w26, [x26, $frametime]],
|
||||
[sub, w24, w26, 1],
|
||||
[cmp, x0, x24],
|
||||
[b, 0x1B6DD8]
|
||||
]
|
||||
-
|
||||
type: code
|
||||
name: sleep2
|
||||
instructions: [
|
||||
[adrp, x26, $frametime],
|
||||
[ldr, w26, [x26, $frametime]],
|
||||
[sub, w24, w26, 1],
|
||||
[cmp, x0, x24],
|
||||
[b, 0x1B6D30]
|
||||
]
|
||||
-
|
||||
type: code
|
||||
name: gpuSleep
|
||||
instructions: [
|
||||
[mov, x0, -2],
|
||||
[svc, 0xB],
|
||||
[mov, x0, 10000],
|
||||
[svc, 0xB],
|
||||
[ret]
|
||||
]
|
||||
MASTER_WRITE:
|
||||
# RenderThreadWaitOnMainThread, main FPS lock
|
||||
# REF: 98 46 90 52 BA 46 90 52, search for CMP X0, X24
|
||||
-
|
||||
type: asm_a64
|
||||
main_offset: 0x1B6DD4
|
||||
instructions: [
|
||||
[b, _sleep()]
|
||||
]
|
||||
-
|
||||
type: asm_a64
|
||||
main_offset: 0x1B6D2C
|
||||
instructions: [
|
||||
[b, _sleep2()]
|
||||
]
|
||||
# RenderThreadWaitOnGPU
|
||||
# REF: A8 B2 8C 52 08 91 A7 72
|
||||
-
|
||||
type: asm_a64
|
||||
main_offset: 0x25C998
|
||||
instructions: [
|
||||
[adrp, x8, $half_frametime],
|
||||
[ldr, w8, [x8, $half_frametime]]
|
||||
]
|
||||
# Stabilize CPU usage
|
||||
-
|
||||
type: asm_a64
|
||||
main_offset: 0x25C9B0
|
||||
instructions: [
|
||||
[bl, _gpuSleep()]
|
||||
]
|
||||
ALL_FPS:
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
@ -0,0 +1,13 @@
|
||||
# EA SPORTS FC 26 1.8a.e1b8
|
||||
# BID: C4D335206D970E73
|
||||
|
||||
ALL_FPS:
|
||||
# Internal FPS Lock
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xC713938, 8]
|
||||
value_type: double
|
||||
value: FPS_TARGET
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
@ -0,0 +1,30 @@
|
||||
# Atelier Yumia: The Alchemist of Memories & the Envisioned Land 1.7.0
|
||||
# BID: B7431B2671E05764
|
||||
|
||||
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, 0x2FEBCD0, 0xE0, 0x294]
|
||||
address_unsafe: true
|
||||
value_type: uint8
|
||||
value: 0
|
||||
@ -0,0 +1,10 @@
|
||||
# Tamagotchi Plaza 1.0.9
|
||||
# BID: 74908F08D86477CB
|
||||
|
||||
ALL_FPS:
|
||||
# UnityEngine.Rendering.OnDemandRendering_TypeInfo
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7109700, 0xB8, 0]
|
||||
value_type: int32
|
||||
value: -1
|
||||
@ -0,0 +1,19 @@
|
||||
# Little Nightmares III 1.1.1
|
||||
# BID: 138F11463DE5DFE7
|
||||
|
||||
ALL_FPS:
|
||||
# t.MaxFPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7D55E48, 0]
|
||||
value_type: float
|
||||
value: [FPS_LOCK_TARGET, FPS_LOCK_TARGET]
|
||||
# r.VSync
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x7561210, 0]
|
||||
value_type: uint32
|
||||
value: [0, 0]
|
||||
-
|
||||
type: block
|
||||
what: timing
|
||||
@ -0,0 +1,37 @@
|
||||
# みんなのGOLF WORLD 1.1.11
|
||||
# BID: CE703129D86CA47E
|
||||
# Changed frametime target value math formula because default one sucks at 60 FPS target
|
||||
|
||||
DECLARATIONS:
|
||||
-
|
||||
type: variable
|
||||
name: dr_frametime_max
|
||||
value_type: double
|
||||
default_value: 40
|
||||
evaluate: "0.9 * FRAMETIME_TARGET"
|
||||
-
|
||||
type: variable
|
||||
name: dr_frametime_min
|
||||
value_type: double
|
||||
default_value: 33.3333333333
|
||||
evaluate: "(0.9 * FRAMETIME_TARGET) - 6"
|
||||
MASTER_WRITE:
|
||||
# REF: 0a 00 a4 d2 8a 08 e8 f2 41 01 67 9e
|
||||
-
|
||||
type: asm_a64
|
||||
main_offset: 0x39A2048
|
||||
instructions: [
|
||||
[adrp, x10, $dr_frametime_max],
|
||||
[ldr, d1, [x10, $dr_frametime_max]],
|
||||
[nop]
|
||||
]
|
||||
-
|
||||
# REF: 00 0d 40 fd 0a 00 b8 d2, result offset + 4
|
||||
type: asm_a64
|
||||
main_offset: 0x39A211C
|
||||
instructions: [
|
||||
[adrp, x10, $dr_frametime_min],
|
||||
[ldr, d1, [x10, $dr_frametime_min]],
|
||||
[nop],
|
||||
[nop]
|
||||
]
|
||||
@ -0,0 +1,50 @@
|
||||
# DRAGON BALL XENOVERSE 2 FOR NINTENDO SWITCH 1.26.01
|
||||
# BID: D3B3F636A2BF3628
|
||||
# Double buffer is hardcoded in class, getting triple buffer is hard.
|
||||
# Some graphical effects like aura have wrong speed outside of 15, 20, 30 and 60 FPS
|
||||
|
||||
ALL_FPS:
|
||||
# Search those in Edizon by searching for 1/60 in title menu, then 1/30 when FPS lock is applied.
|
||||
# FPS Lock
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4B80AD8, 0x698]
|
||||
address_unsafe: true
|
||||
value_type: float
|
||||
value: 0.0
|
||||
# Unknown
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0x4B80AD8, 0x6A4]
|
||||
address_unsafe: true
|
||||
value_type: float
|
||||
value: 0.0
|
||||
# Game Battle Speed Factor
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x4B80AD8, 0x6B0]
|
||||
address_unsafe: true
|
||||
value_type: uint32
|
||||
value: VSYNC_TARGET
|
||||
# Cutscenes Speed Factor
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x4B80AD8, 0x6B4]
|
||||
address_unsafe: true
|
||||
value_type: uint32
|
||||
value: VSYNC_TARGET
|
||||
# Target Speed
|
||||
# REF: E9 03 00 32 09 01 00 39 C0 03 5F D6, first result, LDR instruction
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x24A86D0]
|
||||
value_type: float
|
||||
value: "(1 / FPS_TARGET) * VSYNC_TARGET"
|
||||
# Dynamic Resolution FPS Target
|
||||
# REF: 16 4E A8 52 F7 03 60 B2, first ADRP + LDR above it
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x24843C8, 0x1844]
|
||||
address_unsafe: true
|
||||
value_type: float
|
||||
value: "FPS_TARGET"
|
||||
@ -0,0 +1,37 @@
|
||||
# 信長の野望・新生 1.1.7
|
||||
# BID: DAE8585805CE94AC
|
||||
# Cursor speed is tied to framerate
|
||||
|
||||
DECLARATIONS:
|
||||
-
|
||||
type: variable
|
||||
name: fps_target
|
||||
value_type: uint32
|
||||
default_value: 30
|
||||
evaluate: FPS_TARGET
|
||||
-
|
||||
type: variable
|
||||
name: frametime_target
|
||||
value_type: uint32
|
||||
default_value: 33
|
||||
evaluate: 1000 / FPS_LOCK_TARGET
|
||||
-
|
||||
type: variable
|
||||
name: lock30
|
||||
value_type: uint32
|
||||
default_value: 1
|
||||
evaluate: VSYNC_TARGET - 1
|
||||
MASTER_WRITE:
|
||||
# Min delta based on vsync + fps lock outside of cutscenes
|
||||
# REF: 28 00 80 52 68 CE 00 B9 C8 03 80 D2 28 04 C0 F2
|
||||
# 2nd REF: Search immediate 0x210000001E and main_offset is MOV W8, #1 above
|
||||
-
|
||||
type: asm_a64
|
||||
main_offset: 0x12AFA18
|
||||
instructions: [
|
||||
[adrp, x8, $fps_target],
|
||||
[ldr, w1, [x8, $lock30]],
|
||||
[ldp, w8, w9, [x8]],
|
||||
[str, w1, [x19, 0xCC]],
|
||||
[stp, w8, w9, [x21]]
|
||||
]
|
||||
@ -0,0 +1,37 @@
|
||||
# 信長の野望・新生 with パワーアップキット 1.1.7
|
||||
# BID: 91D5134A1EA382D0
|
||||
# Cursor speed is tied to framerate
|
||||
|
||||
DECLARATIONS:
|
||||
-
|
||||
type: variable
|
||||
name: fps_target
|
||||
value_type: uint32
|
||||
default_value: 30
|
||||
evaluate: FPS_TARGET
|
||||
-
|
||||
type: variable
|
||||
name: frametime_target
|
||||
value_type: uint32
|
||||
default_value: 33
|
||||
evaluate: 1000 / FPS_LOCK_TARGET
|
||||
-
|
||||
type: variable
|
||||
name: lock30
|
||||
value_type: uint32
|
||||
default_value: 1
|
||||
evaluate: VSYNC_TARGET - 1
|
||||
MASTER_WRITE:
|
||||
# Min delta based on vsync + fps lock outside of cutscenes
|
||||
# REF: 28 00 80 52 68 D2 00 B9 C8 03 80 D2 28 04 C0 F2
|
||||
# 2nd REF: Search immediate 0x210000001E and main_offset is MOV W8, #1 above
|
||||
-
|
||||
type: asm_a64
|
||||
main_offset: 0x184469C
|
||||
instructions: [
|
||||
[adrp, x8, $fps_target],
|
||||
[ldr, w1, [x8, $lock30]],
|
||||
[ldp, w8, w9, [x8]],
|
||||
[str, w1, [x19, 0xD0]],
|
||||
[stp, w8, w9, [x21]]
|
||||
]
|
||||
@ -1,8 +1,6 @@
|
||||
# Ghostrunner 1.8
|
||||
# BID: D3DD5B220DCEB626
|
||||
|
||||
unsafeCheck: true
|
||||
|
||||
ALL_FPS:
|
||||
# r.DynamicRes.FrameTimeBudget = 0.93 * (1000/FPS)
|
||||
-
|
||||
|
||||
@ -0,0 +1,10 @@
|
||||
# DAVE THE DIVER 1.0.6.1224
|
||||
# BID: 5D158A80EEC25473
|
||||
|
||||
ALL_FPS:
|
||||
# UnityEngine.Time::fixedDeltaTime
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xA475028, 0x50]
|
||||
value_type: uint32
|
||||
value: "141120000 / FPS_TARGET"
|
||||
@ -0,0 +1,10 @@
|
||||
# DAVE THE DIVER 1.0.6.1243
|
||||
# BID: D26FA1059AE0B629
|
||||
|
||||
ALL_FPS:
|
||||
# UnityEngine.Time::fixedDeltaTime
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xA475028, 0x50]
|
||||
value_type: uint32
|
||||
value: "141120000 / FPS_TARGET"
|
||||
@ -0,0 +1,18 @@
|
||||
# Deer & Boy 1.3.2
|
||||
# BID: 3E5F01690365FBF4
|
||||
|
||||
ALL_FPS:
|
||||
# Vsync
|
||||
# Ref: 01 00 00 00 03 00 00 00 00 00 00 08
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x9ADEAB8]
|
||||
value_type: int32
|
||||
value: VSYNC_TARGET
|
||||
# fixedDeltaTime
|
||||
# Fixes an issue with game animation targeting always 25 FPS
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x9E03A68, 0x50]
|
||||
value_type: uint32
|
||||
value: "141120000 / FPS_TARGET"
|
||||
@ -0,0 +1,34 @@
|
||||
# Kingdom Rush 5.6.10
|
||||
# BID: 11813C311AF1737F
|
||||
|
||||
MASTER_WRITE:
|
||||
- # REF: vtable with string "getAverageDelta", search inside that vtable "sleep", it's above actual function, patch BLX X1 inside that function
|
||||
type: bytes
|
||||
main_offset: 0xF5514
|
||||
value_type: uint32
|
||||
value: 0xEB069E4D # BL 0x29CE50
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x29CE50 # Code cave
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xE24F2008 # SUB R2, PC, #8
|
||||
- 0xE30931A8 # MOVW R3, #0x91A8
|
||||
- 0xE3403076 # MOVT R3, #0x0076
|
||||
- 0xE0822003 # ADD R2, R2, R3 - 0x29CE50 + 0x7691A8 = 0xA05FF8
|
||||
- 0xED921B00 # VLDR D1, [R2]
|
||||
- 0xEEB51B40 # VCMP.F64 D1, #0.0
|
||||
- 0xEEF1FA10 # VMRS APSR_nzcv, FPSCR
|
||||
- 0x1EB00B41 # VMOVNE.F64 D0, D1
|
||||
- 0xE12FFF11 # BX R1
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0xA05FF8
|
||||
value_type: double
|
||||
value: 0
|
||||
ALL_FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xA05FF8]
|
||||
value_type: double
|
||||
value: 0.001
|
||||
@ -0,0 +1,34 @@
|
||||
# Kingdom Rush Origins 4.2.27.1
|
||||
# BID: C1A74A28CBF48C3C
|
||||
|
||||
MASTER_WRITE:
|
||||
- # REF: vtable with string "getAverageDelta", search inside that vtable "sleep", it's above actual function, patch BLX X1 inside that function
|
||||
type: bytes
|
||||
main_offset: 0xF5514
|
||||
value_type: uint32
|
||||
value: 0xEB069E4D # BL 0x29CE50
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0x29CE50 # Code cave
|
||||
value_type: uint32
|
||||
value:
|
||||
- 0xE24F2008 # SUB R2, PC, #8
|
||||
- 0xE30931A8 # MOVW R3, #0x91A8
|
||||
- 0xE3403076 # MOVT R3, #0x0076
|
||||
- 0xE0822003 # ADD R2, R2, R3 - 0x29CE50 + 0x7691A8 = 0xA05FF8
|
||||
- 0xED921B00 # VLDR D1, [R2]
|
||||
- 0xEEB51B40 # VCMP.F64 D1, #0.0
|
||||
- 0xEEF1FA10 # VMRS APSR_nzcv, FPSCR
|
||||
- 0x1EB00B41 # VMOVNE.F64 D0, D1
|
||||
- 0xE12FFF11 # BX R1
|
||||
-
|
||||
type: bytes
|
||||
main_offset: 0xA05FF8
|
||||
value_type: double
|
||||
value: 0
|
||||
ALL_FPS:
|
||||
-
|
||||
type: write
|
||||
address: [MAIN, 0xA05FF8]
|
||||
value_type: double
|
||||
value: 0.001
|
||||
@ -0,0 +1,28 @@
|
||||
# INAZUMA ELEVEN: Victory Road 7.1.0
|
||||
# BID: E97CE4B17DED638D
|
||||
|
||||
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: 0xCC3308
|
||||
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, 0x3C34237]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
@ -0,0 +1,28 @@
|
||||
# INAZUMA ELEVEN: Victory Road 7.1.2
|
||||
# BID: FC6538F6244CA7D5
|
||||
|
||||
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: 0xCC4238
|
||||
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, 0x3C35237]
|
||||
value_type: uint8
|
||||
value: 0
|
||||
@ -0,0 +1,11 @@
|
||||
# 亰都ザナドゥ -桜花幻舞- 1.0.4
|
||||
# BID: E9E041CDF870F33C
|
||||
|
||||
ALL_FPS:
|
||||
# Used to set min delta timing for various parts of game
|
||||
# REF: C9 03 80 52 first result, look where is written
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7E4810, 0x2C]
|
||||
value_type: uint32
|
||||
value: FPS_TARGET
|
||||
@ -0,0 +1,11 @@
|
||||
# 쿄토 재너두 -앵화환무- 1.0.3
|
||||
# BID: 45BFC9E681BE8A02
|
||||
|
||||
ALL_FPS:
|
||||
# Used to set min delta timing for various parts of game
|
||||
# REF: C9 03 80 52 first result, look where is written
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0x7DB820, 0x2C]
|
||||
value_type: uint32
|
||||
value: FPS_TARGET
|
||||
@ -0,0 +1,168 @@
|
||||
# Xenoblade Chronicles 2 3.0.0
|
||||
# BID: 12A2634F01346F21
|
||||
|
||||
DECLARATIONS:
|
||||
-
|
||||
type: variable
|
||||
name: last_tick
|
||||
value_type: uint64
|
||||
default_value: 0
|
||||
-
|
||||
type: variable
|
||||
name: game_speed
|
||||
value_type: float
|
||||
default_value: 0.03333333333
|
||||
-
|
||||
type: variable
|
||||
name: min_delta
|
||||
value_type: float
|
||||
default_value: 0.03333333333
|
||||
evaluate: "1 / FPS_TARGET"
|
||||
-
|
||||
type: variable
|
||||
name: max_delta
|
||||
value_type: float
|
||||
default_value: 30
|
||||
evaluate: "FPS_TARGET / 2"
|
||||
-
|
||||
type: variable
|
||||
name: dr_target
|
||||
value_type: float
|
||||
default_value: 0.0166666666
|
||||
evaluate: "(1 / FPS_TARGET) / VSYNC_TARGET * 0.96"
|
||||
-
|
||||
type: const
|
||||
name: microseconds_in_sec
|
||||
value: 1000000
|
||||
-
|
||||
type: const
|
||||
name: nano_in_micro
|
||||
value: 1000
|
||||
-
|
||||
type: code
|
||||
name: dynamicSpeed
|
||||
instructions: [
|
||||
[stp, x29, x30, [sp, -16], "!"],
|
||||
[mov, x29, sp],
|
||||
[mrs, x0, cntpct_el0],
|
||||
[adrp, x2, $last_tick],
|
||||
[ldr, x1, [x2, $last_tick]],
|
||||
[str, x0, [x2, $last_tick]],
|
||||
[cbz, x1, :goto3],
|
||||
[sub, x0, x0, x1],
|
||||
[bl, _convertTickToTimeSpan()],
|
||||
[adrp, x1, $max_delta],
|
||||
[ldr, s2, [x1, $max_delta]],
|
||||
[mov, w1, $nano_in_micro],
|
||||
[udiv, x0, x0, x1],
|
||||
[ucvtf, s0, x0],
|
||||
[mov, w1, $microseconds_in_sec],
|
||||
[movk, w1, $microseconds_in_sec, 16],
|
||||
[ucvtf, s1, w1],
|
||||
[b, :goto2],
|
||||
:goto4, [adrp, x0, 0xb90000],
|
||||
[ldr, x0, [x0, 0xd0]], # REF: F4 03 00 AA 88 22 47 39 09 12 80 52, adrp + ldr below it
|
||||
[cbz, x0, :goto3],
|
||||
[str, s0, [x0, 0x78]],
|
||||
[str, s0, [x0, 0x7c]],
|
||||
[adrp, x0, 0xc23000], # REF: 29 01 40 F9 1F 01 00 F1 24 19 40 FA, two results, the one that has no RET soon after this, look at first adrp + ldr above it
|
||||
[ldr, x0, [x0, 0x2c8]],
|
||||
[str, s0, [x0, 0x80]],
|
||||
[adrp, x0, $game_speed],
|
||||
[str, s0, [x0, $game_speed]],
|
||||
[b, :goto3],
|
||||
:goto5, [fmov, s1, 1.0],
|
||||
[fdiv, s2, s1, s2],
|
||||
[fcmp, s0, s2],
|
||||
[b.lt, :goto6],
|
||||
[fmov, s0, s2],
|
||||
[b, :goto4],
|
||||
:goto6, [adrp, x0, $min_delta],
|
||||
[ldr, s2, [x0, $min_delta]],
|
||||
[fcmp, s0, s2],
|
||||
[b.hi, :goto4],
|
||||
[fmov, s0, s2],
|
||||
[b, :goto4],
|
||||
:goto2, [fdiv, s0, s0, s1],
|
||||
[b, :goto5],
|
||||
:goto3, [mov, w8, 0x21a0],
|
||||
[ldp, x29, x30, [sp], 16],
|
||||
[ret],
|
||||
]
|
||||
MASTER_WRITE:
|
||||
# Dynamic speed
|
||||
# Jump before pushing frame
|
||||
-
|
||||
type: asm_a64
|
||||
main_offset: 0x7009E4
|
||||
instructions: [
|
||||
[bl, _dynamicSpeed()]
|
||||
]
|
||||
# Patch wind speed to take game speed
|
||||
# REF: C6 09 26 1E C8 08 23 1E C9 08 21 1E CA 08 22 1E, adrp + ldr above
|
||||
-
|
||||
type: asm_a64
|
||||
main_offset: 0x748658
|
||||
instructions: [
|
||||
[adrp, x8, $game_speed],
|
||||
[ldr, s6, [x8, $game_speed]]
|
||||
]
|
||||
# Redirect DR timing
|
||||
# REF: 74 02 40 B9 08 FD 66 D3 08 01 23 1E, LDR X8, [X8,#0xD0] below it
|
||||
-
|
||||
type: asm_a64
|
||||
main_offset: 0x6AAABC
|
||||
instructions: [
|
||||
[adrp, x8, $dr_target],
|
||||
[ldr, s0, [x8, $dr_target]]
|
||||
]
|
||||
ALL_FPS:
|
||||
# REF: 0A 01 40 B9 00 01 00 B9, adrp + ldr above
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xB75C40]
|
||||
value_type: uint32
|
||||
value: ["VSYNC_TARGET", "VSYNC_TARGET"]
|
||||
# Cutscenes in 30 FPS
|
||||
# REF: 09 41 00 91 08 E1 00 91 3F D8 09 A9, any result, first STR XZR above is the offset we want
|
||||
-
|
||||
type: compare
|
||||
compare_type: "=="
|
||||
compare_value_type: uint8
|
||||
compare_value: 1
|
||||
compare_address: [MAIN, 0xBD8F40]
|
||||
value_type: refresh_rate
|
||||
value: 60
|
||||
-
|
||||
type: compare
|
||||
compare_type: "=="
|
||||
compare_value_type: uint8
|
||||
compare_value: 1
|
||||
compare_address: [MAIN, 0xBD8F40]
|
||||
address: [VARIABLE, min_delta]
|
||||
value: 0.0333333333
|
||||
-
|
||||
type: compare
|
||||
compare_type: "=="
|
||||
compare_value_type: uint8
|
||||
compare_value: 1
|
||||
compare_address: [MAIN, 0xBD8F40]
|
||||
address: [VARIABLE, max_delta]
|
||||
value: 30
|
||||
-
|
||||
type: compare
|
||||
compare_type: "=="
|
||||
compare_value_type: uint8
|
||||
compare_value: 1
|
||||
compare_address: [MAIN, 0xBD8F40]
|
||||
address: [MAIN, 0xB75C40] # VSYNC TARGET
|
||||
value_type: uint32
|
||||
value: [2, 2]
|
||||
-
|
||||
type: compare
|
||||
compare_type: "=="
|
||||
compare_value_type: uint8
|
||||
compare_value: 1
|
||||
compare_address: [MAIN, 0xBD8F40]
|
||||
address: [VARIABLE, dr_target]
|
||||
value: 0.0166666666
|
||||
@ -0,0 +1,37 @@
|
||||
# EVERYBODY'S GOLF: Hot Shots EUR 1.1.11
|
||||
# BID: E27471D00147BA8C
|
||||
# Changed frametime target value math formula because default one sucks at 60 FPS target
|
||||
|
||||
DECLARATIONS:
|
||||
-
|
||||
type: variable
|
||||
name: dr_frametime_max
|
||||
value_type: double
|
||||
default_value: 40
|
||||
evaluate: "0.9 * FRAMETIME_TARGET"
|
||||
-
|
||||
type: variable
|
||||
name: dr_frametime_min
|
||||
value_type: double
|
||||
default_value: 33.3333333333
|
||||
evaluate: "(0.9 * FRAMETIME_TARGET) - 6"
|
||||
MASTER_WRITE:
|
||||
# REF: 0a 00 a4 d2 8a 08 e8 f2 41 01 67 9e
|
||||
-
|
||||
type: asm_a64
|
||||
main_offset: 0x39A2058
|
||||
instructions: [
|
||||
[adrp, x10, $dr_frametime_max],
|
||||
[ldr, d1, [x10, $dr_frametime_max]],
|
||||
[nop]
|
||||
]
|
||||
# REF: 00 0d 40 fd 0a 00 b8 d2, result offset + 4
|
||||
-
|
||||
type: asm_a64
|
||||
main_offset: 0x39A212C
|
||||
instructions: [
|
||||
[adrp, x10, $dr_frametime_min],
|
||||
[ldr, d1, [x10, $dr_frametime_min]],
|
||||
[nop],
|
||||
[nop]
|
||||
]
|
||||
@ -0,0 +1,168 @@
|
||||
# Xenoblade2 3.0.0
|
||||
# BID: FEEE7AFA8A1541BD
|
||||
|
||||
DECLARATIONS:
|
||||
-
|
||||
type: variable
|
||||
name: last_tick
|
||||
value_type: uint64
|
||||
default_value: 0
|
||||
-
|
||||
type: variable
|
||||
name: game_speed
|
||||
value_type: float
|
||||
default_value: 0.03333333333
|
||||
-
|
||||
type: variable
|
||||
name: min_delta
|
||||
value_type: float
|
||||
default_value: 0.03333333333
|
||||
evaluate: "1 / FPS_TARGET"
|
||||
-
|
||||
type: variable
|
||||
name: max_delta
|
||||
value_type: float
|
||||
default_value: 30
|
||||
evaluate: "FPS_TARGET / 2"
|
||||
-
|
||||
type: variable
|
||||
name: dr_target
|
||||
value_type: float
|
||||
default_value: 0.0166666666
|
||||
evaluate: "(1 / FPS_TARGET) / VSYNC_TARGET * 0.96"
|
||||
-
|
||||
type: const
|
||||
name: microseconds_in_sec
|
||||
value: 1000000
|
||||
-
|
||||
type: const
|
||||
name: nano_in_micro
|
||||
value: 1000
|
||||
-
|
||||
type: code
|
||||
name: dynamicSpeed
|
||||
instructions: [
|
||||
[stp, x29, x30, [sp, -16], "!"],
|
||||
[mov, x29, sp],
|
||||
[mrs, x0, cntpct_el0],
|
||||
[adrp, x2, $last_tick],
|
||||
[ldr, x1, [x2, $last_tick]],
|
||||
[str, x0, [x2, $last_tick]],
|
||||
[cbz, x1, :goto3],
|
||||
[sub, x0, x0, x1],
|
||||
[bl, _convertTickToTimeSpan()],
|
||||
[adrp, x1, $max_delta],
|
||||
[ldr, s2, [x1, $max_delta]],
|
||||
[mov, w1, $nano_in_micro],
|
||||
[udiv, x0, x0, x1],
|
||||
[ucvtf, s0, x0],
|
||||
[mov, w1, $microseconds_in_sec],
|
||||
[movk, w1, $microseconds_in_sec, 16],
|
||||
[ucvtf, s1, w1],
|
||||
[b, :goto2],
|
||||
:goto4, [adrp, x0, 0xb90000],
|
||||
[ldr, x0, [x0, 0xd0]], # REF: F4 03 00 AA 88 22 47 39 09 12 80 52, adrp + ldr below it
|
||||
[cbz, x0, :goto3],
|
||||
[str, s0, [x0, 0x78]],
|
||||
[str, s0, [x0, 0x7c]],
|
||||
[adrp, x0, 0xc23000], # REF: 29 01 40 F9 1F 01 00 F1 24 19 40 FA, two results, the one that has no RET soon after this, look at first adrp + ldr above it
|
||||
[ldr, x0, [x0, 0x2c8]],
|
||||
[str, s0, [x0, 0x80]],
|
||||
[adrp, x0, $game_speed],
|
||||
[str, s0, [x0, $game_speed]],
|
||||
[b, :goto3],
|
||||
:goto5, [fmov, s1, 1.0],
|
||||
[fdiv, s2, s1, s2],
|
||||
[fcmp, s0, s2],
|
||||
[b.lt, :goto6],
|
||||
[fmov, s0, s2],
|
||||
[b, :goto4],
|
||||
:goto6, [adrp, x0, $min_delta],
|
||||
[ldr, s2, [x0, $min_delta]],
|
||||
[fcmp, s0, s2],
|
||||
[b.hi, :goto4],
|
||||
[fmov, s0, s2],
|
||||
[b, :goto4],
|
||||
:goto2, [fdiv, s0, s0, s1],
|
||||
[b, :goto5],
|
||||
:goto3, [mov, w8, 0x21a0],
|
||||
[ldp, x29, x30, [sp], 16],
|
||||
[ret],
|
||||
]
|
||||
MASTER_WRITE:
|
||||
# Dynamic speed
|
||||
# REF: 08 34 84 52 75 02 08 8B 08 1A 84 52
|
||||
-
|
||||
type: asm_a64
|
||||
main_offset: 0x7009E4
|
||||
instructions: [
|
||||
[bl, _dynamicSpeed()]
|
||||
]
|
||||
# Patch wind speed to take game speed
|
||||
# REF: C6 09 26 1E C8 08 23 1E C9 08 21 1E CA 08 22 1E, adrp + ldr above
|
||||
-
|
||||
type: asm_a64
|
||||
main_offset: 0x748658
|
||||
instructions: [
|
||||
[adrp, x8, $game_speed],
|
||||
[ldr, s6, [x8, $game_speed]]
|
||||
]
|
||||
# Redirect DR timing
|
||||
# REF: 74 02 40 B9 08 FD 66 D3 08 01 23 1E, LDR X8, [X8,#0xD0] below it
|
||||
-
|
||||
type: asm_a64
|
||||
main_offset: 0x6AAABC
|
||||
instructions: [
|
||||
[adrp, x8, $dr_target],
|
||||
[ldr, s0, [x8, $dr_target]]
|
||||
]
|
||||
ALL_FPS:
|
||||
# REF: 0A 01 40 B9 00 01 00 B9, adrp + ldr above
|
||||
-
|
||||
type: evaluate_write
|
||||
address: [MAIN, 0xB75C40]
|
||||
value_type: uint32
|
||||
value: ["VSYNC_TARGET", "VSYNC_TARGET"]
|
||||
# Cutscenes in 30 FPS
|
||||
# REF: 09 41 00 91 08 E1 00 91 3F D8 09 A9, any result, first STR XZR above is the offset we want
|
||||
-
|
||||
type: compare
|
||||
compare_type: "=="
|
||||
compare_value_type: uint8
|
||||
compare_value: 1
|
||||
compare_address: [MAIN, 0xBD8F40]
|
||||
value_type: refresh_rate
|
||||
value: 60
|
||||
-
|
||||
type: compare
|
||||
compare_type: "=="
|
||||
compare_value_type: uint8
|
||||
compare_value: 1
|
||||
compare_address: [MAIN, 0xBD8F40]
|
||||
address: [VARIABLE, min_delta]
|
||||
value: 0.0333333333
|
||||
-
|
||||
type: compare
|
||||
compare_type: "=="
|
||||
compare_value_type: uint8
|
||||
compare_value: 1
|
||||
compare_address: [MAIN, 0xBD8F40]
|
||||
address: [VARIABLE, max_delta]
|
||||
value: 30
|
||||
-
|
||||
type: compare
|
||||
compare_type: "=="
|
||||
compare_value_type: uint8
|
||||
compare_value: 1
|
||||
compare_address: [MAIN, 0xBD8F40]
|
||||
address: [MAIN, 0xB75C40] # VSYNC TARGET
|
||||
value_type: uint32
|
||||
value: [2, 2]
|
||||
-
|
||||
type: compare
|
||||
compare_type: "=="
|
||||
compare_value_type: uint8
|
||||
compare_value: 1
|
||||
compare_address: [MAIN, 0xBD8F40]
|
||||
address: [VARIABLE, dr_target]
|
||||
value: 0.0166666666
|
||||
@ -0,0 +1,36 @@
|
||||
# Nobunaga's Ambition: Awakening 1.1.1
|
||||
# BID: EB53655DBA49C6C8
|
||||
# Cursor speed is tied to framerate
|
||||
|
||||
DECLARATIONS:
|
||||
-
|
||||
type: variable
|
||||
name: fps_target
|
||||
value_type: uint32
|
||||
default_value: 30
|
||||
evaluate: FPS_TARGET
|
||||
-
|
||||
type: variable
|
||||
name: frametime_target
|
||||
value_type: uint32
|
||||
default_value: 33
|
||||
evaluate: 1000 / FPS_LOCK_TARGET
|
||||
-
|
||||
type: variable
|
||||
name: lock30
|
||||
value_type: uint32
|
||||
default_value: 1
|
||||
evaluate: VSYNC_TARGET - 1
|
||||
MASTER_WRITE:
|
||||
# Min delta based on vsync + fps lock outside of cutscenes
|
||||
# REF: 28 00 80 52 68 D2 00 B9 C8 03 80 D2 28 04 C0 F2
|
||||
-
|
||||
type: asm_a64
|
||||
main_offset: 0x1991950
|
||||
instructions: [
|
||||
[adrp, x8, $fps_target],
|
||||
[ldr, w1, [x8, $lock30]],
|
||||
[ldp, w8, w9, [x8]],
|
||||
[str, w1, [x19, 0xD0]],
|
||||
[stp, w8, w9, [x21]]
|
||||
]
|
||||
BIN
SaltySD/saltynx_bootstrap.elf
Normal file
BIN
SaltySD/saltynx_bootstrap.elf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
SaltySD/saltynx_core.elf
Normal file
BIN
SaltySD/saltynx_core.elf
Normal file
Binary file not shown.
BIN
SaltySD/saltynx_core32.elf
Normal file
BIN
SaltySD/saltynx_core32.elf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -2,5 +2,5 @@
|
||||
"name": "SaltyNX",
|
||||
"tid": "0000000000534C56",
|
||||
"requires_reboot": true,
|
||||
"version": "1.8.1"
|
||||
"version": "1.9.2"
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
{
|
||||
"ams": {
|
||||
"[PACK] UltraNX 3.0|R2": "https://github.com/Ultra-NX/UltraNX/releases/latest/download/Ultra.zip"
|
||||
"[PACK] UltraNX 3.0|R3+": "https://github.com/Ultra-NX/UltraNX/releases/latest/download/Ultra.zip"
|
||||
},
|
||||
"misc": {
|
||||
"Refresh AIO": "https://github.com/Ultra-NX/Ultra-Resources/releases/download/Homebrews/AIO.zip"
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
{
|
||||
"Status Monitor": "Status Monitor",
|
||||
"Modes": "Режимы",
|
||||
"Modes Configure": "Режимы Настроить",
|
||||
"Modes Configure": "Режимы Настройка",
|
||||
"Full": "Полный",
|
||||
"Mini": "Мини",
|
||||
"Micro": "Микро",
|
||||
"FPS Graph": "График FPS",
|
||||
"FPS Counter": "Счётчик FPS",
|
||||
"Game Resolutions": "Разрешения игры",
|
||||
"Other": "Прочее",
|
||||
"Other": "Другое",
|
||||
"Battery/Charger": "Аккумулятор/Зарядка",
|
||||
"Miscellaneous": "Разное",
|
||||
"CPU Usage": "Загрузка CPU",
|
||||
@ -21,33 +21,33 @@
|
||||
"Core 2 ": "Ядро 2 ",
|
||||
"Core 3 ": "Ядро 3 ",
|
||||
"Load": "Нагрузка",
|
||||
"Total\nApplication\nApplet\nSystem\nSystem Unsafe": "Всего\nПриложение\nАпплет\nСистема\nСистема (небезопасно)",
|
||||
"Total\nApplication\nApplet\nSystem\nSystem Unsafe": "Общая\nПриложение\nАпплет\nСистема\nСистем. (небез.)",
|
||||
"Board": "Плата",
|
||||
"Battery Power Flow": "Поток энергии аккумулятора",
|
||||
"Battery Power Flow": "Мощность аккумулятора",
|
||||
"\nTemperatures": "\nТемпературы",
|
||||
"SoC\nPCB\nSkin": "SoC\nPCB\nSkin",
|
||||
"Fan Rotation Level": "Уровень вращения вентилятора",
|
||||
"Fan Rotation Level": "Скорость вентилятора",
|
||||
"Game": "Игра",
|
||||
"PFPS ": "PFPS ",
|
||||
"FPS ": "FPS ",
|
||||
"Resolutions ": "Разрешения ",
|
||||
"Resolutions ": "Разрешение ",
|
||||
"Read Speed ": "Скорость чтения ",
|
||||
"Press ": "Нажмите ",
|
||||
" to Exit": " для выхода",
|
||||
"Depth": "Глубина",
|
||||
"Viewport": "Viewport",
|
||||
"Viewport": "Вывод",
|
||||
"Game is not running\nor it's incompatible.": "Игра не запущена\nили несовместима.",
|
||||
"Battery Stats": "Статистика аккумулятора",
|
||||
"Actual Capacity": "Фактическая ёмкость",
|
||||
"Designed Capacity": "Номинальная ёмкость",
|
||||
"Battery Stats": "Состояние аккумулятора",
|
||||
"Actual Capacity": "Текущая ёмкость",
|
||||
"Designed Capacity": "Расчётная ёмкость",
|
||||
"Temperature": "Температура",
|
||||
"Raw Charge": "Сырой заряд",
|
||||
"Age": "Возраст",
|
||||
"Raw Charge": "Заряд (сырой)",
|
||||
"Age": "Износ",
|
||||
"Voltage": "Напряжение",
|
||||
"Current Flow": "Ток",
|
||||
"Current Flow": "Сила тока",
|
||||
"Power Flow": "Мощность",
|
||||
"Remaining Time": "Оставшееся время",
|
||||
"Charger Stats": "Статистика зарядки",
|
||||
"Charger Stats": "Состояние зарядки",
|
||||
"Input Current Limit": "Лимит входного тока",
|
||||
"VBUS Current Limit": "Лимит тока VBUS",
|
||||
"Voltage Limit": "Лимит напряжения",
|
||||
@ -61,61 +61,64 @@
|
||||
"NVJPG": "NVJPG",
|
||||
"Network": "Сеть",
|
||||
"Type: Wi-Fi": "Тип: Wi-Fi",
|
||||
"Press Y to show password": "Нажмите Y, чтобы показать пароль",
|
||||
"Press Y to show password": "Нажмите Y для показа пароля",
|
||||
"Type: Ethernet": "Тип: Ethernet",
|
||||
"Type: Not connected": "Тип: Не подключено",
|
||||
"CPU\nGPU\nRAM\nSOC\nPCB\nSKN": "CPU\nGPU\nRAM\nSOC\nPCB\nSKN",
|
||||
"Elements Move Down Move Up": "Элементы Вниз Вверх",
|
||||
"Elements Move Down Move Up": "Элементы Вниз Вверх",
|
||||
"Transparent": "Прозрачный",
|
||||
"Opaque": "Непрозрачный",
|
||||
"Alpha": "Альфа",
|
||||
"Alpha": "Альфа-канал",
|
||||
"Pretty": "Красивый",
|
||||
"Compact": "Компактный",
|
||||
"FileSafe": "FileSafe",
|
||||
"FileSafe": "Безопасный",
|
||||
"Day+Time": "День+Время",
|
||||
"Date+Time(s)": "Дата+Время(с)",
|
||||
"Date+Time AM/PM": "Дата+Время AM/PM",
|
||||
"Date+Time(s) AM/PM": "Дата+Время(с) AM/PM",
|
||||
"Date+Time EU": "Дата+Время EU",
|
||||
"Date+Time EU AM/PM": "Дата+Время EU AM/PM",
|
||||
"Date+Time(s) EU AM/PM": "Дата+Время(с) EU AM/PM",
|
||||
"Date+Time EU": "Дата+Время (EU)",
|
||||
"Date+Time EU AM/PM": "Дата+Время (EU) AM/PM",
|
||||
"Date+Time(s) EU AM/PM": "Дата+Время(с) (EU) AM/PM",
|
||||
"Date+Time ISO": "Дата+Время ISO",
|
||||
"Time 24h": "Время 24ч",
|
||||
"Time AM/PM": "Время AM/PM",
|
||||
"Time(s) 24h": "Время(с) 24ч",
|
||||
"Time(s) AM/PM": "Время(с) AM/PM",
|
||||
"Date US": "Дата US",
|
||||
"Date EU": "Дата EU",
|
||||
"Date US": "Дата (US)",
|
||||
"Date EU": "Дата (EU)",
|
||||
"Date ISO": "Дата ISO",
|
||||
"Date Short": "Краткая дата",
|
||||
"Date Short": "Короткая дата",
|
||||
"DTC Format": "Формат DTC",
|
||||
"Toggles": "Переключатели",
|
||||
"Info": "Показать информацию",
|
||||
"Disable Screenshots": "Отключить скриншоты",
|
||||
"Real Freqs": "Реальные частоты",
|
||||
"Deltas": "Дельты",
|
||||
"Target Freqs": "Целевые частоты",
|
||||
"Info": "Показывать инфо",
|
||||
"Disable Screenshots": "Откл. скриншоты",
|
||||
"Real Freqs": "Реал. частоты",
|
||||
"Deltas": "Дельта",
|
||||
"Target Freqs": "Цел. частоты",
|
||||
"FPS": "FPS",
|
||||
"RES": "РАЗР.",
|
||||
"RES": "RES",
|
||||
"Read Speed": "Скорость чтения",
|
||||
"Real Frequencies": "Реальные частоты",
|
||||
"Real Voltages": "Реальные напряжения",
|
||||
"Full CPU": "Полный CPU",
|
||||
"VDDQ": "VDDQ",
|
||||
"VDD2": "VDD2",
|
||||
"Stacked VDD2/VDDQ": "VDD2/VDDQ (стек)",
|
||||
"Full Resolution": "Полное разрешение",
|
||||
"SOC Voltage": "Напряжение SOC",
|
||||
"RAM Load CPU/GPU": "Нагрузка RAM CPU/GPU",
|
||||
"Use DTC Symbol": "Использовать символ DTC",
|
||||
"Use Dynamic Colors": "Использовать динамические цвета",
|
||||
"Stacked Fan/SOC": "Вентилятор/SOC (стек)",
|
||||
"RAM Load CPU/GPU": "Загрузка RAM CPU/GPU",
|
||||
"Stacked RAM Load CPU/GPU": "Загрузка RAM CPU/GPU (стек)",
|
||||
"Use DTC Symbol": "Исп. символ DTC",
|
||||
"Use Dynamic Colors": "Исп. динамические цвета",
|
||||
"Sleep Exit": "Выход из сна",
|
||||
"Configuration": "Конфигурация",
|
||||
"Refresh Rate": "Частота обновления",
|
||||
"Frame Padding": "Отступ кадра",
|
||||
"Frame Padding": "Отступ рамки",
|
||||
" Font Size": " Размер шрифта",
|
||||
"Font Sizes": "Размеры шрифта",
|
||||
"Handheld Font Size": "Размер шрифта в портативном режиме",
|
||||
"Docked Font Size": "Размер шрифта в док-режиме",
|
||||
"Handheld Font Size": "Шрифт (портативный)",
|
||||
"Docked Font Size": "Шрифт (в доке)",
|
||||
"Black": "Чёрный",
|
||||
"Dark Gray": "Тёмно-серый",
|
||||
"Gray": "Серый",
|
||||
@ -137,13 +140,13 @@
|
||||
"Dark Purple": "Тёмно-фиолетовый",
|
||||
"Purple": "Фиолетовый",
|
||||
"Light Purple": "Светло-фиолетовый",
|
||||
"Violet": "Фиолетовый",
|
||||
"Violet": "Лиловый",
|
||||
"Orange": "Оранжевый",
|
||||
"Yellow": "Жёлтый",
|
||||
"Light Yellow": "Светло-жёлтый",
|
||||
"Teal": "Бирюзовый",
|
||||
"Cyan": "Голубой",
|
||||
"Light Cyan": "Светло-голубой",
|
||||
"Cyan": "Циан",
|
||||
"Light Cyan": "Светлый циан",
|
||||
"Magenta": "Пурпурный",
|
||||
"Hot Pink": "Ярко-розовый",
|
||||
"Brown": "Коричневый",
|
||||
@ -162,29 +165,29 @@
|
||||
"Rounded Line": "Скруглённая линия",
|
||||
"Perfect Line": "Идеальная линия",
|
||||
" Color": " Цвет",
|
||||
" Alpha": " Прозрачность",
|
||||
" Alpha": " Альфа",
|
||||
"Category Color": "Цвет категории",
|
||||
"Category Color 1": "Цвет категории 1",
|
||||
"Category Color 2": "Цвет категории 2",
|
||||
"Separator Color": "Цвет разделителя",
|
||||
"Elements": "Элементы",
|
||||
"Text Alignment": "Выравнивание текста",
|
||||
"Vertical Position": "Вертикальная позиция",
|
||||
"Horizontal Position": "Горизонтальная позиция",
|
||||
"Left": "Слева",
|
||||
"Right": "Справа",
|
||||
"Vertical Position": "Вертикальное положение",
|
||||
"Horizontal Position": "Горизонтальное положение",
|
||||
"Left": "По левому краю",
|
||||
"Right": "По правому краю",
|
||||
"Top": "Сверху",
|
||||
"Center": "По центру",
|
||||
"Bottom": "Снизу",
|
||||
"FPS Counter Color": "Цвет счётчика FPS",
|
||||
"FPS Counter Alpha": "Прозрачность счётчика FPS",
|
||||
"Border Color": "Цвет границы",
|
||||
"Dashed Line Color": "Цвет пунктирной линии",
|
||||
"Dashed Line Alpha": "Прозрачность пунктирной линии",
|
||||
"Max FPS Text Color": "Цвет текста макс. FPS",
|
||||
"Min FPS Text Color": "Цвет текста мин. FPS",
|
||||
"Dashed Line Color": "Цвет пунктира",
|
||||
"Dashed Line Alpha": "Прозрачность пунктира",
|
||||
"Max FPS Text Color": "Цвет макс. FPS",
|
||||
"Min FPS Text Color": "Цвет мин. FPS",
|
||||
"Main Line Color": "Цвет основной линии",
|
||||
"Rounded Line Color": "Цвет скруглённой линии",
|
||||
"Rounded Line Color": "Цвет скругл. линии",
|
||||
"Perfect Line Color": "Цвет идеальной линии",
|
||||
"CPU": "CPU",
|
||||
"GPU": "GPU",
|
||||
@ -202,66 +205,66 @@
|
||||
"PCB ": "PCB ",
|
||||
"Skin ": "Skin ",
|
||||
"Border Thickness": "Толщина границы",
|
||||
"Corner Radius": "Радиус угла",
|
||||
"Element Padding": "Отступ элемента",
|
||||
"Horizontal Padding": "Горизонтальный отступ",
|
||||
"Vertical Padding": "Вертикальный отступ",
|
||||
"Corner Radius": "Скругление углов",
|
||||
"Element Padding": "Внутр. отступ эл-та",
|
||||
"Horizontal Padding": "Гориз. отступ",
|
||||
"Vertical Padding": "Вертик. отступ",
|
||||
"Label Padding": "Отступ метки",
|
||||
"Paddings": "Отступы",
|
||||
"Spacing": "Интервал",
|
||||
"Stacked Spacing": "Интервал стека",
|
||||
"Spacing": "Промежутки",
|
||||
"Stacked Spacing": "Промежуток (стек)",
|
||||
"Sample Rate": "Частота выборки",
|
||||
"Touch Move Delay": "Задержка перем. касанием",
|
||||
"Button Move Delay": "Задержка перем. кнопкой",
|
||||
"Mode Combo": "Комбинация режима",
|
||||
"Touch Move Delay": "Задержка касания",
|
||||
"Button Move Delay": "Задержка кнопок",
|
||||
"Mode Combo": "Комб. режима",
|
||||
"None": "Нет",
|
||||
"Global": "Общие",
|
||||
"Global": "Глобальный",
|
||||
"Temperatures": "Температуры",
|
||||
"System": "Система",
|
||||
"DTC Format 1": "Формат DTC 1",
|
||||
"DTC Format 2": "Формат DTC 2",
|
||||
"DTC Format 1": "DTC Формат 1",
|
||||
"DTC Format 2": "DTC Формат 2",
|
||||
"Target Frequencies": "Целевые частоты",
|
||||
"Frequency Deltas": "Дельты частот",
|
||||
"Frequency Deltas": "Дельта частот",
|
||||
"Labels": "Метки",
|
||||
"Stacked": "Стопкой",
|
||||
"Stacked": "Стек",
|
||||
"Handheld": "Портативный",
|
||||
"Docked": "Док-режим",
|
||||
"1080p Docked": "1080p док",
|
||||
"Docked": "В доке",
|
||||
"1080p Docked": "В доке (1080p)",
|
||||
"Integer FPS": "Целочисленный FPS",
|
||||
"Use FPS Graph": "Использовать график FPS",
|
||||
"Use FPS Graph": "Исп. график FPS",
|
||||
"Graph": "График",
|
||||
"Graph Background": "Фон графика",
|
||||
"Graph Border": "Граница графика",
|
||||
"CW Border Flow": "Поток границы по часовой",
|
||||
"CW Border Flow": "Поток границы (по ЧС)",
|
||||
"Dynamic Border": "Динамическая граница",
|
||||
"Border Wheel 1": "Колесо границы 1",
|
||||
"Border Wheel 2": "Колесо границы 2",
|
||||
"Border Wheel 3": "Колесо границы 3",
|
||||
"Border Wheel 3 Deep": "Колесо границы 3 глубокий",
|
||||
"Border Wheel 3 Deep": "Колесо границы 3 (глуб.)",
|
||||
"Border Wheel 4": "Колесо границы 4",
|
||||
"Border Wheel 4 Deep": "Колесо границы 4 глубокий",
|
||||
"Border Wheel 4 Deep": "Колесо границы 4 (глуб.)",
|
||||
"Dynamic Temps": "Динамические темп.",
|
||||
"Stacked Temps": "Температуры стопкой",
|
||||
"Stacked Temps": "Темп. (стек)",
|
||||
"CPU/GPU/RAM Temps": "Темп. CPU/GPU/RAM",
|
||||
"SOC/PCB/Skin Temps": "Темп. SOC/PCB/Skin",
|
||||
"SOC/PCB/Skin Temps": "Темп. SOC/Плата/Корпус",
|
||||
"CPU Temp": "Темп. CPU",
|
||||
"GPU Temp": "Темп. GPU",
|
||||
"RAM Temp": "Темп. RAM",
|
||||
"Stacked CPU Temp": "Темп. CPU стопкой",
|
||||
"Stacked GPU Temp": "Темп. GPU стопкой",
|
||||
"Stacked RAM Temp": "Темп. RAM стопкой",
|
||||
"Stacked Full CPU": "Полный CPU стопкой",
|
||||
"Full CPU Max Core 0-2": "Полный CPU макс. ядро 0-2",
|
||||
"Stacked CPU Temp": "Темп. CPU (стек)",
|
||||
"Stacked GPU Temp": "Темп. GPU (стек)",
|
||||
"Stacked RAM Temp": "Темп. RAM (стек)",
|
||||
"Stacked Full CPU": "Полный CPU (стек)",
|
||||
"Full CPU Max Core 0-2": "Полный CPU макс. ядра 0-2",
|
||||
"RAM Bandwidth": "Пропускная способность RAM",
|
||||
"Stacked RAM Bandwidth": "Пропускная способность RAM стопкой",
|
||||
"Invert Battery Display": "Инвертировать показ батареи",
|
||||
"Stacked RAM Bandwidth": "Проп. RAM (стек)",
|
||||
"Invert Battery Display": "Инвертировать элемент аккумулятора",
|
||||
"Voltage At End": "Напряжение в конце",
|
||||
"Primary Only": "Только основное",
|
||||
"Charcoal": "Угольный",
|
||||
"Cool Gray": "Холодный серый",
|
||||
"Off-White": "Молочно-белый",
|
||||
"Warm White": "Тёплый белый",
|
||||
"Slate": "Грифельный",
|
||||
"Slate": "Свинцовый",
|
||||
"Burgundy": "Бордовый",
|
||||
"Maroon": "Тёмно-бордовый",
|
||||
"Crimson": "Малиновый",
|
||||
@ -278,7 +281,7 @@
|
||||
"Peach": "Персиковый",
|
||||
"Caramel": "Карамельный",
|
||||
"Sienna": "Сиена",
|
||||
"Tan": "Рыжевато-коричневый",
|
||||
"Tan": "Бежевый",
|
||||
"Taupe": "Серо-коричневый",
|
||||
"Sand": "Песочный",
|
||||
"Wheat": "Пшеничный",
|
||||
@ -297,42 +300,42 @@
|
||||
"Bright Green": "Ярко-зелёный",
|
||||
"Sage": "Шалфейный",
|
||||
"Seafoam": "Морская пена",
|
||||
"Seafoam Green": "Зеленоватая пена",
|
||||
"Seafoam Green": "Зелёная морская пена",
|
||||
"Pale Green": "Бледно-зелёный",
|
||||
"Mint": "Мятный",
|
||||
"Chartreuse": "Шартрёз",
|
||||
"Dark Teal": "Тёмно-бирюзовый",
|
||||
"Dark Cyan": "Тёмно-голубой",
|
||||
"Dark Cyan": "Тёмно-циановый",
|
||||
"Cerulean": "Церулеум",
|
||||
"Aqua": "Аквамарин",
|
||||
"Steel Cyan": "Стальной голубой",
|
||||
"Steel Cyan": "Стальной циановый",
|
||||
"Navy": "Морской синий",
|
||||
"Cobalt": "Кобальтовый",
|
||||
"Denim": "Джинсовый",
|
||||
"Slate Navy": "Грифельно-синий",
|
||||
"Slate Navy": "Свинцовый синий",
|
||||
"Steel Blue": "Стальной синий",
|
||||
"Royal Blue": "Королевский синий",
|
||||
"Azure": "Лазурно-синий",
|
||||
"Azure": "Лазурный",
|
||||
"Cornflower": "Васильковый",
|
||||
"Ice Blue": "Ледяной голубой",
|
||||
"Powder Blue": "Пыльно-голубой",
|
||||
"Powder Blue": "Пудрово-голубой",
|
||||
"Indigo": "Индиго",
|
||||
"Indigo Blue": "Индигово-синий",
|
||||
"Indigo Blue": "Индиго-синий",
|
||||
"Violet Blue": "Сине-фиолетовый",
|
||||
"Deep Purple": "Насыщенный фиолетовый",
|
||||
"Deep Purple": "Тёмно-фиолетовый",
|
||||
"Periwinkle": "Барвинковый",
|
||||
"Light Periwinkle": "Светло-барвинковый",
|
||||
"Amethyst": "Аметистовый",
|
||||
"Mauve": "Розовато-лиловый",
|
||||
"Muted Mauve": "Приглушённый лиловый",
|
||||
"Mauve": "Лиловый",
|
||||
"Muted Mauve": "Приглуш. лиловый",
|
||||
"Lavender": "Лавандовый",
|
||||
"Orchid": "Орхидея",
|
||||
"Plum": "Сливовый",
|
||||
"Thistle": "Чертополоховый",
|
||||
"Thistle": "Чертополох",
|
||||
"Dark Magenta": "Тёмно-пурпурный",
|
||||
"Fuchsia": "Фуксия",
|
||||
"Rose": "Розово-красный",
|
||||
"Dusty Rose": "Пыльная роза",
|
||||
"Rose": "Розовый",
|
||||
"Dusty Rose": "Пыльно-розовый",
|
||||
"Baby Pink": "Нежно-розовый",
|
||||
"Light Pink": "Светло-розовый",
|
||||
"Petal": "Лепестковый",
|
||||
@ -348,16 +351,16 @@
|
||||
"Date EU Dash": "Дата EU (-)",
|
||||
"Date EU Slash": "Дата EU (/)",
|
||||
"Date ISO Slash": "Дата ISO (/)",
|
||||
"Date Short US": "Краткая дата US",
|
||||
"Date Short EU": "Краткая дата EU",
|
||||
"Date Short US": "Короткая дата US",
|
||||
"Date Short EU": "Короткая дата EU",
|
||||
"Date Compact": "Компактная дата",
|
||||
"Day + Date Short": "День недели + Краткая дата",
|
||||
"Day + Date Full": "День недели + Полная дата",
|
||||
"Weekday Short": "День недели кратко",
|
||||
"Weekday Full": "День недели полностью",
|
||||
"Month Short": "Месяц кратко",
|
||||
"Month Full": "Месяц полностью",
|
||||
"Month + Year": "Месяц + Год",
|
||||
"Day of Year": "День года",
|
||||
"Day + Date Short": "День + короткая дата",
|
||||
"Day + Date Full": "День + полная дата",
|
||||
"Weekday Short": "День недели (корот.)",
|
||||
"Weekday Full": "День недели (полн.)",
|
||||
"Month Short": "Месяц (корот.)",
|
||||
"Month Full": "Месяц (полн.)",
|
||||
"Month + Year": "Месяц и год",
|
||||
"Day of Year": "День в году",
|
||||
"Stop Watch": "Секундомер"
|
||||
}
|
||||
}
|
||||
@ -449,6 +449,28 @@ home=13
|
||||
lstick_click=11
|
||||
rstick_click=12
|
||||
|
||||
#[0f0d-00c1] ;Retro-bit SEGA Saturn Wireless 8-Button Arcade
|
||||
#;Preserves correct Mega Drive 6-button layout in Nintendo Switch Online Mega Drive
|
||||
#;Keeps NSO suspend menu accessible via Saturn L+R
|
||||
#;Provides a sensible default for NSO SNES/GBA/GB/NES without per-game remapping:
|
||||
#; X
|
||||
#; Switch Y A becomes Saturn L X R
|
||||
#; B Y B A
|
||||
#b=2
|
||||
#a=8
|
||||
#x=1
|
||||
#y=3
|
||||
#l=4
|
||||
#r=7
|
||||
#zl=5
|
||||
#zr=6
|
||||
#minus=9
|
||||
#plus=10
|
||||
#capture=14
|
||||
#home=13
|
||||
#lstick_click=11
|
||||
#rstick_click=12
|
||||
|
||||
#[0f0d-00c1] ; KIWITATA N64 USB Mini Controller
|
||||
#a=3,10
|
||||
#l=5
|
||||
@ -639,6 +661,20 @@ r=6
|
||||
minus=7
|
||||
plus=8
|
||||
|
||||
[0d22-0c20] ;MSI GC20
|
||||
b=2
|
||||
a=3
|
||||
x=4
|
||||
y=1
|
||||
l=5
|
||||
r=6
|
||||
zl=7
|
||||
zr=8
|
||||
minus=9
|
||||
plus=10
|
||||
lstick_click=11
|
||||
rstick_click=12
|
||||
|
||||
[0d22-0c31] ; MSI GC30 V2 USB cable
|
||||
b=2
|
||||
a=3
|
||||
@ -749,6 +785,22 @@ rstick_right=Z
|
||||
rstick_up=Rz
|
||||
rstick_down=-Rz
|
||||
|
||||
[06f7-0001] ;Adaptoid
|
||||
a=1
|
||||
b=4
|
||||
l=7
|
||||
r=8
|
||||
plus=9
|
||||
zl=10
|
||||
dpad_up=11
|
||||
dpad_down=12
|
||||
dpad_left=13
|
||||
dpad_right=14
|
||||
rstick_up=2
|
||||
rstick_down=6
|
||||
rstick_left=5
|
||||
rstick_right=3
|
||||
|
||||
[18d1-9400] ;Google Stadia Controller
|
||||
b=1
|
||||
a=2
|
||||
@ -762,6 +814,8 @@ minus=11
|
||||
plus=12
|
||||
capture=17
|
||||
home=18
|
||||
lstick_click=14
|
||||
rstick_click=15
|
||||
|
||||
[2dc8-301c] ;8bitdo Ultimate 2C Wireless Dongle
|
||||
A=1
|
||||
|
||||
BIN
config/ultrahand/.sounds/FF7.zip
Normal file
BIN
config/ultrahand/.sounds/FF7.zip
Normal file
Binary file not shown.
BIN
config/ultrahand/.sounds/GSNG.zip
Normal file
BIN
config/ultrahand/.sounds/GSNG.zip
Normal file
Binary file not shown.
BIN
config/ultrahand/.sounds/Switch 2.zip
Normal file
BIN
config/ultrahand/.sounds/Switch 2.zip
Normal file
Binary file not shown.
BIN
config/ultrahand/.sounds/default.zip
Normal file
BIN
config/ultrahand/.sounds/default.zip
Normal file
Binary file not shown.
BIN
config/ultrahand/.sounds/official.zip
Normal file
BIN
config/ultrahand/.sounds/official.zip
Normal file
Binary file not shown.
@ -1,5 +1,6 @@
|
||||
[ultrahand]
|
||||
clean_version_labels=false
|
||||
current_sounds=official
|
||||
current_theme=Ultra Paw
|
||||
datetime_format='%a %T'
|
||||
default_lang=en
|
||||
|
||||
@ -24,10 +24,10 @@
|
||||
"HIDDEN": "Скрыто",
|
||||
"HIDE_OVERLAY": "Скрыть оверлей",
|
||||
"HIDE_PACKAGE": "Скрыть пакет",
|
||||
"LAUNCH_ARGUMENTS": "Параметры запуска",
|
||||
"LAUNCH_ARGUMENTS": "Аргументы запуска",
|
||||
"FORCE_AMS110_SUPPORT": "Форсировать AMS110+",
|
||||
"QUICK_LAUNCH": "Быстрый запуск",
|
||||
"BOOT_COMMANDS": "Команды загрузки",
|
||||
"BOOT_COMMANDS": "Команды запуска",
|
||||
"EXIT_COMMANDS": "Команды выхода",
|
||||
"ERROR_LOGGING": "Журнал ошибок",
|
||||
"COMMANDS": "Команды",
|
||||
@ -40,73 +40,73 @@
|
||||
"WIDGET_SETTINGS": "Настройки виджета",
|
||||
"CLOCK": "Часы",
|
||||
"BATTERY": "Аккумулятор",
|
||||
"SOC_TEMPERATURE": "Темп. SOC",
|
||||
"PCB_TEMPERATURE": "Темп. PCB",
|
||||
"SOC_TEMPERATURE": "Температура SOC",
|
||||
"PCB_TEMPERATURE": "Температура PCB",
|
||||
"BACKDROP": "Фон",
|
||||
"BORDER": "Граница",
|
||||
"DYNAMIC_BORDER": "Динамическая граница",
|
||||
"DYNAMIC_TEMPS": "Динамические температуры",
|
||||
"CENTER_ALIGNMENT": "По центру",
|
||||
"CENTER_ALIGNMENT": "Выравнивание по центру",
|
||||
"EXTENDED_BACKDROP": "Расширенный фон",
|
||||
"MISCELLANEOUS": "Прочее",
|
||||
"MISCELLANEOUS": "Разное",
|
||||
"INPUT_SETTINGS": "Настройки ввода",
|
||||
"LAUNCH_COMBOS": "Комбо запуска",
|
||||
"SWIPE_TO_OPEN": "Свайп для открытия",
|
||||
"HAPTIC_FEEDBACK": "Виброотклик",
|
||||
"STICK_NAVIGATION": "Навигация стиком",
|
||||
"HOLD_DURATION": "Время удержания",
|
||||
"LAUNCH_COMBOS": "Комбинации запуска",
|
||||
"SWIPE_TO_OPEN": "Открытие свайпом",
|
||||
"HAPTIC_FEEDBACK": "Тактильная отдача",
|
||||
"STICK_NAVIGATION": "Навигация стиками",
|
||||
"HOLD_DURATION": "Длительность удержания",
|
||||
"FEATURE_SETTINGS": "Настройки функций",
|
||||
"OPAQUE_SCREENSHOTS": "Непрозрачные скриншоты",
|
||||
"RIGHT_SIDE_MODE": "Режим справа",
|
||||
"NTP_SYNC_DOWNLOADS": "Загрузки NTP Sync",
|
||||
"RIGHT_SIDE_MODE": "Режим с правой стороны",
|
||||
"NTP_SYNC_DOWNLOADS": "Синхронизация NTP при загрузках",
|
||||
"MENU_SETTINGS": "Настройки меню",
|
||||
"PACKAGES_MENU": "Меню пакетов",
|
||||
"USER_GUIDE": "Руководство",
|
||||
"SHOW_HIDDEN": "Показать скрытые",
|
||||
"SHOW_DELETE": "Показать удаление",
|
||||
"SHOW_UNSUPPORTED": "Показать неподдерживаемые",
|
||||
"SHOW_HIDDEN": "Показывать скрытые",
|
||||
"SHOW_DELETE": "Показывать удаление",
|
||||
"SHOW_UNSUPPORTED": "Показывать неподдерживаемые",
|
||||
"PAGE_SWAP": "Смена страницы",
|
||||
"OVERLAY_VERSIONS": "Версии оверлеев",
|
||||
"PACKAGE_VERSIONS": "Версии пакетов",
|
||||
"CLEAN_VERSIONS": "Скрыть (v)",
|
||||
"CLEAN_VERSIONS": "Чистые версии",
|
||||
"THEME_SETTINGS": "Настройки темы",
|
||||
"SWITCH_2_STYLE": "Стиль Switch 2",
|
||||
"DYNAMIC_LOGO": "Динамический логотип",
|
||||
"DYNAMIC_TABLES": "Динамические таблицы",
|
||||
"SELECTION_BACKGROUND": "Фон выделения",
|
||||
"SELECTION_TEXT": "Текст выделения",
|
||||
"SELECTION_VALUE": "Значение",
|
||||
"SELECTION_VALUE": "Значение выделения",
|
||||
"LIBULTRAHAND_TITLES": "Заголовки libultrahand",
|
||||
"LIBULTRAHAND_VERSIONS": "Версии libultrahand",
|
||||
"PACKAGE_TITLES": "Заголовки пакетов",
|
||||
"IN_PACKAGE_TITLES": "Внутрипакетные заголовки",
|
||||
"KEY_COMBO": "Комбинация",
|
||||
"IN_PACKAGE_TITLES": "Заголовки внутри пакетов",
|
||||
"KEY_COMBO": "Комб. клавиш",
|
||||
"MODE": "Режим",
|
||||
"LAUNCH_MODES": "Режимы запуска",
|
||||
"LANGUAGE": "Язык",
|
||||
"OVERLAY_INFO": "Инфо оверлея",
|
||||
"SOFTWARE_UPDATE": "Обновления",
|
||||
"OVERLAY_INFO": "Информация об оверлее",
|
||||
"SOFTWARE_UPDATE": "Обновление ПО",
|
||||
"UPDATE_ULTRAHAND": "Обновить Ultrahand",
|
||||
"SYSTEM": "Система",
|
||||
"DEVICE_INFO": "О устройстве",
|
||||
"DEVICE_INFO": "Информация об устройстве",
|
||||
"FIRMWARE": "Прошивка",
|
||||
"BOOTLOADER": "Загрузчик",
|
||||
"HARDWARE": "Оборудование",
|
||||
"MEMORY": "Память",
|
||||
"VENDOR": "Производитель",
|
||||
"MODEL": "Модель",
|
||||
"STORAGE": "Хранилище",
|
||||
"STORAGE": "Накопитель",
|
||||
"INCOMPATIBLE_WARNING": "Несовместимо с AMS v1.10+",
|
||||
"OVERLAY_DOES_NOT_EXIST": "Оверлей не найден!",
|
||||
"SYSTEM_RAM": "ОЗУ системы",
|
||||
"FREE": "свободно",
|
||||
"SYSTEM_RAM": "Системная RAM",
|
||||
"FREE": "FREE",
|
||||
"OVERLAY_MEMORY": "Память оверлея",
|
||||
"NOT_ENOUGH_MEMORY": "Недостаточно памяти",
|
||||
"WALLPAPER_SUPPORT_DISABLED": "Обои выключены",
|
||||
"SOUND_SUPPORT_DISABLED": "Звук выключен",
|
||||
"WALLPAPER_SUPPORT_ENABLED": "Обои включены",
|
||||
"SOUND_SUPPORT_ENABLED": "Звук включён",
|
||||
"EXIT_OVERLAY_SYSTEM": "Выйти из оверлеев",
|
||||
"NOT_ENOUGH_MEMORY": "Недостаточно памяти.",
|
||||
"WALLPAPER_SUPPORT_DISABLED": "Поддержка обоев отключена",
|
||||
"SOUND_SUPPORT_DISABLED": "Поддержка звука отключена",
|
||||
"WALLPAPER_SUPPORT_ENABLED": "Поддержка обоев включена",
|
||||
"SOUND_SUPPORT_ENABLED": "Поддержка звука включена",
|
||||
"EXIT_OVERLAY_SYSTEM": "Выйти из системы оверлеев",
|
||||
"ULTRAHAND_ABOUT": "Ultrahand Overlay — это настраиваемая экосистема оверлеев для команд, оверлеев, горячих клавиш и расширенного взаимодействия с системой.",
|
||||
"ULTRAHAND_CREDITS_START": "Особая благодарность ",
|
||||
"ULTRAHAND_CREDITS_END": " и многим другим. ♥",
|
||||
@ -114,7 +114,7 @@
|
||||
"WALLPAPER": "Обои",
|
||||
"THEME": "Тема",
|
||||
"SOUNDS": "Звуки",
|
||||
"DEFAULT": "стандарт",
|
||||
"DEFAULT": "по умолчанию",
|
||||
"ROOT_PACKAGE": "Корневой пакет",
|
||||
"SORT_PRIORITY": "Приоритет сортировки",
|
||||
"OPTIONS": "Опции",
|
||||
@ -123,21 +123,21 @@
|
||||
"NOTIFICATION_SETTINGS": "Настройки уведомлений",
|
||||
"SILENCE_NOTIFICATIONS": "Отключить уведомления",
|
||||
"STARTUP_NOTIFICATION": "Уведомление при запуске",
|
||||
"MAX_SLOTS": "Макс. слоты",
|
||||
"MAX_SLOTS": "Макс. слотов",
|
||||
"API_NOTIFICATIONS": "Уведомления API",
|
||||
"API_TOGGLE_HOTKEY": "Горячая клавиша API",
|
||||
"DISMISS_NOTIFICATION": "Закрыть уведомление",
|
||||
"DISMISS_NOTIFICATION": "Отклонить уведомление",
|
||||
"API_TOGGLE": "Переключить API",
|
||||
"CLICK": "клик",
|
||||
"TAP": "тап",
|
||||
"HOLD_FOR_4S": "удерживать 4 с",
|
||||
"HOLD_FOR_4S": "удерживать 4с",
|
||||
"ON": "Вкл",
|
||||
"OFF": "Выкл",
|
||||
"PACKAGE_INFO": "Инфо пакета",
|
||||
"PACKAGE_INFO": "Информация о пакете",
|
||||
"_TITLE": "Название",
|
||||
"_VERSION": "Версия",
|
||||
"_CREATOR": "Автор(ы)",
|
||||
"_ABOUT": "О прг.",
|
||||
"_ABOUT": "О прогр.",
|
||||
"_CREDITS": "Спасибо",
|
||||
"OK": "ОК",
|
||||
"BACK": "Назад",
|
||||
@ -163,7 +163,7 @@
|
||||
"DELETE_PACKAGE": "Удалить пакет",
|
||||
"DELETE_OVERLAY": "Удалить оверлей",
|
||||
"SELECTION_IS_EMPTY": "Выбор пуст!",
|
||||
"FORCED_SUPPORT_WARNING": "Принудительная поддержка опасна",
|
||||
"FORCED_SUPPORT_WARNING": "Принудительная поддержка может быть опасна.",
|
||||
"TASK_IS_COMPLETE": "Задача выполнена!",
|
||||
"TASK_HAS_FAILED": "Задача провалена",
|
||||
"SUNDAY": "Воскресенье",
|
||||
@ -204,4 +204,4 @@
|
||||
"OCT": "Окт",
|
||||
"NOV": "Ноя",
|
||||
"DEC": "Дек"
|
||||
}
|
||||
}
|
||||
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.
Binary file not shown.
Binary file not shown.
BIN
switch/Ultrahand-Reload/Ultrahand-Reload.nro
Normal file
BIN
switch/Ultrahand-Reload/Ultrahand-Reload.nro
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user