summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Progress.md8
-rw-r--r--asm/JSystem/JAudio2/JASTrack/append__Q28JASTrack5TListFP8JASTrack.s38
-rw-r--r--asm/JSystem/JAudio2/JASTrack/assignExtBuffer__8JASTrackFUlP14JASSoundParams.s6
-rw-r--r--asm/JSystem/JAudio2/JASTrack/cbSeqMain__Q28JASTrack5TListFPv.s10
-rw-r--r--asm/JSystem/JAudio2/JASTrack/channelUpdateCallback__8JASTrackFUlP10JASChannelPQ26JASDsp8TChannelPv.s65
-rw-r--r--asm/JSystem/JAudio2/JASTrack/checkNoteStop__8JASTrackCFUl.s23
-rw-r--r--asm/JSystem/JAudio2/JASTrack/close__8JASTrackFv.s55
-rw-r--r--asm/JSystem/JAudio2/JASTrack/connectBus__8JASTrackFii.s5
-rw-r--r--asm/JSystem/JAudio2/JASTrack/connectChild__8JASTrackFUlP8JASTrack.s13
-rw-r--r--asm/JSystem/JAudio2/JASTrack/getRootTrack__8JASTrackFv.s9
-rw-r--r--asm/JSystem/JAudio2/JASTrack/getTransposeTotal__8JASTrackCFv.s23
-rw-r--r--asm/JSystem/JAudio2/JASTrack/inherit__8JASTrackFRC8JASTrack.s46
-rw-r--r--asm/JSystem/JAudio2/JASTrack/isMute__8JASTrackCFv.s29
-rw-r--r--asm/JSystem/JAudio2/JASTrack/mute__8JASTrackFb.s16
-rw-r--r--asm/JSystem/JAudio2/JASTrack/noteOffAll__8JASTrackFUs.s43
-rw-r--r--asm/JSystem/JAudio2/JASTrack/noteOff__8JASTrackFUlUs.s38
-rw-r--r--asm/JSystem/JAudio2/JASTrack/noteOff__Q28JASTrack11TChannelMgrFUlUs.s37
-rw-r--r--asm/JSystem/JAudio2/JASTrack/overwriteOsc__8JASTrackFP10JASChannel.s30
-rw-r--r--asm/JSystem/JAudio2/JASTrack/pause__8JASTrackFb.s28
-rw-r--r--asm/JSystem/JAudio2/JASTrack/readPortSelf__8JASTrackFUl.s10
-rw-r--r--asm/JSystem/JAudio2/JASTrack/readPort__8JASTrackFUl.s10
-rw-r--r--asm/JSystem/JAudio2/JASTrack/releaseAll__Q28JASTrack11TChannelMgrFv.s31
-rw-r--r--asm/JSystem/JAudio2/JASTrack/setChannelPauseFlag__8JASTrackFb.s45
-rw-r--r--asm/JSystem/JAudio2/JASTrack/setFIR__8JASTrackFPCs.s18
-rw-r--r--asm/JSystem/JAudio2/JASTrack/setIIR__8JASTrackFPCs.s15
-rw-r--r--asm/JSystem/JAudio2/JASTrack/setLatestKey__8JASTrackFUc.s16
-rw-r--r--asm/JSystem/JAudio2/JASTrack/setOscAdsr__8JASTrackFssssUs.s22
-rw-r--r--asm/JSystem/JAudio2/JASTrack/setOscScale__8JASTrackFUlf.s5
-rw-r--r--asm/JSystem/JAudio2/JASTrack/setOscTable__8JASTrackFUlPCQ213JASOscillator5Point.s9
-rw-r--r--asm/JSystem/JAudio2/JASTrack/setParam__8JASTrackFUlfUl.s12
-rw-r--r--asm/JSystem/JAudio2/JASTrack/setPauseFlag__Q28JASTrack11TChannelMgrFb.s13
-rw-r--r--asm/JSystem/JAudio2/JASTrack/setSeqData__8JASTrackFPvUl.s9
-rw-r--r--asm/JSystem/JAudio2/JASTrack/setTempoRate__8JASTrackFf.s14
-rw-r--r--asm/JSystem/JAudio2/JASTrack/setTempo__8JASTrackFUs.s14
-rw-r--r--asm/JSystem/JAudio2/JASTrack/setTimebase__8JASTrackFUs.s14
-rw-r--r--asm/JSystem/JAudio2/JASTrack/start__8JASTrackFv.s4
-rw-r--r--asm/JSystem/JAudio2/JASTrack/stopSeq__8JASTrackFv.s18
-rw-r--r--asm/JSystem/JAudio2/JASTrack/updateSeq__8JASTrackFbf.s54
-rw-r--r--asm/JSystem/JAudio2/JASTrack/writePortSelf__8JASTrackFUlUs.s10
-rw-r--r--asm/JSystem/JAudio2/JASTrack/writePort__8JASTrackFUlUs.s29
-rw-r--r--include/JSystem/JAudio2/JASBankTable.h3
-rw-r--r--include/JSystem/JAudio2/JASChannel.h30
-rw-r--r--include/JSystem/JAudio2/JASOscillator.h12
-rw-r--r--include/JSystem/JAudio2/JASTrack.h132
-rw-r--r--libs/JSystem/JAudio2/JASBank.cpp5
-rw-r--r--libs/JSystem/JAudio2/JASDrumSet.cpp4
-rw-r--r--libs/JSystem/JAudio2/JASOscillator.cpp26
-rw-r--r--libs/JSystem/JAudio2/JASTrack.cpp1136
48 files changed, 908 insertions, 1334 deletions
diff --git a/Progress.md b/Progress.md
index 206fbfec93..77e2d12a41 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 2136ec6334..0000000000
--- 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 54c23165ba..0000000000
--- 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 a26ca4db42..0000000000
--- 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 b39d0a5281..0000000000
--- 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 bb5c24ba50..0000000000
--- 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 11220d17e9..0000000000
--- 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 9b1edcf6d4..0000000000
--- 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 2d513a7093..0000000000
--- 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 d3fb22e4ca..0000000000
--- 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 45daff3038..0000000000
--- 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 ef88d3fb10..0000000000
--- 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 a0019ec971..0000000000
--- 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 b7856495d3..0000000000
--- 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 fccba2b5a2..0000000000
--- 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 ec5517c490..0000000000
--- 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 2f4aa581e5..0000000000
--- 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 bd0280e32a..0000000000
--- 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 3fe5fedc71..0000000000
--- 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 2e7d7d884c..0000000000
--- 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 6bf013a385..0000000000
--- 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 93982ac72a..0000000000
--- 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 1e07dfd760..0000000000
--- 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 2f40b8ecd3..0000000000
--- 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 630b9bcb6e..0000000000
--- 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 771e41c708..0000000000
--- 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 84a6bdf2e4..0000000000
--- 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 31f8b56d7f..0000000000
--- 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 35b3b27e62..0000000000
--- 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 d1f8deaa10..0000000000
--- 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 d681bf7c7e..0000000000
--- 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 7d7411b2ea..0000000000
--- 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 551490d46f..0000000000
--- 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 14784d82a1..0000000000
--- 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 fdf1091833..0000000000
--- 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 876d2ef199..0000000000
--- 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 b3a45888e9..0000000000
--- 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 ccfe65c357..0000000000
--- 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 79b8f391dd..0000000000
--- 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 154175aeb9..0000000000
--- 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 38c54d9963..bdcaf4ec5d 100644
--- a/include/JSystem/JAudio2/JASBankTable.h
+++ b/include/JSystem/JAudio2/JASBankTable.h
@@ -7,7 +7,7 @@
template<size_t N>
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<JASDefaultBankTable> {
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 57a7b75dbc..a64fb5fc37 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<JASChannel> {
diff --git a/include/JSystem/JAudio2/JASOscillator.h b/include/JSystem/JAudio2/JASOscillator.h
index 808b410474..f9ad8ccfdf 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 7e2106e46a..1b47cc47bf 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<JASTrack> {
enum Status {
STATUS_FREE,
STATUS_RUN,
};
- struct TChannelMgr {
+ struct TChannelMgr : public JASPoolAllocObject_MultiThreaded<TChannelMgr> {
/* 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<JASTrack, -0x240> {
+ 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();
-
- static u8 const sAdsTable[24];
- static u8 const sEnvOsc[24];
- static u8 const sPitchEnvOsc[24];
+ /* 80292D88 */ JASTrack* getRootTrack();
+ /* 80292DA0 */ int tickProc();
+ /* 80292E9C */ int seqMain();
+
+ /* 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<JASDefaultBankTable> {
- /* 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 aa5d3fc8d6..c752cfcf9c 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 984855067d..0320754549 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 14d8ddb47a..5674d0cf1d 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 6c5fab8749..75fe466e42 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 <typename A0>
-struct JASMemPool_MultiThreaded {};
/* JASMemPool_MultiThreaded<JASTrack> */
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 <typename A0>
-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 */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASTrack::channelStart(JASTrack::TChannelMgr* param_0, u32 param_1, u32 param_2,
+#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 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<TChannelMgr*>(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 */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASTrack::tickProc() {
+#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 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 */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASTrack::seqMain() {
+#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 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<JASTrack::TList*>(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