sotn-decomp/config/splat.us.strwrp.yaml
Luciano Ciccariello 533822ad76
Some checks are pending
Format code / format (push) Waiting to run
Build C code / extract-assets (push) Waiting to run
Build C code / build-linux (i686, Debug, clang, custom) (push) Blocked by required conditions
Build C code / build-linux (i686, Debug, clang, lle) (push) Blocked by required conditions
Build C code / build-linux (i686, Debug, gcc, custom) (push) Blocked by required conditions
Build C code / build-linux (i686, Debug, gcc, lle) (push) Blocked by required conditions
Build C code / build-linux (i686, RelWithDebInfo, clang, custom) (push) Blocked by required conditions
Build C code / build-linux (i686, RelWithDebInfo, clang, lle) (push) Blocked by required conditions
Build C code / build-linux (i686, RelWithDebInfo, gcc, custom) (push) Blocked by required conditions
Build C code / build-linux (i686, RelWithDebInfo, gcc, lle) (push) Blocked by required conditions
Build C code / build-linux (x86_64, Debug, clang, custom) (push) Blocked by required conditions
Build C code / build-linux (x86_64, Debug, clang, lle) (push) Blocked by required conditions
Build C code / build-linux (x86_64, Debug, gcc, custom) (push) Blocked by required conditions
Build C code / build-linux (x86_64, Debug, gcc, lle) (push) Blocked by required conditions
Build C code / build-linux (x86_64, RelWithDebInfo, clang, custom) (push) Blocked by required conditions
Build C code / build-linux (x86_64, RelWithDebInfo, clang, lle) (push) Blocked by required conditions
Build C code / build-linux (x86_64, RelWithDebInfo, gcc, custom) (push) Blocked by required conditions
Build C code / build-linux (x86_64, RelWithDebInfo, gcc, lle) (push) Blocked by required conditions
Build C code / build-macos (Debug) (push) Blocked by required conditions
Build C code / build-macos (RelWithDebInfo) (push) Blocked by required conditions
Build C code / build-windows (Debug) (push) Blocked by required conditions
Build C code / build-windows (RelWithDebInfo) (push) Blocked by required conditions
Build Saturn version / build-and-test-saturn (push) Waiting to run
Build Saturn version / function-finder-saturn (push) Waiting to run
Build Debug Module tool / build (push) Waiting to run
Build PSX and PSP version / build-and-test (pspeu, hd) (push) Waiting to run
Build PSX and PSP version / build-and-test (pspeu, pspeu) (push) Waiting to run
Build PSX and PSP version / build-and-test (us, us) (push) Waiting to run
Build PSX and PSP version / generate-progress-report (pspeu, hd) (push) Blocked by required conditions
Build PSX and PSP version / generate-progress-report (pspeu, pspeu) (push) Blocked by required conditions
Build PSX and PSP version / generate-progress-report (us, us) (push) Blocked by required conditions
Build PSX and PSP version / generate-duplicates-report (us, us) (push) Blocked by required conditions
Build PSX and PSP version / generate-duplicates-report-psp (pspeu, pspeu) (push) Blocked by required conditions
WRP and CEN cohabitation (#1701)
Experimental piece of work I feel confident enough to submit. A few
things to take in consideration:

* The new `pfn_entity_updates.h` header aims to use the PSP variant of
`PfnEntityUpdates` and the two `g_pStObjLayout`, I just tweaked a bit
the code from `stage.h`
* Add overlay prefix to the PSX version of `PfnEntityUpdates` and the
two `g_pStObjLayout`
* Changed `wrp/create_entity` to `rwrp/create_entity` in RWRP because we
need the `RWRP_` prefix to be issued
* Remodernized the WRP header
* I am still not sure what's wrong with `g_HeartDropArray` in `warp.c`.
I am pretty sure it is a PSX bug. I opted for the PSP version

There's a `// PfnEntityUpdates = OVL_EXPORT(EntityUpdates);`. If you
uncomment and resolve the multiple definitions you will have the two
overlays linked. I still need to figure out how to handle the
`InitializeEntity` parameters in `e_init` without going mad with the
`#ifdef`.

Takeaways from the Xbox 360 build:

* `EntityBreakable` is different in every overlay, so we can use the
`OVL_EXPORT` in our decomp
* Every other function seem to be de-duplciated. For those functions
that are slightly different between overlays, the developers of the Xbox
port opted for `if (g_StageId == XYZ)`

Takeaways from the PSP build:

* god bless the psp
2024-10-13 22:15:19 +01:00

94 lines
3.2 KiB
YAML

options:
platform: psx
basename: strwrp
base_path: ..
build_path: build/us
target_path: disks/us/ST/RWRP/RWRP.BIN
asm_path: asm/us/st/rwrp
asset_path: assets/st/rwrp
src_path: src/st
ld_script_path: build/us/strwrp.ld
compiler: GCC
symbol_addrs_path:
- config/symbols.us.txt
- config/symbols.us.strwrp.txt
undefined_funcs_auto_path: config/undefined_funcs_auto.us.strwrp.txt
undefined_syms_auto_path: config/undefined_syms_auto.us.strwrp.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
disassemble_all: True
section_order:
- ".data"
- ".rodata"
- ".text"
- ".bss"
- ".sbss"
sha1: 3bbdd3b73f8f86cf5f6c88652e9e6452a7fb5992
segments:
- name: strwrp
type: code
start: 0x00000000
vram: 0x80180000
align: 4
subalign: 4
subsegments:
- [0x0, .data, rwrp/header]
- [0xB8, .data, rwrp/header] # layers
- [0x1B8, .data, rwrp/d_1b8] # entity gfx
- [0x23C, .data, rwrp/e_laydef] # layout entries header
- [0x3E4, .data, rwrp/e_init]
- [0x528, .data, rwrp/st_debug]
- [0x5A8, .data, wrp/e_breakable]
- [0x608, .data, wrp/d_608]
- [0x648, .data, rwrp/warp]
- [0x690, .data, wrp/st_update]
- [0x6BC, .data, wrp/collision]
- [0xA7C, .data, rwrp/e_red_door]
- [0xA94, .data, wrp/st_common]
- [0xC94, .data, wrp/e_collect]
- [0xF84, .data, rwrp/e_misc]
- [0xFE8, .data, wrp/e_particles]
- [0x1120, .data, wrp/e_room_fg]
- [0x11AC, .data, rwrp/rooms]
- [0x1228, .data, rwrp/e_layout] # layout entries data
- [0x1420, cmp, D_80181420]
- [0x1764, cmp, D_80181764]
- [0x1D08, raw, D_80181D08]
- [0x1FC8, .data, rwrp/tile_data] # tile data
- [0x2BC8, .data, rwrp/tile_data] # tile definitions
- [0x6FE8, .data, rwrp/sprites]
- [0x8C48, .rodata, rwrp/warp] # warp strings
- [0x8C88, .rodata, rwrp/warp] # EntityRWarpRoom
- [0x8CB0, .rodata, rwrp/warp] # EntityWarpSmallRocks
- [0x8CC8, .rodata, rwrp/e_red_door] # EntityRedDoor
- [0x8CE0, .rodata, wrp/e_collect] # CollectGold strings
- [0x8D30, .rodata, wrp/e_collect] # EntityPrizeDrop
- [0x8D50, .rodata, wrp/e_collect] # EntityEquipItemDrop
- [0x8D68, .rodata, rwrp/e_misc] # EntityRelicOrb
- [0x8DA0, .rodata, rwrp/e_misc] # EntityMessageBox
- [0x8DB4, .rodata, wrp/e_stage_name] # EntityStageNamePopup
- [0x8DE8, .rodata, wrp/prim_helpers]
- [0x8DF0, c, rwrp/st_debug]
- [0x908C, c, wrp/e_breakable]
- [0x91C0, c, rwrp/warp]
- [0xA168, c, wrp/st_update]
- [0xA59C, c, wrp/collision]
- [0xBD58, c, rwrp/create_entity]
- [0xC8D0, c, rwrp/e_red_door]
- [0xD580, c, wrp/st_common]
- [0xEA30, c, wrp/e_collect]
- [0xff9c, c, wrp/blit_char]
- [0x1024C, c, rwrp/e_misc]
- [0x1373C, c, wrp/e_stage_name]
- [0x14590, c, wrp/e_particles]
- [0x14DD4, c, wrp/e_room_fg]
- [0x14EC0, c, wrp/popup]
- [0x151F0, c, wrp/prim_helpers]
- [0x15A20, .bss, rwrp/create_entity]
- [0x15A36, .bss, rwrp/bss]
- [0x166A8, .bss, wrp/e_collect]
- [0x166E8]