mirror of
https://github.com/Xeeynamo/sotn-decomp.git
synced 2024-11-23 21:19:55 +00:00
5362c8b8da
Extract ST/WRP out of #1119 . All the function symbols should have been cross-referenced. There as some PSX functions missing from PSP and some new functions from PSP that are not present on PSX (e.g. `st_init_wrp.c`). The files `st_debug.c` and `e_breakable.c` are shared between WRP PSX and WRP PSP. Everything else from PSP is isolated into its own folder. I had to do some tricks on the YAML config to allow shared code. `ST_WRP_MERGE = st_debug e_breakable` in the `Makefile` is a bit annoying as MWCC complains about every single minute detail from the C source that has been already decompiled for the PSX US build. `EntityWarpSmallRocks` is matching on PSP but I couldn't extract the rodata without having a bunch of linker errors. This might be a Splat issue. I need to investigate further. `func_psp_09244760` is soooo interesting. The values from `0x11` to `0x17` matches the Entity IDs that are unique to the WRP overlay. This aligns to what we have in `typedef enum EntityIDs`. Overall I am very excited to the recent discoveries from the PSP build!
57 lines
3.0 KiB
Makefile
57 lines
3.0 KiB
Makefile
# configuration
|
|
PSX_OVLS := dra ric weapon
|
|
PSX_KSTAGES := cen dre mad no3 np3 nz0 sel st0 wrp
|
|
PSX_RSTAGES := rwrp
|
|
PSX_ALLSTAGES := $(addprefix st,$(PSX_KSTAGES)) $(addprefix st,$(PSX_RSTAGES))
|
|
PSX_SERVANTS := tt_000
|
|
PSX_US_TARGETS := main $(PSX_OVLS) $(PSX_ALLSTAGES) $(PSX_SERVANTS)
|
|
PSX_HD_TARGETS := dra tt_000
|
|
|
|
# immovable
|
|
PSX_BASE_SYMS := $(CONFIG_DIR)/symbols.$(VERSION).txt
|
|
|
|
extract_us: $(addprefix $(BUILD_DIR)/,$(addsuffix .ld,$(PSX_US_TARGETS)))
|
|
$(PNG2S) bdecode config/gfx.game.json disks/us assets/game
|
|
extract_hd: $(addprefix $(BUILD_DIR)/,$(addsuffix .ld,$(PSX_HD_TARGETS)))
|
|
|
|
extract_disk_us: extract_disk_psxus
|
|
extract_disk_hd: extract_disk_pspeu
|
|
extract_disk_psx%: $(SOTNDISK)
|
|
$(SOTNDISK) extract disks/sotn.$*.cue disks/$*
|
|
|
|
$(BUILD_DIR)/main.ld: $(CONFIG_DIR)/splat.$(VERSION).main.yaml $(SPLAT_APP)
|
|
$(SPLAT) $<
|
|
$(BUILD_DIR)/dra.ld: $(CONFIG_DIR)/splat.$(VERSION).dra.yaml $(PSX_BASE_SYMS) $(CONFIG_DIR)/symbols.$(VERSION).dra.txt $(SPLAT_APP)
|
|
$(SPLAT) $<
|
|
$(BUILD_DIR)/ric.ld: $(CONFIG_DIR)/splat.$(VERSION).ric.yaml $(PSX_BASE_SYMS) $(CONFIG_DIR)/symbols.$(VERSION).ric.txt $(SPLAT_APP)
|
|
$(SPLAT) $<
|
|
$(BUILD_DIR)/stmad.ld: $(CONFIG_DIR)/splat.$(VERSION).stmad.yaml $(CONFIG_DIR)/symbols.beta.txt $(CONFIG_DIR)/symbols.stmad.txt $(SPLAT_APP)
|
|
$(SPLAT) $<
|
|
$(GFXSTAGE) d disks/$(VERSION)/ST/MAD/F_MAD.BIN $(ASSETS_DIR)/st/mad
|
|
$(BUILD_DIR)/st%.ld: $(CONFIG_DIR)/splat.$(VERSION).st%.yaml $(PSX_BASE_SYMS) $(CONFIG_DIR)/symbols.$(VERSION).st%.txt $(SPLAT_APP)
|
|
$(SPLAT) $<
|
|
$(GFXSTAGE) d disks/$(VERSION)/ST/$$(echo '$*' | tr '[:lower:]' '[:upper:]')/F_$$(echo '$*' | tr '[:lower:]' '[:upper:]').BIN $(ASSETS_DIR)/st/$*
|
|
$(BUILD_DIR)/tt_%.ld: $(CONFIG_DIR)/splat.$(VERSION).tt_%.yaml $(PSX_BASE_SYMS) $(CONFIG_DIR)/symbols.$(VERSION).tt_%.txt $(SPLAT_APP)
|
|
$(SPLAT) $<
|
|
$(BUILD_DIR)/weapon.ld: $(CONFIG_DIR)/splat.$(VERSION).weapon.yaml $(PSX_BASE_SYMS) $(CONFIG_DIR)/symbols.$(VERSION).weapon.txt $(CONFIG_DIR)/symbols.$(VERSION).weapon.txt.in $(SPLAT_APP)
|
|
$(SPLAT) $<
|
|
|
|
$(BUILD_DIR)/assets/dra/memcard_%.png.o: assets/dra/memcard_%.png
|
|
mkdir -p $(dir $@)
|
|
$(PNG2S) encode $< \
|
|
$(BUILD_DIR)/assets/dra/memcard_$*.png.s g_saveIcon$* \
|
|
$(BUILD_DIR)/assets/dra/memcard_$*.pal.s g_saveIconPal$*
|
|
$(AS) $(AS_FLAGS) -o $(BUILD_DIR)/assets/dra/memcard_$*.png.o $(BUILD_DIR)/assets/dra/memcard_$*.png.s
|
|
rm $(BUILD_DIR)/assets/dra/memcard_$*.png.s
|
|
$(AS) $(AS_FLAGS) -o $(BUILD_DIR)/assets/dra/memcard_$*.pal.o $(BUILD_DIR)/assets/dra/memcard_$*.pal.s
|
|
rm $(BUILD_DIR)/assets/dra/memcard_$*.pal.s
|
|
$(BUILD_DIR)/assets/st/sel/memcard_%.png.o: assets/st/sel/memcard_%.png
|
|
mkdir -p $(dir $@)
|
|
$(PNG2S) encode $< \
|
|
$(BUILD_DIR)/assets/st/sel/memcard_$*.png.s g_saveIcon$* \
|
|
$(BUILD_DIR)/assets/st/sel/memcard_$*.pal.s g_saveIconPal$*
|
|
$(AS) $(AS_FLAGS) -o $(BUILD_DIR)/assets/st/sel/memcard_$*.png.o $(BUILD_DIR)/assets/st/sel/memcard_$*.png.s
|
|
rm $(BUILD_DIR)/assets/st/sel/memcard_$*.png.s
|
|
$(AS) $(AS_FLAGS) -o $(BUILD_DIR)/assets/st/sel/memcard_$*.pal.o $(BUILD_DIR)/assets/st/sel/memcard_$*.pal.s
|
|
rm $(BUILD_DIR)/assets/st/sel/memcard_$*.pal.s
|