diff --git a/Progress.md b/Progress.md index 206fbfec934..77e2d12a410 100644 --- a/Progress.md +++ b/Progress.md @@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes) .init | 97.972973% | 9280 | 9472 .extab | 100.000000% | 96 | 96 .extabindex | 100.000000% | 96 | 96 -.text | 45.347534% | 1630944 | 3596544 +.text | 45.630361% | 1641116 | 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.107875% | 2054880 | 4020672 +Total | 51.360867% | 2065052 | 4020672 ## Total Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- -main.dol | 51.107875% | 2054880 | 4020672 +main.dol | 51.360867% | 2065052 | 4020672 RELs | 35.736871% | 4109856 | 11500324 -Total | 39.718688% | 6164736 | 15520996 +Total | 39.784225% | 6174908 | 15520996 ## RELs diff --git a/asm/JSystem/JAudio2/JASTrack/append__Q28JASTrack5TListFP8JASTrack.s b/asm/JSystem/JAudio2/JASTrack/append__Q28JASTrack5TListFP8JASTrack.s deleted file mode 100644 index 2136ec63347..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/append__Q28JASTrack5TListFP8JASTrack.s +++ /dev/null @@ -1,38 +0,0 @@ -lbl_80292F90: -/* 80292F90 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80292F94 7C 08 02 A6 */ mflr r0 -/* 80292F98 90 01 00 34 */ stw r0, 0x34(r1) -/* 80292F9C 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 80292FA0 93 C1 00 28 */ stw r30, 0x28(r1) -/* 80292FA4 7C 7E 1B 78 */ mr r30, r3 -/* 80292FA8 7C 9F 23 78 */ mr r31, r4 -/* 80292FAC 88 03 00 0C */ lbz r0, 0xc(r3) -/* 80292FB0 28 00 00 00 */ cmplwi r0, 0 -/* 80292FB4 40 82 00 24 */ bne lbl_80292FD8 -/* 80292FB8 3C 60 80 29 */ lis r3, cbSeqMain__Q28JASTrack5TListFPv@ha /* 0x80292F6C@ha */ -/* 80292FBC 38 63 2F 6C */ addi r3, r3, cbSeqMain__Q28JASTrack5TListFPv@l /* 0x80292F6C@l */ -/* 80292FC0 7F C4 F3 78 */ mr r4, r30 -/* 80292FC4 48 00 B2 B1 */ bl registerSubFrameCallback__9JASDriverFPFPv_lPv -/* 80292FC8 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80292FCC 41 82 00 38 */ beq lbl_80293004 -/* 80292FD0 38 00 00 01 */ li r0, 1 -/* 80292FD4 98 1E 00 0C */ stb r0, 0xc(r30) -lbl_80292FD8: -/* 80292FD8 38 1E 00 04 */ addi r0, r30, 4 -/* 80292FDC 90 01 00 0C */ stw r0, 0xc(r1) -/* 80292FE0 90 01 00 08 */ stw r0, 8(r1) -/* 80292FE4 90 01 00 1C */ stw r0, 0x1c(r1) -/* 80292FE8 90 01 00 18 */ stw r0, 0x18(r1) -/* 80292FEC 38 DF 02 40 */ addi r6, r31, 0x240 -/* 80292FF0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80292FF4 38 61 00 10 */ addi r3, r1, 0x10 -/* 80292FF8 7F C4 F3 78 */ mr r4, r30 -/* 80292FFC 38 A1 00 14 */ addi r5, r1, 0x14 -/* 80293000 48 04 9B A9 */ bl Insert__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorPQ27JGadget13TLinkListNode -lbl_80293004: -/* 80293004 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 80293008 83 C1 00 28 */ lwz r30, 0x28(r1) -/* 8029300C 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80293010 7C 08 03 A6 */ mtlr r0 -/* 80293014 38 21 00 30 */ addi r1, r1, 0x30 -/* 80293018 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/assignExtBuffer__8JASTrackFUlP14JASSoundParams.s b/asm/JSystem/JAudio2/JASTrack/assignExtBuffer__8JASTrackFUlP14JASSoundParams.s deleted file mode 100644 index 54c23165ba9..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/assignExtBuffer__8JASTrackFUlP14JASSoundParams.s +++ /dev/null @@ -1,6 +0,0 @@ -lbl_802919F4: -/* 802919F4 54 80 10 3A */ slwi r0, r4, 2 -/* 802919F8 7C 63 02 14 */ add r3, r3, r0 -/* 802919FC 80 63 01 70 */ lwz r3, 0x170(r3) -/* 80291A00 90 A3 00 48 */ stw r5, 0x48(r3) -/* 80291A04 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/cbSeqMain__Q28JASTrack5TListFPv.s b/asm/JSystem/JAudio2/JASTrack/cbSeqMain__Q28JASTrack5TListFPv.s deleted file mode 100644 index a26ca4db428..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/cbSeqMain__Q28JASTrack5TListFPv.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_80292F6C: -/* 80292F6C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80292F70 7C 08 02 A6 */ mflr r0 -/* 80292F74 90 01 00 14 */ stw r0, 0x14(r1) -/* 80292F78 48 00 00 A5 */ bl seqMain__Q28JASTrack5TListFv -/* 80292F7C 38 60 00 00 */ li r3, 0 -/* 80292F80 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80292F84 7C 08 03 A6 */ mtlr r0 -/* 80292F88 38 21 00 10 */ addi r1, r1, 0x10 -/* 80292F8C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/channelUpdateCallback__8JASTrackFUlP10JASChannelPQ26JASDsp8TChannelPv.s b/asm/JSystem/JAudio2/JASTrack/channelUpdateCallback__8JASTrackFUlP10JASChannelPQ26JASDsp8TChannelPv.s deleted file mode 100644 index b39d0a52813..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/channelUpdateCallback__8JASTrackFUlP10JASChannelPQ26JASDsp8TChannelPv.s +++ /dev/null @@ -1,65 +0,0 @@ -lbl_80292CA4: -/* 80292CA4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80292CA8 7C 08 02 A6 */ mflr r0 -/* 80292CAC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80292CB0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80292CB4 93 C1 00 08 */ stw r30, 8(r1) -/* 80292CB8 7C 9E 23 78 */ mr r30, r4 -/* 80292CBC 7C DF 33 78 */ mr r31, r6 -/* 80292CC0 80 06 00 4C */ lwz r0, 0x4c(r6) -/* 80292CC4 2C 03 00 02 */ cmpwi r3, 2 -/* 80292CC8 41 82 00 7C */ beq lbl_80292D44 -/* 80292CCC 40 80 00 10 */ bge lbl_80292CDC -/* 80292CD0 2C 03 00 00 */ cmpwi r3, 0 -/* 80292CD4 40 80 00 14 */ bge lbl_80292CE8 -/* 80292CD8 48 00 00 98 */ b lbl_80292D70 -lbl_80292CDC: -/* 80292CDC 2C 03 00 04 */ cmpwi r3, 4 -/* 80292CE0 40 80 00 90 */ bge lbl_80292D70 -/* 80292CE4 48 00 00 40 */ b lbl_80292D24 -lbl_80292CE8: -/* 80292CE8 C0 1F 00 20 */ lfs f0, 0x20(r31) -/* 80292CEC D0 1E 00 9C */ stfs f0, 0x9c(r30) -/* 80292CF0 C0 1F 00 24 */ lfs f0, 0x24(r31) -/* 80292CF4 D0 1E 00 A0 */ stfs f0, 0xa0(r30) -/* 80292CF8 C0 1F 00 28 */ lfs f0, 0x28(r31) -/* 80292CFC D0 1E 00 A4 */ stfs f0, 0xa4(r30) -/* 80292D00 C0 1F 00 2C */ lfs f0, 0x2c(r31) -/* 80292D04 D0 1E 00 A8 */ stfs f0, 0xa8(r30) -/* 80292D08 C0 1F 00 30 */ lfs f0, 0x30(r31) -/* 80292D0C D0 1E 00 AC */ stfs f0, 0xac(r30) -/* 80292D10 C0 1F 00 34 */ lfs f0, 0x34(r31) -/* 80292D14 D0 1E 00 B0 */ stfs f0, 0xb0(r30) -/* 80292D18 7C 03 03 78 */ mr r3, r0 -/* 80292D1C 4B FF FE D9 */ bl updateChannel__8JASTrackFP10JASChannelPQ26JASDsp8TChannel -/* 80292D20 48 00 00 50 */ b lbl_80292D70 -lbl_80292D24: -/* 80292D24 7F C3 F3 78 */ mr r3, r30 -/* 80292D28 38 80 00 00 */ li r4, 0 -/* 80292D2C 48 00 7D A5 */ bl release__10JASChannelFUs -/* 80292D30 7F C3 F3 78 */ mr r3, r30 -/* 80292D34 48 00 8E C9 */ bl free__10JASChannelFv -/* 80292D38 38 00 00 00 */ li r0, 0 -/* 80292D3C 90 1F 00 00 */ stw r0, 0(r31) -/* 80292D40 48 00 00 30 */ b lbl_80292D70 -lbl_80292D44: -/* 80292D44 38 60 00 00 */ li r3, 0 -/* 80292D48 38 00 00 08 */ li r0, 8 -/* 80292D4C 7C 09 03 A6 */ mtctr r0 -lbl_80292D50: -/* 80292D50 7C 1F 18 2E */ lwzx r0, r31, r3 -/* 80292D54 7C 1E 00 40 */ cmplw r30, r0 -/* 80292D58 40 82 00 10 */ bne lbl_80292D68 -/* 80292D5C 38 00 00 00 */ li r0, 0 -/* 80292D60 7C 1F 19 2E */ stwx r0, r31, r3 -/* 80292D64 48 00 00 0C */ b lbl_80292D70 -lbl_80292D68: -/* 80292D68 38 63 00 04 */ addi r3, r3, 4 -/* 80292D6C 42 00 FF E4 */ bdnz lbl_80292D50 -lbl_80292D70: -/* 80292D70 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80292D74 83 C1 00 08 */ lwz r30, 8(r1) -/* 80292D78 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80292D7C 7C 08 03 A6 */ mtlr r0 -/* 80292D80 38 21 00 10 */ addi r1, r1, 0x10 -/* 80292D84 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/checkNoteStop__8JASTrackCFUl.s b/asm/JSystem/JAudio2/JASTrack/checkNoteStop__8JASTrackCFUl.s deleted file mode 100644 index bb5c24ba504..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/checkNoteStop__8JASTrackCFUl.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_80292220: -/* 80292220 38 A0 00 00 */ li r5, 0 -/* 80292224 54 84 10 3A */ slwi r4, r4, 2 -/* 80292228 80 03 01 D0 */ lwz r0, 0x1d0(r3) -/* 8029222C 7C 09 03 A6 */ mtctr r0 -/* 80292230 28 00 00 00 */ cmplwi r0, 0 -/* 80292234 40 81 00 30 */ ble lbl_80292264 -lbl_80292238: -/* 80292238 38 05 01 70 */ addi r0, r5, 0x170 -/* 8029223C 7C 03 00 2E */ lwzx r0, r3, r0 -/* 80292240 28 00 00 00 */ cmplwi r0, 0 -/* 80292244 41 82 00 18 */ beq lbl_8029225C -/* 80292248 7C 04 00 2E */ lwzx r0, r4, r0 -/* 8029224C 28 00 00 00 */ cmplwi r0, 0 -/* 80292250 41 82 00 0C */ beq lbl_8029225C -/* 80292254 38 60 00 00 */ li r3, 0 -/* 80292258 4E 80 00 20 */ blr -lbl_8029225C: -/* 8029225C 38 A5 00 04 */ addi r5, r5, 4 -/* 80292260 42 00 FF D8 */ bdnz lbl_80292238 -lbl_80292264: -/* 80292264 38 60 00 01 */ li r3, 1 -/* 80292268 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/close__8JASTrackFv.s b/asm/JSystem/JAudio2/JASTrack/close__8JASTrackFv.s deleted file mode 100644 index 11220d17e99..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/close__8JASTrackFv.s +++ /dev/null @@ -1,55 +0,0 @@ -lbl_80291AC8: -/* 80291AC8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80291ACC 7C 08 02 A6 */ mflr r0 -/* 80291AD0 90 01 00 24 */ stw r0, 0x24(r1) -/* 80291AD4 39 61 00 20 */ addi r11, r1, 0x20 -/* 80291AD8 48 0D 06 F9 */ bl _savegpr_26 -/* 80291ADC 7C 7A 1B 78 */ mr r26, r3 -/* 80291AE0 3B 80 00 00 */ li r28, 0 -/* 80291AE4 3B E0 00 00 */ li r31, 0 -/* 80291AE8 7F FE FB 78 */ mr r30, r31 -lbl_80291AEC: -/* 80291AEC 3B BF 01 30 */ addi r29, r31, 0x130 -/* 80291AF0 7F 7A E8 2E */ lwzx r27, r26, r29 -/* 80291AF4 28 1B 00 00 */ cmplwi r27, 0 -/* 80291AF8 41 82 00 28 */ beq lbl_80291B20 -/* 80291AFC 7F 63 DB 78 */ mr r3, r27 -/* 80291B00 4B FF FF C9 */ bl close__8JASTrackFv -/* 80291B04 88 1B 02 16 */ lbz r0, 0x216(r27) -/* 80291B08 54 00 E7 FF */ rlwinm. r0, r0, 0x1c, 0x1f, 0x1f -/* 80291B0C 41 82 00 14 */ beq lbl_80291B20 -/* 80291B10 7F 63 DB 78 */ mr r3, r27 -/* 80291B14 38 80 00 01 */ li r4, 1 -/* 80291B18 4B FF F8 05 */ bl __dt__8JASTrackFv -/* 80291B1C 7F DA E9 2E */ stwx r30, r26, r29 -lbl_80291B20: -/* 80291B20 3B 9C 00 01 */ addi r28, r28, 1 -/* 80291B24 2C 1C 00 10 */ cmpwi r28, 0x10 -/* 80291B28 3B FF 00 04 */ addi r31, r31, 4 -/* 80291B2C 41 80 FF C0 */ blt lbl_80291AEC -/* 80291B30 3B 60 00 00 */ li r27, 0 -/* 80291B34 3B E0 00 00 */ li r31, 0 -/* 80291B38 48 00 00 20 */ b lbl_80291B58 -lbl_80291B3C: -/* 80291B3C 38 1F 01 70 */ addi r0, r31, 0x170 -/* 80291B40 7C 7A 00 2E */ lwzx r3, r26, r0 -/* 80291B44 28 03 00 00 */ cmplwi r3, 0 -/* 80291B48 41 82 00 08 */ beq lbl_80291B50 -/* 80291B4C 48 00 16 65 */ bl releaseAll__Q28JASTrack11TChannelMgrFv -lbl_80291B50: -/* 80291B50 3B 7B 00 01 */ addi r27, r27, 1 -/* 80291B54 3B FF 00 04 */ addi r31, r31, 4 -lbl_80291B58: -/* 80291B58 80 1A 01 D0 */ lwz r0, 0x1d0(r26) -/* 80291B5C 7C 1B 00 40 */ cmplw r27, r0 -/* 80291B60 41 80 FF DC */ blt lbl_80291B3C -/* 80291B64 38 00 00 00 */ li r0, 0 -/* 80291B68 90 1A 01 2C */ stw r0, 0x12c(r26) -/* 80291B6C 38 00 00 02 */ li r0, 2 -/* 80291B70 98 1A 02 15 */ stb r0, 0x215(r26) -/* 80291B74 39 61 00 20 */ addi r11, r1, 0x20 -/* 80291B78 48 0D 06 A5 */ bl _restgpr_26 -/* 80291B7C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80291B80 7C 08 03 A6 */ mtlr r0 -/* 80291B84 38 21 00 20 */ addi r1, r1, 0x20 -/* 80291B88 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/connectBus__8JASTrackFii.s b/asm/JSystem/JAudio2/JASTrack/connectBus__8JASTrackFii.s deleted file mode 100644 index 9b1edcf6d4d..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/connectBus__8JASTrackFii.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_80291DAC: -/* 80291DAC 54 80 08 3C */ slwi r0, r4, 1 -/* 80291DB0 7C 63 02 14 */ add r3, r3, r0 -/* 80291DB4 B0 A3 02 34 */ sth r5, 0x234(r3) -/* 80291DB8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/connectChild__8JASTrackFUlP8JASTrack.s b/asm/JSystem/JAudio2/JASTrack/connectChild__8JASTrackFUlP8JASTrack.s deleted file mode 100644 index 2d513a7093e..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/connectChild__8JASTrackFUlP8JASTrack.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_80291B8C: -/* 80291B8C 54 80 10 3A */ slwi r0, r4, 2 -/* 80291B90 7C 83 02 14 */ add r4, r3, r0 -/* 80291B94 80 04 01 30 */ lwz r0, 0x130(r4) -/* 80291B98 28 00 00 00 */ cmplwi r0, 0 -/* 80291B9C 41 82 00 0C */ beq lbl_80291BA8 -/* 80291BA0 38 60 00 00 */ li r3, 0 -/* 80291BA4 4E 80 00 20 */ blr -lbl_80291BA8: -/* 80291BA8 90 65 01 2C */ stw r3, 0x12c(r5) -/* 80291BAC 90 A4 01 30 */ stw r5, 0x130(r4) -/* 80291BB0 38 60 00 01 */ li r3, 1 -/* 80291BB4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/getRootTrack__8JASTrackFv.s b/asm/JSystem/JAudio2/JASTrack/getRootTrack__8JASTrackFv.s deleted file mode 100644 index d3fb22e4cad..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/getRootTrack__8JASTrackFv.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80292D88: -/* 80292D88 48 00 00 08 */ b lbl_80292D90 -lbl_80292D8C: -/* 80292D8C 7C 03 03 78 */ mr r3, r0 -lbl_80292D90: -/* 80292D90 80 03 01 2C */ lwz r0, 0x12c(r3) -/* 80292D94 28 00 00 00 */ cmplwi r0, 0 -/* 80292D98 40 82 FF F4 */ bne lbl_80292D8C -/* 80292D9C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/getTransposeTotal__8JASTrackCFv.s b/asm/JSystem/JAudio2/JASTrack/getTransposeTotal__8JASTrackCFv.s deleted file mode 100644 index 45daff3038f..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/getTransposeTotal__8JASTrackCFv.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_80292AA4: -/* 80292AA4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80292AA8 7C 08 02 A6 */ mflr r0 -/* 80292AAC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80292AB0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80292AB4 7C 7F 1B 78 */ mr r31, r3 -/* 80292AB8 80 63 01 2C */ lwz r3, 0x12c(r3) -/* 80292ABC 28 03 00 00 */ cmplwi r3, 0 -/* 80292AC0 41 82 00 18 */ beq lbl_80292AD8 -/* 80292AC4 4B FF FF E1 */ bl getTransposeTotal__8JASTrackCFv -/* 80292AC8 88 1F 02 2A */ lbz r0, 0x22a(r31) -/* 80292ACC 7C 00 07 74 */ extsb r0, r0 -/* 80292AD0 7C 60 1A 14 */ add r3, r0, r3 -/* 80292AD4 48 00 00 0C */ b lbl_80292AE0 -lbl_80292AD8: -/* 80292AD8 88 7F 02 2A */ lbz r3, 0x22a(r31) -/* 80292ADC 7C 63 07 74 */ extsb r3, r3 -lbl_80292AE0: -/* 80292AE0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80292AE4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80292AE8 7C 08 03 A6 */ mtlr r0 -/* 80292AEC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80292AF0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/inherit__8JASTrackFRC8JASTrack.s b/asm/JSystem/JAudio2/JASTrack/inherit__8JASTrackFRC8JASTrack.s deleted file mode 100644 index ef88d3fb101..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/inherit__8JASTrackFRC8JASTrack.s +++ /dev/null @@ -1,46 +0,0 @@ -lbl_8029194C: -/* 8029194C 88 04 02 16 */ lbz r0, 0x216(r4) -/* 80291950 54 05 DF FE */ rlwinm r5, r0, 0x1b, 0x1f, 0x1f -/* 80291954 88 03 02 16 */ lbz r0, 0x216(r3) -/* 80291958 50 A0 2E B4 */ rlwimi r0, r5, 5, 0x1a, 0x1a -/* 8029195C 98 03 02 16 */ stb r0, 0x216(r3) -/* 80291960 A0 04 02 2C */ lhz r0, 0x22c(r4) -/* 80291964 B0 03 02 2C */ sth r0, 0x22c(r3) -/* 80291968 A0 04 02 2E */ lhz r0, 0x22e(r4) -/* 8029196C B0 03 02 2E */ sth r0, 0x22e(r3) -/* 80291970 88 04 02 31 */ lbz r0, 0x231(r4) -/* 80291974 98 03 02 31 */ stb r0, 0x231(r3) -/* 80291978 88 04 02 32 */ lbz r0, 0x232(r4) -/* 8029197C 98 03 02 32 */ stb r0, 0x232(r3) -/* 80291980 80 04 02 20 */ lwz r0, 0x220(r4) -/* 80291984 90 03 02 20 */ stw r0, 0x220(r3) -/* 80291988 38 A0 00 00 */ li r5, 0 -/* 8029198C 38 00 00 08 */ li r0, 8 -/* 80291990 7C 09 03 A6 */ mtctr r0 -lbl_80291994: -/* 80291994 38 C5 01 F4 */ addi r6, r5, 0x1f4 -/* 80291998 7C 04 32 AE */ lhax r0, r4, r6 -/* 8029199C 7C 03 33 2E */ sthx r0, r3, r6 -/* 802919A0 38 A5 00 02 */ addi r5, r5, 2 -/* 802919A4 42 00 FF F0 */ bdnz lbl_80291994 -/* 802919A8 38 A0 00 00 */ li r5, 0 -/* 802919AC 38 00 00 08 */ li r0, 8 -/* 802919B0 7C 09 03 A6 */ mtctr r0 -lbl_802919B4: -/* 802919B4 38 C5 02 04 */ addi r6, r5, 0x204 -/* 802919B8 7C 04 32 AE */ lhax r0, r4, r6 -/* 802919BC 7C 03 33 2E */ sthx r0, r3, r6 -/* 802919C0 38 A5 00 02 */ addi r5, r5, 2 -/* 802919C4 42 00 FF F0 */ bdnz lbl_802919B4 -/* 802919C8 88 04 02 14 */ lbz r0, 0x214(r4) -/* 802919CC 98 03 02 14 */ stb r0, 0x214(r3) -/* 802919D0 38 A0 00 00 */ li r5, 0 -/* 802919D4 38 00 00 06 */ li r0, 6 -/* 802919D8 7C 09 03 A6 */ mtctr r0 -lbl_802919DC: -/* 802919DC 38 C5 02 34 */ addi r6, r5, 0x234 -/* 802919E0 7C 04 32 2E */ lhzx r0, r4, r6 -/* 802919E4 7C 03 33 2E */ sthx r0, r3, r6 -/* 802919E8 38 A5 00 02 */ addi r5, r5, 2 -/* 802919EC 42 00 FF F0 */ bdnz lbl_802919DC -/* 802919F0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/isMute__8JASTrackCFv.s b/asm/JSystem/JAudio2/JASTrack/isMute__8JASTrackCFv.s deleted file mode 100644 index a0019ec9719..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/isMute__8JASTrackCFv.s +++ /dev/null @@ -1,29 +0,0 @@ -lbl_80292AF4: -/* 80292AF4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80292AF8 7C 08 02 A6 */ mflr r0 -/* 80292AFC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80292B00 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80292B04 80 83 01 2C */ lwz r4, 0x12c(r3) -/* 80292B08 28 04 00 00 */ cmplwi r4, 0 -/* 80292B0C 41 82 00 2C */ beq lbl_80292B38 -/* 80292B10 3B E0 00 00 */ li r31, 0 -/* 80292B14 88 03 02 16 */ lbz r0, 0x216(r3) -/* 80292B18 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f -/* 80292B1C 40 82 00 14 */ bne lbl_80292B30 -/* 80292B20 7C 83 23 78 */ mr r3, r4 -/* 80292B24 4B FF FF D1 */ bl isMute__8JASTrackCFv -/* 80292B28 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80292B2C 41 82 00 14 */ beq lbl_80292B40 -lbl_80292B30: -/* 80292B30 3B E0 00 01 */ li r31, 1 -/* 80292B34 48 00 00 0C */ b lbl_80292B40 -lbl_80292B38: -/* 80292B38 88 03 02 16 */ lbz r0, 0x216(r3) -/* 80292B3C 54 1F D7 FE */ rlwinm r31, r0, 0x1a, 0x1f, 0x1f -lbl_80292B40: -/* 80292B40 7F E3 FB 78 */ mr r3, r31 -/* 80292B44 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80292B48 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80292B4C 7C 08 03 A6 */ mtlr r0 -/* 80292B50 38 21 00 10 */ addi r1, r1, 0x10 -/* 80292B54 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/mute__8JASTrackFb.s b/asm/JSystem/JAudio2/JASTrack/mute__8JASTrackFb.s deleted file mode 100644 index b7856495d3f..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/mute__8JASTrackFb.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_802927A0: -/* 802927A0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802927A4 7C 08 02 A6 */ mflr r0 -/* 802927A8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802927AC 88 03 02 16 */ lbz r0, 0x216(r3) -/* 802927B0 50 80 36 72 */ rlwimi r0, r4, 6, 0x19, 0x19 -/* 802927B4 98 03 02 16 */ stb r0, 0x216(r3) -/* 802927B8 54 80 06 3F */ clrlwi. r0, r4, 0x18 -/* 802927BC 41 82 00 0C */ beq lbl_802927C8 -/* 802927C0 38 80 00 0A */ li r4, 0xa -/* 802927C4 4B FF FF 45 */ bl noteOffAll__8JASTrackFUs -lbl_802927C8: -/* 802927C8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802927CC 7C 08 03 A6 */ mtlr r0 -/* 802927D0 38 21 00 10 */ addi r1, r1, 0x10 -/* 802927D4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/noteOffAll__8JASTrackFUs.s b/asm/JSystem/JAudio2/JASTrack/noteOffAll__8JASTrackFUs.s deleted file mode 100644 index fccba2b5a27..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/noteOffAll__8JASTrackFUs.s +++ /dev/null @@ -1,43 +0,0 @@ -lbl_80292708: -/* 80292708 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8029270C 7C 08 02 A6 */ mflr r0 -/* 80292710 90 01 00 24 */ stw r0, 0x24(r1) -/* 80292714 39 61 00 20 */ addi r11, r1, 0x20 -/* 80292718 48 0C FA C1 */ bl _savegpr_28 -/* 8029271C 7C 7C 1B 78 */ mr r28, r3 -/* 80292720 7C 9D 23 78 */ mr r29, r4 -/* 80292724 3B E0 00 00 */ li r31, 0 -/* 80292728 48 00 00 18 */ b lbl_80292740 -lbl_8029272C: -/* 8029272C 7F 83 E3 78 */ mr r3, r28 -/* 80292730 57 E4 06 3E */ clrlwi r4, r31, 0x18 -/* 80292734 7F A5 EB 78 */ mr r5, r29 -/* 80292738 4B FF FA 61 */ bl noteOff__8JASTrackFUlUs -/* 8029273C 3B FF 00 01 */ addi r31, r31, 1 -lbl_80292740: -/* 80292740 57 E0 06 3E */ clrlwi r0, r31, 0x18 -/* 80292744 28 00 00 08 */ cmplwi r0, 8 -/* 80292748 41 80 FF E4 */ blt lbl_8029272C -/* 8029274C 3B C0 00 00 */ li r30, 0 -/* 80292750 3B E0 00 00 */ li r31, 0 -lbl_80292754: -/* 80292754 38 1F 01 30 */ addi r0, r31, 0x130 -/* 80292758 7C 7C 00 2E */ lwzx r3, r28, r0 -/* 8029275C 28 03 00 00 */ cmplwi r3, 0 -/* 80292760 41 82 00 18 */ beq lbl_80292778 -/* 80292764 88 03 02 15 */ lbz r0, 0x215(r3) -/* 80292768 28 00 00 01 */ cmplwi r0, 1 -/* 8029276C 40 82 00 0C */ bne lbl_80292778 -/* 80292770 7F A4 EB 78 */ mr r4, r29 -/* 80292774 4B FF FF 95 */ bl noteOffAll__8JASTrackFUs -lbl_80292778: -/* 80292778 3B DE 00 01 */ addi r30, r30, 1 -/* 8029277C 2C 1E 00 10 */ cmpwi r30, 0x10 -/* 80292780 3B FF 00 04 */ addi r31, r31, 4 -/* 80292784 41 80 FF D0 */ blt lbl_80292754 -/* 80292788 39 61 00 20 */ addi r11, r1, 0x20 -/* 8029278C 48 0C FA 99 */ bl _restgpr_28 -/* 80292790 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80292794 7C 08 03 A6 */ mtlr r0 -/* 80292798 38 21 00 20 */ addi r1, r1, 0x20 -/* 8029279C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/noteOff__8JASTrackFUlUs.s b/asm/JSystem/JAudio2/JASTrack/noteOff__8JASTrackFUlUs.s deleted file mode 100644 index ec5517c490c..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/noteOff__8JASTrackFUlUs.s +++ /dev/null @@ -1,38 +0,0 @@ -lbl_80292198: -/* 80292198 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8029219C 7C 08 02 A6 */ mflr r0 -/* 802921A0 90 01 00 24 */ stw r0, 0x24(r1) -/* 802921A4 39 61 00 20 */ addi r11, r1, 0x20 -/* 802921A8 48 0D 00 29 */ bl _savegpr_26 -/* 802921AC 7C 7A 1B 78 */ mr r26, r3 -/* 802921B0 7C 9B 23 78 */ mr r27, r4 -/* 802921B4 7C BC 2B 78 */ mr r28, r5 -/* 802921B8 3B C0 00 01 */ li r30, 1 -/* 802921BC 3B A0 00 00 */ li r29, 0 -/* 802921C0 3B E0 00 00 */ li r31, 0 -/* 802921C4 48 00 00 34 */ b lbl_802921F8 -lbl_802921C8: -/* 802921C8 38 1F 01 70 */ addi r0, r31, 0x170 -/* 802921CC 7C 7A 00 2E */ lwzx r3, r26, r0 -/* 802921D0 28 03 00 00 */ cmplwi r3, 0 -/* 802921D4 41 82 00 1C */ beq lbl_802921F0 -/* 802921D8 7F 64 DB 78 */ mr r4, r27 -/* 802921DC 7F 85 E3 78 */ mr r5, r28 -/* 802921E0 48 00 10 41 */ bl noteOff__Q28JASTrack11TChannelMgrFUlUs -/* 802921E4 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802921E8 40 82 00 08 */ bne lbl_802921F0 -/* 802921EC 3B C0 00 00 */ li r30, 0 -lbl_802921F0: -/* 802921F0 3B BD 00 01 */ addi r29, r29, 1 -/* 802921F4 3B FF 00 04 */ addi r31, r31, 4 -lbl_802921F8: -/* 802921F8 80 1A 01 D0 */ lwz r0, 0x1d0(r26) -/* 802921FC 7C 1D 00 40 */ cmplw r29, r0 -/* 80292200 41 80 FF C8 */ blt lbl_802921C8 -/* 80292204 7F C3 F3 78 */ mr r3, r30 -/* 80292208 39 61 00 20 */ addi r11, r1, 0x20 -/* 8029220C 48 0D 00 11 */ bl _restgpr_26 -/* 80292210 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80292214 7C 08 03 A6 */ mtlr r0 -/* 80292218 38 21 00 20 */ addi r1, r1, 0x20 -/* 8029221C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/noteOff__Q28JASTrack11TChannelMgrFUlUs.s b/asm/JSystem/JAudio2/JASTrack/noteOff__Q28JASTrack11TChannelMgrFUlUs.s deleted file mode 100644 index 2f4aa581e52..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/noteOff__Q28JASTrack11TChannelMgrFUlUs.s +++ /dev/null @@ -1,37 +0,0 @@ -lbl_80293220: -/* 80293220 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80293224 7C 08 02 A6 */ mflr r0 -/* 80293228 90 01 00 24 */ stw r0, 0x24(r1) -/* 8029322C 39 61 00 20 */ addi r11, r1, 0x20 -/* 80293230 48 0C EF AD */ bl _savegpr_29 -/* 80293234 7C 7D 1B 78 */ mr r29, r3 -/* 80293238 54 9F 10 3A */ slwi r31, r4, 2 -/* 8029323C 7F DD F8 2E */ lwzx r30, r29, r31 -/* 80293240 28 1E 00 00 */ cmplwi r30, 0 -/* 80293244 40 82 00 0C */ bne lbl_80293250 -/* 80293248 38 60 00 00 */ li r3, 0 -/* 8029324C 48 00 00 3C */ b lbl_80293288 -lbl_80293250: -/* 80293250 54 A0 04 3F */ clrlwi. r0, r5, 0x10 -/* 80293254 40 82 00 14 */ bne lbl_80293268 -/* 80293258 7F C3 F3 78 */ mr r3, r30 -/* 8029325C 38 80 00 00 */ li r4, 0 -/* 80293260 48 00 78 71 */ bl release__10JASChannelFUs -/* 80293264 48 00 00 10 */ b lbl_80293274 -lbl_80293268: -/* 80293268 7F C3 F3 78 */ mr r3, r30 -/* 8029326C 7C A4 2B 78 */ mr r4, r5 -/* 80293270 48 00 78 61 */ bl release__10JASChannelFUs -lbl_80293274: -/* 80293274 7F C3 F3 78 */ mr r3, r30 -/* 80293278 48 00 89 85 */ bl free__10JASChannelFv -/* 8029327C 38 00 00 00 */ li r0, 0 -/* 80293280 7C 1D F9 2E */ stwx r0, r29, r31 -/* 80293284 38 60 00 01 */ li r3, 1 -lbl_80293288: -/* 80293288 39 61 00 20 */ addi r11, r1, 0x20 -/* 8029328C 48 0C EF 9D */ bl _restgpr_29 -/* 80293290 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80293294 7C 08 03 A6 */ mtlr r0 -/* 80293298 38 21 00 20 */ addi r1, r1, 0x20 -/* 8029329C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/overwriteOsc__8JASTrackFP10JASChannel.s b/asm/JSystem/JAudio2/JASTrack/overwriteOsc__8JASTrackFP10JASChannel.s deleted file mode 100644 index bd0280e32a7..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/overwriteOsc__8JASTrackFP10JASChannel.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_8029226C: -/* 8029226C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80292270 7C 08 02 A6 */ mflr r0 -/* 80292274 90 01 00 24 */ stw r0, 0x24(r1) -/* 80292278 39 61 00 20 */ addi r11, r1, 0x20 -/* 8029227C 48 0C FF 5D */ bl _savegpr_28 -/* 80292280 7C 7C 1B 78 */ mr r28, r3 -/* 80292284 7C 9D 23 78 */ mr r29, r4 -/* 80292288 3B C0 00 00 */ li r30, 0 -/* 8029228C 3B E0 00 00 */ li r31, 0 -lbl_80292290: -/* 80292290 7C BC FA 14 */ add r5, r28, r31 -/* 80292294 80 05 00 EC */ lwz r0, 0xec(r5) -/* 80292298 28 00 00 00 */ cmplwi r0, 0 -/* 8029229C 41 82 00 14 */ beq lbl_802922B0 -/* 802922A0 7F A3 EB 78 */ mr r3, r29 -/* 802922A4 7F C4 F3 78 */ mr r4, r30 -/* 802922A8 38 A5 00 E4 */ addi r5, r5, 0xe4 -/* 802922AC 48 00 88 B9 */ bl setOscInit__10JASChannelFUlPCQ213JASOscillator4Data -lbl_802922B0: -/* 802922B0 3B DE 00 01 */ addi r30, r30, 1 -/* 802922B4 28 1E 00 02 */ cmplwi r30, 2 -/* 802922B8 3B FF 00 18 */ addi r31, r31, 0x18 -/* 802922BC 41 80 FF D4 */ blt lbl_80292290 -/* 802922C0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802922C4 48 0C FF 61 */ bl _restgpr_28 -/* 802922C8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802922CC 7C 08 03 A6 */ mtlr r0 -/* 802922D0 38 21 00 20 */ addi r1, r1, 0x20 -/* 802922D4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/pause__8JASTrackFb.s b/asm/JSystem/JAudio2/JASTrack/pause__8JASTrackFb.s deleted file mode 100644 index 3fe5fedc713..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/pause__8JASTrackFb.s +++ /dev/null @@ -1,28 +0,0 @@ -lbl_80292A3C: -/* 80292A3C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80292A40 7C 08 02 A6 */ mflr r0 -/* 80292A44 90 01 00 14 */ stw r0, 0x14(r1) -/* 80292A48 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80292A4C 93 C1 00 08 */ stw r30, 8(r1) -/* 80292A50 7C 7E 1B 78 */ mr r30, r3 -/* 80292A54 7C 9F 23 78 */ mr r31, r4 -/* 80292A58 88 C3 02 16 */ lbz r6, 0x216(r3) -/* 80292A5C 54 C5 CF FE */ rlwinm r5, r6, 0x19, 0x1f, 0x1f -/* 80292A60 54 80 06 3E */ clrlwi r0, r4, 0x18 -/* 80292A64 7C 05 00 40 */ cmplw r5, r0 -/* 80292A68 41 82 00 24 */ beq lbl_80292A8C -/* 80292A6C 53 E6 3E 30 */ rlwimi r6, r31, 7, 0x18, 0x18 -/* 80292A70 98 DE 02 16 */ stb r6, 0x216(r30) -/* 80292A74 4B FF FF 2D */ bl setChannelPauseFlag__8JASTrackFb -/* 80292A78 7F C3 F3 78 */ mr r3, r30 -/* 80292A7C 57 E0 06 3E */ clrlwi r0, r31, 0x18 -/* 80292A80 7C 00 00 34 */ cntlzw r0, r0 -/* 80292A84 54 04 D9 7E */ srwi r4, r0, 5 -/* 80292A88 48 00 10 35 */ bl interrupt__10JASSeqCtrlFQ210JASSeqCtrl8IntrType -lbl_80292A8C: -/* 80292A8C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80292A90 83 C1 00 08 */ lwz r30, 8(r1) -/* 80292A94 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80292A98 7C 08 03 A6 */ mtlr r0 -/* 80292A9C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80292AA0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/readPortSelf__8JASTrackFUl.s b/asm/JSystem/JAudio2/JASTrack/readPortSelf__8JASTrackFUl.s deleted file mode 100644 index 2e7d7d884c0..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/readPortSelf__8JASTrackFUl.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_802928D0: -/* 802928D0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802928D4 7C 08 02 A6 */ mflr r0 -/* 802928D8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802928DC 38 63 00 5C */ addi r3, r3, 0x5c -/* 802928E0 48 00 0C 9D */ bl readImport__12JASTrackPortFUl -/* 802928E4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802928E8 7C 08 03 A6 */ mtlr r0 -/* 802928EC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802928F0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/readPort__8JASTrackFUl.s b/asm/JSystem/JAudio2/JASTrack/readPort__8JASTrackFUl.s deleted file mode 100644 index 6bf013a3851..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/readPort__8JASTrackFUl.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8029297C: -/* 8029297C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80292980 7C 08 02 A6 */ mflr r0 -/* 80292984 90 01 00 14 */ stw r0, 0x14(r1) -/* 80292988 38 63 00 5C */ addi r3, r3, 0x5c -/* 8029298C 48 00 0C 15 */ bl readExport__12JASTrackPortFUl -/* 80292990 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80292994 7C 08 03 A6 */ mtlr r0 -/* 80292998 38 21 00 10 */ addi r1, r1, 0x10 -/* 8029299C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/releaseAll__Q28JASTrack11TChannelMgrFv.s b/asm/JSystem/JAudio2/JASTrack/releaseAll__Q28JASTrack11TChannelMgrFv.s deleted file mode 100644 index 93982ac72a2..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/releaseAll__Q28JASTrack11TChannelMgrFv.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_802931B0: -/* 802931B0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802931B4 7C 08 02 A6 */ mflr r0 -/* 802931B8 90 01 00 24 */ stw r0, 0x24(r1) -/* 802931BC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802931C0 48 0C F0 15 */ bl _savegpr_27 -/* 802931C4 7C 7B 1B 78 */ mr r27, r3 -/* 802931C8 3B A0 00 00 */ li r29, 0 -/* 802931CC 3B E0 00 00 */ li r31, 0 -/* 802931D0 7F FE FB 78 */ mr r30, r31 -lbl_802931D4: -/* 802931D4 7F 9B F8 2E */ lwzx r28, r27, r31 -/* 802931D8 28 1C 00 00 */ cmplwi r28, 0 -/* 802931DC 41 82 00 1C */ beq lbl_802931F8 -/* 802931E0 7F 83 E3 78 */ mr r3, r28 -/* 802931E4 38 80 00 00 */ li r4, 0 -/* 802931E8 48 00 78 E9 */ bl release__10JASChannelFUs -/* 802931EC 7F 83 E3 78 */ mr r3, r28 -/* 802931F0 48 00 8A 0D */ bl free__10JASChannelFv -/* 802931F4 7F DB F9 2E */ stwx r30, r27, r31 -lbl_802931F8: -/* 802931F8 3B BD 00 01 */ addi r29, r29, 1 -/* 802931FC 2C 1D 00 08 */ cmpwi r29, 8 -/* 80293200 3B FF 00 04 */ addi r31, r31, 4 -/* 80293204 41 80 FF D0 */ blt lbl_802931D4 -/* 80293208 39 61 00 20 */ addi r11, r1, 0x20 -/* 8029320C 48 0C F0 15 */ bl _restgpr_27 -/* 80293210 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80293214 7C 08 03 A6 */ mtlr r0 -/* 80293218 38 21 00 20 */ addi r1, r1, 0x20 -/* 8029321C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/setChannelPauseFlag__8JASTrackFb.s b/asm/JSystem/JAudio2/JASTrack/setChannelPauseFlag__8JASTrackFb.s deleted file mode 100644 index 1e07dfd760b..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/setChannelPauseFlag__8JASTrackFb.s +++ /dev/null @@ -1,45 +0,0 @@ -lbl_802929A0: -/* 802929A0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802929A4 7C 08 02 A6 */ mflr r0 -/* 802929A8 90 01 00 24 */ stw r0, 0x24(r1) -/* 802929AC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802929B0 48 0C F8 29 */ bl _savegpr_28 -/* 802929B4 7C 7C 1B 78 */ mr r28, r3 -/* 802929B8 7C 9D 23 78 */ mr r29, r4 -/* 802929BC 3B C0 00 00 */ li r30, 0 -/* 802929C0 3B E0 00 00 */ li r31, 0 -/* 802929C4 48 00 00 24 */ b lbl_802929E8 -lbl_802929C8: -/* 802929C8 38 1F 01 70 */ addi r0, r31, 0x170 -/* 802929CC 7C 7C 00 2E */ lwzx r3, r28, r0 -/* 802929D0 28 03 00 00 */ cmplwi r3, 0 -/* 802929D4 41 82 00 0C */ beq lbl_802929E0 -/* 802929D8 7F A4 EB 78 */ mr r4, r29 -/* 802929DC 48 00 08 C5 */ bl setPauseFlag__Q28JASTrack11TChannelMgrFb -lbl_802929E0: -/* 802929E0 3B DE 00 01 */ addi r30, r30, 1 -/* 802929E4 3B FF 00 04 */ addi r31, r31, 4 -lbl_802929E8: -/* 802929E8 80 1C 01 D0 */ lwz r0, 0x1d0(r28) -/* 802929EC 7C 1E 00 40 */ cmplw r30, r0 -/* 802929F0 41 80 FF D8 */ blt lbl_802929C8 -/* 802929F4 3B C0 00 00 */ li r30, 0 -/* 802929F8 3B E0 00 00 */ li r31, 0 -lbl_802929FC: -/* 802929FC 38 1F 01 30 */ addi r0, r31, 0x130 -/* 80292A00 7C 7C 00 2E */ lwzx r3, r28, r0 -/* 80292A04 28 03 00 00 */ cmplwi r3, 0 -/* 80292A08 41 82 00 0C */ beq lbl_80292A14 -/* 80292A0C 7F A4 EB 78 */ mr r4, r29 -/* 80292A10 4B FF FF 91 */ bl setChannelPauseFlag__8JASTrackFb -lbl_80292A14: -/* 80292A14 3B DE 00 01 */ addi r30, r30, 1 -/* 80292A18 2C 1E 00 10 */ cmpwi r30, 0x10 -/* 80292A1C 3B FF 00 04 */ addi r31, r31, 4 -/* 80292A20 41 80 FF DC */ blt lbl_802929FC -/* 80292A24 39 61 00 20 */ addi r11, r1, 0x20 -/* 80292A28 48 0C F7 FD */ bl _restgpr_28 -/* 80292A2C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80292A30 7C 08 03 A6 */ mtlr r0 -/* 80292A34 38 21 00 20 */ addi r1, r1, 0x20 -/* 80292A38 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/setFIR__8JASTrackFPCs.s b/asm/JSystem/JAudio2/JASTrack/setFIR__8JASTrackFPCs.s deleted file mode 100644 index 2f40b8ecd3d..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/setFIR__8JASTrackFPCs.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_8029285C: -/* 8029285C 38 A0 00 00 */ li r5, 0 -/* 80292860 38 00 00 08 */ li r0, 8 -/* 80292864 7C 09 03 A6 */ mtctr r0 -lbl_80292868: -/* 80292868 7C C4 2A AE */ lhax r6, r4, r5 -/* 8029286C 38 05 01 F4 */ addi r0, r5, 0x1f4 -/* 80292870 7C C3 03 2E */ sthx r6, r3, r0 -/* 80292874 38 A5 00 02 */ addi r5, r5, 2 -/* 80292878 42 00 FF F0 */ bdnz lbl_80292868 -/* 8029287C 88 83 02 14 */ lbz r4, 0x214(r3) -/* 80292880 80 02 BB D0 */ lwz r0, FILTER_MODE_IIR__6JASDsp(r2) -/* 80292884 7C 80 00 38 */ and r0, r4, r0 -/* 80292888 98 03 02 14 */ stb r0, 0x214(r3) -/* 8029288C 88 03 02 14 */ lbz r0, 0x214(r3) -/* 80292890 60 00 00 08 */ ori r0, r0, 8 -/* 80292894 98 03 02 14 */ stb r0, 0x214(r3) -/* 80292898 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/setIIR__8JASTrackFPCs.s b/asm/JSystem/JAudio2/JASTrack/setIIR__8JASTrackFPCs.s deleted file mode 100644 index 630b9bcb6ec..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/setIIR__8JASTrackFPCs.s +++ /dev/null @@ -1,15 +0,0 @@ -lbl_8029289C: -/* 8029289C 38 A0 00 00 */ li r5, 0 -/* 802928A0 38 00 00 08 */ li r0, 8 -/* 802928A4 7C 09 03 A6 */ mtctr r0 -lbl_802928A8: -/* 802928A8 7C C4 2A AE */ lhax r6, r4, r5 -/* 802928AC 38 05 02 04 */ addi r0, r5, 0x204 -/* 802928B0 7C C3 03 2E */ sthx r6, r3, r0 -/* 802928B4 38 A5 00 02 */ addi r5, r5, 2 -/* 802928B8 42 00 FF F0 */ bdnz lbl_802928A8 -/* 802928BC 88 83 02 14 */ lbz r4, 0x214(r3) -/* 802928C0 80 02 BB D0 */ lwz r0, FILTER_MODE_IIR__6JASDsp(r2) -/* 802928C4 7C 80 03 78 */ or r0, r4, r0 -/* 802928C8 98 03 02 14 */ stb r0, 0x214(r3) -/* 802928CC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/setLatestKey__8JASTrackFUc.s b/asm/JSystem/JAudio2/JASTrack/setLatestKey__8JASTrackFUc.s deleted file mode 100644 index 771e41c708e..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/setLatestKey__8JASTrackFUc.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_80291DBC: -/* 80291DBC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80291DC0 7C 08 02 A6 */ mflr r0 -/* 80291DC4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80291DC8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80291DCC 7C 7F 1B 78 */ mr r31, r3 -/* 80291DD0 98 83 02 2B */ stb r4, 0x22b(r3) -/* 80291DD4 48 00 0C D1 */ bl getTransposeTotal__8JASTrackCFv -/* 80291DD8 88 1F 02 2B */ lbz r0, 0x22b(r31) -/* 80291DDC 7C 00 1A 14 */ add r0, r0, r3 -/* 80291DE0 98 1F 02 2B */ stb r0, 0x22b(r31) -/* 80291DE4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80291DE8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80291DEC 7C 08 03 A6 */ mtlr r0 -/* 80291DF0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80291DF4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/setOscAdsr__8JASTrackFssssUs.s b/asm/JSystem/JAudio2/JASTrack/setOscAdsr__8JASTrackFssssUs.s deleted file mode 100644 index 84a6bdf2e44..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/setOscAdsr__8JASTrackFssssUs.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_80292808: -/* 80292808 3D 20 80 3A */ lis r9, sEnvOsc__8JASTrack@ha /* 0x8039AFE8@ha */ -/* 8029280C 84 09 AF E8 */ lwzu r0, sEnvOsc__8JASTrack@l(r9) /* 0x8039AFE8@l */ -/* 80292810 90 03 00 E4 */ stw r0, 0xe4(r3) -/* 80292814 C0 09 00 04 */ lfs f0, 4(r9) -/* 80292818 D0 03 00 E8 */ stfs f0, 0xe8(r3) -/* 8029281C 80 09 00 08 */ lwz r0, 8(r9) -/* 80292820 90 03 00 EC */ stw r0, 0xec(r3) -/* 80292824 80 09 00 0C */ lwz r0, 0xc(r9) -/* 80292828 90 03 00 F0 */ stw r0, 0xf0(r3) -/* 8029282C C0 09 00 10 */ lfs f0, 0x10(r9) -/* 80292830 D0 03 00 F4 */ stfs f0, 0xf4(r3) -/* 80292834 C0 09 00 14 */ lfs f0, 0x14(r9) -/* 80292838 D0 03 00 F8 */ stfs f0, 0xf8(r3) -/* 8029283C 38 03 01 14 */ addi r0, r3, 0x114 -/* 80292840 90 03 00 EC */ stw r0, 0xec(r3) -/* 80292844 B0 83 01 16 */ sth r4, 0x116(r3) -/* 80292848 B0 A3 01 1C */ sth r5, 0x11c(r3) -/* 8029284C B0 C3 01 22 */ sth r6, 0x122(r3) -/* 80292850 B0 E3 01 24 */ sth r7, 0x124(r3) -/* 80292854 B1 03 02 24 */ sth r8, 0x224(r3) -/* 80292858 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/setOscScale__8JASTrackFUlf.s b/asm/JSystem/JAudio2/JASTrack/setOscScale__8JASTrackFUlf.s deleted file mode 100644 index 31f8b56d7fd..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/setOscScale__8JASTrackFUlf.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_802927D8: -/* 802927D8 1C 04 00 18 */ mulli r0, r4, 0x18 -/* 802927DC 7C 63 02 14 */ add r3, r3, r0 -/* 802927E0 D0 23 00 F4 */ stfs f1, 0xf4(r3) -/* 802927E4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/setOscTable__8JASTrackFUlPCQ213JASOscillator5Point.s b/asm/JSystem/JAudio2/JASTrack/setOscTable__8JASTrackFUlPCQ213JASOscillator5Point.s deleted file mode 100644 index 35b3b27e624..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/setOscTable__8JASTrackFUlPCQ213JASOscillator5Point.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_802927E8: -/* 802927E8 1C 04 00 18 */ mulli r0, r4, 0x18 -/* 802927EC 7C 63 02 14 */ add r3, r3, r0 -/* 802927F0 90 A3 00 EC */ stw r5, 0xec(r3) -/* 802927F4 28 04 00 00 */ cmplwi r4, 0 -/* 802927F8 4D 82 00 20 */ beqlr -/* 802927FC 38 00 00 00 */ li r0, 0 -/* 80292800 90 03 00 F0 */ stw r0, 0xf0(r3) -/* 80292804 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/setParam__8JASTrackFUlfUl.s b/asm/JSystem/JAudio2/JASTrack/setParam__8JASTrackFUlfUl.s deleted file mode 100644 index d1f8deaa101..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/setParam__8JASTrackFUlfUl.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_802926E0: -/* 802926E0 1C 84 00 0C */ mulli r4, r4, 0xc -/* 802926E4 38 84 00 9C */ addi r4, r4, 0x9c -/* 802926E8 7C 83 22 14 */ add r4, r3, r4 -/* 802926EC D0 24 00 04 */ stfs f1, 4(r4) -/* 802926F0 28 05 00 00 */ cmplwi r5, 0 -/* 802926F4 40 82 00 0C */ bne lbl_80292700 -/* 802926F8 C0 04 00 04 */ lfs f0, 4(r4) -/* 802926FC D0 04 00 00 */ stfs f0, 0(r4) -lbl_80292700: -/* 80292700 90 A4 00 08 */ stw r5, 8(r4) -/* 80292704 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/setPauseFlag__Q28JASTrack11TChannelMgrFb.s b/asm/JSystem/JAudio2/JASTrack/setPauseFlag__Q28JASTrack11TChannelMgrFb.s deleted file mode 100644 index d681bf7c7e1..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/setPauseFlag__Q28JASTrack11TChannelMgrFb.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_802932A0: -/* 802932A0 38 A0 00 00 */ li r5, 0 -/* 802932A4 38 00 00 08 */ li r0, 8 -/* 802932A8 7C 09 03 A6 */ mtctr r0 -lbl_802932AC: -/* 802932AC 7C C3 28 2E */ lwzx r6, r3, r5 -/* 802932B0 28 06 00 00 */ cmplwi r6, 0 -/* 802932B4 41 82 00 08 */ beq lbl_802932BC -/* 802932B8 98 86 00 04 */ stb r4, 4(r6) -lbl_802932BC: -/* 802932BC 38 A5 00 04 */ addi r5, r5, 4 -/* 802932C0 42 00 FF EC */ bdnz lbl_802932AC -/* 802932C4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/setSeqData__8JASTrackFPvUl.s b/asm/JSystem/JAudio2/JASTrack/setSeqData__8JASTrackFPvUl.s deleted file mode 100644 index 7d7411b2ea7..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/setSeqData__8JASTrackFPvUl.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80291A08: -/* 80291A08 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80291A0C 7C 08 02 A6 */ mflr r0 -/* 80291A10 90 01 00 14 */ stw r0, 0x14(r1) -/* 80291A14 48 00 1F 6D */ bl start__10JASSeqCtrlFPvUl -/* 80291A18 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80291A1C 7C 08 03 A6 */ mtlr r0 -/* 80291A20 38 21 00 10 */ addi r1, r1, 0x10 -/* 80291A24 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/setTempoRate__8JASTrackFf.s b/asm/JSystem/JAudio2/JASTrack/setTempoRate__8JASTrackFf.s deleted file mode 100644 index 551490d46f1..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/setTempoRate__8JASTrackFf.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_80292B8C: -/* 80292B8C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80292B90 7C 08 02 A6 */ mflr r0 -/* 80292B94 90 01 00 14 */ stw r0, 0x14(r1) -/* 80292B98 D0 23 02 1C */ stfs f1, 0x21c(r3) -/* 80292B9C 38 80 00 01 */ li r4, 1 -/* 80292BA0 88 03 02 16 */ lbz r0, 0x216(r3) -/* 80292BA4 50 80 17 7A */ rlwimi r0, r4, 2, 0x1d, 0x1d -/* 80292BA8 98 03 02 16 */ stb r0, 0x216(r3) -/* 80292BAC 4B FF F9 39 */ bl updateTempo__8JASTrackFv -/* 80292BB0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80292BB4 7C 08 03 A6 */ mtlr r0 -/* 80292BB8 38 21 00 10 */ addi r1, r1, 0x10 -/* 80292BBC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/setTempo__8JASTrackFUs.s b/asm/JSystem/JAudio2/JASTrack/setTempo__8JASTrackFUs.s deleted file mode 100644 index 14784d82a14..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/setTempo__8JASTrackFUs.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_80292B58: -/* 80292B58 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80292B5C 7C 08 02 A6 */ mflr r0 -/* 80292B60 90 01 00 14 */ stw r0, 0x14(r1) -/* 80292B64 B0 83 02 26 */ sth r4, 0x226(r3) -/* 80292B68 38 80 00 01 */ li r4, 1 -/* 80292B6C 88 03 02 16 */ lbz r0, 0x216(r3) -/* 80292B70 50 80 17 7A */ rlwimi r0, r4, 2, 0x1d, 0x1d -/* 80292B74 98 03 02 16 */ stb r0, 0x216(r3) -/* 80292B78 4B FF F9 6D */ bl updateTempo__8JASTrackFv -/* 80292B7C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80292B80 7C 08 03 A6 */ mtlr r0 -/* 80292B84 38 21 00 10 */ addi r1, r1, 0x10 -/* 80292B88 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/setTimebase__8JASTrackFUs.s b/asm/JSystem/JAudio2/JASTrack/setTimebase__8JASTrackFUs.s deleted file mode 100644 index fdf10918330..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/setTimebase__8JASTrackFUs.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_80292BC0: -/* 80292BC0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80292BC4 7C 08 02 A6 */ mflr r0 -/* 80292BC8 90 01 00 14 */ stw r0, 0x14(r1) -/* 80292BCC B0 83 02 28 */ sth r4, 0x228(r3) -/* 80292BD0 38 80 00 01 */ li r4, 1 -/* 80292BD4 88 03 02 16 */ lbz r0, 0x216(r3) -/* 80292BD8 50 80 17 7A */ rlwimi r0, r4, 2, 0x1d, 0x1d -/* 80292BDC 98 03 02 16 */ stb r0, 0x216(r3) -/* 80292BE0 4B FF F9 05 */ bl updateTempo__8JASTrackFv -/* 80292BE4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80292BE8 7C 08 03 A6 */ mtlr r0 -/* 80292BEC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80292BF0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/start__8JASTrackFv.s b/asm/JSystem/JAudio2/JASTrack/start__8JASTrackFv.s deleted file mode 100644 index 876d2ef1994..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/start__8JASTrackFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80291ABC: -/* 80291ABC 38 00 00 01 */ li r0, 1 -/* 80291AC0 98 03 02 15 */ stb r0, 0x215(r3) -/* 80291AC4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/stopSeq__8JASTrackFv.s b/asm/JSystem/JAudio2/JASTrack/stopSeq__8JASTrackFv.s deleted file mode 100644 index b3a45888e9f..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/stopSeq__8JASTrackFv.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_80291A78: -/* 80291A78 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80291A7C 7C 08 02 A6 */ mflr r0 -/* 80291A80 90 01 00 24 */ stw r0, 0x24(r1) -/* 80291A84 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80291A88 7C 7F 1B 78 */ mr r31, r3 -/* 80291A8C 48 0A BC 69 */ bl OSDisableInterrupts -/* 80291A90 90 61 00 08 */ stw r3, 8(r1) -/* 80291A94 38 80 00 01 */ li r4, 1 -/* 80291A98 88 1F 02 16 */ lbz r0, 0x216(r31) -/* 80291A9C 50 80 0F BC */ rlwimi r0, r4, 1, 0x1e, 0x1e -/* 80291AA0 98 1F 02 16 */ stb r0, 0x216(r31) -/* 80291AA4 48 0A BC 79 */ bl OSRestoreInterrupts -/* 80291AA8 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80291AAC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80291AB0 7C 08 03 A6 */ mtlr r0 -/* 80291AB4 38 21 00 20 */ addi r1, r1, 0x20 -/* 80291AB8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/updateSeq__8JASTrackFbf.s b/asm/JSystem/JAudio2/JASTrack/updateSeq__8JASTrackFbf.s deleted file mode 100644 index ccfe65c3571..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/updateSeq__8JASTrackFbf.s +++ /dev/null @@ -1,54 +0,0 @@ -lbl_80292580: -/* 80292580 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80292584 7C 08 02 A6 */ mflr r0 -/* 80292588 90 01 00 34 */ stw r0, 0x34(r1) -/* 8029258C DB E1 00 20 */ stfd f31, 0x20(r1) -/* 80292590 F3 E1 00 28 */ psq_st f31, 40(r1), 0, 0 /* qr0 */ -/* 80292594 39 61 00 20 */ addi r11, r1, 0x20 -/* 80292598 48 0C FC 41 */ bl _savegpr_28 -/* 8029259C 7C 7C 1B 78 */ mr r28, r3 -/* 802925A0 7C 9D 23 78 */ mr r29, r4 -/* 802925A4 FF E0 08 90 */ fmr f31, f1 -/* 802925A8 54 80 06 3F */ clrlwi. r0, r4, 0x18 -/* 802925AC 40 82 00 0C */ bne lbl_802925B8 -/* 802925B0 88 1C 02 16 */ lbz r0, 0x216(r28) -/* 802925B4 54 1D F7 FE */ rlwinm r29, r0, 0x1e, 0x1f, 0x1f -lbl_802925B8: -/* 802925B8 38 60 00 00 */ li r3, 0 -/* 802925BC 88 1C 02 16 */ lbz r0, 0x216(r28) -/* 802925C0 50 60 17 7A */ rlwimi r0, r3, 2, 0x1d, 0x1d -/* 802925C4 98 1C 02 16 */ stb r0, 0x216(r28) -/* 802925C8 57 A0 06 3F */ clrlwi. r0, r29, 0x18 -/* 802925CC 41 82 00 10 */ beq lbl_802925DC -/* 802925D0 7F 83 E3 78 */ mr r3, r28 -/* 802925D4 FC 20 F8 90 */ fmr f1, f31 -/* 802925D8 4B FF FD 71 */ bl updateTrack__8JASTrackFf -lbl_802925DC: -/* 802925DC C0 1C 02 18 */ lfs f0, 0x218(r28) -/* 802925E0 EF FF 00 32 */ fmuls f31, f31, f0 -/* 802925E4 3B C0 00 00 */ li r30, 0 -/* 802925E8 3B E0 00 00 */ li r31, 0 -lbl_802925EC: -/* 802925EC 38 1F 01 30 */ addi r0, r31, 0x130 -/* 802925F0 7C 7C 00 2E */ lwzx r3, r28, r0 -/* 802925F4 28 03 00 00 */ cmplwi r3, 0 -/* 802925F8 41 82 00 1C */ beq lbl_80292614 -/* 802925FC 88 03 02 15 */ lbz r0, 0x215(r3) -/* 80292600 28 00 00 01 */ cmplwi r0, 1 -/* 80292604 40 82 00 10 */ bne lbl_80292614 -/* 80292608 7F A4 EB 78 */ mr r4, r29 -/* 8029260C FC 20 F8 90 */ fmr f1, f31 -/* 80292610 4B FF FF 71 */ bl updateSeq__8JASTrackFbf -lbl_80292614: -/* 80292614 3B DE 00 01 */ addi r30, r30, 1 -/* 80292618 2C 1E 00 10 */ cmpwi r30, 0x10 -/* 8029261C 3B FF 00 04 */ addi r31, r31, 4 -/* 80292620 41 80 FF CC */ blt lbl_802925EC -/* 80292624 E3 E1 00 28 */ psq_l f31, 40(r1), 0, 0 /* qr0 */ -/* 80292628 CB E1 00 20 */ lfd f31, 0x20(r1) -/* 8029262C 39 61 00 20 */ addi r11, r1, 0x20 -/* 80292630 48 0C FB F5 */ bl _restgpr_28 -/* 80292634 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80292638 7C 08 03 A6 */ mtlr r0 -/* 8029263C 38 21 00 30 */ addi r1, r1, 0x30 -/* 80292640 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/writePortSelf__8JASTrackFUlUs.s b/asm/JSystem/JAudio2/JASTrack/writePortSelf__8JASTrackFUlUs.s deleted file mode 100644 index 79b8f391dd9..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/writePortSelf__8JASTrackFUlUs.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_802928F4: -/* 802928F4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802928F8 7C 08 02 A6 */ mflr r0 -/* 802928FC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80292900 38 63 00 5C */ addi r3, r3, 0x5c -/* 80292904 48 00 0C E5 */ bl writeExport__12JASTrackPortFUlUs -/* 80292908 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8029290C 7C 08 03 A6 */ mtlr r0 -/* 80292910 38 21 00 10 */ addi r1, r1, 0x10 -/* 80292914 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASTrack/writePort__8JASTrackFUlUs.s b/asm/JSystem/JAudio2/JASTrack/writePort__8JASTrackFUlUs.s deleted file mode 100644 index 154175aeb91..00000000000 --- a/asm/JSystem/JAudio2/JASTrack/writePort__8JASTrackFUlUs.s +++ /dev/null @@ -1,29 +0,0 @@ -lbl_80292918: -/* 80292918 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8029291C 7C 08 02 A6 */ mflr r0 -/* 80292920 90 01 00 14 */ stw r0, 0x14(r1) -/* 80292924 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80292928 93 C1 00 08 */ stw r30, 8(r1) -/* 8029292C 7C 7E 1B 78 */ mr r30, r3 -/* 80292930 7C 9F 23 78 */ mr r31, r4 -/* 80292934 38 7E 00 5C */ addi r3, r30, 0x5c -/* 80292938 48 00 0C 8D */ bl writeImport__12JASTrackPortFUlUs -/* 8029293C 28 1F 00 00 */ cmplwi r31, 0 -/* 80292940 41 82 00 0C */ beq lbl_8029294C -/* 80292944 28 1F 00 01 */ cmplwi r31, 1 -/* 80292948 40 82 00 1C */ bne lbl_80292964 -lbl_8029294C: -/* 8029294C 7F C3 F3 78 */ mr r3, r30 -/* 80292950 28 1F 00 00 */ cmplwi r31, 0 -/* 80292954 38 80 00 03 */ li r4, 3 -/* 80292958 40 82 00 08 */ bne lbl_80292960 -/* 8029295C 38 80 00 02 */ li r4, 2 -lbl_80292960: -/* 80292960 48 00 11 5D */ bl interrupt__10JASSeqCtrlFQ210JASSeqCtrl8IntrType -lbl_80292964: -/* 80292964 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80292968 83 C1 00 08 */ lwz r30, 8(r1) -/* 8029296C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80292970 7C 08 03 A6 */ mtlr r0 -/* 80292974 38 21 00 10 */ addi r1, r1, 0x10 -/* 80292978 4E 80 00 20 */ blr diff --git a/include/JSystem/JAudio2/JASBankTable.h b/include/JSystem/JAudio2/JASBankTable.h index 38c54d99638..bdcaf4ec5d5 100644 --- a/include/JSystem/JAudio2/JASBankTable.h +++ b/include/JSystem/JAudio2/JASBankTable.h @@ -7,7 +7,7 @@ template class JASBankTable : public JASBankList { public: - JASBank* getBank(u32 param_0) { return mArray.get(param_0); } + // JASBank* getBank(u32 param_0) { return mArray.get(param_0); } virtual JASBank* getBank(u32 param_0) const { return mArray.get(param_0); } void registBank(u32 param_0, JASBank* param_1) { mArray.set(param_0, param_1); } @@ -17,6 +17,7 @@ private: class JASDefaultBankTable : public JASBankTable<256>, public JASGlobalInstance { public: + JASDefaultBankTable() : JASGlobalInstance(true) {} }; #endif /* JASBANKLIST_H */ \ No newline at end of file diff --git a/include/JSystem/JAudio2/JASChannel.h b/include/JSystem/JAudio2/JASChannel.h index 57a7b75dbc4..a64fb5fc37e 100644 --- a/include/JSystem/JAudio2/JASChannel.h +++ b/include/JSystem/JAudio2/JASChannel.h @@ -17,28 +17,28 @@ namespace JASDsp { class JASChannelParams { public: JASChannelParams() { - field_0x0 = 1.0f; - field_0x4 = 1.0f; + mVolume = 1.0f; + mPitch = 1.0f; field_0x8 = 0.0f; - field_0xc = 0.5f; - field_0x10 = 0.0f; - field_0x14 = 0.0f; + mPan = 0.5f; + mFxMix = 0.0f; + mDolby = 0.0f; } void init() { - field_0x0 = 1.0f; - field_0x4 = 1.0f; + mVolume = 1.0f; + mPitch = 1.0f; field_0x8 = 0.0f; - field_0xc = 0.5f; - field_0x10 = 0.0f; - field_0x14 = 0.0f; + mPan = 0.5f; + mFxMix = 0.0f; + mDolby = 0.0f; } - f32 field_0x0; - f32 field_0x4; + f32 mVolume; + f32 mPitch; f32 field_0x8; - f32 field_0xc; - f32 field_0x10; - f32 field_0x14; + f32 mPan; + f32 mFxMix; + f32 mDolby; }; class JASChannel : public JASPoolAllocObject_MultiThreaded { diff --git a/include/JSystem/JAudio2/JASOscillator.h b/include/JSystem/JAudio2/JASOscillator.h index 808b4104747..f9ad8ccfdf9 100644 --- a/include/JSystem/JAudio2/JASOscillator.h +++ b/include/JSystem/JAudio2/JASOscillator.h @@ -5,16 +5,20 @@ struct JASOscillator { - struct Point {}; + struct Point { + /* 0x0 */ s16 _0; + /* 0x2 */ s16 _2; + /* 0x4 */ s16 _4; + }; struct EffectParams {}; struct Data { /* 0x00 */ u32 _00; /* 0x04 */ f32 _04; - /* 0x08 */ const short* _08; - /* 0x0C */ const short* _0C; - /* 0x10 */ f32 _10; + /* 0x08 */ const Point* mTable; + /* 0x0C */ const Point* _0C; + /* 0x10 */ f32 mScale; /* 0x14 */ f32 _14; }; diff --git a/include/JSystem/JAudio2/JASTrack.h b/include/JSystem/JAudio2/JASTrack.h index 7e2106e46ab..1b47cc47bfa 100644 --- a/include/JSystem/JAudio2/JASTrack.h +++ b/include/JSystem/JAudio2/JASTrack.h @@ -1,11 +1,15 @@ #ifndef JASTRACK_H #define JASTRACK_H +#include "JSystem/JAudio2/JASBankTable.h" +#include "JSystem/JAudio2/JASChannel.h" #include "JSystem/JAudio2/JASGadget.h" +#include "JSystem/JAudio2/JASHeapCtrl.h" #include "JSystem/JAudio2/JASOscillator.h" #include "JSystem/JAudio2/JASRegisterParam.h" #include "JSystem/JAudio2/JASSeqCtrl.h" #include "JSystem/JAudio2/JASTrackPort.h" +#include "JSystem/JGadget/linklist.h" struct JASSoundParams; @@ -15,47 +19,43 @@ namespace JASDsp { extern u32 FILTER_MODE_IIR; }; -struct JASChannel { - /* 8029AAD0 */ void release(u16); - /* 8029AB64 */ void setOscInit(u32, JASOscillator::Data const*); - /* 8029AB98 */ void setMixConfig(u32, u16); - /* 8029ACD4 */ void setKeySweepTarget(s32, u32); - /* 8029BBFC */ void free(); -}; - -struct JASTrack { +struct JASTrack : public JASPoolAllocObject_MultiThreaded { enum Status { STATUS_FREE, STATUS_RUN, }; - struct TChannelMgr { + struct TChannelMgr : public JASPoolAllocObject_MultiThreaded { /* 802930DC */ TChannelMgr(JASTrack*); /* 80293148 */ void init(); /* 802931B0 */ void releaseAll(); - /* 80293220 */ void noteOff(u32, u16); + /* 80293220 */ bool noteOff(u32, u16); /* 802932A0 */ void setPauseFlag(bool); - /* 0x00 */ JASChannel* field_0x0[8]; - /* 0x20 */ u8 field_0x20[0x18]; // JASChannelParams + /* 0x00 */ JASChannel* mChannels[8]; + /* 0x20 */ JASChannelParams mParams; /* 0x38 */ short field_0x38[8]; - /* 0x48 */ JASSoundParams* field_0x48; - /* 0x4c */ JASTrack* field_0x4c; + /* 0x48 */ JASSoundParams* mSoundParams; + /* 0x4c */ JASTrack* mTrack; }; - struct TList { - /* 80292F6C */ void cbSeqMain(void*); + struct TList : JGadget::TLinkList { + TList() : mCallbackRegistered(false) {} /* 80292F90 */ void append(JASTrack*); /* 8029301C */ void seqMain(); - /* 8029345C */ ~TList(); + /* 8029345C */ ~TList() {} + + /* 80292F6C */ static s32 cbSeqMain(void*); + + /* 0xC */ bool mCallbackRegistered; }; struct MoveParam_ { - /* 802932C8 */ MoveParam_(); + /* 802932C8 */ MoveParam_() : mValue(0.0f), mTarget(0.0f), mCount(0) {} - /* 0x00 */ f32 field_0x0; - /* 0x04 */ f32 field_0x4; - /* 0x08 */ int field_0x8; + /* 0x00 */ f32 mValue; + /* 0x04 */ f32 mTarget; + /* 0x08 */ u32 mCount; }; /* 80291228 */ JASTrack(); @@ -70,12 +70,12 @@ struct JASTrack { /* 80291A78 */ void stopSeq(); /* 80291ABC */ void start(); /* 80291AC8 */ void close(); - /* 80291B8C */ void connectChild(u32, JASTrack*); + /* 80291B8C */ bool connectChild(u32, JASTrack*); /* 80291BB8 */ void closeChild(u32); /* 80291C30 */ JASTrack* openChild(u32); /* 80291DAC */ void connectBus(int, int); /* 80291DBC */ void setLatestKey(u8); - /* 80291DF8 */ void channelStart(JASTrack::TChannelMgr*, u32, u32, u32); + /* 80291DF8 */ JASChannel* channelStart(JASTrack::TChannelMgr*, u32, u32, u32); /* 80291F38 */ int noteOn(u32, u32, u32); /* 80292008 */ int gateOn(u32, u32, f32, u32); /* 80292198 */ int noteOff(u32, u16); @@ -85,7 +85,7 @@ struct JASTrack { /* 80292348 */ void updateTrack(f32); /* 802924E4 */ void updateTempo(); /* 80292580 */ void updateSeq(bool, f32); - /* 80292644 */ void seqTimeToDspTime(f32); + /* 80292644 */ u32 seqTimeToDspTime(f32); /* 802926E0 */ void setParam(u32, f32, u32); /* 80292708 */ void noteOffAll(u16); /* 802927A0 */ void mute(bool); @@ -100,22 +100,28 @@ struct JASTrack { /* 8029297C */ u16 readPort(u32); /* 802929A0 */ void setChannelPauseFlag(bool); /* 80292A3C */ void pause(bool); - /* 80292AA4 */ void getTransposeTotal() const; - /* 80292AF4 */ void isMute() const; + /* 80292AA4 */ int getTransposeTotal() const; + /* 80292AF4 */ bool isMute() const; /* 80292B58 */ void setTempo(u16); /* 80292B8C */ void setTempoRate(f32); /* 80292BC0 */ void setTimebase(u16); /* 80292BF4 */ void updateChannel(JASChannel*, JASDsp::TChannel*); - /* 80292CA4 */ void channelUpdateCallback(u32, JASChannel*, JASDsp::TChannel*, void*); - /* 80292D88 */ void getRootTrack(); - /* 80292DA0 */ void tickProc(); - /* 80292E9C */ void seqMain(); + /* 80292D88 */ JASTrack* getRootTrack(); + /* 80292DA0 */ int tickProc(); + /* 80292E9C */ int seqMain(); - static u8 const sAdsTable[24]; - static u8 const sEnvOsc[24]; - static u8 const sPitchEnvOsc[24]; + /* 80292CA4 */ static void channelUpdateCallback(u32, JASChannel*, JASDsp::TChannel*, void*); + + static JASOscillator::Point const sAdsTable[4]; + static JASOscillator::Data const sEnvOsc; + static JASOscillator::Data const sPitchEnvOsc; +#ifdef NONMATCHING + static JASDefaultBankTable sDefaultBankTable; + static TList sTrackList; +#else static u8 sDefaultBankTable[1036]; static u8 sTrackList[16]; +#endif JASSeqCtrl* getSeqCtrl() { return &mSeqCtrl; } u16 getPort(u32 param_0) { return mTrackPort.get(param_0); } @@ -126,7 +132,7 @@ struct JASTrack { void writeReg(JASRegisterParam::RegID param_0, u32 param_1) { mRegisterParam.write(param_0, param_1); } JASTrack* getParent() { return mParent; } JASTrack* getChild(u32 index) { return mChildren[index]; } - int getChannelMgrCount() { return channelMgrCount; } + int getChannelMgrCount() { return mChannelMgrCount; } f32 getVibDepth() const { return mVibDepth; } void setVibDepth(f32 param_0) { mVibDepth = param_0; } f32 getVibPitch() const { return mVibPitch; } @@ -140,7 +146,7 @@ struct JASTrack { u16 getTremDelay() const { return mTremDelay; } void setTremDelay(u32 param_0) { mTremDelay = param_0; } u8 getStatus() const { return mStatus; } - void setAutoDelete(u8 param_0) { field_0x216.autoDelete = param_0; } + void setAutoDelete(u8 param_0) { mFlags.autoDelete = param_0; } f32 getPanPower() const { return mPanPower; } void setPanPower(f32 param_0) { mPanPower = param_0; } u32 getSkipSample() const { return mSkipSample; } @@ -166,15 +172,15 @@ struct JASTrack { /* 0x000 */ JASSeqCtrl mSeqCtrl; /* 0x05C */ JASTrackPort mTrackPort; /* 0x080 */ JASRegisterParam mRegisterParam; - /* 0x09C */ MoveParam_ field_0x9c[6]; - /* 0x0e4 */ u8 mOscParam[0x30]; // JASOscillator::Data[2] - /* 0x114 */ u8 field_0x114[0x18]; // JASOscillator::Point[4] + /* 0x09C */ MoveParam_ mMoveParam[6]; // volume, pitch, fxmix, pan, dolby, distFilter + /* 0x0e4 */ JASOscillator::Data mOscParam[2]; + /* 0x114 */ JASOscillator::Point mOscPoint[4]; /* 0x12C */ JASTrack* mParent; /* 0x130 */ JASTrack* mChildren[16]; - /* 0x170 */ TChannelMgr* field_0x170[4]; - /* 0x180 */ TChannelMgr field_0x180; - /* 0x1D0 */ int channelMgrCount; - /* 0x1D4 */ void* field_0x1d4; + /* 0x170 */ TChannelMgr* mChannelMgrs[4]; + /* 0x180 */ TChannelMgr mDefaultChannelMgr; + /* 0x1D0 */ int mChannelMgrCount; + /* 0x1D4 */ JASDefaultBankTable* mBankTable; /* 0x1D8 */ f32 field_0x1d8; /* 0x1DC */ f32 field_0x1dc; /* 0x1E0 */ f32 mVibDepth; @@ -183,40 +189,36 @@ struct JASTrack { /* 0x1EC */ f32 mTremPitch; /* 0x1F0 */ u16 mVibDelay; /* 0x1F2 */ u16 mTremDelay; - /* 0x1F4 */ short field_0x1f4[8]; - /* 0x204 */ short field_0x204[8]; - /* 0x214 */ char field_0x214; + /* 0x1F4 */ short mFIR[8]; + /* 0x204 */ short mIIR[8]; + /* 0x214 */ u8 mFilterMode; /* 0x215 */ volatile u8 mStatus; /* 0x216 */ struct { - u8 flag0 : 1; - u8 flag1 : 1; - u8 flag2 : 1; - u8 autoDelete : 1; - u8 flag4 : 1; - u8 flag5 : 1; - u8 flag6 : 1; - u8 flag7 : 1; - } field_0x216; + bool pause : 1; + bool mute : 1; + bool flag2 : 1; + bool autoDelete : 1; + bool flag4 : 1; + bool flag5 : 1; + bool flag6 : 1; + bool flag7 : 1; + } mFlags; /* 0x218 */ f32 mPanPower; - /* 0x21C */ f32 field_0x21c; + /* 0x21C */ f32 mTempoRate; /* 0x220 */ u32 mSkipSample; /* 0x224 */ u16 mDirectRelease; - /* 0x226 */ u16 field_0x226; + /* 0x226 */ u16 mTempo; /* 0x228 */ u16 mTimebase; /* 0x22A */ s8 mTranspose; - /* 0x22B */ char field_0x22b; + /* 0x22B */ u8 field_0x22b; /* 0x22C */ u16 mBankNumber; /* 0x22E */ u16 mProgNumber; /* 0x230 */ u8 mBendSense; /* 0x231 */ u8 mNoteOnPrio; /* 0x232 */ u8 mReleasePrio; /* 0x233 */ u8 mGateRate; - /* 0x234 */ u16 field_0x234[6]; - /* 0x240 */ u8 field_0x240[0x08]; // TLinkListNode -}; - -struct JASDefaultBankTable : public JASGlobalInstance { - /* 802934B4 */ ~JASDefaultBankTable(); + /* 0x234 */ u16 mMixConfig[6]; + /* 0x240 */ JGadget::TLinkListNode field_0x240; }; #endif /* JASTRACK_H */ diff --git a/libs/JSystem/JAudio2/JASBank.cpp b/libs/JSystem/JAudio2/JASBank.cpp index aa5d3fc8d61..c752cfcf9c6 100644 --- a/libs/JSystem/JAudio2/JASBank.cpp +++ b/libs/JSystem/JAudio2/JASBank.cpp @@ -138,8 +138,9 @@ asm JASChannel* JASBank::noteOn(JASBank const* param_0, int param_1, u8 param_2, /* ############################################################################################## */ /* 8039B190-8039B19C 0277F0 000C+00 1/0 0/0 0/0 .rodata OSC_RELEASE_TABLE$260 */ -SECTION_RODATA static s16 const OSC_RELEASE_TABLE[6] = { - 0x0001, 0x000A, 0x0000, 0x000F, 0x0000, 0x0000, +SECTION_RODATA static JASOscillator::Point const OSC_RELEASE_TABLE[2] = { + {0x0001, 0x000A, 0x0000}, + {0x000F, 0x0000, 0x0000}, }; COMPILER_STRIP_GATE(0x8039B190, &OSC_RELEASE_TABLE); diff --git a/libs/JSystem/JAudio2/JASDrumSet.cpp b/libs/JSystem/JAudio2/JASDrumSet.cpp index 984855067d1..03207545494 100644 --- a/libs/JSystem/JAudio2/JASDrumSet.cpp +++ b/libs/JSystem/JAudio2/JASDrumSet.cpp @@ -77,9 +77,9 @@ bool JASDrumSet::getParam(int param_0, int param_1, JASInstParam* param_2) const param_2->field_0x18 = perc->field_0xc; osc._00 = 0; osc._04 = 1.0f; - osc._08 = NULL; + osc.mTable = NULL; osc._0C = NULL; - osc._10 = 1.0f; + osc.mScale = 1.0f; osc._14 = 0.0f; if (data_80451274[0] == 0) { diff --git a/libs/JSystem/JAudio2/JASOscillator.cpp b/libs/JSystem/JAudio2/JASOscillator.cpp index 14d8ddb47ab..5674d0cf1de 100644 --- a/libs/JSystem/JAudio2/JASOscillator.cpp +++ b/libs/JSystem/JAudio2/JASOscillator.cpp @@ -52,14 +52,14 @@ void JASOscillator::initStart(JASOscillator::Data const* data) { return; } - if (mData->_08 == NULL) { + if (mData->mTable == NULL) { _1C = 2; _08 = 1.0f; return; } - _10 = mData->_08[2] / 32768.0f; - _18 = mData->_08[0]; + _10 = mData->mTable[0]._4 / 32768.0f; + _18 = mData->mTable[0]._0; _1C = 1; } @@ -79,7 +79,7 @@ void JASOscillator::incCounter(f32 param_0) { /* 8029BFC8-8029BFE4 296908 001C+00 0/0 1/1 0/0 .text getValue__13JASOscillatorCFv */ f32 JASOscillator::getValue() const { - return _08 * mData->_10 + mData->_14; + return _08 * mData->mScale + mData->_14; } /* 8029BFE4-8029C0E0 296924 00FC+00 0/0 1/1 0/0 .text release__13JASOscillatorFv */ @@ -100,12 +100,12 @@ void JASOscillator::release() { return; } - if (mData->_08 != mData->_0C) { + if (mData->mTable != mData->_0C) { _04 = 0.0f; _0C = _08; - _10 = mData->_0C[2] / 32768.0f; + _10 = mData->_0C[0]._4 / 32768.0f; _14 = 0; - _18 = mData->_0C[0]; + _18 = mData->_0C[0]._0; } _1C = 3; @@ -127,9 +127,9 @@ void JASOscillator::update() { if (_1C == 2) return; - const short* psVar1; + const Point* psVar1; if (_1C == 1) { - psVar1 = mData->_08; + psVar1 = mData->mTable; } else { psVar1 = mData->_0C; } @@ -139,12 +139,12 @@ void JASOscillator::update() { return; } - while (_04 >= psVar1[_14 * 3 + 1]) { - _04 -= psVar1[_14 * 3 + 1]; + while (_04 >= psVar1[_14]._2) { + _04 -= psVar1[_14]._2; _08 = _10; _14++; _0C = _08; - const s16* ps = &psVar1[_14 * 3]; + const s16* ps = &psVar1[_14]._0; switch(ps[0]) { case 0xf: _1C = 0; @@ -162,7 +162,7 @@ void JASOscillator::update() { } } - updateCurrentValue(psVar1[_14 * 3 + 1]); + updateCurrentValue(psVar1[_14]._2); } /* ############################################################################################## */ diff --git a/libs/JSystem/JAudio2/JASTrack.cpp b/libs/JSystem/JAudio2/JASTrack.cpp index 6c5fab87493..75fe466e422 100644 --- a/libs/JSystem/JAudio2/JASTrack.cpp +++ b/libs/JSystem/JAudio2/JASTrack.cpp @@ -4,27 +4,17 @@ // #include "JSystem/JAudio2/JASTrack.h" +#include "JSystem/JAudio2/JASAiCtrl.h" +#include "JSystem/JAudio2/JASBank.h" +#include "JSystem/JAudio2/JASCriticalSection.h" +#include "JSystem/JAudio2/JASDSPInterface.h" +#include "JSystem/JAudio2/JASDriverIF.h" #include "dol2asm.h" // // Types: // -namespace JGadget { -struct TLinkListNode {}; - -struct TNodeLinkList { - struct iterator {}; - - /* 802DCA1C */ ~TNodeLinkList(); - /* 802DCBA8 */ void Insert(JGadget::TNodeLinkList::iterator, JGadget::TLinkListNode*); - /* 802DCBF8 */ void Remove(JGadget::TLinkListNode*); -}; - -}; // namespace JGadget - -template -struct JASMemPool_MultiThreaded {}; /* JASMemPool_MultiThreaded */ struct JASMemPool_MultiThreaded__template0 { /* 802932E0 */ void func_802932E0(void* _this); @@ -35,30 +25,10 @@ struct JASMemPool_MultiThreaded__template1 { /* 80293334 */ void func_80293334(void* _this); }; -struct JASGenericMemPool { - /* 80290848 */ JASGenericMemPool(); - /* 80290860 */ ~JASGenericMemPool(); - /* 80290948 */ void alloc(u32); - /* 80290994 */ void free(void*, u32); -}; - -struct JASDriver { - /* 8029C9E8 */ void getDacRate(); - /* 8029E274 */ void registerSubFrameCallback(s32 (*)(void*), void*); -}; - -template -struct JASBankTable {}; -/* JASBankTable<256> */ struct JASBankTable__template0 { /* 80293528 */ void func_80293528(void* _this, u32) /* const */; }; -struct JASBank { - /* 80297930 */ void noteOn(JASBank const*, int, u8, u8, u16, - void (*)(u32, JASChannel*, JASDsp::TChannel*, void*), void*); -}; - // // Forward References: // @@ -207,6 +177,15 @@ SECTION_SDATA2 static u8 lit_457[4] = { }; /* 80291228-8029131C 28BB68 00F4+00 1/1 3/3 0/0 .text __ct__8JASTrackFv */ +#ifdef NONMATCHING +JASTrack::JASTrack() : mDefaultChannelMgr(this), mChannelMgrCount(1), mStatus(0) { + mChannelMgrs[0] = &mDefaultChannelMgr; + for (int i = 1; i < 4; i++) { + mChannelMgrs[i] = NULL; + } + init(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -215,23 +194,37 @@ asm JASTrack::JASTrack() { #include "asm/JSystem/JAudio2/JASTrack/__ct__8JASTrackFv.s" } #pragma pop +#endif +#ifndef NONMATCHING /* ############################################################################################## */ /* 804316A8-804316B4 05E3C8 000C+00 1/1 0/0 0/0 .bss @431 */ static u8 lit_431[12]; +#endif /* 804316B4-80431AC0 05E3D4 040C+00 1/2 0/0 0/0 .bss sDefaultBankTable__8JASTrack */ +#ifdef NONMATCHING +JASDefaultBankTable JASTrack::sDefaultBankTable; +#else u8 JASTrack::sDefaultBankTable[1036]; +#endif +#ifndef NONMATCHING /* 80431AC0-80431ACC 05E7E0 000C+00 0/1 0/0 0/0 .bss @433 */ #pragma push #pragma force_active on static u8 lit_433[12]; #pragma pop +#endif /* 80431ACC-80431ADC 05E7EC 0010+00 1/2 0/0 0/0 .bss sTrackList__8JASTrack */ +#ifdef NONMATCHING +JASTrack::TList JASTrack::sTrackList; +#else u8 JASTrack::sTrackList[16]; +#endif +#ifndef NONMATCHING /* 80431ADC-80431AE8 05E7FC 000C+00 3/3 0/0 0/0 .bss @470 */ static u8 lit_470[12]; @@ -248,8 +241,17 @@ u8 data_80431AF4[16]; * memPool_$localstatic3$getMemPool___43JASPoolAllocObject_MultiThreaded<8JASTrack>Fv */ extern u8 data_80431B04[16 + 4 /* padding */]; u8 data_80431B04[16 + 4 /* padding */]; +#endif /* 8029131C-80291444 28BC5C 0128+00 4/4 4/4 0/0 .text __dt__8JASTrackFv */ +#ifdef NONMATCHING +// matches with weak fns / literals +JASTrack::~JASTrack() { + for (int i = 1; i < 4; i++) { + delete mChannelMgrs[i]; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -258,8 +260,30 @@ asm JASTrack::~JASTrack() { #include "asm/JSystem/JAudio2/JASTrack/__dt__8JASTrackFv.s" } #pragma pop +#endif /* 80291444-802915D4 28BD84 0190+00 1/1 3/3 0/0 .text setChannelMgrCount__8JASTrackFUl */ +#ifdef NONMATCHING +// matches with weak fns / literals +void JASTrack::setChannelMgrCount(u32 i_count) { + mChannelMgrCount = 1; + for (int i = 1; i < i_count; i++) { + if (mChannelMgrs[i] == NULL) { + mChannelMgrs[i] = new TChannelMgr(this); + if (mChannelMgrs[i] == NULL) { + return; + } + } + mChannelMgrCount++; + } + for (u32 i = mChannelMgrCount; i < 4; i++) { + if (mChannelMgrs[i] != NULL) { + delete mChannelMgrs[i]; + mChannelMgrs[i] = NULL; + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -268,36 +292,100 @@ asm void JASTrack::setChannelMgrCount(u32 param_0) { #include "asm/JSystem/JAudio2/JASTrack/setChannelMgrCount__8JASTrackFUl.s" } #pragma pop +#endif /* ############################################################################################## */ /* 8039AFD0-8039AFE8 027630 0018+00 1/1 0/0 0/0 .rodata sAdsTable__8JASTrack */ -SECTION_RODATA u8 const JASTrack::sAdsTable[24] = { - 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, +JASOscillator::Point const JASTrack::sAdsTable[4] = { + {0, 0, 0x7fff}, + {0, 0, 0x7fff}, + {0, 0, 0}, + {0xe, 0, 0}, }; -COMPILER_STRIP_GATE(0x8039AFD0, &JASTrack::sAdsTable); /* 8039AFE8-8039B000 027648 0018+00 1/2 0/0 0/0 .rodata sEnvOsc__8JASTrack */ -SECTION_RODATA u8 const JASTrack::sEnvOsc[24] = { - 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x8039AFE8, &JASTrack::sEnvOsc); +JASOscillator::Data const JASTrack::sEnvOsc = {0, 1.0f, NULL, NULL, 1.0f, 0.0f}; /* 8039B000-8039B018 027660 0018+00 0/1 0/0 0/0 .rodata sPitchEnvOsc__8JASTrack */ -#pragma push -#pragma force_active on -SECTION_RODATA u8 const JASTrack::sPitchEnvOsc[24] = { - 0x00, 0x00, 0x00, 0x01, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x8039B000, &JASTrack::sPitchEnvOsc); -#pragma pop +JASOscillator::Data const JASTrack::sPitchEnvOsc = {1, 1.0f, NULL, NULL, 1.0f, 0.0f}; /* 804555A4-804555A8 003BA4 0004+00 9/9 0/0 0/0 .sdata2 @679 */ SECTION_SDATA2 static f32 lit_679 = 1.0f; /* 802915D4-802918FC 28BF14 0328+00 2/2 1/1 0/0 .text init__8JASTrackFv */ +#ifdef NONMATCHING +// matches with weak fns / literals +void JASTrack::init() { + mSeqCtrl.init(); + mTrackPort.init(); + initTimed(); + mRegisterParam.init(); + mOscParam[0] = sEnvOsc; + mOscParam[1] = sPitchEnvOsc; + for (int i = 0; i < 4; i++) { + mOscPoint[i] = sAdsTable[i]; + } + mParent = NULL; + for (int i = 0; i < 16; i++) { + mChildren[i] = NULL; + } + mChannelMgrs[0]->init(); + mChannelMgrCount = 1; + for (int i = 1; i < 4; i++) { + if (mChannelMgrs[i] != NULL) { + delete mChannelMgrs[i]; + mChannelMgrs[i] = NULL; + } + } + mBankTable = &sDefaultBankTable; + field_0x1d8 = 1.0f; + field_0x1dc = 1.0f; + mVibDepth = 0.0f; + mVibPitch = 1.0f; + mTremDepth = 0.0f; + mTremPitch = 1.0f; + mVibDelay = 0; + mTremDelay = 0; + mPanPower = 1.0f; + mDirectRelease = 0; + mSkipSample = 0; + mTempo = 120; + mTimebase = 0x30; + mTempoRate = 1.0f; + updateTempo(); + mTranspose = 0; + field_0x22b = 60; + mBankNumber = 0; + mProgNumber = 0xf0; + mBendSense = 0xc; + mNoteOnPrio = 0x40; + mReleasePrio = 0; + mGateRate = 100; + mMixConfig[0] = 0x150; + mMixConfig[1] = 0x210; + mMixConfig[2] = 0x352; + mMixConfig[3] = 0x412; + mMixConfig[4] = 0; + mMixConfig[5] = 0; + for (int i = 0; i < 8; i++) { + mFIR[i] = 0; + } + mFIR[0] = 0x7fff; + for (int i = 0; i < 8; i++) { + mIIR[i] = 0; + } + mIIR[0] = 0x7fff; + mFilterMode = 0; + mFlags.pause = false; + mFlags.mute = false; + mFlags.flag2 = true; + mFlags.flag5 = true; + mFlags.autoDelete = false; + mFlags.flag4 = false; + mFlags.flag6 = false; + mStatus = 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -306,12 +394,28 @@ asm void JASTrack::init() { #include "asm/JSystem/JAudio2/JASTrack/init__8JASTrackFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 804555A8-804555AC 003BA8 0004+00 4/4 0/0 0/0 .sdata2 @690 */ SECTION_SDATA2 static f32 lit_690 = 0.5f; /* 802918FC-8029194C 28C23C 0050+00 1/1 0/0 0/0 .text initTimed__8JASTrackFv */ +#ifdef NONMATCHING +// matches with literals +void JASTrack::initTimed() { + mMoveParam[0].mValue = 1.0f; + mMoveParam[1].mValue = 0.0f; + mMoveParam[3].mValue = 0.5f; + mMoveParam[2].mValue = 0.0f; + mMoveParam[4].mValue = 0.0f; + mMoveParam[5].mValue = 0.0f; + for (int i = 0; i < 6; i++) { + mMoveParam[i].mCount = 0; + mMoveParam[i].mTarget = mMoveParam[i].mValue; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -320,39 +424,48 @@ asm void JASTrack::initTimed() { #include "asm/JSystem/JAudio2/JASTrack/initTimed__8JASTrackFv.s" } #pragma pop +#endif /* 8029194C-802919F4 28C28C 00A8+00 1/1 0/0 0/0 .text inherit__8JASTrackFRC8JASTrack */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::inherit(JASTrack const& param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/inherit__8JASTrackFRC8JASTrack.s" +void JASTrack::inherit(JASTrack const& i_parent) { + mFlags.flag2 = i_parent.mFlags.flag2; + mBankNumber = i_parent.mBankNumber; + mProgNumber = i_parent.mProgNumber; + mNoteOnPrio = i_parent.mNoteOnPrio; + mReleasePrio = i_parent.mReleasePrio; + mSkipSample = i_parent.mSkipSample; + for (int i = 0; i < 8; i++) { + mFIR[i] = i_parent.mFIR[i]; + } + for (int i = 0; i < 8; i++) { + mIIR[i] = i_parent.mIIR[i]; + } + mFilterMode = i_parent.mFilterMode; + for (int i = 0; i < 6; i++) { + mMixConfig[i] = i_parent.mMixConfig[i]; + } } -#pragma pop /* 802919F4-80291A08 28C334 0014+00 0/0 5/5 0/0 .text * assignExtBuffer__8JASTrackFUlP14JASSoundParams */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::assignExtBuffer(u32 param_0, JASSoundParams* param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/assignExtBuffer__8JASTrackFUlP14JASSoundParams.s" +void JASTrack::assignExtBuffer(u32 i_index, JASSoundParams* i_soundParams) { + mChannelMgrs[i_index]->mSoundParams = i_soundParams; } -#pragma pop /* 80291A08-80291A28 28C348 0020+00 0/0 3/3 0/0 .text setSeqData__8JASTrackFPvUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::setSeqData(void* param_0, u32 param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/setSeqData__8JASTrackFPvUl.s" +void JASTrack::setSeqData(void* param_0, u32 param_1) { + mSeqCtrl.start(param_0, param_1); } -#pragma pop /* 80291A28-80291A78 28C368 0050+00 0/0 2/2 0/0 .text startSeq__8JASTrackFv */ +#ifdef NONMATCHING +// matches once static data declared correctly +void JASTrack::startSeq() { + JASCriticalSection critical_section; + sTrackList.append(this); + mStatus = 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -361,48 +474,65 @@ asm void JASTrack::startSeq() { #include "asm/JSystem/JAudio2/JASTrack/startSeq__8JASTrackFv.s" } #pragma pop +#endif /* 80291A78-80291ABC 28C3B8 0044+00 0/0 2/2 0/0 .text stopSeq__8JASTrackFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::stopSeq() { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/stopSeq__8JASTrackFv.s" +void JASTrack::stopSeq() { + JASCriticalSection critical_section; + mFlags.flag6 = 1; } -#pragma pop /* 80291ABC-80291AC8 28C3FC 000C+00 0/0 1/1 0/0 .text start__8JASTrackFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::start() { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/start__8JASTrackFv.s" +void JASTrack::start() { + mStatus = 1; } -#pragma pop /* 80291AC8-80291B8C 28C408 00C4+00 4/4 0/0 0/0 .text close__8JASTrackFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::close() { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/close__8JASTrackFv.s" +void JASTrack::close() { + for (int i = 0; i < 16; i++) { + JASTrack* child = mChildren[i]; + if (child != NULL) { + child->close(); + if (child->mFlags.autoDelete) { + delete child; + mChildren[i] = NULL; + } + } + } + for (u32 i = 0; i < mChannelMgrCount; i++) { + if (mChannelMgrs[i] != NULL) { + mChannelMgrs[i]->releaseAll(); + } + } + mParent = NULL; + mStatus = 2; } -#pragma pop /* 80291B8C-80291BB8 28C4CC 002C+00 1/1 1/1 0/0 .text connectChild__8JASTrackFUlP8JASTrack */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::connectChild(u32 param_0, JASTrack* param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/connectChild__8JASTrackFUlP8JASTrack.s" +bool JASTrack::connectChild(u32 i_index, JASTrack* i_child) { + if (mChildren[i_index] != NULL) { + return false; + } + i_child->mParent = this; + mChildren[i_index] = i_child; + return true; } -#pragma pop /* 80291BB8-80291C30 28C4F8 0078+00 0/0 1/1 0/0 .text closeChild__8JASTrackFUl */ +#ifdef NONMATCHING +// matches with literals +void JASTrack::closeChild(u32 i_index) { + JASTrack* child = mChildren[i_index]; + if (child != NULL) { + getRootTrack()->updateSeq(false, 1.0f); + child->close(); + if (child->mFlags.autoDelete) { + delete child; + mChildren[i_index] = NULL; + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -411,8 +541,42 @@ asm void JASTrack::closeChild(u32 param_0) { #include "asm/JSystem/JAudio2/JASTrack/closeChild__8JASTrackFUl.s" } #pragma pop +#endif /* 80291C30-80291DAC 28C570 017C+00 0/0 2/2 0/0 .text openChild__8JASTrackFUl */ +#ifdef NONMATCHING +// matches with weak fns / literals +JASTrack* JASTrack::openChild(u32 i_index) { + JASTrack* child = mChildren[i_index]; + if (child != NULL) { + switch (child->mStatus) { + case 0: + break; + case 1: + getRootTrack()->updateSeq(false, 1.0f); + child->close(); + // no break + case 2: + bool auto_delete = child->mFlags.autoDelete; + child->init(); + child->mFlags.autoDelete = auto_delete; + mChildren[i_index] = NULL; + connectChild(i_index, child); + break; + } + } else { + child = new JASTrack(); + if (child == NULL) { + return NULL; + } + child->mFlags.autoDelete = true; + connectChild(i_index, child); + } + child->setChannelMgrCount(mChannelMgrCount); + child->inherit(*this); + return child; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -421,40 +585,83 @@ asm JASTrack* JASTrack::openChild(u32 param_0) { #include "asm/JSystem/JAudio2/JASTrack/openChild__8JASTrackFUl.s" } #pragma pop +#endif /* 80291DAC-80291DBC 28C6EC 0010+00 0/0 1/1 0/0 .text connectBus__8JASTrackFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::connectBus(int param_0, int param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/connectBus__8JASTrackFii.s" +void JASTrack::connectBus(int param_0, int param_1) { + mMixConfig[param_0] = param_1; } -#pragma pop /* 80291DBC-80291DF8 28C6FC 003C+00 0/0 1/1 0/0 .text setLatestKey__8JASTrackFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::setLatestKey(u8 param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/setLatestKey__8JASTrackFUc.s" +void JASTrack::setLatestKey(u8 param_0) { + field_0x22b = param_0; + field_0x22b += getTransposeTotal(); } -#pragma pop /* 80291DF8-80291F38 28C738 0140+00 2/2 0/0 0/0 .text * channelStart__8JASTrackFPQ28JASTrack11TChannelMgrUlUlUl */ +#ifdef NONMATCHING +// matches with weak fns +JASChannel* JASTrack::channelStart(JASTrack::TChannelMgr* i_channelMgr, u32 param_1, u32 param_2, + u32 i_updateTimer) { + JASBank* bank = NULL; + if (mBankTable != NULL) { + bank = mBankTable->getBank(mBankNumber); + } + JASChannel* channel = JASBank::noteOn(bank, mProgNumber, param_1, param_2, + mNoteOnPrio | mReleasePrio << 8, + channelUpdateCallback, i_channelMgr); + if (channel == NULL) { + return NULL; + } + channel->setUpdateTimer(i_updateTimer); + channel->setSkipSamples(mSkipSample); + channel->setVibrateDelay(mVibDelay); + channel->setTremoloDelay(mTremDelay); + channel->setParams(i_channelMgr->mParams); + for (u32 i = 0; i < 6; i++) { + channel->setMixConfig(i, mMixConfig[i]); + } + overwriteOsc(channel); + if (mDirectRelease != 0) { + channel->setDirectRelease(mDirectRelease); + } + return channel; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JASTrack::channelStart(JASTrack::TChannelMgr* param_0, u32 param_1, u32 param_2, +asm JASChannel* JASTrack::channelStart(JASTrack::TChannelMgr* param_0, u32 param_1, u32 param_2, u32 param_3) { nofralloc #include "asm/JSystem/JAudio2/JASTrack/channelStart__8JASTrackFPQ28JASTrack11TChannelMgrUlUlUl.s" } #pragma pop +#endif /* 80291F38-80292008 28C878 00D0+00 0/0 1/1 0/0 .text noteOn__8JASTrackFUlUlUl */ +#ifdef NONMATCHING +// regalloc +int JASTrack::noteOn(u32 i_noteID, u32 param_1, u32 param_2) { + if (isMute()) { + return 0; + } + int ret = 1; + int var1 = param_1 + getTransposeTotal(); + for (u32 i = 0; i < mChannelMgrCount; i++) { + if (mChannelMgrs[i] != NULL) { + mChannelMgrs[i]->noteOff(i_noteID, 0); + JASChannel* channel = channelStart(mChannelMgrs[i], var1, param_2, 0); + if (channel == NULL) { + ret = 0; + } + mChannelMgrs[i]->mChannels[i_noteID] = channel; + } + } + return ret; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -463,6 +670,7 @@ asm int JASTrack::noteOn(u32 param_0, u32 param_1, u32 param_2) { #include "asm/JSystem/JAudio2/JASTrack/noteOn__8JASTrackFUlUlUl.s" } #pragma pop +#endif /* ############################################################################################## */ /* 804555AC-804555B0 003BAC 0004+00 1/1 0/0 0/0 .sdata2 @952 */ @@ -472,6 +680,48 @@ SECTION_SDATA2 static f32 lit_952 = 100.0f; SECTION_SDATA2 static f64 lit_954 = 4503599627370496.0 /* cast u32 to float */; /* 80292008-80292198 28C948 0190+00 0/0 1/1 0/0 .text gateOn__8JASTrackFUlUlfUl */ +#ifdef NONMATCHING +// regalloc +int JASTrack::gateOn(u32 param_0, u32 i_velocity, f32 i_time, u32 i_flags) { + int uvar5 = param_0 + getTransposeTotal(); + if (mGateRate != 100) { + i_time *= mGateRate / 100.0f; + } + u32 uvar2 = seqTimeToDspTime(i_time); + u32 update_timer = (i_flags & 6) ? 0 : uvar2; + int uvar7; + if (i_flags & 1) { + uvar7 = field_0x22b; + } else { + uvar7 = uvar5; + } + for (u32 i = 0; i < mChannelMgrCount; i++) { + TChannelMgr* channel_mgr = mChannelMgrs[i]; + if (channel_mgr != NULL) { + if (!mFlags.flag4) { + channel_mgr->noteOff(0, 0); + if (!isMute()) { + channel_mgr->mChannels[0] = + channelStart(channel_mgr, uvar7, i_velocity, update_timer); + } + } else { + JASChannel* channel = channel_mgr->mChannels[0]; + if (channel != NULL) { + channel->mKey = uvar7 - channel->field_0xdc.field_0x4.field_0x01; + channel->mVelocity = i_velocity; + channel->mUpdateTimer = update_timer; + } + } + if ((i_flags & 1) && channel_mgr->mChannels[0] != NULL) { + channel_mgr->mChannels[0]->setKeySweepTarget(uvar5 - uvar7, uvar2); + } + } + } + mFlags.flag4 = (i_flags >> 1) & 1; + field_0x22b = uvar5; + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -480,38 +730,53 @@ asm int JASTrack::gateOn(u32 param_0, u32 param_1, f32 param_2, u32 param_3) { #include "asm/JSystem/JAudio2/JASTrack/gateOn__8JASTrackFUlUlfUl.s" } #pragma pop +#endif /* 80292198-80292220 28CAD8 0088+00 1/1 1/1 0/0 .text noteOff__8JASTrackFUlUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int JASTrack::noteOff(u32 param_0, u16 param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/noteOff__8JASTrackFUlUs.s" +int JASTrack::noteOff(u32 i_noteID, u16 param_1) { + int ret = 1; + for (u32 i = 0; i < mChannelMgrCount; i++) { + if (mChannelMgrs[i] != NULL) { + if (!mChannelMgrs[i]->noteOff(i_noteID, param_1)) { + ret = 0; + } + } + } + return ret; } -#pragma pop /* 80292220-8029226C 28CB60 004C+00 0/0 1/1 0/0 .text checkNoteStop__8JASTrackCFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool JASTrack::checkNoteStop(u32 param_0) const { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/checkNoteStop__8JASTrackCFUl.s" +bool JASTrack::checkNoteStop(u32 i_noteID) const { + for (u32 i = 0; i < mChannelMgrCount; i++) { + if (mChannelMgrs[i] != NULL && mChannelMgrs[i]->mChannels[i_noteID] != NULL) { + return false; + } + } + return true; } -#pragma pop /* 8029226C-802922D8 28CBAC 006C+00 1/1 0/0 0/0 .text overwriteOsc__8JASTrackFP10JASChannel */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::overwriteOsc(JASChannel* param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/overwriteOsc__8JASTrackFP10JASChannel.s" +void JASTrack::overwriteOsc(JASChannel* i_channel) { + for (u32 i = 0; i < 2; i++) { + if (mOscParam[i].mTable != NULL) { + i_channel->setOscInit(i, &mOscParam[i]); + } + } } -#pragma pop /* 802922D8-80292348 28CC18 0070+00 1/1 0/0 0/0 .text updateTimedParam__8JASTrackFv */ +#ifdef NONMATCHING +// matches with literals +void JASTrack::updateTimedParam() { + for (u32 i = 0; i < 6; i++) { + MoveParam_* param = &mMoveParam[i]; + if (param->mCount != 0) { + param->mValue += (param->mTarget - param->mValue) / param->mCount; + param->mCount--; + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -520,12 +785,60 @@ asm void JASTrack::updateTimedParam() { #include "asm/JSystem/JAudio2/JASTrack/updateTimedParam__8JASTrackFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 804555B8-804555BC 003BB8 0004+00 1/1 0/0 0/0 .sdata2 @1032 */ SECTION_SDATA2 static f32 lit_1032 = 1.0f / 3.0f; /* 80292348-802924E4 28CC88 019C+00 1/1 0/0 0/0 .text updateTrack__8JASTrackFf */ +#ifdef NONMATCHING +// matches with literals +void JASTrack::updateTrack(f32 param_0) { + updateTempo(); + for (u32 i = 0; i < mChannelMgrCount; i++) { + TChannelMgr* channel_mgr = mChannelMgrs[i]; + if (channel_mgr != NULL) { + f32 volume = mMoveParam[0].mValue; + volume = volume * volume; + f32 pitch = 1.0f; + f32 fvar6 = mMoveParam[1].mValue * mBendSense * (1.0f / 3.0f); + f32 pan = (mMoveParam[3].mValue - 0.5f) * mPanPower; + f32 fxmix = mMoveParam[2].mValue; + f32 dolby = mMoveParam[4].mValue; + JASSoundParams* sound_params = channel_mgr->mSoundParams; + if (sound_params != NULL) { + volume *= sound_params->mVolume; + pitch *= sound_params->mPitch; + pan += sound_params->mPan - 0.5f; + fxmix += sound_params->mFxMix; + dolby += sound_params->mDolby; + } + pan *= param_0; + if (mParent == NULL) { + channel_mgr->mParams.mVolume = volume; + channel_mgr->mParams.mPitch = pitch; + channel_mgr->mParams.mPan = pan; + channel_mgr->mParams.mFxMix = fxmix; + channel_mgr->mParams.mDolby = dolby; + channel_mgr->mParams.field_0x8 = fvar6; + } else { + TChannelMgr* parent_channel_mgr = mParent->mChannelMgrs[i]; + if (parent_channel_mgr == NULL) { + parent_channel_mgr = mParent->mChannelMgrs[0]; + } + channel_mgr->mParams.mVolume = parent_channel_mgr->mParams.mVolume * volume; + channel_mgr->mParams.mPitch = parent_channel_mgr->mParams.mPitch * pitch; + channel_mgr->mParams.mPan = (parent_channel_mgr->mParams.mPan - 0.5f) + pan; + channel_mgr->mParams.mFxMix = parent_channel_mgr->mParams.mFxMix + fxmix; + channel_mgr->mParams.mDolby = parent_channel_mgr->mParams.mDolby + dolby; + channel_mgr->mParams.field_0x8 = parent_channel_mgr->mParams.field_0x8 + fvar6; + } + channel_mgr->mParams.mPan += 0.5f; + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -534,6 +847,7 @@ asm void JASTrack::updateTrack(f32 param_0) { #include "asm/JSystem/JAudio2/JASTrack/updateTrack__8JASTrackFf.s" } #pragma pop +#endif /* ############################################################################################## */ /* 804555BC-804555C0 003BBC 0004+00 1/1 0/0 0/0 .sdata2 @1042 */ @@ -543,6 +857,18 @@ SECTION_SDATA2 static f32 lit_1042 = 4.0f / 3.0f; SECTION_SDATA2 static f64 lit_1044 = 4503601774854144.0 /* cast s32 to float */; /* 802924E4-80292580 28CE24 009C+00 5/5 0/0 0/0 .text updateTempo__8JASTrackFv */ +#ifdef NONMATCHING +// matches with literals +void JASTrack::updateTempo() { + if (mParent == NULL) { + field_0x1dc = mTempoRate * (mTimebase * mTempo * (4.0f / 3.0f) / JASDriver::getDacRate()); + } else { + mTempo = mParent->mTempo; + mTimebase = mParent->mTimebase; + field_0x1dc = mParent->field_0x1dc; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -551,16 +877,24 @@ asm void JASTrack::updateTempo() { #include "asm/JSystem/JAudio2/JASTrack/updateTempo__8JASTrackFv.s" } #pragma pop +#endif /* 80292580-80292644 28CEC0 00C4+00 4/4 0/0 0/0 .text updateSeq__8JASTrackFbf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::updateSeq(bool param_0, f32 param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/updateSeq__8JASTrackFbf.s" +void JASTrack::updateSeq(bool param_0, f32 param_1) { + if (!param_0) { + param_0 = mFlags.flag5; + } + mFlags.flag5 = false; + if (param_0) { + updateTrack(param_1); + } + f32 fvar1 = param_1 * mPanPower; + for (int i = 0; i < 16; i++) { + if (mChildren[i] != NULL && mChildren[i]->mStatus == 1) { + mChildren[i]->updateSeq(param_0, fvar1); + } + } } -#pragma pop /* ############################################################################################## */ /* 804555C8-804555CC 003BC8 0004+00 1/1 0/0 0/0 .sdata2 @1069 */ @@ -570,209 +904,195 @@ SECTION_SDATA2 static f32 lit_1069 = 120.0f; SECTION_SDATA2 static f32 lit_1070 = 10.0f; /* 80292644-802926E0 28CF84 009C+00 1/1 0/0 0/0 .text seqTimeToDspTime__8JASTrackFf */ +#ifdef NONMATCHING +// matches with literals +u32 JASTrack::seqTimeToDspTime(f32 i_seqTime) { + f32 dsp_time; + if (mFlags.flag2) { + dsp_time = i_seqTime / field_0x1dc; + } else { + dsp_time = i_seqTime * (120.0f / mTimebase); + dsp_time *= JASDriver::getSubFrames() / 10.0f; + } + return dsp_time; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JASTrack::seqTimeToDspTime(f32 param_0) { +asm u32 JASTrack::seqTimeToDspTime(f32 param_0) { nofralloc #include "asm/JSystem/JAudio2/JASTrack/seqTimeToDspTime__8JASTrackFf.s" } #pragma pop +#endif /* 802926E0-80292708 28D020 0028+00 0/0 4/4 0/0 .text setParam__8JASTrackFUlfUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::setParam(u32 param_0, f32 param_1, u32 param_2) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/setParam__8JASTrackFUlfUl.s" +void JASTrack::setParam(u32 i_index, f32 i_target, u32 i_count) { + MoveParam_* param = &mMoveParam[i_index]; + param->mTarget = i_target; + if (i_count == 0) { + param->mValue = param->mTarget; + } + param->mCount = i_count; } -#pragma pop /* 80292708-802927A0 28D048 0098+00 1/1 0/0 0/0 .text noteOffAll__8JASTrackFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::noteOffAll(u16 param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/noteOffAll__8JASTrackFUs.s" +void JASTrack::noteOffAll(u16 param_0) { + for (u8 i = 0; i < 8; i++) { + noteOff(i, param_0); + } + for (int i = 0; i < 16; i++) { + if (mChildren[i] != NULL && mChildren[i]->mStatus == 1) { + mChildren[i]->noteOffAll(param_0); + } + } } -#pragma pop /* 802927A0-802927D8 28D0E0 0038+00 0/0 2/2 0/0 .text mute__8JASTrackFb */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::mute(bool param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/mute__8JASTrackFb.s" +void JASTrack::mute(bool i_mute) { + mFlags.mute = i_mute; + if (i_mute) { + noteOffAll(10); + } } -#pragma pop /* 802927D8-802927E8 28D118 0010+00 0/0 1/1 0/0 .text setOscScale__8JASTrackFUlf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::setOscScale(u32 param_0, f32 param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/setOscScale__8JASTrackFUlf.s" +void JASTrack::setOscScale(u32 i_oscNo, f32 i_scale) { + mOscParam[i_oscNo].mScale = i_scale; } -#pragma pop /* 802927E8-80292808 28D128 0020+00 0/0 1/1 0/0 .text * setOscTable__8JASTrackFUlPCQ213JASOscillator5Point */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::setOscTable(u32 param_0, JASOscillator::Point const* param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/setOscTable__8JASTrackFUlPCQ213JASOscillator5Point.s" +void JASTrack::setOscTable(u32 i_oscNo, JASOscillator::Point const* i_table) { + mOscParam[i_oscNo].mTable = i_table; + if (i_oscNo != 0) { + mOscParam[i_oscNo]._0C = NULL; + } } -#pragma pop /* 80292808-8029285C 28D148 0054+00 0/0 1/1 0/0 .text setOscAdsr__8JASTrackFssssUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::setOscAdsr(s16 param_0, s16 param_1, s16 param_2, s16 param_3, u16 param_4) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/setOscAdsr__8JASTrackFssssUs.s" +void JASTrack::setOscAdsr(s16 param_0, s16 param_1, s16 param_2, s16 param_3, u16 i_directRelease) { + mOscParam[0] = sEnvOsc; + mOscParam[0].mTable = mOscPoint; + mOscPoint[0]._2 = param_0; + mOscPoint[1]._2 = param_1; + mOscPoint[2]._2 = param_2; + mOscPoint[2]._4 = param_3; + mDirectRelease = i_directRelease; } -#pragma pop /* ############################################################################################## */ /* 804555D0-804555D4 003BD0 0004+00 2/2 0/0 0/0 .sdata2 FILTER_MODE_IIR__6JASDsp */ SECTION_SDATA2 u32 JASDsp::FILTER_MODE_IIR = 0x00000020; /* 8029285C-8029289C 28D19C 0040+00 0/0 2/2 0/0 .text setFIR__8JASTrackFPCs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::setFIR(s16 const* param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/setFIR__8JASTrackFPCs.s" +void JASTrack::setFIR(s16 const* i_FIR) { + for (int i = 0; i < 8; i++) { + mFIR[i] = i_FIR[i]; + } + mFilterMode &= JASDsp::FILTER_MODE_IIR; + mFilterMode |= 8; } -#pragma pop /* 8029289C-802928D0 28D1DC 0034+00 0/0 4/4 0/0 .text setIIR__8JASTrackFPCs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::setIIR(s16 const* param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/setIIR__8JASTrackFPCs.s" +void JASTrack::setIIR(s16 const* i_IIR) { + for (int i = 0; i < 8; i++) { + mIIR[i] = i_IIR[i]; + } + mFilterMode |= JASDsp::FILTER_MODE_IIR; } -#pragma pop /* 802928D0-802928F4 28D210 0024+00 0/0 1/1 0/0 .text readPortSelf__8JASTrackFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u16 JASTrack::readPortSelf(u32 param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/readPortSelf__8JASTrackFUl.s" +u16 JASTrack::readPortSelf(u32 param_0) { + return mTrackPort.readImport(param_0); } -#pragma pop /* 802928F4-80292918 28D234 0024+00 0/0 1/1 0/0 .text writePortSelf__8JASTrackFUlUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::writePortSelf(u32 param_0, u16 param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/writePortSelf__8JASTrackFUlUs.s" +void JASTrack::writePortSelf(u32 param_0, u16 param_1) { + mTrackPort.writeExport(param_0, param_1); } -#pragma pop /* 80292918-8029297C 28D258 0064+00 0/0 4/4 0/0 .text writePort__8JASTrackFUlUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::writePort(u32 param_0, u16 param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/writePort__8JASTrackFUlUs.s" +void JASTrack::writePort(u32 param_0, u16 param_1) { + mTrackPort.writeImport(param_0, param_1); + if (param_0 == 0 || param_0 == 1) { + JASSeqCtrl::IntrType intr; + if (param_0 == 0) { + intr = JASSeqCtrl::INTRTYPE_VALUE_2; + } else { + intr = JASSeqCtrl::INTRTYPE_VALUE_3; + } + mSeqCtrl.interrupt(intr); + } } -#pragma pop /* 8029297C-802929A0 28D2BC 0024+00 0/0 3/3 0/0 .text readPort__8JASTrackFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm u16 JASTrack::readPort(u32 param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/readPort__8JASTrackFUl.s" +u16 JASTrack::readPort(u32 param_0) { + return mTrackPort.readExport(param_0); } -#pragma pop /* 802929A0-80292A3C 28D2E0 009C+00 1/1 0/0 0/0 .text setChannelPauseFlag__8JASTrackFb */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::setChannelPauseFlag(bool param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/setChannelPauseFlag__8JASTrackFb.s" +void JASTrack::setChannelPauseFlag(bool i_pause) { + for (u32 i = 0; i < mChannelMgrCount; i++) { + if (mChannelMgrs[i] != NULL) { + mChannelMgrs[i]->setPauseFlag(i_pause); + } + } + for (int i = 0; i < 16; i++) { + if (mChildren[i] != NULL) { + mChildren[i]->setChannelPauseFlag(i_pause); + } + } } -#pragma pop /* 80292A3C-80292AA4 28D37C 0068+00 0/0 2/2 0/0 .text pause__8JASTrackFb */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::pause(bool param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/pause__8JASTrackFb.s" +void JASTrack::pause(bool i_pause) { + if (mFlags.pause != i_pause) { + mFlags.pause = i_pause; + setChannelPauseFlag(i_pause); + mSeqCtrl.interrupt(i_pause ? JASSeqCtrl::INTRTYPE_VALUE_0 : JASSeqCtrl::INTRTYPE_VALUE_1); + } } -#pragma pop /* 80292AA4-80292AF4 28D3E4 0050+00 3/3 0/0 0/0 .text getTransposeTotal__8JASTrackCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::getTransposeTotal() const { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/getTransposeTotal__8JASTrackCFv.s" +int JASTrack::getTransposeTotal() const { + if (mParent != NULL) { + return mTranspose + mParent->getTransposeTotal(); + } else { + return mTranspose; + } } -#pragma pop /* 80292AF4-80292B58 28D434 0064+00 2/2 0/0 0/0 .text isMute__8JASTrackCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::isMute() const { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/isMute__8JASTrackCFv.s" +bool JASTrack::isMute() const { + if (mParent != NULL) { + return mFlags.mute || mParent->isMute(); + } else { + return mFlags.mute; + } } -#pragma pop /* 80292B58-80292B8C 28D498 0034+00 0/0 1/1 0/0 .text setTempo__8JASTrackFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::setTempo(u16 param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/setTempo__8JASTrackFUs.s" +void JASTrack::setTempo(u16 i_tempo) { + mTempo = i_tempo; + mFlags.flag5 = true; + updateTempo(); } -#pragma pop /* 80292B8C-80292BC0 28D4CC 0034+00 0/0 2/2 0/0 .text setTempoRate__8JASTrackFf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::setTempoRate(f32 param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/setTempoRate__8JASTrackFf.s" +void JASTrack::setTempoRate(f32 i_tempoRate) { + mTempoRate = i_tempoRate; + mFlags.flag5 = true; + updateTempo(); } -#pragma pop /* 80292BC0-80292BF4 28D500 0034+00 0/0 1/1 0/0 .text setTimebase__8JASTrackFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::setTimebase(u16 param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/setTimebase__8JASTrackFUs.s" +void JASTrack::setTimebase(u16 i_timebase) { + mTimebase = i_timebase; + mFlags.flag5 = true; + updateTempo(); } -#pragma pop /* ############################################################################################## */ /* 804555D4-804555D8 003BD4 0004+00 1/1 0/0 0/0 .sdata2 @1246 */ @@ -780,6 +1100,21 @@ SECTION_SDATA2 static f32 lit_1246 = 32767.0f; /* 80292BF4-80292CA4 28D534 00B0+00 1/1 0/0 0/0 .text * updateChannel__8JASTrackFP10JASChannelPQ26JASDsp8TChannel */ +#ifdef NONMATCHING +// matches with literals +void JASTrack::updateChannel(JASChannel* param_0, JASDsp::TChannel* param_1) { + param_0->setVibrate(mVibDepth, mVibPitch); + param_0->setTremolo(mTremDepth, mTremPitch); + if (mFilterMode & 0x20) { + param_1->setIIRFilterParam(mIIR); + } + if (mFilterMode & 0x1f) { + param_1->setFIR8FilterParam(mFIR); + } + param_1->setFilterMode(mFilterMode); + param_1->setDistFilter(mMoveParam[5].mValue * 32767.0f); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -788,70 +1123,148 @@ asm void JASTrack::updateChannel(JASChannel* param_0, JASDsp::TChannel* param_1) #include "asm/JSystem/JAudio2/JASTrack/updateChannel__8JASTrackFP10JASChannelPQ26JASDsp8TChannel.s" } #pragma pop +#endif /* 80292CA4-80292D88 28D5E4 00E4+00 1/1 0/0 0/0 .text * channelUpdateCallback__8JASTrackFUlP10JASChannelPQ26JASDsp8TChannelPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::channelUpdateCallback(u32 param_0, JASChannel* param_1, - JASDsp::TChannel* param_2, void* param_3) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/channelUpdateCallback__8JASTrackFUlP10JASChannelPQ26JASDsp8TChannelPv.s" +void JASTrack::channelUpdateCallback(u32 param_0, JASChannel* param_1, + JASDsp::TChannel* param_2, void* param_3) { + TChannelMgr* channel_mgr = static_cast(param_3); + JASTrack* track = channel_mgr->mTrack; + switch (param_0) { + case 0: + case 1: + param_1->mParams = channel_mgr->mParams; + track->updateChannel(param_1, param_2); + break; + case 3: + param_1->release(0); + param_1->free(); + channel_mgr->mChannels[0] = NULL; + break; + case 2: + for (int i = 0; i < 8; i++) { + if (param_1 == channel_mgr->mChannels[i]) { + channel_mgr->mChannels[i] = NULL; + break; + } + } + break; + } } -#pragma pop /* 80292D88-80292DA0 28D6C8 0018+00 3/3 0/0 0/0 .text getRootTrack__8JASTrackFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::getRootTrack() { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/getRootTrack__8JASTrackFv.s" +JASTrack* JASTrack::getRootTrack() { + JASTrack* track = this; + while (track->mParent != NULL) { + track = track->mParent; + } + return track; } -#pragma pop /* 80292DA0-80292E9C 28D6E0 00FC+00 1/1 0/0 0/0 .text tickProc__8JASTrackFv */ +#ifdef NONMATCHING +// matches with literals +int JASTrack::tickProc() { + if (mFlags.pause) { + return 0; + } + int ret = mSeqCtrl.tickProc(this); + updateTimedParam(); + mFlags.flag5 = true; + if (ret < 0) { + return -1; + } + for (int i = 0; i < 16; i++) { + JASTrack* child = mChildren[i]; + if (child != NULL && child->mStatus == 1) { + ret = child->tickProc(); + if (ret < 0) { + getRootTrack()->updateSeq(false, 1.0f); + child->close(); + if (child->mFlags.autoDelete) { + delete child; + mChildren[i] = NULL; + } + } + } + } + return 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JASTrack::tickProc() { +asm int JASTrack::tickProc() { nofralloc #include "asm/JSystem/JAudio2/JASTrack/tickProc__8JASTrackFv.s" } #pragma pop +#endif /* 80292E9C-80292F6C 28D7DC 00D0+00 1/1 0/0 0/0 .text seqMain__8JASTrackFv */ +#ifdef NONMATCHING +// matches with literals +int JASTrack::seqMain() { + if (mFlags.flag6) { + updateSeq(true, 1.0f); + close(); + return -1; + } else { + while (field_0x1d8 >= 1.0f) { + field_0x1d8 -= 1.0f; + if (tickProc() < 0) { + updateSeq(false, 1.0f); + close(); + return -1; + } + } + field_0x1d8 += field_0x1dc; + updateSeq(false, 1.0f); + return 0; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JASTrack::seqMain() { +asm int JASTrack::seqMain() { nofralloc #include "asm/JSystem/JAudio2/JASTrack/seqMain__8JASTrackFv.s" } #pragma pop +#endif /* 80292F6C-80292F90 28D8AC 0024+00 1/1 0/0 0/0 .text cbSeqMain__Q28JASTrack5TListFPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::TList::cbSeqMain(void* param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/cbSeqMain__Q28JASTrack5TListFPv.s" +s32 JASTrack::TList::cbSeqMain(void* i_this) { + static_cast(i_this)->seqMain(); + return 0; } -#pragma pop /* 80292F90-8029301C 28D8D0 008C+00 1/1 0/0 0/0 .text append__Q28JASTrack5TListFP8JASTrack */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::TList::append(JASTrack* param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/append__Q28JASTrack5TListFP8JASTrack.s" +void JASTrack::TList::append(JASTrack* i_track) { + if (!mCallbackRegistered) { + if (!JASDriver::registerSubFrameCallback(cbSeqMain, this)) { + return; + } + mCallbackRegistered = true; + } + Push_back(i_track); } -#pragma pop /* 8029301C-802930DC 28D95C 00C0+00 1/1 0/0 0/0 .text seqMain__Q28JASTrack5TListFv */ +#ifdef NONMATCHING +void JASTrack::TList::seqMain() { + for (iterator it = begin(); it != end(); it++) { + if (it->seqMain() < 0) { + Remove(&*it); + if (it->mFlags.autoDelete) { + delete &*it; + } + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -860,8 +1273,20 @@ asm void JASTrack::TList::seqMain() { #include "asm/JSystem/JAudio2/JASTrack/seqMain__Q28JASTrack5TListFv.s" } #pragma pop +#endif /* 802930DC-80293148 28DA1C 006C+00 2/2 0/0 0/0 .text __ct__Q28JASTrack11TChannelMgrFP8JASTrack */ +#ifdef NONMATCHING +// matches with literals +JASTrack::TChannelMgr::TChannelMgr(JASTrack* i_track) : mSoundParams(NULL), mTrack(i_track) { + for (int i = 0; i < 8; i++) { + mChannels[i] = NULL; + } + for (int i = 0; i < 8; i++) { + field_0x38[i] = 0; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -870,8 +1295,22 @@ asm JASTrack::TChannelMgr::TChannelMgr(JASTrack* param_0) { #include "asm/JSystem/JAudio2/JASTrack/__ct__Q28JASTrack11TChannelMgrFP8JASTrack.s" } #pragma pop +#endif /* 80293148-802931B0 28DA88 0068+00 1/1 0/0 0/0 .text init__Q28JASTrack11TChannelMgrFv */ +#ifdef NONMATCHING +// matches with literals +void JASTrack::TChannelMgr::init() { + mSoundParams = NULL; + mParams.init(); + for (int i = 0; i < 8; i++) { + mChannels[i] = NULL; + } + for (int i = 0; i < 8; i++) { + field_0x38[i] = 0; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -880,42 +1319,51 @@ asm void JASTrack::TChannelMgr::init() { #include "asm/JSystem/JAudio2/JASTrack/init__Q28JASTrack11TChannelMgrFv.s" } #pragma pop +#endif /* 802931B0-80293220 28DAF0 0070+00 1/1 0/0 0/0 .text releaseAll__Q28JASTrack11TChannelMgrFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::TChannelMgr::releaseAll() { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/releaseAll__Q28JASTrack11TChannelMgrFv.s" +void JASTrack::TChannelMgr::releaseAll() { + for (int i = 0; i < 8; i++) { + JASChannel* channel = mChannels[i]; + if (channel != NULL) { + channel->release(0); + channel->free(); + mChannels[i] = NULL; + } + } } -#pragma pop /* 80293220-802932A0 28DB60 0080+00 3/3 0/0 0/0 .text noteOff__Q28JASTrack11TChannelMgrFUlUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::TChannelMgr::noteOff(u32 param_0, u16 param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/noteOff__Q28JASTrack11TChannelMgrFUlUs.s" +bool JASTrack::TChannelMgr::noteOff(u32 i_channel, u16 param_1) { + JASChannel* channel = mChannels[i_channel]; + if (channel == NULL) { + return false; + } + if (param_1 == 0) { + channel->release(0); + } else { + channel->release(param_1); + } + channel->free(); + mChannels[i_channel] = NULL; + return true; } -#pragma pop /* 802932A0-802932C8 28DBE0 0028+00 1/1 0/0 0/0 .text setPauseFlag__Q28JASTrack11TChannelMgrFb */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASTrack::TChannelMgr::setPauseFlag(bool param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASTrack/setPauseFlag__Q28JASTrack11TChannelMgrFb.s" +void JASTrack::TChannelMgr::setPauseFlag(bool i_pause) { + for (int i = 0; i < 8; i++) { + if (mChannels[i] != NULL) { + mChannels[i]->setPauseFlag(i_pause); + } + } } -#pragma pop /* 802932C8-802932E0 28DC08 0018+00 1/1 0/0 0/0 .text __ct__Q28JASTrack10MoveParam_Fv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm JASTrack::MoveParam_::MoveParam_() { +// asm JASTrack::MoveParam_::MoveParam_() { +extern "C" asm void __ct__Q28JASTrack10MoveParam_Fv() { nofralloc #include "asm/JSystem/JAudio2/JASTrack/__ct__Q28JASTrack10MoveParam_Fv.s" } @@ -967,6 +1415,7 @@ SECTION_DATA extern void* __vt__11JASBankList[3 + 1 /* padding */] = { NULL, }; +#ifndef NONMATCHING /* 80293388-8029345C 28DCC8 00D4+00 0/0 1/0 0/0 .text __sinit_JASTrack_cpp */ #pragma push #pragma optimization_level 0 @@ -986,7 +1435,8 @@ REGISTER_CTORS(0x80293388, __sinit_JASTrack_cpp); #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm JASTrack::TList::~TList() { +// asm JASTrack::TList::~TList() { +extern "C" asm void __dt__Q28JASTrack5TListFv() { nofralloc #include "asm/JSystem/JAudio2/JASTrack/__dt__Q28JASTrack5TListFv.s" } @@ -996,7 +1446,8 @@ asm JASTrack::TList::~TList() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm JASDefaultBankTable::~JASDefaultBankTable() { +// asm JASDefaultBankTable::~JASDefaultBankTable() { +extern "C" asm void __dt__19JASDefaultBankTableFv() { nofralloc #include "asm/JSystem/JAudio2/JASTrack/__dt__19JASDefaultBankTableFv.s" } @@ -1011,3 +1462,4 @@ extern "C" asm void func_80293528(void* _this, u32 param_0) /* const */ { #include "asm/JSystem/JAudio2/JASTrack/func_80293528.s" } #pragma pop +#endif