mirror of
https://github.com/Xeeynamo/sotn-decomp.git
synced 2024-11-27 06:50:35 +00:00
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
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
94 lines
3.2 KiB
YAML
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]
|