From 7cff13c38e65c06796c6980d25f368f9d4a61ecb Mon Sep 17 00:00:00 2001 From: Max Date: Thu, 24 Sep 2020 23:21:07 -0400 Subject: split snd_MemorySoundArchive and snd_MidiSeqPlayer --- asm/nw4r/snd/snd_MemorySoundArchive.s | 9 +++++ asm/nw4r/snd/snd_MidiSeqPlayer.s | 66 +++++++++++++++++++++++++++++++++++ asm/text_10_6.s | 49 +++++--------------------- asm/text_11.s | 2 +- obj_files.mk | 2 ++ 5 files changed, 87 insertions(+), 41 deletions(-) create mode 100644 asm/nw4r/snd/snd_MemorySoundArchive.s create mode 100644 asm/nw4r/snd/snd_MidiSeqPlayer.s diff --git a/asm/nw4r/snd/snd_MemorySoundArchive.s b/asm/nw4r/snd/snd_MemorySoundArchive.s new file mode 100644 index 0000000..63c9634 --- /dev/null +++ b/asm/nw4r/snd/snd_MemorySoundArchive.s @@ -0,0 +1,9 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80006980 - 0x803E1E60 + +.global Shutdown__Q34nw4r3snd18MemorySoundArchiveFv +Shutdown__Q34nw4r3snd18MemorySoundArchiveFv: +/* 80371DEC 0036DA4C 38 00 00 00 */ li r0, 0 +/* 80371DF0 0036DA50 90 03 01 08 */ stw r0, 0x108(r3) +/* 80371DF4 0036DA54 48 00 52 18 */ b func_8037700C diff --git a/asm/nw4r/snd/snd_MidiSeqPlayer.s b/asm/nw4r/snd/snd_MidiSeqPlayer.s new file mode 100644 index 0000000..eaea9e8 --- /dev/null +++ b/asm/nw4r/snd/snd_MidiSeqPlayer.s @@ -0,0 +1,66 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80006980 - 0x803E1E60 + +.global OnUpdateFrameSoundThread__Q44nw4r3snd6detail9SeqPlayerFv +OnUpdateFrameSoundThread__Q44nw4r3snd6detail9SeqPlayerFv: +/* 80371DF8 0036DA58 48 00 28 AC */ b lbl_803746A4 + +.global OnShutdownSoundThread__Q44nw4r3snd6detail9SeqPlayerFv +OnShutdownSoundThread__Q44nw4r3snd6detail9SeqPlayerFv: +/* 80371DFC 0036DA5C 81 83 00 00 */ lwz r12, 0(r3) +/* 80371E00 0036DA60 81 8C 00 10 */ lwz r12, 0x10(r12) +/* 80371E04 0036DA64 7D 89 03 A6 */ mtctr r12 +/* 80371E08 0036DA68 4E 80 04 20 */ bctr + +.global InvalidateWaveData__Q44nw4r3snd6detail9SeqPlayerFPCvPCv +InvalidateWaveData__Q44nw4r3snd6detail9SeqPlayerFPCvPCv: +/* 80371E0C 0036DA6C 4E 80 00 20 */ blr + +.global OnUpdateVoiceSoundThread__Q54nw4r3snd6detail11SoundThread14PlayerCallbackFv +OnUpdateVoiceSoundThread__Q54nw4r3snd6detail11SoundThread14PlayerCallbackFv: +/* 80371E10 0036DA70 4E 80 00 20 */ blr + +.global IsPause__Q44nw4r3snd6detail9SeqPlayerCFv +IsPause__Q44nw4r3snd6detail9SeqPlayerCFv: +/* 80371E14 0036DA74 88 63 00 8E */ lbz r3, 0x8e(r3) +/* 80371E18 0036DA78 7C 03 00 D0 */ neg r0, r3 +/* 80371E1C 0036DA7C 7C 00 1B 78 */ or r0, r0, r3 +/* 80371E20 0036DA80 54 03 0F FE */ srwi r3, r0, 0x1f +/* 80371E24 0036DA84 4E 80 00 20 */ blr + +.global IsStarted__Q44nw4r3snd6detail9SeqPlayerCFv +IsStarted__Q44nw4r3snd6detail9SeqPlayerCFv: +/* 80371E28 0036DA88 88 63 00 8D */ lbz r3, 0x8d(r3) +/* 80371E2C 0036DA8C 7C 03 00 D0 */ neg r0, r3 +/* 80371E30 0036DA90 7C 00 1B 78 */ or r0, r0, r3 +/* 80371E34 0036DA94 54 03 0F FE */ srwi r3, r0, 0x1f +/* 80371E38 0036DA98 4E 80 00 20 */ blr + +.global IsActive__Q44nw4r3snd6detail9SeqPlayerCFv +IsActive__Q44nw4r3snd6detail9SeqPlayerCFv: +/* 80371E3C 0036DA9C 88 63 00 8C */ lbz r3, 0x8c(r3) +/* 80371E40 0036DAA0 7C 03 00 D0 */ neg r0, r3 +/* 80371E44 0036DAA4 7C 00 1B 78 */ or r0, r0, r3 +/* 80371E48 0036DAA8 54 03 0F FE */ srwi r3, r0, 0x1f +/* 80371E4C 0036DAAC 4E 80 00 20 */ blr + +.global $2116$2InvalidateWaveData__Q44nw4r3snd6detail9SeqPlayerFPCvPCv +$2116$2InvalidateWaveData__Q44nw4r3snd6detail9SeqPlayerFPCvPCv: +/* 80371E50 0036DAB0 38 63 FF 8C */ addi r3, r3, -116 +/* 80371E54 0036DAB4 4B FF FF B8 */ b InvalidateWaveData__Q44nw4r3snd6detail9SeqPlayerFPCvPCv + +.global $2116$2InvalidateData__Q44nw4r3snd6detail9SeqPlayerFPCvPCv +$2116$2InvalidateData__Q44nw4r3snd6detail9SeqPlayerFPCvPCv: +/* 80371E58 0036DAB8 38 63 FF 8C */ addi r3, r3, -116 +/* 80371E5C 0036DABC 48 00 25 AC */ b lbl_80374408 + +.global $2128$2OnShutdownSoundThread__Q44nw4r3snd6detail9SeqPlayerFv +$2128$2OnShutdownSoundThread__Q44nw4r3snd6detail9SeqPlayerFv: +/* 80371E60 0036DAC0 38 63 FF 80 */ addi r3, r3, -128 +/* 80371E64 0036DAC4 4B FF FF 98 */ b OnShutdownSoundThread__Q44nw4r3snd6detail9SeqPlayerFv + +.global $2128$2OnUpdateFrameSoundThread__Q44nw4r3snd6detail9SeqPlayerFv +$2128$2OnUpdateFrameSoundThread__Q44nw4r3snd6detail9SeqPlayerFv: +/* 80371E68 0036DAC8 38 63 FF 80 */ addi r3, r3, -128 +/* 80371E6C 0036DACC 4B FF FF 8C */ b OnUpdateFrameSoundThread__Q44nw4r3snd6detail9SeqPlayerFv diff --git a/asm/text_10_6.s b/asm/text_10_6.s index 008bc7d..55d4bc4 100644 --- a/asm/text_10_6.s +++ b/asm/text_10_6.s @@ -2,45 +2,8 @@ .section .text, "ax" # 0x80006980 - 0x803E1E60 -.global func_80371DEC -func_80371DEC: -/* 80371DEC 0036DA4C 38 00 00 00 */ li r0, 0 -/* 80371DF0 0036DA50 90 03 01 08 */ stw r0, 0x108(r3) -/* 80371DF4 0036DA54 48 00 52 18 */ b func_8037700C -lbl_80371DF8: -/* 80371DF8 0036DA58 48 00 28 AC */ b lbl_803746A4 -lbl_80371DFC: -/* 80371DFC 0036DA5C 81 83 00 00 */ lwz r12, 0(r3) -/* 80371E00 0036DA60 81 8C 00 10 */ lwz r12, 0x10(r12) -/* 80371E04 0036DA64 7D 89 03 A6 */ mtctr r12 -/* 80371E08 0036DA68 4E 80 04 20 */ bctr -lbl_80371E0C: -/* 80371E0C 0036DA6C 4E 80 00 20 */ blr -/* 80371E10 0036DA70 4E 80 00 20 */ blr -/* 80371E14 0036DA74 88 63 00 8E */ lbz r3, 0x8e(r3) -/* 80371E18 0036DA78 7C 03 00 D0 */ neg r0, r3 -/* 80371E1C 0036DA7C 7C 00 1B 78 */ or r0, r0, r3 -/* 80371E20 0036DA80 54 03 0F FE */ srwi r3, r0, 0x1f -/* 80371E24 0036DA84 4E 80 00 20 */ blr -/* 80371E28 0036DA88 88 63 00 8D */ lbz r3, 0x8d(r3) -/* 80371E2C 0036DA8C 7C 03 00 D0 */ neg r0, r3 -/* 80371E30 0036DA90 7C 00 1B 78 */ or r0, r0, r3 -/* 80371E34 0036DA94 54 03 0F FE */ srwi r3, r0, 0x1f -/* 80371E38 0036DA98 4E 80 00 20 */ blr -/* 80371E3C 0036DA9C 88 63 00 8C */ lbz r3, 0x8c(r3) -/* 80371E40 0036DAA0 7C 03 00 D0 */ neg r0, r3 -/* 80371E44 0036DAA4 7C 00 1B 78 */ or r0, r0, r3 -/* 80371E48 0036DAA8 54 03 0F FE */ srwi r3, r0, 0x1f -/* 80371E4C 0036DAAC 4E 80 00 20 */ blr -/* 80371E50 0036DAB0 38 63 FF 8C */ addi r3, r3, -116 -/* 80371E54 0036DAB4 4B FF FF B8 */ b lbl_80371E0C -/* 80371E58 0036DAB8 38 63 FF 8C */ addi r3, r3, -116 -/* 80371E5C 0036DABC 48 00 25 AC */ b lbl_80374408 -/* 80371E60 0036DAC0 38 63 FF 80 */ addi r3, r3, -128 -/* 80371E64 0036DAC4 4B FF FF 98 */ b lbl_80371DFC -/* 80371E68 0036DAC8 38 63 FF 80 */ addi r3, r3, -128 -/* 80371E6C 0036DACC 4B FF FF 8C */ b lbl_80371DF8 -lbl_80371E70: +.global Parse__Q44nw4r3snd6detail9MmlParserCFPQ44nw4r3snd6detail11MmlSeqTrackb +Parse__Q44nw4r3snd6detail9MmlParserCFPQ44nw4r3snd6detail11MmlSeqTrackb: /* 80371E70 0036DAD0 94 21 FF D0 */ stwu r1, -0x30(r1) /* 80371E74 0036DAD4 7C 08 02 A6 */ mflr r0 /* 80371E78 0036DAD8 90 01 00 34 */ stw r0, 0x34(r1) @@ -480,6 +443,8 @@ lbl_80372488: /* 80372494 0036E0F4 7C 08 03 A6 */ mtlr r0 /* 80372498 0036E0F8 38 21 00 30 */ addi r1, r1, 0x30 /* 8037249C 0036E0FC 4E 80 00 20 */ blr + + /* 803724A0 0036E100 94 21 FF D0 */ stwu r1, -0x30(r1) /* 803724A4 0036E104 7C 08 02 A6 */ mflr r0 /* 803724A8 0036E108 90 01 00 34 */ stw r0, 0x34(r1) @@ -1124,7 +1089,7 @@ func_80372D5C: /* 80372DB4 0036EA14 80 63 00 D8 */ lwz r3, 0xd8(r3) /* 80372DB8 0036EA18 7C 85 23 78 */ mr r5, r4 /* 80372DBC 0036EA1C 7C 04 03 78 */ mr r4, r0 -/* 80372DC0 0036EA20 4B FF F0 B0 */ b lbl_80371E70 +/* 80372DC0 0036EA20 4B FF F0 B0 */ b Parse__Q44nw4r3snd6detail9MmlParserCFPQ44nw4r3snd6detail11MmlSeqTrackb /* 80372DC4 0036EA24 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80372DC8 0036EA28 7C 08 02 A6 */ mflr r0 /* 80372DCC 0036EA2C 2C 03 00 00 */ cmpwi r3, 0 @@ -2724,6 +2689,8 @@ lbl_803743B4: /* 803743FC 0037005C 7C 08 03 A6 */ mtlr r0 /* 80374400 00370060 38 21 00 20 */ addi r1, r1, 0x20 /* 80374404 00370064 4E 80 00 20 */ blr + +.global lbl_80374408 lbl_80374408: /* 80374408 00370068 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8037440C 0037006C 7C 08 02 A6 */ mflr r0 @@ -2923,6 +2890,8 @@ lbl_80374680: /* 80374698 003702F8 38 63 1C C8 */ addi r3, r3, lbl_80621CC8@l /* 8037469C 003702FC 7C 63 02 14 */ add r3, r3, r0 /* 803746A0 00370300 4E 80 00 20 */ blr + +.global lbl_803746A4 lbl_803746A4: /* 803746A4 00370304 94 21 FF F0 */ stwu r1, -0x10(r1) /* 803746A8 00370308 7C 08 02 A6 */ mflr r0 diff --git a/asm/text_11.s b/asm/text_11.s index 8573f7e..09ebfee 100644 --- a/asm/text_11.s +++ b/asm/text_11.s @@ -40285,7 +40285,7 @@ lbl_803A35CC: /* 803A35CC 0039F22C 80 7E 05 D8 */ lwz r3, 0x5d8(r30) /* 803A35D0 0039F230 2C 03 00 00 */ cmpwi r3, 0 /* 803A35D4 0039F234 41 82 00 20 */ beq lbl_803A35F4 -/* 803A35D8 0039F238 4B FC E8 15 */ bl func_80371DEC +/* 803A35D8 0039F238 4B FC E8 15 */ bl Shutdown__Q34nw4r3snd18MemorySoundArchiveFv /* 803A35DC 0039F23C 80 7E 05 D8 */ lwz r3, 0x5d8(r30) /* 803A35E0 0039F240 38 80 FF FF */ li r4, -1 /* 803A35E4 0039F244 81 83 00 00 */ lwz r12, 0(r3) diff --git a/obj_files.mk b/obj_files.mk index db45972..975cbbe 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -124,6 +124,8 @@ TEXT_O_FILES := \ $(BUILD_DIR)/asm/text_10_5.o \ $(BUILD_DIR)/asm/nw4r/snd/snd_InstancePool.o \ $(BUILD_DIR)/asm/nw4r/snd/snd_Lfo.o \ + $(BUILD_DIR)/asm/nw4r/snd/snd_MemorySoundArchive.o \ + $(BUILD_DIR)/asm/nw4r/snd/snd_MidiSeqPlayer.o \ $(BUILD_DIR)/asm/text_10_6.o \ $(BUILD_DIR)/asm/text_11.o -- cgit v1.2.3