sotn-decomp/config/splat.us.stno3.yaml
Luciano Ciccariello 5a447796d6
Asset handler for palette definition in the header (#1852)
Automates the extraction of `u_long** OVL_EXPORT(cluts)[]` in `assets/`
at extraction time and its code generation in
`src/[boss|st]/palette_def.h`.

This has the advantage that now palettes can be loaded and modified
externally, change in size and external tools has now context on the
palette order and where in the VRAM they are located. This also
simplifies `header.c`, getting rid of the whole `PAL_BULK` section.
Creating headers for stages and boss rooms will get progressively
simpler.

The tool is pickier on the size of exported palettes. This allowed me to
find gaps of data for potential unused palette data. I marked them in
the NZ0 YAML.

If there are no concerns and I get an approval, I will extend
`config/assets.us.yaml` to the remaining overlays.
2024-10-31 21:06:06 +00:00

170 lines
5.7 KiB
YAML

options:
platform: psx
basename: stno3
base_path: ..
build_path: build/us
target_path: disks/us/ST/NO3/NO3.BIN
asm_path: asm/us/st/no3
asset_path: assets/st/no3
src_path: src/st/no3
ld_script_path: build/us/stno3.ld
compiler: GCC
symbol_addrs_path:
- config/symbols.us.txt
- config/symbols.us.stno3.txt
undefined_funcs_auto_path: config/undefined_funcs_auto.us.stno3.txt
undefined_syms_auto_path: config/undefined_syms_auto.us.stno3.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: 5d06216b895ab5ff892c88b0d9eff67ff16e2bd1
segments:
- name: stno3
type: code
start: 0x00000000
vram: 0x80180000
align: 4
subalign: 4
subsegments:
- [0x0, .data, header]
- [0x1C4, .data, header] # layers
- [0x5A4, .data, header] # GfxBanks
- [0x77C, .data, e_laydef] # layout entries header
- [0x924, .data, e_init]
- [0xAAC, data]
- [0xDC0, .data, 377D4]
- [0xDD0, .data, 377D4]
- [0xE50, data]
- [0xE70, data]
- [0xE80, data]
- [0xE90, data]
- [0xEA0, .data, entrance_stage_entities]
- [0x13A8, data]
- [0x1ACC, .data, cutscene]
- [0x1AD4, data]
- [0x1B40, data]
- [0x1C8C, .data, d_prize_drops]
- [0x1CC0, .data, st_update]
- [0x1CEC, .data, collision]
- [0x20AC, .data, e_red_door]
- [0x20C4, .data, st_common]
- [0x22C4, .data, e_collect]
- [0x25B4, .data, e_misc]
- [0x26D0, data]
- [0x3180, data]
- [0x3870, data]
- [0x39A0, data]
- [0x3AC0, data]
- [0x3AF0, data]
- [0x3B30, data]
- [0x3B50, .data, e_bone_scimitar]
- [0x3C44, .data, e_bat]
- [0x3C7C, data]
- [0x3CC4, .data, rooms]
- [0x3DC8, .data, e_layout] # layout entries data
- [0x4CE0, .data, cutscene_data]
- [0x4E60, data]
- [0x11B88, raw, cutscene_alucard]
- [0x12908, raw, cutscene_death]
- [0x13688, data]
- [0x166B8, pal, D_801966B8]
- [0x17838, pal, D_80197838]
- [0x178F8, pal, D_801978F8] # unused
- [0x17918, pal, D_80197918]
- [0x17958, pal, D_80197958]
- [0x17998, pal, D_80197998]
- [0x179D8, pal, D_801979D8]
- [0x17A18, pal, D_80197A18]
- [0x17A58, pal, D_80197A58]
- [0x17A98, pal, D_80197A98]
- [0x17AD8, pal, D_80197AD8]
- [0x17B18, pal, D_80197B18]
- [0x17B58, pal, D_80197B58]
- [0x17B98, pal, D_80197B98]
- [0x17BD8, pal, D_80197BD8]
- [0x17C18, pal, D_80197C18]
- [0x17C58, pal, D_80197C58]
- [0x17C98, pal, D_80197C98]
- [0x17EF8, pal, D_80197EF8]
- [0x17F58, pal, D_80197F58]
- [0x17FB8, pal, D_80197FB8]
- [0x180B8, pal, D_801980B8]
- [0x18118, pal, D_80198118]
- [0x18218, pal, D_80198218] # unused
- [0x18318, pal, D_80198318]
- [0x18418, pal, D_80198418] # unused
- [0x18518, pal, D_80198518]
- [0x18578, pal, D_80198578]
- [0x18778, pal, D_80198778] # unused
- [0x18838, .data, tile_data] # tile data
- [0x26638, .data, tile_data] # tile definitions
- [0x2EA68, .data, sprites]
- [0x373E0, data]
- [0x373E8, .rodata, entrance_stage_entities] # EntityCastleDoor
- [0x37400, .rodata, entrance_stage_entities] # EntityStairwayPiece
- [0x37414, .rodata, 3C4EC]
- [0x3742C, .rodata, 3E134] #EntityFlyingOwlAndLeaves
- [0x37440, .rodata, cutscene] # actor names
- [0x37458, .rodata, cutscene] # NO3_EntityCutscene
- [0x374DC, .rodata, 3FF00] # EntityRoomTransition2
- [0x374F4, .rodata, 3FF00] # EntityDeathStolenItems
- [0x37514, .rodata, 3FF00] # EntityDeath
- [0x37564, .rodata, e_explosion_puff_opaque] # EntityExplosionPuffOpaque
- [0x37578, .rodata, e_red_door] # EntityRedDoor
- [0x37590, .rodata, e_collect] # CollectGold text
- [0x375E0, .rodata, e_collect] # EntityPrizeDrop
- [0x37600, .rodata, e_collect] # EntityEquipItemDrop
- [0x37618, .rodata, e_misc]
- [0x37650, .rodata, e_misc]
- [0x37664, .rodata, 4AFF0] # EntityStageNamePopup
- [0x37698, .rodata, e_fire_warg] # EntityFireWarg
- [0x376D0, .rodata, e_fire_warg] # EntityFireWargWaveAttack
- [0x376E8, .rodata, e_fire_warg] # EntityUnkId2F
- [0x376FC, .rodata, 4F58C] # EntityWarg RECT
- [0x37704, .rodata, 4F58C] # EntityWarg
- [0x37738, .rodata, e_merman2]
- [0x3775C, .rodata, 53F38]
- [0x37784, .rodata, e_bone_scimitar]
- [0x377A4, .rodata, e_bat] # EntityBat
- [0x377B8, .rodata, 564B0] # EntityZombie
- [0x377CC, .rodata, prim_helpers]
- [0x377D4, c]
- [0x37A64, c, e_breakable]
- [0x37B98, c, entrance_stage_entities]
- [0x3C4EC, c]
- [0x3E134, c]
- [0x3E544, c, cutscene]
- [0x3FF00, c]
- [0x413F8, c, e_explosion_puff_opaque]
- [0x4184C, c, st_update]
- [0x41C80, c, collision]
- [0x4343C, c, create_entity]
- [0x43FB4, c, e_red_door]
- [0x44C64, c, st_common]
- [0x45BC0, c, e_collect]
- [0x47680, c, blit_char]
- [0x47930, c, e_misc]
- [0x4AFF0, c]
- [0x4C5A4, c, e_fire_warg]
- [0x4F58C, c]
- [0x50A2C, c, player_water_effect]
- [0x516B4, c, e_merman2]
- [0x53F38, c]
- [0x559d0, c, e_bone_scimitar]
- [0x56264, c, e_bat]
- [0x564B0, c]
- [0x56880, c, prim_helpers]
- [0x570B0, .bss, create_entity]
- [0x57120, .bss, bss]
- [0x57DD8, .bss, e_collect]
- [0x57E18]