UltraNX/SaltySD/plugins/FPSLocker/patches/0100CA901AA9C000/70BD4BC32C10BFFE.yaml
2024-03-22 03:23:55 +03:00

259 lines
5.4 KiB
YAML

# Penny's Big Breakaway 1.1.0
# BID: 70BD4BC32C10BFFE
# Game is using double buffer, setting anything between 30 and 60 FPS is unsupported. nvnTextures are stored inside struct with hardcoded size, so adding third entry corrupts struct.
# For anything else than 30 and 60 FPS we lack Game speed multiplier for 3D objects without skeletons (like coins)
# Thanks to Hazerou for finding addresses of first two entries
# Reference nnMain to find function with argument w0 = 0x3C
unsafeCheck: true
15FPS:
# bool changing game speed to match 30 FPS
-
type: write
address: [MAIN, 0xFE5B20, 0x1F]
value_type: uint8
value: 1
# FPS Target (dunno what it's used for)
-
type: write
address: [MAIN, 0xFE5B20, 0x1C]
value_type: uint16
value: 15
# Game Speed multiplier #1
-
type: write
address: [MAIN, 0xFE5B20, 0x28]
value_type: float
value: 2
# Game Speed multiplier #2
-
type: write
address: [MAIN, 0xFE5B20, 0x30]
value_type: float
value: 2
20FPS:
# bool changing game speed to match 30 FPS
-
type: write
address: [MAIN, 0xFE5B20, 0x1F]
value_type: uint8
value: 1
# FPS Target
-
type: write
address: [MAIN, 0xFE5B20, 0x1C]
value_type: uint16
value: 20
# Game Speed multiplier #1
-
type: write
address: [MAIN, 0xFE5B20, 0x28]
value_type: float
value: 1.5
# Game Speed multiplier #2
-
type: write
address: [MAIN, 0xFE5B20, 0x30]
value_type: float
value: 1.5
25FPS:
# bool changing game speed to match 30 FPS
-
type: write
address: [MAIN, 0xFE5B20, 0x1F]
value_type: uint8
value: 1
# FPS Target
-
type: write
address: [MAIN, 0xFE5B20, 0x1C]
value_type: uint16
value: 25
# Game Speed multiplier #1
-
type: write
address: [MAIN, 0xFE5B20, 0x28]
value_type: float
value: 1.2
# Game Speed multiplier #2
-
type: write
address: [MAIN, 0xFE5B20, 0x30]
value_type: float
value: 1.2
30FPS:
# bool changing game speed to match 30 FPS (default value)
-
type: write
address: [MAIN, 0xFE5B20, 0x1F]
value_type: uint8
value: 1
# FPS Target (default value)
-
type: write
address: [MAIN, 0xFE5B20, 0x1C]
value_type: uint16
value: 30
# Game Speed multiplier #1 (default value)
-
type: write
address: [MAIN, 0xFE5B20, 0x28]
value_type: float
value: 1
# Game Speed multiplier #2 (default value)
-
type: write
address: [MAIN, 0xFE5B20, 0x30]
value_type: float
value: 1
35FPS:
# bool changing game speed to match 30 FPS
-
type: write
address: [MAIN, 0xFE5B20, 0x1F]
value_type: uint8
value: 0
# FPS Target
-
type: write
address: [MAIN, 0xFE5B20, 0x1C]
value_type: uint16
value: 35
# Game Speed multiplier #1
-
type: write
address: [MAIN, 0xFE5B20, 0x28]
value_type: float
value: 1.7142
# Game Speed multiplier #2
-
type: write
address: [MAIN, 0xFE5B20, 0x30]
value_type: float
value: 1.7142
40FPS:
# bool changing game speed to match 30 FPS
-
type: write
address: [MAIN, 0xFE5B20, 0x1F]
value_type: uint8
value: 0
# FPS Target
-
type: write
address: [MAIN, 0xFE5B20, 0x1C]
value_type: uint16
value: 40
# Game Speed multiplier #1
-
type: write
address: [MAIN, 0xFE5B20, 0x28]
value_type: float
value: 1.5
# Game Speed multiplier #2
-
type: write
address: [MAIN, 0xFE5B20, 0x30]
value_type: float
value: 1.5
45FPS:
# bool changing game speed to match 30 FPS
-
type: write
address: [MAIN, 0xFE5B20, 0x1F]
value_type: uint8
value: 0
# FPS Target
-
type: write
address: [MAIN, 0xFE5B20, 0x1C]
value_type: uint16
value: 45
# Game Speed multiplier #1
-
type: write
address: [MAIN, 0xFE5B20, 0x28]
value_type: float
value: 1.3333333333
# Game Speed multiplier #2
-
type: write
address: [MAIN, 0xFE5B20, 0x30]
value_type: float
value: 1.3333333333
50FPS:
# bool changing game speed to match 30 FPS
-
type: write
address: [MAIN, 0xFE5B20, 0x1F]
value_type: uint8
value: 0
# FPS Target
-
type: write
address: [MAIN, 0xFE5B20, 0x1C]
value_type: uint16
value: 50
# Game Speed multiplier #1
-
type: write
address: [MAIN, 0xFE5B20, 0x28]
value_type: float
value: 1.2
# Game Speed multiplier #2
-
type: write
address: [MAIN, 0xFE5B20, 0x30]
value_type: float
value: 1.2
55FPS:
# bool changing game speed to match 30 FPS
-
type: write
address: [MAIN, 0xFE5B20, 0x1F]
value_type: uint8
value: 0
# FPS Target
-
type: write
address: [MAIN, 0xFE5B20, 0x1C]
value_type: uint16
value: 55
# Game Speed multiplier #1
-
type: write
address: [MAIN, 0xFE5B20, 0x28]
value_type: float
value: 1.0909090909
# Game Speed multiplier #2
-
type: write
address: [MAIN, 0xFE5B20, 0x30]
value_type: float
value: 1.0909090909
60FPS:
# bool changing game speed to match 30 FPS
-
type: write
address: [MAIN, 0xFE5B20, 0x1F]
value_type: uint8
value: 0
# FPS Target
-
type: write
address: [MAIN, 0xFE5B20, 0x1C]
value_type: uint16
value: 60
# Game Speed multiplier #1
-
type: write
address: [MAIN, 0xFE5B20, 0x28]
value_type: float
value: 1
# Game Speed multiplier #2
-
type: write
address: [MAIN, 0xFE5B20, 0x30]
value_type: float
value: 1