diff --git a/Makefile b/Makefile index 0891f78410..827f15c77d 100644 --- a/Makefile +++ b/Makefile @@ -156,6 +156,8 @@ build/src/libultra/rmon/%.o: OPTFLAGS := -O2 build/src/libultra/flash/%.o: OPTFLAGS := -g build/src/libultra/flash/%.o: MIPS_VERSION := -mips1 +build/src/code/audio/%.o: OPTFLAGS := -O2 + # file flags build/src/boot_O2_g3/fault.o: CFLAGS += -trapuv build/src/boot_O2_g3/fault_drawer.o: CFLAGS += -trapuv @@ -172,6 +174,7 @@ build/src/boot_O2_g3/%.o: CC := python3 tools/asm-processor/build.py $(CC) -- $( build/src/libultra/%.o: CC := python3 tools/asm-processor/build.py $(CC_OLD) -- $(AS) $(ASFLAGS) -- build/src/code/%.o: CC := python3 tools/asm-processor/build.py $(CC) -- $(AS) $(ASFLAGS) -- +build/src/code/audio/%.o: CC := python3 tools/asm-processor/build.py $(CC) -- $(AS) $(ASFLAGS) -- build/src/overlays/actors/%.o: CC := python3 tools/asm-processor/build.py $(CC) -- $(AS) $(ASFLAGS) -- build/src/overlays/effects/%.o: CC := python3 tools/asm-processor/build.py $(CC) -- $(AS) $(ASFLAGS) -- diff --git a/spec b/spec index c9458d9390..b50573ebc7 100644 --- a/spec +++ b/spec @@ -639,37 +639,50 @@ beginseg pad_text pad_text pad_text - include "build/src/code/audio_synthesis.o" - include "build/src/code/audio_heap.o" - include "build/data/code/code_801D2E80.data.o" + include "build/data/code/audio_data.data.o" + include "build/src/code/audio/audio_synthesis.o" + include "build/data/code/audio_synthesis.data.o" + include "build/src/code/audio/audio_heap.o" include "build/data/code/audio_heap.bss.o" - include "build/data/code/code_801D3D90.data.o" - include "build/src/code/audio_load.o" + include "build/src/code/audio/audio_load.o" + include "build/data/code/audio_load.data.o" include "build/data/code/audio_load.bss.o" - include "build/src/code/code_80192BE0.o" - include "build/src/code/code_80194710.o" - include "build/src/code/audio_playback.o" - include "build/src/code/audio_effects.o" - include "build/src/code/audio_seqplayer.o" + include "build/src/code/audio/code_80192BE0.o" + include "build/data/code/code_80192BE0.data.o" + include "build/src/code/audio/code_80194710.o" + include "build/src/code/audio/code_80194790.o" + include "build/data/code/code_80194790.data.o" + include "build/src/code/audio/audio_playback.o" + include "build/src/code/audio/audio_effects.o" + include "build/data/code/audio_effects.data.o" + include "build/src/code/audio/audio_seqplayer.o" + include "build/data/code/audio_seqplayer.data.o" + include "build/data/code/audio_dramStack.data.o" include "build/asm/code/code_8019AE40.text.o" // handwritten pad_text include "build/asm/code/code_8019AEC0.text.o" // handwritten - include "build/src/code/code_8019AF00.o" + include "build/src/code/audio/code_8019AF00.o" + include "build/data/code/code_8019AF00.data.o" include "build/data/code/code_8019AF00.bss.o" - include "build/data/code/code_801D55B0.data.o" - include "build/src/code/code_801A51F0.o" + include "build/src/code/audio/code_801A4EB0.o" + include "build/data/code/code_801A4EB0.data.o" + include "build/src/code/audio/code_801A51F0.o" include "build/data/code/code_801A51F0.data.o" include "build/data/code/code_801A51F0.bss.o" pad_text - include "build/src/code/code_801A5BD0.o" + include "build/data/code/audio_sound_params.data.o" + include "build/src/code/audio/code_801A5BD0.o" + include "build/data/code/code_801A5BD0.data.o" include "build/data/code/code_801A5BD0.bss.o" - include "build/src/code/code_801A7B10.o" + include "build/src/code/audio/code_801A7B10.o" + include "build/data/code/code_801A7B10.data.o" include "build/data/code/code_801A7B10.bss.o" + include "build/data/code/audio_init_params.rodata.o" + include "build/src/code/jpegutils.o" include "build/src/code/code_801AA020.o" include "build/data/code/code_801AA020.bss.o" include_readonly "build/src/code/z_game_over.o" include "build/src/code/z_construct.o" - include "build/data/code/code_801D9090.data.o" include "build/data/code/code_801E1180.rodata.o" endseg diff --git a/src/code/audio_effects.c b/src/code/audio/audio_effects.c similarity index 100% rename from src/code/audio_effects.c rename to src/code/audio/audio_effects.c diff --git a/src/code/audio_heap.c b/src/code/audio/audio_heap.c similarity index 100% rename from src/code/audio_heap.c rename to src/code/audio/audio_heap.c diff --git a/src/code/audio_load.c b/src/code/audio/audio_load.c similarity index 100% rename from src/code/audio_load.c rename to src/code/audio/audio_load.c diff --git a/src/code/audio_playback.c b/src/code/audio/audio_playback.c similarity index 100% rename from src/code/audio_playback.c rename to src/code/audio/audio_playback.c diff --git a/src/code/audio_seqplayer.c b/src/code/audio/audio_seqplayer.c similarity index 100% rename from src/code/audio_seqplayer.c rename to src/code/audio/audio_seqplayer.c diff --git a/src/code/audio_synthesis.c b/src/code/audio/audio_synthesis.c similarity index 100% rename from src/code/audio_synthesis.c rename to src/code/audio/audio_synthesis.c diff --git a/src/code/code_80192BE0.c b/src/code/audio/code_80192BE0.c similarity index 100% rename from src/code/code_80192BE0.c rename to src/code/audio/code_80192BE0.c diff --git a/src/code/audio/code_80194710.c b/src/code/audio/code_80194710.c new file mode 100644 index 0000000000..090c5735b1 --- /dev/null +++ b/src/code/audio/code_80194710.c @@ -0,0 +1,5 @@ +#include "global.h" + +#pragma GLOBAL_ASM("asm/non_matchings/code/code_80194710/func_80194710.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/code_80194710/func_80194750.s") diff --git a/src/code/audio/code_80194790.c b/src/code/audio/code_80194790.c new file mode 100644 index 0000000000..9ba2436deb --- /dev/null +++ b/src/code/audio/code_80194790.c @@ -0,0 +1,9 @@ +#include "global.h" + +#pragma GLOBAL_ASM("asm/non_matchings/code/code_80194790/func_80194790.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/code_80194790/func_80194804.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/code_80194790/func_80194840.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/code_80194790/func_801948B0.s") diff --git a/src/code/code_8019AF00.c b/src/code/audio/code_8019AF00.c similarity index 96% rename from src/code/code_8019AF00.c rename to src/code/audio/code_8019AF00.c index 8f0d129ada..227384d0aa 100644 --- a/src/code/code_8019AF00.c +++ b/src/code/audio/code_8019AF00.c @@ -411,19 +411,3 @@ #pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A4DF4.s") #pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A4E64.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A4EB0.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A4EB8.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A4FD8.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A5080.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A50C0.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A5100.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A510C.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_8019AF00/func_801A5118.s") diff --git a/src/code/audio/code_801A4EB0.c b/src/code/audio/code_801A4EB0.c new file mode 100644 index 0000000000..d3461c8f5e --- /dev/null +++ b/src/code/audio/code_801A4EB0.c @@ -0,0 +1,17 @@ +#include "global.h" + +#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A4EB0/func_801A4EB0.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A4EB0/func_801A4EB8.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A4EB0/func_801A4FD8.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A4EB0/func_801A5080.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A4EB0/func_801A50C0.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A4EB0/func_801A5100.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A4EB0/func_801A510C.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A4EB0/func_801A5118.s") diff --git a/src/code/code_801A51F0.c b/src/code/audio/code_801A51F0.c similarity index 100% rename from src/code/code_801A51F0.c rename to src/code/audio/code_801A51F0.c diff --git a/src/code/code_801A5BD0.c b/src/code/audio/code_801A5BD0.c similarity index 100% rename from src/code/code_801A5BD0.c rename to src/code/audio/code_801A5BD0.c diff --git a/src/code/code_801A7B10.c b/src/code/audio/code_801A7B10.c similarity index 65% rename from src/code/code_801A7B10.c rename to src/code/audio/code_801A7B10.c index 7079968200..d2d9a71a21 100644 --- a/src/code/code_801A7B10.c +++ b/src/code/audio/code_801A7B10.c @@ -29,19 +29,3 @@ #pragma GLOBAL_ASM("asm/non_matchings/code/code_801A7B10/func_801A99B8.s") #pragma GLOBAL_ASM("asm/non_matchings/code/code_801A7B10/func_801A9A74.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A7B10/func_801A9B10.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A7B10/func_801A9B78.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A7B10/func_801A9BFC.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A7B10/func_801A9C68.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A7B10/func_801A9D10.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A7B10/func_801A9DCC.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A7B10/func_801A9EA4.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_801A7B10/func_801A9F4C.s") diff --git a/src/code/code_80194710.c b/src/code/code_80194710.c deleted file mode 100644 index aa4f784c4c..0000000000 --- a/src/code/code_80194710.c +++ /dev/null @@ -1,13 +0,0 @@ -#include "global.h" - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_80194710/func_80194710.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_80194710/func_80194750.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_80194710/func_80194790.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_80194710/func_80194804.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_80194710/func_80194840.s") - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_80194710/func_801948B0.s") diff --git a/src/code/code_801AA020.c b/src/code/code_801AA020.c index 2144c6bcb5..6cefc66d9f 100644 --- a/src/code/code_801AA020.c +++ b/src/code/code_801AA020.c @@ -1,7 +1,5 @@ #include "global.h" -#pragma GLOBAL_ASM("asm/non_matchings/code/code_801AA020/D_801E1100.s") - #pragma GLOBAL_ASM("asm/non_matchings/code/code_801AA020/func_801AA020.s") #pragma GLOBAL_ASM("asm/non_matchings/code/code_801AA020/func_801AA248.s") diff --git a/src/code/jpegutils.c b/src/code/jpegutils.c new file mode 100644 index 0000000000..89ed4e97d6 --- /dev/null +++ b/src/code/jpegutils.c @@ -0,0 +1,17 @@ +#include "global.h" + +#pragma GLOBAL_ASM("asm/non_matchings/code/jpegutils/func_801A9B10.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/jpegutils/func_801A9B78.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/jpegutils/func_801A9BFC.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/jpegutils/func_801A9C68.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/jpegutils/func_801A9D10.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/jpegutils/func_801A9DCC.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/jpegutils/func_801A9EA4.s") + +#pragma GLOBAL_ASM("asm/non_matchings/code/jpegutils/func_801A9F4C.s") diff --git a/tools/disasm/files.txt b/tools/disasm/files.txt index bf786209cc..2c22781ba1 100644 --- a/tools/disasm/files.txt +++ b/tools/disasm/files.txt @@ -484,6 +484,7 @@ 0x8018EB60 : "audio_load", 0x80192BE0 : "code_80192BE0", 0x80194710 : "code_80194710", + 0x80194790 : "code_80194790", 0x80194930 : "audio_playback", 0x80196A00 : "audio_effects", 0x801974D0 : "audio_seqplayer", @@ -491,10 +492,12 @@ 0x8019AEB0 : "[PADDING]", 0x8019AEC0 : "code_8019AEC0", 0x8019AF00 : "code_8019AF00", + 0x801A4EB0 : "code_801A4EB0", 0x801A51F0 : "code_801A51F0", 0x801A5BC0 : "[PADDING]", 0x801A5BD0 : "code_801A5BD0", 0x801A7B10 : "code_801A7B10", + 0x801A9B10 : "jpegutils", 0x801AA020 : "code_801AA020", 0x801AA610 : "z_game_over", 0x801AAAA0 : "z_construct", @@ -573,11 +576,20 @@ 0x801D15D0 : "sys_math_atan", 0x801D1DE0 : "sys_matrix", 0x801D1E70 : "", - 0x801D2E80 : "", # audio_heap? - 0x801D3D90 : "", - 0x801D55B0 : "", + 0x801D2E80 : "audio_data", + 0x801D5FB0 : "audio_synthesis", + 0x801D5FE0 : "audio_load", + 0x801D5FF0 : "code_80192BE0", + 0x801D6010 : "code_80194790", + 0x801D6190 : "audio_effects", + 0x801D61A0 : "audio_seqplayer", + 0x801D6200 : "audio_dramStack", + 0x801D6600 : "code_8019AF00", + 0x801D8BE0 : "code_801A4EB0", 0x801D8E50 : "code_801A51F0", - 0x801D9090 : "", + 0x801D9090 : "audio_sound_params", + 0x801DB470 : "code_801A5BD0", + 0x801DB4C0 : "code_801A7B10", # .rodata section 0x801DBDF0 : "z_en_item00", @@ -658,7 +670,7 @@ 0x801E0EC0 : "code_801A51F0", 0x801E1050 : "code_801A5BD0", 0x801E1070 : "code_801A7B10", - 0x801E1100 : "code_801AA020", + 0x801E1100 : "audio_init_params", 0x801E1110 : "z_game_over", 0x801E1180 : "", @@ -714,7 +726,7 @@ 0x801FD140 : "audio_load", 0x801FD1F0 : "code_8019AF00", 0x801FD5A0 : "code_801A51F0", - 0x801FE7C0 : "code_801A5BD0", + 0x801FD710 : "code_801A5BD0", 0x801FFD00 : "code_801A7B10", 0x80208E90 : "code_801AA020", 0x80208EA0 : "gfxbuffers", diff --git a/tools/disasm/variables.txt b/tools/disasm/variables.txt index cdff64742b..5dd49fdaae 100644 --- a/tools/disasm/variables.txt +++ b/tools/disasm/variables.txt @@ -2274,11 +2274,9 @@ 0x801D4D90:("D_801D4D90","UNK_PTR","",0x4), 0x801D4D98:("D_801D4D98","UNK_PTR","",0x4), 0x801D4DB0:("D_801D4DB0","UNK_PTR","",0x4), - 0x801D4DB4:("D_801D4DB4","UNK_TYPE1","",0x1), - 0x801D4FB4:("D_801D4FB4","UNK_TYPE1","",0x1), - 0x801D51B4:("D_801D51B4","UNK_TYPE4","",0x4), - 0x801D53B4:("D_801D53B4","UNK_TYPE4","",0x4), - 0x801D55B4:("D_801D55B4","UNK_TYPE1","",0x1), + 0x801D4DB4:("D_801D4DB4","f32","[256]",0x400), + 0x801D51B4:("D_801D51B4","f32","[256]",0x400), + 0x801D55B4:("D_801D55B4","f32","[128]",0x200), 0x801D57B4:("D_801D57B4","UNK_TYPE1","",0x1), 0x801D57C4:("D_801D57C4","UNK_TYPE1","",0x1), 0x801D57D4:("D_801D57D4","UNK_TYPE1","",0x1), @@ -2287,12 +2285,11 @@ 0x801D5824:("D_801D5824","UNK_TYPE2","",0x2), 0x801D58A2:("D_801D58A2","UNK_TYPE2","",0x2), 0x801D58AA:("D_801D58AA","UNK_TYPE1","",0x1), - 0x801D5928:("D_801D5928","UNK_TYPE1","",0x1), - 0x801D5B24:("D_801D5B24","UNK_TYPE1","",0x1), - 0x801D5B28:("D_801D5B28","UNK_TYPE1","",0x1), - 0x801D5D24:("D_801D5D24","UNK_TYPE1","",0x1), - 0x801D5D28:("D_801D5D28","UNK_TYPE1","",0x1), - 0x801D5F24:("D_801D5F24","UNK_TYPE1","",0x1), + 0x801D5928:("D_801D5928","f32","[128]",0x200), + 0x801D5B28:("D_801D5B28","f32","[128]",0x200), + 0x801D5D28:("D_801D5D28","f32","[128]",0x200), + 0x801D5F28:("D_801D5F28","s16","[64]",0x80), + 0x801D5FB0:("D_801D5FB0","UNK_TYPE4","",0x4), 0x801D5FB4:("D_801D5FB4","UNK_TYPE4","",0x4), 0x801D5FB8:("D_801D5FB8","UNK_TYPE4","",0x4), 0x801D5FBC:("D_801D5FBC","UNK_TYPE4","",0x4), @@ -2311,11 +2308,11 @@ 0x801D6014:("D_801D6014","UNK_TYPE1","",0x1), 0x801D6028:("D_801D6028","UNK_TYPE1","",0x1), 0x801D6098:("D_801D6098","UNK_TYPE1","",0x1), - 0x801D6100:("D_801D6100","UNK_TYPE1","",0x1), 0x801D6188:("D_801D6188","UNK_PTR","",0x4), 0x801D618C:("D_801D618C","UNK_PTR","",0x4), 0x801D6190:("D_801D6190","f32","",0x4), 0x801D6194:("D_801D6194","UNK_TYPE4","",0x4), + 0x801D61A0:("D_801D61A0","u8","[96]",0x60), 0x801D6200:("D_801D6200","UNK_TYPE1","",0x1), 0x801D6600:("D_801D6600","UNK_TYPE1","",0x1), 0x801D6608:("D_801D6608","UNK_TYPE1","",0x1),