diff options
| author | Jcw87 <Jcw87@users.noreply.github.com> | 2023-09-01 01:55:46 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-09-01 11:55:46 +0300 |
| commit | 2d45b68231560eaf0001914c8f2da4bd81f9dd59 (patch) | |
| tree | 1ea5d930006125c74a8cbf65337c539158eca0ce /libs | |
| parent | 6c4509ceed79f74c77e3b05c4f6e890063b16a26 (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.cpp | 194 | ||||
| -rw-r--r-- | libs/JSystem/JAudio2/JASSeqCtrl.cpp | 74 | ||||
| -rw-r--r-- | libs/JSystem/JAudio2/JASSeqParser.cpp | 2441 | ||||
| -rw-r--r-- | libs/JSystem/JAudio2/JASTrack.cpp | 35 | ||||
| -rw-r--r-- | libs/JSystem/JAudio2/JASTrackPort.cpp | 106 |
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 |
