diff --git a/.gitignore b/.gitignore index fd633e86f..1c08c6f23 100644 --- a/.gitignore +++ b/.gitignore @@ -102,6 +102,7 @@ build/* # libultra +!/lib/**/*.o !/lib/*.a lib/libs2d_engine.a !/lib/gcclib/*.a diff --git a/Makefile b/Makefile index e1a22482d..0f739a5a4 100644 --- a/Makefile +++ b/Makefile @@ -498,7 +498,7 @@ libultra: $(BUILD_DIR)/libultra.a $(BUILD_DIR)/asm/boot.o: $(IPL3_RAW_FILES) $(BUILD_DIR)/src/game/crash_screen.o: $(CRASH_TEXTURE_C_FILES) $(BUILD_DIR)/src/game/version.o: $(BUILD_DIR)/src/game/version_data.h -$(BUILD_DIR)/lib/rsp.o: $(BUILD_DIR)/rsp/rspboot.bin $(BUILD_DIR)/rsp/audio.bin +$(BUILD_DIR)/lib/aspMain.o: $(BUILD_DIR)/rsp/audio.bin $(SOUND_BIN_DIR)/sound_data.o: $(SOUND_BIN_DIR)/sound_data.ctl $(SOUND_BIN_DIR)/sound_data.tbl $(SOUND_BIN_DIR)/sequences.bin $(SOUND_BIN_DIR)/bank_sets $(BUILD_DIR)/levels/scripts.o: $(BUILD_DIR)/include/level_headers.h diff --git a/lib/PR/audio/n_aspMain.bin b/lib/PR/audio/n_aspMain.o old mode 100644 new mode 100755 similarity index 56% rename from lib/PR/audio/n_aspMain.bin rename to lib/PR/audio/n_aspMain.o index 397ecec4b..fa99b1b1a Binary files a/lib/PR/audio/n_aspMain.bin and b/lib/PR/audio/n_aspMain.o differ diff --git a/lib/PR/audio/n_aspMain_data.bin b/lib/PR/audio/n_aspMain_data.bin deleted file mode 100644 index 66d1cab9d..000000000 Binary files a/lib/PR/audio/n_aspMain_data.bin and /dev/null differ diff --git a/lib/PR/f3dex/fifo/F3DEX_NoN_data.bin b/lib/PR/f3dex/fifo/F3DEX_NoN_data.bin deleted file mode 100644 index e1570d983..000000000 Binary files a/lib/PR/f3dex/fifo/F3DEX_NoN_data.bin and /dev/null differ diff --git a/lib/PR/f3dex/fifo/F3DEX_data.bin b/lib/PR/f3dex/fifo/F3DEX_data.bin deleted file mode 100644 index 212139c88..000000000 Binary files a/lib/PR/f3dex/fifo/F3DEX_data.bin and /dev/null differ diff --git a/lib/PR/f3dex/fifo/F3DLP_Rej_data.bin b/lib/PR/f3dex/fifo/F3DLP_Rej_data.bin deleted file mode 100644 index 51ecae0b6..000000000 Binary files a/lib/PR/f3dex/fifo/F3DLP_Rej_data.bin and /dev/null differ diff --git a/lib/PR/f3dex/fifo/F3DLX_NoN_data.bin b/lib/PR/f3dex/fifo/F3DLX_NoN_data.bin deleted file mode 100644 index 722968dad..000000000 Binary files a/lib/PR/f3dex/fifo/F3DLX_NoN_data.bin and /dev/null differ diff --git a/lib/PR/f3dex/fifo/F3DLX_Rej_data.bin b/lib/PR/f3dex/fifo/F3DLX_Rej_data.bin deleted file mode 100644 index fd66da740..000000000 Binary files a/lib/PR/f3dex/fifo/F3DLX_Rej_data.bin and /dev/null differ diff --git a/lib/PR/f3dex/fifo/F3DLX_data.bin b/lib/PR/f3dex/fifo/F3DLX_data.bin deleted file mode 100644 index 5a2ea93be..000000000 Binary files a/lib/PR/f3dex/fifo/F3DLX_data.bin and /dev/null differ diff --git a/lib/PR/f3dex/fifo/L3DEX_data.bin b/lib/PR/f3dex/fifo/L3DEX_data.bin deleted file mode 100644 index 1b9ca5c6b..000000000 Binary files a/lib/PR/f3dex/fifo/L3DEX_data.bin and /dev/null differ diff --git a/lib/PR/f3dex/fifo/F3DEX_NoN.bin b/lib/PR/f3dex/fifo/gspF3DEX.NoN.fifo.o similarity index 65% rename from lib/PR/f3dex/fifo/F3DEX_NoN.bin rename to lib/PR/f3dex/fifo/gspF3DEX.NoN.fifo.o index a55a33b05..a46e9cc8d 100644 Binary files a/lib/PR/f3dex/fifo/F3DEX_NoN.bin and b/lib/PR/f3dex/fifo/gspF3DEX.NoN.fifo.o differ diff --git a/lib/PR/f3dex/fifo/F3DEX.bin b/lib/PR/f3dex/fifo/gspF3DEX.fifo.o similarity index 65% rename from lib/PR/f3dex/fifo/F3DEX.bin rename to lib/PR/f3dex/fifo/gspF3DEX.fifo.o index 8308862ca..4f20d8136 100644 Binary files a/lib/PR/f3dex/fifo/F3DEX.bin and b/lib/PR/f3dex/fifo/gspF3DEX.fifo.o differ diff --git a/lib/PR/f3dex/fifo/F3DLP_Rej.bin b/lib/PR/f3dex/fifo/gspF3DLP.Rej.fifo.o similarity index 64% rename from lib/PR/f3dex/fifo/F3DLP_Rej.bin rename to lib/PR/f3dex/fifo/gspF3DLP.Rej.fifo.o index 9c6235a89..9eb741cde 100644 Binary files a/lib/PR/f3dex/fifo/F3DLP_Rej.bin and b/lib/PR/f3dex/fifo/gspF3DLP.Rej.fifo.o differ diff --git a/lib/PR/f3dex/fifo/F3DLX_NoN.bin b/lib/PR/f3dex/fifo/gspF3DLX.NoN.fifo.o similarity index 65% rename from lib/PR/f3dex/fifo/F3DLX_NoN.bin rename to lib/PR/f3dex/fifo/gspF3DLX.NoN.fifo.o index 6c9814ac7..706aaae42 100644 Binary files a/lib/PR/f3dex/fifo/F3DLX_NoN.bin and b/lib/PR/f3dex/fifo/gspF3DLX.NoN.fifo.o differ diff --git a/lib/PR/f3dex/fifo/F3DLX_Rej.bin b/lib/PR/f3dex/fifo/gspF3DLX.Rej.fifo.o similarity index 64% rename from lib/PR/f3dex/fifo/F3DLX_Rej.bin rename to lib/PR/f3dex/fifo/gspF3DLX.Rej.fifo.o index fad03ca50..057e70544 100644 Binary files a/lib/PR/f3dex/fifo/F3DLX_Rej.bin and b/lib/PR/f3dex/fifo/gspF3DLX.Rej.fifo.o differ diff --git a/lib/PR/f3dex/fifo/F3DLX.bin b/lib/PR/f3dex/fifo/gspF3DLX.fifo.o similarity index 65% rename from lib/PR/f3dex/fifo/F3DLX.bin rename to lib/PR/f3dex/fifo/gspF3DLX.fifo.o index e94f2de61..a1e4f04ad 100644 Binary files a/lib/PR/f3dex/fifo/F3DLX.bin and b/lib/PR/f3dex/fifo/gspF3DLX.fifo.o differ diff --git a/lib/PR/f3dex/fifo/L3DEX.bin b/lib/PR/f3dex/fifo/gspL3DEX.fifo.o similarity index 59% rename from lib/PR/f3dex/fifo/L3DEX.bin rename to lib/PR/f3dex/fifo/gspL3DEX.fifo.o index 7b84fb77c..5331c34fd 100644 Binary files a/lib/PR/f3dex/fifo/L3DEX.bin and b/lib/PR/f3dex/fifo/gspL3DEX.fifo.o differ diff --git a/lib/PR/f3dex2/fifo/F3DEX2_NoN_data.bin b/lib/PR/f3dex2/fifo/F3DEX2_NoN_data.bin deleted file mode 100644 index ac47c4394..000000000 Binary files a/lib/PR/f3dex2/fifo/F3DEX2_NoN_data.bin and /dev/null differ diff --git a/lib/PR/f3dex2/fifo/F3DEX2_Rej_data.bin b/lib/PR/f3dex2/fifo/F3DEX2_Rej_data.bin deleted file mode 100644 index 4211afd49..000000000 Binary files a/lib/PR/f3dex2/fifo/F3DEX2_Rej_data.bin and /dev/null differ diff --git a/lib/PR/f3dex2/fifo/F3DEX2_data.bin b/lib/PR/f3dex2/fifo/F3DEX2_data.bin deleted file mode 100644 index 70871391f..000000000 Binary files a/lib/PR/f3dex2/fifo/F3DEX2_data.bin and /dev/null differ diff --git a/lib/PR/f3dex2/fifo/F3DLX2_Rej_data.bin b/lib/PR/f3dex2/fifo/F3DLX2_Rej_data.bin deleted file mode 100644 index 57d0ccacc..000000000 Binary files a/lib/PR/f3dex2/fifo/F3DLX2_Rej_data.bin and /dev/null differ diff --git a/lib/PR/f3dex2/fifo/L3DEX2_data.bin b/lib/PR/f3dex2/fifo/L3DEX2_data.bin deleted file mode 100644 index b052da6d1..000000000 Binary files a/lib/PR/f3dex2/fifo/L3DEX2_data.bin and /dev/null differ diff --git a/lib/PR/f3dex2/fifo/F3DEX2_NoN.bin b/lib/PR/f3dex2/fifo/gspF3DEX2.NoN.fifo.o similarity index 62% rename from lib/PR/f3dex2/fifo/F3DEX2_NoN.bin rename to lib/PR/f3dex2/fifo/gspF3DEX2.NoN.fifo.o index e9a3b4cb2..145c19f46 100644 Binary files a/lib/PR/f3dex2/fifo/F3DEX2_NoN.bin and b/lib/PR/f3dex2/fifo/gspF3DEX2.NoN.fifo.o differ diff --git a/lib/PR/f3dex2/fifo/F3DEX2_Rej.bin b/lib/PR/f3dex2/fifo/gspF3DEX2.Rej.fifo.o similarity index 62% rename from lib/PR/f3dex2/fifo/F3DEX2_Rej.bin rename to lib/PR/f3dex2/fifo/gspF3DEX2.Rej.fifo.o index d752acf33..b9d2e5781 100644 Binary files a/lib/PR/f3dex2/fifo/F3DEX2_Rej.bin and b/lib/PR/f3dex2/fifo/gspF3DEX2.Rej.fifo.o differ diff --git a/lib/PR/f3dex2/fifo/F3DEX2.bin b/lib/PR/f3dex2/fifo/gspF3DEX2.fifo.o similarity index 62% rename from lib/PR/f3dex2/fifo/F3DEX2.bin rename to lib/PR/f3dex2/fifo/gspF3DEX2.fifo.o index 713756943..9e8544124 100644 Binary files a/lib/PR/f3dex2/fifo/F3DEX2.bin and b/lib/PR/f3dex2/fifo/gspF3DEX2.fifo.o differ diff --git a/lib/PR/f3dex2/fifo/F3DLX2_Rej.bin b/lib/PR/f3dex2/fifo/gspF3DLX2.Rej.fifo.o similarity index 62% rename from lib/PR/f3dex2/fifo/F3DLX2_Rej.bin rename to lib/PR/f3dex2/fifo/gspF3DLX2.Rej.fifo.o index 559bbb615..f503e3206 100644 Binary files a/lib/PR/f3dex2/fifo/F3DLX2_Rej.bin and b/lib/PR/f3dex2/fifo/gspF3DLX2.Rej.fifo.o differ diff --git a/lib/PR/f3dex2/fifo/L3DEX2.bin b/lib/PR/f3dex2/fifo/gspL3DEX2.fifo.o similarity index 73% rename from lib/PR/f3dex2/fifo/L3DEX2.bin rename to lib/PR/f3dex2/fifo/gspL3DEX2.fifo.o index c24e9616e..6bddfda0b 100644 Binary files a/lib/PR/f3dex2/fifo/L3DEX2.bin and b/lib/PR/f3dex2/fifo/gspL3DEX2.fifo.o differ diff --git a/lib/PR/f3dex2/xbus/F3DEX2_NoN_data.bin b/lib/PR/f3dex2/xbus/F3DEX2_NoN_data.bin deleted file mode 100644 index 8b768268b..000000000 Binary files a/lib/PR/f3dex2/xbus/F3DEX2_NoN_data.bin and /dev/null differ diff --git a/lib/PR/f3dex2/xbus/F3DEX2_Rej_data.bin b/lib/PR/f3dex2/xbus/F3DEX2_Rej_data.bin deleted file mode 100644 index a01f1e398..000000000 Binary files a/lib/PR/f3dex2/xbus/F3DEX2_Rej_data.bin and /dev/null differ diff --git a/lib/PR/f3dex2/xbus/F3DEX2_data.bin b/lib/PR/f3dex2/xbus/F3DEX2_data.bin deleted file mode 100644 index 6fe38bc6e..000000000 Binary files a/lib/PR/f3dex2/xbus/F3DEX2_data.bin and /dev/null differ diff --git a/lib/PR/f3dex2/xbus/F3DLX2_Rej_data.bin b/lib/PR/f3dex2/xbus/F3DLX2_Rej_data.bin deleted file mode 100644 index cfced4018..000000000 Binary files a/lib/PR/f3dex2/xbus/F3DLX2_Rej_data.bin and /dev/null differ diff --git a/lib/PR/f3dex2/xbus/L3DEX2_data.bin b/lib/PR/f3dex2/xbus/L3DEX2_data.bin deleted file mode 100644 index 5dbf92ab1..000000000 Binary files a/lib/PR/f3dex2/xbus/L3DEX2_data.bin and /dev/null differ diff --git a/lib/PR/f3dex2/xbus/F3DEX2_NoN.bin b/lib/PR/f3dex2/xbus/gspF3DEX2.NoN.xbus.o similarity index 67% rename from lib/PR/f3dex2/xbus/F3DEX2_NoN.bin rename to lib/PR/f3dex2/xbus/gspF3DEX2.NoN.xbus.o index cda2826b9..d9cf4e0a7 100644 Binary files a/lib/PR/f3dex2/xbus/F3DEX2_NoN.bin and b/lib/PR/f3dex2/xbus/gspF3DEX2.NoN.xbus.o differ diff --git a/lib/PR/f3dex2/xbus/F3DEX2_Rej.bin b/lib/PR/f3dex2/xbus/gspF3DEX2.Rej.xbus.o similarity index 65% rename from lib/PR/f3dex2/xbus/F3DEX2_Rej.bin rename to lib/PR/f3dex2/xbus/gspF3DEX2.Rej.xbus.o index 27ebaf735..d5f12989f 100644 Binary files a/lib/PR/f3dex2/xbus/F3DEX2_Rej.bin and b/lib/PR/f3dex2/xbus/gspF3DEX2.Rej.xbus.o differ diff --git a/lib/PR/f3dex2/xbus/F3DEX2.bin b/lib/PR/f3dex2/xbus/gspF3DEX2.xbus.o old mode 100644 new mode 100755 similarity index 68% rename from lib/PR/f3dex2/xbus/F3DEX2.bin rename to lib/PR/f3dex2/xbus/gspF3DEX2.xbus.o index 40147d96e..02f0f9e51 Binary files a/lib/PR/f3dex2/xbus/F3DEX2.bin and b/lib/PR/f3dex2/xbus/gspF3DEX2.xbus.o differ diff --git a/lib/PR/f3dex2/xbus/F3DLX2_Rej.bin b/lib/PR/f3dex2/xbus/gspF3DLX2.Rej.xbus.o similarity index 65% rename from lib/PR/f3dex2/xbus/F3DLX2_Rej.bin rename to lib/PR/f3dex2/xbus/gspF3DLX2.Rej.xbus.o index de0fc6c07..a0ec10045 100644 Binary files a/lib/PR/f3dex2/xbus/F3DLX2_Rej.bin and b/lib/PR/f3dex2/xbus/gspF3DLX2.Rej.xbus.o differ diff --git a/lib/PR/f3dex2/xbus/L3DEX2.bin b/lib/PR/f3dex2/xbus/gspL3DEX2.xbus.o similarity index 73% rename from lib/PR/f3dex2/xbus/L3DEX2.bin rename to lib/PR/f3dex2/xbus/gspL3DEX2.xbus.o index b3d7b8864..f2cfb659e 100644 Binary files a/lib/PR/f3dex2/xbus/L3DEX2.bin and b/lib/PR/f3dex2/xbus/gspL3DEX2.xbus.o differ diff --git a/lib/PR/s2dex/fifo/S2DEX_data.bin b/lib/PR/s2dex/fifo/S2DEX_data.bin deleted file mode 100644 index 8d807f513..000000000 Binary files a/lib/PR/s2dex/fifo/S2DEX_data.bin and /dev/null differ diff --git a/lib/PR/s2dex/fifo/S2DEX.bin b/lib/PR/s2dex/fifo/gspS2DEX.fifo.o similarity index 72% rename from lib/PR/s2dex/fifo/S2DEX.bin rename to lib/PR/s2dex/fifo/gspS2DEX.fifo.o index 72b5be525..bc6a8226e 100644 Binary files a/lib/PR/s2dex/fifo/S2DEX.bin and b/lib/PR/s2dex/fifo/gspS2DEX.fifo.o differ diff --git a/lib/PR/s2dex/fifo_d/S2DEX_data.bin b/lib/PR/s2dex/fifo_d/S2DEX_data.bin deleted file mode 100644 index 828a5f3cb..000000000 Binary files a/lib/PR/s2dex/fifo_d/S2DEX_data.bin and /dev/null differ diff --git a/lib/PR/s2dex/fifo_d/S2DEX.bin b/lib/PR/s2dex/fifo_d/gspS2DEX.fifo_d.o similarity index 70% rename from lib/PR/s2dex/fifo_d/S2DEX.bin rename to lib/PR/s2dex/fifo_d/gspS2DEX.fifo_d.o index 1551d9858..8270befbd 100644 Binary files a/lib/PR/s2dex/fifo_d/S2DEX.bin and b/lib/PR/s2dex/fifo_d/gspS2DEX.fifo_d.o differ diff --git a/lib/PR/s2dex2/fifo/S2DEX2_data.bin b/lib/PR/s2dex2/fifo/S2DEX2_data.bin deleted file mode 100644 index 95dde46a7..000000000 Binary files a/lib/PR/s2dex2/fifo/S2DEX2_data.bin and /dev/null differ diff --git a/lib/PR/s2dex2/fifo/S2DEX2d_data.bin b/lib/PR/s2dex2/fifo/S2DEX2d_data.bin deleted file mode 100644 index 81278d91b..000000000 Binary files a/lib/PR/s2dex2/fifo/S2DEX2d_data.bin and /dev/null differ diff --git a/lib/PR/s2dex2/fifo/S2DEX2.bin b/lib/PR/s2dex2/fifo/gspS2DEX2.fifo.o similarity index 75% rename from lib/PR/s2dex2/fifo/S2DEX2.bin rename to lib/PR/s2dex2/fifo/gspS2DEX2.fifo.o index d535e14f5..557f37305 100644 Binary files a/lib/PR/s2dex2/fifo/S2DEX2.bin and b/lib/PR/s2dex2/fifo/gspS2DEX2.fifo.o differ diff --git a/lib/PR/s2dex2/fifo/S2DEX2d.bin b/lib/PR/s2dex2/fifo/gspS2DEX2d.fifo.o similarity index 75% rename from lib/PR/s2dex2/fifo/S2DEX2d.bin rename to lib/PR/s2dex2/fifo/gspS2DEX2d.fifo.o index a4b9d4c04..83e59330c 100644 Binary files a/lib/PR/s2dex2/fifo/S2DEX2d.bin and b/lib/PR/s2dex2/fifo/gspS2DEX2d.fifo.o differ diff --git a/lib/PR/s2dex2/xbus/S2DEX2_data.bin b/lib/PR/s2dex2/xbus/S2DEX2_data.bin deleted file mode 100644 index 44621abaa..000000000 Binary files a/lib/PR/s2dex2/xbus/S2DEX2_data.bin and /dev/null differ diff --git a/lib/PR/s2dex2/xbus/S2DEX2d_data.bin b/lib/PR/s2dex2/xbus/S2DEX2d_data.bin deleted file mode 100644 index e452992ec..000000000 Binary files a/lib/PR/s2dex2/xbus/S2DEX2d_data.bin and /dev/null differ diff --git a/lib/PR/s2dex2/xbus/S2DEX2.bin b/lib/PR/s2dex2/xbus/gspS2DEX2.xbus.o similarity index 75% rename from lib/PR/s2dex2/xbus/S2DEX2.bin rename to lib/PR/s2dex2/xbus/gspS2DEX2.xbus.o index dc107d35c..8e4a3326c 100644 Binary files a/lib/PR/s2dex2/xbus/S2DEX2.bin and b/lib/PR/s2dex2/xbus/gspS2DEX2.xbus.o differ diff --git a/lib/PR/s2dex2/xbus/S2DEX2d.bin b/lib/PR/s2dex2/xbus/gspS2DEX2d.xbus.o similarity index 75% rename from lib/PR/s2dex2/xbus/S2DEX2d.bin rename to lib/PR/s2dex2/xbus/gspS2DEX2d.xbus.o index 880804a5b..79bd44489 100644 Binary files a/lib/PR/s2dex2/xbus/S2DEX2d.bin and b/lib/PR/s2dex2/xbus/gspS2DEX2d.xbus.o differ diff --git a/lib/PR/super3d/fifo/Super3D.bin b/lib/PR/super3d/fifo/Super3D.bin deleted file mode 100644 index 54921e02f..000000000 Binary files a/lib/PR/super3d/fifo/Super3D.bin and /dev/null differ diff --git a/lib/PR/super3d/fifo/Super3D_data.bin b/lib/PR/super3d/fifo/Super3D_data.bin deleted file mode 100644 index 02f1a96a3..000000000 Binary files a/lib/PR/super3d/fifo/Super3D_data.bin and /dev/null differ diff --git a/lib/PR/super3d/fifo/gspSuper3D.o b/lib/PR/super3d/fifo/gspSuper3D.o new file mode 100755 index 000000000..c082a5d9a Binary files /dev/null and b/lib/PR/super3d/fifo/gspSuper3D.o differ diff --git a/lib/aspMain.s b/lib/aspMain.s new file mode 100644 index 000000000..7a3f11092 --- /dev/null +++ b/lib/aspMain.s @@ -0,0 +1,36 @@ +#include "macros.inc" +.set UCODE_SIZE, 0x800 + +.section .text + + +/* Audio Bins */ + +/* + * "What the heck is this?" + * Shindou is the only version to actually edit the audio microcode, so I had to do this sorry lol + */ + +.balign 16 +glabel aspMainTextStart +#if VERSION_SH == 1 + .incbin "rsp/audio.bin" +#else + .incbin "lib/PR/audio/aspMain.bin" +#endif +glabel aspMainTextEnd + +/* DATA SECTION START */ + +.section .data + +/* Audio Data */ + +.balign 16 +glabel aspMainDataStart +#if VERSION_SH == 1 + .incbin "rsp/audio_data.bin" +#else + .incbin "lib/PR/audio/aspMain_data.bin" +#endif +glabel aspMainDataEnd diff --git a/lib/gspF3DEX2_PosLight.fifo.s b/lib/gspF3DEX2_PosLight.fifo.s new file mode 100644 index 000000000..5d1db5cc1 --- /dev/null +++ b/lib/gspF3DEX2_PosLight.fifo.s @@ -0,0 +1,18 @@ +#include "macros.inc" +.set UCODE_SIZE, 0x800 + +.section .text + +.balign 16 +glabel gspF3DEX2_PosLight_fifoTextStart + .incbin "lib/PR/f3dex2pl/fifo/F3DEX2_PosLight.bin" +glabel gspF3DEX2_PosLight_fifoTextEnd + +/* DATA SECTION START */ + +.section .data + +.balign 16 +glabel gspF3DEX2_PosLight_fifoDataStart + .incbin "lib/PR/f3dex2pl/fifo/F3DEX2_PosLight_data.bin" +glabel gspF3DEX2_PosLight_fifoDataEnd diff --git a/lib/gspF3DZEX2.NoN_PosLight.fifo.s b/lib/gspF3DZEX2.NoN_PosLight.fifo.s new file mode 100644 index 000000000..55585c12c --- /dev/null +++ b/lib/gspF3DZEX2.NoN_PosLight.fifo.s @@ -0,0 +1,18 @@ +#include "macros.inc" +.set UCODE_SIZE, 0x800 + +.section .text + +.balign 16 +glabel gspF3DZEX2_NoN_PosLight_fifoTextStart + .incbin "lib/PR/f3dzex/fifo/F3DZEX_NoN.bin" +glabel gspF3DZEX2_NoN_PosLight_fifoTextEnd + +/* DATA SECTION START */ + +.section .data + +.balign 16 +glabel gspF3DZEX2_NoN_PosLight_fifoDataStart + .incbin "lib/PR/f3dzex/fifo/F3DZEX_NoN_data.bin" +glabel gspF3DZEX2_NoN_PosLight_fifoDataEnd diff --git a/lib/gspF3DZEX2_PosLight.fifo.s b/lib/gspF3DZEX2_PosLight.fifo.s new file mode 100644 index 000000000..7d1fdb005 --- /dev/null +++ b/lib/gspF3DZEX2_PosLight.fifo.s @@ -0,0 +1,18 @@ +#include "macros.inc" +.set UCODE_SIZE, 0x800 + +.section .text + +.balign 16 +glabel gspF3DZEX2_PosLight_fifoTextStart + .incbin "lib/PR/f3dzex/fifo/F3DZEX.bin" +glabel gspF3DZEX2_PosLight_fifoTextEnd + +/* DATA SECTION START */ + +.section .data + +.balign 16 +glabel gspF3DZEX2_PosLight_fifoDataStart + .incbin "lib/PR/f3dzex/fifo/F3DZEX_data.bin" +glabel gspF3DZEX2_PosLight_fifoDataEnd diff --git a/lib/gspL3DZEX2_PosLight.fifo.s b/lib/gspL3DZEX2_PosLight.fifo.s new file mode 100644 index 000000000..f09f6f170 --- /dev/null +++ b/lib/gspL3DZEX2_PosLight.fifo.s @@ -0,0 +1,18 @@ +#include "macros.inc" +.set UCODE_SIZE, 0x800 + +.section .text + +.balign 16 +glabel gspL3DZEX2_PosLight_fifoTextStart + .incbin "lib/PR/f3dzex/fifo/L3DZEX.bin" +glabel gspL3DZEX2_PosLight_fifoTextEnd + +/* DATA SECTION START */ + +.section .data + +.balign 16 +glabel gspL3DZEX2_PosLight_fifoDataStart + .incbin "lib/PR/f3dzex/fifo/L3DZEX_data.bin" +glabel gspL3DZEX2_PosLight_fifoDataEnd diff --git a/lib/rsp.s b/lib/rsp.old similarity index 100% rename from lib/rsp.s rename to lib/rsp.old diff --git a/lib/rspboot.o b/lib/rspboot.o new file mode 100644 index 000000000..7ca09ee2f Binary files /dev/null and b/lib/rspboot.o differ diff --git a/rsp/rspboot.s b/rsp/rspboot.s deleted file mode 100644 index 671c97e22..000000000 --- a/rsp/rspboot.s +++ /dev/null @@ -1,73 +0,0 @@ -.rsp - -.include "rsp/rsp_defs.inc" - -// This file assumes CODE_FILE is set on the command line -.create CODE_FILE, 0x04001000 - -.if defined(VERSION_JP) || defined(VERSION_US) - ori $1, $1, 0x0001 -.endif - j boot_04001068 - addi $1, $zero, OSTask_addr -boot_load_ucode: - lw $2, OSTask_ucode($1) - addi $3, $zero, 0x0f7f // hard-coded length = 0xF80 - addi $7, $zero, 0x1080 // hard-coded address = 0x1080 - mtc0 $7, SP_MEM_ADDR - mtc0 $2, SP_DRAM_ADDR - mtc0 $3, SP_RD_LEN -boot_ucode_dma_busy: - mfc0 $4, SP_DMA_BUSY - bne $4, $zero, boot_ucode_dma_busy - nop - jal check_yielded - nop - jr $7 // jump to the loaded ucode - mtc0 $zero, SP_SEMAPHORE // clear semaphore - -check_yielded: - mfc0 $8, SP_STATUS - andi $8, $8, 0x0080 // yield signal is set - bne $8, $zero, boot_04001054 - nop - jr ra -boot_04001054: - mtc0 $zero, SP_SEMAPHORE // clear semaphore - ori $8, $zero, 0x5200 // clear yield, set yielded, set taskdone? - mtc0 $8, SP_STATUS - break // halt RSP and set SP_STATUS_BROKE - nop - -boot_04001068: - lw $2, OSTask_flags($1) - andi $2, $2, OS_TASK_DP_WAIT - beq $2, $zero, boot_load_data - nop - jal check_yielded - nop - mfc0 $2, DPC_STATUS - andi $2, $2, DPC_STATUS_DMA_BUSY - bgtz $2, check_yielded - nop -boot_load_data: - lw $2, OSTask_ucode_data($1) - lw $3, OSTask_ucode_data_size($1) - addi $3, $3, -1 -boot_dma_not_full: - mfc0 $30, SP_DMA_FULL - bne $30, $zero, boot_dma_not_full - nop - mtc0 $zero, SP_MEM_ADDR // ucode_data store at base of DMEM - mtc0 $2, SP_DRAM_ADDR - mtc0 $3, SP_RD_LEN -boot_data_dma_busy: - mfc0 $4, SP_DMA_BUSY - bne $4, $zero, boot_data_dma_busy - nop - jal check_yielded - nop - j boot_load_ucode - nop - -.close // CODE_FILE diff --git a/rspdata.inc.ld b/rspdata.inc.ld new file mode 100644 index 000000000..8bf38b02a --- /dev/null +++ b/rspdata.inc.ld @@ -0,0 +1,84 @@ +#ifndef F3DEX_GBI_SHARED +#if SUPER3D_GBI == 1 + lib/PR/super3d/fifo/gspSuper3D.o(.data); +#endif +#else /* Use one of the Fast3DEX series grucodes. */ + #ifndef F3DZEX_GBI_2 + #if F3DEX2PL_GBI == 1 + BUILD_DIR/lib/gspF3DEX2_PosLight.fifo.o(.data); + #elif F3DEX_GBI_2 == 1 + lib/PR/f3dex2/fifo/gspF3DEX2.fifo.o(.data); + #elif F3DEX_GBI == 1 + lib/PR/f3dex/fifo/gspF3DEX.fifo.o(.data); + #endif + #else /* Fast3DZEX */ + BUILD_DIR/lib/gspF3DZEX2_PosLight.fifo.o(.data); + #endif +#endif + +/* + * LESS COMMON MICROCODES + * These are setup to be loaded by G_LOAD_UCODE + */ + +/* Fast3DEX NoN Data */ +#ifdef F3DEX_NON_GBI + lib/PR/f3dex/fifo/gspF3DEX.NoN.fifo.o(.data); +#endif + +/* Fast3DLX Data */ +#ifdef F3DLX_GBI + lib/PR/f3dex/fifo/gspF3DLX.fifo.o(.data); +#endif + +/* Fast3DLX NoN Data */ +#ifdef F3DLX_NON_GBI + lib/PR/f3dex/fifo/gspF3DLX.NoN.fifo.o(.data); +#endif + +/* Fast3DLX Rej Data */ +#ifdef F3DLX_REJ_GBI + lib/PR/f3dex/fifo/gspF3DLX.Rej.fifo.o(.data); +#endif + +/* Line3DEX Data */ +#ifdef L3DEX_GBI + lib/PR/f3dex/fifo/gspL3DEX.fifo.o(.data); +#endif + +/* S2DEX Data */ +#ifdef S2DEX_GBI + lib/PR/s2dex/fifo/gspS2DEX.fifo.o(.data); +#endif + +/* Fast3DEX2 series */ + +/* Fast3DEX2 NoN Data */ +#ifdef F3DEX2_NON_GBI + lib/PR/f3dex2/fifo/gspF3DEX2.NoN.fifo.o(.data); +#endif + +/* Fast3DZEX NoN Data */ +#ifdef F3DZEX_NON_GBI_2 + BUILD_DIR/lib/gspF3DZEX2.NoN_PosLight.fifo.o(.data); +#endif + +/* Fast3DEX2 Rej Data */ +#ifdef F3DEX2_REJ_GBI + lib/PR/f3dex2/fifo/gspF3DEX2.Rej.fifo.o(.data); +#endif + +/* Line3DEX2 Data */ +#ifdef L3DEX2_GBI + lib/PR/f3dex2/fifo/gspL3DEX2.fifo.o(.data); +#endif + +/* Line3DZEX Data */ +#ifdef L3DZEX_GBI + BUILD_DIR/lib/gspL3DZEX2_PosLight.fifo.o(.data); +#endif + +/* S2DEX2 Data */ +#ifdef S2DEX_GBI_2 + lib/PR/s2dex2/fifo/gspS2DEX2.fifo.o(.data); +#endif \ No newline at end of file diff --git a/rsptext.inc.ld b/rsptext.inc.ld new file mode 100644 index 000000000..f9a423168 --- /dev/null +++ b/rsptext.inc.ld @@ -0,0 +1,84 @@ +#ifndef F3DEX_GBI_SHARED +#if SUPER3D_GBI == 1 + lib/PR/super3d/fifo/gspSuper3D.o(.text); +#endif +#else /* Use one of the Fast3DEX series grucodes. */ + #ifndef F3DZEX_GBI_2 + #if F3DEX2PL_GBI == 1 + BUILD_DIR/lib/gspF3DEX2_PosLight.fifo.o(.text); + #elif F3DEX_GBI_2 == 1 + lib/PR/f3dex2/fifo/gspF3DEX2.fifo.o(.text); + #elif F3DEX_GBI == 1 + lib/PR/f3dex/fifo/gspF3DEX.fifo.o(.text); + #endif + #else /* Fast3DZEX */ + BUILD_DIR/lib/gspF3DZEX2_PosLight.fifo.o(.text); + #endif +#endif + +/* + * LESS COMMON MICROCODES + * These are setup to be loaded by G_LOAD_UCODE + */ + +/* Fast3DEX NoN Text */ +#ifdef F3DEX_NON_GBI + lib/PR/f3dex/fifo/gspF3DEX.NoN.fifo.o(.text); +#endif + +/* Fast3DLX Text */ +#ifdef F3DLX_GBI + lib/PR/f3dex/fifo/gspF3DLX.fifo.o(.text); +#endif + +/* Fast3DLX NoN Text */ +#ifdef F3DLX_NON_GBI + lib/PR/f3dex/fifo/gspF3DLX.NoN.fifo.o(.text); +#endif + +/* Fast3DLX Rej Text */ +#ifdef F3DLX_REJ_GBI + lib/PR/f3dex/fifo/gspF3DLX.Rej.fifo.o(.text); +#endif + +/* Line3DEX Text */ +#ifdef L3DEX_GBI + lib/PR/f3dex/fifo/gspL3DEX.fifo.o(.text); +#endif + +/* S2DEX Text */ +#ifdef S2DEX_GBI + lib/PR/s2dex/fifo/gspS2DEX.fifo.o(.text); +#endif + +/* Fast3DEX2 series */ + +/* Fast3DEX2 NoN Text */ +#ifdef F3DEX2_NON_GBI + lib/PR/f3dex2/fifo/gspF3DEX2.NoN.fifo.o(.text); +#endif + +/* Fast3DZEX NoN Text */ +#ifdef F3DZEX_NON_GBI_2 + BUILD_DIR/lib/gspF3DZEX2.NoN_PosLight.fifo.o(.text); +#endif + +/* Fast3DEX2 Rej Text */ +#ifdef F3DEX2_REJ_GBI + lib/PR/f3dex2/fifo/gspF3DEX2.Rej.fifo.o(.text); +#endif + +/* Line3DEX2 Text */ +#ifdef L3DEX2_GBI + lib/PR/f3dex2/fifo/gspL3DEX2.fifo.o(.text); +#endif + +/* Line3DZEX Text */ +#ifdef L3DZEX_GBI + BUILD_DIR/lib/gspL3DZEX2_PosLight.fifo.o(.text); +#endif + +/* S2DEX2 Text */ +#ifdef S2DEX_GBI_2 + lib/PR/s2dex2/fifo/gspS2DEX2.fifo.o(.text); +#endif \ No newline at end of file diff --git a/sm64.ld b/sm64.ld index 4b3ea9e73..e194adb6d 100755 --- a/sm64.ld +++ b/sm64.ld @@ -175,7 +175,10 @@ SECTIONS */librtc.a:*.o(.text); */libz.a:*.o(.text); */libhvqm2.a:*.o(.text); - BUILD_DIR/lib/rsp.o(.text); + lib/rspboot.o(.text); +#include "rsptext.inc.ld" + BUILD_DIR/lib/aspMain.o(.text*); + lib/PR/audio/n_aspMain.o(.text*); lib/PR/hvqm/hvqm2sp1.o(.text); _mainSegmentTextEnd = .; @@ -194,8 +197,9 @@ SECTIONS */libhvqm2.a:*.o(.data*); */librtc.a:*.o(.data*); */libz.a:*.o(.data*); - - BUILD_DIR/lib/rsp.o(.data*); +#include "rspdata.inc.ld" + BUILD_DIR/lib/aspMain.o(.data*); + lib/PR/audio/n_aspMain.o(.data*); lib/PR/hvqm/hvqm2sp1.o(.data*); /* rodata */ @@ -214,7 +218,6 @@ SECTIONS */librtc.a:*.o(.rodata*); */libz.a:*.o(.rodata*); - BUILD_DIR/lib/rsp.o(.rodata*); lib/PR/hvqm/hvqm2sp1.o(.rodata*); } END_SEG(main) diff --git a/src/game/game_init.c b/src/game/game_init.c index 54445a2b1..a329c0f23 100644 --- a/src/game/game_init.c +++ b/src/game/game_init.c @@ -274,27 +274,39 @@ void create_gfx_task_structure(void) { #ifdef L3DEX2_ALONE gGfxSPTask->task.t.ucode = gspL3DEX2_fifoTextStart; gGfxSPTask->task.t.ucode_data = gspL3DEX2_fifoDataStart; + gGfxSPTask->task.t.ucode_size = ((u8 *) gspL3DEX2_fifoTextEnd - (u8 *) gspL3DEX2_fifoTextStart); + gGfxSPTask->task.t.ucode_data_size = ((u8 *) gspL3DEX2_fifoDataEnd - (u8 *) gspL3DEX2_fifoDataStart); #elif F3DZEX_GBI_2 gGfxSPTask->task.t.ucode = gspF3DZEX2_PosLight_fifoTextStart; gGfxSPTask->task.t.ucode_data = gspF3DZEX2_PosLight_fifoDataStart; + gGfxSPTask->task.t.ucode_size = ((u8 *) gspF3DZEX2_PosLight_fifoTextEnd - (u8 *) gspF3DZEX2_PosLight_fifoTextStart); + gGfxSPTask->task.t.ucode_data_size = ((u8 *) gspF3DZEX2_PosLight_fifoDataEnd - (u8 *) gspF3DZEX2_PosLight_fifoDataStart); #elif F3DEX2PL_GBI gGfxSPTask->task.t.ucode = gspF3DEX2_PosLight_fifoTextStart; gGfxSPTask->task.t.ucode_data = gspF3DEX2_PosLight_fifoDataStart; + gGfxSPTask->task.t.ucode_size = ((u8 *) gspF3DEX2_PosLight_fifoTextEnd - (u8 *) gspF3DEX2_PosLight_fifoTextStart); + gGfxSPTask->task.t.ucode_data_size = ((u8 *) gspF3DEX2_PosLight_fifoDataEnd - (u8 *) gspF3DEX2_PosLight_fifoDataStart); #elif F3DEX_GBI_2 gGfxSPTask->task.t.ucode = gspF3DEX2_fifoTextStart; gGfxSPTask->task.t.ucode_data = gspF3DEX2_fifoDataStart; + gGfxSPTask->task.t.ucode_size = ((u8 *) gspF3DEX2_fifoTextEnd - (u8 *) gspF3DEX2_fifoTextStart); + gGfxSPTask->task.t.ucode_data_size = ((u8 *) gspF3DEX2_fifoDataEnd - (u8 *) gspF3DEX2_fifoDataStart); #elif F3DEX_GBI gGfxSPTask->task.t.ucode = gspF3DEX_fifoTextStart; gGfxSPTask->task.t.ucode_data = gspF3DEX_fifoDataStart; + gGfxSPTask->task.t.ucode_size = ((u8 *) gspF3DEX_fifoTextEnd - (u8 *) gspF3DEX_fifoTextStart); + gGfxSPTask->task.t.ucode_data_size = ((u8 *) gspF3DEX_fifoDataEnd - (u8 *) gspF3DEX_fifoDataStart); #elif SUPER3D_GBI - gGfxSPTask->task.t.ucode = gspSuper3D_fifoTextStart; - gGfxSPTask->task.t.ucode_data = gspSuper3D_fifoDataStart; + gGfxSPTask->task.t.ucode = gspSuper3DTextStart; + gGfxSPTask->task.t.ucode_data = gspSuper3DDataStart; + gGfxSPTask->task.t.ucode_size = ((u8 *) gspSuper3DTextEnd - (u8 *) gspSuper3DTextStart); + gGfxSPTask->task.t.ucode_data_size = ((u8 *) gspSuper3DDataEnd - (u8 *) gspSuper3DDataStart); #else gGfxSPTask->task.t.ucode = gspFast3D_fifoTextStart; gGfxSPTask->task.t.ucode_data = gspFast3D_fifoDataStart; + gGfxSPTask->task.t.ucode_size = ((u8 *) gspFast3D_fifoTextEnd - (u8 *) gspFast3D_fifoTextStart); + gGfxSPTask->task.t.ucode_data_size = ((u8 *) gspFast3D_fifoDataEnd - (u8 *) gspFast3D_fifoDataStart); #endif - gGfxSPTask->task.t.ucode_size = SP_UCODE_SIZE; // (this size is ignored) - gGfxSPTask->task.t.ucode_data_size = SP_UCODE_DATA_SIZE; gGfxSPTask->task.t.dram_stack = (u64 *) gGfxSPTaskStack; gGfxSPTask->task.t.dram_stack_size = SP_DRAM_STACK_SIZE8; gGfxSPTask->task.t.output_buff = gGfxSPTaskOutputBuffer;