diff --git a/asm/JSystem/JAudio2/JASAiCtrl/finishDSPFrame__9JASDriverFv.s b/asm/JSystem/JAudio2/JASAiCtrl/finishDSPFrame__9JASDriverFv.s deleted file mode 100644 index c871b2e1bd..0000000000 --- a/asm/JSystem/JAudio2/JASAiCtrl/finishDSPFrame__9JASDriverFv.s +++ /dev/null @@ -1,59 +0,0 @@ -lbl_8029C900: -/* 8029C900 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029C904 7C 08 02 A6 */ mflr r0 -/* 8029C908 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029C90C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8029C910 93 C1 00 08 */ stw r30, 8(r1) -/* 8029C914 80 6D 8D 24 */ lwz r3, sDspDacWriteBuffer__9JASDriver(r13) -/* 8029C918 38 63 00 01 */ addi r3, r3, 1 -/* 8029C91C 88 0D 82 28 */ lbz r0, data_804507A8(r13) -/* 8029C920 7C 03 00 00 */ cmpw r3, r0 -/* 8029C924 40 82 00 08 */ bne lbl_8029C92C -/* 8029C928 38 60 00 00 */ li r3, 0 -lbl_8029C92C: -/* 8029C92C 80 0D 8D 28 */ lwz r0, sDspDacReadBuffer__9JASDriver(r13) -/* 8029C930 7C 03 00 00 */ cmpw r3, r0 -/* 8029C934 40 82 00 10 */ bne lbl_8029C944 -/* 8029C938 38 00 00 00 */ li r0, 0 -/* 8029C93C 90 0D 8D 2C */ stw r0, sDspStatus__9JASDriver(r13) -/* 8029C940 48 00 00 84 */ b lbl_8029C9C4 -lbl_8029C944: -/* 8029C944 90 6D 8D 24 */ stw r3, sDspDacWriteBuffer__9JASDriver(r13) -/* 8029C948 48 00 00 A9 */ bl getSubFrames__9JASDriverFv -/* 8029C94C 90 6D 8D 58 */ stw r3, snIntCount__14JASAudioThread(r13) -/* 8029C950 38 60 00 07 */ li r3, 7 -/* 8029C954 3C 80 80 3A */ lis r4, JASAiCtrl__stringBase0@ha /* 0x8039B2F0@ha */ -/* 8029C958 38 84 B2 F0 */ addi r4, r4, JASAiCtrl__stringBase0@l /* 0x8039B2F0@l */ -/* 8029C95C 38 84 00 1C */ addi r4, r4, 0x1c -/* 8029C960 4B FF 45 85 */ bl start__8JASProbeFlPCc -/* 8029C964 48 00 00 A1 */ bl getFrameSamples__9JASDriverFv -/* 8029C968 7C 7E 1B 78 */ mr r30, r3 -/* 8029C96C 80 6D 8D 20 */ lwz r3, sDspDacBuffer__9JASDriver(r13) -/* 8029C970 80 0D 8D 24 */ lwz r0, sDspDacWriteBuffer__9JASDriver(r13) -/* 8029C974 54 00 10 3A */ slwi r0, r0, 2 -/* 8029C978 7F E3 00 2E */ lwzx r31, r3, r0 -/* 8029C97C 48 00 00 75 */ bl getSubFrames__9JASDriverFv -/* 8029C980 7F E4 FB 78 */ mr r4, r31 -/* 8029C984 57 C0 08 3C */ slwi r0, r30, 1 -/* 8029C988 7C BF 02 14 */ add r5, r31, r0 -/* 8029C98C 48 00 10 59 */ bl syncFrame__6JASDspFUlUlUl -/* 8029C990 38 00 00 01 */ li r0, 1 -/* 8029C994 90 0D 8D 2C */ stw r0, sDspStatus__9JASDriver(r13) -/* 8029C998 4B FF FD 2D */ bl updateDSP__9JASDriverFv -/* 8029C99C 81 8D 8D 30 */ lwz r12, sDspDacCallback__9JASDriver(r13) -/* 8029C9A0 28 0C 00 00 */ cmplwi r12, 0 -/* 8029C9A4 41 82 00 20 */ beq lbl_8029C9C4 -/* 8029C9A8 80 6D 8D 20 */ lwz r3, sDspDacBuffer__9JASDriver(r13) -/* 8029C9AC 80 0D 8D 24 */ lwz r0, sDspDacWriteBuffer__9JASDriver(r13) -/* 8029C9B0 54 00 10 3A */ slwi r0, r0, 2 -/* 8029C9B4 7C 63 00 2E */ lwzx r3, r3, r0 -/* 8029C9B8 7F C4 F3 78 */ mr r4, r30 -/* 8029C9BC 7D 89 03 A6 */ mtctr r12 -/* 8029C9C0 4E 80 04 21 */ bctrl -lbl_8029C9C4: -/* 8029C9C4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8029C9C8 83 C1 00 08 */ lwz r30, 8(r1) -/* 8029C9CC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029C9D0 7C 08 03 A6 */ mtlr r0 -/* 8029C9D4 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029C9D8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASAiCtrl/getDacRate__9JASDriverFv.s b/asm/JSystem/JAudio2/JASAiCtrl/getDacRate__9JASDriverFv.s deleted file mode 100644 index 669c4672a9..0000000000 --- a/asm/JSystem/JAudio2/JASAiCtrl/getDacRate__9JASDriverFv.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_8029C9E8: -/* 8029C9E8 C0 2D 82 30 */ lfs f1, sDacRate__9JASDriver(r13) -/* 8029C9EC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASAiCtrl/getDacSize__9JASDriverFv.s b/asm/JSystem/JAudio2/JASAiCtrl/getDacSize__9JASDriverFv.s deleted file mode 100644 index 995c36abbc..0000000000 --- a/asm/JSystem/JAudio2/JASAiCtrl/getDacSize__9JASDriverFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8029C9F8: -/* 8029C9F8 80 0D 82 34 */ lwz r0, sSubFrames__9JASDriver(r13) -/* 8029C9FC 1C 60 00 A0 */ mulli r3, r0, 0xa0 -/* 8029CA00 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASAiCtrl/getFrameSamples__9JASDriverFv.s b/asm/JSystem/JAudio2/JASAiCtrl/getFrameSamples__9JASDriverFv.s deleted file mode 100644 index 468f570388..0000000000 --- a/asm/JSystem/JAudio2/JASAiCtrl/getFrameSamples__9JASDriverFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8029CA04: -/* 8029CA04 80 0D 82 34 */ lwz r0, sSubFrames__9JASDriver(r13) -/* 8029CA08 1C 60 00 50 */ mulli r3, r0, 0x50 -/* 8029CA0C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASAiCtrl/registerMixCallback__9JASDriverFPFl_Ps10JASMixMode.s b/asm/JSystem/JAudio2/JASAiCtrl/registerMixCallback__9JASDriverFPFl_Ps10JASMixMode.s deleted file mode 100644 index 2fcb60b604..0000000000 --- a/asm/JSystem/JAudio2/JASAiCtrl/registerMixCallback__9JASDriverFPFl_Ps10JASMixMode.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8029C9DC: -/* 8029C9DC 90 6D 8D 3C */ stw r3, extMixCallback__9JASDriver(r13) -/* 8029C9E0 90 8D 82 2C */ stw r4, sMixMode__9JASDriver(r13) -/* 8029C9E4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASAiCtrl/startDMA__9JASDriverFv.s b/asm/JSystem/JAudio2/JASAiCtrl/startDMA__9JASDriverFv.s deleted file mode 100644 index 4109cd6926..0000000000 --- a/asm/JSystem/JAudio2/JASAiCtrl/startDMA__9JASDriverFv.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8029C4E4: -/* 8029C4E4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029C4E8 7C 08 02 A6 */ mflr r0 -/* 8029C4EC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029C4F0 48 0B 38 4D */ bl AIStartDMA -/* 8029C4F4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029C4F8 7C 08 03 A6 */ mtlr r0 -/* 8029C4FC 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029C500 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASAiCtrl/stopDMA__9JASDriverFv.s b/asm/JSystem/JAudio2/JASAiCtrl/stopDMA__9JASDriverFv.s deleted file mode 100644 index 8270987a51..0000000000 --- a/asm/JSystem/JAudio2/JASAiCtrl/stopDMA__9JASDriverFv.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8029C504: -/* 8029C504 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029C508 7C 08 02 A6 */ mflr r0 -/* 8029C50C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029C510 48 0B 38 45 */ bl AIStopDMA -/* 8029C514 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029C518 7C 08 03 A6 */ mtlr r0 -/* 8029C51C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029C520 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/DSP_CreateMap2__FUl.s b/asm/JSystem/JAudio2/JASDSPInterface/DSP_CreateMap2__FUl.s deleted file mode 100644 index 60437dfd02..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/DSP_CreateMap2__FUl.s +++ /dev/null @@ -1,32 +0,0 @@ -lbl_8029E0BC: -/* 8029E0BC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8029E0C0 7C 08 02 A6 */ mflr r0 -/* 8029E0C4 90 01 00 24 */ stw r0, 0x24(r1) -/* 8029E0C8 39 61 00 20 */ addi r11, r1, 0x20 -/* 8029E0CC 48 0C 41 11 */ bl _savegpr_29 -/* 8029E0D0 3B E0 00 00 */ li r31, 0 -/* 8029E0D4 80 8D 8D 68 */ lwz r4, CH_BUF__6JASDsp(r13) -/* 8029E0D8 54 60 20 36 */ slwi r0, r3, 4 -/* 8029E0DC 1C 00 01 80 */ mulli r0, r0, 0x180 -/* 8029E0E0 7F C4 02 14 */ add r30, r4, r0 -/* 8029E0E4 3B A0 00 00 */ li r29, 0 -lbl_8029E0E8: -/* 8029E0E8 57 FF 0C 3C */ rlwinm r31, r31, 1, 0x10, 0x1e -/* 8029E0EC 7F C3 F3 78 */ mr r3, r30 -/* 8029E0F0 4B FF FC 7D */ bl isActive__Q26JASDsp8TChannelCFv -/* 8029E0F4 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8029E0F8 41 82 00 0C */ beq lbl_8029E104 -/* 8029E0FC 63 E0 00 01 */ ori r0, r31, 1 -/* 8029E100 54 1F 04 3E */ clrlwi r31, r0, 0x10 -lbl_8029E104: -/* 8029E104 3B BD 00 01 */ addi r29, r29, 1 -/* 8029E108 2C 1D 00 10 */ cmpwi r29, 0x10 -/* 8029E10C 3B DE 01 80 */ addi r30, r30, 0x180 -/* 8029E110 41 80 FF D8 */ blt lbl_8029E0E8 -/* 8029E114 7F E3 FB 78 */ mr r3, r31 -/* 8029E118 39 61 00 20 */ addi r11, r1, 0x20 -/* 8029E11C 48 0C 41 0D */ bl _restgpr_29 -/* 8029E120 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8029E124 7C 08 03 A6 */ mtlr r0 -/* 8029E128 38 21 00 20 */ addi r1, r1, 0x20 -/* 8029E12C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/boot__6JASDspFPFPv_v.s b/asm/JSystem/JAudio2/JASDSPInterface/boot__6JASDspFPFPv_v.s deleted file mode 100644 index d833a6e25f..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/boot__6JASDspFPFPv_v.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_8029D958: -/* 8029D958 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029D95C 7C 08 02 A6 */ mflr r0 -/* 8029D960 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029D964 88 0D 8D 75 */ lbz r0, struct_804512F4+0x1(r13) -/* 8029D968 7C 00 07 75 */ extsb. r0, r0 -/* 8029D96C 40 82 00 10 */ bne lbl_8029D97C -/* 8029D970 38 00 00 01 */ li r0, 1 -/* 8029D974 98 0D 8D 74 */ stb r0, struct_804512F4+0x0(r13) -/* 8029D978 98 0D 8D 75 */ stb r0, struct_804512F4+0x1(r13) -lbl_8029D97C: -/* 8029D97C 88 0D 8D 74 */ lbz r0, struct_804512F4+0x0(r13) -/* 8029D980 28 00 00 00 */ cmplwi r0, 0 -/* 8029D984 41 82 00 10 */ beq lbl_8029D994 -/* 8029D988 48 00 0D 99 */ bl DspBoot__FPFPv_v -/* 8029D98C 38 00 00 00 */ li r0, 0 -/* 8029D990 98 0D 8D 74 */ stb r0, struct_804512F4+0x0(r13) -lbl_8029D994: -/* 8029D994 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029D998 7C 08 03 A6 */ mtlr r0 -/* 8029D99C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029D9A0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/finishWork__6JASDspFUs.s b/asm/JSystem/JAudio2/JASDSPInterface/finishWork__6JASDspFUs.s deleted file mode 100644 index 58924be8a7..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/finishWork__6JASDspFUs.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8029D9C4: -/* 8029D9C4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029D9C8 7C 08 02 A6 */ mflr r0 -/* 8029D9CC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029D9D0 48 00 0F B1 */ bl DspFinishWork__FUs -/* 8029D9D4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029D9D8 7C 08 03 A6 */ mtlr r0 -/* 8029D9DC 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029D9E0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/flushBuffer__6JASDspFv.s b/asm/JSystem/JAudio2/JASDSPInterface/flushBuffer__6JASDspFv.s deleted file mode 100644 index d4522835c6..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/flushBuffer__6JASDspFv.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_8029DA6C: -/* 8029DA6C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029DA70 7C 08 02 A6 */ mflr r0 -/* 8029DA74 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029DA78 80 6D 8D 68 */ lwz r3, CH_BUF__6JASDsp(r13) -/* 8029DA7C 38 80 60 00 */ li r4, 0x6000 -/* 8029DA80 48 09 DB 2D */ bl DCFlushRange -/* 8029DA84 80 6D 8D 6C */ lwz r3, FX_BUF__6JASDsp(r13) -/* 8029DA88 38 80 00 80 */ li r4, 0x80 -/* 8029DA8C 48 09 DB 21 */ bl DCFlushRange -/* 8029DA90 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029DA94 7C 08 03 A6 */ mtlr r0 -/* 8029DA98 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029DA9C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/flush__Q26JASDsp8TChannelFv.s b/asm/JSystem/JAudio2/JASDSPInterface/flush__Q26JASDsp8TChannelFv.s deleted file mode 100644 index 173962beca..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/flush__Q26JASDsp8TChannelFv.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8029DF8C: -/* 8029DF8C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029DF90 7C 08 02 A6 */ mflr r0 -/* 8029DF94 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029DF98 38 80 01 80 */ li r4, 0x180 -/* 8029DF9C 48 09 D6 11 */ bl DCFlushRange -/* 8029DFA0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029DFA4 7C 08 03 A6 */ mtlr r0 -/* 8029DFA8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029DFAC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/forceStop__Q26JASDsp8TChannelFv.s b/asm/JSystem/JAudio2/JASDSPInterface/forceStop__Q26JASDsp8TChannelFv.s deleted file mode 100644 index 493c27c0bf..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/forceStop__Q26JASDsp8TChannelFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8029DD60: -/* 8029DD60 38 00 00 01 */ li r0, 1 -/* 8029DD64 B0 03 01 0A */ sth r0, 0x10a(r3) -/* 8029DD68 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/getDSPHandle__6JASDspFi.s b/asm/JSystem/JAudio2/JASDSPInterface/getDSPHandle__6JASDspFi.s deleted file mode 100644 index 9676210af9..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/getDSPHandle__6JASDspFi.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8029DA38: -/* 8029DA38 80 8D 8D 68 */ lwz r4, CH_BUF__6JASDsp(r13) -/* 8029DA3C 1C 03 01 80 */ mulli r0, r3, 0x180 -/* 8029DA40 7C 64 02 14 */ add r3, r4, r0 -/* 8029DA44 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/getDSPMixerLevel__6JASDspFv.s b/asm/JSystem/JAudio2/JASDSPInterface/getDSPMixerLevel__6JASDspFv.s deleted file mode 100644 index 0e701df0ff..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/getDSPMixerLevel__6JASDspFv.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_8029DA30: -/* 8029DA30 C0 2D 8D 70 */ lfs f1, sDSPVolume__6JASDsp(r13) -/* 8029DA34 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/initAutoMixer__Q26JASDsp8TChannelFv.s b/asm/JSystem/JAudio2/JASDSPInterface/initAutoMixer__Q26JASDsp8TChannelFv.s deleted file mode 100644 index 66d1432b36..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/initAutoMixer__Q26JASDsp8TChannelFv.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_8029DEC4: -/* 8029DEC4 A0 03 00 58 */ lhz r0, 0x58(r3) -/* 8029DEC8 28 00 00 00 */ cmplwi r0, 0 -/* 8029DECC 41 82 00 10 */ beq lbl_8029DEDC -/* 8029DED0 A0 03 00 56 */ lhz r0, 0x56(r3) -/* 8029DED4 B0 03 00 54 */ sth r0, 0x54(r3) -/* 8029DED8 4E 80 00 20 */ blr -lbl_8029DEDC: -/* 8029DEDC 38 00 00 00 */ li r0, 0 -/* 8029DEE0 B0 03 00 54 */ sth r0, 0x54(r3) -/* 8029DEE4 38 00 00 01 */ li r0, 1 -/* 8029DEE8 B0 03 00 58 */ sth r0, 0x58(r3) -/* 8029DEEC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/initBuffer__6JASDspFv.s b/asm/JSystem/JAudio2/JASDSPInterface/initBuffer__6JASDspFv.s deleted file mode 100644 index dbe8d2cebc..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/initBuffer__6JASDspFv.s +++ /dev/null @@ -1,47 +0,0 @@ -lbl_8029DAC8: -/* 8029DAC8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029DACC 7C 08 02 A6 */ mflr r0 -/* 8029DAD0 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029DAD4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8029DAD8 38 60 60 00 */ li r3, 0x6000 -/* 8029DADC 80 8D 8C 90 */ lwz r4, JASDram(r13) -/* 8029DAE0 38 A0 00 20 */ li r5, 0x20 -/* 8029DAE4 48 03 12 2D */ bl __nwa__FUlP7JKRHeapi -/* 8029DAE8 90 6D 8D 68 */ stw r3, CH_BUF__6JASDsp(r13) -/* 8029DAEC 38 60 00 80 */ li r3, 0x80 -/* 8029DAF0 80 8D 8C 90 */ lwz r4, JASDram(r13) -/* 8029DAF4 38 A0 00 20 */ li r5, 0x20 -/* 8029DAF8 48 03 12 19 */ bl __nwa__FUlP7JKRHeapi -/* 8029DAFC 90 6D 8D 6C */ stw r3, FX_BUF__6JASDsp(r13) -/* 8029DB00 80 6D 8D 68 */ lwz r3, CH_BUF__6JASDsp(r13) -/* 8029DB04 38 80 60 00 */ li r4, 0x6000 -/* 8029DB08 4B FF 19 79 */ bl bzero__7JASCalcFPvUl -/* 8029DB0C 80 6D 8D 6C */ lwz r3, FX_BUF__6JASDsp(r13) -/* 8029DB10 38 80 00 80 */ li r4, 0x80 -/* 8029DB14 4B FF 19 6D */ bl bzero__7JASCalcFPvUl -/* 8029DB18 3B E0 00 00 */ li r31, 0 -/* 8029DB1C 48 00 00 18 */ b lbl_8029DB34 -lbl_8029DB20: -/* 8029DB20 7F E3 FB 78 */ mr r3, r31 -/* 8029DB24 38 80 00 00 */ li r4, 0 -/* 8029DB28 38 A0 00 00 */ li r5, 0 -/* 8029DB2C 48 00 00 4D */ bl setFXLine__6JASDspFUcPsPQ26JASDsp13FxlineConfig_ -/* 8029DB30 3B FF 00 01 */ addi r31, r31, 1 -lbl_8029DB34: -/* 8029DB34 57 E0 06 3E */ clrlwi r0, r31, 0x18 -/* 8029DB38 28 00 00 04 */ cmplwi r0, 4 -/* 8029DB3C 41 80 FF E4 */ blt lbl_8029DB20 -/* 8029DB40 38 60 00 40 */ li r3, 0x40 -/* 8029DB44 80 8D 8D 68 */ lwz r4, CH_BUF__6JASDsp(r13) -/* 8029DB48 3C A0 80 3A */ lis r5, DSPRES_FILTER__6JASDsp@ha /* 0x8039B3A0@ha */ -/* 8029DB4C 38 A5 B3 A0 */ addi r5, r5, DSPRES_FILTER__6JASDsp@l /* 0x8039B3A0@l */ -/* 8029DB50 3C C0 80 3A */ lis r6, DSPADPCM_FILTER__6JASDsp@ha /* 0x8039B360@ha */ -/* 8029DB54 38 C6 B3 60 */ addi r6, r6, DSPADPCM_FILTER__6JASDsp@l /* 0x8039B360@l */ -/* 8029DB58 80 ED 8D 6C */ lwz r7, FX_BUF__6JASDsp(r13) -/* 8029DB5C 48 00 0A 05 */ bl DsetupTable__FUlUlUlUlUl -/* 8029DB60 4B FF FF 0D */ bl flushBuffer__6JASDspFv -/* 8029DB64 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8029DB68 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029DB6C 7C 08 03 A6 */ mtlr r0 -/* 8029DB70 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029DB74 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/init__Q26JASDsp8TChannelFv.s b/asm/JSystem/JAudio2/JASDSPInterface/init__Q26JASDsp8TChannelFv.s deleted file mode 100644 index 50ce121dbd..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/init__Q26JASDsp8TChannelFv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_8029DCA4: -/* 8029DCA4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029DCA8 7C 08 02 A6 */ mflr r0 -/* 8029DCAC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029DCB0 38 00 00 00 */ li r0, 0 -/* 8029DCB4 B0 03 00 0C */ sth r0, 0xc(r3) -/* 8029DCB8 B0 03 00 02 */ sth r0, 2(r3) -/* 8029DCBC B0 03 01 0A */ sth r0, 0x10a(r3) -/* 8029DCC0 B0 03 00 00 */ sth r0, 0(r3) -/* 8029DCC4 B0 03 00 58 */ sth r0, 0x58(r3) -/* 8029DCC8 90 03 00 68 */ stw r0, 0x68(r3) -/* 8029DCCC 48 00 02 E5 */ bl initFilter__Q26JASDsp8TChannelFv -/* 8029DCD0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029DCD4 7C 08 03 A6 */ mtlr r0 -/* 8029DCD8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029DCDC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/invalChannelAll__6JASDspFv.s b/asm/JSystem/JAudio2/JASDSPInterface/invalChannelAll__6JASDspFv.s deleted file mode 100644 index 5912d87965..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/invalChannelAll__6JASDspFv.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_8029DAA0: -/* 8029DAA0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029DAA4 7C 08 02 A6 */ mflr r0 -/* 8029DAA8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029DAAC 80 6D 8D 68 */ lwz r3, CH_BUF__6JASDsp(r13) -/* 8029DAB0 38 80 60 00 */ li r4, 0x6000 -/* 8029DAB4 48 09 DA CD */ bl DCInvalidateRange -/* 8029DAB8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029DABC 7C 08 03 A6 */ mtlr r0 -/* 8029DAC0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029DAC4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/isActive__Q26JASDsp8TChannelCFv.s b/asm/JSystem/JAudio2/JASDSPInterface/isActive__Q26JASDsp8TChannelCFv.s deleted file mode 100644 index 691104fecc..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/isActive__Q26JASDsp8TChannelCFv.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8029DD6C: -/* 8029DD6C A0 63 00 00 */ lhz r3, 0(r3) -/* 8029DD70 30 03 FF FF */ addic r0, r3, -1 -/* 8029DD74 7C 60 19 10 */ subfe r3, r0, r3 -/* 8029DD78 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/isFinish__Q26JASDsp8TChannelCFv.s b/asm/JSystem/JAudio2/JASDSPInterface/isFinish__Q26JASDsp8TChannelCFv.s deleted file mode 100644 index 4dfe13c4b4..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/isFinish__Q26JASDsp8TChannelCFv.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8029DD7C: -/* 8029DD7C A0 63 00 02 */ lhz r3, 2(r3) -/* 8029DD80 30 03 FF FF */ addic r0, r3, -1 -/* 8029DD84 7C 60 19 10 */ subfe r3, r0, r3 -/* 8029DD88 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/playStop__Q26JASDsp8TChannelFv.s b/asm/JSystem/JAudio2/JASDSPInterface/playStop__Q26JASDsp8TChannelFv.s deleted file mode 100644 index f0a148920e..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/playStop__Q26JASDsp8TChannelFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8029DD44: -/* 8029DD44 38 00 00 00 */ li r0, 0 -/* 8029DD48 B0 03 00 00 */ sth r0, 0(r3) -/* 8029DD4C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/releaseHalt__6JASDspFUl.s b/asm/JSystem/JAudio2/JASDSPInterface/releaseHalt__6JASDspFUl.s deleted file mode 100644 index 319876044b..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/releaseHalt__6JASDspFUl.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8029D9A4: -/* 8029D9A4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029D9A8 7C 08 02 A6 */ mflr r0 -/* 8029D9AC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029D9B0 48 00 0B 31 */ bl DSPReleaseHalt2__FUl -/* 8029D9B4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029D9B8 7C 08 03 A6 */ mtlr r0 -/* 8029D9BC 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029D9C0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/replyFinishRequest__Q26JASDsp8TChannelFv.s b/asm/JSystem/JAudio2/JASDSPInterface/replyFinishRequest__Q26JASDsp8TChannelFv.s deleted file mode 100644 index 71fa0dbe97..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/replyFinishRequest__Q26JASDsp8TChannelFv.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8029DD50: -/* 8029DD50 38 00 00 00 */ li r0, 0 -/* 8029DD54 B0 03 00 02 */ sth r0, 2(r3) -/* 8029DD58 B0 03 00 00 */ sth r0, 0(r3) -/* 8029DD5C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/setAutoMixer__Q26JASDsp8TChannelFUsUcUcUcUc.s b/asm/JSystem/JAudio2/JASDSPInterface/setAutoMixer__Q26JASDsp8TChannelFUsUcUcUcUc.s deleted file mode 100644 index a0f528809e..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/setAutoMixer__Q26JASDsp8TChannelFUsUcUcUcUc.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_8029DEF0: -/* 8029DEF0 54 C0 06 3E */ clrlwi r0, r6, 0x18 -/* 8029DEF4 50 A0 44 2E */ rlwimi r0, r5, 8, 0x10, 0x17 -/* 8029DEF8 B0 03 00 50 */ sth r0, 0x50(r3) -/* 8029DEFC 54 E5 44 2E */ rlwinm r5, r7, 8, 0x10, 0x17 -/* 8029DF00 54 E0 0D FC */ rlwinm r0, r7, 1, 0x17, 0x1e -/* 8029DF04 7C A0 03 78 */ or r0, r5, r0 -/* 8029DF08 B0 03 00 52 */ sth r0, 0x52(r3) -/* 8029DF0C B0 83 00 56 */ sth r4, 0x56(r3) -/* 8029DF10 38 00 00 01 */ li r0, 1 -/* 8029DF14 B0 03 00 58 */ sth r0, 0x58(r3) -/* 8029DF18 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/setBusConnect__Q26JASDsp8TChannelFUcUc.s b/asm/JSystem/JAudio2/JASDSPInterface/setBusConnect__Q26JASDsp8TChannelFUcUc.s deleted file mode 100644 index e710ecb9ca..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/setBusConnect__Q26JASDsp8TChannelFUcUc.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8029E09C: -/* 8029E09C 54 A0 0D FC */ rlwinm r0, r5, 1, 0x17, 0x1e -/* 8029E0A0 3C A0 80 3A */ lis r5, connect_table@ha /* 0x8039B8A0@ha */ -/* 8029E0A4 38 A5 B8 A0 */ addi r5, r5, connect_table@l /* 0x8039B8A0@l */ -/* 8029E0A8 7C A5 02 2E */ lhzx r5, r5, r0 -/* 8029E0AC 54 84 1D 78 */ rlwinm r4, r4, 3, 0x15, 0x1c -/* 8029E0B0 38 04 00 10 */ addi r0, r4, 0x10 -/* 8029E0B4 7C A3 03 2E */ sthx r5, r3, r0 -/* 8029E0B8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/setDSPMixerLevel__6JASDspFf.s b/asm/JSystem/JAudio2/JASDSPInterface/setDSPMixerLevel__6JASDspFf.s deleted file mode 100644 index f0635afbcd..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/setDSPMixerLevel__6JASDspFf.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_8029DA04: -/* 8029DA04 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029DA08 7C 08 02 A6 */ mflr r0 -/* 8029DA0C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029DA10 D0 2D 8D 70 */ stfs f1, sDSPVolume__6JASDsp(r13) -/* 8029DA14 C0 02 BD 48 */ lfs f0, lit_176(r2) -/* 8029DA18 EC 21 00 32 */ fmuls f1, f1, f0 -/* 8029DA1C 48 00 0B C5 */ bl DsetMixerLevel__Ff -/* 8029DA20 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029DA24 7C 08 03 A6 */ mtlr r0 -/* 8029DA28 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029DA2C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/setFIR8FilterParam__Q26JASDsp8TChannelFPs.s b/asm/JSystem/JAudio2/JASDSPInterface/setFIR8FilterParam__Q26JASDsp8TChannelFPs.s deleted file mode 100644 index b6c50c2e96..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/setFIR8FilterParam__Q26JASDsp8TChannelFPs.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_8029E06C: -/* 8029E06C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029E070 7C 08 02 A6 */ mflr r0 -/* 8029E074 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029E078 38 A0 00 08 */ li r5, 8 -/* 8029E07C 38 63 01 20 */ addi r3, r3, 0x120 -/* 8029E080 4B FF F9 C9 */ bl setFilterTable__6JASDspFPsPsUl -/* 8029E084 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029E088 7C 08 03 A6 */ mtlr r0 -/* 8029E08C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029E090 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/setFilterMode__Q26JASDsp8TChannelFUs.s b/asm/JSystem/JAudio2/JASDSPInterface/setFilterMode__Q26JASDsp8TChannelFUs.s deleted file mode 100644 index bdd48fb650..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/setFilterMode__Q26JASDsp8TChannelFUs.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_8029E00C: -/* 8029E00C 54 85 06 B5 */ rlwinm. r5, r4, 0, 0x1a, 0x1a -/* 8029E010 54 80 06 FE */ clrlwi r0, r4, 0x1b -/* 8029E014 41 82 00 14 */ beq lbl_8029E028 -/* 8029E018 28 00 00 14 */ cmplwi r0, 0x14 -/* 8029E01C 40 81 00 18 */ ble lbl_8029E034 -/* 8029E020 38 00 00 14 */ li r0, 0x14 -/* 8029E024 48 00 00 10 */ b lbl_8029E034 -lbl_8029E028: -/* 8029E028 28 00 00 18 */ cmplwi r0, 0x18 -/* 8029E02C 40 81 00 08 */ ble lbl_8029E034 -/* 8029E030 38 00 00 18 */ li r0, 0x18 -lbl_8029E034: -/* 8029E034 54 00 06 3E */ clrlwi r0, r0, 0x18 -/* 8029E038 7C 05 02 14 */ add r0, r5, r0 -/* 8029E03C B0 03 01 08 */ sth r0, 0x108(r3) -/* 8029E040 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/setFilterTable__6JASDspFPsPsUl.s b/asm/JSystem/JAudio2/JASDSPInterface/setFilterTable__6JASDspFPsPsUl.s deleted file mode 100644 index cda5c1b9d5..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/setFilterTable__6JASDspFPsPsUl.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_8029DA48: -/* 8029DA48 7C A9 03 A6 */ mtctr r5 -/* 8029DA4C 28 05 00 00 */ cmplwi r5, 0 -/* 8029DA50 4C 81 00 20 */ blelr -lbl_8029DA54: -/* 8029DA54 A8 04 00 00 */ lha r0, 0(r4) -/* 8029DA58 B0 03 00 00 */ sth r0, 0(r3) -/* 8029DA5C 38 63 00 02 */ addi r3, r3, 2 -/* 8029DA60 38 84 00 02 */ addi r4, r4, 2 -/* 8029DA64 42 00 FF F0 */ bdnz lbl_8029DA54 -/* 8029DA68 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/setIIRFilterParam__Q26JASDsp8TChannelFPs.s b/asm/JSystem/JAudio2/JASDSPInterface/setIIRFilterParam__Q26JASDsp8TChannelFPs.s deleted file mode 100644 index 8eb1e43ad7..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/setIIRFilterParam__Q26JASDsp8TChannelFPs.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_8029E044: -/* 8029E044 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029E048 7C 08 02 A6 */ mflr r0 -/* 8029E04C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029E050 38 A0 00 08 */ li r5, 8 -/* 8029E054 38 63 01 48 */ addi r3, r3, 0x148 -/* 8029E058 4B FF F9 F1 */ bl setFilterTable__6JASDspFPsPsUl -/* 8029E05C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029E060 7C 08 03 A6 */ mtlr r0 -/* 8029E064 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029E068 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/setMixerInitVolume__Q26JASDsp8TChannelFUcs.s b/asm/JSystem/JAudio2/JASDSPInterface/setMixerInitVolume__Q26JASDsp8TChannelFUcs.s deleted file mode 100644 index 0b049435d6..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/setMixerInitVolume__Q26JASDsp8TChannelFUcs.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8029DF34: -/* 8029DF34 54 84 1D 78 */ rlwinm r4, r4, 3, 0x15, 0x1c -/* 8029DF38 38 84 00 10 */ addi r4, r4, 0x10 -/* 8029DF3C 7C 83 22 14 */ add r4, r3, r4 -/* 8029DF40 B0 A4 00 04 */ sth r5, 4(r4) -/* 8029DF44 B0 A4 00 02 */ sth r5, 2(r4) -/* 8029DF48 38 00 00 00 */ li r0, 0 -/* 8029DF4C B0 04 00 06 */ sth r0, 6(r4) -/* 8029DF50 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/setMixerVolume__Q26JASDsp8TChannelFUcs.s b/asm/JSystem/JAudio2/JASDSPInterface/setMixerVolume__Q26JASDsp8TChannelFUcs.s deleted file mode 100644 index 2613b6187c..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/setMixerVolume__Q26JASDsp8TChannelFUcs.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_8029DF54: -/* 8029DF54 A0 03 01 0A */ lhz r0, 0x10a(r3) -/* 8029DF58 28 00 00 00 */ cmplwi r0, 0 -/* 8029DF5C 4C 82 00 20 */ bnelr -/* 8029DF60 54 84 1D 78 */ rlwinm r4, r4, 3, 0x15, 0x1c -/* 8029DF64 38 84 00 10 */ addi r4, r4, 0x10 -/* 8029DF68 7C 83 22 14 */ add r4, r3, r4 -/* 8029DF6C B0 A4 00 02 */ sth r5, 2(r4) -/* 8029DF70 A0 04 00 06 */ lhz r0, 6(r4) -/* 8029DF74 54 00 06 3E */ clrlwi r0, r0, 0x18 -/* 8029DF78 B0 04 00 06 */ sth r0, 6(r4) -/* 8029DF7C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/setOscInfo__Q26JASDsp8TChannelFUl.s b/asm/JSystem/JAudio2/JASDSPInterface/setOscInfo__Q26JASDsp8TChannelFUl.s deleted file mode 100644 index b4869209bd..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/setOscInfo__Q26JASDsp8TChannelFUl.s +++ /dev/null @@ -1,7 +0,0 @@ -lbl_8029DEAC: -/* 8029DEAC 38 00 00 00 */ li r0, 0 -/* 8029DEB0 90 03 01 18 */ stw r0, 0x118(r3) -/* 8029DEB4 38 00 00 10 */ li r0, 0x10 -/* 8029DEB8 B0 03 00 64 */ sth r0, 0x64(r3) -/* 8029DEBC B0 83 01 00 */ sth r4, 0x100(r3) -/* 8029DEC0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/setPauseFlag__Q26JASDsp8TChannelFUc.s b/asm/JSystem/JAudio2/JASDSPInterface/setPauseFlag__Q26JASDsp8TChannelFUc.s deleted file mode 100644 index 33f09940fb..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/setPauseFlag__Q26JASDsp8TChannelFUc.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8029DF80: -/* 8029DF80 54 80 06 3E */ clrlwi r0, r4, 0x18 -/* 8029DF84 B0 03 00 0C */ sth r0, 0xc(r3) -/* 8029DF88 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/setPitch__Q26JASDsp8TChannelFUs.s b/asm/JSystem/JAudio2/JASDSPInterface/setPitch__Q26JASDsp8TChannelFUs.s deleted file mode 100644 index 1f49b2e149..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/setPitch__Q26JASDsp8TChannelFUs.s +++ /dev/null @@ -1,8 +0,0 @@ -lbl_8029DF1C: -/* 8029DF1C 54 80 04 3E */ clrlwi r0, r4, 0x10 -/* 8029DF20 28 00 7F FF */ cmplwi r0, 0x7fff -/* 8029DF24 41 80 00 08 */ blt lbl_8029DF2C -/* 8029DF28 38 80 7F FF */ li r4, 0x7fff -lbl_8029DF2C: -/* 8029DF2C B0 83 00 04 */ sth r4, 4(r3) -/* 8029DF30 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/setWaveInfo__Q26JASDsp8TChannelFRC11JASWaveInfoUlUl.s b/asm/JSystem/JAudio2/JASDSPInterface/setWaveInfo__Q26JASDsp8TChannelFRC11JASWaveInfoUlUl.s deleted file mode 100644 index e6304c7045..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/setWaveInfo__Q26JASDsp8TChannelFRC11JASWaveInfoUlUl.s +++ /dev/null @@ -1,81 +0,0 @@ -lbl_8029DD8C: -/* 8029DD8C 90 A3 01 18 */ stw r5, 0x118(r3) -/* 8029DD90 88 E4 00 00 */ lbz r7, 0(r4) -/* 8029DD94 38 A2 BD 4C */ la r5, COMP_BLOCKSAMPLES(r2) /* 8045574C-_SDA2_BASE_ */ -/* 8029DD98 7C 05 38 AE */ lbzx r0, r5, r7 -/* 8029DD9C B0 03 00 64 */ sth r0, 0x64(r3) -/* 8029DDA0 38 A2 BD 54 */ la r5, COMP_BLOCKBYTES(r2) /* 80455754-_SDA2_BASE_ */ -/* 8029DDA4 7C 05 38 AE */ lbzx r0, r5, r7 -/* 8029DDA8 B0 03 01 00 */ sth r0, 0x100(r3) -/* 8029DDAC 38 00 00 00 */ li r0, 0 -/* 8029DDB0 90 03 00 68 */ stw r0, 0x68(r3) -/* 8029DDB4 A0 03 01 00 */ lhz r0, 0x100(r3) -/* 8029DDB8 28 00 00 04 */ cmplwi r0, 4 -/* 8029DDBC 4D 80 00 20 */ bltlr -/* 8029DDC0 80 04 00 18 */ lwz r0, 0x18(r4) -/* 8029DDC4 90 03 01 1C */ stw r0, 0x11c(r3) -/* 8029DDC8 88 04 00 02 */ lbz r0, 2(r4) -/* 8029DDCC B0 03 01 02 */ sth r0, 0x102(r3) -/* 8029DDD0 A0 03 01 02 */ lhz r0, 0x102(r3) -/* 8029DDD4 28 00 00 00 */ cmplwi r0, 0 -/* 8029DDD8 41 82 00 34 */ beq lbl_8029DE0C -/* 8029DDDC 28 06 00 01 */ cmplwi r6, 1 -/* 8029DDE0 40 82 00 08 */ bne lbl_8029DDE8 -/* 8029DDE4 80 C4 00 10 */ lwz r6, 0x10(r4) -lbl_8029DDE8: -/* 8029DDE8 80 04 00 10 */ lwz r0, 0x10(r4) -/* 8029DDEC 90 03 01 10 */ stw r0, 0x110(r3) -/* 8029DDF0 80 04 00 14 */ lwz r0, 0x14(r4) -/* 8029DDF4 90 03 01 14 */ stw r0, 0x114(r3) -/* 8029DDF8 A8 04 00 1C */ lha r0, 0x1c(r4) -/* 8029DDFC B0 03 01 04 */ sth r0, 0x104(r3) -/* 8029DE00 A8 04 00 1E */ lha r0, 0x1e(r4) -/* 8029DE04 B0 03 01 06 */ sth r0, 0x106(r3) -/* 8029DE08 48 00 00 0C */ b lbl_8029DE14 -lbl_8029DE0C: -/* 8029DE0C 80 03 01 1C */ lwz r0, 0x11c(r3) -/* 8029DE10 90 03 01 14 */ stw r0, 0x114(r3) -lbl_8029DE14: -/* 8029DE14 28 06 00 00 */ cmplwi r6, 0 -/* 8029DE18 41 82 00 70 */ beq lbl_8029DE88 -/* 8029DE1C 80 03 01 14 */ lwz r0, 0x114(r3) -/* 8029DE20 7C 00 30 40 */ cmplw r0, r6 -/* 8029DE24 40 81 00 64 */ ble lbl_8029DE88 -/* 8029DE28 88 04 00 00 */ lbz r0, 0(r4) -/* 8029DE2C 2C 00 00 02 */ cmpwi r0, 2 -/* 8029DE30 40 80 00 10 */ bge lbl_8029DE40 -/* 8029DE34 2C 00 00 00 */ cmpwi r0, 0 -/* 8029DE38 40 80 00 14 */ bge lbl_8029DE4C -/* 8029DE3C 48 00 00 4C */ b lbl_8029DE88 -lbl_8029DE40: -/* 8029DE40 2C 00 00 04 */ cmpwi r0, 4 -/* 8029DE44 40 80 00 44 */ bge lbl_8029DE88 -/* 8029DE48 48 00 00 3C */ b lbl_8029DE84 -lbl_8029DE4C: -/* 8029DE4C 90 C3 00 68 */ stw r6, 0x68(r3) -/* 8029DE50 80 83 01 18 */ lwz r4, 0x118(r3) -/* 8029DE54 A0 03 01 00 */ lhz r0, 0x100(r3) -/* 8029DE58 7C 06 01 D6 */ mullw r0, r6, r0 -/* 8029DE5C 54 00 E1 3E */ srwi r0, r0, 4 -/* 8029DE60 7C 04 02 14 */ add r0, r4, r0 -/* 8029DE64 90 03 01 18 */ stw r0, 0x118(r3) -/* 8029DE68 80 03 01 10 */ lwz r0, 0x110(r3) -/* 8029DE6C 7C 06 00 50 */ subf r0, r6, r0 -/* 8029DE70 90 03 01 10 */ stw r0, 0x110(r3) -/* 8029DE74 80 03 01 14 */ lwz r0, 0x114(r3) -/* 8029DE78 7C 06 00 50 */ subf r0, r6, r0 -/* 8029DE7C 90 03 01 14 */ stw r0, 0x114(r3) -/* 8029DE80 48 00 00 08 */ b lbl_8029DE88 -lbl_8029DE84: -/* 8029DE84 90 C3 00 68 */ stw r6, 0x68(r3) -lbl_8029DE88: -/* 8029DE88 38 80 00 00 */ li r4, 0 -/* 8029DE8C 7C 85 23 78 */ mr r5, r4 -/* 8029DE90 38 00 00 10 */ li r0, 0x10 -/* 8029DE94 7C 09 03 A6 */ mtctr r0 -lbl_8029DE98: -/* 8029DE98 38 04 00 B0 */ addi r0, r4, 0xb0 -/* 8029DE9C 7C A3 03 2E */ sthx r5, r3, r0 -/* 8029DEA0 38 84 00 02 */ addi r4, r4, 2 -/* 8029DEA4 42 00 FF F4 */ bdnz lbl_8029DE98 -/* 8029DEA8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPInterface/syncFrame__6JASDspFUlUlUl.s b/asm/JSystem/JAudio2/JASDSPInterface/syncFrame__6JASDspFUlUlUl.s deleted file mode 100644 index 269ac473bf..0000000000 --- a/asm/JSystem/JAudio2/JASDSPInterface/syncFrame__6JASDspFUlUlUl.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8029D9E4: -/* 8029D9E4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029D9E8 7C 08 02 A6 */ mflr r0 -/* 8029D9EC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029D9F0 48 00 14 51 */ bl DsyncFrame2__FUlUlUl -/* 8029D9F4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029D9F8 7C 08 03 A6 */ mtlr r0 -/* 8029D9FC 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029DA00 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDriverIF/DSPSyncCallback__9JASDriverFv.s b/asm/JSystem/JAudio2/JASDriverIF/DSPSyncCallback__9JASDriverFv.s deleted file mode 100644 index 6f5ac47834..0000000000 --- a/asm/JSystem/JAudio2/JASDriverIF/DSPSyncCallback__9JASDriverFv.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_8029E2D0: -/* 8029E2D0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029E2D4 7C 08 02 A6 */ mflr r0 -/* 8029E2D8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029E2DC 3C 60 80 43 */ lis r3, sDspSyncCallback__9JASDriver@ha /* 0x80431C78@ha */ -/* 8029E2E0 38 63 1C 78 */ addi r3, r3, sDspSyncCallback__9JASDriver@l /* 0x80431C78@l */ -/* 8029E2E4 4B FF 1D E1 */ bl callback__14JASCallbackMgrFv -/* 8029E2E8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029E2EC 7C 08 03 A6 */ mtlr r0 -/* 8029E2F0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029E2F4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDriverIF/__ct__Q214JASCallbackMgr9TCallbackFv.s b/asm/JSystem/JAudio2/JASDriverIF/__ct__Q214JASCallbackMgr9TCallbackFv.s deleted file mode 100644 index f0a05510e2..0000000000 --- a/asm/JSystem/JAudio2/JASDriverIF/__ct__Q214JASCallbackMgr9TCallbackFv.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8029E3A0: -/* 8029E3A0 38 00 00 00 */ li r0, 0 -/* 8029E3A4 90 03 00 00 */ stw r0, 0(r3) -/* 8029E3A8 90 03 00 04 */ stw r0, 4(r3) -/* 8029E3AC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDriverIF/__sinit_JASDriverIF_cpp.s b/asm/JSystem/JAudio2/JASDriverIF/__sinit_JASDriverIF_cpp.s deleted file mode 100644 index a8678c1cab..0000000000 --- a/asm/JSystem/JAudio2/JASDriverIF/__sinit_JASDriverIF_cpp.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_8029E320: -/* 8029E320 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029E324 7C 08 02 A6 */ mflr r0 -/* 8029E328 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029E32C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8029E330 3C 60 80 43 */ lis r3, sDspSyncCallback__9JASDriver@ha /* 0x80431C78@ha */ -/* 8029E334 3B E3 1C 78 */ addi r31, r3, sDspSyncCallback__9JASDriver@l /* 0x80431C78@l */ -/* 8029E338 38 7F 00 00 */ addi r3, r31, 0 -/* 8029E33C 3C 80 80 2A */ lis r4, __ct__Q214JASCallbackMgr9TCallbackFv@ha /* 0x8029E3A0@ha */ -/* 8029E340 38 84 E3 A0 */ addi r4, r4, __ct__Q214JASCallbackMgr9TCallbackFv@l /* 0x8029E3A0@l */ -/* 8029E344 38 A0 00 00 */ li r5, 0 -/* 8029E348 38 C0 00 08 */ li r6, 8 -/* 8029E34C 38 E0 00 20 */ li r7, 0x20 -/* 8029E350 48 0C 3A 11 */ bl __construct_array -/* 8029E354 38 7F 01 00 */ addi r3, r31, 0x100 -/* 8029E358 3C 80 80 2A */ lis r4, __ct__Q214JASCallbackMgr9TCallbackFv@ha /* 0x8029E3A0@ha */ -/* 8029E35C 38 84 E3 A0 */ addi r4, r4, __ct__Q214JASCallbackMgr9TCallbackFv@l /* 0x8029E3A0@l */ -/* 8029E360 38 A0 00 00 */ li r5, 0 -/* 8029E364 38 C0 00 08 */ li r6, 8 -/* 8029E368 38 E0 00 20 */ li r7, 0x20 -/* 8029E36C 48 0C 39 F5 */ bl __construct_array -/* 8029E370 38 7F 02 00 */ addi r3, r31, 0x200 -/* 8029E374 3C 80 80 2A */ lis r4, __ct__Q214JASCallbackMgr9TCallbackFv@ha /* 0x8029E3A0@ha */ -/* 8029E378 38 84 E3 A0 */ addi r4, r4, __ct__Q214JASCallbackMgr9TCallbackFv@l /* 0x8029E3A0@l */ -/* 8029E37C 38 A0 00 00 */ li r5, 0 -/* 8029E380 38 C0 00 08 */ li r6, 8 -/* 8029E384 38 E0 00 20 */ li r7, 0x20 -/* 8029E388 48 0C 39 D9 */ bl __construct_array -/* 8029E38C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8029E390 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029E394 7C 08 03 A6 */ mtlr r0 -/* 8029E398 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029E39C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDriverIF/getDSPLevel__9JASDriverFv.s b/asm/JSystem/JAudio2/JASDriverIF/getDSPLevel__9JASDriverFv.s deleted file mode 100644 index 5dc68f2677..0000000000 --- a/asm/JSystem/JAudio2/JASDriverIF/getDSPLevel__9JASDriverFv.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8029E158: -/* 8029E158 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029E15C 7C 08 02 A6 */ mflr r0 -/* 8029E160 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029E164 4B FF F8 CD */ bl getDSPMixerLevel__6JASDspFv -/* 8029E168 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029E16C 7C 08 03 A6 */ mtlr r0 -/* 8029E170 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029E174 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDriverIF/registerDspSyncCallback__9JASDriverFPFPv_lPv.s b/asm/JSystem/JAudio2/JASDriverIF/registerDspSyncCallback__9JASDriverFPFPv_lPv.s deleted file mode 100644 index a3937ed12b..0000000000 --- a/asm/JSystem/JAudio2/JASDriverIF/registerDspSyncCallback__9JASDriverFPFPv_lPv.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_8029E240: -/* 8029E240 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029E244 7C 08 02 A6 */ mflr r0 -/* 8029E248 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029E24C 7C 60 1B 78 */ mr r0, r3 -/* 8029E250 7C 85 23 78 */ mr r5, r4 -/* 8029E254 3C 60 80 43 */ lis r3, sDspSyncCallback__9JASDriver@ha /* 0x80431C78@ha */ -/* 8029E258 38 63 1C 78 */ addi r3, r3, sDspSyncCallback__9JASDriver@l /* 0x80431C78@l */ -/* 8029E25C 7C 04 03 78 */ mr r4, r0 -/* 8029E260 4B FF 1D 49 */ bl regist__14JASCallbackMgrFPFPv_lPv -/* 8029E264 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029E268 7C 08 03 A6 */ mtlr r0 -/* 8029E26C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029E270 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDriverIF/registerSubFrameCallback__9JASDriverFPFPv_lPv.s b/asm/JSystem/JAudio2/JASDriverIF/registerSubFrameCallback__9JASDriverFPFPv_lPv.s deleted file mode 100644 index 05d6c9bce9..0000000000 --- a/asm/JSystem/JAudio2/JASDriverIF/registerSubFrameCallback__9JASDriverFPFPv_lPv.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_8029E274: -/* 8029E274 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029E278 7C 08 02 A6 */ mflr r0 -/* 8029E27C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029E280 7C 60 1B 78 */ mr r0, r3 -/* 8029E284 7C 85 23 78 */ mr r5, r4 -/* 8029E288 3C 60 80 43 */ lis r3, sSubFrameCallback__9JASDriver@ha /* 0x80431D78@ha */ -/* 8029E28C 38 63 1D 78 */ addi r3, r3, sSubFrameCallback__9JASDriver@l /* 0x80431D78@l */ -/* 8029E290 7C 04 03 78 */ mr r4, r0 -/* 8029E294 4B FF 1D 15 */ bl regist__14JASCallbackMgrFPFPv_lPv -/* 8029E298 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029E29C 7C 08 03 A6 */ mtlr r0 -/* 8029E2A0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029E2A4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDriverIF/rejectCallback__9JASDriverFPFPv_lPv.s b/asm/JSystem/JAudio2/JASDriverIF/rejectCallback__9JASDriverFPFPv_lPv.s deleted file mode 100644 index 335f22811d..0000000000 --- a/asm/JSystem/JAudio2/JASDriverIF/rejectCallback__9JASDriverFPFPv_lPv.s +++ /dev/null @@ -1,32 +0,0 @@ -lbl_8029E1C4: -/* 8029E1C4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8029E1C8 7C 08 02 A6 */ mflr r0 -/* 8029E1CC 90 01 00 24 */ stw r0, 0x24(r1) -/* 8029E1D0 39 61 00 20 */ addi r11, r1, 0x20 -/* 8029E1D4 48 0C 40 05 */ bl _savegpr_28 -/* 8029E1D8 7C 7C 1B 78 */ mr r28, r3 -/* 8029E1DC 7C 9D 23 78 */ mr r29, r4 -/* 8029E1E0 3C 60 80 43 */ lis r3, sDspSyncCallback__9JASDriver@ha /* 0x80431C78@ha */ -/* 8029E1E4 3B C3 1C 78 */ addi r30, r3, sDspSyncCallback__9JASDriver@l /* 0x80431C78@l */ -/* 8029E1E8 38 7E 00 00 */ addi r3, r30, 0 -/* 8029E1EC 7F 84 E3 78 */ mr r4, r28 -/* 8029E1F0 7F A5 EB 78 */ mr r5, r29 -/* 8029E1F4 4B FF 1E 3D */ bl reject__14JASCallbackMgrFPFPv_lPv -/* 8029E1F8 7C 7F 1B 78 */ mr r31, r3 -/* 8029E1FC 38 7E 01 00 */ addi r3, r30, 0x100 -/* 8029E200 7F 84 E3 78 */ mr r4, r28 -/* 8029E204 7F A5 EB 78 */ mr r5, r29 -/* 8029E208 4B FF 1E 29 */ bl reject__14JASCallbackMgrFPFPv_lPv -/* 8029E20C 7F FF 1A 14 */ add r31, r31, r3 -/* 8029E210 38 7E 02 00 */ addi r3, r30, 0x200 -/* 8029E214 7F 84 E3 78 */ mr r4, r28 -/* 8029E218 7F A5 EB 78 */ mr r5, r29 -/* 8029E21C 4B FF 1E 15 */ bl reject__14JASCallbackMgrFPFPv_lPv -/* 8029E220 7F FF 1A 14 */ add r31, r31, r3 -/* 8029E224 7F E3 FB 78 */ mr r3, r31 -/* 8029E228 39 61 00 20 */ addi r11, r1, 0x20 -/* 8029E22C 48 0C 3F F9 */ bl _restgpr_28 -/* 8029E230 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8029E234 7C 08 03 A6 */ mtlr r0 -/* 8029E238 38 21 00 20 */ addi r1, r1, 0x20 -/* 8029E23C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDriverIF/setDSPLevel__9JASDriverFf.s b/asm/JSystem/JAudio2/JASDriverIF/setDSPLevel__9JASDriverFf.s deleted file mode 100644 index f0076ac7be..0000000000 --- a/asm/JSystem/JAudio2/JASDriverIF/setDSPLevel__9JASDriverFf.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8029E130: -/* 8029E130 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029E134 7C 08 02 A6 */ mflr r0 -/* 8029E138 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029E13C 4B FF F8 C9 */ bl setDSPMixerLevel__6JASDspFf -/* 8029E140 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029E144 7C 08 03 A6 */ mtlr r0 -/* 8029E148 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029E14C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDriverIF/setOutputMode__9JASDriverFUl.s b/asm/JSystem/JAudio2/JASDriverIF/setOutputMode__9JASDriverFUl.s deleted file mode 100644 index 79aaae4812..0000000000 --- a/asm/JSystem/JAudio2/JASDriverIF/setOutputMode__9JASDriverFUl.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_8029E178: -/* 8029E178 90 6D 82 44 */ stw r3, JAS_SYSTEM_OUTPUT_MODE__9JASDriver(r13) -/* 8029E17C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDriverIF/subframeCallback__9JASDriverFv.s b/asm/JSystem/JAudio2/JASDriverIF/subframeCallback__9JASDriverFv.s deleted file mode 100644 index 9b9921812a..0000000000 --- a/asm/JSystem/JAudio2/JASDriverIF/subframeCallback__9JASDriverFv.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_8029E2A8: -/* 8029E2A8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029E2AC 7C 08 02 A6 */ mflr r0 -/* 8029E2B0 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029E2B4 3C 60 80 43 */ lis r3, sSubFrameCallback__9JASDriver@ha /* 0x80431D78@ha */ -/* 8029E2B8 38 63 1D 78 */ addi r3, r3, sSubFrameCallback__9JASDriver@l /* 0x80431D78@l */ -/* 8029E2BC 4B FF 1E 09 */ bl callback__14JASCallbackMgrFv -/* 8029E2C0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029E2C4 7C 08 03 A6 */ mtlr r0 -/* 8029E2C8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029E2CC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDriverIF/updateDacCallback__9JASDriverFv.s b/asm/JSystem/JAudio2/JASDriverIF/updateDacCallback__9JASDriverFv.s deleted file mode 100644 index a60b71e439..0000000000 --- a/asm/JSystem/JAudio2/JASDriverIF/updateDacCallback__9JASDriverFv.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_8029E2F8: -/* 8029E2F8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029E2FC 7C 08 02 A6 */ mflr r0 -/* 8029E300 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029E304 3C 60 80 43 */ lis r3, sUpdateDacCallback__9JASDriver@ha /* 0x80431E78@ha */ -/* 8029E308 38 63 1E 78 */ addi r3, r3, sUpdateDacCallback__9JASDriver@l /* 0x80431E78@l */ -/* 8029E30C 4B FF 1D B9 */ bl callback__14JASCallbackMgrFv -/* 8029E310 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029E314 7C 08 03 A6 */ mtlr r0 -/* 8029E318 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029E31C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDriverIF/waitSubFrame__9JASDriverFv.s b/asm/JSystem/JAudio2/JASDriverIF/waitSubFrame__9JASDriverFv.s deleted file mode 100644 index c457438256..0000000000 --- a/asm/JSystem/JAudio2/JASDriverIF/waitSubFrame__9JASDriverFv.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_8029E188: -/* 8029E188 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029E18C 7C 08 02 A6 */ mflr r0 -/* 8029E190 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029E194 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8029E198 4B FF EB 3D */ bl getSubFrameCounter__9JASDriverFv -/* 8029E19C 7C 7F 1B 78 */ mr r31, r3 -lbl_8029E1A0: -/* 8029E1A0 48 0A 30 B1 */ bl OSYieldThread -/* 8029E1A4 4B FF EB 31 */ bl getSubFrameCounter__9JASDriverFv -/* 8029E1A8 7C 1F 18 40 */ cmplw r31, r3 -/* 8029E1AC 41 82 FF F4 */ beq lbl_8029E1A0 -/* 8029E1B0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8029E1B4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029E1B8 7C 08 03 A6 */ mtlr r0 -/* 8029E1BC 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029E1C0 4E 80 00 20 */ blr diff --git a/include/JSystem/JAudio2/JASAiCtrl.h b/include/JSystem/JAudio2/JASAiCtrl.h index 5aa13d81a6..8415a9d8af 100644 --- a/include/JSystem/JAudio2/JASAiCtrl.h +++ b/include/JSystem/JAudio2/JASAiCtrl.h @@ -3,4 +3,57 @@ #include "dolphin/types.h" +enum JASOutputRate { + OUTPUT_RATE_0, +}; + +enum JASMixMode { + MIX_MODE_MONO, + MIX_MODE_MONO_WIDE, + MIX_MODE_EXTRA, + MIX_MODE_INTERLEAVE, +}; + +namespace JASDriver { + typedef s16* (*MixCallback)(s32); + typedef void (*MixFunc)(s16*, u32, MixCallback); + + /* 8029C388 */ void initAI(void (*)(void)); + /* 8029C4E4 */ void startDMA(); + /* 8029C504 */ void stopDMA(); + /* 8029C524 */ void setOutputRate(JASOutputRate); + /* 8029C568 */ void updateDac(); + /* 8029C6C4 */ void updateDSP(); + /* 8029C7E0 */ void readDspBuffer(s16*, u32); + /* 8029C900 */ void finishDSPFrame(); + /* 8029C9DC */ void registerMixCallback(MixCallback, JASMixMode); + /* 8029C9E8 */ f32 getDacRate(); + /* 8029C9F0 */ u32 getSubFrames(); + /* 8029C9F8 */ u32 getDacSize(); + /* 8029CA04 */ u32 getFrameSamples(); + /* 8029CA10 */ void mixMonoTrack(s16*, u32, MixCallback); + /* 8029CAC0 */ void mixMonoTrackWide(s16*, u32, MixCallback); + /* 8029CB70 */ void mixExtraTrack(s16*, u32, MixCallback); + /* 8029CC50 */ void mixInterleaveTrack(s16*, u32, MixCallback); + /* 8029CCD4 */ u32 getSubFrameCounter(); + /* 8029E2A8 */ void subframeCallback(); + /* 8029E2D0 */ void DSPSyncCallback(); + + extern const MixFunc sMixFuncs[4]; + extern s16* sDmaDacBuffer[3]; + extern JASMixMode sMixMode; + extern f32 sDacRate; + extern u32 sSubFrames; + extern s16** sDspDacBuffer; + extern s32 sDspDacWriteBuffer; + extern s32 sDspDacReadBuffer; + extern s32 sDspStatus; + extern void (*sDspDacCallback)(s16*, u32); + extern s16* lastRspMadep; + extern void (*dacCallbackFunc)(s16*, u32); + extern MixCallback extMixCallback; + extern u32 sOutputRate; + extern u32 sSubFrameCounter; +}; + #endif /* JASAICTRL_H */ diff --git a/include/JSystem/JAudio2/JASAudioReseter.h b/include/JSystem/JAudio2/JASAudioReseter.h index 3b48c7af49..aa077e053c 100644 --- a/include/JSystem/JAudio2/JASAudioReseter.h +++ b/include/JSystem/JAudio2/JASAudioReseter.h @@ -1,13 +1,7 @@ #ifndef JASAUDIORESETER_H #define JASAUDIORESETER_H -#include "dolphin/os/OSInterrupt.h" - -struct JASCriticalSection { - inline JASCriticalSection() {mInterruptState = OSDisableInterrupts();}; - inline ~JASCriticalSection() {OSRestoreInterrupts(mInterruptState);}; - u32 mInterruptState; -}; +#include "dolphin/types.h" struct JASAudioReseter { /* 8029D0B4 */ JASAudioReseter(); diff --git a/include/JSystem/JAudio2/JASAudioThread.h b/include/JSystem/JAudio2/JASAudioThread.h index 9d89801cc5..4eb9ebc18d 100644 --- a/include/JSystem/JAudio2/JASAudioThread.h +++ b/include/JSystem/JAudio2/JASAudioThread.h @@ -19,6 +19,9 @@ struct JASAudioThread : public JKRThread, public JASGlobalInstance - void clamp(/* ... */); - /* 8028F69C */ /* JASCalc::clamp */ - void func_8028F69C(void* _this, s32); -}; - -struct JASAudioThread { - static u8 snIntCount[4 + 4 /* padding */]; + /* 8029BC0C */ static void initBankDisposeMsgQueue(); + /* 8029BC48 */ static void receiveBankDisposeMsg(); }; // @@ -115,10 +53,10 @@ extern "C" void getDacRate__9JASDriverFv(); extern "C" u32 getSubFrames__9JASDriverFv(); extern "C" void getDacSize__9JASDriverFv(); extern "C" void getFrameSamples__9JASDriverFv(); -extern "C" void mixMonoTrack__9JASDriverFPsUlPFl_Ps(); -extern "C" void mixMonoTrackWide__9JASDriverFPsUlPFl_Ps(); -extern "C" void mixExtraTrack__9JASDriverFPsUlPFl_Ps(); -extern "C" void mixInterleaveTrack__9JASDriverFPsUlPFl_Ps(); +extern "C" void mixMonoTrack(s16*, u32, s16* (*)(s32)); +extern "C" void mixMonoTrackWide(s16*, u32, s16* (*)(s32)); +extern "C" void mixExtraTrack(s16*, u32, s16* (*)(s32)); +extern "C" void mixInterleaveTrack(s16*, u32, s16* (*)(s32)); extern "C" u32 getSubFrameCounter__9JASDriverFv(); extern "C" void* const sMixFuncs__9JASDriver[4]; extern "C" extern char const* const JASAiCtrl__stringBase0; @@ -158,17 +96,6 @@ extern "C" void invalChannelAll__6JASDspFv(); extern "C" void subframeCallback__9JASDriverFv(); extern "C" void DSPSyncCallback__9JASDriverFv(); extern "C" void* __nwa__FUlP7JKRHeapi(); -extern "C" void DCInvalidateRange(); -extern "C" void DCStoreRange(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void OSGetTick(); -extern "C" void AIRegisterDMACallback(); -extern "C" void AIInitDMA(); -extern "C" void AIStartDMA(); -extern "C" void AIStopDMA(); -extern "C" void AISetDSPSampleRate(); -extern "C" void AIInit(); extern "C" void _savegpr_25(); extern "C" void _savegpr_27(); extern "C" void _savegpr_28(); @@ -178,7 +105,6 @@ extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" u8 sFreeRunLfo__6JASLfo[24]; -extern "C" extern u8 JASDram[4]; extern "C" u8 snIntCount__14JASAudioThread[4 + 4 /* padding */]; // @@ -187,39 +113,65 @@ extern "C" u8 snIntCount__14JASAudioThread[4 + 4 /* padding */]; /* ############################################################################################## */ /* 80431C58-80431C68 05E978 000C+04 2/2 0/0 0/0 .bss sDmaDacBuffer__9JASDriver */ -u8 JASDriver::sDmaDacBuffer[12 + 4 /* padding */]; +s16* JASDriver::sDmaDacBuffer[3]; /* 804507A8-804507AC 000228 0004+00 3/3 0/0 0/0 .sdata None */ -SECTION_SDATA static u32 data_804507A8 = 0x03000000; +SECTION_SDATA static u8 data_804507A8 = 3; /* 804512A0-804512A4 0007A0 0004+00 3/3 0/0 0/0 .sbss sDspDacBuffer__9JASDriver */ -u8 JASDriver::sDspDacBuffer[4]; +s16** JASDriver::sDspDacBuffer; /* 804512A4-804512A8 0007A4 0004+00 3/3 0/0 0/0 .sbss sDspDacWriteBuffer__9JASDriver */ -u8 JASDriver::sDspDacWriteBuffer[4]; +s32 JASDriver::sDspDacWriteBuffer; /* 804512A8-804512AC 0007A8 0004+00 3/3 0/0 0/0 .sbss sDspDacReadBuffer__9JASDriver */ -u8 JASDriver::sDspDacReadBuffer[4]; +s32 JASDriver::sDspDacReadBuffer; /* 804512AC-804512B0 0007AC 0004+00 3/3 0/0 0/0 .sbss sDspStatus__9JASDriver */ -u8 JASDriver::sDspStatus[4]; +s32 JASDriver::sDspStatus; /* 804512B0-804512B4 0007B0 0004+00 1/1 0/0 0/0 .sbss sDspDacCallback__9JASDriver */ -u8 JASDriver::sDspDacCallback[4]; +void (*JASDriver::sDspDacCallback)(s16*, u32); /* 804512B4-804512B8 0007B4 0004+00 1/1 0/0 0/0 .sbss lastRspMadep__9JASDriver */ -u8 JASDriver::lastRspMadep[4]; +s16* JASDriver::lastRspMadep; /* 804512B8-804512BC 0007B8 0004+00 1/1 0/0 0/0 .sbss dacCallbackFunc__9JASDriver */ -u8 JASDriver::dacCallbackFunc[4]; +void (*JASDriver::dacCallbackFunc)(s16*, u32); /* 804512BC-804512C0 0007BC 0004+00 2/2 0/0 0/0 .sbss extMixCallback__9JASDriver */ -u8 JASDriver::extMixCallback[4]; +JASDriver::MixCallback JASDriver::extMixCallback; /* 804512C0-804512C4 0007C0 0004+00 2/2 0/0 0/0 .sbss sOutputRate__9JASDriver */ -u8 JASDriver::sOutputRate[4]; +u32 JASDriver::sOutputRate; /* 8029C388-8029C4E4 296CC8 015C+00 0/0 1/1 0/0 .text initAI__9JASDriverFPFv_v */ +// missing instructions +#ifdef NONMATCHING +void JASDriver::initAI(void (*param_0)(void)) { + setOutputRate(OUTPUT_RATE_0); + u32 size = getDacSize() * 2; + for (int i = 0; i < 3; i++) { + sDmaDacBuffer[i] = new(JASDram, 0x20) s16[size / 2]; + JASCalc::bzero(sDmaDacBuffer[i], size); + DCStoreRange(sDmaDacBuffer[i], size); + } + sDspDacBuffer = new(JASDram, 0) void*[data_804507A8]; + for (int i = 0; i < data_804507A8; i++) { + sDspDacBuffer[i] = new(JASDram, 0x20) s16[getDacSize()]; + JASCalc::bzero(sDspDacBuffer[i], size); + DCStoreRange(sDspDacBuffer[i], size); + } + sDspDacWriteBuffer = data_804507A8 - 1; + sDspDacReadBuffer = 0; + sDspStatus = 0; + JASChannel::initBankDisposeMsgQueue(); + AIInit(NULL); + AIInitDMA((u32)sDmaDacBuffer[2], size); + AISetDSPSampleRate(sOutputRate != 0); + AIRegisterDMACallback(param_0); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -228,30 +180,22 @@ asm void JASDriver::initAI(void (*param_0)(void)) { #include "asm/JSystem/JAudio2/JASAiCtrl/initAI__9JASDriverFPFv_v.s" } #pragma pop +#endif /* 8029C4E4-8029C504 296E24 0020+00 0/0 1/1 0/0 .text startDMA__9JASDriverFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDriver::startDMA() { - nofralloc -#include "asm/JSystem/JAudio2/JASAiCtrl/startDMA__9JASDriverFv.s" +void JASDriver::startDMA() { + AIStartDMA(); } -#pragma pop /* 8029C504-8029C524 296E44 0020+00 0/0 1/1 0/0 .text stopDMA__9JASDriverFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDriver::stopDMA() { - nofralloc -#include "asm/JSystem/JAudio2/JASAiCtrl/stopDMA__9JASDriverFv.s" + +void JASDriver::stopDMA() { + AIStopDMA(); } -#pragma pop /* ############################################################################################## */ /* 804507AC-804507B0 00022C 0004+00 2/2 0/0 0/0 .sdata sMixMode__9JASDriver */ -SECTION_SDATA u32 JASDriver::sMixMode = 0x00000002; +SECTION_SDATA JASMixMode JASDriver::sMixMode = MIX_MODE_EXTRA; /* 804507B0-804507B4 000230 0004+00 2/2 0/0 0/0 .sdata sDacRate__9JASDriver */ SECTION_SDATA f32 JASDriver::sDacRate = 32028.5f; @@ -269,6 +213,20 @@ SECTION_SDATA2 static f32 lit_234 = 48000.0f; SECTION_SDATA2 static f32 lit_235 = 1.0008896589279175f; /* 8029C524-8029C568 296E64 0044+00 1/1 0/0 0/0 .text setOutputRate__9JASDriverF13JASOutputRate */ +// matches with literals +#ifdef NONMATCHING +void JASDriver::setOutputRate(JASOutputRate param_0) { + sOutputRate = param_0; + if (param_0 == 0) { + sSubFrames = 7; + sDacRate = 32000.0f; + } else { + sSubFrames = 10; + sDacRate = 48000.0f; + } + sDacRate *= 1.00089f; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -277,27 +235,59 @@ asm void JASDriver::setOutputRate(JASOutputRate param_0) { #include "asm/JSystem/JAudio2/JASAiCtrl/setOutputRate__9JASDriverF13JASOutputRate.s" } #pragma pop +#endif /* ############################################################################################## */ /* 8039B2E0-8039B2F0 -00001 0010+00 1/1 0/0 0/0 .rodata sMixFuncs__9JASDriver */ -SECTION_RODATA void* const JASDriver::sMixFuncs[4] = { - (void*)mixMonoTrack__9JASDriverFPsUlPFl_Ps, - (void*)mixMonoTrackWide__9JASDriverFPsUlPFl_Ps, - (void*)mixExtraTrack__9JASDriverFPsUlPFl_Ps, - (void*)mixInterleaveTrack__9JASDriverFPsUlPFl_Ps, +SECTION_RODATA const JASDriver::MixFunc JASDriver::sMixFuncs[4] = { + mixMonoTrack, + mixMonoTrackWide, + mixExtraTrack, + mixInterleaveTrack, }; COMPILER_STRIP_GATE(0x8039B2E0, &JASDriver::sMixFuncs); /* 804512C4-804512C8 0007C4 0004+00 2/1 0/0 0/0 .sbss sSubFrameCounter__9JASDriver */ -u8 JASDriver::sSubFrameCounter[4]; +u32 JASDriver::sSubFrameCounter; /* 804512C8-804512CC 0007C8 0004+00 1/1 0/0 0/0 .sbss dacp$239 */ -static u8 dacp[4]; +static u32 dacp; /* 804512CC-804512D0 0007CC 0004+00 1/1 0/0 0/0 .sbss None */ static u8 data_804512CC[4]; /* 8029C568-8029C6C4 296EA8 015C+00 0/0 1/1 0/0 .text updateDac__9JASDriverFv */ +// regswap +#ifdef NONMATCHING +void JASDriver::updateDac() { + static u32 dacp = 0; + s16* r30 = lastRspMadep; + lastRspMadep = NULL; + if (r30) { + AIInitDMA((u32)r30, getDacSize() * 2); + } + u32 frameSamples = getFrameSamples(); + readDspBuffer(sDmaDacBuffer[dacp], frameSamples); + if (sDspStatus == 0) { + finishDSPFrame(); + } + if (extMixCallback) { + sMixFuncs[sMixMode](sDmaDacBuffer[dacp], frameSamples, extMixCallback); + } + { + JASCriticalSection cs; + DCStoreRange(sDmaDacBuffer[dacp], getDacSize() * 2); + } + lastRspMadep = sDmaDacBuffer[dacp]; + dacp++; + if (dacp >= 3) { + dacp = 0; + } + if (dacCallbackFunc) { + dacCallbackFunc(lastRspMadep, getFrameSamples()); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -306,6 +296,7 @@ asm void JASDriver::updateDac() { #include "asm/JSystem/JAudio2/JASAiCtrl/updateDac__9JASDriverFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 8039B2F0-8039B2F0 027950 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -316,14 +307,12 @@ SECTION_DEAD static char const* const stringBase_8039B2FB = "kill DSP channel"; #pragma pop /* 803C78B8-803C78E0 0249D8 0028+00 1/1 0/0 0/0 .data history$267 */ -SECTION_DATA static u8 history[40] = { - 0x00, 0x0F, 0x42, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +SECTION_DATA static u32 history[10] = { + 0x000F4240, }; /* 804512D0-804512D4 0007D0 0004+00 1/1 0/0 0/0 .sbss old_time$264 */ -static u8 old_time[4]; +static u32 old_time; /* 804512D4-804512D8 0007D4 0004+00 1/1 0/0 0/0 .sbss None */ static u8 data_804512D4[4]; @@ -342,6 +331,32 @@ SECTION_SDATA2 static f32 lit_276[1 + 1 /* padding */] = { SECTION_SDATA2 static f64 lit_278 = 4503599627370496.0 /* cast u32 to float */; /* 8029C6C4-8029C7E0 297004 011C+00 1/1 1/1 0/0 .text updateDSP__9JASDriverFv */ +// matches with literals +#ifdef NONMATCHING +void JASDriver::updateDSP() { + JASProbe::start(3, "SFR-UPDATE"); + JASDsp::invalChannelAll(); + JASPortCmd::execAllCommand(); + DSPSyncCallback(); + static u32 old_time = 0; + u32 r28 = OSGetTick(); + u32 r27 = r28 - old_time; + old_time = r28; + u32 subFrame = getSubFrames(); + int r26 = JASAudioThread::getDSPSyncCount(); + history[subFrame - r26] = r27; + if (subFrame != r26 && f32(history[0]) / r27 < 1.1f) { + JASReport("kill DSP channel"); + JASDSPChannel::killActiveChannel(); + } + JASChannel::receiveBankDisposeMsg(); + JASDSPChannel::updateAll(); + subframeCallback(); + JASLfo::updateFreeRun(32028.5f / getDacRate()); + JASProbe::stop(3); + sSubFrameCounter++; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -350,8 +365,32 @@ asm void JASDriver::updateDSP() { #include "asm/JSystem/JAudio2/JASAiCtrl/updateDSP__9JASDriverFv.s" } #pragma pop +#endif /* 8029C7E0-8029C900 297120 0120+00 1/1 0/0 0/0 .text readDspBuffer__9JASDriverFPsUl */ +// missing instruction +#ifdef NONMATCHING +void JASDriver::readDspBuffer(s16* param_0, u32 param_1) { + s32 r29 = sDspDacReadBuffer + 1; + if (r29 == data_804507A8) { + r29 = 0; + } + if (r29 == sDspDacWriteBuffer && data_804507A8 >= 3) { + s16 r25 = sDspDacBuffer[sDspDacReadBuffer][param_1 / 2 - 1]; + s16 r24 = sDspDacBuffer[sDspDacReadBuffer][param_1 - 1]; + for (int i = 0; i < param_1; i++) { + sDspDacBuffer[sDspDacReadBuffer][i] = r25; + } + for (int i = param_1; i < param_1 * 2; i++) { + sDspDacBuffer[sDspDacReadBuffer][i] = r24; + } + } else { + sDspDacReadBuffer = r29; + DCInvalidateRange(sDspDacBuffer[r29], param_1 * 4); + } + JASCalc::imixcopy(sDspDacBuffer[sDspDacReadBuffer] + param_1, sDspDacBuffer[sDspDacReadBuffer], param_0, param_1); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -360,6 +399,7 @@ asm void JASDriver::readDspBuffer(s16* param_0, u32 param_1) { #include "asm/JSystem/JAudio2/JASAiCtrl/readDspBuffer__9JASDriverFPsUl.s" } #pragma pop +#endif /* ############################################################################################## */ /* 8039B2F0-8039B2F0 027950 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -369,60 +409,53 @@ SECTION_DEAD static char const* const stringBase_8039B30C = "DSP-MAIN"; #pragma pop /* 8029C900-8029C9DC 297240 00DC+00 1/1 1/1 0/0 .text finishDSPFrame__9JASDriverFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDriver::finishDSPFrame() { - nofralloc -#include "asm/JSystem/JAudio2/JASAiCtrl/finishDSPFrame__9JASDriverFv.s" +void JASDriver::finishDSPFrame() { + int r30 = sDspDacWriteBuffer + 1; + if (r30 == data_804507A8) { + r30 = 0; + } + if (r30 == sDspDacReadBuffer) { + sDspStatus = 0; + return; + } + sDspDacWriteBuffer = r30; + JASAudioThread::setDSPSyncCount(getSubFrames()); + JASProbe::start(7, "DSP-MAIN"); + u32 r27 = getFrameSamples(); + JASDsp::syncFrame(getSubFrames(), u32(sDspDacBuffer[sDspDacWriteBuffer]), u32(sDspDacBuffer[sDspDacWriteBuffer] + r27)); + sDspStatus = 1; + updateDSP(); + if (sDspDacCallback) { + sDspDacCallback(sDspDacBuffer[sDspDacWriteBuffer], r27); + } } -#pragma pop /* 8029C9DC-8029C9E8 29731C 000C+00 0/0 0/0 2/2 .text * registerMixCallback__9JASDriverFPFl_Ps10JASMixMode */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDriver::registerMixCallback(s16* (*param_0)(s32), JASMixMode param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JASAiCtrl/registerMixCallback__9JASDriverFPFl_Ps10JASMixMode.s" +void JASDriver::registerMixCallback(MixCallback param_0, JASMixMode param_1) { + extMixCallback = param_0; + sMixMode = param_1; } -#pragma pop /* 8029C9E8-8029C9F0 297328 0008+00 1/1 5/5 0/0 .text getDacRate__9JASDriverFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDriver::getDacRate() { - nofralloc -#include "asm/JSystem/JAudio2/JASAiCtrl/getDacRate__9JASDriverFv.s" +f32 JASDriver::getDacRate() { + return sDacRate; } -#pragma pop /* 8029C9F0-8029C9F8 -00001 0008+00 0/0 0/0 0/0 .text getSubFrames__9JASDriverFv */ u32 JASDriver::getSubFrames() { - return *(u32*)(&JASDriver::sSubFrames); + return sSubFrames; } /* 8029C9F8-8029CA04 297338 000C+00 2/2 0/0 0/0 .text getDacSize__9JASDriverFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDriver::getDacSize() { - nofralloc -#include "asm/JSystem/JAudio2/JASAiCtrl/getDacSize__9JASDriverFv.s" +u32 JASDriver::getDacSize() { + return sSubFrames * 0xa0; } -#pragma pop /* 8029CA04-8029CA10 297344 000C+00 3/3 0/0 0/0 .text getFrameSamples__9JASDriverFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDriver::getFrameSamples() { - nofralloc -#include "asm/JSystem/JAudio2/JASAiCtrl/getFrameSamples__9JASDriverFv.s" +u32 JASDriver::getFrameSamples() { + return sSubFrames * 0x50; } -#pragma pop /* ############################################################################################## */ /* 8039B2F0-8039B2F0 027950 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -433,14 +466,32 @@ SECTION_DEAD static char const* const stringBase_8039B315 = "MONO-MIX"; /* 8029CA10-8029CAC0 297350 00B0+00 1/0 0/0 0/0 .text mixMonoTrack__9JASDriverFPsUlPFl_Ps */ +// regalloc +#ifdef NONMATCHING +void JASDriver::mixMonoTrack(s16* param_0, u32 param_1, MixCallback param_2) { + JASProbe::start(5, "MONO-MIX"); + s16* r31 = param_2(param_1); + if (r31) { + return; + } + JASProbe::stop(5); + for (u32 i = param_1; i != 0; i--) { + param_0[0] = JASCalc::clamp(param_0[0] + r31[0]); + param_0[1] = JASCalc::clamp(param_0[1] + r31[0]); + param_0 += 2; + r31++; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JASDriver::mixMonoTrack(s16* param_0, u32 param_1, s16* (*param_2)(s32)) { +asm void JASDriver::mixMonoTrack(s16* param_0, u32 param_1, MixCallback param_2) { nofralloc #include "asm/JSystem/JAudio2/JASAiCtrl/mixMonoTrack__9JASDriverFPsUlPFl_Ps.s" } #pragma pop +#endif /* ############################################################################################## */ /* 8039B2F0-8039B2F0 027950 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -450,14 +501,32 @@ SECTION_DEAD static char const* const stringBase_8039B31E = "MONO(W)-MIX"; #pragma pop /* 8029CAC0-8029CB70 297400 00B0+00 1/0 0/0 0/0 .text mixMonoTrackWide__9JASDriverFPsUlPFl_Ps */ +// instruction order +#ifdef NONMATCHING +void JASDriver::mixMonoTrackWide(s16* param_0, u32 param_1, MixCallback param_2) { + JASProbe::start(5, "MONO(W)-MIX"); + s16* r31 = param_2(param_1); + if (!r31) { + return; + } + JASProbe::stop(5); + for (u32 i = param_1; i != 0; i--) { + param_0[0] = JASCalc::clamp(param_0[0] + r31[0]); + param_0[1] = JASCalc::clamp(param_0[1] - r31[0]); + param_0 += 2; + r31++; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JASDriver::mixMonoTrackWide(s16* param_0, u32 param_1, s16* (*param_2)(s32)) { +asm void JASDriver::mixMonoTrackWide(s16* param_0, u32 param_1, MixCallback param_2) { nofralloc #include "asm/JSystem/JAudio2/JASAiCtrl/mixMonoTrackWide__9JASDriverFPsUlPFl_Ps.s" } #pragma pop +#endif /* ############################################################################################## */ /* 8039B2F0-8039B2F0 027950 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -468,28 +537,65 @@ SECTION_DEAD static char const* const stringBase_8039B331 = "MIXING"; #pragma pop /* 8029CB70-8029CC50 2974B0 00E0+00 1/0 0/0 0/0 .text mixExtraTrack__9JASDriverFPsUlPFl_Ps */ +// missing instruction +#ifdef NONMATCHING +void JASDriver::mixExtraTrack(s16* param_0, u32 param_1, MixCallback param_2) { + JASProbe::start(5, "DSPMIX"); + s16* r31 = param_2(param_1); + if (!r31) { + return; + } + JASProbe::stop(5); + JASProbe::start(6, "MIXING"); + s16* r29 = r31 + getFrameSamples(); + for (u32 i = param_1; i != 0; i--) { + param_0[0] = JASCalc::clamp(param_0[0] + r29[0]); + param_0[1] = JASCalc::clamp(param_0[1] + r31[0]); + param_0 += 2; + r29++; + r31++; + } + JASProbe::stop(6); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JASDriver::mixExtraTrack(s16* param_0, u32 param_1, s16* (*param_2)(s32)) { +asm void JASDriver::mixExtraTrack(s16* param_0, u32 param_1, MixCallback param_2) { nofralloc #include "asm/JSystem/JAudio2/JASAiCtrl/mixExtraTrack__9JASDriverFPsUlPFl_Ps.s" } #pragma pop +#endif /* 8029CC50-8029CCD4 297590 0084+00 1/0 0/0 0/0 .text mixInterleaveTrack__9JASDriverFPsUlPFl_Ps */ +// missing instructions +#ifdef NONMATCHING +void JASDriver::mixInterleaveTrack(s16* param_0, u32 param_1, MixCallback param_2) { + s16* r31 = param_2(param_1); + if (!r31) { + return; + } + for (u32 i = param_1 * 2; i != 0; i--) { + param_0[0] = JASCalc::clamp(param_0[0] + r31[0]); + param_0 += 1; + r31++; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JASDriver::mixInterleaveTrack(s16* param_0, u32 param_1, s16* (*param_2)(s32)) { +asm void JASDriver::mixInterleaveTrack(s16* param_0, u32 param_1, MixCallback param_2) { nofralloc #include "asm/JSystem/JAudio2/JASAiCtrl/mixInterleaveTrack__9JASDriverFPsUlPFl_Ps.s" } #pragma pop +#endif /* 8029CCD4-8029CCDC -00001 0008+00 0/0 0/0 0/0 .text getSubFrameCounter__9JASDriverFv */ u32 JASDriver::getSubFrameCounter() { - return *(u32*)(&JASDriver::sSubFrameCounter); + return sSubFrameCounter; } /* 8039B2F0-8039B2F0 027950 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/libs/JSystem/JAudio2/JASAudioReseter.cpp b/libs/JSystem/JAudio2/JASAudioReseter.cpp index d7b3b2838f..f77508f811 100644 --- a/libs/JSystem/JAudio2/JASAudioReseter.cpp +++ b/libs/JSystem/JAudio2/JASAudioReseter.cpp @@ -5,6 +5,7 @@ #include "JSystem/JAudio2/JASAudioReseter.h" #include "JSystem/JAudio2/JASAudioThread.h" +#include "JSystem/JAudio2/JASCriticalSection.h" #include "JSystem/JAudio2/JASDriverIF.h" #include "dol2asm.h" #include "dolphin/types.h" diff --git a/libs/JSystem/JAudio2/JASCallback.cpp b/libs/JSystem/JAudio2/JASCallback.cpp index 0152ffea4c..7b1e770b5c 100644 --- a/libs/JSystem/JAudio2/JASCallback.cpp +++ b/libs/JSystem/JAudio2/JASCallback.cpp @@ -4,7 +4,7 @@ // #include "JSystem/JAudio2/JASCallback.h" -#include "JSystem/JAudio2/JASAudioReseter.h" +#include "JSystem/JAudio2/JASCriticalSection.h" // // Types: diff --git a/libs/JSystem/JAudio2/JASDSPInterface.cpp b/libs/JSystem/JAudio2/JASDSPInterface.cpp index c58efa131b..240fcf5efb 100644 --- a/libs/JSystem/JAudio2/JASDSPInterface.cpp +++ b/libs/JSystem/JAudio2/JASDSPInterface.cpp @@ -4,70 +4,15 @@ // #include "JSystem/JAudio2/JASDSPInterface.h" +#include "JSystem/JAudio2/JASCalc.h" +#include "JSystem/JAudio2/JASHeapCtrl.h" +#include "JSystem/JAudio2/JASWaveInfo.h" +#include "JSystem/JAudio2/dsptask.h" +#include "JSystem/JAudio2/osdsp_task.h" +#include "JSystem/JKernel/JKRSolidHeap.h" #include "dol2asm.h" - -// -// Types: -// - -struct JKRHeap {}; - -struct JASWaveInfo { - static u32 one[1 + 1 /* padding */]; -}; - -struct JASDsp { - struct FxlineConfig_ {}; - - struct TChannel { - /* 8029DCA4 */ void init(); - /* 8029DCE0 */ void playStart(); - /* 8029DD44 */ void playStop(); - /* 8029DD50 */ void replyFinishRequest(); - /* 8029DD60 */ void forceStop(); - /* 8029DD6C */ void isActive() const; - /* 8029DD7C */ void isFinish() const; - /* 8029DD8C */ void setWaveInfo(JASWaveInfo const&, u32, u32); - /* 8029DEAC */ void setOscInfo(u32); - /* 8029DEC4 */ void initAutoMixer(); - /* 8029DEF0 */ void setAutoMixer(u16, u8, u8, u8, u8); - /* 8029DF1C */ void setPitch(u16); - /* 8029DF34 */ void setMixerInitVolume(u8, s16); - /* 8029DF54 */ void setMixerVolume(u8, s16); - /* 8029DF80 */ void setPauseFlag(u8); - /* 8029DF8C */ void flush(); - /* 8029DFB0 */ void initFilter(); - /* 8029E00C */ void setFilterMode(u16); - /* 8029E044 */ void setIIRFilterParam(s16*); - /* 8029E06C */ void setFIR8FilterParam(s16*); - /* 8029E094 */ void setDistFilter(s16); - /* 8029E09C */ void setBusConnect(u8, u8); - }; - - /* 8029D958 */ void boot(void (*)(void*)); - /* 8029D9A4 */ void releaseHalt(u32); - /* 8029D9C4 */ void finishWork(u16); - /* 8029D9E4 */ void syncFrame(u32, u32, u32); - /* 8029DA04 */ void setDSPMixerLevel(f32); - /* 8029DA30 */ void getDSPMixerLevel(); - /* 8029DA38 */ void getDSPHandle(int); - /* 8029DA48 */ void setFilterTable(s16*, s16*, u32); - /* 8029DA6C */ void flushBuffer(); - /* 8029DAA0 */ void invalChannelAll(); - /* 8029DAC8 */ void initBuffer(); - /* 8029DB78 */ void setFXLine(u8, s16*, JASDsp::FxlineConfig_*); - - static u8 const DSPADPCM_FILTER[64]; - static void* const DSPRES_FILTER[320]; - static u8 SEND_TABLE[24 + 24 /* padding */]; - static u8 CH_BUF[4]; - static u8 FX_BUF[4]; - static f32 sDSPVolume; -}; - -struct JASCalc { - /* 8028F480 */ void bzero(void*, u32); -}; +#include "dolphin/dsp/dsp.h" +#include "dolphin/os/OSCache.h" // // Forward References: @@ -129,15 +74,10 @@ extern "C" void DspBoot__FPFPv_v(); extern "C" void DspFinishWork__FUs(); extern "C" void DsyncFrame2__FUlUlUl(); extern "C" void* __nwa__FUlP7JKRHeapi(); -extern "C" void DCInvalidateRange(); -extern "C" void DCFlushRange(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); extern "C" void _savegpr_28(); extern "C" void _savegpr_29(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" extern u8 JASDram[4]; // // Declarations: @@ -145,122 +85,76 @@ extern "C" extern u8 JASDram[4]; /* ############################################################################################## */ /* 804512E8-804512EC 0007E8 0004+00 5/5 0/0 0/0 .sbss CH_BUF__6JASDsp */ -u8 JASDsp::CH_BUF[4]; +JASDsp::TChannel* JASDsp::CH_BUF; /* 804512EC-804512F0 0007EC 0004+00 3/3 0/0 0/0 .sbss FX_BUF__6JASDsp */ -u8 JASDsp::FX_BUF[4]; +void* JASDsp::FX_BUF; /* 804512F0-804512F4 0007F0 0004+00 2/2 0/0 0/0 .sbss sDSPVolume__6JASDsp */ f32 JASDsp::sDSPVolume; -/* 804512F4-804512F8 -00001 0004+00 1/1 0/0 0/0 .sbss None */ -/* 804512F4 0001+00 data_804512F4 None */ -/* 804512F5 0003+00 data_804512F5 None */ -static u8 struct_804512F4[4]; - /* 8029D958-8029D9A4 298298 004C+00 0/0 1/1 0/0 .text boot__6JASDspFPFPv_v */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::boot(void (*param_0)(void*)) { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/boot__6JASDspFPFPv_v.s" +void JASDsp::boot(void (*param_0)(void*)) { + static bool data_804512F4 = true; + if (data_804512F4) { + DspBoot(param_0); + data_804512F4 = false; + } } -#pragma pop /* 8029D9A4-8029D9C4 2982E4 0020+00 0/0 1/1 0/0 .text releaseHalt__6JASDspFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::releaseHalt(u32 param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/releaseHalt__6JASDspFUl.s" +void JASDsp::releaseHalt(u32 param_0) { + DSPReleaseHalt2(param_0); } -#pragma pop /* 8029D9C4-8029D9E4 298304 0020+00 0/0 1/1 0/0 .text finishWork__6JASDspFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::finishWork(u16 param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/finishWork__6JASDspFUs.s" +void JASDsp::finishWork(u16 param_0) { + DspFinishWork(param_0); } -#pragma pop /* 8029D9E4-8029DA04 298324 0020+00 0/0 1/1 0/0 .text syncFrame__6JASDspFUlUlUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::syncFrame(u32 param_0, u32 param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/syncFrame__6JASDspFUlUlUl.s" +void JASDsp::syncFrame(u32 param_0, u32 param_1, u32 param_2) { + DsyncFrame2(param_0, param_1, param_2); } -#pragma pop /* ############################################################################################## */ /* 80455748-8045574C 003D48 0004+00 1/1 0/0 0/0 .sdata2 @176 */ SECTION_SDATA2 static f32 lit_176 = 4.0f; /* 8029DA04-8029DA30 298344 002C+00 0/0 1/1 0/0 .text setDSPMixerLevel__6JASDspFf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::setDSPMixerLevel(f32 param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/setDSPMixerLevel__6JASDspFf.s" +void JASDsp::setDSPMixerLevel(f32 dsp_level) { + sDSPVolume = dsp_level; + dsp_level *= 4.0f; + DsetMixerLevel(dsp_level); } -#pragma pop /* 8029DA30-8029DA38 298370 0008+00 0/0 1/1 0/0 .text getDSPMixerLevel__6JASDspFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::getDSPMixerLevel() { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/getDSPMixerLevel__6JASDspFv.s" +f32 JASDsp::getDSPMixerLevel() { + return sDSPVolume; } -#pragma pop /* 8029DA38-8029DA48 298378 0010+00 0/0 1/1 0/0 .text getDSPHandle__6JASDspFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::getDSPHandle(int param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/getDSPHandle__6JASDspFi.s" +JASDsp::TChannel* JASDsp::getDSPHandle(int param_0) { + return CH_BUF + param_0; } -#pragma pop /* 8029DA48-8029DA6C 298388 0024+00 3/3 0/0 0/0 .text setFilterTable__6JASDspFPsPsUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::setFilterTable(s16* param_0, s16* param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/setFilterTable__6JASDspFPsPsUl.s" +void JASDsp::setFilterTable(s16* param_0, s16* param_1, u32 param_2) { + for (int i = 0; i < param_2; i++) { + *param_0++ = *param_1++; + } } -#pragma pop /* 8029DA6C-8029DAA0 2983AC 0034+00 1/1 0/0 0/0 .text flushBuffer__6JASDspFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::flushBuffer() { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/flushBuffer__6JASDspFv.s" +void JASDsp::flushBuffer() { + DCFlushRange(CH_BUF, sizeof(TChannel) * 64); + DCFlushRange(FX_BUF, 0x80); } -#pragma pop /* 8029DAA0-8029DAC8 2983E0 0028+00 0/0 1/1 0/0 .text invalChannelAll__6JASDspFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::invalChannelAll() { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/invalChannelAll__6JASDspFv.s" +void JASDsp::invalChannelAll() { + DCInvalidateRange(CH_BUF, sizeof(TChannel) * 64); } -#pragma pop /* ############################################################################################## */ /* 8039B360-8039B3A0 0279C0 0040+00 1/1 0/0 0/0 .rodata DSPADPCM_FILTER__6JASDsp */ @@ -598,67 +492,46 @@ SECTION_RODATA void* const JASDsp::DSPRES_FILTER[320] = { COMPILER_STRIP_GATE(0x8039B3A0, &JASDsp::DSPRES_FILTER); /* 8029DAC8-8029DB78 298408 00B0+00 0/0 1/1 0/0 .text initBuffer__6JASDspFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::initBuffer() { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/initBuffer__6JASDspFv.s" +void JASDsp::initBuffer() { + CH_BUF = new(JASDram, 0x20) TChannel[64]; + FX_BUF = new(JASDram, 0x20) u8[0x80]; + JASCalc::bzero(CH_BUF, 0x6000); + JASCalc::bzero(FX_BUF, 0x80); + for (u8 i = 0; i < 4; i++) { + setFXLine(i, NULL, NULL); + } + DsetupTable(0x40, u32(CH_BUF), u32(&DSPRES_FILTER), u32(&DSPADPCM_FILTER), u32(FX_BUF)); + flushBuffer(); } -#pragma pop /* ############################################################################################## */ /* 803C78F0-803C7920 024A10 0018+18 1/1 0/0 0/0 .data SEND_TABLE__6JASDsp */ -SECTION_DATA u8 JASDsp::SEND_TABLE[24 + 24 /* padding */] = { - 0x0D, - 0x00, - 0x0D, - 0x60, - 0x0D, - 0xC8, - 0x0E, - 0x28, - 0x0E, - 0x88, - 0x0E, - 0xE8, - 0x0C, - 0xA0, - 0x0F, - 0x40, - 0x0F, - 0xA0, - 0x0B, - 0x00, - 0x09, - 0xA0, - 0x00, - 0x00, +SECTION_DATA u16 JASDsp::SEND_TABLE[12 + 12 /* padding */] = { + 0x0D00, + 0x0D60, + 0x0DC8, + 0x0E28, + 0x0E88, + 0x0EE8, + 0x0CA0, + 0x0F40, + 0x0FA0, + 0x0B00, + 0x09A0, + 0x0000, /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, + 0x0000, + 0x0000, + 0x0000, + 0x0000, + 0x0000, + 0x0000, + 0x0000, + 0x0000, + 0x0000, + 0x0000, + 0x0000, + 0x0000, }; /* 8029DB78-8029DCA4 2984B8 012C+00 1/1 1/1 0/0 .text @@ -673,16 +546,34 @@ asm void JASDsp::setFXLine(u8 param_0, s16* param_1, JASDsp::FxlineConfig_* para #pragma pop /* 8029DCA4-8029DCE0 2985E4 003C+00 0/0 1/1 0/0 .text init__Q26JASDsp8TChannelFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::TChannel::init() { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/init__Q26JASDsp8TChannelFv.s" +void JASDsp::TChannel::init() { + mPauseFlag = 0; + mIsFinished = 0; + mForcedStop = 0; + mIsActive = 0; + field_0x058 = 0; + field_0x068 = 0; + initFilter(); } -#pragma pop /* 8029DCE0-8029DD44 298620 0064+00 0/0 1/1 0/0 .text playStart__Q26JASDsp8TChannelFv */ +// regswap +#ifdef NONMATCHING +void JASDsp::TChannel::playStart() { + field_0x10c = 0; + field_0x060 = 0; + field_0x008 = 1; + field_0x066 = 0; + for (int i = 0; i < 4; i++) { + field_0x078[i] = 0; + field_0x0a8[i] = 0; + } + for (int i = 0; i < 20; i++) { + field_0x080[i] = 0; + } + mIsActive = 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -691,56 +582,33 @@ asm void JASDsp::TChannel::playStart() { #include "asm/JSystem/JAudio2/JASDSPInterface/playStart__Q26JASDsp8TChannelFv.s" } #pragma pop +#endif /* 8029DD44-8029DD50 298684 000C+00 0/0 1/1 0/0 .text playStop__Q26JASDsp8TChannelFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::TChannel::playStop() { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/playStop__Q26JASDsp8TChannelFv.s" +void JASDsp::TChannel::playStop() { + mIsActive = 0; } -#pragma pop /* 8029DD50-8029DD60 298690 0010+00 0/0 1/1 0/0 .text replyFinishRequest__Q26JASDsp8TChannelFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::TChannel::replyFinishRequest() { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/replyFinishRequest__Q26JASDsp8TChannelFv.s" +void JASDsp::TChannel::replyFinishRequest() { + mIsFinished = 0; + mIsActive = 0; } -#pragma pop /* 8029DD60-8029DD6C 2986A0 000C+00 0/0 1/1 0/0 .text forceStop__Q26JASDsp8TChannelFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::TChannel::forceStop() { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/forceStop__Q26JASDsp8TChannelFv.s" +void JASDsp::TChannel::forceStop() { + mForcedStop = 1; } -#pragma pop /* 8029DD6C-8029DD7C 2986AC 0010+00 1/1 0/0 0/0 .text isActive__Q26JASDsp8TChannelCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::TChannel::isActive() const { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/isActive__Q26JASDsp8TChannelCFv.s" +bool JASDsp::TChannel::isActive() const { + return mIsActive != 0; } -#pragma pop /* 8029DD7C-8029DD8C 2986BC 0010+00 0/0 1/1 0/0 .text isFinish__Q26JASDsp8TChannelCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::TChannel::isFinish() const { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/isFinish__Q26JASDsp8TChannelCFv.s" +bool JASDsp::TChannel::isFinish() const { + return mIsFinished != 0; } -#pragma pop /* ############################################################################################## */ /* 8045574C-80455754 003D4C 0008+00 1/1 0/0 0/0 .sdata2 COMP_BLOCKSAMPLES$331 */ @@ -755,102 +623,127 @@ SECTION_SDATA2 static u8 COMP_BLOCKBYTES[8] = { /* 8029DD8C-8029DEAC 2986CC 0120+00 0/0 1/1 0/0 .text * setWaveInfo__Q26JASDsp8TChannelFRC11JASWaveInfoUlUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::TChannel::setWaveInfo(JASWaveInfo const& param_0, u32 param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/setWaveInfo__Q26JASDsp8TChannelFRC11JASWaveInfoUlUl.s" +void JASDsp::TChannel::setWaveInfo(JASWaveInfo const& param_0, u32 param_1, u32 param_2) { + field_0x118 = param_1; + field_0x064 = COMP_BLOCKSAMPLES[param_0.field_0x00]; + field_0x100 = COMP_BLOCKBYTES[param_0.field_0x00]; + field_0x068 = 0; + if (field_0x100 >= 4) { + field_0x11c = param_0.field_0x18; + field_0x102 = param_0.field_0x02; + if (field_0x102) { + if (param_2 == 1) { + param_2 = param_0.field_0x10; + } + field_0x110 = param_0.field_0x10; + field_0x114 = param_0.field_0x14; + field_0x104 = param_0.field_0x1c; + field_0x106 = param_0.field_0x1e; + } else { + field_0x114 = field_0x11c; + } + if (param_2 && field_0x114 > param_2) { + switch (param_0.field_0x00) { + case 0: + case 1: + field_0x068 = param_2; + field_0x118 += param_2 * field_0x100 >> 4; + field_0x110 -= param_2; + field_0x114 -= param_2; + break; + case 2: + case 3: + field_0x068 = param_2; + break; + } + } + for (int i = 0; i < 16; i++) { + field_0x0b0[i] = 0; + } + } } -#pragma pop /* 8029DEAC-8029DEC4 2987EC 0018+00 0/0 1/1 0/0 .text setOscInfo__Q26JASDsp8TChannelFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::TChannel::setOscInfo(u32 param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/setOscInfo__Q26JASDsp8TChannelFUl.s" +void JASDsp::TChannel::setOscInfo(u32 param_0) { + field_0x118 = 0; + field_0x064 = 16; + field_0x100 = param_0; } -#pragma pop /* 8029DEC4-8029DEF0 298804 002C+00 0/0 1/1 0/0 .text initAutoMixer__Q26JASDsp8TChannelFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::TChannel::initAutoMixer() { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/initAutoMixer__Q26JASDsp8TChannelFv.s" +void JASDsp::TChannel::initAutoMixer() { + if (field_0x058) { + field_0x054 = field_0x056; + } else { + field_0x054 = 0; + field_0x058 = 1; + } } -#pragma pop /* 8029DEF0-8029DF1C 298830 002C+00 0/0 1/1 0/0 .text setAutoMixer__Q26JASDsp8TChannelFUsUcUcUcUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::TChannel::setAutoMixer(u16 param_0, u8 param_1, u8 param_2, u8 param_3, +void JASDsp::TChannel::setAutoMixer(u16 param_0, u8 param_1, u8 param_2, u8 param_3, u8 param_4) { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/setAutoMixer__Q26JASDsp8TChannelFUsUcUcUcUc.s" + field_0x050 = (param_1 << 8) | param_2; + field_0x052 = param_3 << 8 | param_3 << 1; + field_0x056 = param_0; + field_0x058 = 1; } -#pragma pop /* 8029DF1C-8029DF34 29885C 0018+00 0/0 2/2 0/0 .text setPitch__Q26JASDsp8TChannelFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::TChannel::setPitch(u16 param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/setPitch__Q26JASDsp8TChannelFUs.s" +void JASDsp::TChannel::setPitch(u16 param_0) { + if (param_0 >= 0x7fff) { + param_0 = 0x7fff; + } + mPitch = param_0; } -#pragma pop /* 8029DF34-8029DF54 298874 0020+00 0/0 1/1 0/0 .text setMixerInitVolume__Q26JASDsp8TChannelFUcs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::TChannel::setMixerInitVolume(u8 param_0, s16 param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/setMixerInitVolume__Q26JASDsp8TChannelFUcs.s" +void JASDsp::TChannel::setMixerInitVolume(u8 param_0, s16 param_1) { + u16* tmp = field_0x010[param_0]; + tmp[2] = param_1; + tmp[1] = param_1; + tmp[3] = 0; } -#pragma pop /* 8029DF54-8029DF80 298894 002C+00 0/0 1/1 0/0 .text setMixerVolume__Q26JASDsp8TChannelFUcs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::TChannel::setMixerVolume(u8 param_0, s16 param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/setMixerVolume__Q26JASDsp8TChannelFUcs.s" +void JASDsp::TChannel::setMixerVolume(u8 param_0, s16 param_1) { + if (mForcedStop == 0) { + u16* tmp = field_0x010[param_0]; + tmp[1] = param_1; + tmp[3] &= 0xff; + } } -#pragma pop /* 8029DF80-8029DF8C 2988C0 000C+00 0/0 2/2 0/0 .text setPauseFlag__Q26JASDsp8TChannelFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::TChannel::setPauseFlag(u8 param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/setPauseFlag__Q26JASDsp8TChannelFUc.s" +void JASDsp::TChannel::setPauseFlag(u8 param_0) { + mPauseFlag = param_0; } -#pragma pop /* 8029DF8C-8029DFB0 2988CC 0024+00 0/0 1/1 0/0 .text flush__Q26JASDsp8TChannelFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::TChannel::flush() { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/flush__Q26JASDsp8TChannelFv.s" +void JASDsp::TChannel::flush() { + DCFlushRange(this, sizeof(*this)); } -#pragma pop /* 8029DFB0-8029E00C 2988F0 005C+00 1/1 0/0 0/0 .text initFilter__Q26JASDsp8TChannelFv */ +// regswap +#ifdef NONMATCHING +void JASDsp::TChannel::initFilter() { + for (int i = 0; i < 8; i++) { + fir_filter_params[i] = 0; + } + fir_filter_params[0] = 0x7fff; + for (int i = 0; i < 8; i++) { + iir_filter_params[i] = 0; + } + iir_filter_params[0] = 0x7fff; + iir_filter_params[4] = 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -859,70 +752,67 @@ asm void JASDsp::TChannel::initFilter() { #include "asm/JSystem/JAudio2/JASDSPInterface/initFilter__Q26JASDsp8TChannelFv.s" } #pragma pop +#endif /* 8029E00C-8029E044 29894C 0038+00 0/0 1/1 0/0 .text setFilterMode__Q26JASDsp8TChannelFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::TChannel::setFilterMode(u16 param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/setFilterMode__Q26JASDsp8TChannelFUs.s" +void JASDsp::TChannel::setFilterMode(u16 param_0) { + u8 r30 = param_0 & 0x20; + u8 r31 = param_0 & 0x1f; + if (r30) { + if (r31 > 0x14) { + r31 = 0x14; + } + } else { + if (r31 > 0x18) { + r31 = 0x18; + } + } + mFilterMode = r30 + r31; } -#pragma pop /* 8029E044-8029E06C 298984 0028+00 0/0 1/1 0/0 .text setIIRFilterParam__Q26JASDsp8TChannelFPs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::TChannel::setIIRFilterParam(s16* param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/setIIRFilterParam__Q26JASDsp8TChannelFPs.s" +void JASDsp::TChannel::setIIRFilterParam(s16* param_0) { + setFilterTable(iir_filter_params, param_0, 8); } -#pragma pop /* 8029E06C-8029E094 2989AC 0028+00 0/0 1/1 0/0 .text setFIR8FilterParam__Q26JASDsp8TChannelFPs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::TChannel::setFIR8FilterParam(s16* param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/setFIR8FilterParam__Q26JASDsp8TChannelFPs.s" +void JASDsp::TChannel::setFIR8FilterParam(s16* param_0) { + setFilterTable(fir_filter_params, param_0, 8); } -#pragma pop /* 8029E094-8029E09C -00001 0008+00 0/0 0/0 0/0 .text setDistFilter__Q26JASDsp8TChannelFs */ void JASDsp::TChannel::setDistFilter(s16 param_0) { - *(u16*)(((u8*)this) + 336) /* this->field_0x150 */ = (u16)(param_0); + iir_filter_params[4] = param_0; } /* ############################################################################################## */ /* 8039B8A0-8039B8B8 027F00 0018+00 1/1 0/0 0/0 .rodata connect_table$463 */ -SECTION_RODATA static u8 const connect_table[24] = { - 0x00, 0x00, 0x0D, 0x00, 0x0D, 0x60, 0x0D, 0xC0, 0x0E, 0x20, 0x0E, 0x80, - 0x0E, 0xE0, 0x0C, 0xA0, 0x0F, 0x40, 0x0F, 0xA0, 0x0B, 0x00, 0x09, 0xA0, +SECTION_RODATA static u16 const connect_table[12] = { + 0x0000, 0x0D00, 0x0D60, 0x0DC0, 0x0E20, 0x0E80, + 0x0EE0, 0x0CA0, 0x0F40, 0x0FA0, 0x0B00, 0x09A0, }; COMPILER_STRIP_GATE(0x8039B8A0, &connect_table); /* 8029E09C-8029E0BC 2989DC 0020+00 0/0 1/1 0/0 .text setBusConnect__Q26JASDsp8TChannelFUcUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDsp::TChannel::setBusConnect(u8 param_0, u8 param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/setBusConnect__Q26JASDsp8TChannelFUcUc.s" +void JASDsp::TChannel::setBusConnect(u8 param_0, u8 param_1) { + u16* tmp = field_0x010[param_0]; + tmp[0] = connect_table[param_1]; } -#pragma pop /* 8029E0BC-8029E130 2989FC 0074+00 0/0 1/1 0/0 .text DSP_CreateMap2__FUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void DSP_CreateMap2(u32 param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPInterface/DSP_CreateMap2__FUl.s" +u16 DSP_CreateMap2(u32 param_0) { + u16 r30 = 0; + JASDsp::TChannel* channel = &JASDsp::CH_BUF[param_0 << 4]; + for (int i = 0; i < 16; i++) { + r30 <<= 1; + if (channel->isActive()) { + r30 |= 1; + } + channel++; + } + return r30; } -#pragma pop /* ############################################################################################## */ /* 804507B8-804507C0 000238 0004+04 0/0 5/5 0/0 .sdata one__11JASWaveInfo */ diff --git a/libs/JSystem/JAudio2/JASDriverIF.cpp b/libs/JSystem/JAudio2/JASDriverIF.cpp index ce34c54041..2c8d593952 100644 --- a/libs/JSystem/JAudio2/JASDriverIF.cpp +++ b/libs/JSystem/JAudio2/JASDriverIF.cpp @@ -4,228 +4,99 @@ // #include "JSystem/JAudio2/JASDriverIF.h" -#include "dol2asm.h" - -// -// Types: -// - -struct JASDsp { - /* 8029DA04 */ void setDSPMixerLevel(f32); - /* 8029DA30 */ void getDSPMixerLevel(); -}; - -struct JASCallbackMgr { - struct TCallback { - /* 8029E3A0 */ TCallback(); - }; - - /* 8028FFA8 */ void regist(s32 (*)(void*), void*); - /* 80290030 */ void reject(s32 (*)(void*), void*); - /* 802900C4 */ void callback(); -}; - -// -// Forward References: -// - -extern "C" void setDSPLevel__9JASDriverFf(); -extern "C" u16 getChannelLevel_dsp__9JASDriverFv(); -extern "C" void getDSPLevel__9JASDriverFv(); -extern "C" void setOutputMode__9JASDriverFUl(); -extern "C" u32 getOutputMode__9JASDriverFv(); -extern "C" void waitSubFrame__9JASDriverFv(); -extern "C" void rejectCallback__9JASDriverFPFPv_lPv(); -extern "C" void registerDspSyncCallback__9JASDriverFPFPv_lPv(); -extern "C" void registerSubFrameCallback__9JASDriverFPFPv_lPv(); -extern "C" void subframeCallback__9JASDriverFv(); -extern "C" void DSPSyncCallback__9JASDriverFv(); -extern "C" void updateDacCallback__9JASDriverFv(); -extern "C" void __sinit_JASDriverIF_cpp(); -extern "C" void __ct__Q214JASCallbackMgr9TCallbackFv(); -extern "C" u8 sDspSyncCallback__9JASDriver[256]; -extern "C" u8 sSubFrameCallback__9JASDriver[256]; -extern "C" u8 sUpdateDacCallback__9JASDriver[256 + 8 /* padding */]; -extern "C" u16 MAX_MIXERLEVEL__9JASDriver[1 + 1 /* padding */]; -extern "C" u32 JAS_SYSTEM_OUTPUT_MODE__9JASDriver; - -// -// External References: -// - -extern "C" void regist__14JASCallbackMgrFPFPv_lPv(); -extern "C" void reject__14JASCallbackMgrFPFPv_lPv(); -extern "C" void callback__14JASCallbackMgrFv(); -extern "C" void getSubFrameCounter__9JASDriverFv(); -extern "C" void setDSPMixerLevel__6JASDspFf(); -extern "C" void getDSPMixerLevel__6JASDspFv(); -extern "C" void OSYieldThread(); -extern "C" void __construct_array(); -extern "C" void _savegpr_28(); -extern "C" void _restgpr_28(); +#include "JSystem/JAudio2/JASAiCtrl.h" +#include "JSystem/JAudio2/JASDSPInterface.h" +#include "dolphin/os/OSThread.h" // // Declarations: // /* 8029E130-8029E150 298A70 0020+00 0/0 3/3 0/0 .text setDSPLevel__9JASDriverFf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDriver::setDSPLevel(f32 param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASDriverIF/setDSPLevel__9JASDriverFf.s" +void JASDriver::setDSPLevel(f32 param_0) { + JASDsp::setDSPMixerLevel(param_0); } -#pragma pop /* ############################################################################################## */ /* 804507C0-804507C4 000240 0002+02 1/0 0/0 0/0 .sdata MAX_MIXERLEVEL__9JASDriver */ -SECTION_SDATA u16 JASDriver::MAX_MIXERLEVEL[1 + 1 /* padding */] = { - 0x2EE0, - /* padding */ - 0x0000, -}; +u16 JASDriver::MAX_MIXERLEVEL = 0x2EE0; /* 8029E150-8029E158 -00001 0008+00 0/0 0/0 0/0 .text getChannelLevel_dsp__9JASDriverFv */ u16 JASDriver::getChannelLevel_dsp() { - return *(u16*)(&JASDriver::MAX_MIXERLEVEL); + return JASDriver::MAX_MIXERLEVEL; } /* 8029E158-8029E178 298A98 0020+00 0/0 3/3 0/0 .text getDSPLevel__9JASDriverFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm f32 JASDriver::getDSPLevel() { - nofralloc -#include "asm/JSystem/JAudio2/JASDriverIF/getDSPLevel__9JASDriverFv.s" +f32 JASDriver::getDSPLevel() { + return JASDsp::getDSPMixerLevel(); } -#pragma pop /* ############################################################################################## */ /* 804507C4-804507C8 000244 0004+00 2/1 0/0 0/0 .sdata JAS_SYSTEM_OUTPUT_MODE__9JASDriver */ -SECTION_SDATA u32 JASDriver::JAS_SYSTEM_OUTPUT_MODE = 0x00000001; +u32 JASDriver::JAS_SYSTEM_OUTPUT_MODE = 0x00000001; /* 8029E178-8029E180 298AB8 0008+00 0/0 2/2 0/0 .text setOutputMode__9JASDriverFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDriver::setOutputMode(u32 param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASDriverIF/setOutputMode__9JASDriverFUl.s" +void JASDriver::setOutputMode(u32 param_0) { + JAS_SYSTEM_OUTPUT_MODE = param_0; } -#pragma pop /* 8029E180-8029E188 -00001 0008+00 0/0 0/0 0/0 .text getOutputMode__9JASDriverFv */ u32 JASDriver::getOutputMode() { - return *(u32*)(&JASDriver::JAS_SYSTEM_OUTPUT_MODE); + return JASDriver::JAS_SYSTEM_OUTPUT_MODE; } /* 8029E188-8029E1C4 298AC8 003C+00 0/0 1/1 0/0 .text waitSubFrame__9JASDriverFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDriver::waitSubFrame() { - nofralloc -#include "asm/JSystem/JAudio2/JASDriverIF/waitSubFrame__9JASDriverFv.s" +void JASDriver::waitSubFrame() { + u32 r31 = getSubFrameCounter(); + do { + OSYieldThread(); + } while (r31 == getSubFrameCounter()); } -#pragma pop /* ############################################################################################## */ /* 80431C78-80431D78 05E998 0100+00 4/4 0/0 0/0 .bss sDspSyncCallback__9JASDriver */ -u8 JASDriver::sDspSyncCallback[256]; +JASCallbackMgr JASDriver::sDspSyncCallback; /* 80431D78-80431E78 05EA98 0100+00 2/4 0/0 0/0 .bss sSubFrameCallback__9JASDriver */ -u8 JASDriver::sSubFrameCallback[256]; +JASCallbackMgr JASDriver::sSubFrameCallback; /* 80431E78-80431F80 05EB98 0100+08 1/3 0/0 0/0 .bss sUpdateDacCallback__9JASDriver */ -u8 JASDriver::sUpdateDacCallback[256 + 8 /* padding */]; +JASCallbackMgr JASDriver::sUpdateDacCallback; /* 8029E1C4-8029E240 298B04 007C+00 0/0 2/2 0/0 .text rejectCallback__9JASDriverFPFPv_lPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDriver::rejectCallback(DriverCallback callback, void* param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JASDriverIF/rejectCallback__9JASDriverFPFPv_lPv.s" +int JASDriver::rejectCallback(DriverCallback callback, void* param_1) { + int r31 = sDspSyncCallback.reject(callback, param_1); + r31 += sSubFrameCallback.reject(callback, param_1); + r31 += sUpdateDacCallback.reject(callback, param_1); + return r31; } -#pragma pop /* 8029E240-8029E274 298B80 0034+00 0/0 1/1 0/0 .text registerDspSyncCallback__9JASDriverFPFPv_lPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool JASDriver::registerDspSyncCallback(DriverCallback callback, void* param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JASDriverIF/registerDspSyncCallback__9JASDriverFPFPv_lPv.s" +bool JASDriver::registerDspSyncCallback(DriverCallback callback, void* param_1) { + return sDspSyncCallback.regist(callback, param_1); } -#pragma pop /* 8029E274-8029E2A8 298BB4 0034+00 0/0 3/3 0/0 .text * registerSubFrameCallback__9JASDriverFPFPv_lPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool JASDriver::registerSubFrameCallback(DriverCallback callback, void* param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JASDriverIF/registerSubFrameCallback__9JASDriverFPFPv_lPv.s" +bool JASDriver::registerSubFrameCallback(DriverCallback callback, void* param_1) { + return sSubFrameCallback.regist(callback, param_1); } -#pragma pop /* 8029E2A8-8029E2D0 298BE8 0028+00 0/0 1/1 0/0 .text subframeCallback__9JASDriverFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDriver::subframeCallback() { - nofralloc -#include "asm/JSystem/JAudio2/JASDriverIF/subframeCallback__9JASDriverFv.s" +void JASDriver::subframeCallback() { + sSubFrameCallback.callback(); } -#pragma pop /* 8029E2D0-8029E2F8 298C10 0028+00 0/0 1/1 0/0 .text DSPSyncCallback__9JASDriverFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDriver::DSPSyncCallback() { - nofralloc -#include "asm/JSystem/JAudio2/JASDriverIF/DSPSyncCallback__9JASDriverFv.s" +void JASDriver::DSPSyncCallback() { + sDspSyncCallback.callback(); } -#pragma pop /* 8029E2F8-8029E320 298C38 0028+00 0/0 1/1 0/0 .text updateDacCallback__9JASDriverFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDriver::updateDacCallback() { - nofralloc -#include "asm/JSystem/JAudio2/JASDriverIF/updateDacCallback__9JASDriverFv.s" +void JASDriver::updateDacCallback() { + sUpdateDacCallback.callback(); } -#pragma pop - -/* 8029E320-8029E3A0 298C60 0080+00 0/0 1/0 0/0 .text __sinit_JASDriverIF_cpp */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __sinit_JASDriverIF_cpp() { - nofralloc -#include "asm/JSystem/JAudio2/JASDriverIF/__sinit_JASDriverIF_cpp.s" -} -#pragma pop - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x8029E320, __sinit_JASDriverIF_cpp); -#pragma pop - -/* 8029E3A0-8029E3B0 298CE0 0010+00 1/1 0/0 0/0 .text __ct__Q214JASCallbackMgr9TCallbackFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JASCallbackMgr::TCallback::TCallback() { - nofralloc -#include "asm/JSystem/JAudio2/JASDriverIF/__ct__Q214JASCallbackMgr9TCallbackFv.s" -} -#pragma pop diff --git a/libs/JSystem/JAudio2/dsptask.cpp b/libs/JSystem/JAudio2/dsptask.cpp index dc2d445838..8faf4c7069 100644 --- a/libs/JSystem/JAudio2/dsptask.cpp +++ b/libs/JSystem/JAudio2/dsptask.cpp @@ -13,7 +13,9 @@ // Types: // -struct STRUCT_DSP_TASK {}; +struct STRUCT_DSP_TASK { + /* 0x00 */ DSPTaskInfo info; +}; // // Forward References: @@ -559,29 +561,29 @@ SECTION_DATA static u8 jdsp[7936] = { }; /* 80431F80-80431FE0 05ECA0 0050+10 1/1 0/0 0/0 .bss audio_task */ -static u8 audio_task[80 + 16 /* padding */]; +static STRUCT_DSP_TASK audio_task ALIGN_DECL(32); /* 80431FE0-80433FE0 05ED00 2000+00 1/1 0/0 0/0 .bss AUDIO_YIELD_BUFFER */ -static u8 AUDIO_YIELD_BUFFER[8192]; +static u8 AUDIO_YIELD_BUFFER[8192] ALIGN_DECL(32); /* 8029E720-8029E7CC 299060 00AC+00 0/0 1/1 0/0 .text DspBoot__FPFPv_v */ void DspBoot(void (*param_0)(void*)) { DspInitWork(); - ((DSPTaskInfo*)audio_task)->priority = 0xf0; - ((DSPTaskInfo*)audio_task)->iram_mmem_addr = (u16*)(jdsp + 0x80000000); - ((DSPTaskInfo*)audio_task)->iram_length = sizeof(jdsp); - ((DSPTaskInfo*)audio_task)->iram_addr = 0; - ((DSPTaskInfo*)audio_task)->dram_mmem_addr = (u16*)(AUDIO_YIELD_BUFFER + 0x80000000); - ((DSPTaskInfo*)audio_task)->dram_length = sizeof(AUDIO_YIELD_BUFFER); - ((DSPTaskInfo*)audio_task)->dram_addr = 0; - ((DSPTaskInfo*)audio_task)->dsp_init_vector = 0; - ((DSPTaskInfo*)audio_task)->dsp_resume_vector = 0x10; - ((DSPTaskInfo*)audio_task)->init_cb = DspHandShake; - ((DSPTaskInfo*)audio_task)->res_cb = NULL; - ((DSPTaskInfo*)audio_task)->done_cb = NULL; - ((DSPTaskInfo*)audio_task)->req_cb = param_0; + audio_task.info.priority = 0xf0; + audio_task.info.iram_mmem_addr = (u16*)(jdsp + 0x80000000); + audio_task.info.iram_length = sizeof(jdsp); + audio_task.info.iram_addr = 0; + audio_task.info.dram_mmem_addr = (u16*)(AUDIO_YIELD_BUFFER + 0x80000000); + audio_task.info.dram_length = sizeof(AUDIO_YIELD_BUFFER); + audio_task.info.dram_addr = 0; + audio_task.info.dsp_init_vector = 0; + audio_task.info.dsp_resume_vector = 0x10; + audio_task.info.init_cb = DspHandShake; + audio_task.info.res_cb = NULL; + audio_task.info.done_cb = NULL; + audio_task.info.req_cb = param_0; DSPInit(); - DSPAddPriorTask((STRUCT_DSP_TASK*)audio_task); + DSPAddPriorTask(&audio_task); } /* 8029E7E0-8029E8C8 299120 00E8+00 0/0 4/4 0/0 .text DSPSendCommands2__FPUlUlPFUs_v */ diff --git a/libs/Z2AudioLib/Z2AudioMgr.cpp b/libs/Z2AudioLib/Z2AudioMgr.cpp index 09dd50dcad..bcc367119c 100644 --- a/libs/Z2AudioLib/Z2AudioMgr.cpp +++ b/libs/Z2AudioLib/Z2AudioMgr.cpp @@ -4,6 +4,7 @@ // #include "Z2AudioLib/Z2AudioMgr.h" +#include "JSystem/JAudio2/JASAiCtrl.h" #include "JSystem/JAudio2/JASDriverIF.h" #include "MSL_C/stdio.h" #include "MSL_C/stdlib.h" diff --git a/src/m_Do/m_Do_DVDError.cpp b/src/m_Do/m_Do_DVDError.cpp index 2dea4444d7..a7464915fb 100644 --- a/src/m_Do/m_Do_DVDError.cpp +++ b/src/m_Do/m_Do_DVDError.cpp @@ -9,6 +9,7 @@ #include "dol2asm.h" #include "dolphin/dvd/dvd.h" #include "dolphin/os/OSAlarm.h" +#include "dolphin/os/OSInterrupt.h" #include "m_Do/m_Do_dvd_thread.h" #include "m_Do/m_Do_ext.h" #include "m_Do/m_Do_Reset.h"