diff --git a/Progress.md b/Progress.md index c04b9f21ea..89f734518a 100644 --- a/Progress.md +++ b/Progress.md @@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes) .init | 97.972973% | 9280 | 9472 .extab | 100.000000% | 96 | 96 .extabindex | 100.000000% | 96 | 96 -.text | 45.630361% | 1641116 | 3596544 +.text | 46.158868% | 1660124 | 3596544 .ctors | 100.000000% | 448 | 448 .dtors | 100.000000% | 32 | 32 .rodata | 100.000000% | 193856 | 193856 .data | 100.000000% | 197632 | 197632 .sdata | 100.000000% | 1408 | 1408 .sdata2 | 100.000000% | 20832 | 20832 -Total | 51.360867% | 2065052 | 4020672 +Total | 51.833624% | 2084060 | 4020672 ## Total Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- -main.dol | 51.360867% | 2065052 | 4020672 +main.dol | 51.833624% | 2084060 | 4020672 RELs | 35.763653% | 4112936 | 11500324 -Total | 39.804069% | 6177988 | 15520996 +Total | 39.926536% | 6196996 | 15520996 ## RELs diff --git a/asm/JSystem/JAudio2/JASAramStream/cancel__13JASAramStreamFv.s b/asm/JSystem/JAudio2/JASAramStream/cancel__13JASAramStreamFv.s deleted file mode 100644 index 61efce093b..0000000000 --- a/asm/JSystem/JAudio2/JASAramStream/cancel__13JASAramStreamFv.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_802966CC: -/* 802966CC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802966D0 7C 08 02 A6 */ mflr r0 -/* 802966D4 90 01 00 14 */ stw r0, 0x14(r1) -/* 802966D8 7C 65 1B 78 */ mr r5, r3 -/* 802966DC 38 00 00 01 */ li r0, 1 -/* 802966E0 98 03 01 14 */ stb r0, 0x114(r3) -/* 802966E4 80 6D 8C D0 */ lwz r3, sLoadThread__13JASAramStream(r13) -/* 802966E8 3C 80 80 29 */ lis r4, finishTask__13JASAramStreamFPv@ha /* 0x80296868@ha */ -/* 802966EC 38 84 68 68 */ addi r4, r4, finishTask__13JASAramStreamFPv@l /* 0x80296868@l */ -/* 802966F0 4B FF 95 65 */ bl sendCmdMsg__13JASTaskThreadFPFPv_vPv -/* 802966F4 30 03 FF FF */ addic r0, r3, -1 -/* 802966F8 7C 00 19 10 */ subfe r0, r0, r3 -/* 802966FC 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 80296700 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80296704 7C 08 03 A6 */ mtlr r0 -/* 80296708 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029670C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASAramStream/channelCallback__13JASAramStreamFUlP10JASChannelPQ26JASDsp8TChannelPv.s b/asm/JSystem/JAudio2/JASAramStream/channelCallback__13JASAramStreamFUlP10JASChannelPQ26JASDsp8TChannelPv.s deleted file mode 100644 index 118c03b653..0000000000 --- a/asm/JSystem/JAudio2/JASAramStream/channelCallback__13JASAramStreamFUlP10JASChannelPQ26JASDsp8TChannelPv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_80296DF0: -/* 80296DF0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80296DF4 7C 08 02 A6 */ mflr r0 -/* 80296DF8 90 01 00 14 */ stw r0, 0x14(r1) -/* 80296DFC 7C 68 1B 78 */ mr r8, r3 -/* 80296E00 7C 87 23 78 */ mr r7, r4 -/* 80296E04 7C A0 2B 78 */ mr r0, r5 -/* 80296E08 7C C3 33 78 */ mr r3, r6 -/* 80296E0C 7D 04 43 78 */ mr r4, r8 -/* 80296E10 7C E5 3B 78 */ mr r5, r7 -/* 80296E14 7C 06 03 78 */ mr r6, r0 -/* 80296E18 48 00 00 15 */ bl updateChannel__13JASAramStreamFUlP10JASChannelPQ26JASDsp8TChannel -/* 80296E1C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80296E20 7C 08 03 A6 */ mtlr r0 -/* 80296E24 38 21 00 10 */ addi r1, r1, 0x10 -/* 80296E28 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASAramStream/channelProcCallback__13JASAramStreamFPv.s b/asm/JSystem/JAudio2/JASAramStream/channelProcCallback__13JASAramStreamFPv.s deleted file mode 100644 index aa74891175..0000000000 --- a/asm/JSystem/JAudio2/JASAramStream/channelProcCallback__13JASAramStreamFPv.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80296D74: -/* 80296D74 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80296D78 7C 08 02 A6 */ mflr r0 -/* 80296D7C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80296D80 48 00 07 2D */ bl channelProc__13JASAramStreamFv -/* 80296D84 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80296D88 7C 08 03 A6 */ mtlr r0 -/* 80296D8C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80296D90 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASAramStream/channelStop__13JASAramStreamFUs.s b/asm/JSystem/JAudio2/JASAramStream/channelStop__13JASAramStreamFUs.s deleted file mode 100644 index 594062edc0..0000000000 --- a/asm/JSystem/JAudio2/JASAramStream/channelStop__13JASAramStreamFUs.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_80297870: -/* 80297870 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80297874 7C 08 02 A6 */ mflr r0 -/* 80297878 90 01 00 24 */ stw r0, 0x24(r1) -/* 8029787C 39 61 00 20 */ addi r11, r1, 0x20 -/* 80297880 48 0C A9 59 */ bl _savegpr_28 -/* 80297884 7C 7C 1B 78 */ mr r28, r3 -/* 80297888 7C 9D 23 78 */ mr r29, r4 -/* 8029788C 3B C0 00 00 */ li r30, 0 -/* 80297890 3B E0 00 00 */ li r31, 0 -/* 80297894 48 00 00 24 */ b lbl_802978B8 -lbl_80297898: -/* 80297898 38 1F 00 90 */ addi r0, r31, 0x90 -/* 8029789C 7C 7C 00 2E */ lwzx r3, r28, r0 -/* 802978A0 28 03 00 00 */ cmplwi r3, 0 -/* 802978A4 41 82 00 0C */ beq lbl_802978B0 -/* 802978A8 7F A4 EB 78 */ mr r4, r29 -/* 802978AC 48 00 32 25 */ bl release__10JASChannelFUs -lbl_802978B0: -/* 802978B0 3B DE 00 01 */ addi r30, r30, 1 -/* 802978B4 3B FF 00 04 */ addi r31, r31, 4 -lbl_802978B8: -/* 802978B8 A0 1C 01 5A */ lhz r0, 0x15a(r28) -/* 802978BC 7C 1E 00 00 */ cmpw r30, r0 -/* 802978C0 41 80 FF D8 */ blt lbl_80297898 -/* 802978C4 39 61 00 20 */ addi r11, r1, 0x20 -/* 802978C8 48 0C A9 5D */ bl _restgpr_28 -/* 802978CC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802978D0 7C 08 03 A6 */ mtlr r0 -/* 802978D4 38 21 00 20 */ addi r1, r1, 0x20 -/* 802978D8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASAramStream/finishTask__13JASAramStreamFPv.s b/asm/JSystem/JAudio2/JASAramStream/finishTask__13JASAramStreamFPv.s deleted file mode 100644 index e013cf1448..0000000000 --- a/asm/JSystem/JAudio2/JASAramStream/finishTask__13JASAramStreamFPv.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_80296868: -/* 80296868 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029686C 7C 08 02 A6 */ mflr r0 -/* 80296870 90 01 00 14 */ stw r0, 0x14(r1) -/* 80296874 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80296878 7C 7F 1B 78 */ mr r31, r3 -/* 8029687C 3C 60 80 29 */ lis r3, channelProcCallback__13JASAramStreamFPv@ha /* 0x80296D74@ha */ -/* 80296880 38 63 6D 74 */ addi r3, r3, channelProcCallback__13JASAramStreamFPv@l /* 0x80296D74@l */ -/* 80296884 7F E4 FB 78 */ mr r4, r31 -/* 80296888 48 00 79 3D */ bl rejectCallback__9JASDriverFPFPv_lPv -/* 8029688C 81 9F 01 50 */ lwz r12, 0x150(r31) -/* 80296890 28 0C 00 00 */ cmplwi r12, 0 -/* 80296894 41 82 00 20 */ beq lbl_802968B4 -/* 80296898 38 60 00 00 */ li r3, 0 -/* 8029689C 7F E4 FB 78 */ mr r4, r31 -/* 802968A0 80 BF 01 54 */ lwz r5, 0x154(r31) -/* 802968A4 7D 89 03 A6 */ mtctr r12 -/* 802968A8 4E 80 04 21 */ bctrl -/* 802968AC 38 00 00 00 */ li r0, 0 -/* 802968B0 90 1F 01 50 */ stw r0, 0x150(r31) -lbl_802968B4: -/* 802968B4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802968B8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802968BC 7C 08 03 A6 */ mtlr r0 -/* 802968C0 38 21 00 10 */ addi r1, r1, 0x10 -/* 802968C4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASAramStream/firstLoadTask__13JASAramStreamFPv.s b/asm/JSystem/JAudio2/JASAramStream/firstLoadTask__13JASAramStreamFPv.s deleted file mode 100644 index 784d1ba8e7..0000000000 --- a/asm/JSystem/JAudio2/JASAramStream/firstLoadTask__13JASAramStreamFPv.s +++ /dev/null @@ -1,59 +0,0 @@ -lbl_8029676C: -/* 8029676C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80296770 7C 08 02 A6 */ mflr r0 -/* 80296774 90 01 00 24 */ stw r0, 0x24(r1) -/* 80296778 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8029677C 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80296780 7C 7F 1B 78 */ mr r31, r3 -/* 80296784 83 C3 00 00 */ lwz r30, 0(r3) -/* 80296788 7F C3 F3 78 */ mr r3, r30 -/* 8029678C 48 00 03 5D */ bl load__13JASAramStreamFv -/* 80296790 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80296794 41 82 00 9C */ beq lbl_80296830 -/* 80296798 80 7F 00 08 */ lwz r3, 8(r31) -/* 8029679C 2C 03 00 00 */ cmpwi r3, 0 -/* 802967A0 40 81 00 3C */ ble lbl_802967DC -/* 802967A4 38 03 FF FF */ addi r0, r3, -1 -/* 802967A8 90 1F 00 08 */ stw r0, 8(r31) -/* 802967AC 80 1F 00 08 */ lwz r0, 8(r31) -/* 802967B0 2C 00 00 00 */ cmpwi r0, 0 -/* 802967B4 40 82 00 28 */ bne lbl_802967DC -/* 802967B8 80 6D 8C D0 */ lwz r3, sLoadThread__13JASAramStream(r13) -/* 802967BC 3C 80 80 29 */ lis r4, prepareFinishTask__13JASAramStreamFPv@ha /* 0x802968C8@ha */ -/* 802967C0 38 84 68 C8 */ addi r4, r4, prepareFinishTask__13JASAramStreamFPv@l /* 0x802968C8@l */ -/* 802967C4 7F C5 F3 78 */ mr r5, r30 -/* 802967C8 4B FF 94 8D */ bl sendCmdMsg__13JASTaskThreadFPFPv_vPv -/* 802967CC 2C 03 00 00 */ cmpwi r3, 0 -/* 802967D0 40 82 00 0C */ bne lbl_802967DC -/* 802967D4 38 00 00 01 */ li r0, 1 -/* 802967D8 98 0D 8C E1 */ stb r0, struct_80451260+0x1(r13) -lbl_802967DC: -/* 802967DC 80 7F 00 04 */ lwz r3, 4(r31) -/* 802967E0 28 03 00 00 */ cmplwi r3, 0 -/* 802967E4 41 82 00 4C */ beq lbl_80296830 -/* 802967E8 38 03 FF FF */ addi r0, r3, -1 -/* 802967EC 90 1F 00 04 */ stw r0, 4(r31) -/* 802967F0 80 6D 8C D0 */ lwz r3, sLoadThread__13JASAramStream(r13) -/* 802967F4 3C 80 80 29 */ lis r4, firstLoadTask__13JASAramStreamFPv@ha /* 0x8029676C@ha */ -/* 802967F8 38 84 67 6C */ addi r4, r4, firstLoadTask__13JASAramStreamFPv@l /* 0x8029676C@l */ -/* 802967FC 7F E5 FB 78 */ mr r5, r31 -/* 80296800 38 C0 00 0C */ li r6, 0xc -/* 80296804 4B FF 93 59 */ bl sendCmdMsg__13JASTaskThreadFPFPv_vPCvUl -/* 80296808 2C 03 00 00 */ cmpwi r3, 0 -/* 8029680C 40 82 00 0C */ bne lbl_80296818 -/* 80296810 38 00 00 01 */ li r0, 1 -/* 80296814 98 0D 8C E1 */ stb r0, struct_80451260+0x1(r13) -lbl_80296818: -/* 80296818 48 0A 6E DD */ bl OSDisableInterrupts -/* 8029681C 90 61 00 08 */ stw r3, 8(r1) -/* 80296820 80 9E 01 18 */ lwz r4, 0x118(r30) -/* 80296824 38 04 00 01 */ addi r0, r4, 1 -/* 80296828 90 1E 01 18 */ stw r0, 0x118(r30) -/* 8029682C 48 0A 6E F1 */ bl OSRestoreInterrupts -lbl_80296830: -/* 80296830 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80296834 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 80296838 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8029683C 7C 08 03 A6 */ mtlr r0 -/* 80296840 38 21 00 20 */ addi r1, r1, 0x20 -/* 80296844 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASAramStream/getBlockSamples__13JASAramStreamCFv.s b/asm/JSystem/JAudio2/JASAramStream/getBlockSamples__13JASAramStreamCFv.s deleted file mode 100644 index 6606c311a2..0000000000 --- a/asm/JSystem/JAudio2/JASAramStream/getBlockSamples__13JASAramStreamCFv.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_80296710: -/* 80296710 A0 03 01 58 */ lhz r0, 0x158(r3) -/* 80296714 28 00 00 00 */ cmplwi r0, 0 -/* 80296718 40 82 00 18 */ bne lbl_80296730 -/* 8029671C 80 0D 8C D8 */ lwz r0, sBlockSize__13JASAramStream(r13) -/* 80296720 54 03 20 36 */ slwi r3, r0, 4 -/* 80296724 38 00 00 09 */ li r0, 9 -/* 80296728 7C 63 03 96 */ divwu r3, r3, r0 -/* 8029672C 4E 80 00 20 */ blr -lbl_80296730: -/* 80296730 80 0D 8C D8 */ lwz r0, sBlockSize__13JASAramStream(r13) -/* 80296734 54 03 F8 7E */ srwi r3, r0, 1 -/* 80296738 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASAramStream/headerLoadTask__13JASAramStreamFPv.s b/asm/JSystem/JAudio2/JASAramStream/headerLoadTask__13JASAramStreamFPv.s deleted file mode 100644 index a522fbfdfb..0000000000 --- a/asm/JSystem/JAudio2/JASAramStream/headerLoadTask__13JASAramStreamFPv.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_8029673C: -/* 8029673C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80296740 7C 08 02 A6 */ mflr r0 -/* 80296744 90 01 00 14 */ stw r0, 0x14(r1) -/* 80296748 7C 65 1B 78 */ mr r5, r3 -/* 8029674C 80 63 00 00 */ lwz r3, 0(r3) -/* 80296750 80 85 00 04 */ lwz r4, 4(r5) -/* 80296754 80 A5 00 08 */ lwz r5, 8(r5) -/* 80296758 48 00 01 C9 */ bl headerLoad__13JASAramStreamFUli -/* 8029675C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80296760 7C 08 03 A6 */ mtlr r0 -/* 80296764 38 21 00 10 */ addi r1, r1, 0x10 -/* 80296768 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASAramStream/initSystem__13JASAramStreamFUlUl.s b/asm/JSystem/JAudio2/JASAramStream/initSystem__13JASAramStreamFUlUl.s deleted file mode 100644 index 49870415fd..0000000000 --- a/asm/JSystem/JAudio2/JASAramStream/initSystem__13JASAramStreamFUlUl.s +++ /dev/null @@ -1,38 +0,0 @@ -lbl_8029631C: -/* 8029631C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80296320 7C 08 02 A6 */ mflr r0 -/* 80296324 90 01 00 14 */ stw r0, 0x14(r1) -/* 80296328 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8029632C 93 C1 00 08 */ stw r30, 8(r1) -/* 80296330 7C 7E 1B 78 */ mr r30, r3 -/* 80296334 7C 9F 23 78 */ mr r31, r4 -/* 80296338 3C 60 80 29 */ lis r3, dvdErrorCheck__13JASAramStreamFPv@ha /* 0x80296D94@ha */ -/* 8029633C 38 63 6D 94 */ addi r3, r3, dvdErrorCheck__13JASAramStreamFPv@l /* 0x80296D94@l */ -/* 80296340 38 80 00 00 */ li r4, 0 -/* 80296344 48 00 7F 31 */ bl registerSubFrameCallback__9JASDriverFPFPv_lPv -/* 80296348 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8029634C 41 82 00 44 */ beq lbl_80296390 -/* 80296350 80 0D 8C D0 */ lwz r0, sLoadThread__13JASAramStream(r13) -/* 80296354 28 00 00 00 */ cmplwi r0, 0 -/* 80296358 40 82 00 0C */ bne lbl_80296364 -/* 8029635C 4B FF 9B A1 */ bl getThreadPointer__6JASDvdFv -/* 80296360 90 6D 8C D0 */ stw r3, sLoadThread__13JASAramStream(r13) -lbl_80296364: -/* 80296364 38 1E 00 20 */ addi r0, r30, 0x20 -/* 80296368 7C 60 F9 D6 */ mullw r3, r0, r31 -/* 8029636C 80 8D 8C 90 */ lwz r4, JASDram(r13) -/* 80296370 38 A0 00 20 */ li r5, 0x20 -/* 80296374 48 03 89 9D */ bl __nwa__FUlP7JKRHeapi -/* 80296378 90 6D 8C D4 */ stw r3, sReadBuffer__13JASAramStream(r13) -/* 8029637C 93 CD 8C D8 */ stw r30, sBlockSize__13JASAramStream(r13) -/* 80296380 93 ED 8C DC */ stw r31, sChannelMax__13JASAramStream(r13) -/* 80296384 38 00 00 00 */ li r0, 0 -/* 80296388 98 0D 8C E0 */ stb r0, struct_80451260+0x0(r13) -/* 8029638C 98 0D 8C E1 */ stb r0, struct_80451260+0x1(r13) -lbl_80296390: -/* 80296390 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80296394 83 C1 00 08 */ lwz r30, 8(r1) -/* 80296398 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029639C 7C 08 03 A6 */ mtlr r0 -/* 802963A0 38 21 00 10 */ addi r1, r1, 0x10 -/* 802963A4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASAramStream/loadToAramTask__13JASAramStreamFPv.s b/asm/JSystem/JAudio2/JASAramStream/loadToAramTask__13JASAramStreamFPv.s deleted file mode 100644 index 0ca1172df0..0000000000 --- a/asm/JSystem/JAudio2/JASAramStream/loadToAramTask__13JASAramStreamFPv.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80296848: -/* 80296848 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029684C 7C 08 02 A6 */ mflr r0 -/* 80296850 90 01 00 14 */ stw r0, 0x14(r1) -/* 80296854 48 00 02 95 */ bl load__13JASAramStreamFv -/* 80296858 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029685C 7C 08 03 A6 */ mtlr r0 -/* 80296860 38 21 00 10 */ addi r1, r1, 0x10 -/* 80296864 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASAramStream/pause__13JASAramStreamFb.s b/asm/JSystem/JAudio2/JASAramStream/pause__13JASAramStreamFb.s deleted file mode 100644 index 3e07b0a7a9..0000000000 --- a/asm/JSystem/JAudio2/JASAramStream/pause__13JASAramStreamFb.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_80296684: -/* 80296684 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80296688 7C 08 02 A6 */ mflr r0 -/* 8029668C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80296690 54 80 06 3F */ clrlwi. r0, r4, 0x18 -/* 80296694 38 80 00 03 */ li r4, 3 -/* 80296698 41 82 00 08 */ beq lbl_802966A0 -/* 8029669C 38 80 00 02 */ li r4, 2 -lbl_802966A0: -/* 802966A0 38 A0 00 00 */ li r5, 0 -/* 802966A4 48 0A 83 51 */ bl OSSendMessage -/* 802966A8 2C 03 00 00 */ cmpwi r3, 0 -/* 802966AC 40 82 00 0C */ bne lbl_802966B8 -/* 802966B0 38 60 00 00 */ li r3, 0 -/* 802966B4 48 00 00 08 */ b lbl_802966BC -lbl_802966B8: -/* 802966B8 38 60 00 01 */ li r3, 1 -lbl_802966BC: -/* 802966BC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802966C0 7C 08 03 A6 */ mtlr r0 -/* 802966C4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802966C8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASAramStream/prepareFinishTask__13JASAramStreamFPv.s b/asm/JSystem/JAudio2/JASAramStream/prepareFinishTask__13JASAramStreamFPv.s deleted file mode 100644 index 0280bf2be2..0000000000 --- a/asm/JSystem/JAudio2/JASAramStream/prepareFinishTask__13JASAramStreamFPv.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_802968C8: -/* 802968C8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802968CC 7C 08 02 A6 */ mflr r0 -/* 802968D0 90 01 00 14 */ stw r0, 0x14(r1) -/* 802968D4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802968D8 7C 7F 1B 78 */ mr r31, r3 -/* 802968DC 38 7F 00 20 */ addi r3, r31, 0x20 -/* 802968E0 38 80 00 04 */ li r4, 4 -/* 802968E4 38 A0 00 01 */ li r5, 1 -/* 802968E8 48 0A 81 0D */ bl OSSendMessage -/* 802968EC 81 9F 01 50 */ lwz r12, 0x150(r31) -/* 802968F0 28 0C 00 00 */ cmplwi r12, 0 -/* 802968F4 41 82 00 18 */ beq lbl_8029690C -/* 802968F8 38 60 00 01 */ li r3, 1 -/* 802968FC 7F E4 FB 78 */ mr r4, r31 -/* 80296900 80 BF 01 54 */ lwz r5, 0x154(r31) -/* 80296904 7D 89 03 A6 */ mtctr r12 -/* 80296908 4E 80 04 21 */ bctrl -lbl_8029690C: -/* 8029690C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80296910 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80296914 7C 08 03 A6 */ mtlr r0 -/* 80296918 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029691C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASAramStream/prepare__13JASAramStreamFli.s b/asm/JSystem/JAudio2/JASAramStream/prepare__13JASAramStreamFli.s deleted file mode 100644 index c136a0af56..0000000000 --- a/asm/JSystem/JAudio2/JASAramStream/prepare__13JASAramStreamFli.s +++ /dev/null @@ -1,52 +0,0 @@ -lbl_8029655C: -/* 8029655C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80296560 7C 08 02 A6 */ mflr r0 -/* 80296564 90 01 00 24 */ stw r0, 0x24(r1) -/* 80296568 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8029656C 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80296570 7C 7E 1B 78 */ mr r30, r3 -/* 80296574 7C BF 2B 78 */ mr r31, r5 -/* 80296578 7C 83 23 78 */ mr r3, r4 -/* 8029657C 38 9E 00 CC */ addi r4, r30, 0xcc -/* 80296580 48 0B 22 9D */ bl DVDFastOpen -/* 80296584 2C 03 00 00 */ cmpwi r3, 0 -/* 80296588 40 82 00 0C */ bne lbl_80296594 -/* 8029658C 38 60 00 00 */ li r3, 0 -/* 80296590 48 00 00 70 */ b lbl_80296600 -lbl_80296594: -/* 80296594 3C 60 80 29 */ lis r3, channelProcCallback__13JASAramStreamFPv@ha /* 0x80296D74@ha */ -/* 80296598 38 63 6D 74 */ addi r3, r3, channelProcCallback__13JASAramStreamFPv@l /* 0x80296D74@l */ -/* 8029659C 7F C4 F3 78 */ mr r4, r30 -/* 802965A0 48 00 7C D5 */ bl registerSubFrameCallback__9JASDriverFPFPv_lPv -/* 802965A4 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802965A8 40 82 00 0C */ bne lbl_802965B4 -/* 802965AC 38 60 00 00 */ li r3, 0 -/* 802965B0 48 00 00 50 */ b lbl_80296600 -lbl_802965B4: -/* 802965B4 93 C1 00 08 */ stw r30, 8(r1) -/* 802965B8 80 1E 01 4C */ lwz r0, 0x14c(r30) -/* 802965BC 90 01 00 0C */ stw r0, 0xc(r1) -/* 802965C0 93 E1 00 10 */ stw r31, 0x10(r1) -/* 802965C4 80 6D 8C D0 */ lwz r3, sLoadThread__13JASAramStream(r13) -/* 802965C8 3C 80 80 29 */ lis r4, headerLoadTask__13JASAramStreamFPv@ha /* 0x8029673C@ha */ -/* 802965CC 38 84 67 3C */ addi r4, r4, headerLoadTask__13JASAramStreamFPv@l /* 0x8029673C@l */ -/* 802965D0 38 A1 00 08 */ addi r5, r1, 8 -/* 802965D4 38 C0 00 0C */ li r6, 0xc -/* 802965D8 4B FF 95 85 */ bl sendCmdMsg__13JASTaskThreadFPFPv_vPCvUl -/* 802965DC 2C 03 00 00 */ cmpwi r3, 0 -/* 802965E0 40 82 00 1C */ bne lbl_802965FC -/* 802965E4 3C 60 80 29 */ lis r3, channelProcCallback__13JASAramStreamFPv@ha /* 0x80296D74@ha */ -/* 802965E8 38 63 6D 74 */ addi r3, r3, channelProcCallback__13JASAramStreamFPv@l /* 0x80296D74@l */ -/* 802965EC 7F C4 F3 78 */ mr r4, r30 -/* 802965F0 48 00 7B D5 */ bl rejectCallback__9JASDriverFPFPv_lPv -/* 802965F4 38 60 00 00 */ li r3, 0 -/* 802965F8 48 00 00 08 */ b lbl_80296600 -lbl_802965FC: -/* 802965FC 38 60 00 01 */ li r3, 1 -lbl_80296600: -/* 80296600 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80296604 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 80296608 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8029660C 7C 08 03 A6 */ mtlr r0 -/* 80296610 38 21 00 20 */ addi r1, r1, 0x20 -/* 80296614 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASAramStream/start__13JASAramStreamFv.s b/asm/JSystem/JAudio2/JASAramStream/start__13JASAramStreamFv.s deleted file mode 100644 index e8b5dc5486..0000000000 --- a/asm/JSystem/JAudio2/JASAramStream/start__13JASAramStreamFv.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_80296618: -/* 80296618 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029661C 7C 08 02 A6 */ mflr r0 -/* 80296620 90 01 00 14 */ stw r0, 0x14(r1) -/* 80296624 38 80 00 00 */ li r4, 0 -/* 80296628 38 A0 00 00 */ li r5, 0 -/* 8029662C 48 0A 83 C9 */ bl OSSendMessage -/* 80296630 30 03 FF FF */ addic r0, r3, -1 -/* 80296634 7C 00 19 10 */ subfe r0, r0, r3 -/* 80296638 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 8029663C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80296640 7C 08 03 A6 */ mtlr r0 -/* 80296644 38 21 00 10 */ addi r1, r1, 0x10 -/* 80296648 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASAramStream/stop__13JASAramStreamFUs.s b/asm/JSystem/JAudio2/JASAramStream/stop__13JASAramStreamFUs.s deleted file mode 100644 index ca26f8d133..0000000000 --- a/asm/JSystem/JAudio2/JASAramStream/stop__13JASAramStreamFUs.s +++ /dev/null @@ -1,15 +0,0 @@ -lbl_8029664C: -/* 8029664C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80296650 7C 08 02 A6 */ mflr r0 -/* 80296654 90 01 00 14 */ stw r0, 0x14(r1) -/* 80296658 54 80 80 1E */ slwi r0, r4, 0x10 -/* 8029665C 60 04 00 01 */ ori r4, r0, 1 -/* 80296660 38 A0 00 00 */ li r5, 0 -/* 80296664 48 0A 83 91 */ bl OSSendMessage -/* 80296668 30 03 FF FF */ addic r0, r3, -1 -/* 8029666C 7C 00 19 10 */ subfe r0, r0, r3 -/* 80296670 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 80296674 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80296678 7C 08 03 A6 */ mtlr r0 -/* 8029667C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80296680 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASChannel/__ct__10JASChannelFPFUlP10JASChannelPQ26JASDsp8TChannelPv_vPv.s b/asm/JSystem/JAudio2/JASChannel/__ct__10JASChannelFPFUlP10JASChannelPQ26JASDsp8TChannelPv_vPv.s deleted file mode 100644 index 611f4e9084..0000000000 --- a/asm/JSystem/JAudio2/JASChannel/__ct__10JASChannelFPFUlP10JASChannelPQ26JASDsp8TChannelPv_vPv.s +++ /dev/null @@ -1,71 +0,0 @@ -lbl_8029A800: -/* 8029A800 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029A804 7C 08 02 A6 */ mflr r0 -/* 8029A808 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029A80C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8029A810 7C 7F 1B 78 */ mr r31, r3 -/* 8029A814 38 00 00 00 */ li r0, 0 -/* 8029A818 90 03 00 00 */ stw r0, 0(r3) -/* 8029A81C 90 03 00 08 */ stw r0, 8(r3) -/* 8029A820 90 83 00 0C */ stw r4, 0xc(r3) -/* 8029A824 90 A3 00 10 */ stw r5, 0x10(r3) -/* 8029A828 90 03 00 14 */ stw r0, 0x14(r3) -/* 8029A82C 90 03 00 18 */ stw r0, 0x18(r3) -/* 8029A830 38 7F 00 1C */ addi r3, r31, 0x1c -/* 8029A834 3C 80 80 2A */ lis r4, __ct__13JASOscillatorFv@ha /* 0x8029BE94@ha */ -/* 8029A838 38 84 BE 94 */ addi r4, r4, __ct__13JASOscillatorFv@l /* 0x8029BE94@l */ -/* 8029A83C 38 A0 00 00 */ li r5, 0 -/* 8029A840 38 C0 00 20 */ li r6, 0x20 -/* 8029A844 38 E0 00 02 */ li r7, 2 -/* 8029A848 48 0C 75 19 */ bl __construct_array -/* 8029A84C 38 7F 00 5C */ addi r3, r31, 0x5c -/* 8029A850 48 00 14 C5 */ bl __ct__6JASLfoFv -/* 8029A854 38 7F 00 74 */ addi r3, r31, 0x74 -/* 8029A858 48 00 14 BD */ bl __ct__6JASLfoFv -/* 8029A85C C0 42 BC 80 */ lfs f2, lit_544(r2) -/* 8029A860 D0 5F 00 9C */ stfs f2, 0x9c(r31) -/* 8029A864 D0 5F 00 A0 */ stfs f2, 0xa0(r31) -/* 8029A868 C0 22 BC 84 */ lfs f1, lit_545(r2) -/* 8029A86C D0 3F 00 A4 */ stfs f1, 0xa4(r31) -/* 8029A870 C0 02 BC 88 */ lfs f0, lit_546(r2) -/* 8029A874 D0 1F 00 A8 */ stfs f0, 0xa8(r31) -/* 8029A878 D0 3F 00 AC */ stfs f1, 0xac(r31) -/* 8029A87C D0 3F 00 B0 */ stfs f1, 0xb0(r31) -/* 8029A880 D0 5F 00 B4 */ stfs f2, 0xb4(r31) -/* 8029A884 D0 5F 00 BC */ stfs f2, 0xbc(r31) -/* 8029A888 D0 3F 00 B8 */ stfs f1, 0xb8(r31) -/* 8029A88C D0 1F 00 C0 */ stfs f0, 0xc0(r31) -/* 8029A890 D0 3F 00 C4 */ stfs f1, 0xc4(r31) -/* 8029A894 38 60 00 00 */ li r3, 0 -/* 8029A898 B0 7F 00 C8 */ sth r3, 0xc8(r31) -/* 8029A89C 38 00 00 7F */ li r0, 0x7f -/* 8029A8A0 B0 1F 00 CA */ sth r0, 0xca(r31) -/* 8029A8A4 D0 3F 00 CC */ stfs f1, 0xcc(r31) -/* 8029A8A8 D0 3F 00 D0 */ stfs f1, 0xd0(r31) -/* 8029A8AC 90 7F 00 D4 */ stw r3, 0xd4(r31) -/* 8029A8B0 90 7F 00 D8 */ stw r3, 0xd8(r31) -/* 8029A8B4 38 00 00 3C */ li r0, 0x3c -/* 8029A8B8 98 1F 00 E1 */ stb r0, 0xe1(r31) -/* 8029A8BC 38 0D 82 38 */ la r0, one__11JASWaveInfo(r13) /* 804507B8-_SDA_BASE_ */ -/* 8029A8C0 90 1F 01 00 */ stw r0, 0x100(r31) -/* 8029A8C4 90 7F 00 DC */ stw r3, 0xdc(r31) -/* 8029A8C8 90 7F 01 04 */ stw r3, 0x104(r31) -/* 8029A8CC 38 00 01 50 */ li r0, 0x150 -/* 8029A8D0 B0 1F 00 8C */ sth r0, 0x8c(r31) -/* 8029A8D4 38 00 02 10 */ li r0, 0x210 -/* 8029A8D8 B0 1F 00 8E */ sth r0, 0x8e(r31) -/* 8029A8DC 38 00 03 52 */ li r0, 0x352 -/* 8029A8E0 B0 1F 00 90 */ sth r0, 0x90(r31) -/* 8029A8E4 38 00 04 12 */ li r0, 0x412 -/* 8029A8E8 B0 1F 00 92 */ sth r0, 0x92(r31) -/* 8029A8EC B0 7F 00 94 */ sth r3, 0x94(r31) -/* 8029A8F0 B0 7F 00 96 */ sth r3, 0x96(r31) -/* 8029A8F4 38 00 01 3F */ li r0, 0x13f -/* 8029A8F8 B0 1F 00 98 */ sth r0, 0x98(r31) -/* 8029A8FC 98 7F 00 04 */ stb r3, 4(r31) -/* 8029A900 7F E3 FB 78 */ mr r3, r31 -/* 8029A904 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8029A908 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029A90C 7C 08 03 A6 */ mtlr r0 -/* 8029A910 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029A914 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASChannel/calcEffect__10JASChannelFPCQ210JASChannel9PanVector.s b/asm/JSystem/JAudio2/JASChannel/calcEffect__10JASChannelFPCQ210JASChannel9PanVector.s deleted file mode 100644 index 85934f9997..0000000000 --- a/asm/JSystem/JAudio2/JASChannel/calcEffect__10JASChannelFPCQ210JASChannel9PanVector.s +++ /dev/null @@ -1,7 +0,0 @@ -lbl_8029ABA8: -/* 8029ABA8 C0 43 00 08 */ lfs f2, 8(r3) -/* 8029ABAC C0 23 00 00 */ lfs f1, 0(r3) -/* 8029ABB0 C0 03 00 04 */ lfs f0, 4(r3) -/* 8029ABB4 EC 01 00 2A */ fadds f0, f1, f0 -/* 8029ABB8 EC 22 00 2A */ fadds f1, f2, f0 -/* 8029ABBC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASChannel/calcPan__10JASChannelFPCQ210JASChannel9PanVector.s b/asm/JSystem/JAudio2/JASChannel/calcPan__10JASChannelFPCQ210JASChannel9PanVector.s deleted file mode 100644 index aa6929ef6a..0000000000 --- a/asm/JSystem/JAudio2/JASChannel/calcPan__10JASChannelFPCQ210JASChannel9PanVector.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_8029ABC0: -/* 8029ABC0 C0 03 00 08 */ lfs f0, 8(r3) -/* 8029ABC4 C0 62 BC 88 */ lfs f3, lit_546(r2) -/* 8029ABC8 EC 40 18 28 */ fsubs f2, f0, f3 -/* 8029ABCC C0 03 00 00 */ lfs f0, 0(r3) -/* 8029ABD0 EC 00 18 28 */ fsubs f0, f0, f3 -/* 8029ABD4 EC 23 00 2A */ fadds f1, f3, f0 -/* 8029ABD8 C0 03 00 04 */ lfs f0, 4(r3) -/* 8029ABDC EC 00 18 28 */ fsubs f0, f0, f3 -/* 8029ABE0 EC 01 00 2A */ fadds f0, f1, f0 -/* 8029ABE4 EC 22 00 2A */ fadds f1, f2, f0 -/* 8029ABE8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASChannel/checkBankDispose__10JASChannelCFv.s b/asm/JSystem/JAudio2/JASChannel/checkBankDispose__10JASChannelCFv.s deleted file mode 100644 index a0bdc77e2e..0000000000 --- a/asm/JSystem/JAudio2/JASChannel/checkBankDispose__10JASChannelCFv.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_8029BCC0: -/* 8029BCC0 80 A3 00 18 */ lwz r5, 0x18(r3) -/* 8029BCC4 28 05 00 00 */ cmplwi r5, 0 -/* 8029BCC8 40 82 00 0C */ bne lbl_8029BCD4 -/* 8029BCCC 38 60 00 00 */ li r3, 0 -/* 8029BCD0 4E 80 00 20 */ blr -lbl_8029BCD4: -/* 8029BCD4 38 60 00 00 */ li r3, 0 -/* 8029BCD8 80 0D 8D 18 */ lwz r0, sBankDisposeListSize__10JASChannel(r13) -/* 8029BCDC 3C 80 80 43 */ lis r4, sBankDisposeList__10JASChannel@ha /* 0x80431BF0@ha */ -/* 8029BCE0 38 84 1B F0 */ addi r4, r4, sBankDisposeList__10JASChannel@l /* 0x80431BF0@l */ -/* 8029BCE4 7C 09 03 A6 */ mtctr r0 -/* 8029BCE8 2C 00 00 00 */ cmpwi r0, 0 -/* 8029BCEC 40 81 00 20 */ ble lbl_8029BD0C -lbl_8029BCF0: -/* 8029BCF0 7C 04 18 2E */ lwzx r0, r4, r3 -/* 8029BCF4 7C 05 00 40 */ cmplw r5, r0 -/* 8029BCF8 40 82 00 0C */ bne lbl_8029BD04 -/* 8029BCFC 38 60 00 01 */ li r3, 1 -/* 8029BD00 4E 80 00 20 */ blr -lbl_8029BD04: -/* 8029BD04 38 63 00 04 */ addi r3, r3, 4 -/* 8029BD08 42 00 FF E8 */ bdnz lbl_8029BCF0 -lbl_8029BD0C: -/* 8029BD0C 38 60 00 00 */ li r3, 0 -/* 8029BD10 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASChannel/dspUpdateCallback__10JASChannelFUlPQ26JASDsp8TChannelPv.s b/asm/JSystem/JAudio2/JASChannel/dspUpdateCallback__10JASChannelFUlPQ26JASDsp8TChannelPv.s deleted file mode 100644 index 75068eab70..0000000000 --- a/asm/JSystem/JAudio2/JASChannel/dspUpdateCallback__10JASChannelFUlPQ26JASDsp8TChannelPv.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_8029AF78: -/* 8029AF78 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029AF7C 7C 08 02 A6 */ mflr r0 -/* 8029AF80 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029AF84 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8029AF88 7C BF 2B 78 */ mr r31, r5 -/* 8029AF8C 2C 03 00 01 */ cmpwi r3, 1 -/* 8029AF90 41 82 00 2C */ beq lbl_8029AFBC -/* 8029AF94 40 80 00 10 */ bge lbl_8029AFA4 -/* 8029AF98 2C 03 00 00 */ cmpwi r3, 0 -/* 8029AF9C 40 80 00 14 */ bge lbl_8029AFB0 -/* 8029AFA0 48 00 00 4C */ b lbl_8029AFEC -lbl_8029AFA4: -/* 8029AFA4 2C 03 00 04 */ cmpwi r3, 4 -/* 8029AFA8 40 80 00 44 */ bge lbl_8029AFEC -/* 8029AFAC 48 00 00 1C */ b lbl_8029AFC8 -lbl_8029AFB0: -/* 8029AFB0 7F E3 FB 78 */ mr r3, r31 -/* 8029AFB4 48 00 03 71 */ bl updateDSPChannel__10JASChannelFPQ26JASDsp8TChannel -/* 8029AFB8 48 00 00 38 */ b lbl_8029AFF0 -lbl_8029AFBC: -/* 8029AFBC 7F E3 FB 78 */ mr r3, r31 -/* 8029AFC0 48 00 00 45 */ bl initialUpdateDSPChannel__10JASChannelFPQ26JASDsp8TChannel -/* 8029AFC4 48 00 00 2C */ b lbl_8029AFF0 -lbl_8029AFC8: -/* 8029AFC8 80 7F 00 08 */ lwz r3, 8(r31) -/* 8029AFCC 48 00 23 55 */ bl free__13JASDSPChannelFv -/* 8029AFD0 38 00 00 00 */ li r0, 0 -/* 8029AFD4 90 1F 00 08 */ stw r0, 8(r31) -/* 8029AFD8 7F E3 FB 78 */ mr r3, r31 -/* 8029AFDC 38 80 00 01 */ li r4, 1 -/* 8029AFE0 4B FF F9 39 */ bl __dt__10JASChannelFv -/* 8029AFE4 38 60 FF FF */ li r3, -1 -/* 8029AFE8 48 00 00 08 */ b lbl_8029AFF0 -lbl_8029AFEC: -/* 8029AFEC 38 60 00 00 */ li r3, 0 -lbl_8029AFF0: -/* 8029AFF0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8029AFF4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029AFF8 7C 08 03 A6 */ mtlr r0 -/* 8029AFFC 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029B000 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASChannel/effectOsc__10JASChannelFUlPQ213JASOscillator12EffectParams.s b/asm/JSystem/JAudio2/JASChannel/effectOsc__10JASChannelFUlPQ213JASOscillator12EffectParams.s deleted file mode 100644 index 2b6851c688..0000000000 --- a/asm/JSystem/JAudio2/JASChannel/effectOsc__10JASChannelFUlPQ213JASOscillator12EffectParams.s +++ /dev/null @@ -1,60 +0,0 @@ -lbl_8029ABEC: -/* 8029ABEC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8029ABF0 7C 08 02 A6 */ mflr r0 -/* 8029ABF4 90 01 00 24 */ stw r0, 0x24(r1) -/* 8029ABF8 39 61 00 20 */ addi r11, r1, 0x20 -/* 8029ABFC 48 0C 75 E1 */ bl _savegpr_29 -/* 8029AC00 7C 7D 1B 78 */ mr r29, r3 -/* 8029AC04 7C BE 2B 78 */ mr r30, r5 -/* 8029AC08 54 9F 28 34 */ slwi r31, r4, 5 -/* 8029AC0C 38 7F 00 1C */ addi r3, r31, 0x1c -/* 8029AC10 7C 7D 1A 14 */ add r3, r29, r3 -/* 8029AC14 48 00 13 B5 */ bl getValue__13JASOscillatorCFv -/* 8029AC18 7C 7D FA 14 */ add r3, r29, r31 -/* 8029AC1C 80 63 00 1C */ lwz r3, 0x1c(r3) -/* 8029AC20 80 03 00 00 */ lwz r0, 0(r3) -/* 8029AC24 28 00 00 06 */ cmplwi r0, 6 -/* 8029AC28 41 81 00 94 */ bgt lbl_8029ACBC -/* 8029AC2C 3C 60 80 3C */ lis r3, lit_662@ha /* 0x803C7848@ha */ -/* 8029AC30 38 63 78 48 */ addi r3, r3, lit_662@l /* 0x803C7848@l */ -/* 8029AC34 54 00 10 3A */ slwi r0, r0, 2 -/* 8029AC38 7C 03 00 2E */ lwzx r0, r3, r0 -/* 8029AC3C 7C 09 03 A6 */ mtctr r0 -/* 8029AC40 4E 80 04 20 */ bctr -/* 8029AC44 C0 1E 00 04 */ lfs f0, 4(r30) -/* 8029AC48 EC 00 00 72 */ fmuls f0, f0, f1 -/* 8029AC4C D0 1E 00 04 */ stfs f0, 4(r30) -/* 8029AC50 48 00 00 6C */ b lbl_8029ACBC -/* 8029AC54 C0 1E 00 00 */ lfs f0, 0(r30) -/* 8029AC58 EC 00 00 72 */ fmuls f0, f0, f1 -/* 8029AC5C D0 1E 00 00 */ stfs f0, 0(r30) -/* 8029AC60 48 00 00 5C */ b lbl_8029ACBC -/* 8029AC64 C8 02 BC 90 */ lfd f0, lit_661(r2) -/* 8029AC68 FC 21 00 28 */ fsub f1, f1, f0 -/* 8029AC6C FC 20 08 18 */ frsp f1, f1 -/* 8029AC70 C0 1E 00 08 */ lfs f0, 8(r30) -/* 8029AC74 EC 00 08 2A */ fadds f0, f0, f1 -/* 8029AC78 D0 1E 00 08 */ stfs f0, 8(r30) -/* 8029AC7C 48 00 00 40 */ b lbl_8029ACBC -/* 8029AC80 C0 1E 00 0C */ lfs f0, 0xc(r30) -/* 8029AC84 EC 00 08 2A */ fadds f0, f0, f1 -/* 8029AC88 D0 1E 00 0C */ stfs f0, 0xc(r30) -/* 8029AC8C 48 00 00 30 */ b lbl_8029ACBC -/* 8029AC90 C0 1E 00 10 */ lfs f0, 0x10(r30) -/* 8029AC94 EC 00 08 2A */ fadds f0, f0, f1 -/* 8029AC98 D0 1E 00 10 */ stfs f0, 0x10(r30) -/* 8029AC9C 48 00 00 20 */ b lbl_8029ACBC -/* 8029ACA0 C0 1E 00 14 */ lfs f0, 0x14(r30) -/* 8029ACA4 EC 00 00 72 */ fmuls f0, f0, f1 -/* 8029ACA8 D0 1E 00 14 */ stfs f0, 0x14(r30) -/* 8029ACAC 48 00 00 10 */ b lbl_8029ACBC -/* 8029ACB0 C0 1E 00 18 */ lfs f0, 0x18(r30) -/* 8029ACB4 EC 00 00 72 */ fmuls f0, f0, f1 -/* 8029ACB8 D0 1E 00 18 */ stfs f0, 0x18(r30) -lbl_8029ACBC: -/* 8029ACBC 39 61 00 20 */ addi r11, r1, 0x20 -/* 8029ACC0 48 0C 75 69 */ bl _restgpr_29 -/* 8029ACC4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8029ACC8 7C 08 03 A6 */ mtlr r0 -/* 8029ACCC 38 21 00 20 */ addi r1, r1, 0x20 -/* 8029ACD0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASChannel/free__10JASChannelFv.s b/asm/JSystem/JAudio2/JASChannel/free__10JASChannelFv.s deleted file mode 100644 index 1a524837af..0000000000 --- a/asm/JSystem/JAudio2/JASChannel/free__10JASChannelFv.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8029BBFC: -/* 8029BBFC 38 00 00 00 */ li r0, 0 -/* 8029BC00 90 03 00 0C */ stw r0, 0xc(r3) -/* 8029BC04 90 03 00 10 */ stw r0, 0x10(r3) -/* 8029BC08 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASChannel/func_8029AD38.s b/asm/JSystem/JAudio2/JASChannel/func_8029AD38.s deleted file mode 100644 index d33056aa04..0000000000 --- a/asm/JSystem/JAudio2/JASChannel/func_8029AD38.s +++ /dev/null @@ -1,161 +0,0 @@ -lbl_8029AD38: -/* 8029AD38 94 21 FF 70 */ stwu r1, -0x90(r1) -/* 8029AD3C 7C 08 02 A6 */ mflr r0 -/* 8029AD40 90 01 00 94 */ stw r0, 0x94(r1) -/* 8029AD44 DB E1 00 80 */ stfd f31, 0x80(r1) -/* 8029AD48 F3 E1 00 88 */ psq_st f31, 136(r1), 0, 0 /* qr0 */ -/* 8029AD4C DB C1 00 70 */ stfd f30, 0x70(r1) -/* 8029AD50 F3 C1 00 78 */ psq_st f30, 120(r1), 0, 0 /* qr0 */ -/* 8029AD54 DB A1 00 60 */ stfd f29, 0x60(r1) -/* 8029AD58 F3 A1 00 68 */ psq_st f29, 104(r1), 0, 0 /* qr0 */ -/* 8029AD5C DB 81 00 50 */ stfd f28, 0x50(r1) -/* 8029AD60 F3 81 00 58 */ psq_st f28, 88(r1), 0, 0 /* qr0 */ -/* 8029AD64 39 61 00 50 */ addi r11, r1, 0x50 -/* 8029AD68 48 0C 74 71 */ bl _savegpr_28 -/* 8029AD6C 7C 7C 1B 78 */ mr r28, r3 -/* 8029AD70 7C 9D 23 78 */ mr r29, r4 -/* 8029AD74 7C BE 2B 78 */ mr r30, r5 -/* 8029AD78 7C DF 33 78 */ mr r31, r6 -/* 8029AD7C C0 03 00 C0 */ lfs f0, 0xc0(r3) -/* 8029AD80 D0 01 00 20 */ stfs f0, 0x20(r1) -/* 8029AD84 C0 03 00 A8 */ lfs f0, 0xa8(r3) -/* 8029AD88 D0 01 00 28 */ stfs f0, 0x28(r1) -/* 8029AD8C C0 06 00 08 */ lfs f0, 8(r6) -/* 8029AD90 D0 01 00 24 */ stfs f0, 0x24(r1) -/* 8029AD94 C0 03 00 B8 */ lfs f0, 0xb8(r3) -/* 8029AD98 D0 01 00 14 */ stfs f0, 0x14(r1) -/* 8029AD9C C0 03 00 AC */ lfs f0, 0xac(r3) -/* 8029ADA0 D0 01 00 1C */ stfs f0, 0x1c(r1) -/* 8029ADA4 C0 06 00 0C */ lfs f0, 0xc(r6) -/* 8029ADA8 D0 01 00 18 */ stfs f0, 0x18(r1) -/* 8029ADAC C0 03 00 C4 */ lfs f0, 0xc4(r3) -/* 8029ADB0 D0 01 00 08 */ stfs f0, 8(r1) -/* 8029ADB4 C0 03 00 B0 */ lfs f0, 0xb0(r3) -/* 8029ADB8 D0 01 00 10 */ stfs f0, 0x10(r1) -/* 8029ADBC C0 06 00 10 */ lfs f0, 0x10(r6) -/* 8029ADC0 D0 01 00 0C */ stfs f0, 0xc(r1) -/* 8029ADC4 C3 E2 BC 88 */ lfs f31, lit_546(r2) -/* 8029ADC8 C3 C2 BC 84 */ lfs f30, lit_545(r2) -/* 8029ADCC 48 00 33 B5 */ bl getOutputMode__9JASDriverFv -/* 8029ADD0 2C 03 00 01 */ cmpwi r3, 1 -/* 8029ADD4 41 82 00 18 */ beq lbl_8029ADEC -/* 8029ADD8 40 80 00 08 */ bge lbl_8029ADE0 -/* 8029ADDC 48 00 00 38 */ b lbl_8029AE14 -lbl_8029ADE0: -/* 8029ADE0 2C 03 00 03 */ cmpwi r3, 3 -/* 8029ADE4 40 80 00 30 */ bge lbl_8029AE14 -/* 8029ADE8 48 00 00 14 */ b lbl_8029ADFC -lbl_8029ADEC: -/* 8029ADEC 38 61 00 20 */ addi r3, r1, 0x20 -/* 8029ADF0 4B FF FD D1 */ bl calcPan__10JASChannelFPCQ210JASChannel9PanVector -/* 8029ADF4 FF E0 08 90 */ fmr f31, f1 -/* 8029ADF8 48 00 00 1C */ b lbl_8029AE14 -lbl_8029ADFC: -/* 8029ADFC 38 61 00 20 */ addi r3, r1, 0x20 -/* 8029AE00 4B FF FD C1 */ bl calcPan__10JASChannelFPCQ210JASChannel9PanVector -/* 8029AE04 FF E0 08 90 */ fmr f31, f1 -/* 8029AE08 38 61 00 08 */ addi r3, r1, 8 -/* 8029AE0C 4B FF FD 9D */ bl calcEffect__10JASChannelFPCQ210JASChannel9PanVector -/* 8029AE10 FF C0 08 90 */ fmr f30, f1 -lbl_8029AE14: -/* 8029AE14 38 61 00 14 */ addi r3, r1, 0x14 -/* 8029AE18 4B FF FD 91 */ bl calcEffect__10JASChannelFPCQ210JASChannel9PanVector -/* 8029AE1C FF A0 08 90 */ fmr f29, f1 -/* 8029AE20 A0 1C 00 CA */ lhz r0, 0xca(r28) -/* 8029AE24 C8 22 BC A8 */ lfd f1, lit_714(r2) -/* 8029AE28 90 01 00 34 */ stw r0, 0x34(r1) -/* 8029AE2C 3C 00 43 30 */ lis r0, 0x4330 -/* 8029AE30 90 01 00 30 */ stw r0, 0x30(r1) -/* 8029AE34 C8 01 00 30 */ lfd f0, 0x30(r1) -/* 8029AE38 EC 20 08 28 */ fsubs f1, f0, f1 -/* 8029AE3C C0 02 BC A0 */ lfs f0, lit_711(r2) -/* 8029AE40 EF 81 00 24 */ fdivs f28, f1, f0 -/* 8029AE44 EF 9C 07 32 */ fmuls f28, f28, f28 -/* 8029AE48 38 7C 00 74 */ addi r3, r28, 0x74 -/* 8029AE4C 48 00 0E F9 */ bl getValue__6JASLfoCFv -/* 8029AE50 C0 1F 00 18 */ lfs f0, 0x18(r31) -/* 8029AE54 EC 20 00 72 */ fmuls f1, f0, f1 -/* 8029AE58 C0 02 BC 80 */ lfs f0, lit_544(r2) -/* 8029AE5C EC 60 08 2A */ fadds f3, f0, f1 -/* 8029AE60 C0 5C 00 9C */ lfs f2, 0x9c(r28) -/* 8029AE64 C0 3C 00 B4 */ lfs f1, 0xb4(r28) -/* 8029AE68 C0 1F 00 00 */ lfs f0, 0(r31) -/* 8029AE6C EC 01 00 32 */ fmuls f0, f1, f0 -/* 8029AE70 EC 02 00 32 */ fmuls f0, f2, f0 -/* 8029AE74 EC 00 00 F2 */ fmuls f0, f0, f3 -/* 8029AE78 EF 9C 00 32 */ fmuls f28, f28, f0 -/* 8029AE7C C0 02 BC 84 */ lfs f0, lit_545(r2) -/* 8029AE80 FC 1C 00 40 */ fcmpo cr0, f28, f0 -/* 8029AE84 40 80 00 08 */ bge lbl_8029AE8C -/* 8029AE88 FF 80 00 90 */ fmr f28, f0 -lbl_8029AE8C: -/* 8029AE8C C0 42 BC 84 */ lfs f2, lit_545(r2) -/* 8029AE90 FC 1F 10 40 */ fcmpo cr0, f31, f2 -/* 8029AE94 4C 40 13 82 */ cror 2, 0, 2 -/* 8029AE98 40 82 00 08 */ bne lbl_8029AEA0 -/* 8029AE9C 48 00 00 1C */ b lbl_8029AEB8 -lbl_8029AEA0: -/* 8029AEA0 C0 42 BC 80 */ lfs f2, lit_544(r2) -/* 8029AEA4 FC 1F 10 40 */ fcmpo cr0, f31, f2 -/* 8029AEA8 4C 41 13 82 */ cror 2, 1, 2 -/* 8029AEAC 40 82 00 08 */ bne lbl_8029AEB4 -/* 8029AEB0 48 00 00 08 */ b lbl_8029AEB8 -lbl_8029AEB4: -/* 8029AEB4 FC 40 F8 90 */ fmr f2, f31 -lbl_8029AEB8: -/* 8029AEB8 C0 62 BC 84 */ lfs f3, lit_545(r2) -/* 8029AEBC FC 1D 18 40 */ fcmpo cr0, f29, f3 -/* 8029AEC0 4C 40 13 82 */ cror 2, 0, 2 -/* 8029AEC4 40 82 00 08 */ bne lbl_8029AECC -/* 8029AEC8 48 00 00 1C */ b lbl_8029AEE4 -lbl_8029AECC: -/* 8029AECC C0 62 BC 80 */ lfs f3, lit_544(r2) -/* 8029AED0 FC 1D 18 40 */ fcmpo cr0, f29, f3 -/* 8029AED4 4C 41 13 82 */ cror 2, 1, 2 -/* 8029AED8 40 82 00 08 */ bne lbl_8029AEE0 -/* 8029AEDC 48 00 00 08 */ b lbl_8029AEE4 -lbl_8029AEE0: -/* 8029AEE0 FC 60 E8 90 */ fmr f3, f29 -lbl_8029AEE4: -/* 8029AEE4 C0 82 BC 84 */ lfs f4, lit_545(r2) -/* 8029AEE8 FC 1E 20 40 */ fcmpo cr0, f30, f4 -/* 8029AEEC 4C 40 13 82 */ cror 2, 0, 2 -/* 8029AEF0 40 82 00 08 */ bne lbl_8029AEF8 -/* 8029AEF4 48 00 00 1C */ b lbl_8029AF10 -lbl_8029AEF8: -/* 8029AEF8 C0 82 BC 80 */ lfs f4, lit_544(r2) -/* 8029AEFC FC 1E 20 40 */ fcmpo cr0, f30, f4 -/* 8029AF00 4C 41 13 82 */ cror 2, 1, 2 -/* 8029AF04 40 82 00 08 */ bne lbl_8029AF0C -/* 8029AF08 48 00 00 08 */ b lbl_8029AF10 -lbl_8029AF0C: -/* 8029AF0C FC 80 F0 90 */ fmr f4, f30 -lbl_8029AF10: -/* 8029AF10 A0 1C 00 8C */ lhz r0, 0x8c(r28) -/* 8029AF14 28 00 FF FF */ cmplwi r0, 0xffff -/* 8029AF18 40 82 00 18 */ bne lbl_8029AF30 -/* 8029AF1C 7F 83 E3 78 */ mr r3, r28 -/* 8029AF20 7F A4 EB 78 */ mr r4, r29 -/* 8029AF24 FC 20 E0 90 */ fmr f1, f28 -/* 8029AF28 48 00 07 79 */ bl updateAutoMixer__10JASChannelFPQ26JASDsp8TChannelffff -/* 8029AF2C 48 00 00 14 */ b lbl_8029AF40 -lbl_8029AF30: -/* 8029AF30 7F 83 E3 78 */ mr r3, r28 -/* 8029AF34 FC 20 E0 90 */ fmr f1, f28 -/* 8029AF38 7F C4 F3 78 */ mr r4, r30 -/* 8029AF3C 48 00 08 9D */ bl updateMixer__10JASChannelFffffPUs -lbl_8029AF40: -/* 8029AF40 E3 E1 00 88 */ psq_l f31, 136(r1), 0, 0 /* qr0 */ -/* 8029AF44 CB E1 00 80 */ lfd f31, 0x80(r1) -/* 8029AF48 E3 C1 00 78 */ psq_l f30, 120(r1), 0, 0 /* qr0 */ -/* 8029AF4C CB C1 00 70 */ lfd f30, 0x70(r1) -/* 8029AF50 E3 A1 00 68 */ psq_l f29, 104(r1), 0, 0 /* qr0 */ -/* 8029AF54 CB A1 00 60 */ lfd f29, 0x60(r1) -/* 8029AF58 E3 81 00 58 */ psq_l f28, 88(r1), 0, 0 /* qr0 */ -/* 8029AF5C CB 81 00 50 */ lfd f28, 0x50(r1) -/* 8029AF60 39 61 00 50 */ addi r11, r1, 0x50 -/* 8029AF64 48 0C 72 C1 */ bl _restgpr_28 -/* 8029AF68 80 01 00 94 */ lwz r0, 0x94(r1) -/* 8029AF6C 7C 08 03 A6 */ mtlr r0 -/* 8029AF70 38 21 00 90 */ addi r1, r1, 0x90 -/* 8029AF74 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASChannel/initBankDisposeMsgQueue__10JASChannelFv.s b/asm/JSystem/JAudio2/JASChannel/initBankDisposeMsgQueue__10JASChannelFv.s deleted file mode 100644 index c6d3b6df83..0000000000 --- a/asm/JSystem/JAudio2/JASChannel/initBankDisposeMsgQueue__10JASChannelFv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_8029BC0C: -/* 8029BC0C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029BC10 7C 08 02 A6 */ mflr r0 -/* 8029BC14 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029BC18 3C 60 80 43 */ lis r3, sBankDisposeMsgQ__10JASChannel@ha /* 0x80431B90@ha */ -/* 8029BC1C 38 63 1B 90 */ addi r3, r3, sBankDisposeMsgQ__10JASChannel@l /* 0x80431B90@l */ -/* 8029BC20 3C 80 80 43 */ lis r4, sBankDisposeMsg__10JASChannel@ha /* 0x80431BB0@ha */ -/* 8029BC24 38 84 1B B0 */ addi r4, r4, sBankDisposeMsg__10JASChannel@l /* 0x80431BB0@l */ -/* 8029BC28 38 A0 00 10 */ li r5, 0x10 -/* 8029BC2C 48 0A 2D 69 */ bl OSInitMessageQueue -/* 8029BC30 38 00 00 00 */ li r0, 0 -/* 8029BC34 90 0D 8D 18 */ stw r0, sBankDisposeListSize__10JASChannel(r13) -/* 8029BC38 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029BC3C 7C 08 03 A6 */ mtlr r0 -/* 8029BC40 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029BC44 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASChannel/initialUpdateDSPChannel__10JASChannelFPQ26JASDsp8TChannel.s b/asm/JSystem/JAudio2/JASChannel/initialUpdateDSPChannel__10JASChannelFPQ26JASDsp8TChannel.s deleted file mode 100644 index 76b00c4f9a..0000000000 --- a/asm/JSystem/JAudio2/JASChannel/initialUpdateDSPChannel__10JASChannelFPQ26JASDsp8TChannel.s +++ /dev/null @@ -1,221 +0,0 @@ -lbl_8029B004: -/* 8029B004 94 21 FF A0 */ stwu r1, -0x60(r1) -/* 8029B008 7C 08 02 A6 */ mflr r0 -/* 8029B00C 90 01 00 64 */ stw r0, 0x64(r1) -/* 8029B010 39 61 00 60 */ addi r11, r1, 0x60 -/* 8029B014 48 0C 71 C5 */ bl _savegpr_28 -/* 8029B018 7C 7E 1B 78 */ mr r30, r3 -/* 8029B01C 7C 9F 23 78 */ mr r31, r4 -/* 8029B020 A0 03 00 8C */ lhz r0, 0x8c(r3) -/* 8029B024 28 00 FF FF */ cmplwi r0, 0xffff -/* 8029B028 40 82 00 0C */ bne lbl_8029B034 -/* 8029B02C 7F E3 FB 78 */ mr r3, r31 -/* 8029B030 48 00 2E 95 */ bl initAutoMixer__Q26JASDsp8TChannelFv -lbl_8029B034: -/* 8029B034 81 9E 00 0C */ lwz r12, 0xc(r30) -/* 8029B038 28 0C 00 00 */ cmplwi r12, 0 -/* 8029B03C 41 82 00 1C */ beq lbl_8029B058 -/* 8029B040 38 60 00 01 */ li r3, 1 -/* 8029B044 7F C4 F3 78 */ mr r4, r30 -/* 8029B048 7F E5 FB 78 */ mr r5, r31 -/* 8029B04C 80 DE 00 10 */ lwz r6, 0x10(r30) -/* 8029B050 7D 89 03 A6 */ mtctr r12 -/* 8029B054 4E 80 04 21 */ bctrl -lbl_8029B058: -/* 8029B058 80 7E 01 00 */ lwz r3, 0x100(r30) -/* 8029B05C 80 03 00 00 */ lwz r0, 0(r3) -/* 8029B060 28 00 00 00 */ cmplwi r0, 0 -/* 8029B064 40 82 00 28 */ bne lbl_8029B08C -/* 8029B068 80 7E 00 08 */ lwz r3, 8(r30) -/* 8029B06C 48 00 22 B5 */ bl free__13JASDSPChannelFv -/* 8029B070 38 00 00 00 */ li r0, 0 -/* 8029B074 90 1E 00 08 */ stw r0, 8(r30) -/* 8029B078 7F C3 F3 78 */ mr r3, r30 -/* 8029B07C 38 80 00 01 */ li r4, 1 -/* 8029B080 4B FF F8 99 */ bl __dt__10JASChannelFv -/* 8029B084 38 60 FF FF */ li r3, -1 -/* 8029B088 48 00 02 84 */ b lbl_8029B30C -lbl_8029B08C: -/* 8029B08C 7F C3 F3 78 */ mr r3, r30 -/* 8029B090 48 00 0C 31 */ bl checkBankDispose__10JASChannelCFv -/* 8029B094 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8029B098 41 82 00 28 */ beq lbl_8029B0C0 -/* 8029B09C 80 7E 00 08 */ lwz r3, 8(r30) -/* 8029B0A0 48 00 22 81 */ bl free__13JASDSPChannelFv -/* 8029B0A4 38 00 00 00 */ li r0, 0 -/* 8029B0A8 90 1E 00 08 */ stw r0, 8(r30) -/* 8029B0AC 7F C3 F3 78 */ mr r3, r30 -/* 8029B0B0 38 80 00 01 */ li r4, 1 -/* 8029B0B4 4B FF F8 65 */ bl __dt__10JASChannelFv -/* 8029B0B8 38 60 FF FF */ li r3, -1 -/* 8029B0BC 48 00 02 50 */ b lbl_8029B30C -lbl_8029B0C0: -/* 8029B0C0 80 1E 00 DC */ lwz r0, 0xdc(r30) -/* 8029B0C4 2C 00 00 01 */ cmpwi r0, 1 -/* 8029B0C8 41 82 00 44 */ beq lbl_8029B10C -/* 8029B0CC 40 80 00 10 */ bge lbl_8029B0DC -/* 8029B0D0 2C 00 00 00 */ cmpwi r0, 0 -/* 8029B0D4 40 80 00 14 */ bge lbl_8029B0E8 -/* 8029B0D8 48 00 00 34 */ b lbl_8029B10C -lbl_8029B0DC: -/* 8029B0DC 2C 00 00 03 */ cmpwi r0, 3 -/* 8029B0E0 40 80 00 2C */ bge lbl_8029B10C -/* 8029B0E4 48 00 00 1C */ b lbl_8029B100 -lbl_8029B0E8: -/* 8029B0E8 7F E3 FB 78 */ mr r3, r31 -/* 8029B0EC 38 9E 00 E0 */ addi r4, r30, 0xe0 -/* 8029B0F0 80 BE 01 04 */ lwz r5, 0x104(r30) -/* 8029B0F4 80 DE 00 D8 */ lwz r6, 0xd8(r30) -/* 8029B0F8 48 00 2C 95 */ bl setWaveInfo__Q26JASDsp8TChannelFRC11JASWaveInfoUlUl -/* 8029B0FC 48 00 00 10 */ b lbl_8029B10C -lbl_8029B100: -/* 8029B100 7F E3 FB 78 */ mr r3, r31 -/* 8029B104 80 9E 01 04 */ lwz r4, 0x104(r30) -/* 8029B108 48 00 2D A5 */ bl setOscInfo__Q26JASDsp8TChannelFUl -lbl_8029B10C: -/* 8029B10C 3B A0 00 00 */ li r29, 0 -/* 8029B110 48 00 00 84 */ b lbl_8029B194 -lbl_8029B114: -/* 8029B114 57 A3 0D FC */ rlwinm r3, r29, 1, 0x17, 0x1e -/* 8029B118 38 03 00 8C */ addi r0, r3, 0x8c -/* 8029B11C 7C 1E 02 2E */ lhzx r0, r30, r0 -/* 8029B120 B0 01 00 08 */ sth r0, 8(r1) -/* 8029B124 48 00 30 5D */ bl getOutputMode__9JASDriverFv -/* 8029B128 28 03 00 00 */ cmplwi r3, 0 -/* 8029B12C 40 82 00 38 */ bne lbl_8029B164 -/* 8029B130 88 01 00 08 */ lbz r0, 8(r1) -/* 8029B134 2C 00 00 09 */ cmpwi r0, 9 -/* 8029B138 41 82 00 20 */ beq lbl_8029B158 -/* 8029B13C 40 80 00 44 */ bge lbl_8029B180 -/* 8029B140 2C 00 00 08 */ cmpwi r0, 8 -/* 8029B144 40 80 00 08 */ bge lbl_8029B14C -/* 8029B148 48 00 00 38 */ b lbl_8029B180 -lbl_8029B14C: -/* 8029B14C 38 00 00 0B */ li r0, 0xb -/* 8029B150 98 01 00 08 */ stb r0, 8(r1) -/* 8029B154 48 00 00 2C */ b lbl_8029B180 -lbl_8029B158: -/* 8029B158 38 00 00 02 */ li r0, 2 -/* 8029B15C 98 01 00 08 */ stb r0, 8(r1) -/* 8029B160 48 00 00 20 */ b lbl_8029B180 -lbl_8029B164: -/* 8029B164 28 03 00 01 */ cmplwi r3, 1 -/* 8029B168 40 82 00 18 */ bne lbl_8029B180 -/* 8029B16C 88 01 00 08 */ lbz r0, 8(r1) -/* 8029B170 28 00 00 08 */ cmplwi r0, 8 -/* 8029B174 40 82 00 0C */ bne lbl_8029B180 -/* 8029B178 38 00 00 0B */ li r0, 0xb -/* 8029B17C 98 01 00 08 */ stb r0, 8(r1) -lbl_8029B180: -/* 8029B180 7F E3 FB 78 */ mr r3, r31 -/* 8029B184 7F A4 EB 78 */ mr r4, r29 -/* 8029B188 88 A1 00 08 */ lbz r5, 8(r1) -/* 8029B18C 48 00 2F 11 */ bl setBusConnect__Q26JASDsp8TChannelFUcUc -/* 8029B190 3B BD 00 01 */ addi r29, r29, 1 -lbl_8029B194: -/* 8029B194 57 A0 06 3E */ clrlwi r0, r29, 0x18 -/* 8029B198 28 00 00 06 */ cmplwi r0, 6 -/* 8029B19C 41 80 FF 78 */ blt lbl_8029B114 -/* 8029B1A0 C0 22 BC 80 */ lfs f1, lit_544(r2) -/* 8029B1A4 D0 21 00 18 */ stfs f1, 0x18(r1) -/* 8029B1A8 D0 21 00 1C */ stfs f1, 0x1c(r1) -/* 8029B1AC C0 02 BC 88 */ lfs f0, lit_546(r2) -/* 8029B1B0 D0 01 00 20 */ stfs f0, 0x20(r1) -/* 8029B1B4 C0 02 BC 84 */ lfs f0, lit_545(r2) -/* 8029B1B8 D0 01 00 24 */ stfs f0, 0x24(r1) -/* 8029B1BC D0 01 00 28 */ stfs f0, 0x28(r1) -/* 8029B1C0 D0 21 00 2C */ stfs f1, 0x2c(r1) -/* 8029B1C4 D0 21 00 30 */ stfs f1, 0x30(r1) -/* 8029B1C8 3B 80 00 00 */ li r28, 0 -/* 8029B1CC 3B A0 00 00 */ li r29, 0 -lbl_8029B1D0: -/* 8029B1D0 38 7D 00 1C */ addi r3, r29, 0x1c -/* 8029B1D4 7C 7E 1A 14 */ add r3, r30, r3 -/* 8029B1D8 80 03 00 00 */ lwz r0, 0(r3) -/* 8029B1DC 28 00 00 00 */ cmplwi r0, 0 -/* 8029B1E0 41 82 00 18 */ beq lbl_8029B1F8 -/* 8029B1E4 48 00 0E FD */ bl update__13JASOscillatorFv -/* 8029B1E8 7F C3 F3 78 */ mr r3, r30 -/* 8029B1EC 7F 84 E3 78 */ mr r4, r28 -/* 8029B1F0 38 A1 00 18 */ addi r5, r1, 0x18 -/* 8029B1F4 4B FF F9 F9 */ bl effectOsc__10JASChannelFUlPQ213JASOscillator12EffectParams -lbl_8029B1F8: -/* 8029B1F8 3B 9C 00 01 */ addi r28, r28, 1 -/* 8029B1FC 28 1C 00 02 */ cmplwi r28, 2 -/* 8029B200 3B BD 00 20 */ addi r29, r29, 0x20 -/* 8029B204 41 80 FF CC */ blt lbl_8029B1D0 -/* 8029B208 38 7E 00 5C */ addi r3, r30, 0x5c -/* 8029B20C 48 00 0C 21 */ bl resetCounter__6JASLfoFv -/* 8029B210 38 7E 00 74 */ addi r3, r30, 0x74 -/* 8029B214 48 00 0C 19 */ bl resetCounter__6JASLfoFv -/* 8029B218 7F C3 F3 78 */ mr r3, r30 -/* 8029B21C 7F E4 FB 78 */ mr r4, r31 -/* 8029B220 38 A1 00 0C */ addi r5, r1, 0xc -/* 8029B224 38 C1 00 18 */ addi r6, r1, 0x18 -/* 8029B228 4B FF FB 11 */ bl updateEffectorParam__10JASChannelFPQ26JASDsp8TChannelPUsRCQ213JASOscillator12EffectParams -/* 8029B22C 3B 80 00 00 */ li r28, 0 -/* 8029B230 3B A1 00 0C */ addi r29, r1, 0xc -/* 8029B234 48 00 00 20 */ b lbl_8029B254 -lbl_8029B238: -/* 8029B238 7F E3 FB 78 */ mr r3, r31 -/* 8029B23C 7F 84 E3 78 */ mr r4, r28 -/* 8029B240 57 80 0D FC */ rlwinm r0, r28, 1, 0x17, 0x1e -/* 8029B244 7C 1D 02 2E */ lhzx r0, r29, r0 -/* 8029B248 7C 05 07 34 */ extsh r5, r0 -/* 8029B24C 48 00 2C E9 */ bl setMixerInitVolume__Q26JASDsp8TChannelFUcs -/* 8029B250 3B 9C 00 01 */ addi r28, r28, 1 -lbl_8029B254: -/* 8029B254 57 80 06 3E */ clrlwi r0, r28, 0x18 -/* 8029B258 28 00 00 06 */ cmplwi r0, 6 -/* 8029B25C 41 80 FF DC */ blt lbl_8029B238 -/* 8029B260 38 7E 00 5C */ addi r3, r30, 0x5c -/* 8029B264 48 00 0A E1 */ bl getValue__6JASLfoCFv -/* 8029B268 C0 01 00 2C */ lfs f0, 0x2c(r1) -/* 8029B26C EC 60 00 72 */ fmuls f3, f0, f1 -/* 8029B270 C0 5E 00 A4 */ lfs f2, 0xa4(r30) -/* 8029B274 A8 1E 00 C8 */ lha r0, 0xc8(r30) -/* 8029B278 C8 22 BC 98 */ lfd f1, lit_685(r2) -/* 8029B27C 6C 00 80 00 */ xoris r0, r0, 0x8000 -/* 8029B280 90 01 00 3C */ stw r0, 0x3c(r1) -/* 8029B284 3C 00 43 30 */ lis r0, 0x4330 -/* 8029B288 90 01 00 38 */ stw r0, 0x38(r1) -/* 8029B28C C8 01 00 38 */ lfd f0, 0x38(r1) -/* 8029B290 EC 20 08 28 */ fsubs f1, f0, f1 -/* 8029B294 C0 1E 00 CC */ lfs f0, 0xcc(r30) -/* 8029B298 EC 21 00 2A */ fadds f1, f1, f0 -/* 8029B29C C0 02 BC B0 */ lfs f0, lit_775(r2) -/* 8029B2A0 EC 01 00 24 */ fdivs f0, f1, f0 -/* 8029B2A4 EC 02 00 2A */ fadds f0, f2, f0 -/* 8029B2A8 EC 20 18 2A */ fadds f1, f0, f3 -/* 8029B2AC 4B FF 42 CD */ bl pow2__7JASCalcFf -/* 8029B2B0 C0 82 BC B4 */ lfs f4, lit_776(r2) -/* 8029B2B4 C0 7E 00 A0 */ lfs f3, 0xa0(r30) -/* 8029B2B8 C0 5E 00 BC */ lfs f2, 0xbc(r30) -/* 8029B2BC C0 01 00 1C */ lfs f0, 0x1c(r1) -/* 8029B2C0 EC 02 00 32 */ fmuls f0, f2, f0 -/* 8029B2C4 EC 01 00 32 */ fmuls f0, f1, f0 -/* 8029B2C8 EC 03 00 32 */ fmuls f0, f3, f0 -/* 8029B2CC EC 24 00 32 */ fmuls f1, f4, f0 -/* 8029B2D0 C0 02 BC 84 */ lfs f0, lit_545(r2) -/* 8029B2D4 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8029B2D8 40 80 00 08 */ bge lbl_8029B2E0 -/* 8029B2DC FC 20 00 90 */ fmr f1, f0 -lbl_8029B2E0: -/* 8029B2E0 7F E3 FB 78 */ mr r3, r31 -/* 8029B2E4 FC 00 08 1E */ fctiwz f0, f1 -/* 8029B2E8 D8 01 00 40 */ stfd f0, 0x40(r1) -/* 8029B2EC 80 81 00 44 */ lwz r4, 0x44(r1) -/* 8029B2F0 48 00 2C 2D */ bl setPitch__Q26JASDsp8TChannelFUs -/* 8029B2F4 7F E3 FB 78 */ mr r3, r31 -/* 8029B2F8 88 9E 00 04 */ lbz r4, 4(r30) -/* 8029B2FC 48 00 2C 85 */ bl setPauseFlag__Q26JASDsp8TChannelFUc -/* 8029B300 38 00 00 00 */ li r0, 0 -/* 8029B304 B0 1F 00 66 */ sth r0, 0x66(r31) -/* 8029B308 38 60 00 00 */ li r3, 0 -lbl_8029B30C: -/* 8029B30C 39 61 00 60 */ addi r11, r1, 0x60 -/* 8029B310 48 0C 6F 15 */ bl _restgpr_28 -/* 8029B314 80 01 00 64 */ lwz r0, 0x64(r1) -/* 8029B318 7C 08 03 A6 */ mtlr r0 -/* 8029B31C 38 21 00 60 */ addi r1, r1, 0x60 -/* 8029B320 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASChannel/playForce__10JASChannelFv.s b/asm/JSystem/JAudio2/JASChannel/playForce__10JASChannelFv.s deleted file mode 100644 index 850c769e39..0000000000 --- a/asm/JSystem/JAudio2/JASChannel/playForce__10JASChannelFv.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_8029AA60: -/* 8029AA60 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029AA64 7C 08 02 A6 */ mflr r0 -/* 8029AA68 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029AA6C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8029AA70 7C 7F 1B 78 */ mr r31, r3 -/* 8029AA74 A0 03 00 98 */ lhz r0, 0x98(r3) -/* 8029AA78 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 8029AA7C 3C 80 80 2A */ lis r4, dspUpdateCallback__10JASChannelFUlPQ26JASDsp8TChannelPv@ha /* 0x8029AF78@ha */ -/* 8029AA80 38 84 AF 78 */ addi r4, r4, dspUpdateCallback__10JASChannelFUlPQ26JASDsp8TChannelPv@l /* 0x8029AF78@l */ -/* 8029AA84 7F E5 FB 78 */ mr r5, r31 -/* 8029AA88 48 00 2A 35 */ bl allocForce__13JASDSPChannelFUcPFUlPQ26JASDsp8TChannelPv_lPv -/* 8029AA8C 28 03 00 00 */ cmplwi r3, 0 -/* 8029AA90 40 82 00 18 */ bne lbl_8029AAA8 -/* 8029AA94 7F E3 FB 78 */ mr r3, r31 -/* 8029AA98 38 80 00 01 */ li r4, 1 -/* 8029AA9C 4B FF FE 7D */ bl __dt__10JASChannelFv -/* 8029AAA0 38 60 00 00 */ li r3, 0 -/* 8029AAA4 48 00 00 18 */ b lbl_8029AABC -lbl_8029AAA8: -/* 8029AAA8 90 7F 00 08 */ stw r3, 8(r31) -/* 8029AAAC 48 00 28 85 */ bl start__13JASDSPChannelFv -/* 8029AAB0 38 00 00 01 */ li r0, 1 -/* 8029AAB4 90 1F 00 00 */ stw r0, 0(r31) -/* 8029AAB8 38 60 00 01 */ li r3, 1 -lbl_8029AABC: -/* 8029AABC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8029AAC0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029AAC4 7C 08 03 A6 */ mtlr r0 -/* 8029AAC8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029AACC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASChannel/play__10JASChannelFv.s b/asm/JSystem/JAudio2/JASChannel/play__10JASChannelFv.s deleted file mode 100644 index 2c45d64a7a..0000000000 --- a/asm/JSystem/JAudio2/JASChannel/play__10JASChannelFv.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_8029A9F0: -/* 8029A9F0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029A9F4 7C 08 02 A6 */ mflr r0 -/* 8029A9F8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029A9FC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8029AA00 7C 7F 1B 78 */ mr r31, r3 -/* 8029AA04 A0 03 00 98 */ lhz r0, 0x98(r3) -/* 8029AA08 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 8029AA0C 3C 80 80 2A */ lis r4, dspUpdateCallback__10JASChannelFUlPQ26JASDsp8TChannelPv@ha /* 0x8029AF78@ha */ -/* 8029AA10 38 84 AF 78 */ addi r4, r4, dspUpdateCallback__10JASChannelFUlPQ26JASDsp8TChannelPv@l /* 0x8029AF78@l */ -/* 8029AA14 7F E5 FB 78 */ mr r5, r31 -/* 8029AA18 48 00 2A 35 */ bl alloc__13JASDSPChannelFUcPFUlPQ26JASDsp8TChannelPv_lPv -/* 8029AA1C 28 03 00 00 */ cmplwi r3, 0 -/* 8029AA20 40 82 00 18 */ bne lbl_8029AA38 -/* 8029AA24 7F E3 FB 78 */ mr r3, r31 -/* 8029AA28 38 80 00 01 */ li r4, 1 -/* 8029AA2C 4B FF FE ED */ bl __dt__10JASChannelFv -/* 8029AA30 38 60 00 00 */ li r3, 0 -/* 8029AA34 48 00 00 18 */ b lbl_8029AA4C -lbl_8029AA38: -/* 8029AA38 90 7F 00 08 */ stw r3, 8(r31) -/* 8029AA3C 48 00 28 F5 */ bl start__13JASDSPChannelFv -/* 8029AA40 38 00 00 01 */ li r0, 1 -/* 8029AA44 90 1F 00 00 */ stw r0, 0(r31) -/* 8029AA48 38 60 00 01 */ li r3, 1 -lbl_8029AA4C: -/* 8029AA4C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8029AA50 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029AA54 7C 08 03 A6 */ mtlr r0 -/* 8029AA58 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029AA5C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASChannel/receiveBankDisposeMsg__10JASChannelFv.s b/asm/JSystem/JAudio2/JASChannel/receiveBankDisposeMsg__10JASChannelFv.s deleted file mode 100644 index e8922c50cc..0000000000 --- a/asm/JSystem/JAudio2/JASChannel/receiveBankDisposeMsg__10JASChannelFv.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_8029BC48: -/* 8029BC48 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8029BC4C 7C 08 02 A6 */ mflr r0 -/* 8029BC50 90 01 00 24 */ stw r0, 0x24(r1) -/* 8029BC54 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8029BC58 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8029BC5C 38 00 00 00 */ li r0, 0 -/* 8029BC60 90 0D 8D 18 */ stw r0, sBankDisposeListSize__10JASChannel(r13) -/* 8029BC64 3C 60 80 43 */ lis r3, sBankDisposeList__10JASChannel@ha /* 0x80431BF0@ha */ -/* 8029BC68 3B C3 1B F0 */ addi r30, r3, sBankDisposeList__10JASChannel@l /* 0x80431BF0@l */ -/* 8029BC6C 3C 60 80 43 */ lis r3, sBankDisposeMsgQ__10JASChannel@ha /* 0x80431B90@ha */ -/* 8029BC70 3B E3 1B 90 */ addi r31, r3, sBankDisposeMsgQ__10JASChannel@l /* 0x80431B90@l */ -/* 8029BC74 48 00 00 1C */ b lbl_8029BC90 -lbl_8029BC78: -/* 8029BC78 80 81 00 08 */ lwz r4, 8(r1) -/* 8029BC7C 80 6D 8D 18 */ lwz r3, sBankDisposeListSize__10JASChannel(r13) -/* 8029BC80 54 60 10 3A */ slwi r0, r3, 2 -/* 8029BC84 7C 9E 01 2E */ stwx r4, r30, r0 -/* 8029BC88 38 03 00 01 */ addi r0, r3, 1 -/* 8029BC8C 90 0D 8D 18 */ stw r0, sBankDisposeListSize__10JASChannel(r13) -lbl_8029BC90: -/* 8029BC90 7F E3 FB 78 */ mr r3, r31 -/* 8029BC94 38 81 00 08 */ addi r4, r1, 8 -/* 8029BC98 38 A0 00 00 */ li r5, 0 -/* 8029BC9C 48 0A 2E 21 */ bl OSReceiveMessage -/* 8029BCA0 2C 03 00 00 */ cmpwi r3, 0 -/* 8029BCA4 40 82 FF D4 */ bne lbl_8029BC78 -/* 8029BCA8 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8029BCAC 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8029BCB0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8029BCB4 7C 08 03 A6 */ mtlr r0 -/* 8029BCB8 38 21 00 20 */ addi r1, r1, 0x20 -/* 8029BCBC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASChannel/release__10JASChannelFUs.s b/asm/JSystem/JAudio2/JASChannel/release__10JASChannelFUs.s deleted file mode 100644 index b8bbee06e9..0000000000 --- a/asm/JSystem/JAudio2/JASChannel/release__10JASChannelFUs.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_8029AAD0: -/* 8029AAD0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8029AAD4 7C 08 02 A6 */ mflr r0 -/* 8029AAD8 90 01 00 24 */ stw r0, 0x24(r1) -/* 8029AADC 39 61 00 20 */ addi r11, r1, 0x20 -/* 8029AAE0 48 0C 76 FD */ bl _savegpr_29 -/* 8029AAE4 7C 7D 1B 78 */ mr r29, r3 -/* 8029AAE8 80 03 00 00 */ lwz r0, 0(r3) -/* 8029AAEC 2C 00 00 01 */ cmpwi r0, 1 -/* 8029AAF0 40 82 00 5C */ bne lbl_8029AB4C -/* 8029AAF4 54 80 04 3F */ clrlwi. r0, r4, 0x10 -/* 8029AAF8 41 82 00 08 */ beq lbl_8029AB00 -/* 8029AAFC B0 9D 00 32 */ sth r4, 0x32(r29) -lbl_8029AB00: -/* 8029AB00 3B C0 00 00 */ li r30, 0 -/* 8029AB04 3B E0 00 00 */ li r31, 0 -lbl_8029AB08: -/* 8029AB08 38 7F 00 1C */ addi r3, r31, 0x1c -/* 8029AB0C 7C 7D 1A 14 */ add r3, r29, r3 -/* 8029AB10 80 03 00 00 */ lwz r0, 0(r3) -/* 8029AB14 28 00 00 00 */ cmplwi r0, 0 -/* 8029AB18 41 82 00 08 */ beq lbl_8029AB20 -/* 8029AB1C 48 00 14 C9 */ bl release__13JASOscillatorFv -lbl_8029AB20: -/* 8029AB20 3B DE 00 01 */ addi r30, r30, 1 -/* 8029AB24 28 1E 00 02 */ cmplwi r30, 2 -/* 8029AB28 3B FF 00 20 */ addi r31, r31, 0x20 -/* 8029AB2C 41 80 FF DC */ blt lbl_8029AB08 -/* 8029AB30 A0 1D 00 98 */ lhz r0, 0x98(r29) -/* 8029AB34 7C 00 46 70 */ srawi r0, r0, 8 -/* 8029AB38 54 04 06 3E */ clrlwi r4, r0, 0x18 -/* 8029AB3C 80 7D 00 08 */ lwz r3, 8(r29) -/* 8029AB40 48 00 29 F5 */ bl setPriority__13JASDSPChannelFUc -/* 8029AB44 38 00 00 02 */ li r0, 2 -/* 8029AB48 90 1D 00 00 */ stw r0, 0(r29) -lbl_8029AB4C: -/* 8029AB4C 39 61 00 20 */ addi r11, r1, 0x20 -/* 8029AB50 48 0C 76 D9 */ bl _restgpr_29 -/* 8029AB54 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8029AB58 7C 08 03 A6 */ mtlr r0 -/* 8029AB5C 38 21 00 20 */ addi r1, r1, 0x20 -/* 8029AB60 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASChannel/setKeySweepTarget__10JASChannelFlUl.s b/asm/JSystem/JAudio2/JASChannel/setKeySweepTarget__10JASChannelFlUl.s deleted file mode 100644 index b9c581e49f..0000000000 --- a/asm/JSystem/JAudio2/JASChannel/setKeySweepTarget__10JASChannelFlUl.s +++ /dev/null @@ -1,28 +0,0 @@ -lbl_8029ACD4: -/* 8029ACD4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029ACD8 28 05 00 00 */ cmplwi r5, 0 -/* 8029ACDC 40 82 00 28 */ bne lbl_8029AD04 -/* 8029ACE0 C8 22 BC 98 */ lfd f1, lit_685(r2) -/* 8029ACE4 6C 80 80 00 */ xoris r0, r4, 0x8000 -/* 8029ACE8 90 01 00 0C */ stw r0, 0xc(r1) -/* 8029ACEC 3C 00 43 30 */ lis r0, 0x4330 -/* 8029ACF0 90 01 00 08 */ stw r0, 8(r1) -/* 8029ACF4 C8 01 00 08 */ lfd f0, 8(r1) -/* 8029ACF8 EC 00 08 28 */ fsubs f0, f0, f1 -/* 8029ACFC D0 03 00 CC */ stfs f0, 0xcc(r3) -/* 8029AD00 48 00 00 2C */ b lbl_8029AD2C -lbl_8029AD04: -/* 8029AD04 C0 02 BC 84 */ lfs f0, lit_545(r2) -/* 8029AD08 D0 03 00 CC */ stfs f0, 0xcc(r3) -/* 8029AD0C C8 22 BC 98 */ lfd f1, lit_685(r2) -/* 8029AD10 6C 80 80 00 */ xoris r0, r4, 0x8000 -/* 8029AD14 90 01 00 0C */ stw r0, 0xc(r1) -/* 8029AD18 3C 00 43 30 */ lis r0, 0x4330 -/* 8029AD1C 90 01 00 08 */ stw r0, 8(r1) -/* 8029AD20 C8 01 00 08 */ lfd f0, 8(r1) -/* 8029AD24 EC 00 08 28 */ fsubs f0, f0, f1 -/* 8029AD28 D0 03 00 D0 */ stfs f0, 0xd0(r3) -lbl_8029AD2C: -/* 8029AD2C 90 A3 00 D4 */ stw r5, 0xd4(r3) -/* 8029AD30 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029AD34 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASChannel/setMixConfig__10JASChannelFUlUs.s b/asm/JSystem/JAudio2/JASChannel/setMixConfig__10JASChannelFUlUs.s deleted file mode 100644 index 8e4155c6e5..0000000000 --- a/asm/JSystem/JAudio2/JASChannel/setMixConfig__10JASChannelFUlUs.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8029AB98: -/* 8029AB98 54 80 08 3C */ slwi r0, r4, 1 -/* 8029AB9C 7C 63 02 14 */ add r3, r3, r0 -/* 8029ABA0 B0 A3 00 8C */ sth r5, 0x8c(r3) -/* 8029ABA4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASChannel/setOscInit__10JASChannelFUlPCQ213JASOscillator4Data.s b/asm/JSystem/JAudio2/JASChannel/setOscInit__10JASChannelFUlPCQ213JASOscillator4Data.s deleted file mode 100644 index bb71418346..0000000000 --- a/asm/JSystem/JAudio2/JASChannel/setOscInit__10JASChannelFUlPCQ213JASOscillator4Data.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_8029AB64: -/* 8029AB64 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029AB68 7C 08 02 A6 */ mflr r0 -/* 8029AB6C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029AB70 7C 60 1B 78 */ mr r0, r3 -/* 8029AB74 54 83 28 34 */ slwi r3, r4, 5 -/* 8029AB78 38 63 00 1C */ addi r3, r3, 0x1c -/* 8029AB7C 7C 60 1A 14 */ add r3, r0, r3 -/* 8029AB80 7C A4 2B 78 */ mr r4, r5 -/* 8029AB84 48 00 13 41 */ bl initStart__13JASOscillatorFPCQ213JASOscillator4Data -/* 8029AB88 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029AB8C 7C 08 03 A6 */ mtlr r0 -/* 8029AB90 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029AB94 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASChannel/updateAutoMixer__10JASChannelFPQ26JASDsp8TChannelffff.s b/asm/JSystem/JAudio2/JASChannel/updateAutoMixer__10JASChannelFPQ26JASDsp8TChannelffff.s deleted file mode 100644 index 5b616a2483..0000000000 --- a/asm/JSystem/JAudio2/JASChannel/updateAutoMixer__10JASChannelFPQ26JASDsp8TChannelffff.s +++ /dev/null @@ -1,83 +0,0 @@ -lbl_8029B6A0: -/* 8029B6A0 94 21 FF 70 */ stwu r1, -0x90(r1) -/* 8029B6A4 7C 08 02 A6 */ mflr r0 -/* 8029B6A8 90 01 00 94 */ stw r0, 0x94(r1) -/* 8029B6AC DB E1 00 80 */ stfd f31, 0x80(r1) -/* 8029B6B0 F3 E1 00 88 */ psq_st f31, 136(r1), 0, 0 /* qr0 */ -/* 8029B6B4 DB C1 00 70 */ stfd f30, 0x70(r1) -/* 8029B6B8 F3 C1 00 78 */ psq_st f30, 120(r1), 0, 0 /* qr0 */ -/* 8029B6BC DB A1 00 60 */ stfd f29, 0x60(r1) -/* 8029B6C0 F3 A1 00 68 */ psq_st f29, 104(r1), 0, 0 /* qr0 */ -/* 8029B6C4 DB 81 00 50 */ stfd f28, 0x50(r1) -/* 8029B6C8 F3 81 00 58 */ psq_st f28, 88(r1), 0, 0 /* qr0 */ -/* 8029B6CC DB 61 00 40 */ stfd f27, 0x40(r1) -/* 8029B6D0 F3 61 00 48 */ psq_st f27, 72(r1), 0, 0 /* qr0 */ -/* 8029B6D4 93 E1 00 3C */ stw r31, 0x3c(r1) -/* 8029B6D8 7C 9F 23 78 */ mr r31, r4 -/* 8029B6DC FF 60 08 90 */ fmr f27, f1 -/* 8029B6E0 FF 80 10 90 */ fmr f28, f2 -/* 8029B6E4 FF A0 18 90 */ fmr f29, f3 -/* 8029B6E8 FF C0 20 90 */ fmr f30, f4 -/* 8029B6EC 48 00 2A 95 */ bl getOutputMode__9JASDriverFv -/* 8029B6F0 28 03 00 00 */ cmplwi r3, 0 -/* 8029B6F4 40 82 00 0C */ bne lbl_8029B700 -/* 8029B6F8 C0 02 BC C0 */ lfs f0, lit_846(r2) -/* 8029B6FC EF 7B 00 32 */ fmuls f27, f27, f0 -lbl_8029B700: -/* 8029B700 C3 E2 BC 84 */ lfs f31, lit_545(r2) -/* 8029B704 FC 1B F8 40 */ fcmpo cr0, f27, f31 -/* 8029B708 4C 40 13 82 */ cror 2, 0, 2 -/* 8029B70C 40 82 00 08 */ bne lbl_8029B714 -/* 8029B710 48 00 00 1C */ b lbl_8029B72C -lbl_8029B714: -/* 8029B714 C3 E2 BC 80 */ lfs f31, lit_544(r2) -/* 8029B718 FC 1B F8 40 */ fcmpo cr0, f27, f31 -/* 8029B71C 4C 41 13 82 */ cror 2, 1, 2 -/* 8029B720 40 82 00 08 */ bne lbl_8029B728 -/* 8029B724 48 00 00 08 */ b lbl_8029B72C -lbl_8029B728: -/* 8029B728 FF E0 D8 90 */ fmr f31, f27 -lbl_8029B72C: -/* 8029B72C 48 00 2A 25 */ bl getChannelLevel_dsp__9JASDriverFv -/* 8029B730 54 60 04 3E */ clrlwi r0, r3, 0x10 -/* 8029B734 C8 22 BC A8 */ lfd f1, lit_714(r2) -/* 8029B738 90 01 00 0C */ stw r0, 0xc(r1) -/* 8029B73C 3C 00 43 30 */ lis r0, 0x4330 -/* 8029B740 90 01 00 08 */ stw r0, 8(r1) -/* 8029B744 C8 01 00 08 */ lfd f0, 8(r1) -/* 8029B748 EC 00 08 28 */ fsubs f0, f0, f1 -/* 8029B74C EC 1F 00 32 */ fmuls f0, f31, f0 -/* 8029B750 FC 00 00 1E */ fctiwz f0, f0 -/* 8029B754 D8 01 00 10 */ stfd f0, 0x10(r1) -/* 8029B758 80 81 00 14 */ lwz r4, 0x14(r1) -/* 8029B75C 7F E3 FB 78 */ mr r3, r31 -/* 8029B760 C0 22 BC C4 */ lfs f1, lit_847(r2) -/* 8029B764 EC 01 07 32 */ fmuls f0, f1, f28 -/* 8029B768 FC 00 00 1E */ fctiwz f0, f0 -/* 8029B76C D8 01 00 18 */ stfd f0, 0x18(r1) -/* 8029B770 80 A1 00 1C */ lwz r5, 0x1c(r1) -/* 8029B774 EC 01 07 B2 */ fmuls f0, f1, f30 -/* 8029B778 FC 00 00 1E */ fctiwz f0, f0 -/* 8029B77C D8 01 00 20 */ stfd f0, 0x20(r1) -/* 8029B780 80 C1 00 24 */ lwz r6, 0x24(r1) -/* 8029B784 EC 01 07 72 */ fmuls f0, f1, f29 -/* 8029B788 FC 00 00 1E */ fctiwz f0, f0 -/* 8029B78C D8 01 00 28 */ stfd f0, 0x28(r1) -/* 8029B790 80 E1 00 2C */ lwz r7, 0x2c(r1) -/* 8029B794 39 00 00 00 */ li r8, 0 -/* 8029B798 48 00 27 59 */ bl setAutoMixer__Q26JASDsp8TChannelFUsUcUcUcUc -/* 8029B79C E3 E1 00 88 */ psq_l f31, 136(r1), 0, 0 /* qr0 */ -/* 8029B7A0 CB E1 00 80 */ lfd f31, 0x80(r1) -/* 8029B7A4 E3 C1 00 78 */ psq_l f30, 120(r1), 0, 0 /* qr0 */ -/* 8029B7A8 CB C1 00 70 */ lfd f30, 0x70(r1) -/* 8029B7AC E3 A1 00 68 */ psq_l f29, 104(r1), 0, 0 /* qr0 */ -/* 8029B7B0 CB A1 00 60 */ lfd f29, 0x60(r1) -/* 8029B7B4 E3 81 00 58 */ psq_l f28, 88(r1), 0, 0 /* qr0 */ -/* 8029B7B8 CB 81 00 50 */ lfd f28, 0x50(r1) -/* 8029B7BC E3 61 00 48 */ psq_l f27, 72(r1), 0, 0 /* qr0 */ -/* 8029B7C0 CB 61 00 40 */ lfd f27, 0x40(r1) -/* 8029B7C4 83 E1 00 3C */ lwz r31, 0x3c(r1) -/* 8029B7C8 80 01 00 94 */ lwz r0, 0x94(r1) -/* 8029B7CC 7C 08 03 A6 */ mtlr r0 -/* 8029B7D0 38 21 00 90 */ addi r1, r1, 0x90 -/* 8029B7D4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASChannel/updateDSPChannel__10JASChannelFPQ26JASDsp8TChannel.s b/asm/JSystem/JAudio2/JASChannel/updateDSPChannel__10JASChannelFPQ26JASDsp8TChannel.s deleted file mode 100644 index 01dea86863..0000000000 --- a/asm/JSystem/JAudio2/JASChannel/updateDSPChannel__10JASChannelFPQ26JASDsp8TChannel.s +++ /dev/null @@ -1,239 +0,0 @@ -lbl_8029B324: -/* 8029B324 94 21 FF 90 */ stwu r1, -0x70(r1) -/* 8029B328 7C 08 02 A6 */ mflr r0 -/* 8029B32C 90 01 00 74 */ stw r0, 0x74(r1) -/* 8029B330 DB E1 00 60 */ stfd f31, 0x60(r1) -/* 8029B334 F3 E1 00 68 */ psq_st f31, 104(r1), 0, 0 /* qr0 */ -/* 8029B338 39 61 00 60 */ addi r11, r1, 0x60 -/* 8029B33C 48 0C 6E 99 */ bl _savegpr_27 -/* 8029B340 7C 7E 1B 78 */ mr r30, r3 -/* 8029B344 7C 9F 23 78 */ mr r31, r4 -/* 8029B348 81 83 00 0C */ lwz r12, 0xc(r3) -/* 8029B34C 28 0C 00 00 */ cmplwi r12, 0 -/* 8029B350 41 82 00 1C */ beq lbl_8029B36C -/* 8029B354 38 60 00 00 */ li r3, 0 -/* 8029B358 7F C4 F3 78 */ mr r4, r30 -/* 8029B35C 7F E5 FB 78 */ mr r5, r31 -/* 8029B360 80 DE 00 10 */ lwz r6, 0x10(r30) -/* 8029B364 7D 89 03 A6 */ mtctr r12 -/* 8029B368 4E 80 04 21 */ bctrl -lbl_8029B36C: -/* 8029B36C 80 7E 01 00 */ lwz r3, 0x100(r30) -/* 8029B370 80 03 00 00 */ lwz r0, 0(r3) -/* 8029B374 28 00 00 00 */ cmplwi r0, 0 -/* 8029B378 40 82 00 28 */ bne lbl_8029B3A0 -/* 8029B37C 80 7E 00 08 */ lwz r3, 8(r30) -/* 8029B380 48 00 1F A1 */ bl free__13JASDSPChannelFv -/* 8029B384 38 00 00 00 */ li r0, 0 -/* 8029B388 90 1E 00 08 */ stw r0, 8(r30) -/* 8029B38C 7F C3 F3 78 */ mr r3, r30 -/* 8029B390 38 80 00 01 */ li r4, 1 -/* 8029B394 4B FF F5 85 */ bl __dt__10JASChannelFv -/* 8029B398 38 60 FF FF */ li r3, -1 -/* 8029B39C 48 00 02 E4 */ b lbl_8029B680 -lbl_8029B3A0: -/* 8029B3A0 7F C3 F3 78 */ mr r3, r30 -/* 8029B3A4 48 00 09 1D */ bl checkBankDispose__10JASChannelCFv -/* 8029B3A8 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8029B3AC 41 82 00 28 */ beq lbl_8029B3D4 -/* 8029B3B0 80 7E 00 08 */ lwz r3, 8(r30) -/* 8029B3B4 48 00 1F 6D */ bl free__13JASDSPChannelFv -/* 8029B3B8 38 00 00 00 */ li r0, 0 -/* 8029B3BC 90 1E 00 08 */ stw r0, 8(r30) -/* 8029B3C0 7F C3 F3 78 */ mr r3, r30 -/* 8029B3C4 38 80 00 01 */ li r4, 1 -/* 8029B3C8 4B FF F5 51 */ bl __dt__10JASChannelFv -/* 8029B3CC 38 60 FF FF */ li r3, -1 -/* 8029B3D0 48 00 02 B0 */ b lbl_8029B680 -lbl_8029B3D4: -/* 8029B3D4 7F E3 FB 78 */ mr r3, r31 -/* 8029B3D8 88 9E 00 04 */ lbz r4, 4(r30) -/* 8029B3DC 48 00 2B A5 */ bl setPauseFlag__Q26JASDsp8TChannelFUc -/* 8029B3E0 C0 22 BC 80 */ lfs f1, lit_544(r2) -/* 8029B3E4 D0 21 00 14 */ stfs f1, 0x14(r1) -/* 8029B3E8 D0 21 00 18 */ stfs f1, 0x18(r1) -/* 8029B3EC C0 02 BC 88 */ lfs f0, lit_546(r2) -/* 8029B3F0 D0 01 00 1C */ stfs f0, 0x1c(r1) -/* 8029B3F4 C0 02 BC 84 */ lfs f0, lit_545(r2) -/* 8029B3F8 D0 01 00 20 */ stfs f0, 0x20(r1) -/* 8029B3FC D0 01 00 24 */ stfs f0, 0x24(r1) -/* 8029B400 D0 21 00 28 */ stfs f1, 0x28(r1) -/* 8029B404 D0 21 00 2C */ stfs f1, 0x2c(r1) -/* 8029B408 88 1E 00 04 */ lbz r0, 4(r30) -/* 8029B40C 28 00 00 00 */ cmplwi r0, 0 -/* 8029B410 41 82 00 4C */ beq lbl_8029B45C -/* 8029B414 38 00 00 00 */ li r0, 0 -/* 8029B418 80 7E 00 38 */ lwz r3, 0x38(r30) -/* 8029B41C 2C 03 00 03 */ cmpwi r3, 3 -/* 8029B420 41 82 00 0C */ beq lbl_8029B42C -/* 8029B424 2C 03 00 04 */ cmpwi r3, 4 -/* 8029B428 40 82 00 08 */ bne lbl_8029B430 -lbl_8029B42C: -/* 8029B42C 38 00 00 01 */ li r0, 1 -lbl_8029B430: -/* 8029B430 54 00 06 3F */ clrlwi. r0, r0, 0x18 -/* 8029B434 41 82 01 18 */ beq lbl_8029B54C -/* 8029B438 80 7E 00 08 */ lwz r3, 8(r30) -/* 8029B43C 48 00 1E E5 */ bl free__13JASDSPChannelFv -/* 8029B440 38 00 00 00 */ li r0, 0 -/* 8029B444 90 1E 00 08 */ stw r0, 8(r30) -/* 8029B448 7F C3 F3 78 */ mr r3, r30 -/* 8029B44C 38 80 00 01 */ li r4, 1 -/* 8029B450 4B FF F4 C9 */ bl __dt__10JASChannelFv -/* 8029B454 38 60 FF FF */ li r3, -1 -/* 8029B458 48 00 02 28 */ b lbl_8029B680 -lbl_8029B45C: -/* 8029B45C 48 00 15 8D */ bl getDacRate__9JASDriverFv -/* 8029B460 C0 02 BC B8 */ lfs f0, lit_832(r2) -/* 8029B464 EF E0 08 24 */ fdivs f31, f0, f1 -/* 8029B468 38 7E 00 5C */ addi r3, r30, 0x5c -/* 8029B46C FC 20 F8 90 */ fmr f1, f31 -/* 8029B470 48 00 09 69 */ bl incCounter__6JASLfoFf -/* 8029B474 38 7E 00 74 */ addi r3, r30, 0x74 -/* 8029B478 FC 20 F8 90 */ fmr f1, f31 -/* 8029B47C 48 00 09 5D */ bl incCounter__6JASLfoFf -/* 8029B480 80 7E 00 14 */ lwz r3, 0x14(r30) -/* 8029B484 28 03 00 00 */ cmplwi r3, 0 -/* 8029B488 41 82 00 3C */ beq lbl_8029B4C4 -/* 8029B48C 38 03 FF FF */ addi r0, r3, -1 -/* 8029B490 90 1E 00 14 */ stw r0, 0x14(r30) -/* 8029B494 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 8029B498 28 00 00 00 */ cmplwi r0, 0 -/* 8029B49C 40 82 00 28 */ bne lbl_8029B4C4 -/* 8029B4A0 81 9E 00 0C */ lwz r12, 0xc(r30) -/* 8029B4A4 28 0C 00 00 */ cmplwi r12, 0 -/* 8029B4A8 41 82 00 1C */ beq lbl_8029B4C4 -/* 8029B4AC 38 60 00 03 */ li r3, 3 -/* 8029B4B0 7F C4 F3 78 */ mr r4, r30 -/* 8029B4B4 7F E5 FB 78 */ mr r5, r31 -/* 8029B4B8 80 DE 00 10 */ lwz r6, 0x10(r30) -/* 8029B4BC 7D 89 03 A6 */ mtctr r12 -/* 8029B4C0 4E 80 04 21 */ bctrl -lbl_8029B4C4: -/* 8029B4C4 48 00 15 25 */ bl getDacRate__9JASDriverFv -/* 8029B4C8 C0 02 BC BC */ lfs f0, lit_833(r2) -/* 8029B4CC EF E0 08 24 */ fdivs f31, f0, f1 -/* 8029B4D0 3B 60 00 00 */ li r27, 0 -/* 8029B4D4 3B A0 00 00 */ li r29, 0 -lbl_8029B4D8: -/* 8029B4D8 7F 9E EA 14 */ add r28, r30, r29 -/* 8029B4DC 38 7C 00 1C */ addi r3, r28, 0x1c -/* 8029B4E0 80 1C 00 1C */ lwz r0, 0x1c(r28) -/* 8029B4E4 28 00 00 00 */ cmplwi r0, 0 -/* 8029B4E8 41 82 00 54 */ beq lbl_8029B53C -/* 8029B4EC FC 20 F8 90 */ fmr f1, f31 -/* 8029B4F0 48 00 0A 79 */ bl incCounter__13JASOscillatorFf -/* 8029B4F4 7F C3 F3 78 */ mr r3, r30 -/* 8029B4F8 7F 64 DB 78 */ mr r4, r27 -/* 8029B4FC 38 A1 00 14 */ addi r5, r1, 0x14 -/* 8029B500 4B FF F6 ED */ bl effectOsc__10JASChannelFUlPQ213JASOscillator12EffectParams -/* 8029B504 28 1B 00 00 */ cmplwi r27, 0 -/* 8029B508 40 82 00 34 */ bne lbl_8029B53C -/* 8029B50C 80 1C 00 38 */ lwz r0, 0x38(r28) -/* 8029B510 2C 00 00 00 */ cmpwi r0, 0 -/* 8029B514 40 82 00 28 */ bne lbl_8029B53C -/* 8029B518 80 7E 00 08 */ lwz r3, 8(r30) -/* 8029B51C 48 00 1E 05 */ bl free__13JASDSPChannelFv -/* 8029B520 38 00 00 00 */ li r0, 0 -/* 8029B524 90 1E 00 08 */ stw r0, 8(r30) -/* 8029B528 7F C3 F3 78 */ mr r3, r30 -/* 8029B52C 38 80 00 01 */ li r4, 1 -/* 8029B530 4B FF F3 E9 */ bl __dt__10JASChannelFv -/* 8029B534 38 60 FF FF */ li r3, -1 -/* 8029B538 48 00 01 48 */ b lbl_8029B680 -lbl_8029B53C: -/* 8029B53C 3B 7B 00 01 */ addi r27, r27, 1 -/* 8029B540 28 1B 00 02 */ cmplwi r27, 2 -/* 8029B544 3B BD 00 20 */ addi r29, r29, 0x20 -/* 8029B548 41 80 FF 90 */ blt lbl_8029B4D8 -lbl_8029B54C: -/* 8029B54C 7F C3 F3 78 */ mr r3, r30 -/* 8029B550 7F E4 FB 78 */ mr r4, r31 -/* 8029B554 38 A1 00 08 */ addi r5, r1, 8 -/* 8029B558 38 C1 00 14 */ addi r6, r1, 0x14 -/* 8029B55C 4B FF F7 DD */ bl updateEffectorParam__10JASChannelFPQ26JASDsp8TChannelPUsRCQ213JASOscillator12EffectParams -/* 8029B560 3B 60 00 00 */ li r27, 0 -/* 8029B564 3B A1 00 08 */ addi r29, r1, 8 -/* 8029B568 48 00 00 20 */ b lbl_8029B588 -lbl_8029B56C: -/* 8029B56C 7F E3 FB 78 */ mr r3, r31 -/* 8029B570 7F 64 DB 78 */ mr r4, r27 -/* 8029B574 57 60 0D FC */ rlwinm r0, r27, 1, 0x17, 0x1e -/* 8029B578 7C 1D 02 2E */ lhzx r0, r29, r0 -/* 8029B57C 7C 05 07 34 */ extsh r5, r0 -/* 8029B580 48 00 29 D5 */ bl setMixerVolume__Q26JASDsp8TChannelFUcs -/* 8029B584 3B 7B 00 01 */ addi r27, r27, 1 -lbl_8029B588: -/* 8029B588 57 60 06 3E */ clrlwi r0, r27, 0x18 -/* 8029B58C 28 00 00 06 */ cmplwi r0, 6 -/* 8029B590 41 80 FF DC */ blt lbl_8029B56C -/* 8029B594 38 7E 00 5C */ addi r3, r30, 0x5c -/* 8029B598 48 00 07 AD */ bl getValue__6JASLfoCFv -/* 8029B59C C0 01 00 28 */ lfs f0, 0x28(r1) -/* 8029B5A0 EC 60 00 72 */ fmuls f3, f0, f1 -/* 8029B5A4 C0 5E 00 A4 */ lfs f2, 0xa4(r30) -/* 8029B5A8 A8 1E 00 C8 */ lha r0, 0xc8(r30) -/* 8029B5AC C8 22 BC 98 */ lfd f1, lit_685(r2) -/* 8029B5B0 6C 00 80 00 */ xoris r0, r0, 0x8000 -/* 8029B5B4 90 01 00 34 */ stw r0, 0x34(r1) -/* 8029B5B8 3C 00 43 30 */ lis r0, 0x4330 -/* 8029B5BC 90 01 00 30 */ stw r0, 0x30(r1) -/* 8029B5C0 C8 01 00 30 */ lfd f0, 0x30(r1) -/* 8029B5C4 EC 20 08 28 */ fsubs f1, f0, f1 -/* 8029B5C8 C0 1E 00 CC */ lfs f0, 0xcc(r30) -/* 8029B5CC EC 21 00 2A */ fadds f1, f1, f0 -/* 8029B5D0 C0 02 BC B0 */ lfs f0, lit_775(r2) -/* 8029B5D4 EC 01 00 24 */ fdivs f0, f1, f0 -/* 8029B5D8 EC 02 00 2A */ fadds f0, f2, f0 -/* 8029B5DC EC 20 18 2A */ fadds f1, f0, f3 -/* 8029B5E0 4B FF 3F 99 */ bl pow2__7JASCalcFf -/* 8029B5E4 C0 82 BC B4 */ lfs f4, lit_776(r2) -/* 8029B5E8 C0 7E 00 A0 */ lfs f3, 0xa0(r30) -/* 8029B5EC C0 5E 00 BC */ lfs f2, 0xbc(r30) -/* 8029B5F0 C0 01 00 18 */ lfs f0, 0x18(r1) -/* 8029B5F4 EC 02 00 32 */ fmuls f0, f2, f0 -/* 8029B5F8 EC 01 00 32 */ fmuls f0, f1, f0 -/* 8029B5FC EC 03 00 32 */ fmuls f0, f3, f0 -/* 8029B600 EC 24 00 32 */ fmuls f1, f4, f0 -/* 8029B604 C0 02 BC 84 */ lfs f0, lit_545(r2) -/* 8029B608 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8029B60C 40 80 00 08 */ bge lbl_8029B614 -/* 8029B610 FC 20 00 90 */ fmr f1, f0 -lbl_8029B614: -/* 8029B614 7F E3 FB 78 */ mr r3, r31 -/* 8029B618 FC 00 08 1E */ fctiwz f0, f1 -/* 8029B61C D8 01 00 38 */ stfd f0, 0x38(r1) -/* 8029B620 80 81 00 3C */ lwz r4, 0x3c(r1) -/* 8029B624 48 00 28 F9 */ bl setPitch__Q26JASDsp8TChannelFUs -/* 8029B628 88 1E 00 04 */ lbz r0, 4(r30) -/* 8029B62C 28 00 00 00 */ cmplwi r0, 0 -/* 8029B630 40 82 00 4C */ bne lbl_8029B67C -/* 8029B634 80 1E 00 D4 */ lwz r0, 0xd4(r30) -/* 8029B638 28 00 00 00 */ cmplwi r0, 0 -/* 8029B63C 41 82 00 40 */ beq lbl_8029B67C -/* 8029B640 C0 7E 00 CC */ lfs f3, 0xcc(r30) -/* 8029B644 C0 1E 00 D0 */ lfs f0, 0xd0(r30) -/* 8029B648 EC 40 18 28 */ fsubs f2, f0, f3 -/* 8029B64C C8 22 BC A8 */ lfd f1, lit_714(r2) -/* 8029B650 90 01 00 3C */ stw r0, 0x3c(r1) -/* 8029B654 3C 00 43 30 */ lis r0, 0x4330 -/* 8029B658 90 01 00 38 */ stw r0, 0x38(r1) -/* 8029B65C C8 01 00 38 */ lfd f0, 0x38(r1) -/* 8029B660 EC 00 08 28 */ fsubs f0, f0, f1 -/* 8029B664 EC 02 00 24 */ fdivs f0, f2, f0 -/* 8029B668 EC 03 00 2A */ fadds f0, f3, f0 -/* 8029B66C D0 1E 00 CC */ stfs f0, 0xcc(r30) -/* 8029B670 80 7E 00 D4 */ lwz r3, 0xd4(r30) -/* 8029B674 38 03 FF FF */ addi r0, r3, -1 -/* 8029B678 90 1E 00 D4 */ stw r0, 0xd4(r30) -lbl_8029B67C: -/* 8029B67C 38 60 00 00 */ li r3, 0 -lbl_8029B680: -/* 8029B680 E3 E1 00 68 */ psq_l f31, 104(r1), 0, 0 /* qr0 */ -/* 8029B684 CB E1 00 60 */ lfd f31, 0x60(r1) -/* 8029B688 39 61 00 60 */ addi r11, r1, 0x60 -/* 8029B68C 48 0C 6B 95 */ bl _restgpr_27 -/* 8029B690 80 01 00 74 */ lwz r0, 0x74(r1) -/* 8029B694 7C 08 03 A6 */ mtlr r0 -/* 8029B698 38 21 00 70 */ addi r1, r1, 0x70 -/* 8029B69C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASChannel/updateMixer__10JASChannelFffffPUs.s b/asm/JSystem/JAudio2/JASChannel/updateMixer__10JASChannelFffffPUs.s deleted file mode 100644 index 085b3e0dfc..0000000000 --- a/asm/JSystem/JAudio2/JASChannel/updateMixer__10JASChannelFffffPUs.s +++ /dev/null @@ -1,290 +0,0 @@ -lbl_8029B7D8: -/* 8029B7D8 94 21 FF 30 */ stwu r1, -0xd0(r1) -/* 8029B7DC 7C 08 02 A6 */ mflr r0 -/* 8029B7E0 90 01 00 D4 */ stw r0, 0xd4(r1) -/* 8029B7E4 DB E1 00 C0 */ stfd f31, 0xc0(r1) -/* 8029B7E8 F3 E1 00 C8 */ psq_st f31, 200(r1), 0, 0 /* qr0 */ -/* 8029B7EC DB C1 00 B0 */ stfd f30, 0xb0(r1) -/* 8029B7F0 F3 C1 00 B8 */ psq_st f30, 184(r1), 0, 0 /* qr0 */ -/* 8029B7F4 DB A1 00 A0 */ stfd f29, 0xa0(r1) -/* 8029B7F8 F3 A1 00 A8 */ psq_st f29, 168(r1), 0, 0 /* qr0 */ -/* 8029B7FC DB 81 00 90 */ stfd f28, 0x90(r1) -/* 8029B800 F3 81 00 98 */ psq_st f28, 152(r1), 0, 0 /* qr0 */ -/* 8029B804 DB 61 00 80 */ stfd f27, 0x80(r1) -/* 8029B808 F3 61 00 88 */ psq_st f27, 136(r1), 0, 0 /* qr0 */ -/* 8029B80C DB 41 00 70 */ stfd f26, 0x70(r1) -/* 8029B810 F3 41 00 78 */ psq_st f26, 120(r1), 0, 0 /* qr0 */ -/* 8029B814 DB 21 00 60 */ stfd f25, 0x60(r1) -/* 8029B818 F3 21 00 68 */ psq_st f25, 104(r1), 0, 0 /* qr0 */ -/* 8029B81C DB 01 00 50 */ stfd f24, 0x50(r1) -/* 8029B820 F3 01 00 58 */ psq_st f24, 88(r1), 0, 0 /* qr0 */ -/* 8029B824 DA E1 00 40 */ stfd f23, 0x40(r1) -/* 8029B828 F2 E1 00 48 */ psq_st f23, 72(r1), 0, 0 /* qr0 */ -/* 8029B82C DA C1 00 30 */ stfd f22, 0x30(r1) -/* 8029B830 F2 C1 00 38 */ psq_st f22, 56(r1), 0, 0 /* qr0 */ -/* 8029B834 39 61 00 30 */ addi r11, r1, 0x30 -/* 8029B838 48 0C 69 A1 */ bl _savegpr_28 -/* 8029B83C 7C 7D 1B 78 */ mr r29, r3 -/* 8029B840 FE E0 08 90 */ fmr f23, f1 -/* 8029B844 FF 00 10 90 */ fmr f24, f2 -/* 8029B848 FF 20 18 90 */ fmr f25, f3 -/* 8029B84C FF 40 20 90 */ fmr f26, f4 -/* 8029B850 7C 9E 23 78 */ mr r30, r4 -/* 8029B854 3B E0 00 00 */ li r31, 0 -/* 8029B858 3B 80 00 00 */ li r28, 0 -/* 8029B85C C0 02 BC 80 */ lfs f0, lit_544(r2) -/* 8029B860 EF E0 C0 28 */ fsubs f31, f0, f24 -/* 8029B864 EF C0 C8 28 */ fsubs f30, f0, f25 -/* 8029B868 EF A0 D0 28 */ fsubs f29, f0, f26 -lbl_8029B86C: -/* 8029B86C FF 80 B8 90 */ fmr f28, f23 -/* 8029B870 38 1C 00 8C */ addi r0, r28, 0x8c -/* 8029B874 7C 1D 02 2E */ lhzx r0, r29, r0 -/* 8029B878 B0 01 00 08 */ sth r0, 8(r1) -/* 8029B87C 88 01 00 08 */ lbz r0, 8(r1) -/* 8029B880 28 00 00 00 */ cmplwi r0, 0 -/* 8029B884 40 82 00 10 */ bne lbl_8029B894 -/* 8029B888 38 00 00 00 */ li r0, 0 -/* 8029B88C 7C 1E E3 2E */ sthx r0, r30, r28 -/* 8029B890 48 00 02 F4 */ b lbl_8029BB84 -lbl_8029B894: -/* 8029B894 88 01 00 09 */ lbz r0, 9(r1) -/* 8029B898 54 04 E7 3F */ rlwinm. r4, r0, 0x1c, 0x1c, 0x1f -/* 8029B89C 41 82 00 F4 */ beq lbl_8029B990 -/* 8029B8A0 28 04 00 07 */ cmplwi r4, 7 -/* 8029B8A4 41 81 00 48 */ bgt lbl_8029B8EC -/* 8029B8A8 3C 60 80 3C */ lis r3, lit_974@ha /* 0x803C7884@ha */ -/* 8029B8AC 38 63 78 84 */ addi r3, r3, lit_974@l /* 0x803C7884@l */ -/* 8029B8B0 54 80 10 3A */ slwi r0, r4, 2 -/* 8029B8B4 7C 03 00 2E */ lwzx r0, r3, r0 -/* 8029B8B8 7C 09 03 A6 */ mtctr r0 -/* 8029B8BC 4E 80 04 20 */ bctr -/* 8029B8C0 FF 60 C0 90 */ fmr f27, f24 -/* 8029B8C4 48 00 00 28 */ b lbl_8029B8EC -/* 8029B8C8 FF 60 C8 90 */ fmr f27, f25 -/* 8029B8CC 48 00 00 20 */ b lbl_8029B8EC -/* 8029B8D0 FF 60 D0 90 */ fmr f27, f26 -/* 8029B8D4 48 00 00 18 */ b lbl_8029B8EC -/* 8029B8D8 FF 60 F8 90 */ fmr f27, f31 -/* 8029B8DC 48 00 00 10 */ b lbl_8029B8EC -/* 8029B8E0 FF 60 F0 90 */ fmr f27, f30 -/* 8029B8E4 48 00 00 08 */ b lbl_8029B8EC -/* 8029B8E8 FF 60 E8 90 */ fmr f27, f29 -lbl_8029B8EC: -/* 8029B8EC 2C 04 00 06 */ cmpwi r4, 6 -/* 8029B8F0 41 82 00 14 */ beq lbl_8029B904 -/* 8029B8F4 40 80 00 18 */ bge lbl_8029B90C -/* 8029B8F8 2C 04 00 02 */ cmpwi r4, 2 -/* 8029B8FC 41 82 00 08 */ beq lbl_8029B904 -/* 8029B900 48 00 00 0C */ b lbl_8029B90C -lbl_8029B904: -/* 8029B904 EF 9C 06 F2 */ fmuls f28, f28, f27 -/* 8029B908 48 00 00 88 */ b lbl_8029B990 -lbl_8029B90C: -/* 8029B90C 48 00 28 75 */ bl getOutputMode__9JASDriverFv -/* 8029B910 28 03 00 00 */ cmplwi r3, 0 -/* 8029B914 40 82 00 0C */ bne lbl_8029B920 -/* 8029B918 EF 9C 06 F2 */ fmuls f28, f28, f27 -/* 8029B91C 48 00 00 74 */ b lbl_8029B990 -lbl_8029B920: -/* 8029B920 C0 22 BC 88 */ lfs f1, lit_546(r2) -/* 8029B924 C0 02 BC D0 */ lfs f0, lit_971(r2) -/* 8029B928 EC 1B 00 32 */ fmuls f0, f27, f0 -/* 8029B92C EC 21 00 32 */ fmuls f1, f1, f0 -/* 8029B930 C0 02 BC 84 */ lfs f0, lit_545(r2) -/* 8029B934 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8029B938 40 80 00 30 */ bge lbl_8029B968 -/* 8029B93C C0 02 BC C8 */ lfs f0, lit_969(r2) -/* 8029B940 EC 01 00 32 */ fmuls f0, f1, f0 -/* 8029B944 FC 00 00 1E */ fctiwz f0, f0 -/* 8029B948 D8 01 00 10 */ stfd f0, 0x10(r1) -/* 8029B94C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029B950 54 00 1C 38 */ rlwinm r0, r0, 3, 0x10, 0x1c -/* 8029B954 3C 60 80 44 */ lis r3, sincosTable___5JMath@ha /* 0x80439A20@ha */ -/* 8029B958 38 63 9A 20 */ addi r3, r3, sincosTable___5JMath@l /* 0x80439A20@l */ -/* 8029B95C 7C 03 04 2E */ lfsx f0, r3, r0 -/* 8029B960 FC 00 00 50 */ fneg f0, f0 -/* 8029B964 48 00 00 28 */ b lbl_8029B98C -lbl_8029B968: -/* 8029B968 C0 02 BC CC */ lfs f0, lit_970(r2) -/* 8029B96C EC 01 00 32 */ fmuls f0, f1, f0 -/* 8029B970 FC 00 00 1E */ fctiwz f0, f0 -/* 8029B974 D8 01 00 18 */ stfd f0, 0x18(r1) -/* 8029B978 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8029B97C 54 00 1C 38 */ rlwinm r0, r0, 3, 0x10, 0x1c -/* 8029B980 3C 60 80 44 */ lis r3, sincosTable___5JMath@ha /* 0x80439A20@ha */ -/* 8029B984 38 63 9A 20 */ addi r3, r3, sincosTable___5JMath@l /* 0x80439A20@l */ -/* 8029B988 7C 03 04 2E */ lfsx f0, r3, r0 -lbl_8029B98C: -/* 8029B98C EF 9C 00 32 */ fmuls f28, f28, f0 -lbl_8029B990: -/* 8029B990 88 01 00 09 */ lbz r0, 9(r1) -/* 8029B994 54 04 07 3F */ clrlwi. r4, r0, 0x1c -/* 8029B998 41 82 01 8C */ beq lbl_8029BB24 -/* 8029B99C 28 04 00 07 */ cmplwi r4, 7 -/* 8029B9A0 41 81 00 48 */ bgt lbl_8029B9E8 -/* 8029B9A4 3C 60 80 3C */ lis r3, lit_977@ha /* 0x803C7864@ha */ -/* 8029B9A8 38 63 78 64 */ addi r3, r3, lit_977@l /* 0x803C7864@l */ -/* 8029B9AC 54 80 10 3A */ slwi r0, r4, 2 -/* 8029B9B0 7C 03 00 2E */ lwzx r0, r3, r0 -/* 8029B9B4 7C 09 03 A6 */ mtctr r0 -/* 8029B9B8 4E 80 04 20 */ bctr -/* 8029B9BC FF 60 C0 90 */ fmr f27, f24 -/* 8029B9C0 48 00 00 28 */ b lbl_8029B9E8 -/* 8029B9C4 FF 60 C8 90 */ fmr f27, f25 -/* 8029B9C8 48 00 00 20 */ b lbl_8029B9E8 -/* 8029B9CC FF 60 D0 90 */ fmr f27, f26 -/* 8029B9D0 48 00 00 18 */ b lbl_8029B9E8 -/* 8029B9D4 FF 60 F8 90 */ fmr f27, f31 -/* 8029B9D8 48 00 00 10 */ b lbl_8029B9E8 -/* 8029B9DC FF 60 F0 90 */ fmr f27, f30 -/* 8029B9E0 48 00 00 08 */ b lbl_8029B9E8 -/* 8029B9E4 FF 60 E8 90 */ fmr f27, f29 -lbl_8029B9E8: -/* 8029B9E8 2C 04 00 06 */ cmpwi r4, 6 -/* 8029B9EC 41 82 00 AC */ beq lbl_8029BA98 -/* 8029B9F0 40 80 00 1C */ bge lbl_8029BA0C -/* 8029B9F4 2C 04 00 03 */ cmpwi r4, 3 -/* 8029B9F8 41 82 00 1C */ beq lbl_8029BA14 -/* 8029B9FC 40 80 00 A4 */ bge lbl_8029BAA0 -/* 8029BA00 2C 04 00 02 */ cmpwi r4, 2 -/* 8029BA04 40 80 00 94 */ bge lbl_8029BA98 -/* 8029BA08 48 00 00 98 */ b lbl_8029BAA0 -lbl_8029BA0C: -/* 8029BA0C 2C 04 00 08 */ cmpwi r4, 8 -/* 8029BA10 40 80 00 90 */ bge lbl_8029BAA0 -lbl_8029BA14: -/* 8029BA14 C0 42 BC 88 */ lfs f2, lit_546(r2) -/* 8029BA18 C0 22 BC D4 */ lfs f1, lit_972(r2) -/* 8029BA1C C0 02 BC D8 */ lfs f0, lit_973(r2) -/* 8029BA20 EC 00 06 F2 */ fmuls f0, f0, f27 -/* 8029BA24 EC 21 00 2A */ fadds f1, f1, f0 -/* 8029BA28 C0 02 BC D0 */ lfs f0, lit_971(r2) -/* 8029BA2C EC 01 00 32 */ fmuls f0, f1, f0 -/* 8029BA30 EC 22 00 32 */ fmuls f1, f2, f0 -/* 8029BA34 C0 02 BC 84 */ lfs f0, lit_545(r2) -/* 8029BA38 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8029BA3C 40 80 00 30 */ bge lbl_8029BA6C -/* 8029BA40 C0 02 BC C8 */ lfs f0, lit_969(r2) -/* 8029BA44 EC 01 00 32 */ fmuls f0, f1, f0 -/* 8029BA48 FC 00 00 1E */ fctiwz f0, f0 -/* 8029BA4C D8 01 00 18 */ stfd f0, 0x18(r1) -/* 8029BA50 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8029BA54 54 00 1C 38 */ rlwinm r0, r0, 3, 0x10, 0x1c -/* 8029BA58 3C 60 80 44 */ lis r3, sincosTable___5JMath@ha /* 0x80439A20@ha */ -/* 8029BA5C 38 63 9A 20 */ addi r3, r3, sincosTable___5JMath@l /* 0x80439A20@l */ -/* 8029BA60 7C 03 04 2E */ lfsx f0, r3, r0 -/* 8029BA64 FC 00 00 50 */ fneg f0, f0 -/* 8029BA68 48 00 00 28 */ b lbl_8029BA90 -lbl_8029BA6C: -/* 8029BA6C C0 02 BC CC */ lfs f0, lit_970(r2) -/* 8029BA70 EC 01 00 32 */ fmuls f0, f1, f0 -/* 8029BA74 FC 00 00 1E */ fctiwz f0, f0 -/* 8029BA78 D8 01 00 10 */ stfd f0, 0x10(r1) -/* 8029BA7C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029BA80 54 00 1C 38 */ rlwinm r0, r0, 3, 0x10, 0x1c -/* 8029BA84 3C 60 80 44 */ lis r3, sincosTable___5JMath@ha /* 0x80439A20@ha */ -/* 8029BA88 38 63 9A 20 */ addi r3, r3, sincosTable___5JMath@l /* 0x80439A20@l */ -/* 8029BA8C 7C 03 04 2E */ lfsx f0, r3, r0 -lbl_8029BA90: -/* 8029BA90 EF 9C 00 32 */ fmuls f28, f28, f0 -/* 8029BA94 48 00 00 90 */ b lbl_8029BB24 -lbl_8029BA98: -/* 8029BA98 EF 9C 06 F2 */ fmuls f28, f28, f27 -/* 8029BA9C 48 00 00 88 */ b lbl_8029BB24 -lbl_8029BAA0: -/* 8029BAA0 48 00 26 E1 */ bl getOutputMode__9JASDriverFv -/* 8029BAA4 28 03 00 00 */ cmplwi r3, 0 -/* 8029BAA8 40 82 00 0C */ bne lbl_8029BAB4 -/* 8029BAAC EF 9C 06 F2 */ fmuls f28, f28, f27 -/* 8029BAB0 48 00 00 74 */ b lbl_8029BB24 -lbl_8029BAB4: -/* 8029BAB4 C0 22 BC 88 */ lfs f1, lit_546(r2) -/* 8029BAB8 C0 02 BC D0 */ lfs f0, lit_971(r2) -/* 8029BABC EC 1B 00 32 */ fmuls f0, f27, f0 -/* 8029BAC0 EC 21 00 32 */ fmuls f1, f1, f0 -/* 8029BAC4 C0 02 BC 84 */ lfs f0, lit_545(r2) -/* 8029BAC8 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8029BACC 40 80 00 30 */ bge lbl_8029BAFC -/* 8029BAD0 C0 02 BC C8 */ lfs f0, lit_969(r2) -/* 8029BAD4 EC 01 00 32 */ fmuls f0, f1, f0 -/* 8029BAD8 FC 00 00 1E */ fctiwz f0, f0 -/* 8029BADC D8 01 00 18 */ stfd f0, 0x18(r1) -/* 8029BAE0 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8029BAE4 54 00 1C 38 */ rlwinm r0, r0, 3, 0x10, 0x1c -/* 8029BAE8 3C 60 80 44 */ lis r3, sincosTable___5JMath@ha /* 0x80439A20@ha */ -/* 8029BAEC 38 63 9A 20 */ addi r3, r3, sincosTable___5JMath@l /* 0x80439A20@l */ -/* 8029BAF0 7C 03 04 2E */ lfsx f0, r3, r0 -/* 8029BAF4 FC 00 00 50 */ fneg f0, f0 -/* 8029BAF8 48 00 00 28 */ b lbl_8029BB20 -lbl_8029BAFC: -/* 8029BAFC C0 02 BC CC */ lfs f0, lit_970(r2) -/* 8029BB00 EC 01 00 32 */ fmuls f0, f1, f0 -/* 8029BB04 FC 00 00 1E */ fctiwz f0, f0 -/* 8029BB08 D8 01 00 10 */ stfd f0, 0x10(r1) -/* 8029BB0C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029BB10 54 00 1C 38 */ rlwinm r0, r0, 3, 0x10, 0x1c -/* 8029BB14 3C 60 80 44 */ lis r3, sincosTable___5JMath@ha /* 0x80439A20@ha */ -/* 8029BB18 38 63 9A 20 */ addi r3, r3, sincosTable___5JMath@l /* 0x80439A20@l */ -/* 8029BB1C 7C 03 04 2E */ lfsx f0, r3, r0 -lbl_8029BB20: -/* 8029BB20 EF 9C 00 32 */ fmuls f28, f28, f0 -lbl_8029BB24: -/* 8029BB24 C2 C2 BC 84 */ lfs f22, lit_545(r2) -/* 8029BB28 FC 1C B0 40 */ fcmpo cr0, f28, f22 -/* 8029BB2C 4C 40 13 82 */ cror 2, 0, 2 -/* 8029BB30 40 82 00 08 */ bne lbl_8029BB38 -/* 8029BB34 48 00 00 1C */ b lbl_8029BB50 -lbl_8029BB38: -/* 8029BB38 C2 C2 BC 80 */ lfs f22, lit_544(r2) -/* 8029BB3C FC 1C B0 40 */ fcmpo cr0, f28, f22 -/* 8029BB40 4C 41 13 82 */ cror 2, 1, 2 -/* 8029BB44 40 82 00 08 */ bne lbl_8029BB4C -/* 8029BB48 48 00 00 08 */ b lbl_8029BB50 -lbl_8029BB4C: -/* 8029BB4C FE C0 E0 90 */ fmr f22, f28 -lbl_8029BB50: -/* 8029BB50 48 00 26 01 */ bl getChannelLevel_dsp__9JASDriverFv -/* 8029BB54 54 60 04 3E */ clrlwi r0, r3, 0x10 -/* 8029BB58 C8 22 BC A8 */ lfd f1, lit_714(r2) -/* 8029BB5C 90 01 00 1C */ stw r0, 0x1c(r1) -/* 8029BB60 3C 00 43 30 */ lis r0, 0x4330 -/* 8029BB64 90 01 00 18 */ stw r0, 0x18(r1) -/* 8029BB68 C8 01 00 18 */ lfd f0, 0x18(r1) -/* 8029BB6C EC 00 08 28 */ fsubs f0, f0, f1 -/* 8029BB70 EC 16 00 32 */ fmuls f0, f22, f0 -/* 8029BB74 FC 00 00 1E */ fctiwz f0, f0 -/* 8029BB78 D8 01 00 10 */ stfd f0, 0x10(r1) -/* 8029BB7C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029BB80 7C 1E E3 2E */ sthx r0, r30, r28 -lbl_8029BB84: -/* 8029BB84 3B FF 00 01 */ addi r31, r31, 1 -/* 8029BB88 28 1F 00 06 */ cmplwi r31, 6 -/* 8029BB8C 3B 9C 00 02 */ addi r28, r28, 2 -/* 8029BB90 41 80 FC DC */ blt lbl_8029B86C -/* 8029BB94 E3 E1 00 C8 */ psq_l f31, 200(r1), 0, 0 /* qr0 */ -/* 8029BB98 CB E1 00 C0 */ lfd f31, 0xc0(r1) -/* 8029BB9C E3 C1 00 B8 */ psq_l f30, 184(r1), 0, 0 /* qr0 */ -/* 8029BBA0 CB C1 00 B0 */ lfd f30, 0xb0(r1) -/* 8029BBA4 E3 A1 00 A8 */ psq_l f29, 168(r1), 0, 0 /* qr0 */ -/* 8029BBA8 CB A1 00 A0 */ lfd f29, 0xa0(r1) -/* 8029BBAC E3 81 00 98 */ psq_l f28, 152(r1), 0, 0 /* qr0 */ -/* 8029BBB0 CB 81 00 90 */ lfd f28, 0x90(r1) -/* 8029BBB4 E3 61 00 88 */ psq_l f27, 136(r1), 0, 0 /* qr0 */ -/* 8029BBB8 CB 61 00 80 */ lfd f27, 0x80(r1) -/* 8029BBBC E3 41 00 78 */ psq_l f26, 120(r1), 0, 0 /* qr0 */ -/* 8029BBC0 CB 41 00 70 */ lfd f26, 0x70(r1) -/* 8029BBC4 E3 21 00 68 */ psq_l f25, 104(r1), 0, 0 /* qr0 */ -/* 8029BBC8 CB 21 00 60 */ lfd f25, 0x60(r1) -/* 8029BBCC E3 01 00 58 */ psq_l f24, 88(r1), 0, 0 /* qr0 */ -/* 8029BBD0 CB 01 00 50 */ lfd f24, 0x50(r1) -/* 8029BBD4 E2 E1 00 48 */ psq_l f23, 72(r1), 0, 0 /* qr0 */ -/* 8029BBD8 CA E1 00 40 */ lfd f23, 0x40(r1) -/* 8029BBDC E2 C1 00 38 */ psq_l f22, 56(r1), 0, 0 /* qr0 */ -/* 8029BBE0 CA C1 00 30 */ lfd f22, 0x30(r1) -/* 8029BBE4 39 61 00 30 */ addi r11, r1, 0x30 -/* 8029BBE8 48 0C 66 3D */ bl _restgpr_28 -/* 8029BBEC 80 01 00 D4 */ lwz r0, 0xd4(r1) -/* 8029BBF0 7C 08 03 A6 */ mtlr r0 -/* 8029BBF4 38 21 00 D0 */ addi r1, r1, 0xd0 -/* 8029BBF8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPChannel/__ct__13JASDSPChannelFv.s b/asm/JSystem/JAudio2/JASDSPChannel/__ct__13JASDSPChannelFv.s deleted file mode 100644 index 072f6f336b..0000000000 --- a/asm/JSystem/JAudio2/JASDSPChannel/__ct__13JASDSPChannelFv.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_8029D2F4: -/* 8029D2F4 38 00 00 01 */ li r0, 1 -/* 8029D2F8 90 03 00 00 */ stw r0, 0(r3) -/* 8029D2FC 38 00 FF FF */ li r0, -1 -/* 8029D300 B0 03 00 04 */ sth r0, 4(r3) -/* 8029D304 38 00 00 00 */ li r0, 0 -/* 8029D308 90 03 00 08 */ stw r0, 8(r3) -/* 8029D30C 90 03 00 0C */ stw r0, 0xc(r3) -/* 8029D310 90 03 00 10 */ stw r0, 0x10(r3) -/* 8029D314 90 03 00 14 */ stw r0, 0x14(r3) -/* 8029D318 90 03 00 18 */ stw r0, 0x18(r3) -/* 8029D31C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPChannel/allocForce__13JASDSPChannelFUcPFUlPQ26JASDsp8TChannelPv_lPv.s b/asm/JSystem/JAudio2/JASDSPChannel/allocForce__13JASDSPChannelFUcPFUlPQ26JASDsp8TChannelPv_lPv.s deleted file mode 100644 index 5448f41b14..0000000000 --- a/asm/JSystem/JAudio2/JASDSPChannel/allocForce__13JASDSPChannelFUcPFUlPQ26JASDsp8TChannelPv_lPv.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_8029D4BC: -/* 8029D4BC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8029D4C0 7C 08 02 A6 */ mflr r0 -/* 8029D4C4 90 01 00 24 */ stw r0, 0x24(r1) -/* 8029D4C8 39 61 00 20 */ addi r11, r1, 0x20 -/* 8029D4CC 48 0C 4D 0D */ bl _savegpr_28 -/* 8029D4D0 7C 7C 1B 78 */ mr r28, r3 -/* 8029D4D4 7C 9D 23 78 */ mr r29, r4 -/* 8029D4D8 7C BE 2B 78 */ mr r30, r5 -/* 8029D4DC 54 63 06 3E */ clrlwi r3, r3, 0x18 -/* 8029D4E0 48 00 00 61 */ bl getLowestChannel__13JASDSPChannelFi -/* 8029D4E4 7C 7F 1B 79 */ or. r31, r3, r3 -/* 8029D4E8 40 82 00 0C */ bne lbl_8029D4F4 -/* 8029D4EC 38 60 00 00 */ li r3, 0 -/* 8029D4F0 48 00 00 2C */ b lbl_8029D51C -lbl_8029D4F4: -/* 8029D4F4 38 00 00 01 */ li r0, 1 -/* 8029D4F8 90 1F 00 00 */ stw r0, 0(r31) -/* 8029D4FC 4B FF FE 45 */ bl drop__13JASDSPChannelFv -/* 8029D500 57 80 06 3E */ clrlwi r0, r28, 0x18 -/* 8029D504 B0 1F 00 04 */ sth r0, 4(r31) -/* 8029D508 38 00 00 00 */ li r0, 0 -/* 8029D50C 90 1F 00 0C */ stw r0, 0xc(r31) -/* 8029D510 93 BF 00 10 */ stw r29, 0x10(r31) -/* 8029D514 93 DF 00 14 */ stw r30, 0x14(r31) -/* 8029D518 7F E3 FB 78 */ mr r3, r31 -lbl_8029D51C: -/* 8029D51C 39 61 00 20 */ addi r11, r1, 0x20 -/* 8029D520 48 0C 4D 05 */ bl _restgpr_28 -/* 8029D524 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8029D528 7C 08 03 A6 */ mtlr r0 -/* 8029D52C 38 21 00 20 */ addi r1, r1, 0x20 -/* 8029D530 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPChannel/alloc__13JASDSPChannelFUcPFUlPQ26JASDsp8TChannelPv_lPv.s b/asm/JSystem/JAudio2/JASDSPChannel/alloc__13JASDSPChannelFUcPFUlPQ26JASDsp8TChannelPv_lPv.s deleted file mode 100644 index 59c44f350b..0000000000 --- a/asm/JSystem/JAudio2/JASDSPChannel/alloc__13JASDSPChannelFUcPFUlPQ26JASDsp8TChannelPv_lPv.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_8029D44C: -/* 8029D44C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8029D450 7C 08 02 A6 */ mflr r0 -/* 8029D454 90 01 00 24 */ stw r0, 0x24(r1) -/* 8029D458 39 61 00 20 */ addi r11, r1, 0x20 -/* 8029D45C 48 0C 4D 7D */ bl _savegpr_28 -/* 8029D460 7C 7C 1B 78 */ mr r28, r3 -/* 8029D464 7C 9D 23 78 */ mr r29, r4 -/* 8029D468 7C BE 2B 78 */ mr r30, r5 -/* 8029D46C 54 63 06 3E */ clrlwi r3, r3, 0x18 -/* 8029D470 48 00 00 D1 */ bl getLowestChannel__13JASDSPChannelFi -/* 8029D474 7C 7F 1B 79 */ or. r31, r3, r3 -/* 8029D478 40 82 00 0C */ bne lbl_8029D484 -/* 8029D47C 38 60 00 00 */ li r3, 0 -/* 8029D480 48 00 00 24 */ b lbl_8029D4A4 -lbl_8029D484: -/* 8029D484 4B FF FE BD */ bl drop__13JASDSPChannelFv -/* 8029D488 57 80 06 3E */ clrlwi r0, r28, 0x18 -/* 8029D48C B0 1F 00 04 */ sth r0, 4(r31) -/* 8029D490 38 00 00 00 */ li r0, 0 -/* 8029D494 90 1F 00 0C */ stw r0, 0xc(r31) -/* 8029D498 93 BF 00 10 */ stw r29, 0x10(r31) -/* 8029D49C 93 DF 00 14 */ stw r30, 0x14(r31) -/* 8029D4A0 7F E3 FB 78 */ mr r3, r31 -lbl_8029D4A4: -/* 8029D4A4 39 61 00 20 */ addi r11, r1, 0x20 -/* 8029D4A8 48 0C 4D 7D */ bl _restgpr_28 -/* 8029D4AC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8029D4B0 7C 08 03 A6 */ mtlr r0 -/* 8029D4B4 38 21 00 20 */ addi r1, r1, 0x20 -/* 8029D4B8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPChannel/drop__13JASDSPChannelFv.s b/asm/JSystem/JAudio2/JASDSPChannel/drop__13JASDSPChannelFv.s deleted file mode 100644 index b2069d923b..0000000000 --- a/asm/JSystem/JAudio2/JASDSPChannel/drop__13JASDSPChannelFv.s +++ /dev/null @@ -1,37 +0,0 @@ -lbl_8029D340: -/* 8029D340 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029D344 7C 08 02 A6 */ mflr r0 -/* 8029D348 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029D34C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8029D350 7C 7F 1B 78 */ mr r31, r3 -/* 8029D354 81 83 00 10 */ lwz r12, 0x10(r3) -/* 8029D358 28 0C 00 00 */ cmplwi r12, 0 -/* 8029D35C 41 82 00 18 */ beq lbl_8029D374 -/* 8029D360 38 60 00 03 */ li r3, 3 -/* 8029D364 38 80 00 00 */ li r4, 0 -/* 8029D368 80 BF 00 14 */ lwz r5, 0x14(r31) -/* 8029D36C 7D 89 03 A6 */ mtctr r12 -/* 8029D370 4E 80 04 21 */ bctrl -lbl_8029D374: -/* 8029D374 38 00 00 00 */ li r0, 0 -/* 8029D378 90 1F 00 10 */ stw r0, 0x10(r31) -/* 8029D37C 90 1F 00 14 */ stw r0, 0x14(r31) -/* 8029D380 38 00 FF FF */ li r0, -1 -/* 8029D384 B0 1F 00 04 */ sth r0, 4(r31) -/* 8029D388 80 1F 00 08 */ lwz r0, 8(r31) -/* 8029D38C 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e -/* 8029D390 90 1F 00 08 */ stw r0, 8(r31) -/* 8029D394 80 1F 00 00 */ lwz r0, 0(r31) -/* 8029D398 2C 00 00 00 */ cmpwi r0, 0 -/* 8029D39C 40 82 00 18 */ bne lbl_8029D3B4 -/* 8029D3A0 80 1F 00 08 */ lwz r0, 8(r31) -/* 8029D3A4 60 00 00 02 */ ori r0, r0, 2 -/* 8029D3A8 90 1F 00 08 */ stw r0, 8(r31) -/* 8029D3AC 38 00 00 02 */ li r0, 2 -/* 8029D3B0 90 1F 00 00 */ stw r0, 0(r31) -lbl_8029D3B4: -/* 8029D3B4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8029D3B8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029D3BC 7C 08 03 A6 */ mtlr r0 -/* 8029D3C0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029D3C4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPChannel/free__13JASDSPChannelFv.s b/asm/JSystem/JAudio2/JASDSPChannel/free__13JASDSPChannelFv.s deleted file mode 100644 index 384eb6da19..0000000000 --- a/asm/JSystem/JAudio2/JASDSPChannel/free__13JASDSPChannelFv.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8029D320: -/* 8029D320 38 00 00 00 */ li r0, 0 -/* 8029D324 90 03 00 10 */ stw r0, 0x10(r3) -/* 8029D328 90 03 00 14 */ stw r0, 0x14(r3) -/* 8029D32C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPChannel/getHandle__13JASDSPChannelFUl.s b/asm/JSystem/JAudio2/JASDSPChannel/getHandle__13JASDSPChannelFUl.s deleted file mode 100644 index a3f480fda8..0000000000 --- a/asm/JSystem/JAudio2/JASDSPChannel/getHandle__13JASDSPChannelFUl.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8029D948: -/* 8029D948 80 8D 8D 60 */ lwz r4, sDspChannels__13JASDSPChannel(r13) -/* 8029D94C 1C 03 00 1C */ mulli r0, r3, 0x1c -/* 8029D950 7C 64 02 14 */ add r3, r4, r0 -/* 8029D954 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPChannel/getLowestActiveChannel__13JASDSPChannelFv.s b/asm/JSystem/JAudio2/JASDSPChannel/getLowestActiveChannel__13JASDSPChannelFv.s deleted file mode 100644 index edbde6625d..0000000000 --- a/asm/JSystem/JAudio2/JASDSPChannel/getLowestActiveChannel__13JASDSPChannelFv.s +++ /dev/null @@ -1,40 +0,0 @@ -lbl_8029D5D0: -/* 8029D5D0 38 A0 00 FF */ li r5, 0xff -/* 8029D5D4 38 C0 FF FF */ li r6, -1 -/* 8029D5D8 38 E0 00 00 */ li r7, 0 -/* 8029D5DC 39 00 00 00 */ li r8, 0 -/* 8029D5E0 38 60 00 00 */ li r3, 0 -/* 8029D5E4 80 8D 8D 60 */ lwz r4, sDspChannels__13JASDSPChannel(r13) -/* 8029D5E8 38 00 00 40 */ li r0, 0x40 -/* 8029D5EC 7C 09 03 A6 */ mtctr r0 -lbl_8029D5F0: -/* 8029D5F0 7D 24 1A 14 */ add r9, r4, r3 -/* 8029D5F4 80 09 00 00 */ lwz r0, 0(r9) -/* 8029D5F8 2C 00 00 00 */ cmpwi r0, 0 -/* 8029D5FC 40 82 00 38 */ bne lbl_8029D634 -/* 8029D600 A9 49 00 04 */ lha r10, 4(r9) -/* 8029D604 2C 0A 00 7F */ cmpwi r10, 0x7f -/* 8029D608 40 80 00 2C */ bge lbl_8029D634 -/* 8029D60C 7C A0 07 34 */ extsh r0, r5 -/* 8029D610 7C 0A 00 00 */ cmpw r10, r0 -/* 8029D614 41 81 00 20 */ bgt lbl_8029D634 -/* 8029D618 40 82 00 10 */ bne lbl_8029D628 -/* 8029D61C 80 09 00 0C */ lwz r0, 0xc(r9) -/* 8029D620 7C 00 38 40 */ cmplw r0, r7 -/* 8029D624 40 81 00 10 */ ble lbl_8029D634 -lbl_8029D628: -/* 8029D628 80 E9 00 0C */ lwz r7, 0xc(r9) -/* 8029D62C 7D 06 43 78 */ mr r6, r8 -/* 8029D630 7D 45 53 78 */ mr r5, r10 -lbl_8029D634: -/* 8029D634 39 08 00 01 */ addi r8, r8, 1 -/* 8029D638 38 63 00 1C */ addi r3, r3, 0x1c -/* 8029D63C 42 00 FF B4 */ bdnz lbl_8029D5F0 -/* 8029D640 2C 06 00 00 */ cmpwi r6, 0 -/* 8029D644 40 80 00 0C */ bge lbl_8029D650 -/* 8029D648 38 60 00 00 */ li r3, 0 -/* 8029D64C 4E 80 00 20 */ blr -lbl_8029D650: -/* 8029D650 1C 06 00 1C */ mulli r0, r6, 0x1c -/* 8029D654 7C 64 02 14 */ add r3, r4, r0 -/* 8029D658 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPChannel/getLowestChannel__13JASDSPChannelFi.s b/asm/JSystem/JAudio2/JASDSPChannel/getLowestChannel__13JASDSPChannelFi.s deleted file mode 100644 index 1842974ae9..0000000000 --- a/asm/JSystem/JAudio2/JASDSPChannel/getLowestChannel__13JASDSPChannelFi.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_8029D540: -/* 8029D540 38 C0 00 FF */ li r6, 0xff -/* 8029D544 38 E0 FF FF */ li r7, -1 -/* 8029D548 39 00 00 00 */ li r8, 0 -/* 8029D54C 39 20 00 00 */ li r9, 0 -/* 8029D550 38 80 00 00 */ li r4, 0 -/* 8029D554 80 AD 8D 60 */ lwz r5, sDspChannels__13JASDSPChannel(r13) -/* 8029D558 38 00 00 40 */ li r0, 0x40 -/* 8029D55C 7C 09 03 A6 */ mtctr r0 -lbl_8029D560: -/* 8029D560 7D 45 22 14 */ add r10, r5, r4 -/* 8029D564 A9 6A 00 04 */ lha r11, 4(r10) -/* 8029D568 7D 60 07 35 */ extsh. r0, r11 -/* 8029D56C 40 80 00 0C */ bge lbl_8029D578 -/* 8029D570 7D 43 53 78 */ mr r3, r10 -/* 8029D574 4E 80 00 20 */ blr -lbl_8029D578: -/* 8029D578 7C 0B 18 00 */ cmpw r11, r3 -/* 8029D57C 41 81 00 2C */ bgt lbl_8029D5A8 -/* 8029D580 7C C0 07 34 */ extsh r0, r6 -/* 8029D584 7C 0B 00 00 */ cmpw r11, r0 -/* 8029D588 41 81 00 20 */ bgt lbl_8029D5A8 -/* 8029D58C 40 82 00 10 */ bne lbl_8029D59C -/* 8029D590 80 0A 00 0C */ lwz r0, 0xc(r10) -/* 8029D594 7C 00 40 40 */ cmplw r0, r8 -/* 8029D598 40 81 00 10 */ ble lbl_8029D5A8 -lbl_8029D59C: -/* 8029D59C 81 0A 00 0C */ lwz r8, 0xc(r10) -/* 8029D5A0 7D 27 4B 78 */ mr r7, r9 -/* 8029D5A4 7D 66 5B 78 */ mr r6, r11 -lbl_8029D5A8: -/* 8029D5A8 39 29 00 01 */ addi r9, r9, 1 -/* 8029D5AC 38 84 00 1C */ addi r4, r4, 0x1c -/* 8029D5B0 42 00 FF B0 */ bdnz lbl_8029D560 -/* 8029D5B4 2C 07 00 00 */ cmpwi r7, 0 -/* 8029D5B8 40 80 00 0C */ bge lbl_8029D5C4 -/* 8029D5BC 38 60 00 00 */ li r3, 0 -/* 8029D5C0 4E 80 00 20 */ blr -lbl_8029D5C4: -/* 8029D5C4 1C 07 00 1C */ mulli r0, r7, 0x1c -/* 8029D5C8 7C 65 02 14 */ add r3, r5, r0 -/* 8029D5CC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPChannel/initAll__13JASDSPChannelFv.s b/asm/JSystem/JAudio2/JASDSPChannel/initAll__13JASDSPChannelFv.s deleted file mode 100644 index c6b0c18078..0000000000 --- a/asm/JSystem/JAudio2/JASDSPChannel/initAll__13JASDSPChannelFv.s +++ /dev/null @@ -1,35 +0,0 @@ -lbl_8029D3C8: -/* 8029D3C8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029D3CC 7C 08 02 A6 */ mflr r0 -/* 8029D3D0 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029D3D4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8029D3D8 93 C1 00 08 */ stw r30, 8(r1) -/* 8029D3DC 38 60 07 10 */ li r3, 0x710 -/* 8029D3E0 80 8D 8C 90 */ lwz r4, JASDram(r13) -/* 8029D3E4 38 A0 00 20 */ li r5, 0x20 -/* 8029D3E8 48 03 19 29 */ bl __nwa__FUlP7JKRHeapi -/* 8029D3EC 3C 80 80 2A */ lis r4, __ct__13JASDSPChannelFv@ha /* 0x8029D2F4@ha */ -/* 8029D3F0 38 84 D2 F4 */ addi r4, r4, __ct__13JASDSPChannelFv@l /* 0x8029D2F4@l */ -/* 8029D3F4 38 A0 00 00 */ li r5, 0 -/* 8029D3F8 38 C0 00 1C */ li r6, 0x1c -/* 8029D3FC 38 E0 00 40 */ li r7, 0x40 -/* 8029D400 48 0C 4B 15 */ bl __construct_new_array -/* 8029D404 90 6D 8D 60 */ stw r3, sDspChannels__13JASDSPChannel(r13) -/* 8029D408 3B C0 00 00 */ li r30, 0 -/* 8029D40C 3B E0 00 00 */ li r31, 0 -lbl_8029D410: -/* 8029D410 7F C3 F3 78 */ mr r3, r30 -/* 8029D414 48 00 06 25 */ bl getDSPHandle__6JASDspFi -/* 8029D418 80 8D 8D 60 */ lwz r4, sDspChannels__13JASDSPChannel(r13) -/* 8029D41C 38 1F 00 18 */ addi r0, r31, 0x18 -/* 8029D420 7C 64 01 2E */ stwx r3, r4, r0 -/* 8029D424 3B DE 00 01 */ addi r30, r30, 1 -/* 8029D428 2C 1E 00 40 */ cmpwi r30, 0x40 -/* 8029D42C 3B FF 00 1C */ addi r31, r31, 0x1c -/* 8029D430 41 80 FF E0 */ blt lbl_8029D410 -/* 8029D434 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8029D438 83 C1 00 08 */ lwz r30, 8(r1) -/* 8029D43C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029D440 7C 08 03 A6 */ mtlr r0 -/* 8029D444 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029D448 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPChannel/killActiveChannel__13JASDSPChannelFv.s b/asm/JSystem/JAudio2/JASDSPChannel/killActiveChannel__13JASDSPChannelFv.s deleted file mode 100644 index 29321276ab..0000000000 --- a/asm/JSystem/JAudio2/JASDSPChannel/killActiveChannel__13JASDSPChannelFv.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_8029D910: -/* 8029D910 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029D914 7C 08 02 A6 */ mflr r0 -/* 8029D918 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029D91C 4B FF FC B5 */ bl getLowestActiveChannel__13JASDSPChannelFv -/* 8029D920 28 03 00 00 */ cmplwi r3, 0 -/* 8029D924 40 82 00 0C */ bne lbl_8029D930 -/* 8029D928 38 60 00 00 */ li r3, 0 -/* 8029D92C 48 00 00 0C */ b lbl_8029D938 -lbl_8029D930: -/* 8029D930 4B FF FA 11 */ bl drop__13JASDSPChannelFv -/* 8029D934 38 60 00 01 */ li r3, 1 -lbl_8029D938: -/* 8029D938 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029D93C 7C 08 03 A6 */ mtlr r0 -/* 8029D940 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029D944 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPChannel/setPriority__13JASDSPChannelFUc.s b/asm/JSystem/JAudio2/JASDSPChannel/setPriority__13JASDSPChannelFUc.s deleted file mode 100644 index 265a2d2af8..0000000000 --- a/asm/JSystem/JAudio2/JASDSPChannel/setPriority__13JASDSPChannelFUc.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8029D534: -/* 8029D534 54 80 06 3E */ clrlwi r0, r4, 0x18 -/* 8029D538 B0 03 00 04 */ sth r0, 4(r3) -/* 8029D53C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPChannel/start__13JASDSPChannelFv.s b/asm/JSystem/JAudio2/JASDSPChannel/start__13JASDSPChannelFv.s deleted file mode 100644 index e8734c764e..0000000000 --- a/asm/JSystem/JAudio2/JASDSPChannel/start__13JASDSPChannelFv.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8029D330: -/* 8029D330 80 03 00 08 */ lwz r0, 8(r3) -/* 8029D334 60 00 00 01 */ ori r0, r0, 1 -/* 8029D338 90 03 00 08 */ stw r0, 8(r3) -/* 8029D33C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPChannel/updateAll__13JASDSPChannelFv.s b/asm/JSystem/JAudio2/JASDSPChannel/updateAll__13JASDSPChannelFv.s deleted file mode 100644 index 9782ff3480..0000000000 --- a/asm/JSystem/JAudio2/JASDSPChannel/updateAll__13JASDSPChannelFv.s +++ /dev/null @@ -1,32 +0,0 @@ -lbl_8029D89C: -/* 8029D89C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029D8A0 7C 08 02 A6 */ mflr r0 -/* 8029D8A4 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029D8A8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8029D8AC 93 C1 00 08 */ stw r30, 8(r1) -/* 8029D8B0 3B C0 00 00 */ li r30, 0 -/* 8029D8B4 3B E0 00 00 */ li r31, 0 -lbl_8029D8B8: -/* 8029D8B8 57 C0 07 3F */ clrlwi. r0, r30, 0x1c -/* 8029D8BC 40 82 00 18 */ bne lbl_8029D8D4 -/* 8029D8C0 28 1E 00 00 */ cmplwi r30, 0 -/* 8029D8C4 41 82 00 10 */ beq lbl_8029D8D4 -/* 8029D8C8 38 1E FF FF */ addi r0, r30, -1 -/* 8029D8CC 54 03 E1 3E */ srwi r3, r0, 4 -/* 8029D8D0 48 00 00 D5 */ bl releaseHalt__6JASDspFUl -lbl_8029D8D4: -/* 8029D8D4 80 0D 8D 60 */ lwz r0, sDspChannels__13JASDSPChannel(r13) -/* 8029D8D8 7C 60 FA 14 */ add r3, r0, r31 -/* 8029D8DC 4B FF FD 81 */ bl updateProc__13JASDSPChannelFv -/* 8029D8E0 3B DE 00 01 */ addi r30, r30, 1 -/* 8029D8E4 28 1E 00 40 */ cmplwi r30, 0x40 -/* 8029D8E8 3B FF 00 1C */ addi r31, r31, 0x1c -/* 8029D8EC 41 80 FF CC */ blt lbl_8029D8B8 -/* 8029D8F0 38 60 00 03 */ li r3, 3 -/* 8029D8F4 48 00 00 B1 */ bl releaseHalt__6JASDspFUl -/* 8029D8F8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8029D8FC 83 C1 00 08 */ lwz r30, 8(r1) -/* 8029D900 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029D904 7C 08 03 A6 */ mtlr r0 -/* 8029D908 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029D90C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASDSPChannel/updateProc__13JASDSPChannelFv.s b/asm/JSystem/JAudio2/JASDSPChannel/updateProc__13JASDSPChannelFv.s deleted file mode 100644 index 1ed7124850..0000000000 --- a/asm/JSystem/JAudio2/JASDSPChannel/updateProc__13JASDSPChannelFv.s +++ /dev/null @@ -1,164 +0,0 @@ -lbl_8029D65C: -/* 8029D65C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029D660 7C 08 02 A6 */ mflr r0 -/* 8029D664 90 01 00 14 */ stw r0, 0x14(r1) -/* 8029D668 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8029D66C 7C 7F 1B 78 */ mr r31, r3 -/* 8029D670 80 63 00 18 */ lwz r3, 0x18(r3) -/* 8029D674 48 00 07 09 */ bl isFinish__Q26JASDsp8TChannelCFv -/* 8029D678 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8029D67C 41 82 00 70 */ beq lbl_8029D6EC -/* 8029D680 80 1F 00 08 */ lwz r0, 8(r31) -/* 8029D684 54 00 07 FA */ rlwinm r0, r0, 0, 0x1f, 0x1d -/* 8029D688 90 1F 00 08 */ stw r0, 8(r31) -/* 8029D68C 80 1F 00 00 */ lwz r0, 0(r31) -/* 8029D690 2C 00 00 00 */ cmpwi r0, 0 -/* 8029D694 40 82 00 3C */ bne lbl_8029D6D0 -/* 8029D698 81 9F 00 10 */ lwz r12, 0x10(r31) -/* 8029D69C 28 0C 00 00 */ cmplwi r12, 0 -/* 8029D6A0 41 82 00 1C */ beq lbl_8029D6BC -/* 8029D6A4 38 60 00 02 */ li r3, 2 -/* 8029D6A8 38 80 00 00 */ li r4, 0 -/* 8029D6AC 80 BF 00 14 */ lwz r5, 0x14(r31) -/* 8029D6B0 7D 89 03 A6 */ mtctr r12 -/* 8029D6B4 4E 80 04 21 */ bctrl -/* 8029D6B8 48 00 00 08 */ b lbl_8029D6C0 -lbl_8029D6BC: -/* 8029D6BC 38 60 FF FF */ li r3, -1 -lbl_8029D6C0: -/* 8029D6C0 2C 03 00 00 */ cmpwi r3, 0 -/* 8029D6C4 40 80 00 0C */ bge lbl_8029D6D0 -/* 8029D6C8 38 00 FF FF */ li r0, -1 -/* 8029D6CC B0 1F 00 04 */ sth r0, 4(r31) -lbl_8029D6D0: -/* 8029D6D0 38 00 00 01 */ li r0, 1 -/* 8029D6D4 90 1F 00 00 */ stw r0, 0(r31) -/* 8029D6D8 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 8029D6DC 48 00 06 75 */ bl replyFinishRequest__Q26JASDsp8TChannelFv -/* 8029D6E0 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 8029D6E4 48 00 08 A9 */ bl flush__Q26JASDsp8TChannelFv -/* 8029D6E8 48 00 01 A0 */ b lbl_8029D888 -lbl_8029D6EC: -/* 8029D6EC 80 7F 00 08 */ lwz r3, 8(r31) -/* 8029D6F0 54 60 07 BD */ rlwinm. r0, r3, 0, 0x1e, 0x1e -/* 8029D6F4 41 82 00 20 */ beq lbl_8029D714 -/* 8029D6F8 54 60 07 FA */ rlwinm r0, r3, 0, 0x1f, 0x1d -/* 8029D6FC 90 1F 00 08 */ stw r0, 8(r31) -/* 8029D700 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 8029D704 48 00 06 5D */ bl forceStop__Q26JASDsp8TChannelFv -/* 8029D708 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 8029D70C 48 00 08 81 */ bl flush__Q26JASDsp8TChannelFv -/* 8029D710 48 00 01 78 */ b lbl_8029D888 -lbl_8029D714: -/* 8029D714 80 9F 00 00 */ lwz r4, 0(r31) -/* 8029D718 2C 04 00 02 */ cmpwi r4, 2 -/* 8029D71C 41 82 01 6C */ beq lbl_8029D888 -/* 8029D720 54 60 07 FF */ clrlwi. r0, r3, 0x1f -/* 8029D724 41 82 00 B4 */ beq lbl_8029D7D8 -/* 8029D728 2C 04 00 01 */ cmpwi r4, 1 -/* 8029D72C 40 82 00 AC */ bne lbl_8029D7D8 -/* 8029D730 54 60 00 3C */ rlwinm r0, r3, 0, 0, 0x1e -/* 8029D734 90 1F 00 08 */ stw r0, 8(r31) -/* 8029D738 38 00 00 00 */ li r0, 0 -/* 8029D73C 90 1F 00 00 */ stw r0, 0(r31) -/* 8029D740 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 8029D744 48 00 05 61 */ bl init__Q26JASDsp8TChannelFv -/* 8029D748 81 9F 00 10 */ lwz r12, 0x10(r31) -/* 8029D74C 28 0C 00 00 */ cmplwi r12, 0 -/* 8029D750 41 82 00 1C */ beq lbl_8029D76C -/* 8029D754 38 60 00 01 */ li r3, 1 -/* 8029D758 80 9F 00 18 */ lwz r4, 0x18(r31) -/* 8029D75C 80 BF 00 14 */ lwz r5, 0x14(r31) -/* 8029D760 7D 89 03 A6 */ mtctr r12 -/* 8029D764 4E 80 04 21 */ bctrl -/* 8029D768 48 00 00 08 */ b lbl_8029D770 -lbl_8029D76C: -/* 8029D76C 38 60 00 00 */ li r3, 0 -lbl_8029D770: -/* 8029D770 2C 03 00 00 */ cmpwi r3, 0 -/* 8029D774 40 80 00 50 */ bge lbl_8029D7C4 -/* 8029D778 38 00 00 01 */ li r0, 1 -/* 8029D77C 90 1F 00 00 */ stw r0, 0(r31) -/* 8029D780 81 9F 00 10 */ lwz r12, 0x10(r31) -/* 8029D784 28 0C 00 00 */ cmplwi r12, 0 -/* 8029D788 41 82 00 1C */ beq lbl_8029D7A4 -/* 8029D78C 38 60 00 02 */ li r3, 2 -/* 8029D790 38 80 00 00 */ li r4, 0 -/* 8029D794 80 BF 00 14 */ lwz r5, 0x14(r31) -/* 8029D798 7D 89 03 A6 */ mtctr r12 -/* 8029D79C 4E 80 04 21 */ bctrl -/* 8029D7A0 48 00 00 08 */ b lbl_8029D7A8 -lbl_8029D7A4: -/* 8029D7A4 38 60 FF FF */ li r3, -1 -lbl_8029D7A8: -/* 8029D7A8 2C 03 00 00 */ cmpwi r3, 0 -/* 8029D7AC 40 80 00 0C */ bge lbl_8029D7B8 -/* 8029D7B0 38 00 FF FF */ li r0, -1 -/* 8029D7B4 B0 1F 00 04 */ sth r0, 4(r31) -lbl_8029D7B8: -/* 8029D7B8 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 8029D7BC 48 00 07 D1 */ bl flush__Q26JASDsp8TChannelFv -/* 8029D7C0 48 00 00 C8 */ b lbl_8029D888 -lbl_8029D7C4: -/* 8029D7C4 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 8029D7C8 48 00 05 19 */ bl playStart__Q26JASDsp8TChannelFv -/* 8029D7CC 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 8029D7D0 48 00 07 BD */ bl flush__Q26JASDsp8TChannelFv -/* 8029D7D4 48 00 00 B4 */ b lbl_8029D888 -lbl_8029D7D8: -/* 8029D7D8 2C 04 00 01 */ cmpwi r4, 1 -/* 8029D7DC 41 82 00 AC */ beq lbl_8029D888 -/* 8029D7E0 38 80 00 00 */ li r4, 0 -/* 8029D7E4 81 9F 00 10 */ lwz r12, 0x10(r31) -/* 8029D7E8 28 0C 00 00 */ cmplwi r12, 0 -/* 8029D7EC 41 82 00 20 */ beq lbl_8029D80C -/* 8029D7F0 38 60 00 00 */ li r3, 0 -/* 8029D7F4 80 9F 00 18 */ lwz r4, 0x18(r31) -/* 8029D7F8 80 BF 00 14 */ lwz r5, 0x14(r31) -/* 8029D7FC 7D 89 03 A6 */ mtctr r12 -/* 8029D800 4E 80 04 21 */ bctrl -/* 8029D804 38 80 00 01 */ li r4, 1 -/* 8029D808 48 00 00 08 */ b lbl_8029D810 -lbl_8029D80C: -/* 8029D80C 38 60 00 00 */ li r3, 0 -lbl_8029D810: -/* 8029D810 2C 03 00 00 */ cmpwi r3, 0 -/* 8029D814 40 80 00 58 */ bge lbl_8029D86C -/* 8029D818 38 00 00 01 */ li r0, 1 -/* 8029D81C 90 1F 00 00 */ stw r0, 0(r31) -/* 8029D820 81 9F 00 10 */ lwz r12, 0x10(r31) -/* 8029D824 28 0C 00 00 */ cmplwi r12, 0 -/* 8029D828 41 82 00 1C */ beq lbl_8029D844 -/* 8029D82C 38 60 00 02 */ li r3, 2 -/* 8029D830 38 80 00 00 */ li r4, 0 -/* 8029D834 80 BF 00 14 */ lwz r5, 0x14(r31) -/* 8029D838 7D 89 03 A6 */ mtctr r12 -/* 8029D83C 4E 80 04 21 */ bctrl -/* 8029D840 48 00 00 08 */ b lbl_8029D848 -lbl_8029D844: -/* 8029D844 38 60 FF FF */ li r3, -1 -lbl_8029D848: -/* 8029D848 2C 03 00 00 */ cmpwi r3, 0 -/* 8029D84C 40 80 00 0C */ bge lbl_8029D858 -/* 8029D850 38 00 FF FF */ li r0, -1 -/* 8029D854 B0 1F 00 04 */ sth r0, 4(r31) -lbl_8029D858: -/* 8029D858 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 8029D85C 48 00 04 E9 */ bl playStop__Q26JASDsp8TChannelFv -/* 8029D860 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 8029D864 48 00 07 29 */ bl flush__Q26JASDsp8TChannelFv -/* 8029D868 48 00 00 20 */ b lbl_8029D888 -lbl_8029D86C: -/* 8029D86C 80 7F 00 0C */ lwz r3, 0xc(r31) -/* 8029D870 38 03 00 01 */ addi r0, r3, 1 -/* 8029D874 90 1F 00 0C */ stw r0, 0xc(r31) -/* 8029D878 54 80 06 3F */ clrlwi. r0, r4, 0x18 -/* 8029D87C 41 82 00 0C */ beq lbl_8029D888 -/* 8029D880 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 8029D884 48 00 07 09 */ bl flush__Q26JASDsp8TChannelFv -lbl_8029D888: -/* 8029D888 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8029D88C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029D890 7C 08 03 A6 */ mtlr r0 -/* 8029D894 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029D898 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTaskThread/__dt__13JASTaskThreadFv.s b/asm/JSystem/JAudio2/JASTaskThread/__dt__13JASTaskThreadFv.s deleted file mode 100644 index 731ea14c2c..0000000000 --- a/asm/JSystem/JAudio2/JASTaskThread/__dt__13JASTaskThreadFv.s +++ /dev/null @@ -1,85 +0,0 @@ -lbl_8028F724: -/* 8028F724 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8028F728 7C 08 02 A6 */ mflr r0 -/* 8028F72C 90 01 00 34 */ stw r0, 0x34(r1) -/* 8028F730 39 61 00 30 */ addi r11, r1, 0x30 -/* 8028F734 48 0D 2A A1 */ bl _savegpr_27 -/* 8028F738 7C 7E 1B 79 */ or. r30, r3, r3 -/* 8028F73C 7C 9F 23 78 */ mr r31, r4 -/* 8028F740 41 82 00 F4 */ beq lbl_8028F834 -/* 8028F744 3C 60 80 3C */ lis r3, __vt__13JASTaskThread@ha /* 0x803C5B58@ha */ -/* 8028F748 38 03 5B 58 */ addi r0, r3, __vt__13JASTaskThread@l /* 0x803C5B58@l */ -/* 8028F74C 90 1E 00 00 */ stw r0, 0(r30) -lbl_8028F750: -/* 8028F750 38 7E 00 30 */ addi r3, r30, 0x30 -/* 8028F754 38 81 00 0C */ addi r4, r1, 0xc -/* 8028F758 38 A0 00 00 */ li r5, 0 -/* 8028F75C 48 0A F3 61 */ bl OSReceiveMessage -/* 8028F760 34 01 00 10 */ addic. r0, r1, 0x10 -/* 8028F764 41 82 00 08 */ beq lbl_8028F76C -/* 8028F768 90 61 00 10 */ stw r3, 0x10(r1) -lbl_8028F76C: -/* 8028F76C 83 81 00 0C */ lwz r28, 0xc(r1) -/* 8028F770 80 01 00 10 */ lwz r0, 0x10(r1) -/* 8028F774 2C 00 00 00 */ cmpwi r0, 0 -/* 8028F778 41 82 00 A0 */ beq lbl_8028F818 -/* 8028F77C 48 00 13 4D */ bl getCommandHeap__9JASKernelFv -/* 8028F780 7C 7D 1B 78 */ mr r29, r3 -/* 8028F784 93 A1 00 08 */ stw r29, 8(r1) -/* 8028F788 48 0A F8 B9 */ bl OSLockMutex -/* 8028F78C 80 7D 00 18 */ lwz r3, 0x18(r29) -/* 8028F790 3B 60 00 00 */ li r27, 0 -/* 8028F794 48 00 00 70 */ b lbl_8028F804 -lbl_8028F798: -/* 8028F798 38 80 00 00 */ li r4, 0 -/* 8028F79C 38 03 00 0C */ addi r0, r3, 0xc -/* 8028F7A0 7C 00 E0 40 */ cmplw r0, r28 -/* 8028F7A4 41 81 00 14 */ bgt lbl_8028F7B8 -/* 8028F7A8 38 03 04 0C */ addi r0, r3, 0x40c -/* 8028F7AC 7C 1C 00 40 */ cmplw r28, r0 -/* 8028F7B0 40 80 00 08 */ bge lbl_8028F7B8 -/* 8028F7B4 38 80 00 01 */ li r4, 1 -lbl_8028F7B8: -/* 8028F7B8 54 80 06 3F */ clrlwi. r0, r4, 0x18 -/* 8028F7BC 41 82 00 40 */ beq lbl_8028F7FC -/* 8028F7C0 80 83 00 08 */ lwz r4, 8(r3) -/* 8028F7C4 38 04 FF FF */ addi r0, r4, -1 -/* 8028F7C8 90 03 00 08 */ stw r0, 8(r3) -/* 8028F7CC 80 1D 00 18 */ lwz r0, 0x18(r29) -/* 8028F7D0 7C 03 00 40 */ cmplw r3, r0 -/* 8028F7D4 41 82 00 1C */ beq lbl_8028F7F0 -/* 8028F7D8 80 03 00 08 */ lwz r0, 8(r3) -/* 8028F7DC 28 00 00 00 */ cmplwi r0, 0 -/* 8028F7E0 40 82 00 10 */ bne lbl_8028F7F0 -/* 8028F7E4 83 83 00 00 */ lwz r28, 0(r3) -/* 8028F7E8 48 03 F5 55 */ bl __dl__FPv -/* 8028F7EC 93 9B 00 00 */ stw r28, 0(r27) -lbl_8028F7F0: -/* 8028F7F0 80 61 00 08 */ lwz r3, 8(r1) -/* 8028F7F4 48 0A F9 29 */ bl OSUnlockMutex -/* 8028F7F8 4B FF FF 58 */ b lbl_8028F750 -lbl_8028F7FC: -/* 8028F7FC 7C 7B 1B 78 */ mr r27, r3 -/* 8028F800 80 63 00 00 */ lwz r3, 0(r3) -lbl_8028F804: -/* 8028F804 28 03 00 00 */ cmplwi r3, 0 -/* 8028F808 40 82 FF 90 */ bne lbl_8028F798 -/* 8028F80C 80 61 00 08 */ lwz r3, 8(r1) -/* 8028F810 48 0A F9 0D */ bl OSUnlockMutex -/* 8028F814 4B FF FF 3C */ b lbl_8028F750 -lbl_8028F818: -/* 8028F818 7F C3 F3 78 */ mr r3, r30 -/* 8028F81C 38 80 00 00 */ li r4, 0 -/* 8028F820 48 04 1F 39 */ bl __dt__9JKRThreadFv -/* 8028F824 7F E0 07 35 */ extsh. r0, r31 -/* 8028F828 40 81 00 0C */ ble lbl_8028F834 -/* 8028F82C 7F C3 F3 78 */ mr r3, r30 -/* 8028F830 48 03 F5 0D */ bl __dl__FPv -lbl_8028F834: -/* 8028F834 7F C3 F3 78 */ mr r3, r30 -/* 8028F838 39 61 00 30 */ addi r11, r1, 0x30 -/* 8028F83C 48 0D 29 E5 */ bl _restgpr_27 -/* 8028F840 80 01 00 34 */ lwz r0, 0x34(r1) -/* 8028F844 7C 08 03 A6 */ mtlr r0 -/* 8028F848 38 21 00 30 */ addi r1, r1, 0x30 -/* 8028F84C 4E 80 00 20 */ blr diff --git a/include/JSystem/JAudio2/JASAramStream.h b/include/JSystem/JAudio2/JASAramStream.h index e01294c1c5..c297ea7802 100644 --- a/include/JSystem/JAudio2/JASAramStream.h +++ b/include/JSystem/JAudio2/JASAramStream.h @@ -1,8 +1,10 @@ #ifndef JASARAMSTREAM_H #define JASARAMSTREAM_H +#include "JSystem/JAudio2/JASTaskThread.h" #include "dolphin/os/OSMessage.h" #include "JSystem/JUtility/JUTAssert.h" +#include "dolphin/dvd.h" class JASChannel; @@ -14,31 +16,71 @@ namespace JASDsp { class JASAramStream { public: + typedef void (*StreamCallback)(u32, JASAramStream*, void*); + + enum CallbackType { + /* 0 */ CB_START, + /* 1 */ CB_STOP, + }; + + // Used internally for passing data to task functions + struct TaskData { + /* 0x0 */ JASAramStream* stream; + /* 0x4 */ u32 field_0x4; + /* 0x8 */ int field_0x8; + }; + + struct Header { + /* 0x00 */ u32 tag; + /* 0x04 */ u8 field_0x4[5]; + /* 0x09 */ u8 format; + /* 0x0A */ u8 bits; + /* 0x0C */ u16 channels; + /* 0x0E */ u16 loop; + /* 0x10 */ int field_0x10; + /* 0x14 */ u8 field_0x14[4]; + /* 0x18 */ int loop_start; + /* 0x1C */ int loop_end; + /* 0x20 */ u32 block_size; + /* 0x24 */ u8 field_0x24[4]; + /* 0x28 */ u8 field_0x28; + /* 0x29 */ u8 field_0x29[0x17]; + }; // Size: 0x40 + + struct BlockHeader { + /* 0x00 */ u32 tag; + /* 0x04 */ u32 field_0x4; + /* 0x08 */ struct { + s16 field_0x0; + s16 field_0x2; + } field_0x8[6]; + }; // Size: 0x20 + /* 8029631C */ static void initSystem(u32, u32); /* 802963A8 */ JASAramStream(); - /* 8029649C */ void init(u32, u32, void (*)(u32, JASAramStream*, void*), void*); + /* 8029649C */ void init(u32, u32, StreamCallback, void*); /* 8029655C */ bool prepare(s32, int); /* 80296618 */ bool start(); - /* 8029664C */ void stop(u16); - /* 80296684 */ void pause(bool); - /* 802966CC */ void cancel(); - /* 80296710 */ void getBlockSamples() const; - /* 8029673C */ void headerLoadTask(void*); - /* 8029676C */ void firstLoadTask(void*); - /* 80296848 */ void loadToAramTask(void*); - /* 80296868 */ void finishTask(void*); - /* 802968C8 */ void prepareFinishTask(void*); - /* 80296920 */ void headerLoad(u32, int); - /* 80296AE8 */ void load(); - /* 80296D74 */ void channelProcCallback(void*); - /* 80296D94 */ void dvdErrorCheck(void*); - /* 80296DF0 */ void channelCallback(u32, JASChannel*, JASDsp::TChannel*, void*); + /* 8029664C */ bool stop(u16); + /* 80296684 */ bool pause(bool); + /* 802966CC */ bool cancel(); + /* 80296710 */ u32 getBlockSamples() const; + /* 8029673C */ static void headerLoadTask(void*); + /* 8029676C */ static void firstLoadTask(void*); + /* 80296848 */ static void loadToAramTask(void*); + /* 80296868 */ static void finishTask(void*); + /* 802968C8 */ static void prepareFinishTask(void*); + /* 80296920 */ bool headerLoad(u32, int); + /* 80296AE8 */ bool load(); + /* 80296D74 */ static s32 channelProcCallback(void*); + /* 80296D94 */ static s32 dvdErrorCheck(void*); + /* 80296DF0 */ static void channelCallback(u32, JASChannel*, JASDsp::TChannel*, void*); /* 80296E2C */ void updateChannel(u32, JASChannel*, JASDsp::TChannel*); - /* 802974AC */ void channelProc(); + /* 802974AC */ s32 channelProc(); /* 80297658 */ void channelStart(); /* 80297870 */ void channelStop(u16); - void setPitch(f32 pitch) { field_0x178 = pitch; } + void setPitch(f32 pitch) { mPitch = pitch; } void setVolume(f32 volume) { for (int i = 0; i < 6; i++) { mChannelVolume[i] = volume; @@ -53,7 +95,7 @@ public: void setFxmix(f32 fxMix) { for (int i = 0; i < 6; i++) { - mchannelFxMix[i] = fxMix; + mChannelFxMix[i] = fxMix; } } @@ -75,7 +117,7 @@ public: void setChannelFxmix(int channel, f32 fxMix) { JUT_ASSERT(302, channel < CHANNEL_MAX); - mchannelFxMix[channel] = fxMix; + mChannelFxMix[channel] = fxMix; } void setChannelDolby(int channel, f32 dolby) { @@ -83,66 +125,61 @@ public: mChannelDolby[channel] = dolby; } + static u32 getBlockSize() { return sBlockSize; } + /* 0x000 */ OSMessageQueue field_0x000; /* 0x020 */ OSMessageQueue field_0x020; /* 0x040 */ void* field_0x040[16]; /* 0x080 */ void* field_0x080[4]; - /* 0x090 */ JASChannel* field_0x090[6]; - /* 0x0A8 */ int field_0x0a8; - /* 0x0AC */ u8 field_0x0ac; - /* 0x0AD */ u8 field_0x0ad; + /* 0x090 */ JASChannel* mChannels[CHANNEL_MAX]; + /* 0x0A8 */ JASChannel* field_0x0a8; + /* 0x0AC */ bool field_0x0ac; + /* 0x0AD */ bool field_0x0ad; /* 0x0AE */ u8 field_0x0ae; - /* 0x0AF */ u8 field_0x0AF[0x0B0 - 0x0AF]; /* 0x0B0 */ int field_0x0b0; /* 0x0B4 */ int field_0x0b4; - /* 0x0B8 */ int field_0x0b8; + /* 0x0B8 */ u32 field_0x0b8; /* 0x0BC */ int field_0x0bc; - /* 0x0C0 */ u8 field_0x0c0; - /* 0x0C1 */ u8 field_0x0C1[0x0C4 - 0x0C1]; - /* 0x0C4 */ int field_0x0c4; + /* 0x0C0 */ bool field_0x0c0; + /* 0x0C4 */ u32 field_0x0c4; /* 0x0C8 */ f32 field_0x0c8; - /* 0x0CC */ u8 field_0x0CC[0x108 - 0x0CC]; - /* 0x108 */ int field_0x108; + /* 0x0CC */ DVDFileInfo mDvdFileInfo; + /* 0x108 */ u32 field_0x108; /* 0x10C */ int field_0x10c; - /* 0x110 */ int field_0x110; + /* 0x110 */ u32 mBlock; /* 0x114 */ u8 field_0x114; - /* 0x115 */ u8 field_0x115[0x118 - 0x115]; - /* 0x118 */ int field_0x118; + /* 0x118 */ u32 field_0x118; /* 0x11C */ int field_0x11c; /* 0x120 */ int field_0x120; /* 0x124 */ int field_0x124; - /* 0x128 */ short field_0x128; - /* 0x12A */ u8 field_0x12A[0x12C - 0x12A]; + /* 0x128 */ u16 field_0x128; /* 0x12C */ int field_0x12c; - /* 0x130 */ short field_0x130[CHANNEL_MAX]; - /* 0x13C */ short field_0x13c[CHANNEL_MAX]; + /* 0x130 */ s16 field_0x130[CHANNEL_MAX]; + /* 0x13C */ s16 field_0x13c[CHANNEL_MAX]; /* 0x148 */ int field_0x148; - /* 0x14C */ int field_0x14c; - /* 0x150 */ void* field_0x150; - /* 0x154 */ int field_0x154; - /* 0x158 */ short field_0x158; - /* 0x15A */ short field_0x15a; - /* 0x15C */ int field_0x15c; - /* 0x160 */ int field_0x160; - /* 0x164 */ int field_0x164; - /* 0x168 */ u8 field_0x168; - /* 0x169 */ u8 field_0x169[0x16C - 0x169]; - /* 0x16C */ int field_0x16c; - /* 0x170 */ int field_0x170; - /* 0x174 */ f32 field_0x174; - /* 0x178 */ f32 field_0x178; - /* 0x17C */ float mChannelVolume[CHANNEL_MAX]; - /* 0x194 */ float mChannelPan[CHANNEL_MAX]; - /* 0x1AC */ float mchannelFxMix[CHANNEL_MAX]; - /* 0x1C4 */ float mChannelDolby[CHANNEL_MAX]; - /* 0x1DC */ short field_0x1dc[CHANNEL_MAX]; + /* 0x14C */ u32 field_0x14c; + /* 0x150 */ StreamCallback mCallback; + /* 0x154 */ void* mCallbackData; + /* 0x158 */ u16 field_0x158; + /* 0x15A */ u16 mChannelNum; + /* 0x15C */ u32 mBufCount; + /* 0x160 */ u32 field_0x160; + /* 0x164 */ u32 field_0x164; + /* 0x168 */ bool mLoop; + /* 0x16C */ u32 mLoopStart; + /* 0x170 */ u32 mLoopEnd; + /* 0x174 */ f32 mVolume; + /* 0x178 */ f32 mPitch; + /* 0x17C */ f32 mChannelVolume[CHANNEL_MAX]; + /* 0x194 */ f32 mChannelPan[CHANNEL_MAX]; + /* 0x1AC */ f32 mChannelFxMix[CHANNEL_MAX]; + /* 0x1C4 */ f32 mChannelDolby[CHANNEL_MAX]; + /* 0x1DC */ u16 field_0x1dc[CHANNEL_MAX]; - u32 getBlockSize() { return sBlockSize; } - - static u8 sLoadThread[4]; - static u8 sReadBuffer[4]; + static JASTaskThread* sLoadThread; + static u8* sReadBuffer; static u32 sBlockSize; - static u8 sChannelMax[4]; + static u32 sChannelMax; }; #endif /* JASARAMSTREAM_H */ diff --git a/include/JSystem/JAudio2/JASBasicWaveBank.h b/include/JSystem/JAudio2/JASBasicWaveBank.h index d923124233..214119284f 100644 --- a/include/JSystem/JAudio2/JASBasicWaveBank.h +++ b/include/JSystem/JAudio2/JASBasicWaveBank.h @@ -80,7 +80,7 @@ struct JASBasicWaveBank : public JASWaveBank { /* 0x24 */ u16 mHandleCount; /* 0x26 */ u16 mGroupCount; - static u8 mNoLoad[4 + 4 /* padding */]; + static u32 mNoLoad; }; #endif /* JASBASICWAVEBANK_H */ diff --git a/include/JSystem/JAudio2/JASCalc.h b/include/JSystem/JAudio2/JASCalc.h index 1a63d505b6..ef2982f8c0 100644 --- a/include/JSystem/JAudio2/JASCalc.h +++ b/include/JSystem/JAudio2/JASCalc.h @@ -21,6 +21,16 @@ struct JASCalc { return x; } */ + static f32 clamp01(f32 i_value) { + if (i_value <= 0.0f) { + return 0.0f; + } + if (i_value >= 1.0f) { + return 1.0f; + } + return i_value; + } + f32 fake1(); f32 fake2(long x); f32 fake3(); diff --git a/include/JSystem/JAudio2/JASChannel.h b/include/JSystem/JAudio2/JASChannel.h index a64fb5fc37..e9ef6d3e04 100644 --- a/include/JSystem/JAudio2/JASChannel.h +++ b/include/JSystem/JAudio2/JASChannel.h @@ -33,45 +33,73 @@ public: mDolby = 0.0f; } - f32 mVolume; - f32 mPitch; - f32 field_0x8; - f32 mPan; - f32 mFxMix; - f32 mDolby; + /* 0x00 */ f32 mVolume; + /* 0x04 */ f32 mPitch; + /* 0x08 */ f32 field_0x8; + /* 0x0C */ f32 mPan; + /* 0x10 */ f32 mFxMix; + /* 0x14 */ f32 mDolby; }; class JASChannel : public JASPoolAllocObject_MultiThreaded { public: - struct PanVector {}; + typedef void (*Callback)(u32, JASChannel*, JASDsp::TChannel*, void*); - /* 8029A800 */ JASChannel(void (*)(u32, JASChannel*, JASDsp::TChannel*, void*), void*); + enum CallbackType { + /* 0 */ CB_PLAY, + /* 1 */ CB_START, + /* 2 */ CB_STOP, + /* 3 */ CB_TIMER, + }; + + enum Status { + /* 0 */ STATUS_INACTIVE, + /* 1 */ STATUS_ACTIVE, + /* 2 */ STATUS_RELEASE, + }; + + struct PanVector { + /* 0x0 */ f32 mSound; + /* 0x4 */ f32 mEffect; + /* 0x8 */ f32 mChannel; + }; + + union MixConfig { + u16 whole; + struct { + u8 upper; + u8 lower0 : 4; + u8 lower1 : 4; + } parts; + }; + + /* 8029A800 */ JASChannel(Callback, void*); /* 8029A918 */ ~JASChannel(); /* 8029A9F0 */ int play(); - /* 8029AA60 */ void playForce(); + /* 8029AA60 */ int playForce(); /* 8029AAD0 */ void release(u16); /* 8029AB64 */ void setOscInit(u32, JASOscillator::Data const*); /* 8029AB98 */ void setMixConfig(u32, u16); - /* 8029ABA8 */ void calcEffect(JASChannel::PanVector const*); - /* 8029ABC0 */ void calcPan(JASChannel::PanVector const*); + /* 8029ABA8 */ static f32 calcEffect(JASChannel::PanVector const*); + /* 8029ABC0 */ static f32 calcPan(JASChannel::PanVector const*); /* 8029ABEC */ void effectOsc(u32, JASOscillator::EffectParams*); /* 8029ACD4 */ void setKeySweepTarget(s32, u32); /* 8029AD38 */ void updateEffectorParam(JASDsp::TChannel*, u16*, JASOscillator::EffectParams const&); - /* 8029AF78 */ static void dspUpdateCallback(u32, JASDsp::TChannel*, void*); - /* 8029B004 */ void initialUpdateDSPChannel(JASDsp::TChannel*); - /* 8029B324 */ void updateDSPChannel(JASDsp::TChannel*); + /* 8029AF78 */ static s32 dspUpdateCallback(u32, JASDsp::TChannel*, void*); + /* 8029B004 */ s32 initialUpdateDSPChannel(JASDsp::TChannel*); + /* 8029B324 */ s32 updateDSPChannel(JASDsp::TChannel*); /* 8029B6A0 */ void updateAutoMixer(JASDsp::TChannel*, f32, f32, f32, f32); /* 8029B7D8 */ void updateMixer(f32, f32, f32, f32, u16*); /* 8029BBFC */ void free(); /* 8029BC0C */ static void initBankDisposeMsgQueue(); /* 8029BC48 */ static void receiveBankDisposeMsg(); - /* 8029BCC0 */ void checkBankDispose() const; + /* 8029BCC0 */ bool checkBankDispose() const; void setPauseFlag(bool param_0) { mPauseFlag = param_0; } void setUpdateTimer(u32 param_0) { mUpdateTimer = param_0; } void setBankDisposeID(const void* param_0) { mBankDisposeID = param_0; } - void setDirectRelease(u16 param_0) { field_0x1c[0].setDirectRelease(param_0); } + void setDirectRelease(u16 param_0) { mOscillators[0].setDirectRelease(param_0); } void setVibrate(f32 param_0, f32 param_1) { mVibrate.setDepth(param_0); mVibrate.setPitch(param_1); @@ -84,34 +112,35 @@ public: void setTremoloDelay(u16 param_0) { mTremolo.setDelay(param_0); } void setPriority(u16 param_0) { mPriority = param_0; } void setParams(const JASChannelParams& param_0) { mParams = param_0; } - void setInitVolume(f32 param_0) { field_0xb4.mVolume = param_0; } - void setInitFxmix(f32 param_0) { field_0xb4.mFxMix = param_0; } - void setInitPitch(f32 param_0) { field_0xb4.mPitch = param_0; } - void setInitPan(f32 param_0) { field_0xb4.mPan = param_0; } - void setInitDolby(f32 param_0) { field_0xb4.mDolby = param_0; } + void setInitVolume(f32 param_0) { mSoundParams.mVolume = param_0; } + void setInitFxmix(f32 param_0) { mSoundParams.mFxMix = param_0; } + void setInitPitch(f32 param_0) { mSoundParams.mPitch = param_0; } + void setInitPan(f32 param_0) { mSoundParams.mPan = param_0; } + void setInitDolby(f32 param_0) { mSoundParams.mDolby = param_0; } void setKey(s32 param_0) { mKey = param_0; } void setVelocity(u32 param_0) { mVelocity = param_0; } void setSkipSamples(u32 param_0) { mSkipSamples = param_0; } + bool isDolbyMode() { return mMixConfig[0].whole == 0xffff; } /* 0x00 */ int mStatus; /* 0x04 */ bool mPauseFlag; /* 0x08 */ JASDSPChannel* mDspCh; - /* 0x0C */ void* field_0xc; - /* 0x10 */ void* field_0x10; + /* 0x0C */ Callback mCallback; + /* 0x10 */ void* mCallbackData; /* 0x14 */ u32 mUpdateTimer; /* 0x18 */ const void* mBankDisposeID; - /* 0x1C */ JASOscillator field_0x1c[2]; + /* 0x1C */ JASOscillator mOscillators[2]; /* 0x5C */ JASLfo mVibrate; /* 0x74 */ JASLfo mTremolo; - /* 0x8C */ u16 field_0x8c[6]; - /* 0x98 */ short mPriority; + /* 0x8C */ MixConfig mMixConfig[6]; + /* 0x98 */ u16 mPriority; /* 0x9C */ JASChannelParams mParams; - /* 0xB4 */ JASSoundParams field_0xb4; + /* 0xB4 */ JASSoundParams mSoundParams; /* 0xC8 */ s16 mKey; /* 0xCA */ u16 mVelocity; - /* 0xCC */ f32 field_0xcc; - /* 0xD0 */ f32 field_0xd0; - /* 0xD4 */ u32 field_0xd4; + /* 0xCC */ f32 mKeySweep; + /* 0xD0 */ f32 mKeySweepTarget; + /* 0xD4 */ u32 mKeySweepCount; /* 0xD8 */ u32 mSkipSamples; struct { u32 field_0x0; @@ -121,8 +150,8 @@ public: static OSMessageQueue sBankDisposeMsgQ; static OSMessage sBankDisposeMsg[16]; - static u32 sBankDisposeList[16]; - static u32 sBankDisposeListSize; + static OSMessage sBankDisposeList[16]; + static int sBankDisposeListSize; }; #endif /* JASCHANNEL_H */ diff --git a/include/JSystem/JAudio2/JASDSPChannel.h b/include/JSystem/JAudio2/JASDSPChannel.h index 667152a2c3..16ab05e36c 100644 --- a/include/JSystem/JAudio2/JASDSPChannel.h +++ b/include/JSystem/JAudio2/JASDSPChannel.h @@ -1,5 +1,49 @@ #ifndef JASDSPCHANNEL_H #define JASDSPCHANNEL_H +#include "JSystem/JAudio2/JASDSPInterface.h" + +struct JASDSPChannel { + typedef s32 (*Callback)(u32, JASDsp::TChannel*, void*); + + enum Status { + /* 0 */ STATUS_ACTIVE, + /* 1 */ STATUS_INACTIVE, + /* 2 */ STATUS_DROP, + }; + + enum CallbackType { + /* 0 */ CB_PLAY, + /* 1 */ CB_START, + /* 2 */ CB_STOP, + /* 3 */ CB_DROP, + }; + + /* 8029D2F4 */ JASDSPChannel(); + /* 8029D320 */ void free(); + /* 8029D330 */ void start(); + /* 8029D340 */ void drop(); + /* 8029D534 */ void setPriority(u8); + /* 8029D65C */ void updateProc(); + + /* 8029D3C8 */ static void initAll(); + /* 8029D44C */ static JASDSPChannel* alloc(u8, Callback, void*); + /* 8029D4BC */ static JASDSPChannel* allocForce(u8, Callback, void*); + /* 8029D540 */ static JASDSPChannel* getLowestChannel(int); + /* 8029D5D0 */ static JASDSPChannel* getLowestActiveChannel(); + /* 8029D89C */ static void updateAll(); + /* 8029D910 */ static int killActiveChannel(); + /* 8029D948 */ static JASDSPChannel* getHandle(u32); + + static JASDSPChannel* sDspChannels; + + /* 0x00 */ s32 mStatus; + /* 0x04 */ s16 mPriority; + /* 0x08 */ u32 mFlags; + /* 0x0C */ u32 field_0xc; + /* 0x10 */ Callback mCallback; + /* 0x14 */ void* mCallbackData; + /* 0x18 */ JASDsp::TChannel* mChannel; +}; // Size: 0x1C #endif /* JASDSPCHANNEL_H */ diff --git a/include/JSystem/JAudio2/JASDSPInterface.h b/include/JSystem/JAudio2/JASDSPInterface.h index bae5e430ac..e27db61292 100644 --- a/include/JSystem/JAudio2/JASDSPInterface.h +++ b/include/JSystem/JAudio2/JASDSPInterface.h @@ -57,7 +57,7 @@ namespace JASDsp { /* 0x002 */ u16 mIsFinished; /* 0x004 */ u16 mPitch; /* 0x006 */ short field_0x006; - /* 0x008 */ short field_0x008; + /* 0x008 */ u16 field_0x008; /* 0x00A */ u8 field_0x00A[0x00C - 0x00A]; /* 0x00C */ s16 mPauseFlag; /* 0x00E */ short field_0x00E; @@ -71,7 +71,7 @@ namespace JASDsp { /* 0x05A */ u8 field_0x05A[0x060 - 0x05A]; /* 0x060 */ short field_0x060; /* 0x062 */ u8 field_0x062[0x064 - 0x062]; - /* 0x064 */ short field_0x064; + /* 0x064 */ u16 field_0x064; /* 0x066 */ short field_0x066; /* 0x068 */ int field_0x068; /* 0x06C */ u8 field_0x06C[0x070 - 0x06C]; diff --git a/include/JSystem/JAudio2/JASHeapCtrl.h b/include/JSystem/JAudio2/JASHeapCtrl.h index 04cf1ee8f2..f601cfb171 100644 --- a/include/JSystem/JAudio2/JASHeapCtrl.h +++ b/include/JSystem/JAudio2/JASHeapCtrl.h @@ -33,19 +33,6 @@ public: /* 0x40 */ JASHeap* field_0x40; }; -namespace JASKernel { - /* 802909B8 */ void setupRootHeap(JKRSolidHeap*, u32); - /* 80290AC0 */ JKRHeap* getSystemHeap(); - /* 80290AC8 */ void* getCommandHeap(); - /* 80290AD0 */ void setupAramHeap(u32, u32); - /* 80290B08 */ JASHeap* getAramHeap(); - - extern u8 audioAramHeap[68]; - extern u32 sAramBase; - extern JKRHeap* sSystemHeap; - extern void* sCommandHeap; -}; - struct JASGenericMemPool { /* 80290848 */ JASGenericMemPool(); /* 80290860 */ ~JASGenericMemPool(); @@ -185,13 +172,13 @@ public: } void free(void* ptr) { - T::Lock lock(&((JASMemChunkPool*)ptr)->mMutex); - MemoryChunk* chunk = ((JASMemChunkPool*)ptr)->field_0x18; + T::Lock lock(&mMutex); + MemoryChunk* chunk = field_0x18; MemoryChunk* prevChunk = NULL; while (chunk != NULL) { - if (chunk->checkArea(this)) { + if (chunk->checkArea(ptr)) { chunk->free(); - if (chunk != ((JASMemChunkPool*)ptr)->field_0x18 && chunk->isEmpty()) { + if (chunk != field_0x18 && chunk->isEmpty()) { MemoryChunk* nextChunk = chunk->getNextChunk(); delete chunk; prevChunk->setNextChunk(nextChunk); @@ -207,6 +194,19 @@ public: /* 0x18 */ MemoryChunk* field_0x18; }; +namespace JASKernel { + /* 802909B8 */ void setupRootHeap(JKRSolidHeap*, u32); + /* 80290AC0 */ JKRHeap* getSystemHeap(); + /* 80290AC8 */ JASMemChunkPool<1024, JASThreadingModel::ObjectLevelLockable>* getCommandHeap(); + /* 80290AD0 */ void setupAramHeap(u32, u32); + /* 80290B08 */ JASHeap* getAramHeap(); + + extern u8 audioAramHeap[68]; + extern u32 sAramBase; + extern JKRHeap* sSystemHeap; + extern JASMemChunkPool<1024, JASThreadingModel::ObjectLevelLockable>* sCommandHeap; +}; + template class JASPoolAllocObject { public: diff --git a/include/JSystem/JAudio2/JASOscillator.h b/include/JSystem/JAudio2/JASOscillator.h index f9ad8ccfdf..0da67d0790 100644 --- a/include/JSystem/JAudio2/JASOscillator.h +++ b/include/JSystem/JAudio2/JASOscillator.h @@ -11,10 +11,28 @@ struct JASOscillator { /* 0x4 */ s16 _4; }; - struct EffectParams {}; + struct EffectParams { + EffectParams() { + mVolume = 1.0f; + mPitch = 1.0f; + mPan = 0.5f; + mFxMix = 0.0f; + mDolby = 0.0f; + _14 = 1.0f; + _18 = 1.0f; + } + + /* 0x00 */ f32 mVolume; + /* 0x04 */ f32 mPitch; + /* 0x08 */ f32 mPan; + /* 0x0C */ f32 mFxMix; + /* 0x10 */ f32 mDolby; + /* 0x14 */ f32 _14; + /* 0x18 */ f32 _18; + }; struct Data { - /* 0x00 */ u32 _00; + /* 0x00 */ u32 mTarget; /* 0x04 */ f32 _04; /* 0x08 */ const Point* mTable; /* 0x0C */ const Point* _0C; @@ -22,6 +40,16 @@ struct JASOscillator { /* 0x14 */ f32 _14; }; + enum Target { + /* 0 */ TARGET_VOLUME, + /* 1 */ TARGET_PITCH, + /* 2 */ TARGET_PAN, + /* 3 */ TARGET_FXMIX, + /* 4 */ TARGET_DOLBY, + /* 5 */ TARGET_5, + /* 6 */ TARGET_6, + }; + JASOscillator(); void initStart(const Data*); @@ -32,9 +60,11 @@ struct JASOscillator { void updateCurrentValue(f32 param_0); void setDirectRelease(u16 param_0) { mDirectRelease = param_0; } - void stop() { - _1C = 0; - } + void stop() { _1C = 0; } + bool isValid() { return mData != NULL; } + bool isStop() { return _1C == 0; } + bool isRelease() { return _1C == 3 || _1C == 4; } + u32 getTarget() { return mData->mTarget; } /* 0x00 */ const Data* mData; /* 0x04 */ f32 _04; diff --git a/include/JSystem/JAudio2/JASTaskThread.h b/include/JSystem/JAudio2/JASTaskThread.h index 976f89ee1f..15eef47ce8 100644 --- a/include/JSystem/JAudio2/JASTaskThread.h +++ b/include/JSystem/JAudio2/JASTaskThread.h @@ -25,7 +25,7 @@ public: /* 8028FE88 */ void pause(bool); /* 8028F724 */ virtual ~JASTaskThread(); - /* 8028FD4C */ virtual void run(); + /* 8028FD4C */ virtual void* run(); /* 0x7C */ OSThreadQueue mpThreadQueue; /* 0x84 */ bool field_0x84; diff --git a/include/JSystem/JAudio2/JASWaveInfo.h b/include/JSystem/JAudio2/JASWaveInfo.h index 3a806c427d..583e5905cd 100644 --- a/include/JSystem/JAudio2/JASWaveInfo.h +++ b/include/JSystem/JAudio2/JASWaveInfo.h @@ -6,7 +6,7 @@ struct JASWaveInfo { JASWaveInfo() { field_0x01 = 0x3c; - field_0x20 = one; + field_0x20 = &one; } /* 0x00 */ u8 field_0x00; @@ -20,9 +20,9 @@ struct JASWaveInfo { /* 0x18 */ int field_0x18; /* 0x1C */ s16 field_0x1c; /* 0x1E */ s16 field_0x1e; - /* 0x20 */ const void* field_0x20; + /* 0x20 */ const u32* field_0x20; - static u32 one[1 + 1 /* padding */]; + static u32 one; }; #endif /* JASWAVEINFO_H */ \ No newline at end of file diff --git a/include/JSystem/JGeometry.h b/include/JSystem/JGeometry.h index 497af79900..29eabce378 100644 --- a/include/JSystem/JGeometry.h +++ b/include/JSystem/JGeometry.h @@ -444,6 +444,11 @@ struct TUtil { } }; +template<> +struct TUtil { + static inline f32 PI() { return 3.1415927f; } +}; + template<> struct TUtil { static inline double epsilon() { return 32.0f * FLT_EPSILON; } diff --git a/include/JSystem/JMath/JMATrigonometric.h b/include/JSystem/JMath/JMATrigonometric.h index a8b34551d7..48107ab04d 100644 --- a/include/JSystem/JMath/JMATrigonometric.h +++ b/include/JSystem/JMath/JMATrigonometric.h @@ -4,6 +4,14 @@ #include "dolphin/types.h" #include "utility.h" +template +struct TAngleConstant_; + +template<> +struct TAngleConstant_ { + static inline f32 RADIAN_DEG360() { return 6.2831855f; } +}; + struct TSinCosTable { std::pair table[0x2000]; @@ -30,6 +38,13 @@ struct TSinCosTable { } return table[(u16)(22.755556106567383f * degree) & 0x1fffU].second; } + + inline f32 sinRadian(f32 radian) { + if (radian < 0.0f) { + return -table[(u16)(-8192.0f / TAngleConstant_::RADIAN_DEG360() * radian) & 0x1fffU].first; + } + return table[(u16)(8192.0f / TAngleConstant_::RADIAN_DEG360() * radian) & 0x1fffU].first; + } }; struct TAtanTable { @@ -74,4 +89,8 @@ inline f32 JMACosDegree(f32 degree) { return JMath::sincosTable_.cosDegree(degree); } +inline f32 JMASinRadian(f32 radian) { + return JMath::sincosTable_.sinRadian(radian); +} + #endif /* JMATRIGONOMETRIC_H */ diff --git a/libs/JSystem/JAudio2/JASAramStream.cpp b/libs/JSystem/JAudio2/JASAramStream.cpp index 4831c5f8ef..1084f2675c 100644 --- a/libs/JSystem/JAudio2/JASAramStream.cpp +++ b/libs/JSystem/JAudio2/JASAramStream.cpp @@ -4,56 +4,25 @@ // #include "JSystem/JAudio2/JASAramStream.h" +#include "JSystem/JAudio2/JASAiCtrl.h" +#include "JSystem/JAudio2/JASChannel.h" +#include "JSystem/JAudio2/JASCriticalSection.h" +#include "JSystem/JAudio2/JASDSPInterface.h" +#include "JSystem/JAudio2/JASDriverIF.h" +#include "JSystem/JAudio2/JASDvdThread.h" +#include "JSystem/JKernel/JKRAram.h" +#include "JSystem/JKernel/JKRSolidHeap.h" #include "dol2asm.h" // // Types: // -struct JKRHeap {}; - -struct JKRExpandSwitch {}; - -struct JKRAram { - /* 802D233C */ void mainRamToAram(u8*, u32, u32, JKRExpandSwitch, u32, JKRHeap*, int, u32*); -}; - -struct JASTaskThread { - /* 8028FB5C */ void sendCmdMsg(void (*)(void*), void const*, u32); - /* 8028FC54 */ void sendCmdMsg(void (*)(void*), void*); -}; - -struct JASOscillator { - struct Data {}; -}; - -template -struct JASMemPool_MultiThreaded {}; /* JASMemPool_MultiThreaded */ struct JASMemPool_MultiThreaded__template2 { /* 802978DC */ void func_802978DC(void* _this); }; -struct JASGenericMemPool { - /* 80290848 */ JASGenericMemPool(); - /* 80290860 */ ~JASGenericMemPool(); - /* 80290948 */ void alloc(u32); -}; - -struct JASDriver { - /* 8029C9E8 */ void getDacRate(); - /* 8029E1C4 */ void rejectCallback(s32 (*)(void*), void*); - /* 8029E274 */ void registerSubFrameCallback(s32 (*)(void*), void*); -}; - -struct JASChannel { - /* 8029A800 */ JASChannel(void (*)(u32, JASChannel*, JASDsp::TChannel*, void*), void*); - /* 8029AA60 */ void playForce(); - /* 8029AAD0 */ void release(u16); - /* 8029AB64 */ void setOscInit(u32, JASOscillator::Data const*); - /* 8029AB98 */ void setMixConfig(u32, u16); -}; - // // Forward References: // @@ -119,7 +88,6 @@ extern "C" void _restgpr_25(); extern "C" void _restgpr_26(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" extern u8 JASDram[4]; // // Declarations: @@ -127,33 +95,41 @@ extern "C" extern u8 JASDram[4]; /* ############################################################################################## */ /* 80451250-80451254 000750 0004+00 6/6 0/0 0/0 .sbss sLoadThread__13JASAramStream */ -u8 JASAramStream::sLoadThread[4]; +JASTaskThread* JASAramStream::sLoadThread; /* 80451254-80451258 000754 0004+00 3/3 0/0 0/0 .sbss sReadBuffer__13JASAramStream */ -u8 JASAramStream::sReadBuffer[4]; +u8* JASAramStream::sReadBuffer; /* 80451258-8045125C 000758 0004+00 6/6 1/1 0/0 .sbss sBlockSize__13JASAramStream */ u32 JASAramStream::sBlockSize; /* 8045125C-80451260 00075C 0004+00 1/1 0/0 0/0 .sbss sChannelMax__13JASAramStream */ -u8 JASAramStream::sChannelMax[4]; +u32 JASAramStream::sChannelMax; /* 80451260-80451268 -00001 0008+00 8/8 4/4 0/0 .sbss None */ /* 80451260 0001+00 data_80451260 None */ /* 80451261 0001+00 data_80451261 None */ /* 80451262 0006+00 data_80451262 None */ -extern u8 struct_80451260[8]; -u8 struct_80451260[8]; +extern bool struct_80451260; +extern bool struct_80451261; +extern u32 struct_80451264; +bool struct_80451260; +bool struct_80451261; +u32 struct_80451264; /* 8029631C-802963A8 290C5C 008C+00 0/0 1/1 0/0 .text initSystem__13JASAramStreamFUlUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASAramStream::initSystem(u32 param_0, u32 param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JASAramStream/initSystem__13JASAramStreamFUlUl.s" +void JASAramStream::initSystem(u32 i_blockSize, u32 i_channelMax) { + if (JASDriver::registerSubFrameCallback(dvdErrorCheck, NULL)) { + if (sLoadThread == NULL) { + sLoadThread = JASDvd::getThreadPointer(); + } + sReadBuffer = new (JASDram, 0x20) u8[(i_blockSize + 0x20) * i_channelMax]; + sBlockSize = i_blockSize; + sChannelMax = i_channelMax; + struct_80451260 = false; + struct_80451261 = false; + } } -#pragma pop /* ############################################################################################## */ /* 80455610-80455614 003C10 0004+00 3/3 0/0 0/0 .sdata2 @390 */ @@ -171,6 +147,53 @@ SECTION_SDATA2 static f32 lit_391 = 1.0f; SECTION_SDATA2 static f32 lit_392 = 0.5f; /* 802963A8-8029649C 290CE8 00F4+00 0/0 1/1 0/0 .text __ct__13JASAramStreamFv */ +#ifdef NONMATCHING +JASAramStream::JASAramStream() { + field_0x0a8 = NULL; + field_0x0ac = false; + field_0x0ad = false; + field_0x0ae = 0; + field_0x0b0 = 0; + field_0x0b4 = 0; + field_0x0b8 = 0; + field_0x0bc = 0; + field_0x0c0 = false; + field_0x0c4 = 0; + field_0x0c8 = 0.0f; + field_0x108 = 0; + field_0x10c = 0; + mBlock = 0; + field_0x114 = 0; + field_0x118 = 0; + field_0x12c = 0; + field_0x148 = 0; + field_0x14c = 0; + mCallback = NULL; + mCallbackData = NULL; + field_0x158 = 0; + mChannelNum = 0; + mBufCount = 0; + field_0x160 = 0; + field_0x164 = 0; + mLoop = false; + mLoopStart = 0; + mLoopEnd = 0; + mVolume = 1.0f; + mPitch = 1.0f; + for (int i = 0; i < 6; i++) { + mChannels[i] = NULL; + field_0x130[i] = 0; + field_0x13c[i] = 0; + mChannelVolume[i] = 1.0f; + mChannelPan[i] = 0.5f; + mChannelFxMix[i] = 0.0f; + mChannelDolby[i] = 0.0f; + } + for (int i = 0; i < 6; i++) { + field_0x1dc[i] = 0; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -179,132 +202,160 @@ asm JASAramStream::JASAramStream() { #include "asm/JSystem/JAudio2/JASAramStream/__ct__13JASAramStreamFv.s" } #pragma pop +#endif /* 8029649C-8029655C 290DDC 00C0+00 0/0 1/1 0/0 .text * init__13JASAramStreamFUlUlPFUlP13JASAramStreamPv_vPv */ +#ifdef NONMATCHING +void JASAramStream::init(u32 param_0, u32 param_1, StreamCallback i_callback, void* i_callbackData) { + field_0x148 = param_0; + field_0x14c = param_1; + field_0x0c8 = 0.0f; + field_0x0ae = 0; + field_0x0ac = false; + field_0x0ad = false; + field_0x114 = 0; + mChannelNum = 0; + for (int i = 0; i < 6; i++) { + mChannelVolume[i] = 1.0f; + mChannelPan[i] = 0.5f; + mChannelFxMix[i] = 0.0f; + mChannelDolby[i] = 0.0f; + } + mVolume = 1.0f; + mPitch = 1.0f; + field_0x1dc[0] = 0xffff; + mCallback = i_callback; + mCallbackData = i_callbackData; + OSInitMessageQueue(&field_0x000, field_0x040, 0x10); + OSInitMessageQueue(&field_0x020, field_0x080, 4); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JASAramStream::init(u32 param_0, u32 param_1, void (*param_2)(u32, JASAramStream*, void*), - void* param_3) { +asm void JASAramStream::init(u32 param_0, u32 param_1, StreamCallback i_callback, void* param_3) { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/init__13JASAramStreamFUlUlPFUlP13JASAramStreamPv_vPv.s" } #pragma pop +#endif /* 8029655C-80296618 290E9C 00BC+00 0/0 1/1 0/0 .text prepare__13JASAramStreamFli */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool JASAramStream::prepare(s32 param_0, int param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JASAramStream/prepare__13JASAramStreamFli.s" +bool JASAramStream::prepare(s32 param_0, int param_1) { + if (!DVDFastOpen(param_0, &mDvdFileInfo)) { + return false; + } + if (!JASDriver::registerSubFrameCallback(channelProcCallback, this)) { + return false; + } + TaskData data; + data.stream = this; + data.field_0x4 = field_0x14c; + data.field_0x8 = param_1; + if (!sLoadThread->sendCmdMsg(headerLoadTask, &data, 0xc)) { + JASDriver::rejectCallback(channelProcCallback, this); + return false; + } + return true; } -#pragma pop /* 80296618-8029664C 290F58 0034+00 0/0 1/1 0/0 .text start__13JASAramStreamFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool JASAramStream::start() { - nofralloc -#include "asm/JSystem/JAudio2/JASAramStream/start__13JASAramStreamFv.s" +bool JASAramStream::start() { + return OSSendMessage(&field_0x000, (OSMessage)0, OS_MESSAGE_NOBLOCK); } -#pragma pop /* 8029664C-80296684 290F8C 0038+00 0/0 1/1 0/0 .text stop__13JASAramStreamFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASAramStream::stop(u16 param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASAramStream/stop__13JASAramStreamFUs.s" +bool JASAramStream::stop(u16 param_0) { + return OSSendMessage(&field_0x000, (OSMessage)(param_0 << 0x10 | 1), OS_MESSAGE_NOBLOCK); } -#pragma pop /* 80296684-802966CC 290FC4 0048+00 0/0 1/1 0/0 .text pause__13JASAramStreamFb */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASAramStream::pause(bool param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASAramStream/pause__13JASAramStreamFb.s" +bool JASAramStream::pause(bool param_0) { + OSMessage msg; + if (param_0) { + msg = (OSMessage)2; + } else { + msg = (OSMessage)3; + } + if (!OSSendMessage(&field_0x000, msg, OS_MESSAGE_NOBLOCK)) { + return false; + } + return true; } -#pragma pop /* 802966CC-80296710 29100C 0044+00 0/0 1/1 0/0 .text cancel__13JASAramStreamFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASAramStream::cancel() { - nofralloc -#include "asm/JSystem/JAudio2/JASAramStream/cancel__13JASAramStreamFv.s" +bool JASAramStream::cancel() { + field_0x114 = 1; + return sLoadThread->sendCmdMsg(finishTask, this); } -#pragma pop /* 80296710-8029673C 291050 002C+00 4/4 0/0 0/0 .text getBlockSamples__13JASAramStreamCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASAramStream::getBlockSamples() const { - nofralloc -#include "asm/JSystem/JAudio2/JASAramStream/getBlockSamples__13JASAramStreamCFv.s" +u32 JASAramStream::getBlockSamples() const { + if (field_0x158 == 0) { + return (sBlockSize << 4) / 9; + } + return sBlockSize >> 1; } -#pragma pop /* 8029673C-8029676C 29107C 0030+00 1/1 0/0 0/0 .text headerLoadTask__13JASAramStreamFPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASAramStream::headerLoadTask(void* param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASAramStream/headerLoadTask__13JASAramStreamFPv.s" +void JASAramStream::headerLoadTask(void* i_data) { + TaskData* data = (TaskData*)i_data; + data->stream->headerLoad(data->field_0x4, data->field_0x8); } -#pragma pop /* 8029676C-80296848 2910AC 00DC+00 1/1 0/0 0/0 .text firstLoadTask__13JASAramStreamFPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASAramStream::firstLoadTask(void* param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASAramStream/firstLoadTask__13JASAramStreamFPv.s" +void JASAramStream::firstLoadTask(void* i_data) { + TaskData* data = (TaskData*)i_data; + JASAramStream* _this = data->stream; + if (!_this->load()) { + return; + } + if (data->field_0x8 > 0) { + data->field_0x8--; + if (data->field_0x8 == 0) { + if (!sLoadThread->sendCmdMsg(prepareFinishTask, _this)) { + struct_80451261 = true; + } + } + } + if (data->field_0x4 != 0) { + data->field_0x4--; + if (!sLoadThread->sendCmdMsg(firstLoadTask, data, 0xc)) { + struct_80451261 = true; + } + JASCriticalSection cs; + _this->field_0x118++; + } } -#pragma pop /* 80296848-80296868 291188 0020+00 1/1 0/0 0/0 .text loadToAramTask__13JASAramStreamFPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASAramStream::loadToAramTask(void* param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASAramStream/loadToAramTask__13JASAramStreamFPv.s" +void JASAramStream::loadToAramTask(void* i_this) { + ((JASAramStream*)i_this)->load(); } -#pragma pop /* 80296868-802968C8 2911A8 0060+00 2/2 0/0 0/0 .text finishTask__13JASAramStreamFPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASAramStream::finishTask(void* param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASAramStream/finishTask__13JASAramStreamFPv.s" +void JASAramStream::finishTask(void* i_this) { + JASAramStream* _this = (JASAramStream*)i_this; + JASDriver::rejectCallback(channelProcCallback, _this); + if (_this->mCallback != NULL) { + _this->mCallback(CB_START, _this, _this->mCallbackData); + _this->mCallback = NULL; + } } -#pragma pop /* 802968C8-80296920 291208 0058+00 1/1 0/0 0/0 .text prepareFinishTask__13JASAramStreamFPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASAramStream::prepareFinishTask(void* param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASAramStream/prepareFinishTask__13JASAramStreamFPv.s" +void JASAramStream::prepareFinishTask(void* i_this) { + JASAramStream* _this = (JASAramStream*)i_this; + OSSendMessage(&_this->field_0x020, (OSMessage)4, OS_MESSAGE_BLOCK); + if (_this->mCallback != NULL) { + _this->mCallback(CB_STOP, _this, _this->mCallbackData); + } } -#pragma pop /* ############################################################################################## */ /* 8045561C-80455620 003C1C 0004+00 1/1 0/0 0/0 .sdata2 @531 */ @@ -314,34 +365,141 @@ SECTION_SDATA2 static f32 lit_531 = 127.0f; SECTION_SDATA2 static f64 lit_533 = 4503599627370496.0 /* cast u32 to float */; /* 80296920-80296AE8 291260 01C8+00 1/1 0/0 0/0 .text headerLoad__13JASAramStreamFUli */ +#ifdef NONMATCHING +// matches with literals +bool JASAramStream::headerLoad(u32 param_0, int param_1) { + if (struct_80451261) { + return false; + } + if (field_0x114 != 0) { + return false; + } + if (DVDReadPrio(&mDvdFileInfo, sReadBuffer, sizeof(Header), 0, 1) < 0) { + struct_80451261 = true; + return false; + } + Header* header = (Header*)sReadBuffer; + field_0x158 = header->format; + mChannelNum = header->channels; + field_0x164 = header->field_0x10; + mLoop = header->loop != 0; + mLoopStart = header->loop_start; + mLoopEnd = header->loop_end; + mVolume = header->field_0x28 / 127.0f; + field_0x118 = 0; + mBlock = 0; + field_0x10c = 0; + field_0x160 = (param_0 / sBlockSize) / header->channels; + mBufCount = field_0x160; + mBufCount--; + field_0x108 = mBufCount; + getBlockSamples(); + if (param_1 < 0 || param_1 > field_0x108) { + param_1 = field_0x108; + } + if (field_0x114 != 0) { + return false; + } + TaskData data; + data.stream = this; + data.field_0x4 = field_0x108 - 1; + data.field_0x8 = param_1; + if (!sLoadThread->sendCmdMsg(firstLoadTask, &data, 0xc)) { + struct_80451261 = true; + return false; + } + JASCriticalSection cs; + field_0x118++; + return true; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JASAramStream::headerLoad(u32 param_0, int param_1) { +asm bool JASAramStream::headerLoad(u32 param_0, int param_1) { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/headerLoad__13JASAramStreamFUli.s" } #pragma pop +#endif /* 80296AE8-80296D74 291428 028C+00 2/2 0/0 0/0 .text load__13JASAramStreamFv */ +#ifdef NONMATCHING +bool JASAramStream::load() { + { + JASCriticalSection cs; + field_0x118--; + } + if (struct_80451261) { + return false; + } + if (field_0x114 != 0) { + return false; + } + u32 loop_end_block = (mLoopEnd - 1) / getBlockSamples(); + u32 loop_start_block = mLoopStart / getBlockSamples(); + u32 block = mBlock; + if (block > loop_end_block) { + return false; + } + u32 size = sBlockSize * mChannelNum + sizeof(BlockHeader); + u32 offset = block * size + sizeof(Header); + if (DVDReadPrio(&mDvdFileInfo, sReadBuffer, size, offset, 1) < 0) { + struct_80451261 = true; + return false; + } + BlockHeader* bhead = (BlockHeader*)sReadBuffer; + if (field_0x114 != 0) { + return false; + } + u32 uvar2 = field_0x148 + field_0x10c * sBlockSize; + for (int i = 0; i < mChannelNum; i++) { + if (!JKRAram::mainRamToAram(sReadBuffer + bhead->field_0x4 * i + 0x20, + uvar2 + i * field_0x160 * sBlockSize, + bhead->field_0x4, EXPAND_SWITCH_UNKNOWN0, 0, NULL, -1, NULL)) { + struct_80451261 = 1; + return false; + } + } + field_0x10c++; + if (field_0x10c >= field_0x108) { + u32 uvar8 = mBlock - 1 + field_0x108; + if (mLoop) { + for (; uvar8 > loop_end_block; uvar8 = uvar8 - loop_end_block + loop_start_block) {} + } + if (uvar8 == loop_end_block || uvar8 + 2 == loop_end_block) { + field_0x108 = field_0x160; + OSSendMessage(&field_0x020, (OSMessage)5, OS_MESSAGE_BLOCK); + } else { + field_0x108 = field_0x160 - 1; + } + for (int i = 0; i < mChannelNum; i++) { + field_0x130[i] = bhead->field_0x8[i].field_0x0; + field_0x13c[i] = bhead->field_0x8[i].field_0x2; + } + field_0x10c = 0; + } + mBlock++; + if (mBlock > loop_end_block && mLoop) { + mBlock = loop_start_block; + } + return true; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JASAramStream::load() { +asm bool JASAramStream::load() { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/load__13JASAramStreamFv.s" } #pragma pop +#endif /* 80296D74-80296D94 2916B4 0020+00 2/2 0/0 0/0 .text channelProcCallback__13JASAramStreamFPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASAramStream::channelProcCallback(void* param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASAramStream/channelProcCallback__13JASAramStreamFPv.s" +s32 JASAramStream::channelProcCallback(void* i_this) { + return ((JASAramStream*)i_this)->channelProc(); } -#pragma pop /* ############################################################################################## */ /* 803C7670-803C76A8 -00001 0034+04 1/1 0/0 0/0 .data @613 */ @@ -365,29 +523,229 @@ SECTION_DATA static void* lit_613[13 + 1 /* padding */] = { /* 80296D94-80296DF0 2916D4 005C+00 2/1 0/0 0/0 .text dvdErrorCheck__13JASAramStreamFPv */ +#ifdef NONMATCHING +s32 JASAramStream::dvdErrorCheck(void* param_0) { + switch (DVDGetDriveStatus()) { + case DVD_STATE_END: + struct_80451260 = false; + break; + case DVD_STATE_WAITING: + case DVD_STATE_COVER_CLOSED: + case DVD_STATE_NO_DISK: + case DVD_STATE_COVER_OPEN: + case DVD_STATE_WRONG_DISK: + case DVD_STATE_MOTOR_STOPPED: + case DVD_STATE_IGNORED: + case 9: + case DVD_STATE_CANCELED: + case DVD_STATE_RETRY: + case DVD_STATE_FATAL_ERROR: + struct_80451260 = true; + break; + } + return 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JASAramStream::dvdErrorCheck(void* param_0) { +asm s32 JASAramStream::dvdErrorCheck(void* param_0) { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/dvdErrorCheck__13JASAramStreamFPv.s" } #pragma pop +#endif /* 80296DF0-80296E2C 291730 003C+00 1/1 0/0 0/0 .text * channelCallback__13JASAramStreamFUlP10JASChannelPQ26JASDsp8TChannelPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASAramStream::channelCallback(u32 param_0, JASChannel* param_1, JASDsp::TChannel* param_2, - void* param_3) { - nofralloc -#include "asm/JSystem/JAudio2/JASAramStream/channelCallback__13JASAramStreamFUlP10JASChannelPQ26JASDsp8TChannelPv.s" +void JASAramStream::channelCallback(u32 i_callbackType, JASChannel* i_channel, + JASDsp::TChannel* i_dspChannel, void* i_this) { + ((JASAramStream*)i_this)->updateChannel(i_callbackType, i_channel, i_dspChannel); } -#pragma pop /* 80296E2C-802974AC 29176C 0680+00 1/1 0/0 0/0 .text * updateChannel__13JASAramStreamFUlP10JASChannelPQ26JASDsp8TChannel */ +#ifdef NONMATCHING +// missing extra loads of field_0x0c4 +void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel, + JASDsp::TChannel* i_dspChannel) { + u32 block_samples = getBlockSamples(); + switch (i_callbackType) { + case JASChannel::CB_START: + if (field_0x0a8 == NULL) { + field_0x0a8 = i_channel; + field_0x0b4 = block_samples * mBufCount; + field_0x0b8 = 0; + field_0x0b0 = 0; + field_0x0bc = (mLoopEnd - 1) / block_samples; + field_0x0c0 = 0; + field_0x0c4 = 0; + field_0x12c = 0; + } + break; + case JASChannel::CB_PLAY: + if (i_dspChannel->field_0x008 == 0) { + if (i_channel == field_0x0a8) { + field_0x12c = 0; + u32 uvar8 = i_dspChannel->field_0x074 + i_dspChannel->field_0x064; + u32 uvar5 = field_0x0b4; + if (uvar8 <= uvar5) { + field_0x0b8 += uvar5 - uvar8; + } else { + if (!field_0x0c0) { + field_0x0b8 += uvar5; + field_0x0b8 += block_samples * mBufCount - uvar8; + } else { + field_0x0b8 += uvar5; + field_0x0b8 += block_samples * mBufCount - uvar8 + - i_dspChannel->field_0x110; + field_0x0b8 -= mLoopEnd; + field_0x0b8 += mLoopStart; + i_dspChannel->field_0x110 = 0; + field_0x120 = 0; + field_0x12c |= 2; + if (field_0x0c4 < -1) { + field_0x0c4++; + } + field_0x0c0 = false; + } + } + if (field_0x0b8 > mLoopEnd) { + struct_80451261 = true; + } + f32 fvar1 = field_0x0c4; + fvar1 *= mLoopEnd - mLoopStart; + if (field_0x0c4 < -1) { + fvar1 += field_0x0b8; + } + fvar1 /= field_0x164; + field_0x0c8 = fvar1; + if (field_0x0b8 + 400 >= mLoopEnd && !field_0x0c0) { + if (mLoop) { + u32 uvar5 = field_0x0bc + 1; + if (uvar5 >= mBufCount) { + uvar5 = 0; + } + i_dspChannel->field_0x110 = mLoopStart % block_samples + + uvar5 * block_samples; + field_0x120 = i_dspChannel->field_0x110; + field_0x12c |= 2; + } else { + i_dspChannel->field_0x102 = 0; + field_0x128 = 0; + field_0x12c |= 8; + } + i_dspChannel->field_0x074 -= block_samples * mBufCount + - (field_0x0bc * block_samples + mLoopEnd % block_samples); + field_0x11c = i_dspChannel->field_0x074; + field_0x12c |= 1; + field_0x0bc += (mLoopEnd - 1) / block_samples - mLoopStart / block_samples + 1; + field_0x0c0 = true; + } + u32 uvar4 = i_dspChannel->field_0x070 - i_channel->field_0x104; + if (uvar4 != 0) { + uvar4--; + } + uvar5 = uvar4 / sBlockSize; + getBlockSamples(); + if (uvar5 != field_0x0b0) { + bool cmp = uvar5 < field_0x0b0; + while (uvar5 != field_0x0b0) { + if (!sLoadThread->sendCmdMsg(loadToAramTask, this)) { + struct_80451261 = true; + break; + } + { + JASCriticalSection cs; + field_0x118++; + } + field_0x0b0++; + if (field_0x0b0 >= mBufCount) { + field_0x0b0 = 0; + } + } + if (cmp) { + field_0x0bc -= mBufCount; + if (field_0x0ad) { + if (!field_0x0c0) { + i_dspChannel->field_0x074 += block_samples; + field_0x11c = i_dspChannel->field_0x074; + field_0x12c |= 1; + } + i_dspChannel->field_0x114 += block_samples; + field_0x124 = i_dspChannel->field_0x114; + field_0x12c |= 4; + mBufCount = field_0x160; + field_0x0ad = false; + } else { + if (mBufCount != field_0x160 - 1) { + mBufCount = field_0x160 - 1; + i_dspChannel->field_0x114 -= block_samples; + field_0x124 = i_dspChannel->field_0x114; + field_0x12c |= 4; + if (!field_0x0c0) { + i_dspChannel->field_0x074 -= block_samples; + field_0x11c = i_dspChannel->field_0x074; + field_0x12c |= 1; + } + } + } + } + } else { + if (field_0x118 == 0 && !struct_80451260) { + field_0x0ae &= ~2; + field_0x0ae &= ~4; + } + } + field_0x0b4 = i_dspChannel->field_0x074 + i_dspChannel->field_0x064; + if (field_0x118 >= field_0x160 - 2) { + field_0x0ae |= 4; + } + } else { + if (field_0x12c & 1) { + i_dspChannel->field_0x074 = field_0x11c; + } + if (field_0x12c & 2) { + i_dspChannel->field_0x110 = field_0x120; + } + if (field_0x12c & 4) { + i_dspChannel->field_0x114 = field_0x124; + } + if (field_0x12c & 8) { + i_dspChannel->field_0x102 = field_0x128; + } + } + int i = 0; + for (; i < 6; i++) { + if (i_channel == mChannels[i]) { + break; + } + } + i_dspChannel->field_0x104 = field_0x130[i]; + i_dspChannel->field_0x106 = field_0x13c[i]; + } + break; + case JASChannel::CB_STOP: + bool open_channel = false; + for (int i = 0; i < 6; i++) { + if (i_channel == mChannels[i]) { + mChannels[i] = NULL; + } else if (mChannels[i] != NULL) { + open_channel = true; + } + } + if (!open_channel) { + field_0x114 = 1; + if (!sLoadThread->sendCmdMsg(finishTask, this)) { + struct_80451261 = true; + return; + } + } + break; + } + i_channel->mPauseFlag = field_0x0ae != 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -396,36 +754,88 @@ asm void JASAramStream::updateChannel(u32 param_0, JASChannel* param_1, JASDsp:: #include "asm/JSystem/JAudio2/JASAramStream/updateChannel__13JASAramStreamFUlP10JASChannelPQ26JASDsp8TChannel.s" } #pragma pop +#endif /* 802974AC-80297658 291DEC 01AC+00 1/1 0/0 0/0 .text channelProc__13JASAramStreamFv */ +#ifdef NONMATCHING +// regalloc and instruction ordering +s32 JASAramStream::channelProc() { + OSMessage msg; + while (OSReceiveMessage(&field_0x020, &msg, OS_MESSAGE_NOBLOCK)) { + switch ((u32)msg) { + case 4: + field_0x0ac = true; + break; + case 5: + field_0x0ad = true; + break; + } + } + + if (!field_0x0ac) { + return 0; + } + + while (OSReceiveMessage(&field_0x000, &msg, OS_MESSAGE_NOBLOCK)) { + switch ((u32)msg & 0xff) { + case 0: + channelStart(); + break; + case 1: + channelStop((u32)msg >> 0x10); + break; + case 2: + field_0x0ae |= 1; + break; + case 3: + field_0x0ae &= ~1; + break; + } + } + + if (struct_80451261) { + field_0x0ae |= 8; + } + if (struct_80451260) { + field_0x0ae |= 2; + } + + for (int i = 0; i < mChannelNum; i++) { + JASChannel* channel = mChannels[i]; + if (channel != NULL) { + JASChannelParams params; + params.mVolume = mVolume * mChannelVolume[i]; + params.mPitch = mPitch; + params.field_0x8 = 0.0f; + params.mPan = mChannelPan[i]; + params.mFxMix = mChannelFxMix[i]; + params.mDolby = mChannelDolby[i]; + channel->setParams(params); + } + } + + return 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JASAramStream::channelProc() { +asm s32 JASAramStream::channelProc() { nofralloc #include "asm/JSystem/JAudio2/JASAramStream/channelProc__13JASAramStreamFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 8039B168-8039B174 0277C8 000C+00 1/0 0/0 0/0 .rodata OSC_RELEASE_TABLE */ -SECTION_RODATA static u8 const OSC_RELEASE_TABLE[12] = { - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, +static JASOscillator::Point const OSC_RELEASE_TABLE[2] = { + {0x0000, 0x0002, 0x0000}, + {0x000F, 0x0000, 0x0000}, }; -COMPILER_STRIP_GATE(0x8039B168, &OSC_RELEASE_TABLE); /* 8039B174-8039B190 -00001 0018+04 1/1 0/0 0/0 .rodata OSC_ENV */ -SECTION_RODATA static void* const OSC_ENV[6 + 1 /* padding */] = { - (void*)NULL, - (void*)0x3F800000, - (void*)NULL, - (void*)&OSC_RELEASE_TABLE, - (void*)0x3F800000, - (void*)NULL, - /* padding */ - NULL, -}; -COMPILER_STRIP_GATE(0x8039B174, &OSC_ENV); +static JASOscillator::Data const OSC_ENV = {0, 1.0f, NULL, OSC_RELEASE_TABLE, 1.0f, 0.0f}; /* 80431B28-80431B34 05E848 000C+00 1/1 0/0 0/0 .bss @792 */ static u8 lit_792[12]; @@ -436,19 +846,48 @@ extern u8 data_80431B34[16 + 4 /* padding */]; u8 data_80431B34[16 + 4 /* padding */]; /* 80455628-80455630 003C28 0004+04 1/1 0/0 0/0 .sdata2 one$776 */ -SECTION_SDATA2 static u8 one[4 + 4 /* padding */] = { - 0x00, - 0x00, - 0x00, - 0x01, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, -}; +SECTION_SDATA2 static u32 one = 1; /* 80297658-80297870 291F98 0218+00 1/1 0/0 0/0 .text channelStart__13JASAramStreamFv */ +#ifdef NONMATCHING +// matches with literals and weak fn ordering +void JASAramStream::channelStart() { + u8 r31; + switch (field_0x158) { + case 0: + r31 = 0; + break; + case 1: + r31 = 3; + break; + } + for (int i = 0; i < mChannelNum; i++) { + JASWaveInfo wave_info; + wave_info.field_0x00 = r31; + wave_info.field_0x02 = 0xff; + wave_info.field_0x10 = 0; + wave_info.field_0x14 = mBufCount * getBlockSamples(); + wave_info.field_0x18 = wave_info.field_0x14; + wave_info.field_0x1c = 0; + wave_info.field_0x1e = 0; + // probably a fake match, this should be set in the JASWaveInfo constructor + wave_info.field_0x20 = &one; + JASChannel* channel = new JASChannel(channelCallback, this); + channel->setPriority(0x7f7f); + for (u32 j = 0; j < 6; j++) { + channel->setMixConfig(j, field_0x1dc[j]); + } + channel->setInitPitch(field_0x164 / JASDriver::getDacRate()); + channel->setOscInit(0, &OSC_ENV); + channel->field_0xdc.field_0x4 = wave_info; + channel->field_0x104 = field_0x148 + sBlockSize * field_0x160 * i; + channel->field_0xdc.field_0x0 = 0; + channel->playForce(); + mChannels[i] = channel; + } + field_0x0a8 = NULL; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -457,16 +896,16 @@ asm void JASAramStream::channelStart() { #include "asm/JSystem/JAudio2/JASAramStream/channelStart__13JASAramStreamFv.s" } #pragma pop +#endif /* 80297870-802978DC 2921B0 006C+00 1/1 0/0 0/0 .text channelStop__13JASAramStreamFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASAramStream::channelStop(u16 param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASAramStream/channelStop__13JASAramStreamFUs.s" +void JASAramStream::channelStop(u16 i_directRelease) { + for (int i = 0; i < mChannelNum; i++) { + if (mChannels[i] != NULL) { + mChannels[i]->release(i_directRelease); + } + } } -#pragma pop /* 802978DC-80297930 29221C 0054+00 1/1 5/5 0/0 .text * __dt__38JASMemPool_MultiThreaded<10JASChannel>Fv */ diff --git a/libs/JSystem/JAudio2/JASBasicWaveBank.cpp b/libs/JSystem/JAudio2/JASBasicWaveBank.cpp index 3491770225..19b4d1f4ce 100644 --- a/libs/JSystem/JAudio2/JASBasicWaveBank.cpp +++ b/libs/JSystem/JAudio2/JASBasicWaveBank.cpp @@ -225,7 +225,7 @@ asm void JASBasicWaveBank::incWaveTable(JASBasicWaveBank::TWaveGroup const* para /* ############################################################################################## */ /* 80451278-80451280 000778 0004+04 2/2 0/0 0/0 .sbss mNoLoad__16JASBasicWaveBank */ -u8 JASBasicWaveBank::mNoLoad[4 + 4 /* padding */]; +u32 JASBasicWaveBank::mNoLoad; /* 8029883C-802988DC 29317C 00A0+00 1/1 0/0 0/0 .text * decWaveTable__16JASBasicWaveBankFPCQ216JASBasicWaveBank10TWaveGroup */ @@ -235,7 +235,7 @@ void JASBasicWaveBank::decWaveTable(JASBasicWaveBank::TWaveGroup const* param_0) TWaveHandle* handle = mWaveTable + param_0->getWaveID(i); if (handle->mHeap == ¶m_0->base.mHeap) { handle->mHeap = NULL; - handle->field_0x4.field_0x20 = mNoLoad; + handle->field_0x4.field_0x20 = &mNoLoad; handle->field_0x4.field_0x08 = -1; } } @@ -260,7 +260,7 @@ void JASBasicWaveBank::setWaveInfo(JASBasicWaveBank::TWaveGroup* wgrp, int index JUT_ASSERT(205, index < wgrp->mWaveCount); JUT_ASSERT(206, index >= 0); mWaveTable[param_2].field_0x4 = param_3; - mWaveTable[param_2].field_0x4.field_0x20 = mNoLoad; + mWaveTable[param_2].field_0x4.field_0x20 = &mNoLoad; mWaveTable[param_2].field_0x4.field_0x08 = -1; wgrp->mCtrlWaveArray[index].field_0x0 = param_2; wgrp->mCtrlWaveArray[index].field_0x4 = param_3.field_0x08; diff --git a/libs/JSystem/JAudio2/JASChannel.cpp b/libs/JSystem/JAudio2/JASChannel.cpp index 1abab78270..8d74d1539a 100644 --- a/libs/JSystem/JAudio2/JASChannel.cpp +++ b/libs/JSystem/JAudio2/JASChannel.cpp @@ -4,47 +4,15 @@ // #include "JSystem/JAudio2/JASChannel.h" +#include "JSystem/JAudio2/JASAiCtrl.h" +#include "JSystem/JAudio2/JASCalc.h" +#include "JSystem/JAudio2/JASDriverIF.h" +#include "JSystem/JAudio2/JASDSPChannel.h" +#include "JSystem/JSupport/JSupport.h" +#include "JSystem/JMath/JMATrigonometric.h" +#include "JSystem/JGeometry.h" #include "dol2asm.h" -// -// Types: -// - -struct JMath { - static u8 sincosTable_[65536]; -}; - -namespace JASDsp { - struct TChannel { - /* 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); - /* 8029E09C */ void setBusConnect(u8, u8); - }; -}; - -struct JASDriver { - /* 8029C9E8 */ void getDacRate(); -}; - -struct JASDSPChannel { - /* 8029D320 */ void free(); - /* 8029D330 */ void start(); - /* 8029D340 */ void drop(); - /* 8029D44C */ void alloc(u8, s32 (*)(u32, JASDsp::TChannel*, void*), void*); - /* 8029D4BC */ void allocForce(u8, s32 (*)(u32, JASDsp::TChannel*, void*), void*); - /* 8029D534 */ void setPriority(u8); -}; - -struct JASCalc { - /* 8028F578 */ void pow2(f32); -}; - // // Forward References: // @@ -129,38 +97,6 @@ extern "C" extern u8 struct_80451260[8]; // Declarations: // -/* ############################################################################################## */ -/* 80455680-80455684 003C80 0004+00 6/6 0/0 0/0 .sdata2 @544 */ -SECTION_SDATA2 static f32 lit_544 = 1.0f; - -/* 80455684-80455688 003C84 0004+00 7/7 0/0 0/0 .sdata2 @545 */ -SECTION_SDATA2 static u8 lit_545[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; - -/* 80455688-80455690 003C88 0004+04 6/6 0/0 0/0 .sdata2 @546 */ -SECTION_SDATA2 static f32 lit_546[1 + 1 /* padding */] = { - 0.5f, - /* padding */ - 0.0f, -}; - -/* 8029A800-8029A918 295140 0118+00 0/0 3/3 0/0 .text - * __ct__10JASChannelFPFUlP10JASChannelPQ26JASDsp8TChannelPv_vPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JASChannel::JASChannel(void (*param_0)(u32, JASChannel*, JASDsp::TChannel*, void*), - void* param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JASChannel/__ct__10JASChannelFPFUlP10JASChannelPQ26JASDsp8TChannelPv_vPv.s" -} -#pragma pop - -/* ############################################################################################## */ /* 80431B90-80431BB0 05E8B0 0020+00 2/2 0/0 0/0 .bss sBankDisposeMsgQ__10JASChannel */ OSMessageQueue JASChannel::sBankDisposeMsgQ; @@ -168,12 +104,55 @@ OSMessageQueue JASChannel::sBankDisposeMsgQ; OSMessage JASChannel::sBankDisposeMsg[16]; /* 80431BF0-80431C30 05E910 0040+00 2/2 0/3 0/0 .bss sBankDisposeList__10JASChannel */ -u32 JASChannel::sBankDisposeList[16]; +OSMessage JASChannel::sBankDisposeList[16]; + +/* 80451298-804512A0 000798 0004+04 3/3 0/0 0/0 .sbss sBankDisposeListSize__10JASChannel + */ +int JASChannel::sBankDisposeListSize; + +/* 8029A800-8029A918 295140 0118+00 0/0 3/3 0/0 .text + * __ct__10JASChannelFPFUlP10JASChannelPQ26JASDsp8TChannelPv_vPv */ +JASChannel::JASChannel(Callback i_callback, void* i_callbackData) : + mStatus(STATUS_INACTIVE), + mDspCh(NULL), + mCallback(i_callback), + mCallbackData(i_callbackData), + mUpdateTimer(0), + mBankDisposeID(NULL), + mKey(0), + mVelocity(0x7f), + mKeySweep(0.0f), + mKeySweepTarget(0.0f), + mKeySweepCount(0), + mSkipSamples(0) +{ + field_0xdc.field_0x0 = 0; + field_0x104 = 0; + mMixConfig[0].whole = 0x150; + mMixConfig[1].whole = 0x210; + mMixConfig[2].whole = 0x352; + mMixConfig[3].whole = 0x412; + mMixConfig[4].whole = 0; + mMixConfig[5].whole = 0; + mPriority = 0x13f; + mPauseFlag = false; +} /* 80431C30-80431C40 05E950 000C+04 1/1 0/2 0/0 .bss @556 */ static u8 lit_556[12 + 4 /* padding */]; /* 8029A918-8029A9F0 295258 00D8+00 5/5 0/0 0/0 .text __dt__10JASChannelFv */ +#ifdef NONMATCHING +// matches with static data +JASChannel::~JASChannel() { + if (mDspCh != NULL) { + mDspCh->drop(); + } + if (mCallback != NULL) { + mCallback(CB_STOP, this, NULL, mCallbackData); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -182,309 +161,480 @@ asm JASChannel::~JASChannel() { #include "asm/JSystem/JAudio2/JASChannel/__dt__10JASChannelFv.s" } #pragma pop +#endif /* 8029A9F0-8029AA60 295330 0070+00 0/0 2/2 0/0 .text play__10JASChannelFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int JASChannel::play() { - nofralloc -#include "asm/JSystem/JAudio2/JASChannel/play__10JASChannelFv.s" +int JASChannel::play() { + JASDSPChannel* channel = JASDSPChannel::alloc(JSULoByte(mPriority), dspUpdateCallback, this); + if (channel == NULL) { + delete this; + return 0; + } + mDspCh = channel; + channel->start(); + mStatus = STATUS_ACTIVE; + return 1; } -#pragma pop /* 8029AA60-8029AAD0 2953A0 0070+00 0/0 1/1 0/0 .text playForce__10JASChannelFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASChannel::playForce() { - nofralloc -#include "asm/JSystem/JAudio2/JASChannel/playForce__10JASChannelFv.s" +int JASChannel::playForce() { + JASDSPChannel* channel = JASDSPChannel::allocForce(JSULoByte(mPriority), + dspUpdateCallback, this); + if (channel == NULL) { + delete this; + return 0; + } + mDspCh = channel; + channel->start(); + mStatus = STATUS_ACTIVE; + return 1; } -#pragma pop /* 8029AAD0-8029AB64 295410 0094+00 0/0 4/4 0/0 .text release__10JASChannelFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASChannel::release(u16 param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASChannel/release__10JASChannelFUs.s" +void JASChannel::release(u16 i_directRelease) { + if (mStatus == STATUS_ACTIVE) { + if (i_directRelease != 0) { + setDirectRelease(i_directRelease); + } + for (u32 i = 0; i < 2; i++) { + if (mOscillators[i].isValid()) { + mOscillators[i].release(); + } + } + mDspCh->setPriority(JSUHiByte(mPriority)); + mStatus = STATUS_RELEASE; + } } -#pragma pop /* 8029AB64-8029AB98 2954A4 0034+00 0/0 4/4 0/0 .text * setOscInit__10JASChannelFUlPCQ213JASOscillator4Data */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASChannel::setOscInit(u32 param_0, JASOscillator::Data const* param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JASChannel/setOscInit__10JASChannelFUlPCQ213JASOscillator4Data.s" +void JASChannel::setOscInit(u32 i_index, JASOscillator::Data const* i_data) { + mOscillators[i_index].initStart(i_data); } -#pragma pop /* 8029AB98-8029ABA8 2954D8 0010+00 0/0 2/2 0/0 .text setMixConfig__10JASChannelFUlUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASChannel::setMixConfig(u32 param_0, u16 param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JASChannel/setMixConfig__10JASChannelFUlUs.s" +void JASChannel::setMixConfig(u32 i_index, u16 i_config) { + mMixConfig[i_index].whole = i_config; } -#pragma pop /* 8029ABA8-8029ABC0 2954E8 0018+00 1/1 0/0 0/0 .text * calcEffect__10JASChannelFPCQ210JASChannel9PanVector */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASChannel::calcEffect(JASChannel::PanVector const* param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASChannel/calcEffect__10JASChannelFPCQ210JASChannel9PanVector.s" +f32 JASChannel::calcEffect(JASChannel::PanVector const* i_vector) { + return i_vector->mSound + i_vector->mEffect + i_vector->mChannel; } -#pragma pop /* 8029ABC0-8029ABEC 295500 002C+00 1/1 0/0 0/0 .text * calcPan__10JASChannelFPCQ210JASChannel9PanVector */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASChannel::calcPan(JASChannel::PanVector const* param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASChannel/calcPan__10JASChannelFPCQ210JASChannel9PanVector.s" +f32 JASChannel::calcPan(JASChannel::PanVector const* i_vector) { + return 0.5f + (i_vector->mSound - 0.5f) + (i_vector->mEffect - 0.5f) + + (i_vector->mChannel - 0.5f); } -#pragma pop - -/* ############################################################################################## */ -/* 803C7848-803C7864 -00001 001C+00 1/1 0/0 0/0 .data @662 */ -SECTION_DATA static void* lit_662[7] = { - (void*)(((char*)effectOsc__10JASChannelFUlPQ213JASOscillator12EffectParams) + 0x68), - (void*)(((char*)effectOsc__10JASChannelFUlPQ213JASOscillator12EffectParams) + 0x58), - (void*)(((char*)effectOsc__10JASChannelFUlPQ213JASOscillator12EffectParams) + 0x78), - (void*)(((char*)effectOsc__10JASChannelFUlPQ213JASOscillator12EffectParams) + 0x94), - (void*)(((char*)effectOsc__10JASChannelFUlPQ213JASOscillator12EffectParams) + 0xA4), - (void*)(((char*)effectOsc__10JASChannelFUlPQ213JASOscillator12EffectParams) + 0xB4), - (void*)(((char*)effectOsc__10JASChannelFUlPQ213JASOscillator12EffectParams) + 0xC4), -}; - -/* 80455690-80455698 003C90 0008+00 1/1 0/0 0/0 .sdata2 @661 */ -SECTION_SDATA2 static f64 lit_661 = 0.5; /* 8029ABEC-8029ACD4 29552C 00E8+00 3/2 0/0 0/0 .text * effectOsc__10JASChannelFUlPQ213JASOscillator12EffectParams */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASChannel::effectOsc(u32 param_0, JASOscillator::EffectParams* param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JASChannel/effectOsc__10JASChannelFUlPQ213JASOscillator12EffectParams.s" +void JASChannel::effectOsc(u32 i_index, JASOscillator::EffectParams* i_params) { + f32 value = mOscillators[i_index].getValue(); + switch (mOscillators[i_index].getTarget()) { + case JASOscillator::TARGET_PITCH: + i_params->mPitch *= value; + break; + case JASOscillator::TARGET_VOLUME: + i_params->mVolume *= value; + break; + case JASOscillator::TARGET_PAN: + value -= 0.5; + i_params->mPan += value; + break; + case JASOscillator::TARGET_FXMIX: + i_params->mFxMix += value; + break; + case JASOscillator::TARGET_DOLBY: + i_params->mDolby += value; + break; + case JASOscillator::TARGET_5: + i_params->_14 *= value; + break; + case JASOscillator::TARGET_6: + i_params->_18 *= value; + break; + } } -#pragma pop - -/* ############################################################################################## */ -/* 80455698-804556A0 003C98 0008+00 3/3 0/0 0/0 .sdata2 @685 */ -SECTION_SDATA2 static f64 lit_685 = 4503601774854144.0 /* cast s32 to float */; /* 8029ACD4-8029AD38 295614 0064+00 0/0 1/1 0/0 .text setKeySweepTarget__10JASChannelFlUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASChannel::setKeySweepTarget(s32 param_0, u32 param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JASChannel/setKeySweepTarget__10JASChannelFlUl.s" +void JASChannel::setKeySweepTarget(s32 i_target, u32 i_count) { + if (i_count == 0) { + mKeySweep = i_target; + } else { + mKeySweep = 0.0f; + mKeySweepTarget = i_target; + } + mKeySweepCount = i_count; } -#pragma pop - -/* ############################################################################################## */ -/* 804556A0-804556A8 003CA0 0004+04 1/1 0/0 0/0 .sdata2 @711 */ -SECTION_SDATA2 static f32 lit_711[1 + 1 /* padding */] = { - 127.0f, - /* padding */ - 0.0f, -}; - -/* 804556A8-804556B0 003CA8 0008+00 4/4 0/0 0/0 .sdata2 @714 */ -SECTION_SDATA2 static f64 lit_714 = 4503599627370496.0 /* cast u32 to float */; /* 8029AD38-8029AF78 295678 0240+00 2/2 0/0 0/0 .text * updateEffectorParam__10JASChannelFPQ26JASDsp8TChannelPUsRCQ213JASOscillator12EffectParams */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASChannel::updateEffectorParam(JASDsp::TChannel* param_0, u16* param_1, - JASOscillator::EffectParams const& param_2) { - nofralloc -#include "asm/JSystem/JAudio2/JASChannel/func_8029AD38.s" +void JASChannel::updateEffectorParam(JASDsp::TChannel* i_channel, u16* i_mixerVolume, + JASOscillator::EffectParams const& i_params) { + PanVector pan_vector, fxmix_vector, dolby_vector; + pan_vector.mSound = mSoundParams.mPan; + pan_vector.mChannel = mParams.mPan; + pan_vector.mEffect = i_params.mPan; + fxmix_vector.mSound = mSoundParams.mFxMix; + fxmix_vector.mChannel = mParams.mFxMix; + fxmix_vector.mEffect = i_params.mFxMix; + dolby_vector.mSound = mSoundParams.mDolby; + dolby_vector.mChannel = mParams.mDolby; + dolby_vector.mEffect = i_params.mDolby; + + f32 pan = 0.5f; + f32 dolby = 0.0f; + switch (JASDriver::getOutputMode()) { + case 0: + break; + case 1: + pan = calcPan(&pan_vector); + break; + case 2: + pan = calcPan(&pan_vector); + dolby = calcEffect(&dolby_vector); + break; + } + f32 fxmix = calcEffect(&fxmix_vector); + f32 volume = mVelocity / 127.0f; + volume = volume * volume; + volume = mSoundParams.mVolume * i_params.mVolume * mParams.mVolume + * (i_params._18 * mTremolo.getValue() + 1.0f) * volume; + + if (volume < 0.0f) { + volume = 0.0f; + } + pan = JASCalc::clamp01(pan); + fxmix = JASCalc::clamp01(fxmix); + dolby = JASCalc::clamp01(dolby); + + if (isDolbyMode()) { + updateAutoMixer(i_channel, volume, pan, fxmix, dolby); + } else { + updateMixer(volume, pan, fxmix, dolby, i_mixerVolume); + } } -#pragma pop /* 8029AF78-8029B004 2958B8 008C+00 2/2 0/0 0/0 .text * dspUpdateCallback__10JASChannelFUlPQ26JASDsp8TChannelPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASChannel::dspUpdateCallback(u32 param_0, JASDsp::TChannel* param_1, void* param_2) { - nofralloc -#include "asm/JSystem/JAudio2/JASChannel/dspUpdateCallback__10JASChannelFUlPQ26JASDsp8TChannelPv.s" +s32 JASChannel::dspUpdateCallback(u32 i_type, JASDsp::TChannel* i_channel, void* i_this) { + JASChannel* _this = static_cast(i_this); + switch (i_type) { + case JASDSPChannel::CB_PLAY: + return _this->updateDSPChannel(i_channel); + case JASDSPChannel::CB_START: + return _this->initialUpdateDSPChannel(i_channel); + case JASDSPChannel::CB_STOP: + case JASDSPChannel::CB_DROP: + _this->mDspCh->free(); + _this->mDspCh = NULL; + delete _this; + return -1; + } + return 0; } -#pragma pop - -/* ############################################################################################## */ -/* 804556B0-804556B4 003CB0 0004+00 2/2 0/0 0/0 .sdata2 @775 */ -SECTION_SDATA2 static f32 lit_775 = 12.0f; - -/* 804556B4-804556B8 003CB4 0004+00 2/2 0/0 0/0 .sdata2 @776 */ -SECTION_SDATA2 static f32 lit_776 = 4096.0f; /* 8029B004-8029B324 295944 0320+00 1/1 0/0 0/0 .text * initialUpdateDSPChannel__10JASChannelFPQ26JASDsp8TChannel */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASChannel::initialUpdateDSPChannel(JASDsp::TChannel* param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASChannel/initialUpdateDSPChannel__10JASChannelFPQ26JASDsp8TChannel.s" +s32 JASChannel::initialUpdateDSPChannel(JASDsp::TChannel* i_channel) { + if (isDolbyMode()) { + i_channel->initAutoMixer(); + } + + if (mCallback != NULL) { + mCallback(CB_START, this, i_channel, mCallbackData); + } + + if (field_0xdc.field_0x4.field_0x20[0] == 0) { + mDspCh->free(); + mDspCh = NULL; + delete this; + return -1; + } + + if (checkBankDispose()) { + mDspCh->free(); + mDspCh = NULL; + delete this; + return -1; + } + + switch (field_0xdc.field_0x0) { + case 0: + i_channel->setWaveInfo(field_0xdc.field_0x4, field_0x104, mSkipSamples); + break; + case 2: + i_channel->setOscInfo(field_0x104); + break; + } + + for (u8 i = 0; i < 6; i++) { + MixConfig mix_config = mMixConfig[i]; + u32 output_mode = JASDriver::getOutputMode(); + if (output_mode == 0) { + switch (mix_config.parts.upper) { + case 8: + mix_config.parts.upper = 11; + break; + case 9: + mix_config.parts.upper = 2; + break; + } + } else if (output_mode == 1 && mix_config.parts.upper == 8) { + mix_config.parts.upper = 11; + } + i_channel->setBusConnect(i, mix_config.parts.upper); + } + + JASOscillator::EffectParams effect_params; + for (u32 i = 0; i < 2; i++) { + if (mOscillators[i].isValid()) { + mOscillators[i].update(); + effectOsc(i, &effect_params); + } + } + mVibrate.resetCounter(); + mTremolo.resetCounter(); + u16 mixer_volume[6]; + updateEffectorParam(i_channel, mixer_volume, effect_params); + for (u8 i = 0; i < 6; i++) { + i_channel->setMixerInitVolume(i, mixer_volume[i]); + } + + f32 pitch = JASCalc::pow2(mParams.field_0x8 + (mKey + mKeySweep) / 12.0f + + effect_params._14 * mVibrate.getValue()); + pitch = mSoundParams.mPitch * effect_params.mPitch * pitch * mParams.mPitch * 4096.0f; + if (pitch < 0.0f) { + pitch = 0.0f; + } + i_channel->setPitch(pitch); + + i_channel->setPauseFlag(mPauseFlag); + i_channel->field_0x066 = 0; + return 0; } -#pragma pop - -/* ############################################################################################## */ -/* 804556B8-804556BC 003CB8 0004+00 1/1 0/0 0/0 .sdata2 @832 */ -SECTION_SDATA2 static f32 lit_832 = 32028.5f; - -/* 804556BC-804556C0 003CBC 0004+00 1/1 0/0 0/0 .sdata2 @833 */ -SECTION_SDATA2 static f32 lit_833 = 48000.0f; /* 8029B324-8029B6A0 295C64 037C+00 1/1 0/0 0/0 .text * updateDSPChannel__10JASChannelFPQ26JASDsp8TChannel */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASChannel::updateDSPChannel(JASDsp::TChannel* param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASChannel/updateDSPChannel__10JASChannelFPQ26JASDsp8TChannel.s" +s32 JASChannel::updateDSPChannel(JASDsp::TChannel* i_channel) { + if (mCallback != NULL) { + mCallback(CB_PLAY, this, i_channel, mCallbackData); + } + + if (field_0xdc.field_0x4.field_0x20[0] == 0) { + mDspCh->free(); + mDspCh = NULL; + delete this; + return -1; + } + + if (checkBankDispose()) { + mDspCh->free(); + mDspCh = NULL; + delete this; + return -1; + } + + i_channel->setPauseFlag(mPauseFlag); + JASOscillator::EffectParams effect_params; + if (mPauseFlag) { + if (mOscillators[0].isRelease()) { + mDspCh->free(); + mDspCh = NULL; + delete this; + return -1; + } + } else { + f32 inc = 32028.5f / JASDriver::getDacRate(); + mVibrate.incCounter(inc); + mTremolo.incCounter(inc); + if (mUpdateTimer != 0) { + mUpdateTimer--; + if (mUpdateTimer == 0 && mCallback != NULL) { + mCallback(CB_TIMER, this, i_channel, mCallbackData); + } + } + inc = 48000.0f / JASDriver::getDacRate(); + for (u32 i = 0; i < 2; i++) { + if (mOscillators[i].isValid()) { + mOscillators[i].incCounter(inc); + effectOsc(i, &effect_params); + if (i == 0 && mOscillators[i].isStop()) { + mDspCh->free(); + mDspCh = NULL; + delete this; + return -1; + } + } + } + } + + u16 mixer_volume[6]; + updateEffectorParam(i_channel, mixer_volume, effect_params); + for (u8 i = 0; i < 6; i++) { + i_channel->setMixerVolume(i, mixer_volume[i]); + } + + f32 pitch = JASCalc::pow2(mParams.field_0x8 + (mKey + mKeySweep) / 12.0f + + effect_params._14 * mVibrate.getValue()); + pitch = mSoundParams.mPitch * effect_params.mPitch * pitch * mParams.mPitch * 4096.0f; + if (pitch < 0.0f) { + pitch = 0.0f; + } + i_channel->setPitch(pitch); + + if (!mPauseFlag && mKeySweepCount != 0) { + mKeySweep += (mKeySweepTarget - mKeySweep) / mKeySweepCount; + mKeySweepCount--; + } + return 0; } -#pragma pop - -/* ############################################################################################## */ -/* 804556C0-804556C4 003CC0 0004+00 1/1 0/0 0/0 .sdata2 @846 */ -SECTION_SDATA2 static f32 lit_846 = 0.7070000171661377f; - -/* 804556C4-804556C8 003CC4 0004+00 1/1 0/0 0/0 .sdata2 @847 */ -SECTION_SDATA2 static f32 lit_847 = 127.5f; /* 8029B6A0-8029B7D8 295FE0 0138+00 1/1 0/0 0/0 .text * updateAutoMixer__10JASChannelFPQ26JASDsp8TChannelffff */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASChannel::updateAutoMixer(JASDsp::TChannel* param_0, f32 param_1, f32 param_2, - f32 param_3, f32 param_4) { - nofralloc -#include "asm/JSystem/JAudio2/JASChannel/updateAutoMixer__10JASChannelFPQ26JASDsp8TChannelffff.s" +void JASChannel::updateAutoMixer(JASDsp::TChannel* i_channel, f32 param_1, f32 param_2, + f32 param_3, f32 param_4) { + if (JASDriver::getOutputMode() == 0) { + param_1 *= 0.707f; + } + f32 fvar1 = JASCalc::clamp01(param_1); + i_channel->setAutoMixer(fvar1 * JASDriver::getChannelLevel_dsp(), param_2 * 127.5f, + param_4 * 127.5f, param_3 * 127.5f, 0); } -#pragma pop - -/* ############################################################################################## */ -/* 803C7864-803C7884 -00001 0020+00 1/1 0/0 0/0 .data @977 */ -SECTION_DATA static void* lit_977[8] = { - (void*)(((char*)updateMixer__10JASChannelFffffPUs) + 0x210), - (void*)(((char*)updateMixer__10JASChannelFffffPUs) + 0x1E4), - (void*)(((char*)updateMixer__10JASChannelFffffPUs) + 0x1EC), - (void*)(((char*)updateMixer__10JASChannelFffffPUs) + 0x1F4), - (void*)(((char*)updateMixer__10JASChannelFffffPUs) + 0x210), - (void*)(((char*)updateMixer__10JASChannelFffffPUs) + 0x1FC), - (void*)(((char*)updateMixer__10JASChannelFffffPUs) + 0x204), - (void*)(((char*)updateMixer__10JASChannelFffffPUs) + 0x20C), -}; - -/* 803C7884-803C78A8 -00001 0020+04 1/1 0/0 0/0 .data @974 */ -SECTION_DATA static void* lit_974[8 + 1 /* padding */] = { - (void*)(((char*)updateMixer__10JASChannelFffffPUs) + 0x114), - (void*)(((char*)updateMixer__10JASChannelFffffPUs) + 0xE8), - (void*)(((char*)updateMixer__10JASChannelFffffPUs) + 0xF0), - (void*)(((char*)updateMixer__10JASChannelFffffPUs) + 0xF8), - (void*)(((char*)updateMixer__10JASChannelFffffPUs) + 0x114), - (void*)(((char*)updateMixer__10JASChannelFffffPUs) + 0x100), - (void*)(((char*)updateMixer__10JASChannelFffffPUs) + 0x108), - (void*)(((char*)updateMixer__10JASChannelFffffPUs) + 0x110), - /* padding */ - NULL, -}; - -/* 804556C8-804556CC 003CC8 0004+00 1/1 0/0 0/0 .sdata2 @969 */ -SECTION_SDATA2 static f32 lit_969 = -1303.7972412109375f; - -/* 804556CC-804556D0 003CCC 0004+00 1/1 0/0 0/0 .sdata2 @970 */ -SECTION_SDATA2 static f32 lit_970 = 1303.7972412109375f; - -/* 804556D0-804556D4 003CD0 0004+00 1/1 0/0 0/0 .sdata2 @971 */ -SECTION_SDATA2 static f32 lit_971 = 3.1415927410125732f; - -/* 804556D4-804556D8 003CD4 0004+00 1/1 0/0 0/0 .sdata2 @972 */ -SECTION_SDATA2 static f32 lit_972 = 0.326119989156723f; - -/* 804556D8-804556E0 003CD8 0004+04 1/1 0/0 0/0 .sdata2 @973 */ -SECTION_SDATA2 static f32 lit_973[1 + 1 /* padding */] = { - 0.34775999188423157f, - /* padding */ - 0.0f, -}; /* 8029B7D8-8029BBFC 296118 0424+00 3/1 0/0 0/0 .text updateMixer__10JASChannelFffffPUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASChannel::updateMixer(f32 param_0, f32 param_1, f32 param_2, f32 param_3, u16* param_4) { - nofralloc -#include "asm/JSystem/JAudio2/JASChannel/updateMixer__10JASChannelFffffPUs.s" +void JASChannel::updateMixer(f32 i_volume, f32 i_pan, f32 i_fxmix, f32 i_dolby, u16* i_volumeOut) { + for (u32 i = 0; i < 6; i++) { + f32 volume = i_volume; + MixConfig config = mMixConfig[i]; + if (config.parts.upper == 0) { + i_volumeOut[i] = 0; + } else { + f32 scale; + + if (config.parts.lower0 != 0) { + switch (config.parts.lower0) { + case 1: + scale = i_pan; + break; + case 2: + scale = i_fxmix; + break; + case 3: + scale = i_dolby; + break; + case 5: + scale = 1.0f - i_pan; + break; + case 6: + scale = 1.0f - i_fxmix; + break; + case 7: + scale = 1.0f - i_dolby; + break; + } + + switch (config.parts.lower0) { + case 2: + case 6: + volume *= scale; + break; + default: + if (JASDriver::getOutputMode() == 0) { + volume *= scale; + } else { + volume *= JMASinRadian(scale * JGeometry::TUtil::PI() * 0.5f); + } + break; + } + } + + if (config.parts.lower1 != 0) { + switch (config.parts.lower1) { + case 1: + scale = i_pan; + break; + case 2: + scale = i_fxmix; + break; + case 3: + scale = i_dolby; + break; + case 5: + scale = 1.0f - i_pan; + break; + case 6: + scale = 1.0f - i_fxmix; + break; + case 7: + scale = 1.0f - i_dolby; + break; + } + + switch (config.parts.lower1) { + case 3: + case 7: + volume *= JMASinRadian((scale * 0.34776f + 0.32612f) + * JGeometry::TUtil::PI() * 0.5f); + break; + case 2: + case 6: + volume *= scale; + break; + default: + if (JASDriver::getOutputMode() == 0) { + volume *= scale; + } else { + volume *= JMASinRadian(scale * JGeometry::TUtil::PI() * 0.5f); + } + break; + } + } + + i_volumeOut[i] = JASCalc::clamp01(volume) * JASDriver::getChannelLevel_dsp(); + } + } } -#pragma pop /* 8029BBFC-8029BC0C 29653C 0010+00 0/0 3/3 0/0 .text free__10JASChannelFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASChannel::free() { - nofralloc -#include "asm/JSystem/JAudio2/JASChannel/free__10JASChannelFv.s" +void JASChannel::free() { + mCallback = NULL; + mCallbackData = NULL; } -#pragma pop - -/* ############################################################################################## */ -/* 80451298-804512A0 000798 0004+04 3/3 0/0 0/0 .sbss sBankDisposeListSize__10JASChannel - */ -u32 JASChannel::sBankDisposeListSize; /* 8029BC0C-8029BC48 29654C 003C+00 0/0 1/1 0/0 .text initBankDisposeMsgQueue__10JASChannelFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASChannel::initBankDisposeMsgQueue() { - nofralloc -#include "asm/JSystem/JAudio2/JASChannel/initBankDisposeMsgQueue__10JASChannelFv.s" +void JASChannel::initBankDisposeMsgQueue() { + OSInitMessageQueue(&sBankDisposeMsgQ, sBankDisposeMsg, 0x10); + sBankDisposeListSize = 0; } -#pragma pop /* 8029BC48-8029BCC0 296588 0078+00 0/0 1/1 0/0 .text receiveBankDisposeMsg__10JASChannelFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASChannel::receiveBankDisposeMsg() { - nofralloc -#include "asm/JSystem/JAudio2/JASChannel/receiveBankDisposeMsg__10JASChannelFv.s" +void JASChannel::receiveBankDisposeMsg() { + OSMessage msg; + for (sBankDisposeListSize = 0; + OSReceiveMessage(&sBankDisposeMsgQ, &msg, OS_MESSAGE_NOBLOCK); + sBankDisposeListSize++) + { + sBankDisposeList[sBankDisposeListSize] = msg; + } } -#pragma pop /* 8029BCC0-8029BD14 296600 0054+00 2/2 0/0 0/0 .text checkBankDispose__10JASChannelCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASChannel::checkBankDispose() const { - nofralloc -#include "asm/JSystem/JAudio2/JASChannel/checkBankDispose__10JASChannelCFv.s" +bool JASChannel::checkBankDispose() const { + if (mBankDisposeID == NULL) { + return false; + } + for (int i = 0; i < sBankDisposeListSize; i++) { + if (mBankDisposeID == sBankDisposeList[i]) { + return true; + } + } + return false; } -#pragma pop diff --git a/libs/JSystem/JAudio2/JASDSPChannel.cpp b/libs/JSystem/JAudio2/JASDSPChannel.cpp index 6de16aef67..a559b51ee9 100644 --- a/libs/JSystem/JAudio2/JASDSPChannel.cpp +++ b/libs/JSystem/JAudio2/JASDSPChannel.cpp @@ -4,236 +4,245 @@ // #include "JSystem/JAudio2/JASDSPChannel.h" -#include "dolphin/types.h" +#include "JSystem/JAudio2/JASHeapCtrl.h" +#include "JSystem/JKernel/JKRSolidHeap.h" -// -// Types: -// - -struct JKRHeap {}; - -struct JASDsp { - struct TChannel { - /* 8029DCA4 */ void init(); - /* 8029DCE0 */ void playStart(); - /* 8029DD44 */ void playStop(); - /* 8029DD50 */ void replyFinishRequest(); - /* 8029DD60 */ void forceStop(); - /* 8029DD7C */ void isFinish() const; - /* 8029DF8C */ void flush(); - }; - - /* 8029D9A4 */ void releaseHalt(u32); - /* 8029DA38 */ void getDSPHandle(int); -}; - -struct JASDSPChannel { - /* 8029D2F4 */ JASDSPChannel(); - /* 8029D320 */ void free(); - /* 8029D330 */ void start(); - /* 8029D340 */ void drop(); - /* 8029D3C8 */ void initAll(); - /* 8029D44C */ void alloc(u8, s32 (*)(u32, JASDsp::TChannel*, void*), void*); - /* 8029D4BC */ void allocForce(u8, s32 (*)(u32, JASDsp::TChannel*, void*), void*); - /* 8029D534 */ void setPriority(u8); - /* 8029D540 */ void getLowestChannel(int); - /* 8029D5D0 */ void getLowestActiveChannel(); - /* 8029D65C */ void updateProc(); - /* 8029D89C */ void updateAll(); - /* 8029D910 */ void killActiveChannel(); - /* 8029D948 */ void getHandle(u32); - - static u8 sDspChannels[4 + 4 /* padding */]; -}; - -// -// Forward References: -// - -extern "C" void __ct__13JASDSPChannelFv(); -extern "C" void free__13JASDSPChannelFv(); -extern "C" void start__13JASDSPChannelFv(); -extern "C" void drop__13JASDSPChannelFv(); -extern "C" void initAll__13JASDSPChannelFv(); -extern "C" void alloc__13JASDSPChannelFUcPFUlPQ26JASDsp8TChannelPv_lPv(); -extern "C" void allocForce__13JASDSPChannelFUcPFUlPQ26JASDsp8TChannelPv_lPv(); -extern "C" void setPriority__13JASDSPChannelFUc(); -extern "C" void getLowestChannel__13JASDSPChannelFi(); -extern "C" void getLowestActiveChannel__13JASDSPChannelFv(); -extern "C" void updateProc__13JASDSPChannelFv(); -extern "C" void updateAll__13JASDSPChannelFv(); -extern "C" void killActiveChannel__13JASDSPChannelFv(); -extern "C" void getHandle__13JASDSPChannelFUl(); -extern "C" u8 sDspChannels__13JASDSPChannel[4 + 4 /* padding */]; - -// -// External References: -// - -extern "C" void releaseHalt__6JASDspFUl(); -extern "C" void getDSPHandle__6JASDspFi(); -extern "C" void init__Q26JASDsp8TChannelFv(); -extern "C" void playStart__Q26JASDsp8TChannelFv(); -extern "C" void playStop__Q26JASDsp8TChannelFv(); -extern "C" void replyFinishRequest__Q26JASDsp8TChannelFv(); -extern "C" void forceStop__Q26JASDsp8TChannelFv(); -extern "C" void isFinish__Q26JASDsp8TChannelCFv(); -extern "C" void flush__Q26JASDsp8TChannelFv(); -extern "C" void* __nwa__FUlP7JKRHeapi(); -extern "C" void __construct_new_array(); -extern "C" void _savegpr_28(); -extern "C" void _restgpr_28(); -extern "C" extern u8 JASDram[4]; - -// -// Declarations: -// +/* 804512E0-804512E8 0007E0 0004+04 5/5 0/0 0/0 .sbss sDspChannels__13JASDSPChannel */ +JASDSPChannel* JASDSPChannel::sDspChannels; /* 8029D2F4-8029D320 297C34 002C+00 1/1 0/0 0/0 .text __ct__13JASDSPChannelFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JASDSPChannel::JASDSPChannel() { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPChannel/__ct__13JASDSPChannelFv.s" +JASDSPChannel::JASDSPChannel() : + mStatus(STATUS_INACTIVE), + mPriority(-1), + mFlags(0), + field_0xc(0), + mCallback(NULL), + mCallbackData(NULL), + mChannel(NULL) +{ + /* empty function */ } -#pragma pop /* 8029D320-8029D330 297C60 0010+00 0/0 3/3 0/0 .text free__13JASDSPChannelFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDSPChannel::free() { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPChannel/free__13JASDSPChannelFv.s" +void JASDSPChannel::free() { + mCallback = NULL; + mCallbackData = NULL; } -#pragma pop /* 8029D330-8029D340 297C70 0010+00 0/0 2/2 0/0 .text start__13JASDSPChannelFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDSPChannel::start() { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPChannel/start__13JASDSPChannelFv.s" +void JASDSPChannel::start() { + mFlags |= 1; } -#pragma pop /* 8029D340-8029D3C8 297C80 0088+00 3/3 2/2 0/0 .text drop__13JASDSPChannelFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDSPChannel::drop() { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPChannel/drop__13JASDSPChannelFv.s" +void JASDSPChannel::drop() { + if (mCallback != NULL) { + mCallback(CB_DROP, NULL, mCallbackData); + } + mCallback = NULL; + mCallbackData = NULL; + mPriority = -1; + mFlags &= ~1; + if (mStatus == STATUS_ACTIVE) { + mFlags |= 2; + mStatus = STATUS_DROP; + } } -#pragma pop - -/* ############################################################################################## */ -/* 804512E0-804512E8 0007E0 0004+04 5/5 0/0 0/0 .sbss sDspChannels__13JASDSPChannel */ -u8 JASDSPChannel::sDspChannels[4 + 4 /* padding */]; /* 8029D3C8-8029D44C 297D08 0084+00 0/0 1/1 0/0 .text initAll__13JASDSPChannelFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDSPChannel::initAll() { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPChannel/initAll__13JASDSPChannelFv.s" +void JASDSPChannel::initAll() { + sDspChannels = new (JASDram, 0x20) JASDSPChannel[0x40]; + for (int i = 0; i < 0x40; i++) { + sDspChannels[i].mChannel = JASDsp::getDSPHandle(i); + } } -#pragma pop /* 8029D44C-8029D4BC 297D8C 0070+00 0/0 1/1 0/0 .text * alloc__13JASDSPChannelFUcPFUlPQ26JASDsp8TChannelPv_lPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDSPChannel::alloc(u8 param_0, s32 (*param_1)(u32, JASDsp::TChannel*, void*), - void* param_2) { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPChannel/alloc__13JASDSPChannelFUcPFUlPQ26JASDsp8TChannelPv_lPv.s" +JASDSPChannel* JASDSPChannel::alloc(u8 i_priority, Callback i_callback, void* i_callbackData) { + JASDSPChannel* channel = getLowestChannel(i_priority); + if (channel == NULL) { + return NULL; + } + channel->drop(); + channel->mPriority = i_priority; + channel->field_0xc = 0; + channel->mCallback = i_callback; + channel->mCallbackData = i_callbackData; + return channel; } -#pragma pop /* 8029D4BC-8029D534 297DFC 0078+00 0/0 1/1 0/0 .text * allocForce__13JASDSPChannelFUcPFUlPQ26JASDsp8TChannelPv_lPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDSPChannel::allocForce(u8 param_0, s32 (*param_1)(u32, JASDsp::TChannel*, void*), - void* param_2) { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPChannel/allocForce__13JASDSPChannelFUcPFUlPQ26JASDsp8TChannelPv_lPv.s" +JASDSPChannel* JASDSPChannel::allocForce(u8 i_priority, Callback i_callback, void* i_callbackData) { + JASDSPChannel* channel = getLowestChannel(i_priority); + if (channel == NULL) { + return NULL; + } + channel->mStatus = STATUS_INACTIVE; + channel->drop(); + channel->mPriority = i_priority; + channel->field_0xc = 0; + channel->mCallback = i_callback; + channel->mCallbackData = i_callbackData; + return channel; } -#pragma pop /* 8029D534-8029D540 297E74 000C+00 0/0 1/1 0/0 .text setPriority__13JASDSPChannelFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDSPChannel::setPriority(u8 param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPChannel/setPriority__13JASDSPChannelFUc.s" +void JASDSPChannel::setPriority(u8 i_priority) { + mPriority = i_priority; } -#pragma pop /* 8029D540-8029D5D0 297E80 0090+00 2/2 0/0 0/0 .text getLowestChannel__13JASDSPChannelFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDSPChannel::getLowestChannel(int param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPChannel/getLowestChannel__13JASDSPChannelFi.s" +JASDSPChannel* JASDSPChannel::getLowestChannel(int i_priority) { + s16 best_priority = 0xff; + int best_index = -1; + int best_unknown = 0; + for (int i = 0; i < 0x40; i++) { + JASDSPChannel* channel = &sDspChannels[i]; + s16 priority = channel->mPriority; + if (priority < 0) { + return channel; + } + if (priority <= i_priority && priority <= best_priority) { + if (priority != best_priority || channel->field_0xc > best_unknown) { + best_unknown = channel->field_0xc; + best_index = i; + best_priority = priority; + } + } + } + if (best_index < 0) { + return NULL; + } + return &sDspChannels[best_index]; } -#pragma pop /* 8029D5D0-8029D65C 297F10 008C+00 1/1 0/0 0/0 .text getLowestActiveChannel__13JASDSPChannelFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDSPChannel::getLowestActiveChannel() { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPChannel/getLowestActiveChannel__13JASDSPChannelFv.s" +JASDSPChannel* JASDSPChannel::getLowestActiveChannel() { + s16 best_priority = 0xff; + int best_index = -1; + int best_unknown = 0; + for (int i = 0; i < 0x40; i++) { + JASDSPChannel* channel = &sDspChannels[i]; + if (channel->mStatus == STATUS_ACTIVE) { + s16 priority = channel->mPriority; + if (priority < 0x7f && priority <= best_priority) { + if (priority != best_priority || channel->field_0xc > best_unknown) { + best_unknown = channel->field_0xc; + best_index = i; + best_priority = priority; + } + } + } + } + if (best_index < 0) { + return NULL; + } + return &sDspChannels[best_index]; } -#pragma pop /* 8029D65C-8029D89C 297F9C 0240+00 1/1 0/0 0/0 .text updateProc__13JASDSPChannelFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDSPChannel::updateProc() { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPChannel/updateProc__13JASDSPChannelFv.s" +void JASDSPChannel::updateProc() { + int ret; + if (mChannel->isFinish()) { + mFlags &= ~2; + if (mStatus == STATUS_ACTIVE) { + if (mCallback != NULL) { + ret = mCallback(CB_STOP, NULL, mCallbackData); + } else { + ret = -1; + } + if (ret < 0) { + mPriority = -1; + } + } + mStatus = STATUS_INACTIVE; + mChannel->replyFinishRequest(); + mChannel->flush(); + } else if (mFlags & 2) { + mFlags &= ~2; + mChannel->forceStop(); + mChannel->flush(); + } else if (mStatus != STATUS_DROP) { + if ((mFlags & 1) && mStatus == STATUS_INACTIVE) { + mFlags &= ~1; + mStatus = STATUS_ACTIVE; + mChannel->init(); + if (mCallback != NULL) { + ret = mCallback(CB_START, mChannel, mCallbackData); + } else { + ret = 0; + } + if (ret < 0) { + mStatus = STATUS_INACTIVE; + if (mCallback != NULL) { + ret = mCallback(CB_STOP, NULL, mCallbackData); + } else { + ret = -1; + } + if (ret < 0) { + mPriority = -1; + } + mChannel->flush(); + } else { + mChannel->playStart(); + mChannel->flush(); + } + } else if (mStatus != STATUS_INACTIVE) { + bool flush = false; + if (mCallback != NULL) { + ret = mCallback(CB_PLAY, mChannel, mCallbackData); + flush = true; + } else { + ret = 0; + } + if (ret < 0) { + mStatus = STATUS_INACTIVE; + if (mCallback != NULL) { + ret = mCallback(CB_STOP, NULL, mCallbackData); + } else { + ret = -1; + } + if (ret < 0) { + mPriority = -1; + } + mChannel->playStop(); + mChannel->flush(); + } else { + field_0xc++; + if (flush) { + mChannel->flush(); + } + } + } + } } -#pragma pop /* 8029D89C-8029D910 2981DC 0074+00 0/0 1/1 0/0 .text updateAll__13JASDSPChannelFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDSPChannel::updateAll() { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPChannel/updateAll__13JASDSPChannelFv.s" +void JASDSPChannel::updateAll() { + for (u32 i = 0; i < 0x40; i++) { + if ((i & 0xf) == 0 && i != 0) { + JASDsp::releaseHalt((i - 1) >> 4); + } + sDspChannels[i].updateProc(); + } + JASDsp::releaseHalt(3); } -#pragma pop /* 8029D910-8029D948 298250 0038+00 0/0 1/1 0/0 .text killActiveChannel__13JASDSPChannelFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDSPChannel::killActiveChannel() { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPChannel/killActiveChannel__13JASDSPChannelFv.s" +int JASDSPChannel::killActiveChannel() { + JASDSPChannel* channel = getLowestActiveChannel(); + if (channel == NULL) { + return 0; + } else { + channel->drop(); + return 1; + } } -#pragma pop /* 8029D948-8029D958 298288 0010+00 0/0 1/1 0/0 .text getHandle__13JASDSPChannelFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASDSPChannel::getHandle(u32 param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASDSPChannel/getHandle__13JASDSPChannelFUl.s" +JASDSPChannel* JASDSPChannel::getHandle(u32 i_index) { + return &sDspChannels[i_index]; } -#pragma pop diff --git a/libs/JSystem/JAudio2/JASDSPInterface.cpp b/libs/JSystem/JAudio2/JASDSPInterface.cpp index 87e4024e33..9c601948c2 100644 --- a/libs/JSystem/JAudio2/JASDSPInterface.cpp +++ b/libs/JSystem/JAudio2/JASDSPInterface.cpp @@ -749,10 +749,5 @@ u16 DSP_CreateMap2(u32 param_0) { return r30; } -/* ############################################################################################## */ /* 804507B8-804507C0 000238 0004+04 0/0 5/5 0/0 .sdata one__11JASWaveInfo */ -u32 JASWaveInfo::one[1 + 1 /* padding */] = { - 0x00000001, - /* padding */ - 0x00000000, -}; +u32 JASWaveInfo::one = 1; diff --git a/libs/JSystem/JAudio2/JASDrumSet.cpp b/libs/JSystem/JAudio2/JASDrumSet.cpp index 0320754549..d0cf360165 100644 --- a/libs/JSystem/JAudio2/JASDrumSet.cpp +++ b/libs/JSystem/JAudio2/JASDrumSet.cpp @@ -75,7 +75,7 @@ bool JASDrumSet::getParam(int param_0, int param_1, JASInstParam* param_2) const param_2->mPitch = perc->mPitch; param_2->mPan = perc->mPan; param_2->field_0x18 = perc->field_0xc; - osc._00 = 0; + osc.mTarget = 0; osc._04 = 1.0f; osc.mTable = NULL; osc._0C = NULL; diff --git a/libs/JSystem/JAudio2/JASHeapCtrl.cpp b/libs/JSystem/JAudio2/JASHeapCtrl.cpp index 04de9ef7ee..0dca0bbc74 100644 --- a/libs/JSystem/JAudio2/JASHeapCtrl.cpp +++ b/libs/JSystem/JAudio2/JASHeapCtrl.cpp @@ -340,7 +340,7 @@ u32 JASKernel::sAramBase; JKRHeap* JASKernel::sSystemHeap; /* 8045121C-80451220 00071C 0004+00 2/1 0/0 0/0 .sbss sCommandHeap__9JASKernel */ -void* JASKernel::sCommandHeap; +JASMemChunkPool<1024, JASThreadingModel::ObjectLevelLockable>* JASKernel::sCommandHeap; /* 802909B8-80290AC0 28B2F8 0108+00 0/0 1/1 0/0 .text setupRootHeap__9JASKernelFP12JKRSolidHeapUl */ @@ -371,7 +371,7 @@ JKRHeap* JASKernel::getSystemHeap() { } /* 80290AC8-80290AD0 -00001 0008+00 0/0 0/0 0/0 .text getCommandHeap__9JASKernelFv */ -void* JASKernel::getCommandHeap() { +JASMemChunkPool<1024, JASThreadingModel::ObjectLevelLockable>* JASKernel::getCommandHeap() { return JASKernel::sCommandHeap; } diff --git a/libs/JSystem/JAudio2/JASTaskThread.cpp b/libs/JSystem/JAudio2/JASTaskThread.cpp index 4020226837..7d9091f6f6 100644 --- a/libs/JSystem/JAudio2/JASTaskThread.cpp +++ b/libs/JSystem/JAudio2/JASTaskThread.cpp @@ -47,15 +47,6 @@ extern "C" u8 sSystemHeap__7JKRHeap[4]; // Declarations: // -/* ############################################################################################## */ -/* 803C5B58-803C5B68 022C78 0010+00 2/2 0/0 0/0 .data __vt__13JASTaskThread */ -SECTION_DATA extern void* __vt__13JASTaskThread[4] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__13JASTaskThreadFv, - (void*)run__13JASTaskThreadFv, -}; - /* 8028F6C4-8028F724 28A004 0060+00 0/0 1/1 0/0 .text __ct__13JASTaskThreadFiiUl */ JASTaskThread::JASTaskThread(int param_0, int param_1, u32 param_2) : JKRThread(JASDram, param_2, param_1, param_0) { field_0x84 = false; @@ -63,37 +54,25 @@ JASTaskThread::JASTaskThread(int param_0, int param_1, u32 param_2) : JKRThread( } /* 8028F724-8028F850 28A064 012C+00 1/0 0/0 0/0 .text __dt__13JASTaskThreadFv */ -// vtable maybe -#ifdef NONMATCHING JASTaskThread::~JASTaskThread() { OSMessage msg; BOOL received; - waitmsg: - msg = waitMessage(&received); - if (!received) return; - u32 heap = JASKernel::getCommandHeap(); - ((ThreadMemPool*)msg)->free((void*)heap); - goto waitmsg; + while (true) { + msg = waitMessage(&received); + if (!received) { + return; + } + ThreadMemPool* heap = JASKernel::getCommandHeap(); + heap->free(msg); + } } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -// asm JASTaskThread::~JASTaskThread() { -extern "C" asm void __dt__13JASTaskThreadFv() { - nofralloc -#include "asm/JSystem/JAudio2/JASTaskThread/__dt__13JASTaskThreadFv.s" -} -#pragma pop -#endif /* 8028F850-8028F9EC 28A190 019C+00 1/1 0/0 0/0 .text allocCallStack__13JASTaskThreadFPFPv_vPCvUl */ void* JASTaskThread::allocCallStack(void (*param_0)(void*), void const* param_1, u32 param_2) { ThreadMemPool* heap; u32 size = param_2 + 8; - heap = - (ThreadMemPool*)JASKernel::getCommandHeap(); + heap = JASKernel::getCommandHeap(); JASThreadCallStack *callStack = (JASThreadCallStack*) heap->alloc(size); if (callStack == NULL) { return NULL; @@ -108,8 +87,7 @@ void* JASTaskThread::allocCallStack(void (*param_0)(void*), void const* param_1, void* JASTaskThread::allocCallStack(void (*runFunc)(void*), void* param_1) { ThreadMemPool* heap; JASThreadCallStack *callStack; - heap = - (ThreadMemPool*)JASKernel::getCommandHeap(); + heap = JASKernel::getCommandHeap(); callStack = (JASThreadCallStack*)heap->alloc(0xc); if (callStack == NULL) { return NULL; @@ -130,8 +108,8 @@ int JASTaskThread::sendCmdMsg(void (*param_0)(void*), void const* param_1, u32 p } int iVar2 = sendMessage(pvVar1); if (iVar2 == 0) { - void* heap = JASKernel::getCommandHeap(); - ((ThreadMemPool*)pvVar1)->free(heap); + ThreadMemPool* heap = JASKernel::getCommandHeap(); + heap->free(pvVar1); } return iVar2; } @@ -146,8 +124,8 @@ int JASTaskThread::sendCmdMsg(void (*param_0)(void*), void* param_1) { } int iVar2 = sendMessage(pvVar1); if (iVar2 == 0) { - void* heap = JASKernel::getCommandHeap(); - ((ThreadMemPool*)pvVar1)->free(heap); + ThreadMemPool* heap = JASKernel::getCommandHeap(); + heap->free(pvVar1); } return iVar2; } @@ -155,7 +133,7 @@ int JASTaskThread::sendCmdMsg(void (*param_0)(void*), void* param_1) { /* 8028FD4C-8028FE88 28A68C 013C+00 1/0 0/0 0/0 .text run__13JASTaskThreadFv */ // Regalloc #ifdef NONMATCHING -void JASTaskThread::run() { +void* JASTaskThread::run() { OSInitFastCast(); do { JASThreadCallStack* ppcVar1 = (JASThreadCallStack*)waitMessageBlock(); @@ -167,15 +145,15 @@ void JASTaskThread::run() { } else { ppcVar1->mRunFunc(ppcVar1->field_0x8.pBuffer); } - u32 heap = JASKernel::getCommandHeap(); - ((ThreadMemPool*)ppcVar1)->free((void*)heap); + ThreadMemPool* heap = JASKernel::getCommandHeap(); + heap->free(ppcVar1); } while (true); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JASTaskThread::run() { +asm void* JASTaskThread::run() { nofralloc #include "asm/JSystem/JAudio2/JASTaskThread/run__13JASTaskThreadFv.s" }