sotn-decomp/config/splat.us.stwrp.yaml
Luciano Ciccariello 5362c8b8da
Add ST/WRP from PSP (#1172)
Extract ST/WRP out of #1119 . All the function symbols should have been
cross-referenced. There as some PSX functions missing from PSP and some
new functions from PSP that are not present on PSX (e.g.
`st_init_wrp.c`).

The files `st_debug.c` and `e_breakable.c` are shared between WRP PSX
and WRP PSP. Everything else from PSP is isolated into its own folder. I
had to do some tricks on the YAML config to allow shared code.

`ST_WRP_MERGE = st_debug e_breakable` in the `Makefile` is a bit
annoying as MWCC complains about every single minute detail from the C
source that has been already decompiled for the PSX US build.

`EntityWarpSmallRocks` is matching on PSP but I couldn't extract the
rodata without having a bunch of linker errors. This might be a Splat
issue. I need to investigate further.

`func_psp_09244760` is soooo interesting. The values from `0x11` to
`0x17` matches the Entity IDs that are unique to the WRP overlay. This
aligns to what we have in `typedef enum EntityIDs`.

Overall I am very excited to the recent discoveries from the PSP build!
2024-05-25 11:56:06 -07:00

100 lines
3.2 KiB
YAML

options:
platform: psx
basename: stwrp
base_path: ..
build_path: build/us
target_path: disks/us/ST/WRP/WRP.BIN
asm_path: asm/us/st/wrp
asset_path: assets/st/wrp
src_path: src/st/wrp
ld_script_path: build/us/stwrp.ld
compiler: GCC
symbol_addrs_path:
- config/symbols.us.txt
- config/symbols.us.stwrp.txt
undefined_funcs_auto_path: config/undefined_funcs_auto.us.stwrp.txt
undefined_syms_auto_path: config/undefined_syms_auto.us.stwrp.txt
find_file_boundaries: yes
use_legacy_include_asm: no
migrate_rodata_to_functions: no
asm_jtbl_label_macro: jlabel
extensions_path: tools/splat_ext
section_order:
- ".data"
- ".rodata"
- ".text"
- ".bss"
segments:
- name: stwrp
type: code
start: 0x00000000
vram: 0x80180000
subalign: 4
subsegments:
- [0x0, .data, header]
- [0xB8, layers, rooms]
- [0x1B8, .data, 6FD0]
- [0xF84, .data, entity_relic_orb]
- [0xFE8, .data, F420]
- [0x11AC, roomdef, g_Rooms]
- [0x1228, layoutobj, D_80181228]
- [0x1250, layoutobj, D_80181250]
- [0x1278, layoutobj, D_80181278]
- [0x12A0, layoutobj, D_801812A0]
- [0x12C8, layoutobj, D_801812C8]
- [0x12F0, layoutobj, D_801812F0]
- [0x1304, layoutobj, D_80181304]
- [0x1324, layoutobj, D_80181324]
- [0x134C, layoutobj, D_8018134C]
- [0x1374, layoutobj, D_80181374]
- [0x139C, layoutobj, D_8018139C]
- [0x13C4, layoutobj, D_801813C4]
- [0x13EC, layoutobj, D_801813EC]
- [0x1400, layoutobj, D_80181400]
- [0x1420, cmp, D_80181420]
- [0x1764, cmp, D_80181764]
- [0x1D08, cmp, D_80181D08]
- [0x1D68, tilelayout, D_80181D68]
- [0x1F68, tilelayout, D_80181F68]
- [0x2168, tilelayout, D_80182168]
- [0x2368, tilelayout, D_80182368]
- [0x2568, tilelayout, D_80182568]
- [0x2768, tilelayout, D_80182768]
- [0x2968, raw, D_80182968]
- [0x2A68, raw, D_80182A68]
- [0x2B68, raw, D_80182B68]
- [0x2C68, raw, D_80182C68]
- [0x2D68, tiledef, D_80182D68]
- [0x2D78, raw, D_80182D78]
- [0x3D78, raw, D_80183D78]
- [0x4D78, raw, D_80184D78]
- [0x5D78, raw, D_80185D78]
- [0x6D78, tiledef, D_80186D78]
- [0x6D88, animset, D_80186D88]
- [0x6E30, .rodata, 6FD0]
- [0x6E70, .rodata, warp] # EntityWarpRoom
- [0x6E90, .rodata, warp] # EntityWarpSmallRocks
- [0x6EA8, .rodata, 861C] # EntityRedDoor
- [0x6EC0, rodata] # CollectGold
- [0x6F10, .rodata, D020]
- [0x6F30, .rodata, D020] # EntityEquipItemDrop
- [0x6F48, .rodata, entity_relic_orb]
- [0x6F80, .rodata, entity_message_box]
- [0x6F94, .rodata, F420] # EntityStageNamePopup
- [0x6FC8, rodata]
- [0x6FD0, c, st_debug]
- [0x726C, c, e_breakable]
- [0x73A0, c, warp]
- [0x81E8, c, random]
- [0x8218, c, update]
- [0x8514, c, update_stage_entities]
- [0x861C, c]
- [0xD020, c]
- [0xE2CC, c, entity_relic_orb]
- [0xED9C, c, entity_heart_drop]
- [0xEEC4, c, entity_message_box]
- [0xF420, c]
- [0x13270, c, prim_helpers]
- [0x13AA0, sbss] # bss?
- [0x14768]