summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorJcw87 <Jcw87@users.noreply.github.com>2023-09-01 01:55:46 -0700
committerGitHub <noreply@github.com>2023-09-01 11:55:46 +0300
commit2d45b68231560eaf0001914c8f2da4bd81f9dd59 (patch)
tree1ea5d930006125c74a8cbf65337c539158eca0ce /libs
parent6c4509ceed79f74c77e3b05c4f6e890063b16a26 (diff)
JASTrackPort, JASSeqCtrl.h, JASSeqParser (#1904)
* JASTrackPort OK * JASSeqCtrl.h * JASSeqParser * progress * Move JSU inlines
Diffstat (limited to 'libs')
-rw-r--r--libs/JSystem/JAudio2/JASCalc.cpp194
-rw-r--r--libs/JSystem/JAudio2/JASSeqCtrl.cpp74
-rw-r--r--libs/JSystem/JAudio2/JASSeqParser.cpp2441
-rw-r--r--libs/JSystem/JAudio2/JASTrack.cpp35
-rw-r--r--libs/JSystem/JAudio2/JASTrackPort.cpp106
5 files changed, 1087 insertions, 1763 deletions
diff --git a/libs/JSystem/JAudio2/JASCalc.cpp b/libs/JSystem/JAudio2/JASCalc.cpp
index e47fb092dc..a1eb118308 100644
--- a/libs/JSystem/JAudio2/JASCalc.cpp
+++ b/libs/JSystem/JAudio2/JASCalc.cpp
@@ -153,71 +153,135 @@ void JASCalc::bzero(void *dest, u32 size) {
/* ############################################################################################## */
/* 8039ABB8-8039AFB8 027218 0400+00 0/0 4/4 0/0 .rodata CUTOFF_TO_IIR_TABLE__7JASCalc */
-SECTION_RODATA u8 const JASCalc::CUTOFF_TO_IIR_TABLE[1024] = {
- 0x0F, 0x5C, 0x0A, 0x3D, 0x46, 0x65, 0x1E, 0x73, 0x0F, 0x5E, 0x0A, 0x3D, 0x46, 0x64, 0x1E, 0x73,
- 0x0F, 0x63, 0x0A, 0x3C, 0x46, 0x61, 0x1E, 0x71, 0x0F, 0x6C, 0x0A, 0x3C, 0x46, 0x5B, 0x1E, 0x6F,
- 0x0F, 0x79, 0x0A, 0x3A, 0x46, 0x53, 0x1E, 0x6B, 0x0F, 0x89, 0x0A, 0x39, 0x46, 0x49, 0x1E, 0x67,
- 0x0F, 0x9C, 0x0A, 0x37, 0x46, 0x3D, 0x1E, 0x62, 0x0F, 0xB4, 0x0A, 0x35, 0x46, 0x2E, 0x1E, 0x5B,
- 0x0F, 0xCE, 0x0A, 0x33, 0x46, 0x1D, 0x1E, 0x54, 0x0F, 0xED, 0x0A, 0x30, 0x46, 0x0A, 0x1E, 0x4C,
- 0x10, 0x0F, 0x0A, 0x2D, 0x45, 0xF5, 0x1E, 0x43, 0x10, 0x34, 0x0A, 0x29, 0x45, 0xDE, 0x1E, 0x39,
- 0x10, 0x5D, 0x0A, 0x26, 0x45, 0xC4, 0x1E, 0x2D, 0x10, 0x8A, 0x0A, 0x22, 0x45, 0xA8, 0x1E, 0x21,
- 0x10, 0xBA, 0x0A, 0x1D, 0x45, 0x8A, 0x1E, 0x14, 0x10, 0xEE, 0x0A, 0x18, 0x45, 0x6A, 0x1E, 0x06,
- 0x11, 0x26, 0x0A, 0x13, 0x45, 0x47, 0x1D, 0xF7, 0x11, 0x61, 0x0A, 0x0E, 0x45, 0x22, 0x1D, 0xE7,
- 0x11, 0x9F, 0x0A, 0x08, 0x44, 0xFB, 0x1D, 0xD6, 0x11, 0xE1, 0x0A, 0x02, 0x44, 0xD2, 0x1D, 0xC5,
- 0x12, 0x27, 0x09, 0xFC, 0x44, 0xA6, 0x1D, 0xB2, 0x12, 0x70, 0x09, 0xF5, 0x44, 0x78, 0x1D, 0x9E,
- 0x12, 0xBD, 0x09, 0xEE, 0x44, 0x48, 0x1D, 0x89, 0x13, 0x0E, 0x09, 0xE7, 0x44, 0x16, 0x1D, 0x73,
- 0x13, 0x62, 0x09, 0xDF, 0x43, 0xE1, 0x1D, 0x5D, 0x13, 0xB9, 0x09, 0xD7, 0x43, 0xAB, 0x1D, 0x45,
- 0x14, 0x15, 0x09, 0xCF, 0x43, 0x72, 0x1D, 0x2C, 0x14, 0x73, 0x09, 0xC7, 0x43, 0x36, 0x1D, 0x13,
- 0x14, 0xD6, 0x09, 0xBE, 0x42, 0xF9, 0x1C, 0xF8, 0x15, 0x3C, 0x09, 0xB4, 0x42, 0xB9, 0x1C, 0xDD,
- 0x15, 0xA5, 0x09, 0xAB, 0x42, 0x77, 0x1C, 0xC0, 0x16, 0x12, 0x09, 0xA1, 0x42, 0x33, 0x1C, 0xA3,
- 0x16, 0x83, 0x09, 0x97, 0x41, 0xED, 0x1C, 0x84, 0x16, 0xF7, 0x09, 0x8C, 0x41, 0xA4, 0x1C, 0x65,
- 0x17, 0x6F, 0x09, 0x81, 0x41, 0x59, 0x1C, 0x44, 0x17, 0xEA, 0x09, 0x76, 0x41, 0x0C, 0x1C, 0x23,
- 0x18, 0x69, 0x09, 0x6A, 0x40, 0xBD, 0x1C, 0x01, 0x18, 0xEB, 0x09, 0x5F, 0x40, 0x6B, 0x1B, 0xDD,
- 0x19, 0x72, 0x09, 0x52, 0x40, 0x18, 0x1B, 0xB9, 0x19, 0xFB, 0x09, 0x46, 0x3F, 0xC2, 0x1B, 0x94,
- 0x1A, 0x88, 0x09, 0x39, 0x3F, 0x69, 0x1B, 0x6E, 0x1B, 0x19, 0x09, 0x2C, 0x3F, 0x0F, 0x1B, 0x47,
- 0x1B, 0xAE, 0x09, 0x1E, 0x3E, 0xB2, 0x1B, 0x1E, 0x1C, 0x46, 0x09, 0x11, 0x3E, 0x53, 0x1A, 0xF5,
- 0x1C, 0xE1, 0x09, 0x02, 0x3D, 0xF2, 0x1A, 0xCB, 0x1D, 0x80, 0x08, 0xF4, 0x3D, 0x8E, 0x1A, 0xA0,
- 0x1E, 0x23, 0x08, 0xE5, 0x3D, 0x29, 0x1A, 0x74, 0x1E, 0xC9, 0x08, 0xD6, 0x3C, 0xC1, 0x1A, 0x47,
- 0x1F, 0x73, 0x08, 0xC7, 0x3C, 0x57, 0x1A, 0x19, 0x20, 0x20, 0x08, 0xB7, 0x3B, 0xEA, 0x19, 0xEB,
- 0x20, 0xD1, 0x08, 0xA7, 0x3B, 0x7C, 0x19, 0xBB, 0x21, 0x86, 0x08, 0x96, 0x3B, 0x0B, 0x19, 0x8A,
- 0x22, 0x3E, 0x08, 0x86, 0x3A, 0x98, 0x19, 0x58, 0x22, 0xFA, 0x08, 0x75, 0x3A, 0x22, 0x19, 0x25,
- 0x23, 0xB9, 0x08, 0x63, 0x39, 0xAB, 0x18, 0xF2, 0x24, 0x7C, 0x08, 0x51, 0x39, 0x31, 0x18, 0xBD,
- 0x25, 0x42, 0x08, 0x3F, 0x38, 0xB5, 0x18, 0x87, 0x26, 0x0C, 0x08, 0x2D, 0x38, 0x37, 0x18, 0x51,
- 0x26, 0xDA, 0x08, 0x1A, 0x37, 0xB6, 0x18, 0x19, 0x27, 0xAB, 0x08, 0x07, 0x37, 0x34, 0x17, 0xE1,
- 0x28, 0x80, 0x07, 0xF4, 0x36, 0xAF, 0x17, 0xA7, 0x29, 0x58, 0x07, 0xE0, 0x36, 0x28, 0x17, 0x6D,
- 0x2A, 0x34, 0x07, 0xCC, 0x35, 0x9E, 0x17, 0x31, 0x2B, 0x14, 0x07, 0xB8, 0x35, 0x12, 0x16, 0xF5,
- 0x2B, 0xF7, 0x07, 0xA3, 0x34, 0x85, 0x16, 0xB7, 0x2C, 0xDD, 0x07, 0x8E, 0x33, 0xF4, 0x16, 0x79,
- 0x2D, 0xC8, 0x07, 0x79, 0x33, 0x62, 0x16, 0x3A, 0x2E, 0xB5, 0x07, 0x64, 0x32, 0xCD, 0x15, 0xFA,
- 0x2F, 0xA7, 0x07, 0x4E, 0x32, 0x37, 0x15, 0xB8, 0x30, 0x9C, 0x07, 0x37, 0x31, 0x9E, 0x15, 0x76,
- 0x31, 0x94, 0x07, 0x21, 0x31, 0x02, 0x15, 0x33, 0x32, 0x90, 0x07, 0x0A, 0x30, 0x65, 0x14, 0xEF,
- 0x33, 0x90, 0x06, 0xF3, 0x2F, 0xC5, 0x14, 0xAA, 0x34, 0x93, 0x06, 0xDB, 0x2F, 0x23, 0x14, 0x64,
- 0x35, 0x9A, 0x06, 0xC3, 0x2E, 0x7F, 0x14, 0x1C, 0x36, 0xA4, 0x06, 0xAB, 0x2D, 0xD8, 0x13, 0xD4,
- 0x37, 0xB2, 0x06, 0x92, 0x2D, 0x2F, 0x13, 0x8C, 0x38, 0xC4, 0x06, 0x7A, 0x2C, 0x85, 0x13, 0x42,
- 0x39, 0xD9, 0x06, 0x60, 0x2B, 0xD7, 0x12, 0xF7, 0x3A, 0xF1, 0x06, 0x47, 0x2B, 0x28, 0x12, 0xAB,
- 0x3C, 0x0E, 0x06, 0x2D, 0x2A, 0x76, 0x12, 0x5E, 0x3D, 0x2E, 0x06, 0x13, 0x29, 0xC2, 0x12, 0x10,
- 0x3E, 0x51, 0x05, 0xF8, 0x29, 0x0C, 0x11, 0xC1, 0x3F, 0x78, 0x05, 0xDE, 0x28, 0x54, 0x11, 0x72,
- 0x40, 0xA3, 0x05, 0xC2, 0x27, 0x99, 0x11, 0x21, 0x41, 0xD1, 0x05, 0xA7, 0x26, 0xDC, 0x10, 0xCF,
- 0x43, 0x02, 0x05, 0x8B, 0x26, 0x1D, 0x10, 0x7D, 0x44, 0x38, 0x05, 0x6F, 0x25, 0x5C, 0x10, 0x29,
- 0x45, 0x71, 0x05, 0x53, 0x24, 0x99, 0x0F, 0xD4, 0x46, 0xAD, 0x05, 0x36, 0x23, 0xD3, 0x0F, 0x7F,
- 0x47, 0xED, 0x05, 0x19, 0x23, 0x0B, 0x0F, 0x28, 0x49, 0x31, 0x04, 0xFB, 0x22, 0x41, 0x0E, 0xD1,
- 0x4A, 0x78, 0x04, 0xDE, 0x21, 0x74, 0x0E, 0x78, 0x4B, 0xC2, 0x04, 0xC0, 0x20, 0xA5, 0x0E, 0x1F,
- 0x4D, 0x11, 0x04, 0xA1, 0x1F, 0xD4, 0x0D, 0xC5, 0x4E, 0x63, 0x04, 0x82, 0x1F, 0x01, 0x0D, 0x69,
- 0x4F, 0xB8, 0x04, 0x63, 0x1E, 0x2C, 0x0D, 0x0D, 0x51, 0x11, 0x04, 0x44, 0x1D, 0x54, 0x0C, 0xB0,
- 0x52, 0x6E, 0x04, 0x24, 0x1C, 0x7A, 0x0C, 0x51, 0x53, 0xCE, 0x04, 0x04, 0x1B, 0x9E, 0x0B, 0xF2,
- 0x55, 0x32, 0x03, 0xE4, 0x1A, 0xC0, 0x0B, 0x92, 0x56, 0x99, 0x03, 0xC3, 0x19, 0xDF, 0x0B, 0x31,
- 0x58, 0x04, 0x03, 0xA2, 0x18, 0xFD, 0x0A, 0xCF, 0x59, 0x72, 0x03, 0x81, 0x18, 0x18, 0x0A, 0x6C,
- 0x5A, 0xE5, 0x03, 0x5F, 0x17, 0x30, 0x0A, 0x08, 0x5C, 0x5A, 0x03, 0x3D, 0x16, 0x47, 0x09, 0xA3,
- 0x5D, 0xD3, 0x03, 0x1B, 0x15, 0x5B, 0x09, 0x3D, 0x5F, 0x50, 0x02, 0xF9, 0x14, 0x6D, 0x08, 0xD6,
- 0x60, 0xD1, 0x02, 0xD6, 0x13, 0x7D, 0x08, 0x6E, 0x62, 0x55, 0x02, 0xB2, 0x12, 0x8A, 0x08, 0x05,
- 0x63, 0xDC, 0x02, 0x8F, 0x11, 0x96, 0x07, 0x9B, 0x65, 0x67, 0x02, 0x6B, 0x10, 0x9F, 0x07, 0x30,
- 0x66, 0xF6, 0x02, 0x47, 0x0F, 0xA6, 0x06, 0xC5, 0x68, 0x88, 0x02, 0x22, 0x0E, 0xAA, 0x06, 0x58,
- 0x6A, 0x1E, 0x01, 0xFD, 0x0D, 0xAD, 0x05, 0xEA, 0x6B, 0xB7, 0x01, 0xD8, 0x0C, 0xAD, 0x05, 0x7B,
- 0x6D, 0x54, 0x01, 0xB2, 0x0B, 0xAB, 0x05, 0x0C, 0x6E, 0xF5, 0x01, 0x8D, 0x0A, 0xA6, 0x04, 0x9B,
- 0x70, 0x99, 0x01, 0x66, 0x09, 0xA0, 0x04, 0x2A, 0x72, 0x41, 0x01, 0x40, 0x08, 0x97, 0x03, 0xB7,
- 0x73, 0xEC, 0x01, 0x19, 0x07, 0x8C, 0x03, 0x44, 0x75, 0x9B, 0x00, 0xF2, 0x06, 0x7F, 0x02, 0xCF,
- 0x77, 0x4D, 0x00, 0xCA, 0x05, 0x6F, 0x02, 0x5A, 0x79, 0x03, 0x00, 0xA3, 0x04, 0x5D, 0x01, 0xE3,
- 0x7A, 0xBD, 0x00, 0x7A, 0x03, 0x49, 0x01, 0x6C, 0x7C, 0x7A, 0x00, 0x52, 0x02, 0x33, 0x00, 0xF4,
- 0x7E, 0x3B, 0x00, 0x29, 0x01, 0x1B, 0x00, 0x7A, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_RODATA s16 const JASCalc::CUTOFF_TO_IIR_TABLE[128][4] = {
+ 0x0F5C, 0x0A3D, 0x4665, 0x1E73,
+ 0x0F5E, 0x0A3D, 0x4664, 0x1E73,
+ 0x0F63, 0x0A3C, 0x4661, 0x1E71,
+ 0x0F6C, 0x0A3C, 0x465B, 0x1E6F,
+ 0x0F79, 0x0A3A, 0x4653, 0x1E6B,
+ 0x0F89, 0x0A39, 0x4649, 0x1E67,
+ 0x0F9C, 0x0A37, 0x463D, 0x1E62,
+ 0x0FB4, 0x0A35, 0x462E, 0x1E5B,
+ 0x0FCE, 0x0A33, 0x461D, 0x1E54,
+ 0x0FED, 0x0A30, 0x460A, 0x1E4C,
+ 0x100F, 0x0A2D, 0x45F5, 0x1E43,
+ 0x1034, 0x0A29, 0x45DE, 0x1E39,
+ 0x105D, 0x0A26, 0x45C4, 0x1E2D,
+ 0x108A, 0x0A22, 0x45A8, 0x1E21,
+ 0x10BA, 0x0A1D, 0x458A, 0x1E14,
+ 0x10EE, 0x0A18, 0x456A, 0x1E06,
+ 0x1126, 0x0A13, 0x4547, 0x1DF7,
+ 0x1161, 0x0A0E, 0x4522, 0x1DE7,
+ 0x119F, 0x0A08, 0x44FB, 0x1DD6,
+ 0x11E1, 0x0A02, 0x44D2, 0x1DC5,
+ 0x1227, 0x09FC, 0x44A6, 0x1DB2,
+ 0x1270, 0x09F5, 0x4478, 0x1D9E,
+ 0x12BD, 0x09EE, 0x4448, 0x1D89,
+ 0x130E, 0x09E7, 0x4416, 0x1D73,
+ 0x1362, 0x09DF, 0x43E1, 0x1D5D,
+ 0x13B9, 0x09D7, 0x43AB, 0x1D45,
+ 0x1415, 0x09CF, 0x4372, 0x1D2C,
+ 0x1473, 0x09C7, 0x4336, 0x1D13,
+ 0x14D6, 0x09BE, 0x42F9, 0x1CF8,
+ 0x153C, 0x09B4, 0x42B9, 0x1CDD,
+ 0x15A5, 0x09AB, 0x4277, 0x1CC0,
+ 0x1612, 0x09A1, 0x4233, 0x1CA3,
+ 0x1683, 0x0997, 0x41ED, 0x1C84,
+ 0x16F7, 0x098C, 0x41A4, 0x1C65,
+ 0x176F, 0x0981, 0x4159, 0x1C44,
+ 0x17EA, 0x0976, 0x410C, 0x1C23,
+ 0x1869, 0x096A, 0x40BD, 0x1C01,
+ 0x18EB, 0x095F, 0x406B, 0x1BDD,
+ 0x1972, 0x0952, 0x4018, 0x1BB9,
+ 0x19FB, 0x0946, 0x3FC2, 0x1B94,
+ 0x1A88, 0x0939, 0x3F69, 0x1B6E,
+ 0x1B19, 0x092C, 0x3F0F, 0x1B47,
+ 0x1BAE, 0x091E, 0x3EB2, 0x1B1E,
+ 0x1C46, 0x0911, 0x3E53, 0x1AF5,
+ 0x1CE1, 0x0902, 0x3DF2, 0x1ACB,
+ 0x1D80, 0x08F4, 0x3D8E, 0x1AA0,
+ 0x1E23, 0x08E5, 0x3D29, 0x1A74,
+ 0x1EC9, 0x08D6, 0x3CC1, 0x1A47,
+ 0x1F73, 0x08C7, 0x3C57, 0x1A19,
+ 0x2020, 0x08B7, 0x3BEA, 0x19EB,
+ 0x20D1, 0x08A7, 0x3B7C, 0x19BB,
+ 0x2186, 0x0896, 0x3B0B, 0x198A,
+ 0x223E, 0x0886, 0x3A98, 0x1958,
+ 0x22FA, 0x0875, 0x3A22, 0x1925,
+ 0x23B9, 0x0863, 0x39AB, 0x18F2,
+ 0x247C, 0x0851, 0x3931, 0x18BD,
+ 0x2542, 0x083F, 0x38B5, 0x1887,
+ 0x260C, 0x082D, 0x3837, 0x1851,
+ 0x26DA, 0x081A, 0x37B6, 0x1819,
+ 0x27AB, 0x0807, 0x3734, 0x17E1,
+ 0x2880, 0x07F4, 0x36AF, 0x17A7,
+ 0x2958, 0x07E0, 0x3628, 0x176D,
+ 0x2A34, 0x07CC, 0x359E, 0x1731,
+ 0x2B14, 0x07B8, 0x3512, 0x16F5,
+ 0x2BF7, 0x07A3, 0x3485, 0x16B7,
+ 0x2CDD, 0x078E, 0x33F4, 0x1679,
+ 0x2DC8, 0x0779, 0x3362, 0x163A,
+ 0x2EB5, 0x0764, 0x32CD, 0x15FA,
+ 0x2FA7, 0x074E, 0x3237, 0x15B8,
+ 0x309C, 0x0737, 0x319E, 0x1576,
+ 0x3194, 0x0721, 0x3102, 0x1533,
+ 0x3290, 0x070A, 0x3065, 0x14EF,
+ 0x3390, 0x06F3, 0x2FC5, 0x14AA,
+ 0x3493, 0x06DB, 0x2F23, 0x1464,
+ 0x359A, 0x06C3, 0x2E7F, 0x141C,
+ 0x36A4, 0x06AB, 0x2DD8, 0x13D4,
+ 0x37B2, 0x0692, 0x2D2F, 0x138C,
+ 0x38C4, 0x067A, 0x2C85, 0x1342,
+ 0x39D9, 0x0660, 0x2BD7, 0x12F7,
+ 0x3AF1, 0x0647, 0x2B28, 0x12AB,
+ 0x3C0E, 0x062D, 0x2A76, 0x125E,
+ 0x3D2E, 0x0613, 0x29C2, 0x1210,
+ 0x3E51, 0x05F8, 0x290C, 0x11C1,
+ 0x3F78, 0x05DE, 0x2854, 0x1172,
+ 0x40A3, 0x05C2, 0x2799, 0x1121,
+ 0x41D1, 0x05A7, 0x26DC, 0x10CF,
+ 0x4302, 0x058B, 0x261D, 0x107D,
+ 0x4438, 0x056F, 0x255C, 0x1029,
+ 0x4571, 0x0553, 0x2499, 0x0FD4,
+ 0x46AD, 0x0536, 0x23D3, 0x0F7F,
+ 0x47ED, 0x0519, 0x230B, 0x0F28,
+ 0x4931, 0x04FB, 0x2241, 0x0ED1,
+ 0x4A78, 0x04DE, 0x2174, 0x0E78,
+ 0x4BC2, 0x04C0, 0x20A5, 0x0E1F,
+ 0x4D11, 0x04A1, 0x1FD4, 0x0DC5,
+ 0x4E63, 0x0482, 0x1F01, 0x0D69,
+ 0x4FB8, 0x0463, 0x1E2C, 0x0D0D,
+ 0x5111, 0x0444, 0x1D54, 0x0CB0,
+ 0x526E, 0x0424, 0x1C7A, 0x0C51,
+ 0x53CE, 0x0404, 0x1B9E, 0x0BF2,
+ 0x5532, 0x03E4, 0x1AC0, 0x0B92,
+ 0x5699, 0x03C3, 0x19DF, 0x0B31,
+ 0x5804, 0x03A2, 0x18FD, 0x0ACF,
+ 0x5972, 0x0381, 0x1818, 0x0A6C,
+ 0x5AE5, 0x035F, 0x1730, 0x0A08,
+ 0x5C5A, 0x033D, 0x1647, 0x09A3,
+ 0x5DD3, 0x031B, 0x155B, 0x093D,
+ 0x5F50, 0x02F9, 0x146D, 0x08D6,
+ 0x60D1, 0x02D6, 0x137D, 0x086E,
+ 0x6255, 0x02B2, 0x128A, 0x0805,
+ 0x63DC, 0x028F, 0x1196, 0x079B,
+ 0x6567, 0x026B, 0x109F, 0x0730,
+ 0x66F6, 0x0247, 0x0FA6, 0x06C5,
+ 0x6888, 0x0222, 0x0EAA, 0x0658,
+ 0x6A1E, 0x01FD, 0x0DAD, 0x05EA,
+ 0x6BB7, 0x01D8, 0x0CAD, 0x057B,
+ 0x6D54, 0x01B2, 0x0BAB, 0x050C,
+ 0x6EF5, 0x018D, 0x0AA6, 0x049B,
+ 0x7099, 0x0166, 0x09A0, 0x042A,
+ 0x7241, 0x0140, 0x0897, 0x03B7,
+ 0x73EC, 0x0119, 0x078C, 0x0344,
+ 0x759B, 0x00F2, 0x067F, 0x02CF,
+ 0x774D, 0x00CA, 0x056F, 0x025A,
+ 0x7903, 0x00A3, 0x045D, 0x01E3,
+ 0x7ABD, 0x007A, 0x0349, 0x016C,
+ 0x7C7A, 0x0052, 0x0233, 0x00F4,
+ 0x7E3B, 0x0029, 0x011B, 0x007A,
+ 0x7FFF, 0x0000, 0x0000, 0x0000,
};
COMPILER_STRIP_GATE(0x8039ABB8, &JASCalc::CUTOFF_TO_IIR_TABLE);
diff --git a/libs/JSystem/JAudio2/JASSeqCtrl.cpp b/libs/JSystem/JAudio2/JASSeqCtrl.cpp
index 76ce2bab09..3bfbf12d2c 100644
--- a/libs/JSystem/JAudio2/JASSeqCtrl.cpp
+++ b/libs/JSystem/JAudio2/JASSeqCtrl.cpp
@@ -4,81 +4,9 @@
//
#include "JSystem/JAudio2/JASSeqCtrl.h"
-#include "JSystem/JAudio2/JASSeqReader.h"
+#include "JSystem/JAudio2/JASSeqParser.h"
#include "JSystem/JAudio2/JASTrack.h"
-//
-// Types:
-//
-
-// TODO: Use JASSeqParser.hh when possible
-struct JASSeqParser {
- /* 80293CAC */ inline virtual ~JASSeqParser() {}
- /* 802958D4 */ virtual int parse(JASTrack*);
- /* 80295540 */ virtual void execNoteOnMidi(JASTrack*, u32, u32, u32);
- /* 80295498 */ virtual void execNoteOnGate(JASTrack*, u32, u32, u32, u32);
- /* 80295570 */ virtual void execNoteOff(JASTrack*, u32);
- /* 8029559C */ virtual void execCommand(JASTrack*, s32 (JASSeqParser::*)(JASTrack*, u32*), u32, u32*);
-
- static u8 sCmdInfo[1536];
- static u8 sExtCmdInfo[4080];
- static u8 sCallBackFunc[4];
-};
-
-struct JASSeqCtrl {
- enum IntrType {
- INTRTYPE_VALUE_0,
- INTRTYPE_VALUE_1,
- INTRTYPE_VALUE_2,
- INTRTYPE_VALUE_3,
- INTRTYPE_VALUE_4,
- INTRTYPE_VALUE_5,
- INTRTYPE_VALUE_6,
- };
-
- /* 802938BC */ JASSeqCtrl();
- /* 80293924 */ void init();
- /* 80293980 */ void start(void*, u32);
- /* 802939C4 */ int tickProc(JASTrack*);
- /* 80293ABC */ void interrupt(JASSeqCtrl::IntrType);
- /* 80293AE0 */ void setIntrMask(u32);
- /* 80293AF0 */ void clrIntrMask(u32);
- /* 80293B00 */ int retIntr();
- /* 80293B28 */ int findIntr();
- /* 80293B78 */ void checkIntr();
- /* 80293BE8 */ void timerProcess();
-
- u32 get24(int param_0) {
- return mReader.get24(param_0);
- }
-
- /* 0x00 */ JASSeqReader mReader;
- /* 0x3c */ JASSeqParser* field_0x3c;
- /* 0x40 */ s32 field_0x40;
- /* 0x44 */ void* field_0x44;
- /* 0x48 */ u32 field_0x48;
- /* 0x4c */ u16 field_0x4c;
- /* 0x4e */ u16 field_0x4e;
- /* 0x50 */ u8 field_0x50;
- /* 0x51 */ u8 field_0x51;
- /* 0x52 */ u16 field_0x52;
- /* 0x54 */ u32 field_0x54;
- /* 0x58 */ u32 field_0x58;
- static JASSeqParser sDefaultParser;
-};
-
-//
-// Forward References:
-//
-
-//
-// External References:
-//
-
-//
-// Declarations:
-//
-
/* ############################################################################################## */
/* 80451238-80451240 000738 0004+04 3/3 0/0 0/0 .sbss sDefaultParser__10JASSeqCtrl */
JASSeqParser JASSeqCtrl::sDefaultParser;
diff --git a/libs/JSystem/JAudio2/JASSeqParser.cpp b/libs/JSystem/JAudio2/JASSeqParser.cpp
index 79d0fb03cf..52b113fcf2 100644
--- a/libs/JSystem/JAudio2/JASSeqParser.cpp
+++ b/libs/JSystem/JAudio2/JASSeqParser.cpp
@@ -4,150 +4,16 @@
//
#include "JSystem/JAudio2/JASSeqParser.h"
+#include "JSystem/JAudio2/JASCalc.h"
+#include "JSystem/JAudio2/JASReport.h"
+#include "JSystem/JAudio2/JASSeqCtrl.h"
+#include "JSystem/JAudio2/JASTrack.h"
+#include "JSystem/JAudio2/JASTrackPort.h"
+#include "JSystem/JMath/random.h"
+#include "JSystem/JSupport/JSupport.h"
#include "dol2asm.h"
//
-// Types:
-//
-
-struct JASTrackPort {
- /* 8029360C */ void checkImport(u32) const;
- /* 80293628 */ void checkExport(u32) const;
-};
-
-struct JASOscillator {
- struct Point {};
-};
-
-struct JASTrack {
- /* 80291A08 */ void setSeqData(void*, u32);
- /* 80291ABC */ void start();
- /* 80291BB8 */ void closeChild(u32);
- /* 80291C30 */ void openChild(u32);
- /* 80291DAC */ void connectBus(int, int);
- /* 80291DBC */ void setLatestKey(u8);
- /* 80291F38 */ void noteOn(u32, u32, u32);
- /* 80292008 */ void gateOn(u32, u32, f32, u32);
- /* 80292198 */ void noteOff(u32, u16);
- /* 802926E0 */ void setParam(u32, f32, u32);
- /* 802927D8 */ void setOscScale(u32, f32);
- /* 802927E8 */ void setOscTable(u32, JASOscillator::Point const*);
- /* 80292808 */ void setOscAdsr(s16, s16, s16, s16, u16);
- /* 8029285C */ void setFIR(s16 const*);
- /* 8029289C */ void setIIR(s16 const*);
- /* 802928D0 */ void readPortSelf(u32);
- /* 802928F4 */ void writePortSelf(u32, u16);
- /* 80292918 */ void writePort(u32, u16);
- /* 8029297C */ void readPort(u32);
- /* 80292B58 */ void setTempo(u16);
- /* 80292BC0 */ void setTimebase(u16);
-};
-
-struct JASSeqReader {
- /* 8029618C */ void call(u32);
- /* 802961CC */ void loopStart(u32);
- /* 80296210 */ void loopEnd();
- /* 8029627C */ void ret();
- /* 802962B0 */ void readMidiValue();
-};
-
-struct JASSeqParser {
- struct BranchCondition {};
-
- /* 80293CAC */ ~JASSeqParser();
- /* 80293CF4 */ void conditionCheck(JASTrack*, JASSeqParser::BranchCondition);
- /* 80293DC4 */ void writeReg(JASTrack*, u32, u32);
- /* 80293FC8 */ void readReg(JASTrack*, u32) const;
- /* 80294188 */ void cmdOpenTrack(JASTrack*, u32*);
- /* 802941F0 */ void cmdCloseTrack(JASTrack*, u32*);
- /* 8029421C */ void cmdCall(JASTrack*, u32*);
- /* 80294248 */ void cmdCallF(JASTrack*, u32*);
- /* 8029429C */ void cmdRet(JASTrack*, u32*);
- /* 802942D4 */ void cmdRetF(JASTrack*, u32*);
- /* 80294328 */ void cmdJmp(JASTrack*, u32*);
- /* 80294340 */ void cmdJmpF(JASTrack*, u32*);
- /* 80294398 */ void cmdJmpTable(JASTrack*, u32*);
- /* 802943CC */ void cmdCallTable(JASTrack*, u32*);
- /* 8029441C */ void cmdLoopS(JASTrack*, u32*);
- /* 80294448 */ void cmdLoopE(JASTrack*, u32*);
- /* 80294470 */ void cmdNote(JASTrack*, u32*);
- /* 802944B4 */ void cmdNoteOn(JASTrack*, u32*);
- /* 802944F4 */ void cmdNoteOff(JASTrack*, u32*);
- /* 80294528 */ void cmdReadPort(JASTrack*, u32*);
- /* 80294588 */ void cmdWritePort(JASTrack*, u32*);
- /* 802945BC */ void cmdParentWritePort(JASTrack*, u32*);
- /* 802945F8 */ void cmdChildWritePort(JASTrack*, u32*);
- /* 80294644 */ void cmdParentReadPort(JASTrack*, u32*);
- /* 802946AC */ void cmdChildReadPort(JASTrack*, u32*);
- /* 80294724 */ void cmdCheckPortImport(JASTrack*, u32*);
- /* 80294770 */ void cmdCheckPortExport(JASTrack*, u32*);
- /* 802947BC */ void cmdWait(JASTrack*, u32*);
- /* 802947F4 */ void cmdWaitByte(JASTrack*, u32*);
- /* 80294804 */ void cmdSetLastNote(JASTrack*, u32*);
- /* 8029483C */ void cmdEnvScaleSet(JASTrack*, u32*);
- /* 8029488C */ void cmdEnvSet(JASTrack*, u32*);
- /* 802948C8 */ void cmdSimpleADSR(JASTrack*, u32*);
- /* 8029491C */ void cmdBusConnect(JASTrack*, u32*);
- /* 8029494C */ void cmdSetIntTable(JASTrack*, u32*);
- /* 8029495C */ void cmdSetInterrupt(JASTrack*, u32*);
- /* 80294988 */ void cmdDisInterrupt(JASTrack*, u32*);
- /* 802949B4 */ void cmdClrI(JASTrack*, u32*);
- /* 802949E4 */ void cmdRetI(JASTrack*, u32*);
- /* 80294A20 */ void cmdIntTimer(JASTrack*, u32*);
- /* 80294A3C */ void cmdSyncCPU(JASTrack*, u32*);
- /* 80294AA4 */ void cmdTempo(JASTrack*, u32*);
- /* 80294AD4 */ s32 cmdFinish(JASTrack*, u32*);
- /* 80294ADC */ bool cmdNop(JASTrack*, u32*);
- /* 80294AE4 */ void cmdFIRSet(JASTrack*, u32*);
- /* 80294B1C */ void cmdIIRSet(JASTrack*, u32*);
- /* 80294B70 */ void cmdIIRCutOff(JASTrack*, u32*);
- /* 80294BB4 */ void cmdBankPrg(JASTrack*, u32*);
- /* 80294BD0 */ void cmdBank(JASTrack*, u32*);
- /* 80294BE4 */ void cmdPrg(JASTrack*, u32*);
- /* 80294BF8 */ void cmdParamI(JASTrack*, u32*);
- /* 80294C54 */ void cmdParamII(JASTrack*, u32*);
- /* 80294CB0 */ void cmdParamE(JASTrack*, u32*);
- /* 80294D2C */ void cmdParamEI(JASTrack*, u32*);
- /* 80294DA8 */ void cmdReg(JASTrack*, u32*);
- /* 80294F10 */ void cmdRegLoad(JASTrack*, u32*);
- /* 80294F40 */ void cmdRegUni(JASTrack*, u32*);
- /* 80294FB4 */ void cmdRegTblLoad(JASTrack*, u32*);
- /* 80295088 */ void cmdDump(JASTrack*, u32*);
- /* 8029526C */ void cmdPrintf(JASTrack*, u32*);
- /* 80295498 */ void execNoteOnGate(JASTrack*, u32, u32, u32, u32);
- /* 80295540 */ void execNoteOnMidi(JASTrack*, u32, u32, u32);
- /* 80295570 */ void execNoteOff(JASTrack*, u32);
- /* 8029559C */ void execCommand(JASTrack*, s32 (JASSeqParser::*)(JASTrack*, u32*), u32, u32*);
- /* 802955C8 */ void parseNoteOff(JASTrack*, u8);
- /* 80295600 */ void parseNoteOn(JASTrack*, u8);
- /* 802956B0 */ void parseCommand(JASTrack*, u8, u16);
- /* 80295864 */ void parseRegCommand(JASTrack*, int);
- /* 802958D4 */ void parse(JASTrack*);
-
- static u8 sCmdInfo[1536];
- static u8 sExtCmdInfo[4080];
- static u8 sCallBackFunc[4];
-};
-
-struct JASSeqCtrl {
- /* 80293AE0 */ void setIntrMask(u32);
- /* 80293AF0 */ void clrIntrMask(u32);
- /* 80293B00 */ void retIntr();
- /* 80293B78 */ void checkIntr();
-};
-
-struct JASRegisterParam {
- struct RegID {};
-
- /* 80293684 */ void write(JASRegisterParam::RegID, u32);
- /* 802937B8 */ void read(JASRegisterParam::RegID);
-};
-
-struct JASCalc {
- static u8 const CUTOFF_TO_IIR_TABLE[1024];
-};
-
-//
// Forward References:
//
@@ -287,940 +153,147 @@ extern "C" extern u8 const __ptmf_null[12 + 4 /* padding */];
/* 80293CF4-80293DC4 28E634 00D0+00 3/3 0/0 0/0 .text
* conditionCheck__12JASSeqParserFP8JASTrackQ212JASSeqParser15BranchCondition */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::conditionCheck(JASTrack* param_0, JASSeqParser::BranchCondition param_1) {
+// regswap
+#ifdef NONMATCHING
+bool JASSeqParser::conditionCheck(JASTrack* param_0, JASSeqParser::BranchCondition param_1) {
+ u16 reg = readReg(param_0, 3);
+ switch (param_1) {
+ case 0:
+ return 1;
+ case 1:
+ return reg == 0;
+ case 2:
+ return reg != 0;
+ case 3:
+ return reg == 1;
+ case 4:
+ return reg <= 0x8000;
+ case 5:
+ return reg > 0x8000;
+ default:
+ return 0;
+ }
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm bool JASSeqParser::conditionCheck(JASTrack* param_0, JASSeqParser::BranchCondition param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JASSeqParser/conditionCheck__12JASSeqParserFP8JASTrackQ212JASSeqParser15BranchCondition.s"
}
#pragma pop
-
-/* ############################################################################################## */
-/* 803C5BE0-803C5BEC -00001 000C+00 1/1 0/0 0/0 .data @486 */
-SECTION_DATA static void* lit_486[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdNoteOn__12JASSeqParserFP8JASTrackPUl,
-};
-
-/* 803C5BEC-803C5BF8 -00001 000C+00 0/1 0/0 0/0 .data @487 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_487[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdNoteOff__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5BF8-803C5C04 -00001 000C+00 0/1 0/0 0/0 .data @488 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_488[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdNote__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5C04-803C5C10 -00001 000C+00 0/1 0/0 0/0 .data @489 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_489[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdSetLastNote__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5C10-803C5C1C -00001 000C+00 0/1 0/0 0/0 .data @490 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_490[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdParamE__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5C1C-803C5C28 -00001 000C+00 0/1 0/0 0/0 .data @491 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_491[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdParamI__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5C28-803C5C34 -00001 000C+00 0/1 0/0 0/0 .data @492 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_492[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdParamEI__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5C34-803C5C40 -00001 000C+00 0/1 0/0 0/0 .data @493 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_493[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdParamII__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5C40-803C5C4C -00001 000C+00 0/1 0/0 0/0 .data @494 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_494[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdOpenTrack__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5C4C-803C5C58 -00001 000C+00 0/1 0/0 0/0 .data @495 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_495[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdCloseTrack__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5C58-803C5C64 -00001 000C+00 0/1 0/0 0/0 .data @496 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_496[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdCall__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5C64-803C5C70 -00001 000C+00 0/1 0/0 0/0 .data @497 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_497[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdCallF__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5C70-803C5C7C -00001 000C+00 0/1 0/0 0/0 .data @498 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_498[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdRet__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5C7C-803C5C88 -00001 000C+00 0/1 0/0 0/0 .data @499 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_499[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdRetF__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5C88-803C5C94 -00001 000C+00 0/1 0/0 0/0 .data @500 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_500[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdJmp__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5C94-803C5CA0 -00001 000C+00 0/1 0/0 0/0 .data @501 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_501[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdJmpF__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5CA0-803C5CAC -00001 000C+00 0/1 0/0 0/0 .data @502 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_502[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdJmpTable__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5CAC-803C5CB8 -00001 000C+00 0/1 0/0 0/0 .data @503 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_503[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdCallTable__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5CB8-803C5CC4 -00001 000C+00 0/1 0/0 0/0 .data @504 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_504[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdLoopS__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5CC4-803C5CD0 -00001 000C+00 0/1 0/0 0/0 .data @505 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_505[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdLoopE__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5CD0-803C5CDC -00001 000C+00 0/1 0/0 0/0 .data @506 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_506[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdReadPort__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5CDC-803C5CE8 -00001 000C+00 0/1 0/0 0/0 .data @507 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_507[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdWritePort__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5CE8-803C5CF4 -00001 000C+00 0/1 0/0 0/0 .data @508 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_508[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdCheckPortImport__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5CF4-803C5D00 -00001 000C+00 0/1 0/0 0/0 .data @509 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_509[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdCheckPortExport__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5D00-803C5D0C -00001 000C+00 0/1 0/0 0/0 .data @510 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_510[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdParentWritePort__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5D0C-803C5D18 -00001 000C+00 0/1 0/0 0/0 .data @511 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_511[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdChildWritePort__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5D18-803C5D24 -00001 000C+00 0/1 0/0 0/0 .data @512 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_512[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdParentReadPort__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5D24-803C5D30 -00001 000C+00 0/1 0/0 0/0 .data @513 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_513[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdChildReadPort__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5D30-803C5D3C -00001 000C+00 0/1 0/0 0/0 .data @514 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_514[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdRegLoad__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5D3C-803C5D48 -00001 000C+00 0/1 0/0 0/0 .data @515 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_515[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdReg__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5D48-803C5D54 -00001 000C+00 0/1 0/0 0/0 .data @516 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_516[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdReg__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5D54-803C5D60 -00001 000C+00 0/1 0/0 0/0 .data @517 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_517[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdRegUni__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5D60-803C5D6C -00001 000C+00 0/1 0/0 0/0 .data @518 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_518[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdRegTblLoad__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5D6C-803C5D78 -00001 000C+00 0/1 0/0 0/0 .data @519 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_519[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdTempo__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5D78-803C5D84 -00001 000C+00 0/1 0/0 0/0 .data @520 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_520[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdBankPrg__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5D84-803C5D90 -00001 000C+00 0/1 0/0 0/0 .data @521 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_521[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdBank__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5D90-803C5D9C -00001 000C+00 0/1 0/0 0/0 .data @522 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_522[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdPrg__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5D9C-803C5DA8 -00001 000C+00 0/1 0/0 0/0 .data @523 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_523[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdEnvScaleSet__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5DA8-803C5DB4 -00001 000C+00 0/1 0/0 0/0 .data @524 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_524[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdEnvSet__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5DB4-803C5DC0 -00001 000C+00 0/1 0/0 0/0 .data @525 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_525[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdSimpleADSR__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5DC0-803C5DCC -00001 000C+00 0/1 0/0 0/0 .data @526 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_526[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdBusConnect__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5DCC-803C5DD8 -00001 000C+00 0/1 0/0 0/0 .data @527 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_527[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdIIRCutOff__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5DD8-803C5DE4 -00001 000C+00 0/1 0/0 0/0 .data @528 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_528[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdIIRSet__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5DE4-803C5DF0 -00001 000C+00 0/1 0/0 0/0 .data @529 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_529[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdFIRSet__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5DF0-803C5DFC -00001 000C+00 0/1 0/0 0/0 .data @530 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_530[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdWait__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5DFC-803C5E08 -00001 000C+00 0/1 0/0 0/0 .data @531 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_531[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdWaitByte__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5E08-803C5E14 -00001 000C+00 0/1 0/0 0/0 .data @532 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_532[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdSetIntTable__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5E14-803C5E20 -00001 000C+00 0/1 0/0 0/0 .data @533 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_533[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdSetInterrupt__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5E20-803C5E2C -00001 000C+00 0/1 0/0 0/0 .data @534 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_534[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdDisInterrupt__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5E2C-803C5E38 -00001 000C+00 0/1 0/0 0/0 .data @535 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_535[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdRetI__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5E38-803C5E44 -00001 000C+00 0/1 0/0 0/0 .data @536 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_536[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdClrI__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5E44-803C5E50 -00001 000C+00 0/1 0/0 0/0 .data @537 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_537[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdIntTimer__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5E50-803C5E5C -00001 000C+00 0/1 0/0 0/0 .data @538 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_538[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdSyncCPU__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5E5C-803C5E68 -00001 000C+00 0/1 0/0 0/0 .data @539 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_539[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdPrintf__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5E68-803C5E74 -00001 000C+00 0/1 0/0 0/0 .data @540 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_540[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdNop__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
-/* 803C5E74-803C5E80 -00001 000C+00 0/1 0/0 0/0 .data @541 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_541[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdFinish__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
+#endif
/* 803C5E80-803C6480 022FA0 0600+00 1/2 0/0 0/0 .data sCmdInfo__12JASSeqParser */
-SECTION_DATA u8 JASSeqParser::sCmdInfo[1536] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x40,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x10,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x14,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0B,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0B,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0C,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0C,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0C,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x30,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x10,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0xE0,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x08,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x01, 0x55,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x55,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA JASSeqParser::CmdInfo JASSeqParser::sCmdInfo[96] = {
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ &JASSeqParser::cmdNoteOn, 0x0003, 0x0000,
+ &JASSeqParser::cmdNoteOff, 0x0001, 0x0000,
+ &JASSeqParser::cmdNote, 0x0004, 0x0040,
+ &JASSeqParser::cmdSetLastNote, 0x0001, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ &JASSeqParser::cmdParamE, 0x0002, 0x0000,
+ &JASSeqParser::cmdParamI, 0x0002, 0x0004,
+ &JASSeqParser::cmdParamEI, 0x0003, 0x0010,
+ &JASSeqParser::cmdParamII, 0x0003, 0x0014,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ &JASSeqParser::cmdOpenTrack, 0x0002, 0x0008,
+ &JASSeqParser::cmdCloseTrack, 0x0001, 0x0000,
+ &JASSeqParser::cmdCall, 0x0001, 0x0002,
+ &JASSeqParser::cmdCallF, 0x0002, 0x0008,
+ &JASSeqParser::cmdRet, 0x0000, 0x0000,
+ &JASSeqParser::cmdRetF, 0x0001, 0x0000,
+ &JASSeqParser::cmdJmp, 0x0001, 0x0002,
+ &JASSeqParser::cmdJmpF, 0x0002, 0x0008,
+ &JASSeqParser::cmdJmpTable, 0x0002, 0x000B,
+ &JASSeqParser::cmdCallTable, 0x0002, 0x000B,
+ &JASSeqParser::cmdLoopS, 0x0001, 0x0001,
+ &JASSeqParser::cmdLoopE, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ &JASSeqParser::cmdReadPort, 0x0002, 0x0000,
+ &JASSeqParser::cmdWritePort, 0x0002, 0x000C,
+ &JASSeqParser::cmdCheckPortImport, 0x0001, 0x0000,
+ &JASSeqParser::cmdCheckPortExport, 0x0001, 0x0000,
+ &JASSeqParser::cmdParentWritePort, 0x0002, 0x000C,
+ &JASSeqParser::cmdChildWritePort, 0x0002, 0x000C,
+ &JASSeqParser::cmdParentReadPort, 0x0002, 0x0000,
+ &JASSeqParser::cmdChildReadPort, 0x0002, 0x0000,
+ &JASSeqParser::cmdRegLoad, 0x0002, 0x0004,
+ &JASSeqParser::cmdReg, 0x0003, 0x0030,
+ &JASSeqParser::cmdReg, 0x0003, 0x0010,
+ &JASSeqParser::cmdRegUni, 0x0002, 0x0000,
+ &JASSeqParser::cmdRegTblLoad, 0x0004, 0x00E0,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ &JASSeqParser::cmdTempo, 0x0001, 0x0001,
+ &JASSeqParser::cmdBankPrg, 0x0001, 0x0001,
+ &JASSeqParser::cmdBank, 0x0001, 0x0000,
+ &JASSeqParser::cmdPrg, 0x0001, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ &JASSeqParser::cmdEnvScaleSet, 0x0002, 0x0004,
+ &JASSeqParser::cmdEnvSet, 0x0002, 0x0008,
+ &JASSeqParser::cmdSimpleADSR, 0x0005, 0x0155,
+ &JASSeqParser::cmdBusConnect, 0x0002, 0x0004,
+ &JASSeqParser::cmdIIRCutOff, 0x0001, 0x0000,
+ &JASSeqParser::cmdIIRSet, 0x0004, 0x0055,
+ &JASSeqParser::cmdFIRSet, 0x0001, 0x0002,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ &JASSeqParser::cmdWait, 0x0000, 0x0000,
+ &JASSeqParser::cmdWaitByte, 0x0001, 0x0000,
+ NULL, 0x0000, 0x0000,
+ &JASSeqParser::cmdSetIntTable, 0x0001, 0x0002,
+ &JASSeqParser::cmdSetInterrupt, 0x0001, 0x0001,
+ &JASSeqParser::cmdDisInterrupt, 0x0001, 0x0001,
+ &JASSeqParser::cmdRetI, 0x0000, 0x0000,
+ &JASSeqParser::cmdClrI, 0x0000, 0x0000,
+ &JASSeqParser::cmdIntTimer, 0x0002, 0x0004,
+ &JASSeqParser::cmdSyncCPU, 0x0001, 0x0001,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ &JASSeqParser::cmdPrintf, 0x0000, 0x0000,
+ &JASSeqParser::cmdNop, 0x0000, 0x0000,
+ &JASSeqParser::cmdFinish, 0x0000, 0x0000,
};
-/* 803C6480-803C648C -00001 000C+00 0/1 0/0 0/0 .data @542 */
-#pragma push
-#pragma force_active on
-SECTION_DATA static void* lit_542[3] = {
- (void*)NULL,
- (void*)0xFFFFFFFF,
- (void*)cmdDump__12JASSeqParserFP8JASTrackPUl,
-};
-#pragma pop
-
/* 803C648C-803C747C 0235AC 0FF0+00 1/2 0/0 0/0 .data sExtCmdInfo__12JASSeqParser */
-SECTION_DATA u8 JASSeqParser::sExtCmdInfo[4080] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA JASSeqParser::CmdInfo JASSeqParser::sExtCmdInfo[255] = {
+ NULL, 0x0000, 0x0000,
+ &JASSeqParser::cmdDump, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
+ NULL, 0x0000, 0x0000,
};
/* 803C747C-803C7550 -00001 00D4+00 1/1 0/0 0/0 .data @632 */
@@ -1303,6 +376,99 @@ SECTION_SDATA2 static f32 lit_631[1 + 1 /* padding */] = {
SECTION_SDATA2 static f64 lit_634 = 4503599627370496.0 /* cast u32 to float */;
/* 80293DC4-80293FC8 28E704 0204+00 8/7 0/0 0/0 .text writeReg__12JASSeqParserFP8JASTrackUlUl */
+// matches with literals
+#ifdef NONMATCHING
+void JASSeqParser::writeReg(JASTrack* param_0, u32 param_1, u32 param_2) {
+ param_0->writeReg(JASRegisterParam::REG3, param_2);
+ if (param_1 < 0x40) {
+ param_0->writeReg(JASRegisterParam::RegID(param_1), param_2);
+ return;
+ }
+ switch (param_1) {
+ case 0x40:
+ case 0x41:
+ case 0x42:
+ case 0x43:
+ case 0x44:
+ case 0x45:
+ case 0x46:
+ case 0x47:
+ case 0x48:
+ case 0x49:
+ case 0x4a:
+ case 0x4b:
+ case 0x4c:
+ case 0x4d:
+ case 0x4e:
+ case 0x4f:
+ param_0->setPort(param_1 - 0x40, param_2);
+ break;
+ case 0x60:
+ case 0x61:
+ break;
+ case 0x62:
+ param_0->setTimebase(param_2);
+ break;
+ case 0x63:
+ param_0->setTranspose(param_2);
+ break;
+ case 0x64:
+ param_0->setBendSense(param_2);
+ break;
+ case 0x65:
+ param_0->setGateRate(param_2);
+ break;
+ case 0x66:
+ param_0->setSkipSample(param_2);
+ break;
+ case 0x67:
+ param_0->setBankNumber(u8(param_2));
+ break;
+ case 0x68:
+ param_0->setProgNumber(u8(param_2));
+ break;
+ case 0x69:
+ param_0->setPanPower(param_2 / 32767.0f);
+ break;
+ case 0x6a:
+ param_0->setReleasePrio(JSUHiByte(param_2));
+ param_0->setNoteOnPrio(JSULoByte(param_2));
+ break;
+ case 0x6b:
+ param_0->setNoteOnPrio(param_2);
+ break;
+ case 0x6c:
+ param_0->setReleasePrio(param_2);
+ break;
+ case 0x6d:
+ param_0->setDirectRelease(param_2);
+ break;
+ case 0x6e:
+ param_0->setVibDepth(param_2 / 1524.0f);
+ break;
+ case 0x6f:
+ param_0->setVibDepth(param_2 / 12192.0f);
+ break;
+ case 0x70:
+ param_0->setTremDepth(param_2 / 256.0f);
+ break;
+ case 0x71:
+ param_0->setVibPitch(param_2 / 64.0f);
+ break;
+ case 0x72:
+ param_0->setTremPitch(param_2 / 64.0f);
+ break;
+ case 0x73:
+ param_0->setVibDelay(param_2);
+ break;
+ case 0x74:
+ param_0->setTremDelay(param_2);
+ break;
+ default:
+ break;
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1311,6 +477,7 @@ asm void JASSeqParser::writeReg(JASTrack* param_0, u32 param_1, u32 param_2) {
#include "asm/JSystem/JAudio2/JASSeqParser/writeReg__12JASSeqParserFP8JASTrackUlUl.s"
}
#pragma pop
+#endif
/* ############################################################################################## */
/* 803C7550-803C7624 -00001 00D4+00 1/1 0/0 0/0 .data @720 */
@@ -1377,285 +544,358 @@ SECTION_SDATA2 static f32 lit_718 = 256.0f;
SECTION_SDATA2 static f32 lit_719 = 64.0f;
/* 80293FC8-80294188 28E908 01C0+00 7/6 0/0 0/0 .text readReg__12JASSeqParserCFP8JASTrackUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::readReg(JASTrack* param_0, u32 param_1) const {
+// extra mr instrucions
+#ifdef NONMATCHING
+u32 JASSeqParser::readReg(JASTrack* param_0, u32 param_1) const {
+ if (param_1 < 0x40) {
+ return param_0->readReg(JASRegisterParam::RegID(param_1));
+ }
+ u32 result = 0;
+ switch (param_1) {
+ case 0x40:
+ case 0x41:
+ case 0x42:
+ case 0x43:
+ case 0x44:
+ case 0x45:
+ case 0x46:
+ case 0x47:
+ case 0x48:
+ case 0x49:
+ case 0x4a:
+ case 0x4b:
+ case 0x4c:
+ case 0x4d:
+ case 0x4e:
+ case 0x4f:
+ result = param_0->getPort(param_1 - 0x40);
+ break;
+ case 0x60:
+ u16 r27 = 1;
+ for (int i = 0; i < 16; i++) {
+ JASTrack* child = param_0->getChild(i);
+ if (child && child->getStatus() == 1) {
+ result |= r27;
+ }
+ r27 <<= 1;
+ }
+ break;
+ case 0x61:
+ result = param_0->getSeqCtrl()->getSeqReader()->getLoopCount();
+ break;
+ case 0x62:
+ result = param_0->getTimebase();
+ break;
+ case 0x63:
+ result = param_0->getTranspose();
+ break;
+ case 0x64:
+ result = param_0->getBendSense();
+ break;
+ case 0x65:
+ result = param_0->getGateRate();
+ break;
+ case 0x66:
+ result = param_0->getSkipSample();
+ break;
+ case 0x67:
+ result = param_0->getBankNumber();
+ break;
+ case 0x68:
+ result = param_0->getProgNumber();
+ break;
+ case 0x69:
+ result = param_0->getPanPower() * 32767.0f;
+ break;
+ case 0x6a:
+ result = param_0->getReleasePrio() | param_0->getNoteOnPrio();
+ break;
+ case 0x6b:
+ result = param_0->getNoteOnPrio();
+ break;
+ case 0x6c:
+ result = param_0->getReleasePrio();
+ break;
+ case 0x6d:
+ result = param_0->getDirectRelease();
+ break;
+ case 0x6e:
+ result = param_0->getVibDepth() * 1524.0f;
+ break;
+ case 0x6f:
+ result = param_0->getVibDepth() * 12192.0f;
+ break;
+ case 0x70:
+ result = param_0->getTremDepth() * 256.0f;
+ break;
+ case 0x71:
+ result = param_0->getVibPitch() * 64.0f;
+ break;
+ case 0x72:
+ result = param_0->getTremPitch() * 64.0f;
+ break;
+ case 0x73:
+ result = param_0->getVibDelay();
+ break;
+ case 0x74:
+ result = param_0->getTremDelay();
+ break;
+ default:
+ break;
+ }
+ return result;
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm u32 JASSeqParser::readReg(JASTrack* param_0, u32 param_1) const {
nofralloc
#include "asm/JSystem/JAudio2/JASSeqParser/readReg__12JASSeqParserCFP8JASTrackUl.s"
}
#pragma pop
+#endif
/* 80294188-802941F0 28EAC8 0068+00 1/0 0/0 0/0 .text cmdOpenTrack__12JASSeqParserFP8JASTrackPUl
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdOpenTrack(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdOpenTrack__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdOpenTrack(JASTrack* param_0, u32* param_1) {
+ u32 r29 = param_1[0];
+ u32 r28 = param_1[1];
+ JASTrack* child = param_0->openChild(r29);
+ if (!child) {
+ return 0;
+ }
+ child->setSeqData(param_0->getSeqCtrl()->getBase(), r28);
+ child->start();
+ return 0;
}
-#pragma pop
/* 802941F0-8029421C 28EB30 002C+00 1/0 0/0 0/0 .text cmdCloseTrack__12JASSeqParserFP8JASTrackPUl
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdCloseTrack(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdCloseTrack__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdCloseTrack(JASTrack* param_0, u32* param_1) {
+ param_0->closeChild(*param_1);
+ return 0;
}
-#pragma pop
/* 8029421C-80294248 28EB5C 002C+00 1/0 0/0 0/0 .text cmdCall__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdCall(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdCall__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdCall(JASTrack* param_0, u32* param_1) {
+ param_0->getSeqCtrl()->call(*param_1);
+ return 0;
}
-#pragma pop
/* 80294248-8029429C 28EB88 0054+00 1/0 0/0 0/0 .text cmdCallF__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdCallF(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdCallF__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdCallF(JASTrack* param_0, u32* param_1) {
+ if (conditionCheck(param_0, BranchCondition(param_1[0]))) {
+ param_0->getSeqCtrl()->call(param_1[1]);
+ }
+ return 0;
}
-#pragma pop
/* 8029429C-802942D4 28EBDC 0038+00 1/0 0/0 0/0 .text cmdRet__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdRet(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdRet__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdRet(JASTrack* param_0, u32* param_1) {
+ if (!param_0->getSeqCtrl()->ret()) {
+ return 0;
+ }
+ return 0;
}
-#pragma pop
/* 802942D4-80294328 28EC14 0054+00 1/0 0/0 0/0 .text cmdRetF__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdRetF(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdRetF__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdRetF(JASTrack* param_0, u32* param_1) {
+ if (conditionCheck(param_0, BranchCondition(param_1[0]))) {
+ if (!param_0->getSeqCtrl()->ret()) {
+ return 0;
+ }
+ }
+ return 0;
}
-#pragma pop
/* 80294328-80294340 28EC68 0018+00 1/0 0/0 0/0 .text cmdJmp__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdJmp(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdJmp__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdJmp(JASTrack* param_0, u32* param_1) {
+ param_0->getSeqCtrl()->jump(param_1[0]);
+ return 0;
}
-#pragma pop
/* 80294340-80294398 28EC80 0058+00 1/0 0/0 0/0 .text cmdJmpF__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdJmpF(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdJmpF__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdJmpF(JASTrack* param_0, u32* param_1) {
+ if (conditionCheck(param_0, BranchCondition(param_1[0]))) {
+ param_0->getSeqCtrl()->jump(param_1[1]);
+ }
+ return 0;
}
-#pragma pop
/* 80294398-802943CC 28ECD8 0034+00 1/0 0/0 0/0 .text cmdJmpTable__12JASSeqParserFP8JASTrackPUl */
+// instruction order
+#ifdef NONMATCHING
+s32 JASSeqParser::cmdJmpTable(JASTrack* param_0, u32* param_1) {
+ JASSeqCtrl* seqCtrl = param_0->getSeqCtrl();
+ seqCtrl->jump(seqCtrl->get24(param_1[1] + param_1[0] * 2 + param_1[0]));
+ return 0;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void JASSeqParser::cmdJmpTable(JASTrack* param_0, u32* param_1) {
+asm s32 JASSeqParser::cmdJmpTable(JASTrack* param_0, u32* param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JASSeqParser/cmdJmpTable__12JASSeqParserFP8JASTrackPUl.s"
}
#pragma pop
+#endif
/* 802943CC-8029441C 28ED0C 0050+00 1/0 0/0 0/0 .text cmdCallTable__12JASSeqParserFP8JASTrackPUl
*/
+// instruction order
+#ifdef NONMATCHING
+s32 JASSeqParser::cmdCallTable(JASTrack* param_0, u32* param_1) {
+ JASSeqCtrl* seqCtrl = param_0->getSeqCtrl();
+ seqCtrl->call(seqCtrl->get24(param_1[1] + param_1[0] * 2 + param_1[0]));
+ return 0;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void JASSeqParser::cmdCallTable(JASTrack* param_0, u32* param_1) {
+asm s32 JASSeqParser::cmdCallTable(JASTrack* param_0, u32* param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JASSeqParser/cmdCallTable__12JASSeqParserFP8JASTrackPUl.s"
}
#pragma pop
+#endif
/* 8029441C-80294448 28ED5C 002C+00 1/0 0/0 0/0 .text cmdLoopS__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdLoopS(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdLoopS__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdLoopS(JASTrack* param_0, u32* param_1) {
+ param_0->getSeqCtrl()->loopStart(param_1[0]);
+ return 0;
}
-#pragma pop
/* 80294448-80294470 28ED88 0028+00 1/0 0/0 0/0 .text cmdLoopE__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdLoopE(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdLoopE__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdLoopE(JASTrack* param_0, u32* param_1) {
+ param_0->getSeqCtrl()->loopEnd();
+ return 0;
}
-#pragma pop
/* 80294470-802944B4 28EDB0 0044+00 1/0 0/0 0/0 .text cmdNote__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdNote(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdNote__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdNote(JASTrack* param_0, u32* param_1) {
+ execNoteOnGate(param_0, param_1[1], param_1[2], param_1[3], param_1[0]);
+ return 0;
}
-#pragma pop
/* 802944B4-802944F4 28EDF4 0040+00 1/0 0/0 0/0 .text cmdNoteOn__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdNoteOn(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdNoteOn__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdNoteOn(JASTrack* param_0, u32* param_1) {
+ execNoteOnMidi(param_0, param_1[1], param_1[0], param_1[2]);
+ return 0;
}
-#pragma pop
/* 802944F4-80294528 28EE34 0034+00 1/0 0/0 0/0 .text cmdNoteOff__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdNoteOff(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdNoteOff__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdNoteOff(JASTrack* param_0, u32* param_1) {
+ execNoteOff(param_0, param_1[0]);
+ return 0;
}
-#pragma pop
/* 80294528-80294588 28EE68 0060+00 1/0 0/0 0/0 .text cmdReadPort__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdReadPort(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdReadPort__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdReadPort(JASTrack* param_0, u32* param_1) {
+ u16 tmp = param_0->readPortSelf(param_1[0]);
+ writeReg(param_0, param_1[1], tmp);
+ return 0;
}
-#pragma pop
/* 80294588-802945BC 28EEC8 0034+00 1/0 0/0 0/0 .text cmdWritePort__12JASSeqParserFP8JASTrackPUl
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdWritePort(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdWritePort__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdWritePort(JASTrack* param_0, u32* param_1) {
+ param_0->writePortSelf(param_1[0], param_1[1]);
+ return 0;
}
-#pragma pop
/* 802945BC-802945F8 28EEFC 003C+00 1/0 0/0 0/0 .text
* cmdParentWritePort__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdParentWritePort(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdParentWritePort__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdParentWritePort(JASTrack* param_0, u32* param_1) {
+ JASTrack* parent = param_0->getParent();
+ if (parent) {
+ parent->writePort(param_1[0], param_1[1]);
+ } else {
+
+ }
+ return 0;
}
-#pragma pop
/* 802945F8-80294644 28EF38 004C+00 1/0 0/0 0/0 .text
* cmdChildWritePort__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdChildWritePort(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdChildWritePort__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdChildWritePort(JASTrack* param_0, u32* param_1) {
+ JASTrack* child = param_0->getChild(JSUHiNibble(param_1[0]));
+ if (child) {
+ child->writePort(JSULoNibble(param_1[0]), param_1[1]);
+ } else {
+
+ }
+ return 0;
}
-#pragma pop
/* 80294644-802946AC 28EF84 0068+00 1/0 0/0 0/0 .text
* cmdParentReadPort__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdParentReadPort(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdParentReadPort__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdParentReadPort(JASTrack* param_0, u32* param_1) {
+ JASTrack* parent = param_0->getParent();
+ if (parent) {
+ u16 tmp = parent->readPort(param_1[0]);
+ writeReg(param_0, param_1[1], tmp);
+ } else {
+
+ }
+ return 0;
}
-#pragma pop
/* 802946AC-80294724 28EFEC 0078+00 1/0 0/0 0/0 .text
* cmdChildReadPort__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdChildReadPort(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdChildReadPort__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdChildReadPort(JASTrack* param_0, u32* param_1) {
+ JASTrack* child = param_0->getChild(JSUHiNibble(param_1[0]));
+ if (child) {
+ u16 tmp = child->readPort(JSULoNibble(param_1[0]));
+ writeReg(param_0, param_1[1], tmp);
+ } else {
+
+ }
+ return 0;
}
-#pragma pop
/* 80294724-80294770 28F064 004C+00 1/0 0/0 0/0 .text
* cmdCheckPortImport__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdCheckPortImport(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdCheckPortImport__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdCheckPortImport(JASTrack* param_0, u32* param_1) {
+ u8 tmp = param_0->checkPortIn(param_1[0]);
+ param_0->writeReg(JASRegisterParam::REG3, tmp);
+ return 0;
}
-#pragma pop
/* 80294770-802947BC 28F0B0 004C+00 1/0 0/0 0/0 .text
* cmdCheckPortExport__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdCheckPortExport(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdCheckPortExport__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdCheckPortExport(JASTrack* param_0, u32* param_1) {
+ u8 tmp = param_0->checkPort(param_1[0]);
+ param_0->writeReg(JASRegisterParam::REG3, tmp);
+ return 0;
}
-#pragma pop
/* 802947BC-802947F4 28F0FC 0038+00 1/0 0/0 0/0 .text cmdWait__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdWait(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdWait__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdWait(JASTrack* param_0, u32* param_1) {
+ JASSeqCtrl* seqCtrl = param_0->getSeqCtrl();
+ seqCtrl->wait(seqCtrl->readMidiValue());
+ return 0;
}
-#pragma pop
/* 802947F4-80294804 28F134 0010+00 1/0 0/0 0/0 .text cmdWaitByte__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdWaitByte(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdWaitByte__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdWaitByte(JASTrack* param_0, u32* param_1) {
+ param_0->getSeqCtrl()->wait(param_1[0]);
+ return 0;
}
-#pragma pop
/* 80294804-8029483C 28F144 0038+00 1/0 0/0 0/0 .text cmdSetLastNote__12JASSeqParserFP8JASTrackPUl
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdSetLastNote(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdSetLastNote__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdSetLastNote(JASTrack* param_0, u32* param_1) {
+ u32 r31 = param_1[0];
+ if (r31 < 256) {
+ param_0->setLatestKey(r31);
+ } else {
+
+ }
+ return 0;
}
-#pragma pop
/* ############################################################################################## */
/* 80455600-80455608 003C00 0004+04 1/1 0/0 0/0 .sdata2 @931 */
@@ -1667,133 +907,105 @@ SECTION_SDATA2 static f32 lit_931[1 + 1 /* padding */] = {
/* 8029483C-8029488C 28F17C 0050+00 1/0 0/0 0/0 .text cmdEnvScaleSet__12JASSeqParserFP8JASTrackPUl
*/
+// matches with literals
+#ifdef NONMATCHING
+s32 JASSeqParser::cmdEnvScaleSet(JASTrack* param_0, u32* param_1) {
+ param_0->setOscScale(param_1[0], param_1[1] / 16383.0f);
+ return 0;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void JASSeqParser::cmdEnvScaleSet(JASTrack* param_0, u32* param_1) {
+asm s32 JASSeqParser::cmdEnvScaleSet(JASTrack* param_0, u32* param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JASSeqParser/cmdEnvScaleSet__12JASSeqParserFP8JASTrackPUl.s"
}
#pragma pop
+#endif
/* 8029488C-802948C8 28F1CC 003C+00 1/0 0/0 0/0 .text cmdEnvSet__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdEnvSet(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdEnvSet__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdEnvSet(JASTrack* param_0, u32* param_1) {
+ param_0->setOscTable(param_1[0], (JASOscillator::Point*)param_0->getSeqCtrl()->getAddr(param_1[1]));
+ return 0;
}
-#pragma pop
/* 802948C8-8029491C 28F208 0054+00 1/0 0/0 0/0 .text cmdSimpleADSR__12JASSeqParserFP8JASTrackPUl
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdSimpleADSR(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdSimpleADSR__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdSimpleADSR(JASTrack* param_0, u32* param_1) {
+ param_0->setOscAdsr(param_1[0], param_1[1], param_1[2], param_1[3], param_1[4]);
+ return 0;
}
-#pragma pop
/* 8029491C-8029494C 28F25C 0030+00 1/0 0/0 0/0 .text cmdBusConnect__12JASSeqParserFP8JASTrackPUl
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdBusConnect(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdBusConnect__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdBusConnect(JASTrack* param_0, u32* param_1) {
+ param_0->connectBus(param_1[0], param_1[1]);
+ return 0;
}
-#pragma pop
/* 8029494C-8029495C 28F28C 0010+00 1/0 0/0 0/0 .text cmdSetIntTable__12JASSeqParserFP8JASTrackPUl
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdSetIntTable(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdSetIntTable__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdSetIntTable(JASTrack* param_0, u32* param_1) {
+ param_0->getSeqCtrl()->setIntrTable(param_1[0]);
+ return 0;
}
-#pragma pop
/* 8029495C-80294988 28F29C 002C+00 1/0 0/0 0/0 .text
* cmdSetInterrupt__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdSetInterrupt(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdSetInterrupt__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdSetInterrupt(JASTrack* param_0, u32* param_1) {
+ param_0->getSeqCtrl()->setIntrMask(param_1[0]);
+ return 0;
}
-#pragma pop
/* 80294988-802949B4 28F2C8 002C+00 1/0 0/0 0/0 .text
* cmdDisInterrupt__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdDisInterrupt(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdDisInterrupt__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdDisInterrupt(JASTrack* param_0, u32* param_1) {
+ param_0->getSeqCtrl()->clrIntrMask(param_1[0]);
+ return 0;
}
-#pragma pop
/* 802949B4-802949E4 28F2F4 0030+00 1/0 0/0 0/0 .text cmdClrI__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdClrI(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdClrI__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdClrI(JASTrack* param_0, u32* param_1) {
+ JASSeqCtrl* seqCtrl = param_0->getSeqCtrl();
+ seqCtrl->clrIntr();
+ seqCtrl->checkIntr();
+ return 0;
}
-#pragma pop
/* 802949E4-80294A20 28F324 003C+00 1/0 0/0 0/0 .text cmdRetI__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdRetI(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdRetI__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdRetI(JASTrack* param_0, u32* param_1) {
+ JASSeqCtrl* seqCtrl = param_0->getSeqCtrl();
+ seqCtrl->retIntr();
+ seqCtrl->checkIntr();
+ return 0;
}
-#pragma pop
/* 80294A20-80294A3C 28F360 001C+00 1/0 0/0 0/0 .text cmdIntTimer__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdIntTimer(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdIntTimer__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdIntTimer(JASTrack* param_0, u32* param_1) {
+ param_0->getSeqCtrl()->setIntrTimer(param_1[0], param_1[1]);
+ return 0;
}
-#pragma pop
/* ############################################################################################## */
/* 80451240-80451244 000740 0004+00 1/1 1/1 0/0 .sbss sCallBackFunc__12JASSeqParser */
-u8 JASSeqParser::sCallBackFunc[4];
+u16 (*JASSeqParser::sCallBackFunc)(JASTrack*, u16);
/* 80294A3C-80294AA4 28F37C 0068+00 1/0 0/0 0/0 .text cmdSyncCPU__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdSyncCPU(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdSyncCPU__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdSyncCPU(JASTrack* param_0, u32* param_1) {
+ u16 r31 = 0xffff;
+ if (sCallBackFunc) {
+ r31 = sCallBackFunc(param_0, param_1[0]);
+ }
+ param_0->writeReg(JASRegisterParam::REG3, r31);
+ return 0;
}
-#pragma pop
/* 80294AA4-80294AD4 28F3E4 0030+00 1/0 0/0 0/0 .text cmdTempo__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdTempo(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdTempo__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdTempo(JASTrack* param_0, u32* param_1) {
+ param_0->setTempo(param_1[0]);
+ return 0;
}
-#pragma pop
/* 80294AD4-80294ADC 28F414 0008+00 1/0 0/0 0/0 .text cmdFinish__12JASSeqParserFP8JASTrackPUl */
s32 JASSeqParser::cmdFinish(JASTrack* param_0, u32* param_1) {
@@ -1801,114 +1013,143 @@ s32 JASSeqParser::cmdFinish(JASTrack* param_0, u32* param_1) {
}
/* 80294ADC-80294AE4 28F41C 0008+00 1/0 0/0 0/0 .text cmdNop__12JASSeqParserFP8JASTrackPUl */
-bool JASSeqParser::cmdNop(JASTrack* param_0, u32* param_1) {
- return false;
+s32 JASSeqParser::cmdNop(JASTrack* param_0, u32* param_1) {
+ return 0;
}
/* 80294AE4-80294B1C 28F424 0038+00 1/0 0/0 0/0 .text cmdFIRSet__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdFIRSet(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdFIRSet__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdFIRSet(JASTrack* param_0, u32* param_1) {
+ param_0->setFIR((s16*)param_0->getSeqCtrl()->getAddr(param_1[0]));
+ return 0;
}
-#pragma pop
/* 80294B1C-80294B70 28F45C 0054+00 1/0 0/0 0/0 .text cmdIIRSet__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdIIRSet(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdIIRSet__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdIIRSet(JASTrack* param_0, u32* param_1) {
+ s16 stack_10[4];
+ for (int i = 0; i < 4; i++) {
+ stack_10[i] = param_1[i];
+ }
+ param_0->setIIR(stack_10);
+ return 0;
}
-#pragma pop
/* 80294B70-80294BB4 28F4B0 0044+00 1/0 0/0 0/0 .text cmdIIRCutOff__12JASSeqParserFP8JASTrackPUl
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdIIRCutOff(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdIIRCutOff__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdIIRCutOff(JASTrack* param_0, u32* param_1) {
+ u32 r31 = param_1[0];
+ if (r31 < 128) {
+ param_0->setIIR(JASCalc::CUTOFF_TO_IIR_TABLE[r31]);
+ } else {
+
+ }
+ return 0;
}
-#pragma pop
/* 80294BB4-80294BD0 28F4F4 001C+00 1/0 0/0 0/0 .text cmdBankPrg__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdBankPrg(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdBankPrg__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdBankPrg(JASTrack* param_0, u32* param_1) {
+ u16 r31 = JSULoHalf(param_1[0]);
+ param_0->setBankNumber(JSUHiByte(r31));
+ param_0->setProgNumber(JSULoByte(r31));
+ return 0;
}
-#pragma pop
/* 80294BD0-80294BE4 28F510 0014+00 1/0 0/0 0/0 .text cmdBank__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdBank(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdBank__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdBank(JASTrack* param_0, u32* param_1) {
+ param_0->setBankNumber(param_1[0] & 0xff);
+ return 0;
}
-#pragma pop
/* 80294BE4-80294BF8 28F524 0014+00 1/0 0/0 0/0 .text cmdPrg__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdPrg(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdPrg__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdPrg(JASTrack* param_0, u32* param_1) {
+ param_0->setProgNumber(param_1[0] & 0xff);
+ return 0;
}
-#pragma pop
/* ############################################################################################## */
/* 80455608-80455610 003C08 0008+00 4/4 0/0 0/0 .sdata2 @1064 */
SECTION_SDATA2 static f64 lit_1064 = 4503601774854144.0 /* cast s32 to float */;
/* 80294BF8-80294C54 28F538 005C+00 1/0 0/0 0/0 .text cmdParamI__12JASSeqParserFP8JASTrackPUl */
+// matches with literals
+#ifdef NONMATCHING
+s32 JASSeqParser::cmdParamI(JASTrack* param_0, u32* param_1) {
+ param_0->setParam(param_1[0], s16(param_1[1]) / 32767.0f, 0);
+ return 0;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void JASSeqParser::cmdParamI(JASTrack* param_0, u32* param_1) {
+asm s32 JASSeqParser::cmdParamI(JASTrack* param_0, u32* param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JASSeqParser/cmdParamI__12JASSeqParserFP8JASTrackPUl.s"
}
#pragma pop
+#endif
/* 80294C54-80294CB0 28F594 005C+00 1/0 0/0 0/0 .text cmdParamII__12JASSeqParserFP8JASTrackPUl */
+// matches with literals
+#ifdef NONMATCHING
+s32 JASSeqParser::cmdParamII(JASTrack* param_0, u32* param_1) {
+ param_0->setParam(param_1[0], s16(param_1[1]) / 32767.0f, param_1[2]);
+ return 0;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void JASSeqParser::cmdParamII(JASTrack* param_0, u32* param_1) {
+asm s32 JASSeqParser::cmdParamII(JASTrack* param_0, u32* param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JASSeqParser/cmdParamII__12JASSeqParserFP8JASTrackPUl.s"
}
#pragma pop
+#endif
/* 80294CB0-80294D2C 28F5F0 007C+00 1/0 0/0 0/0 .text cmdParamE__12JASSeqParserFP8JASTrackPUl */
+// matches with literals
+#ifdef NONMATCHING
+s32 JASSeqParser::cmdParamE(JASTrack* param_0, u32* param_1) {
+ s32* r31 = (s32*)param_1 + 1;
+ s16 r30 = *r31 << 8;
+ if ((*r31 & 0x80) == 0) {
+ r30 = r30 | s16(*r31 << 1);
+ }
+ param_0->setParam(param_1[0], r30 / 32767.0f, 0);
+ return 0;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void JASSeqParser::cmdParamE(JASTrack* param_0, u32* param_1) {
+asm s32 JASSeqParser::cmdParamE(JASTrack* param_0, u32* param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JASSeqParser/cmdParamE__12JASSeqParserFP8JASTrackPUl.s"
}
#pragma pop
+#endif
/* 80294D2C-80294DA8 28F66C 007C+00 1/0 0/0 0/0 .text cmdParamEI__12JASSeqParserFP8JASTrackPUl */
+// matches with literals
+#ifdef NONMATCHING
+s32 JASSeqParser::cmdParamEI(JASTrack* param_0, u32* param_1) {
+ s32* r31 = (s32*)param_1 + 1;
+ s16 r30 = *r31 << 8;
+ if ((*r31 & 0x80) == 0) {
+ r30 = r30 | s16(*r31 << 1);
+ }
+ param_0->setParam(param_1[0], r30 / 32767.0f, param_1[2]);
+ return 0;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void JASSeqParser::cmdParamEI(JASTrack* param_0, u32* param_1) {
+asm s32 JASSeqParser::cmdParamEI(JASTrack* param_0, u32* param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JASSeqParser/cmdParamEI__12JASSeqParserFP8JASTrackPUl.s"
}
#pragma pop
+#endif
/* ############################################################################################## */
/* 803C7624-803C7650 -00001 002C+00 1/1 0/0 0/0 .data @1124 */
@@ -1933,214 +1174,390 @@ static u8 data_80451244[4];
static u8 oRandom[4 + 4 /* padding */];
/* 80294DA8-80294F10 28F6E8 0168+00 3/0 0/0 0/0 .text cmdReg__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdReg(JASTrack* param_0, u32* param_1) {
+// mullw operand flipped
+#ifdef NONMATCHING
+s32 JASSeqParser::cmdReg(JASTrack* param_0, u32* param_1) {
+ u32 r29 = param_1[1];
+ u32 r30 = param_1[2];
+ switch (param_1[0]) {
+ case 0:
+ break;
+ case 1:
+ r30 += readReg(param_0, r29);
+ break;
+ case 2:
+ r30 = readReg(param_0, r29) - r30;
+ break;
+ case 3:
+ r30 = readReg(param_0, r29) - r30;
+ r29 = 3;
+ break;
+ case 4:
+ r30 *= readReg(param_0, r29);
+ r29 = 0x21;
+ break;
+ case 5:
+ r30 &= readReg(param_0, r29);
+ break;
+ case 6:
+ r30 |= readReg(param_0, r29);
+ break;
+ case 7:
+ r30 ^= readReg(param_0, r29);
+ break;
+ case 8:
+ static JMath::TRandom_fast_ oRandom(0);
+ u32 tmp = oRandom.get_bit32() >> 9;
+ r30 = tmp - tmp / r30 * r30;
+ break;
+ case 9:
+ r30 = readReg(param_0, r29) << r30;
+ break;
+ case 10:
+ r30 = readReg(param_0, r29) >> r30;
+ break;
+ default:
+ return 0;
+ }
+ writeReg(param_0, r29, r30);
+ return 0;
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm s32 JASSeqParser::cmdReg(JASTrack* param_0, u32* param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JASSeqParser/cmdReg__12JASSeqParserFP8JASTrackPUl.s"
}
#pragma pop
+#endif
/* 80294F10-80294F40 28F850 0030+00 1/0 0/0 0/0 .text cmdRegLoad__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdRegLoad(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdRegLoad__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdRegLoad(JASTrack* param_0, u32* param_1) {
+ writeReg(param_0, param_1[0], param_1[1]);
+ return 0;
}
-#pragma pop
/* 80294F40-80294FB4 28F880 0074+00 1/0 0/0 0/0 .text cmdRegUni__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdRegUni(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdRegUni__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdRegUni(JASTrack* param_0, u32* param_1) {
+ u32 r31 = param_1[1];
+ s32 r30 = 0;
+ switch (param_1[0]) {
+ case 11:
+ r30 = -readReg(param_0, r31);
+ break;
+ default:
+ return 0;
+ }
+ writeReg(param_0, r31, r30);
+ return 0;
}
-#pragma pop
/* 80294FB4-80295088 28F8F4 00D4+00 1/0 0/0 0/0 .text cmdRegTblLoad__12JASSeqParserFP8JASTrackPUl
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdRegTblLoad(JASTrack* param_0, u32* param_1) {
+// case 12, case 14
+#ifdef NONMATCHING
+s32 JASSeqParser::cmdRegTblLoad(JASTrack* param_0, u32* param_1) {
+ JASSeqCtrl* seqCtrl = param_0->getSeqCtrl();
+ u32 p1 = param_1[1];
+ u32 p2 = param_1[2];
+ u32 p3 = param_1[3];
+ u32 r27;
+ switch (param_1[0]) {
+ case 12:
+ r27 = seqCtrl->getByte(p2 + p3);
+ break;
+ case 13:
+ r27 = seqCtrl->get16(p2 + p3 * 2);
+ break;
+ case 14:
+ r27 = seqCtrl->get24(p2 + p3 * 2 + p3);
+ break;
+ case 15:
+ r27 = seqCtrl->get32(p2 + p3 * 4);
+ break;
+ case 16:
+ r27 = seqCtrl->get32(p2 + p3);
+ break;
+ default:
+ return 0;
+ }
+ writeReg(param_0, p1, r27);
+ return 0;
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm s32 JASSeqParser::cmdRegTblLoad(JASTrack* param_0, u32* param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JASSeqParser/cmdRegTblLoad__12JASSeqParserFP8JASTrackPUl.s"
}
#pragma pop
-
-/* ############################################################################################## */
-/* 8039B018-8039B018 027678 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_8039B018 =
- "--------------- JASTrack (%8x) dump ------------"
- "----";
-SECTION_DEAD static char const* const stringBase_8039B04D = " Base: 0x%08x Cur: 0x%08x(0x%06x)";
-SECTION_DEAD static char const* const stringBase_8039B06F = "";
-SECTION_DEAD static char const* const stringBase_8039B070 =
- " REG_A: 0x%04x REG_B: 0x%04x REG_S: 0x%04x";
-SECTION_DEAD static char const* const stringBase_8039B09B =
- " REG_X: 0x%04x REG_Y: 0x%04x REG_F: 0x%04x";
-SECTION_DEAD static char const* const stringBase_8039B0C6 =
- " PORT 0-3: 0x%04x 0x%04x 0x%04x 0x%04x";
-SECTION_DEAD static char const* const stringBase_8039B0ED =
- " PORT 4-7: 0x%04x 0x%04x 0x%04x 0x%04x";
-SECTION_DEAD static char const* const stringBase_8039B114 =
- " PORT 8-B: 0x%04x 0x%04x 0x%04x 0x%04x";
-SECTION_DEAD static char const* const stringBase_8039B13B =
- " PORT C-F: 0x%04x 0x%04x 0x%04x 0x%04x";
-/* @stringBase0 padding */
-SECTION_DEAD static char const* const pad_8039B162 = "\0\0\0\0\0";
-#pragma pop
+#endif
/* 80295088-8029526C 28F9C8 01E4+00 1/0 0/0 0/0 .text cmdDump__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdDump(JASTrack* param_0, u32* param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/cmdDump__12JASSeqParserFP8JASTrackPUl.s"
+s32 JASSeqParser::cmdDump(JASTrack* param_0, u32* param_1) {
+ JASSeqCtrl* seqCtrl = param_0->getSeqCtrl();
+ JASReport("--------------- JASTrack (%8x) dump ----------------", param_0);
+ JASReport(" Base: 0x%08x Cur: 0x%08x(0x%06x)", seqCtrl->getBase(), seqCtrl->getCur(), (u8*)seqCtrl->getCur() - (u8*)seqCtrl->getBase());
+ JASReport("");
+ JASReport(" REG_A: 0x%04x REG_B: 0x%04x REG_S: 0x%04x", readReg(param_0, 0), readReg(param_0, 1), readReg(param_0, 2));
+ JASReport(" REG_X: 0x%04x REG_Y: 0x%04x REG_F: 0x%04x", readReg(param_0, 4), readReg(param_0, 5), readReg(param_0, 3));
+ JASReport("");
+ JASReport(" PORT 0-3: 0x%04x 0x%04x 0x%04x 0x%04x", param_0->getPort(0x0), param_0->getPort(0x1), param_0->getPort(0x2), param_0->getPort(0x3));
+ JASReport(" PORT 4-7: 0x%04x 0x%04x 0x%04x 0x%04x", param_0->getPort(0x4), param_0->getPort(0x5), param_0->getPort(0x6), param_0->getPort(0x7));
+ JASReport(" PORT 8-B: 0x%04x 0x%04x 0x%04x 0x%04x", param_0->getPort(0x8), param_0->getPort(0x9), param_0->getPort(0xa), param_0->getPort(0xb));
+ JASReport(" PORT C-F: 0x%04x 0x%04x 0x%04x 0x%04x", param_0->getPort(0xc), param_0->getPort(0xd), param_0->getPort(0xe), param_0->getPort(0xf));
+ JASReport("");
+ return 0;
}
-#pragma pop
/* 8029526C-80295498 28FBAC 022C+00 1/0 0/0 0/0 .text cmdPrintf__12JASSeqParserFP8JASTrackPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::cmdPrintf(JASTrack* param_0, u32* param_1) {
+// many things
+#ifdef NONMATCHING
+s32 JASSeqParser::cmdPrintf(JASTrack* param_0, u32* param_1) {
+ char stack_c[4];
+ u32 stack_10[4];
+ char buffer[128];
+
+ JASSeqCtrl* seqCtrl = param_0->getSeqCtrl();
+ int r30 = 0;
+ for (u8 i = 0; i < 128; i++) {
+ buffer[i] = seqCtrl->readByte();
+ if (buffer[i] == 0) {
+ break;
+ }
+ if (buffer[i] == '\\') {
+ buffer[i] = seqCtrl->readByte();
+ if (buffer[i] == 0) {
+ break;
+ }
+ if (buffer[i] == 'n') {
+ buffer[i] = '\r';
+ }
+ } else if (buffer[i] == '%') {
+ buffer[i + 1] = seqCtrl->readByte();
+ if (buffer[i + 1] == 0) {
+ break;
+ }
+ switch (buffer[i + 1]) {
+ case 'd':
+ stack_c[r30] = 0;
+ break;
+ case 'x':
+ stack_c[r30] = 1;
+ break;
+ case 's':
+ stack_c[r30] = 2;
+ break;
+ case 'r':
+ stack_c[r30] = 3;
+ buffer[i + 1] = 'd';
+ break;
+ case 'R':
+ stack_c[r30] = 4;
+ buffer[i + 1] = 'x';
+ break;
+ default:
+ break;
+ }
+ r30++;
+ }
+ }
+ for (u32 i = 0; i < r30; i++) {
+ stack_10[i] = seqCtrl->readByte();
+ switch (stack_c[i]) {
+ case 2:
+ stack_10[i] = (u32)seqCtrl->getAddr(stack_10[i]);
+ break;
+ case 3:
+ case 4:
+ stack_10[i] = readReg(param_0, stack_10[i] & 0xff);
+ break;
+ default:
+ break;
+ }
+ }
+ JASReport(buffer, stack_10[0], stack_10[1], stack_10[2], stack_10[3]);
+ return 0;
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm s32 JASSeqParser::cmdPrintf(JASTrack* param_0, u32* param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JASSeqParser/cmdPrintf__12JASSeqParserFP8JASTrackPUl.s"
}
#pragma pop
+#endif
/* 80295498-80295540 28FDD8 00A8+00 1/0 0/0 0/0 .text
* execNoteOnGate__12JASSeqParserFP8JASTrackUlUlUlUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::execNoteOnGate(JASTrack* param_0, u32 param_1, u32 param_2, u32 param_3,
+// stack shenanigans
+#ifdef NONMATCHING
+s32 JASSeqParser::execNoteOnGate(JASTrack* param_0, u32 param_1, u32 param_2, u32 param_3,
+ u32 param_4) {
+ JASSeqCtrl* seqCtrl = param_0->getSeqCtrl();
+ u8 tmp = param_4;
+ int r31 = 0;
+ if (tmp >> 6 & 1) {
+ r31 |= 2;
+ }
+ if (tmp >> 7 & 1) {
+ r31 |= 1;
+ }
+ if (param_3 == 0) {
+ r31 |= 4;
+ }
+ int result = param_0->gateOn(param_1, param_2, param_3, r31);
+ if (param_3) {
+ seqCtrl->wait(param_3);
+ } else {
+ seqCtrl->waitNoteFinish();
+ }
+ return result;
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm s32 JASSeqParser::execNoteOnGate(JASTrack* param_0, u32 param_1, u32 param_2, u32 param_3,
u32 param_4) {
nofralloc
#include "asm/JSystem/JAudio2/JASSeqParser/execNoteOnGate__12JASSeqParserFP8JASTrackUlUlUlUl.s"
}
#pragma pop
+#endif
/* 80295540-80295570 28FE80 0030+00 1/0 0/0 0/0 .text
* execNoteOnMidi__12JASSeqParserFP8JASTrackUlUlUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::execNoteOnMidi(JASTrack* param_0, u32 param_1, u32 param_2, u32 param_3) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/execNoteOnMidi__12JASSeqParserFP8JASTrackUlUlUl.s"
+s32 JASSeqParser::execNoteOnMidi(JASTrack* param_0, u32 param_1, u32 param_2, u32 param_3) {
+ return param_0->noteOn(param_1, param_2, param_3);
}
-#pragma pop
/* 80295570-8029559C 28FEB0 002C+00 1/0 0/0 0/0 .text execNoteOff__12JASSeqParserFP8JASTrackUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::execNoteOff(JASTrack* param_0, u32 param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/execNoteOff__12JASSeqParserFP8JASTrackUl.s"
+s32 JASSeqParser::execNoteOff(JASTrack* param_0, u32 param_1) {
+ return param_0->noteOff(param_1, 0);
}
-#pragma pop
/* 8029559C-802955C8 28FEDC 002C+00 1/0 0/0 0/0 .text
* execCommand__12JASSeqParserFP8JASTrackM12JASSeqParserFPCvPvP8JASTrackPUl_lUlPUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::execCommand(JASTrack* param_0, s32 (JASSeqParser::*param_1)(JASTrack*, u32*),
+s32 JASSeqParser::execCommand(JASTrack* param_0, s32 (JASSeqParser::*param_1)(JASTrack*, u32*),
u32 param_2, u32* param_3) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/execCommand__12JASSeqParserFP8JASTrackM12JASSeqParserFPCvPvP8JASTrackPUl_lUlPUl.s"
+ return (this->*param_1)(param_0, param_3);
}
-#pragma pop
/* 802955C8-80295600 28FF08 0038+00 1/1 0/0 0/0 .text parseNoteOff__12JASSeqParserFP8JASTrackUc */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::parseNoteOff(JASTrack* param_0, u8 param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/parseNoteOff__12JASSeqParserFP8JASTrackUc.s"
+s32 JASSeqParser::parseNoteOff(JASTrack* param_0, u8 param_1) {
+ if (param_1 & 7) {
+ execNoteOff(param_0, param_1 & 7);
+ } else {
+
+ }
+ return 0;
}
-#pragma pop
/* 80295600-802956B0 28FF40 00B0+00 1/1 0/0 0/0 .text parseNoteOn__12JASSeqParserFP8JASTrackUc */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::parseNoteOn(JASTrack* param_0, u8 param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/parseNoteOn__12JASSeqParserFP8JASTrackUc.s"
+s32 JASSeqParser::parseNoteOn(JASTrack* param_0, u8 param_1) {
+ JASSeqCtrl* seqCtrl = param_0->getSeqCtrl();
+ u32 r28 = seqCtrl->readByte();
+ u32 r27 = seqCtrl->readByte();
+ if ((r28 & 7) == 0) {
+ execNoteOnGate(param_0, param_1, r27, seqCtrl->readMidiValue(), r28);
+ } else {
+ execNoteOnMidi(param_0, r28 & 7, param_1, r27);
+ }
+ return 0;
}
-#pragma pop
/* 802956B0-80295864 28FFF0 01B4+00 2/2 0/0 0/0 .text parseCommand__12JASSeqParserFP8JASTrackUcUs
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::parseCommand(JASTrack* param_0, u8 param_1, u16 param_2) {
+// ptmf stack
+#ifdef NONMATCHING
+s32 JASSeqParser::parseCommand(JASTrack* param_0, u8 cmd, u16 param_2) {
+ JASSeqCtrl* seqCtrl = param_0->getSeqCtrl();
+ CmdInfo* cmdInfo = NULL;
+ if (cmd != 0xb0) {
+ cmdInfo = &sCmdInfo[cmd - 0xa0];
+ } else {
+ cmdInfo = &sExtCmdInfo[seqCtrl->readByte() & 0xff];
+ }
+ u16 r28 = cmdInfo->field_0xe | param_2;
+ u32 stack_28[8];
+ for (int i = 0; i < cmdInfo->field_0xc; i++) {
+ int r27 = 0;
+ switch (r28 & 3) {
+ case 0:
+ r27 = seqCtrl->readByte();
+ break;
+ case 1:
+ r27 = seqCtrl->read16();
+ break;
+ case 2:
+ r27 = seqCtrl->read24();
+ break;
+ case 3:
+ r27 = readReg(param_0, seqCtrl->readByte());
+ break;
+ }
+ stack_28[i] = r27;
+ r28 >>= 2;
+ }
+ s32 (JASSeqParser::*ptr)(JASTrack*, u32*);
+ if (!ptr) {
+ return 0;
+ }
+ return execCommand(param_0, ptr, cmdInfo->field_0xc, stack_28);
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm s32 JASSeqParser::parseCommand(JASTrack* param_0, u8 param_1, u16 param_2) {
nofralloc
#include "asm/JSystem/JAudio2/JASSeqParser/parseCommand__12JASSeqParserFP8JASTrackUcUs.s"
}
#pragma pop
+#endif
/* 80295864-802958D4 2901A4 0070+00 1/1 0/0 0/0 .text parseRegCommand__12JASSeqParserFP8JASTracki
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::parseRegCommand(JASTrack* param_0, int param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/parseRegCommand__12JASSeqParserFP8JASTracki.s"
+s32 JASSeqParser::parseRegCommand(JASTrack* param_0, int param_1) {
+ JASSeqCtrl* seqCtrl = param_0->getSeqCtrl();
+ u8 r30 = seqCtrl->readByte();
+ u16 r29 = 0;
+ u16 r28 = 3;
+ for (int i = 0; i < param_1; i++) {
+ if (r30 & 0x80) {
+ r29 |= r28;
+ }
+ r30 <<= 1;
+ r28 <<= 2;
+ }
+ return parseCommand(param_0, seqCtrl->readByte(), r29);
}
-#pragma pop
/* 802958D4-80295950 290214 007C+00 1/0 0/0 0/0 .text parse__12JASSeqParserFP8JASTrack */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASSeqParser::parse(JASTrack* param_0) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/parse__12JASSeqParserFP8JASTrack.s"
-}
-#pragma pop
-
-/* 80295950-80296108 290290 07B8+00 0/0 1/0 0/0 .text __sinit_JASSeqParser_cpp */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void __sinit_JASSeqParser_cpp() {
- nofralloc
-#include "asm/JSystem/JAudio2/JASSeqParser/__sinit_JASSeqParser_cpp.s"
+s32 JASSeqParser::parse(JASTrack* param_0) {
+ u32 r31 = param_0->getSeqCtrl()->readByte();
+ s32 r30 = 0;
+ if ((r31 & 0x80) == 0) {
+ r30 = parseNoteOn(param_0, r31);
+ } else {
+ switch (r31 & 0xf0) {
+ case 0x80:
+ r30 = parseNoteOff(param_0, r31 & 0xf);
+ break;
+ case 0x90:
+ r30 = parseRegCommand(param_0, (r31 & 7) + 1);
+ break;
+ default:
+ r30 = parseCommand(param_0, r31, 0);
+ break;
+ }
+ }
+ return r30;
}
-#pragma pop
-
-#pragma push
-#pragma force_active on
-REGISTER_CTORS(0x80295950, __sinit_JASSeqParser_cpp);
-#pragma pop
-
-/* ############################################################################################## */
-/* 803C7650-803C7670 024770 0020+00 0/0 2/2 0/0 .data __vt__12JASSeqParser */
-SECTION_DATA extern void* __vt__12JASSeqParser[8] = {
- (void*)NULL /* RTTI */,
- (void*)NULL,
- (void*)__dt__12JASSeqParserFv,
- (void*)parse__12JASSeqParserFP8JASTrack,
- (void*)execNoteOnMidi__12JASSeqParserFP8JASTrackUlUlUl,
- (void*)execNoteOnGate__12JASSeqParserFP8JASTrackUlUlUlUl,
- (void*)execNoteOff__12JASSeqParserFP8JASTrackUl,
- (void*)execCommand__12JASSeqParserFP8JASTrackM12JASSeqParserFPCvPvP8JASTrackPUl_lUlPUl,
-};
-
-/* 8039B018-8039B018 027678 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
diff --git a/libs/JSystem/JAudio2/JASTrack.cpp b/libs/JSystem/JAudio2/JASTrack.cpp
index 86d4be276a..0a9122bd61 100644
--- a/libs/JSystem/JAudio2/JASTrack.cpp
+++ b/libs/JSystem/JAudio2/JASTrack.cpp
@@ -23,29 +23,6 @@ struct TNodeLinkList {
}; // namespace JGadget
-struct JASTrackPort {
- /* 8029354C */ void init();
- /* 8029357C */ void readImport(u32);
- /* 802935A0 */ void readExport(u32);
- /* 802935C4 */ void writeImport(u32, u16);
- /* 802935E8 */ void writeExport(u32, u16);
-};
-
-struct JASSeqCtrl {
- struct IntrType {};
-
- /* 802938BC */ JASSeqCtrl();
- /* 80293924 */ void init();
- /* 80293980 */ void start(void*, u32);
- /* 802939C4 */ void tickProc(JASTrack*);
- /* 80293ABC */ void interrupt(JASSeqCtrl::IntrType);
-};
-
-struct JASRegisterParam {
- /* 80293644 */ JASRegisterParam();
- /* 80293664 */ void init();
-};
-
template <typename A0>
struct JASMemPool_MultiThreaded {};
/* JASMemPool_MultiThreaded<JASTrack> */
@@ -442,7 +419,7 @@ asm void JASTrack::closeChild(u32 param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void JASTrack::openChild(u32 param_0) {
+asm JASTrack* JASTrack::openChild(u32 param_0) {
nofralloc
#include "asm/JSystem/JAudio2/JASTrack/openChild__8JASTrackFUl.s"
}
@@ -484,7 +461,7 @@ asm void JASTrack::channelStart(JASTrack::TChannelMgr* param_0, u32 param_1, u32
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void JASTrack::noteOn(u32 param_0, u32 param_1, u32 param_2) {
+asm int JASTrack::noteOn(u32 param_0, u32 param_1, u32 param_2) {
nofralloc
#include "asm/JSystem/JAudio2/JASTrack/noteOn__8JASTrackFUlUlUl.s"
}
@@ -501,7 +478,7 @@ SECTION_SDATA2 static f64 lit_954 = 4503599627370496.0 /* cast u32 to float */;
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void JASTrack::gateOn(u32 param_0, u32 param_1, f32 param_2, u32 param_3) {
+asm int JASTrack::gateOn(u32 param_0, u32 param_1, f32 param_2, u32 param_3) {
nofralloc
#include "asm/JSystem/JAudio2/JASTrack/gateOn__8JASTrackFUlUlfUl.s"
}
@@ -511,7 +488,7 @@ asm void JASTrack::gateOn(u32 param_0, u32 param_1, f32 param_2, u32 param_3) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void JASTrack::noteOff(u32 param_0, u16 param_1) {
+asm int JASTrack::noteOff(u32 param_0, u16 param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JASTrack/noteOff__8JASTrackFUlUs.s"
}
@@ -694,7 +671,7 @@ asm void JASTrack::setIIR(s16 const* param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void JASTrack::readPortSelf(u32 param_0) {
+asm u16 JASTrack::readPortSelf(u32 param_0) {
nofralloc
#include "asm/JSystem/JAudio2/JASTrack/readPortSelf__8JASTrackFUl.s"
}
@@ -724,7 +701,7 @@ asm void JASTrack::writePort(u32 param_0, u16 param_1) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void JASTrack::readPort(u32 param_0) {
+asm u16 JASTrack::readPort(u32 param_0) {
nofralloc
#include "asm/JSystem/JAudio2/JASTrack/readPort__8JASTrackFUl.s"
}
diff --git a/libs/JSystem/JAudio2/JASTrackPort.cpp b/libs/JSystem/JAudio2/JASTrackPort.cpp
index 1daa7dc839..beeaaf5488 100644
--- a/libs/JSystem/JAudio2/JASTrackPort.cpp
+++ b/libs/JSystem/JAudio2/JASTrackPort.cpp
@@ -4,108 +4,46 @@
//
#include "JSystem/JAudio2/JASTrackPort.h"
-#include "dolphin/types.h"
-
-//
-// Types:
-//
-
-struct JASTrackPort {
- /* 8029354C */ void init();
- /* 8029357C */ void readImport(u32);
- /* 802935A0 */ void readExport(u32);
- /* 802935C4 */ void writeImport(u32, u16);
- /* 802935E8 */ void writeExport(u32, u16);
- /* 8029360C */ void checkImport(u32) const;
- /* 80293628 */ void checkExport(u32) const;
-};
-
-//
-// Forward References:
-//
-
-extern "C" void init__12JASTrackPortFv();
-extern "C" void readImport__12JASTrackPortFUl();
-extern "C" void readExport__12JASTrackPortFUl();
-extern "C" void writeImport__12JASTrackPortFUlUs();
-extern "C" void writeExport__12JASTrackPortFUlUs();
-extern "C" void checkImport__12JASTrackPortCFUl();
-extern "C" void checkExport__12JASTrackPortCFUl();
-
-//
-// External References:
-//
-
-//
-// Declarations:
-//
/* 8029354C-8029357C 28DE8C 0030+00 0/0 1/1 0/0 .text init__12JASTrackPortFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASTrackPort::init() {
- nofralloc
-#include "asm/JSystem/JAudio2/JASTrackPort/init__12JASTrackPortFv.s"
+void JASTrackPort::init() {
+ for (int i = 0; i < 16; i++) {
+ field_0x4[i] = 0;
+ }
+ field_0x0 = 0;
+ field_0x2 = 0;
}
-#pragma pop
/* 8029357C-802935A0 28DEBC 0024+00 0/0 1/1 0/0 .text readImport__12JASTrackPortFUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASTrackPort::readImport(u32 param_0) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASTrackPort/readImport__12JASTrackPortFUl.s"
+u16 JASTrackPort::readImport(u32 port_num) {
+ field_0x0 = field_0x0 & ~(1 << port_num);
+ return field_0x4[port_num];
}
-#pragma pop
/* 802935A0-802935C4 28DEE0 0024+00 0/0 1/1 0/0 .text readExport__12JASTrackPortFUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASTrackPort::readExport(u32 param_0) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASTrackPort/readExport__12JASTrackPortFUl.s"
+u16 JASTrackPort::readExport(u32 port_num) {
+ field_0x2 = field_0x2 & ~(1 << port_num);
+ return field_0x4[port_num];
}
-#pragma pop
/* 802935C4-802935E8 28DF04 0024+00 0/0 1/1 0/0 .text writeImport__12JASTrackPortFUlUs */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASTrackPort::writeImport(u32 param_0, u16 param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASTrackPort/writeImport__12JASTrackPortFUlUs.s"
+void JASTrackPort::writeImport(u32 port_num, u16 param_1) {
+ field_0x0 = field_0x0 | (1 << port_num);
+ field_0x4[port_num] = param_1;
}
-#pragma pop
/* 802935E8-8029360C 28DF28 0024+00 0/0 1/1 0/0 .text writeExport__12JASTrackPortFUlUs */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASTrackPort::writeExport(u32 param_0, u16 param_1) {
- nofralloc
-#include "asm/JSystem/JAudio2/JASTrackPort/writeExport__12JASTrackPortFUlUs.s"
+void JASTrackPort::writeExport(u32 port_num, u16 param_1) {
+ field_0x2 = field_0x2 | (1 << port_num);
+ field_0x4[port_num] = param_1;
}
-#pragma pop
/* 8029360C-80293628 28DF4C 001C+00 0/0 1/1 0/0 .text checkImport__12JASTrackPortCFUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASTrackPort::checkImport(u32 param_0) const {
- nofralloc
-#include "asm/JSystem/JAudio2/JASTrackPort/checkImport__12JASTrackPortCFUl.s"
+u32 JASTrackPort::checkImport(u32 param_0) const {
+ return field_0x0 & 1 << param_0 ? 1 : 0;
}
-#pragma pop
/* 80293628-80293644 28DF68 001C+00 0/0 1/1 0/0 .text checkExport__12JASTrackPortCFUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void JASTrackPort::checkExport(u32 param_0) const {
- nofralloc
-#include "asm/JSystem/JAudio2/JASTrackPort/checkExport__12JASTrackPortCFUl.s"
+u32 JASTrackPort::checkExport(u32 param_0) const {
+ return field_0x2 & 1 << param_0 ? 1 : 0;
}
-#pragma pop