sotn-decomp/config/splat.us.stnp3.yaml
Luciano Ciccariello 3649d507c1
Decompress image assets found in the stage files as PNGs (#1868)
Instead of outputting a `D_80123456.dec` from an extracted compressed
asset, now a PNG is written from the decompressed data from the
specified YAML entry. The asset tool will synchronize with splat to
retrieve the symbol names for graphics and palettes. The new splat
extension `cmpgfx` will also be able to detect unused graphics by
failing with a hint on how to tweak the YAML. That way I found some
unused placeholders under the name `stage_placeholder` and some kind of
beta graphics from the prologue stage.
2024-11-03 08:51:42 +00:00

194 lines
7.2 KiB
YAML

options:
platform: psx
basename: stnp3
base_path: ..
build_path: build/us
target_path: disks/us/ST/NP3/NP3.BIN
asm_path: asm/us/st/np3
asset_path: assets/st/np3
src_path: src/st/np3
ld_script_path: build/us/stnp3.ld
compiler: GCC
symbol_addrs_path:
- config/symbols.us.txt
- config/symbols.us.stnp3.txt
undefined_funcs_auto_path: config/undefined_funcs_auto.us.stnp3.txt
undefined_syms_auto_path: config/undefined_syms_auto.us.stnp3.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"
segments:
- name: stnp3
type: code
start: 0x00000000
vram: 0x80180000
align: 4
subalign: 4
subsegments:
- [0x0, .data, header]
- [0x8C, .data, header] # palette definitions
- [0x1D0, .data, header] # layers
- [0x558, .data, header] # graphics banks
- [0x728, .data, e_laydef] # layout entries header
- [0x8D0, .data, e_init]
- [0xD98, .data, st_debug]
- [0xE18, .data, e_breakable]
- [0xE78, .data, entrance_stage_entities]
- [0x122C, data]
- [0x1300, data]
- [0x14B4, .data, gaibon]
- [0x1618, data, d_prize_drops]
- [0x164C, .data, st_update]
- [0x1678, .data, collision]
- [0x1A38, .data, e_red_door]
- [0x1A50, .data, st_common]
- [0x1C50, .data, e_collect]
- [0x1F40, .data, e_misc] # EntityRelicOrb
- [0x205C, data]
- [0x22B0, data]
- [0x23D0, data]
- [0x2400, data]
- [0x2440, data]
- [0x2460, .data, e_bone_scimitar]
- [0x2554, .data, e_bat]
- [0x258C, data]
- [0x25D4, .data, e_bloody_zombie]
- [0x26CC, data]
- [0x2720, data]
- [0x2740, data]
- [0x2A20, data]
- [0x2B00, data]
- [0x3010, data]
- [0x33A0, data]
- [0x3530, data]
- [0x3570, data]
- [0x3580, data]
- [0x3720, data]
- [0x3760, data]
- [0x3A7C, .data, rooms]
- [0x3B68, .data, e_layout] # layout entries data
- [0x49E0, cmpgfx, stage_title_jp, 128, 128, 4]
- [0x4D24, cmpgfx, stage_placeholder, 128, 128, 4]
- [0x52C8, cmpgfx, e_skyswirl_g0, 128, 128, 4, 0x14C54] # unused
- [0x6434, cmpgfx, e_skyswirl_g1, 128, 128, 4, 0x14C54] # unused
- [0x773C, cmpgfx, e_merman_g0, 128, 128, 4, 0x15A94]
- [0x83DC, cmpgfx, e_merman_g1, 128, 128, 4, 0x15A94]
- [0x9018, cmpgfx, e_merman_g2, 128, 128, 4, 0x15A94]
- [0xA028, cmpgfx, e_merman_g3, 128, 128, 4, 0x15A94]
- [0xA92C, cmpgfx, e_slinger_g, 128, 128, 4, 0x16154]
- [0xB508, cmpgfx, e_ghost_bat_g, 128, 128, 4, 0x161B4]
- [0xBFCC, cmpgfx, e_zombie_g, 128, 128, 4, 0x16214]
- [0xC69C, cmpgfx, e_bloody_zombie_g, 128, 128, 4, 0x16274]
- [0xD354, cmpgfx, e_owlknight_g0, 128, 128, 4, 0x162D4]
- [0xE3D8, cmpgfx, e_owlknight_g1, 128, 128, 4, 0x162F4]
- [0xF250, cmpgfx, e_owlknight_g2, 128, 128, 4, 0x162F4]
- [0xFF68, cmpgfx, e_explosion_g, 128, 128, 4, 0x163B4]
- [0x10EE4, cmpgfx, e_slogra_g0, 128, 128, 4, 0x16674]
- [0x119D8, cmpgfx, e_slogra_g1, 128, 128, 4, 0x16674]
- [0x123C0, cmpgfx, e_slogra_g2, 128, 128, 4, 0x16674]
- [0x12C84, cmpgfx, e_gaibon_g0, 128, 128, 4, 0x166D4]
- [0x139F4, cmpgfx, e_gaibon_g1, 128, 128, 4, 0x166D4]
- [0x141B4, cmpgfx, e_gurkha_g, 128, 128, 4, 0x167D4]
- [0x14914, pal, e_skyswirl_p]
- [0x15A94, pal, e_merman_p]
- [0x15B54, pal, D_80195B54] # unused
- [0x15B74, pal, D_80195B74]
- [0x15BB4, pal, D_80195BB4]
- [0x15BF4, pal, D_80195BF4]
- [0x15C34, pal, D_80195C34]
- [0x15C74, pal, D_80195C74]
- [0x15CB4, pal, D_80195CB4]
- [0x15CF4, pal, D_80195CF4]
- [0x15D34, pal, D_80195D34]
- [0x15D74, pal, D_80195D74]
- [0x15DB4, pal, D_80195DB4]
- [0x15DF4, pal, D_80195DF4]
- [0x15E34, pal, D_80195E34]
- [0x15E74, pal, D_80195E74]
- [0x15EB4, pal, D_80195EB4]
- [0x15EF4, pal, D_80195EF4]
- [0x16154, pal, e_slinger_p]
- [0x161B4, pal, e_ghost_bat_p]
- [0x16214, pal, e_zombie_p]
- [0x16274, pal, e_bloody_zombie_p]
- [0x162D4, pal, e_owlknight_p]
- [0x163B4, pal, e_explosion_p]
- [0x165B4, pal, D_801965B4] # unused
- [0x16674, pal, e_slogra_p] # overlaps with D_801966D4
- [0x166D4, pal, e_gaibon_p]
- [0x167D4, pal, e_gurkha_p]
- [0x168F4, .data, tile_data] # tile data
- [0x21CF4, .data, tile_data] # tile definitions
- [0x2A124, .data, sprites]
- [0x31EA0, data]
- [0x31EA8, .rodata, entrance_stage_entities] # EntityStairwayPiece
- [0x31EBC, .rodata, e_explosion_puff_opaque] # EntityExplosionPuffOpaque
- [0x31ED0, .rodata, slogra] # EntitySlogra .rodata, 36990
- [0x31EDC, .rodata, gaibon] # EntityGaibon .rodata, 36990
- [0x31F00, .rodata, e_red_door] # EntityRedDoor
- [0x31F68, .rodata, e_collect]
- [0x31FA0, .rodata, e_misc] # EntityRelicOrb
- [0x31FD8, .rodata, e_misc] # EntityMessageBox
- [0x31FEC, .rodata, e_stage_name] # EntityStageNamePopup
- [0x32020, .rodata, e_merman2] # EntityMerman2
- [0x32044, .rodata, 48238] # EntityMerman
- [0x3206C, .rodata, e_bone_scimitar] # EntityBoneScimitar data
- [0x3208C, .rodata, e_bat] # EntityBat
- [0x320A0, .rodata, 49BC8] # EntityZombie
- [0x320B4, .rodata, e_bloody_zombie] # EntityBloodyZombie data
- [0x320DC, .rodata, 4B018] # Shared charal string for owl and owl knight
- [0x320EC, .rodata, 4B018] # EntityOwl
- [0x3214C, .rodata, 4B018] # EntityOwlKnight
- [0x321EC, .rodata, 4D540] # Strings
- [0x3224C, .rodata, 4E69C] # EntityHammer
- [0x322CC, .rodata, 4E69C] # EntityGurkhaBodyParts
- [0x322F8, .rodata, 4F5B8] # EntityGurkha
- [0x32380, .rodata, 4F5B8] # EntityGurkhaSword
- [0x323E4, .rodata, blade] # EntityBlade
- [0x32464, .rodata, prim_helpers]
- [0x3246C, c, st_debug]
- [0x326FC, c, e_breakable]
- [0x32830, c, entrance_stage_entities]
- [0x363FC, c, e_explosion_puff_opaque]
- [0x36990, c, slogra]
- [0x378BC, c, gaibon]
- [0x390BC, c, st_update]
- [0x394F0, c, collision]
- [0x3ACAC, c, create_entity]
- [0x3B824, c, e_red_door]
- [0x3C4D4, c, st_common]
- [0x3D984, c, e_collect]
- [0x3EEF0, c, blit_char]
- [0x3F1A0, c, e_misc]
- [0x42860, c, e_stage_name]
- [0x434E4, c, e_particles]
- [0x43D28, c, e_room_fg]
- [0x43E14, c, popup]
- [0x44144, c, player_water_effect]
- [0x44DCC, c, e_merman2] # Merman Entities
- [0x48238, c] # Merman Entities (2)
- [0x490E8, c, e_bone_scimitar] # EntityBoneScimitar
- [0x4997C, c, e_bat]
- [0x49BC8, c]
- [0x49F98, c, e_bloody_zombie] # EntityBloodyZombie
- [0x4B018, c]
- [0x4D540, c]
- [0x4E69C, c]
- [0x4F5B8, c]
- [0x50A00, c, blade]
- [0x51F38, c, prim_helpers]
- [0x52768, .bss, create_entity]
- [0x5277D, .bss, bss]
- [0x53378, .bss, 4D540]
- [0x533F4, .bss, e_collect]
- [0x53434]