mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-06-08 03:37:02 -04:00
JAS work (#2069)
This commit is contained in:
+4
-4
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
-16
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
-71
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
-42
@@ -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
|
||||
-60
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
-221
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
-83
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
-33
@@ -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
|
||||
-31
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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 */
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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<JASChannel> {
|
||||
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 */
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -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<ChunkSize,T>*)ptr)->mMutex);
|
||||
MemoryChunk* chunk = ((JASMemChunkPool<ChunkSize,T>*)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<ChunkSize,T>*)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 <typename T>
|
||||
class JASPoolAllocObject {
|
||||
public:
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 */
|
||||
@@ -444,6 +444,11 @@ struct TUtil {
|
||||
}
|
||||
};
|
||||
|
||||
template<>
|
||||
struct TUtil<f32> {
|
||||
static inline f32 PI() { return 3.1415927f; }
|
||||
};
|
||||
|
||||
template<>
|
||||
struct TUtil<double> {
|
||||
static inline double epsilon() { return 32.0f * FLT_EPSILON; }
|
||||
|
||||
@@ -4,6 +4,14 @@
|
||||
#include "dolphin/types.h"
|
||||
#include "utility.h"
|
||||
|
||||
template<typename T>
|
||||
struct TAngleConstant_;
|
||||
|
||||
template<>
|
||||
struct TAngleConstant_<f32> {
|
||||
static inline f32 RADIAN_DEG360() { return 6.2831855f; }
|
||||
};
|
||||
|
||||
struct TSinCosTable {
|
||||
std::pair<f32, f32> 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_<f32>::RADIAN_DEG360() * radian) & 0x1fffU].first;
|
||||
}
|
||||
return table[(u16)(8192.0f / TAngleConstant_<f32>::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 */
|
||||
|
||||
@@ -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 <typename A0>
|
||||
struct JASMemPool_MultiThreaded {};
|
||||
/* JASMemPool_MultiThreaded<JASChannel> */
|
||||
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 */
|
||||
|
||||
@@ -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;
|
||||
|
||||
+459
-309
@@ -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<JASChannel*>(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<f32>::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<f32>::PI() * 0.5f);
|
||||
break;
|
||||
case 2:
|
||||
case 6:
|
||||
volume *= scale;
|
||||
break;
|
||||
default:
|
||||
if (JASDriver::getOutputMode() == 0) {
|
||||
volume *= scale;
|
||||
} else {
|
||||
volume *= JMASinRadian(scale * JGeometry::TUtil<f32>::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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user