UnleashedRecomp/UnleashedRecompLib/config/SWA.toml
Hyper 554be01412 Implemented CSD aspect ratio hooks
This only includes the centred mode, as the intention is to map out CSD classes in the API and handle the rest manually.

Co-Authored-By: Michael <15317421+ActualMandM@users.noreply.github.com>
2024-10-17 19:36:10 +01:00

133 lines
No EOL
3.8 KiB
TOML

[main]
file_path = "../private/default.xex"
out_directory_path = "../ppc"
switch_table_file_path = "SWA_switch_tables.toml"
skip_lr = true
skip_msr = true
ctr_as_local = true
xer_as_local = true
reserved_as_local = true
cr_as_local = true
non_argument_as_local = true
non_volatile_as_local = true
restgprlr_14_address = 0x831B0B40
savegprlr_14_address = 0x831B0AF0
restfpr_14_address = 0x831B144C
savefpr_14_address = 0x831B1400
restvmx_14_address = 0x831B36E8
savevmx_14_address = 0x831B3450
restvmx_64_address = 0x831B377C
savevmx_64_address = 0x831B34E4
longjmp_address = 0x831B6790
setjmp_address = 0x831B6AB0
# These functions do not exist in .pdata and
# not analyze properly due to having jump tables
functions = [
{ address = 0x824E7EF0, size = 0x98 },
{ address = 0x824E7F28, size = 0x60 },
{ address = 0x82C980E8, size = 0x110 },
{ address = 0x82CF7080, size = 0x80 },
{ address = 0x82D9AC08, size = 0x78 },
{ address = 0x82E86770, size = 0x98 },
{ address = 0x82E97E50, size = 0x84 },
{ address = 0x82EE2D08, size = 0x154 },
{ address = 0x82EF5C38, size = 0x64 },
{ address = 0x82EF5D78, size = 0x3F8 },
{ address = 0x82F08730, size = 0x2B0 },
{ address = 0x82F098C0, size = 0x19C },
{ address = 0x82F13980, size = 0xF4 },
{ address = 0x82F1D668, size = 0x1E8 },
{ address = 0x82F22908, size = 0x20C },
{ address = 0x82F25FD8, size = 0x240 },
{ address = 0x82F852A0, size = 0xCC },
{ address = 0x830DADA0, size = 0x150 },
{ address = 0x831487D0, size = 0xD4 },
{ address = 0x831530C8, size = 0x258 },
{ address = 0x831539E0, size = 0xD0 },
{ address = 0x83168940, size = 0x100 },
{ address = 0x83168A48, size = 0x11C },
{ address = 0x83168B70, size = 0x128 },
{ address = 0x83168F18, size = 0x254 },
{ address = 0x8316C678, size = 0x78 },
{ address = 0x8317CD30, size = 0x50 },
{ address = 0x83180700, size = 0x74 },
{ address = 0x8319ED58, size = 0x98 },
{ address = 0x82455E70, size = 0x84 },
{ address = 0x82456DC8, size = 0xD4 },
{ address = 0x826ABB70, size = 0x70 },
{ address = 0x82893088, size = 0x45C },
{ address = 0x82C49540, size = 0x114 },
{ address = 0x82DE35D8, size = 0x68 },
{ address = 0x82DE3640, size = 0x64 },
{ address = 0x82DE36A8, size = 0x5C },
{ address = 0x82DE3708, size = 0x198 },
{ address = 0x82DE38A0, size = 0x16C },
{ address = 0x830B7DD0, size = 0x74 },
{ address = 0x831B0BA0, size = 0xA0 },
{ address = 0x8305D168, size = 0x278 }
]
invalid_instructions = [
{ data = 0x00000000, size = 4 }, # Padding
{ data = 0x831B1C90, size = 8 }, # C++ Frame Handler
{ data = 0x8324B3BC, size = 8 }, # C Specific Frame Handler
{ data = 0x831C8B50, size = 8 },
{ data = 0x00485645, size = 44 } # End of .text
]
[[midasm_hook]]
name = "HalfPixelOffsetMidAsmHook"
address = 0x82E9FD64
registers = ["f9", "f0"]
[[midasm_hook]]
name = "IndexBufferLengthMidAsmHook"
address = 0x82E26244
registers = ["r3"]
[[midasm_hook]]
name = "SetShadowResolutionMidAsmHook"
address = 0x82BAD87C
registers = ["r11"]
[[midasm_hook]]
name = "Primitive2DHalfPixelOffsetMidAsmHook"
address = 0x830D1F40
registers = ["f13"]
[[midasm_hook]]
name = "Primitive2DHalfPixelOffsetMidAsmHook"
address = 0x830D213C
registers = ["f13"]
[[midasm_hook]]
name = "GracefulLoopExitMidAsmHook"
address = 0x822C1018
return_on_true = true
[[midasm_hook]]
name = "CameraAspectRatioMidAsmHook"
address = 0x82468E84
registers = ["r31"]
jump_address_on_true = 0x82468E88
jump_address_on_false = 0x82468EE0
[[midasm_hook]]
name = "CameraBoostAspectRatioMidAsmHook"
address = 0x8246BDA8
registers = ["r31", "f0"]
[[midasm_hook]]
name = "CSDAspectRatioMidAsmHook"
address = 0x830C0A28
registers = ["f1", "f2"]
[[midasm_hook]]
name = "CSDOffsetMidAsmHook"
address = 0x830C0A78
registers = ["f1", "f2"]
return = true