mirror of
https://github.com/Xeeynamo/sotn-decomp.git
synced 2024-11-23 13:09:44 +00:00
91a0dab64e
Changelog: * Import all the PSP WRP data that belong to `e_collect.c` * Remove the `ext.generic` use in favour of `ET_EquipItemDrop` * Document some fields from `ET_EquipItemDrop` * Discover the extra field `mariaSubWeapon` on PSP * `g_api.AddToInventory` signature changed to allow a better match on [EntityEquipItemDrop](https://decomp.me/scratch/PULKm) * Remove the fake array `D_8003BF9C` in favour of `g_CastleFlags` * The `O_TAG` struct is also valid on PSP * Decompile `EntityPrizeDrop` on PSP * Align `func_8018CAB0` to PSP * Align `EntityPrizeDrop` to PSP with a bunch of `#ifdef` * Align `EntityEquipItemDrop` to PSP using the WIP scratch [EntityEquipItemDrop](https://decomp.me/scratch/PULKm) * `DestroyCurrentEntity` is just an dummy item collector from `EntityPrizeDrop` * Duplicate functions in other overlays are not yet aligned as I am waiting to migrate them to use `e_collect` I noticed splat is not able to successfully recognise pointers if the data is too scattered. I had to merge the `data` in the YAML and allow it to be exported into a single file before starting to import it. The only missing function from `e_collect.c` is [EntityEquipItemDrop](https://decomp.me/scratch/PULKm). Data on PSX are slightly shuffled within the same C file. I believe the PSP build retains the original data order. Thanks to @sozud for the majority of the work on `EntityPrizeDrop` and `EntityEquipItemDrop` on PSP. And thanks to @bismurphy for solving the last piece of the puzzle to match `EntityPrizeDrop`.
139 lines
5.3 KiB
YAML
139 lines
5.3 KiB
YAML
options:
|
|
platform: psp
|
|
basename: dra
|
|
base_path: ..
|
|
build_path: build/pspeu
|
|
target_path: disks/pspeu/PSP_GAME/USRDIR/res/ps/PSPBIN/wrp.bin
|
|
asm_path: asm/pspeu/st/wrp_psp
|
|
asset_path: assets/st/wrp
|
|
src_path: src/st
|
|
ld_script_path: build/pspeu/stwrp.ld
|
|
compiler: GCC
|
|
symbol_addrs_path:
|
|
- config/symbols.pspeu.txt
|
|
- config/symbols.pspeu.stwrp.txt
|
|
undefined_funcs_auto_path: config/undefined_funcs_auto.pspeu.stwrp.txt
|
|
undefined_syms_auto_path: config/undefined_syms_auto.pspeu.stwrp.txt
|
|
find_file_boundaries: yes
|
|
use_legacy_include_asm: no
|
|
migrate_rodata_to_functions: yes
|
|
asm_jtbl_label_macro: jlabel
|
|
symbol_name_format : psp_$VRAM
|
|
nonmatchings_path: psp
|
|
section_order:
|
|
- ".text"
|
|
- ".data"
|
|
- ".rodata"
|
|
- ".bss"
|
|
ld_bss_is_noload: True
|
|
disasm_unknown: True
|
|
asm_inc_header: |
|
|
.set noat /* allow manual use of $at */
|
|
.set noreorder /* don't insert nops after branches */
|
|
.include "macro.inc"
|
|
sha1: 0584ddb3ba1afce61592d43497212fcb8ebf797b
|
|
|
|
segments:
|
|
- [0x0, bin, mwo_header]
|
|
- name: stwrp
|
|
type: code
|
|
start: 0x00000080
|
|
vram: 0x09237700
|
|
bss_size: 0x1180
|
|
align: 128
|
|
subalign: 8
|
|
subsegments:
|
|
- [0x80, c, wrp_psp/create_entity]
|
|
- [0x1028, c, wrp_psp/e_stage_name]
|
|
- [0x1EA8, c, wrp/e_red_door]
|
|
- [0x31B0, c, wrp/st_update]
|
|
- [0x36E8, c, wrp_psp/e_particles_maria1]
|
|
- [0x3C70, c, wrp_psp/e_particles_maria2]
|
|
- [0x4100, c, wrp/e_particles]
|
|
- [0x4C78, c, wrp_psp/blit_char]
|
|
- [0x5308, c, wrp_psp/e_collect]
|
|
- [0x7448, c, wrp_psp/e_misc]
|
|
- [0x95D0, c, wrp_psp/collision]
|
|
- [0xB7A8, c, wrp/popup]
|
|
- [0xBDA0, c, wrp/e_room_fg]
|
|
- [0xBEB8, c, wrp/st_common]
|
|
- [0xC9A0, c, wrp_psp/stage_name_new]
|
|
- [0xCEA0, c, wrp_psp/prim_helpers]
|
|
- [0xD0E0, c, wrp_psp/st_init_wrp]
|
|
- [0xD1B8, c, wrp/e_breakable]
|
|
- [0xD338, c, wrp/st_debug]
|
|
- [0xD6A8, c, wrp/warp]
|
|
- [0xEA00, .data, wrp/e_red_door] # g_eRedDoorUV
|
|
- [0xEA18, .data, wrp/st_update] # UNK_Invincibility0
|
|
- [0xEA48, .data, wrp/e_particles] # g_ESoulStealOrb*
|
|
- [0xEAC8, .data, wrp_psp/e_collect] # g_SubweaponAnimPrizeDrop
|
|
- [0xECF0, .data, wrp_psp/e_collect] # g_MariaSubweaponAnimPrizeDrop
|
|
- [0xEDD8, .data, wrp_psp/e_collect] # g_goldCollectTexts
|
|
- [0xEE50, .data, wrp_psp/e_collect] # c_GoldPrizes
|
|
- [0xEE80, .data, wrp_psp/e_collect] # c_HeartPrizes
|
|
- [0xEEA0, data] # D_psp_09246520
|
|
- [0xEF40, data] # D_psp_092465C0
|
|
- [0xEF60, data] # D_psp_092465E0
|
|
- [0xEF70, data] # D_psp_092465F0
|
|
- [0xEF80, data] # D_psp_09246600
|
|
- [0xEF90, data] # D_psp_09246610
|
|
- [0xEFA0, data] # D_psp_09246620
|
|
- [0xEFB0, data] # D_psp_09246630
|
|
- [0xEFC0, data] # D_psp_09246640
|
|
- [0xEFD0, data] # D_psp_09246650
|
|
- [0xEFE0, data] # D_psp_09246660
|
|
- [0xF010, .data, wrp_psp/wrp_data_F010] # D_80180FF8
|
|
- [0xF020, .data, wrp_psp/wrp_data_F010] # D_80181008
|
|
- [0xF050, .data, wrp_psp/wrp_data_F010] # D_80181038
|
|
- [0xF060, data] # D_psp_092466E0
|
|
- [0xF390, data] # D_psp_09246A10
|
|
- [0xF3A0, data] # D_psp_09246A20
|
|
- [0xF440, data] # D_psp_09246AC0
|
|
- [0xF450, data] # D_psp_09246AD0
|
|
- [0xF460, data] # D_80181134
|
|
- [0xF700, data] # D_psp_09246D80
|
|
- [0xF720, data] # D_psp_09246DA0
|
|
- [0xF740, .data, wrp_psp/wrp_data_F740] # D_psp_09246DC0
|
|
- [0xF790, .data, wrp_psp/wrp_data_F7B0] # g_eRedDoorTiles
|
|
- [0xF7B0, .data, wrp_psp/wrp_data_F7B0] # D_psp_09246E30
|
|
- [0xF810, .data, wrp_psp/wrp_data_F810] # g_eBreakableInit
|
|
- [0xF820, .data, wrp_psp/wrp_data_F810] # g_InitializeData0
|
|
- [0xF830, .data, wrp_psp/wrp_data_F810] # g_InitializeEntityData0
|
|
- [0xF840, data] # D_psp_09246EC0
|
|
- [0xF850, data] # D_psp_09246ED0
|
|
- [0xF860, data] # D_80180488
|
|
- [0xF870, data] # g_eInitGeneric2
|
|
- [0xF880, data] # D_psp_09246F00
|
|
- [0xF890, data] # D_801804C4
|
|
- [0xF8A0, data] # D_psp_09246F20
|
|
- [0xF920, .data, wrp/e_breakable] # D_801805A8
|
|
- [0xF930, .data, wrp/e_breakable] # g_eBreakableAnimations
|
|
- [0xF950, .data, wrp/e_breakable] # g_eBreakableHitboxes
|
|
- [0xF970, data] # D_psp_09246FF0
|
|
- [0x10260, data] # D_psp_092478E0
|
|
- [0x102C0, data] # D_psp_09247940
|
|
- [0x104C0, data] # D_psp_09247B40
|
|
- [0x106C0, data] # D_psp_09247D40
|
|
- [0x108C0, data] # D_psp_09247F40
|
|
- [0x10AC0, data] # D_psp_09248140
|
|
- [0x10CC0, data] # D_psp_09248340
|
|
- [0x10EC0, data] # D_psp_09248540
|
|
- [0x10FC0, data] # D_psp_09248640
|
|
- [0x110C0, data] # D_psp_09248740
|
|
- [0x111C0, data] # D_psp_09248840
|
|
- [0x112C0, data] # D_psp_09248940
|
|
- [0x112D0, data] # D_psp_09248950
|
|
- [0x122D0, data] # D_psp_09249950
|
|
- [0x132D0, data] # D_psp_0924A950
|
|
- [0x142D0, data] # D_psp_0924B950
|
|
- [0x142E0, .data, wrp_psp/wrp_data_142E0] # D_psp_0924B960
|
|
- [0x14320, data] # D_psp_0924B9A0
|
|
- [0x14360, .data, wrp/st_debug] # D_80180528, D_80180538
|
|
- [0x14430, .data, wrp/warp] # EntityWarpRoom FntPrint strings
|
|
- [0x14480, .rodata, wrp/e_red_door]
|
|
- [0x14498, .rodata, wrp_psp/e_collect]
|
|
- [0x144D0, .rodata, wrp_psp/e_misc]
|
|
- [0x144F8, .rodata, wrp/warp]
|
|
- [0x14580, .bss, wrp_psp/bss]
|
|
- [0x14580]
|