mirror of https://github.com/zeldaret/tp.git
Small improvements to JASSeqParser (#1906)
This commit is contained in:
parent
ce78c773b7
commit
245c839464
|
|
@ -1,21 +0,0 @@
|
|||
lbl_802943CC:
|
||||
/* 802943CC 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 802943D0 7C 08 02 A6 */ mflr r0
|
||||
/* 802943D4 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 802943D8 80 65 00 00 */ lwz r3, 0(r5)
|
||||
/* 802943DC 54 60 08 3C */ slwi r0, r3, 1
|
||||
/* 802943E0 7C 63 02 14 */ add r3, r3, r0
|
||||
/* 802943E4 80 04 00 00 */ lwz r0, 0(r4)
|
||||
/* 802943E8 80 A5 00 04 */ lwz r5, 4(r5)
|
||||
/* 802943EC 7C 63 02 14 */ add r3, r3, r0
|
||||
/* 802943F0 38 03 FF FF */ addi r0, r3, -1
|
||||
/* 802943F4 7C 05 00 2E */ lwzx r0, r5, r0
|
||||
/* 802943F8 54 00 02 3E */ clrlwi r0, r0, 8
|
||||
/* 802943FC 7C 83 23 78 */ mr r3, r4
|
||||
/* 80294400 7C 04 03 78 */ mr r4, r0
|
||||
/* 80294404 48 00 1D 89 */ bl call__12JASSeqReaderFUl
|
||||
/* 80294408 38 60 00 00 */ li r3, 0
|
||||
/* 8029440C 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 80294410 7C 08 03 A6 */ mtlr r0
|
||||
/* 80294414 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80294418 4E 80 00 20 */ blr
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
lbl_80294398:
|
||||
/* 80294398 80 65 00 00 */ lwz r3, 0(r5)
|
||||
/* 8029439C 54 60 08 3C */ slwi r0, r3, 1
|
||||
/* 802943A0 7C 63 02 14 */ add r3, r3, r0
|
||||
/* 802943A4 80 C4 00 00 */ lwz r6, 0(r4)
|
||||
/* 802943A8 80 A5 00 04 */ lwz r5, 4(r5)
|
||||
/* 802943AC 7C 63 32 14 */ add r3, r3, r6
|
||||
/* 802943B0 38 03 FF FF */ addi r0, r3, -1
|
||||
/* 802943B4 7C 05 00 2E */ lwzx r0, r5, r0
|
||||
/* 802943B8 54 00 02 3E */ clrlwi r0, r0, 8
|
||||
/* 802943BC 7C 06 02 14 */ add r0, r6, r0
|
||||
/* 802943C0 90 04 00 04 */ stw r0, 4(r4)
|
||||
/* 802943C4 38 60 00 00 */ li r3, 0
|
||||
/* 802943C8 4E 80 00 20 */ blr
|
||||
|
|
@ -1,95 +0,0 @@
|
|||
lbl_80294DA8:
|
||||
/* 80294DA8 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 80294DAC 7C 08 02 A6 */ mflr r0
|
||||
/* 80294DB0 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 80294DB4 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 80294DB8 48 0C D4 21 */ bl _savegpr_28
|
||||
/* 80294DBC 7C 7C 1B 78 */ mr r28, r3
|
||||
/* 80294DC0 7C 9D 23 78 */ mr r29, r4
|
||||
/* 80294DC4 83 E5 00 04 */ lwz r31, 4(r5)
|
||||
/* 80294DC8 83 C5 00 08 */ lwz r30, 8(r5)
|
||||
/* 80294DCC 80 05 00 00 */ lwz r0, 0(r5)
|
||||
/* 80294DD0 28 00 00 0A */ cmplwi r0, 0xa
|
||||
/* 80294DD4 41 81 01 04 */ bgt lbl_80294ED8
|
||||
/* 80294DD8 3C A0 80 3C */ lis r5, lit_1124@ha /* 0x803C7624@ha */
|
||||
/* 80294DDC 38 A5 76 24 */ addi r5, r5, lit_1124@l /* 0x803C7624@l */
|
||||
/* 80294DE0 54 00 10 3A */ slwi r0, r0, 2
|
||||
/* 80294DE4 7C 05 00 2E */ lwzx r0, r5, r0
|
||||
/* 80294DE8 7C 09 03 A6 */ mtctr r0
|
||||
/* 80294DEC 4E 80 04 20 */ bctr
|
||||
/* 80294DF0 7F E5 FB 78 */ mr r5, r31
|
||||
/* 80294DF4 4B FF F1 D5 */ bl readReg__12JASSeqParserCFP8JASTrackUl
|
||||
/* 80294DF8 7F DE 1A 14 */ add r30, r30, r3
|
||||
/* 80294DFC 48 00 00 E4 */ b lbl_80294EE0
|
||||
/* 80294E00 7F E5 FB 78 */ mr r5, r31
|
||||
/* 80294E04 4B FF F1 C5 */ bl readReg__12JASSeqParserCFP8JASTrackUl
|
||||
/* 80294E08 7F DE 18 50 */ subf r30, r30, r3
|
||||
/* 80294E0C 48 00 00 D4 */ b lbl_80294EE0
|
||||
/* 80294E10 7F E5 FB 78 */ mr r5, r31
|
||||
/* 80294E14 4B FF F1 B5 */ bl readReg__12JASSeqParserCFP8JASTrackUl
|
||||
/* 80294E18 7F DE 18 50 */ subf r30, r30, r3
|
||||
/* 80294E1C 3B E0 00 03 */ li r31, 3
|
||||
/* 80294E20 48 00 00 C0 */ b lbl_80294EE0
|
||||
/* 80294E24 7F E5 FB 78 */ mr r5, r31
|
||||
/* 80294E28 4B FF F1 A1 */ bl readReg__12JASSeqParserCFP8JASTrackUl
|
||||
/* 80294E2C 7F DE 19 D6 */ mullw r30, r30, r3
|
||||
/* 80294E30 3B E0 00 21 */ li r31, 0x21
|
||||
/* 80294E34 48 00 00 AC */ b lbl_80294EE0
|
||||
/* 80294E38 7F E5 FB 78 */ mr r5, r31
|
||||
/* 80294E3C 4B FF F1 8D */ bl readReg__12JASSeqParserCFP8JASTrackUl
|
||||
/* 80294E40 7F DE 18 38 */ and r30, r30, r3
|
||||
/* 80294E44 48 00 00 9C */ b lbl_80294EE0
|
||||
/* 80294E48 7F E5 FB 78 */ mr r5, r31
|
||||
/* 80294E4C 4B FF F1 7D */ bl readReg__12JASSeqParserCFP8JASTrackUl
|
||||
/* 80294E50 7F DE 1B 78 */ or r30, r30, r3
|
||||
/* 80294E54 48 00 00 8C */ b lbl_80294EE0
|
||||
/* 80294E58 7F E5 FB 78 */ mr r5, r31
|
||||
/* 80294E5C 4B FF F1 6D */ bl readReg__12JASSeqParserCFP8JASTrackUl
|
||||
/* 80294E60 7F DE 1A 78 */ xor r30, r30, r3
|
||||
/* 80294E64 48 00 00 7C */ b lbl_80294EE0
|
||||
/* 80294E68 88 0D 8C C4 */ lbz r0, data_80451244(r13)
|
||||
/* 80294E6C 7C 00 07 75 */ extsb. r0, r0
|
||||
/* 80294E70 40 82 00 18 */ bne lbl_80294E88
|
||||
/* 80294E74 38 6D 8C C8 */ la r3, oRandom(r13) /* 80451248-_SDA_BASE_ */
|
||||
/* 80294E78 38 80 00 00 */ li r4, 0
|
||||
/* 80294E7C 48 0A 4C 69 */ bl __ct__Q25JMath13TRandom_fast_FUl
|
||||
/* 80294E80 38 00 00 01 */ li r0, 1
|
||||
/* 80294E84 98 0D 8C C4 */ stb r0, data_80451244(r13)
|
||||
lbl_80294E88:
|
||||
/* 80294E88 80 8D 8C C8 */ lwz r4, oRandom(r13)
|
||||
/* 80294E8C 3C 60 00 19 */ lis r3, 0x0019 /* 0x0019660D@ha */
|
||||
/* 80294E90 38 03 66 0D */ addi r0, r3, 0x660D /* 0x0019660D@l */
|
||||
/* 80294E94 7C 64 01 D6 */ mullw r3, r4, r0
|
||||
/* 80294E98 3C 63 3C 6F */ addis r3, r3, 0x3c6f
|
||||
/* 80294E9C 38 03 F3 5F */ addi r0, r3, -3233
|
||||
/* 80294EA0 90 0D 8C C8 */ stw r0, oRandom(r13)
|
||||
/* 80294EA4 54 03 BA 7E */ srwi r3, r0, 9
|
||||
/* 80294EA8 7C 03 F3 96 */ divwu r0, r3, r30
|
||||
/* 80294EAC 7C 00 F1 D6 */ mullw r0, r0, r30
|
||||
/* 80294EB0 7F C0 18 50 */ subf r30, r0, r3
|
||||
/* 80294EB4 48 00 00 2C */ b lbl_80294EE0
|
||||
/* 80294EB8 7F E5 FB 78 */ mr r5, r31
|
||||
/* 80294EBC 4B FF F1 0D */ bl readReg__12JASSeqParserCFP8JASTrackUl
|
||||
/* 80294EC0 7C 7E F0 30 */ slw r30, r3, r30
|
||||
/* 80294EC4 48 00 00 1C */ b lbl_80294EE0
|
||||
/* 80294EC8 7F E5 FB 78 */ mr r5, r31
|
||||
/* 80294ECC 4B FF F0 FD */ bl readReg__12JASSeqParserCFP8JASTrackUl
|
||||
/* 80294ED0 7C 7E F4 30 */ srw r30, r3, r30
|
||||
/* 80294ED4 48 00 00 0C */ b lbl_80294EE0
|
||||
lbl_80294ED8:
|
||||
/* 80294ED8 38 60 00 00 */ li r3, 0
|
||||
/* 80294EDC 48 00 00 1C */ b lbl_80294EF8
|
||||
lbl_80294EE0:
|
||||
/* 80294EE0 7F 83 E3 78 */ mr r3, r28
|
||||
/* 80294EE4 7F A4 EB 78 */ mr r4, r29
|
||||
/* 80294EE8 7F E5 FB 78 */ mr r5, r31
|
||||
/* 80294EEC 7F C6 F3 78 */ mr r6, r30
|
||||
/* 80294EF0 4B FF EE D5 */ bl writeReg__12JASSeqParserFP8JASTrackUlUl
|
||||
/* 80294EF4 38 60 00 00 */ li r3, 0
|
||||
lbl_80294EF8:
|
||||
/* 80294EF8 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 80294EFC 48 0C D3 29 */ bl _restgpr_28
|
||||
/* 80294F00 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 80294F04 7C 08 03 A6 */ mtlr r0
|
||||
/* 80294F08 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 80294F0C 4E 80 00 20 */ blr
|
||||
|
|
@ -1,62 +0,0 @@
|
|||
lbl_80293CF4:
|
||||
/* 80293CF4 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80293CF8 7C 08 02 A6 */ mflr r0
|
||||
/* 80293CFC 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80293D00 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 80293D04 7C BF 2B 78 */ mr r31, r5
|
||||
/* 80293D08 38 A0 00 03 */ li r5, 3
|
||||
/* 80293D0C 48 00 02 BD */ bl readReg__12JASSeqParserCFP8JASTrackUl
|
||||
/* 80293D10 54 64 04 3E */ clrlwi r4, r3, 0x10
|
||||
/* 80293D14 2C 1F 00 03 */ cmpwi r31, 3
|
||||
/* 80293D18 41 82 00 50 */ beq lbl_80293D68
|
||||
/* 80293D1C 40 80 00 1C */ bge lbl_80293D38
|
||||
/* 80293D20 2C 1F 00 01 */ cmpwi r31, 1
|
||||
/* 80293D24 41 82 00 2C */ beq lbl_80293D50
|
||||
/* 80293D28 40 80 00 34 */ bge lbl_80293D5C
|
||||
/* 80293D2C 2C 1F 00 00 */ cmpwi r31, 0
|
||||
/* 80293D30 40 80 00 18 */ bge lbl_80293D48
|
||||
/* 80293D34 48 00 00 78 */ b lbl_80293DAC
|
||||
lbl_80293D38:
|
||||
/* 80293D38 2C 1F 00 05 */ cmpwi r31, 5
|
||||
/* 80293D3C 41 82 00 58 */ beq lbl_80293D94
|
||||
/* 80293D40 40 80 00 6C */ bge lbl_80293DAC
|
||||
/* 80293D44 48 00 00 34 */ b lbl_80293D78
|
||||
lbl_80293D48:
|
||||
/* 80293D48 38 60 00 01 */ li r3, 1
|
||||
/* 80293D4C 48 00 00 64 */ b lbl_80293DB0
|
||||
lbl_80293D50:
|
||||
/* 80293D50 7C 80 00 34 */ cntlzw r0, r4
|
||||
/* 80293D54 54 03 D9 7E */ srwi r3, r0, 5
|
||||
/* 80293D58 48 00 00 58 */ b lbl_80293DB0
|
||||
lbl_80293D5C:
|
||||
/* 80293D5C 30 04 FF FF */ addic r0, r4, -1
|
||||
/* 80293D60 7C 60 21 10 */ subfe r3, r0, r4
|
||||
/* 80293D64 48 00 00 4C */ b lbl_80293DB0
|
||||
lbl_80293D68:
|
||||
/* 80293D68 20 04 00 01 */ subfic r0, r4, 1
|
||||
/* 80293D6C 7C 00 00 34 */ cntlzw r0, r0
|
||||
/* 80293D70 54 03 D9 7E */ srwi r3, r0, 5
|
||||
/* 80293D74 48 00 00 3C */ b lbl_80293DB0
|
||||
lbl_80293D78:
|
||||
/* 80293D78 3C 60 00 01 */ lis r3, 0x0001 /* 0x00008000@ha */
|
||||
/* 80293D7C 38 03 80 00 */ addi r0, r3, 0x8000 /* 0x00008000@l */
|
||||
/* 80293D80 54 00 04 3E */ clrlwi r0, r0, 0x10
|
||||
/* 80293D84 38 60 FF FF */ li r3, -1
|
||||
/* 80293D88 7C 00 20 10 */ subfc r0, r0, r4
|
||||
/* 80293D8C 7C 63 01 90 */ subfze r3, r3
|
||||
/* 80293D90 48 00 00 20 */ b lbl_80293DB0
|
||||
lbl_80293D94:
|
||||
/* 80293D94 3C 60 00 01 */ lis r3, 0x0001 /* 0x00008000@ha */
|
||||
/* 80293D98 38 03 80 00 */ addi r0, r3, 0x8000 /* 0x00008000@l */
|
||||
/* 80293D9C 54 00 04 3E */ clrlwi r0, r0, 0x10
|
||||
/* 80293DA0 7C 00 20 50 */ subf r0, r0, r4
|
||||
/* 80293DA4 54 03 0F FE */ srwi r3, r0, 0x1f
|
||||
/* 80293DA8 48 00 00 08 */ b lbl_80293DB0
|
||||
lbl_80293DAC:
|
||||
/* 80293DAC 38 60 00 00 */ li r3, 0
|
||||
lbl_80293DB0:
|
||||
/* 80293DB0 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 80293DB4 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 80293DB8 7C 08 03 A6 */ mtlr r0
|
||||
/* 80293DBC 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80293DC0 4E 80 00 20 */ blr
|
||||
|
|
@ -153,8 +153,6 @@ extern "C" extern u8 const __ptmf_null[12 + 4 /* padding */];
|
|||
|
||||
/* 80293CF4-80293DC4 28E634 00D0+00 3/3 0/0 0/0 .text
|
||||
* conditionCheck__12JASSeqParserFP8JASTrackQ212JASSeqParser15BranchCondition */
|
||||
// regswap
|
||||
#ifdef NONMATCHING
|
||||
bool JASSeqParser::conditionCheck(JASTrack* param_0, JASSeqParser::BranchCondition param_1) {
|
||||
u16 reg = readReg(param_0, 3);
|
||||
switch (param_1) {
|
||||
|
|
@ -167,23 +165,13 @@ bool JASSeqParser::conditionCheck(JASTrack* param_0, JASSeqParser::BranchConditi
|
|||
case 3:
|
||||
return reg == 1;
|
||||
case 4:
|
||||
return reg <= 0x8000;
|
||||
return 0x8000 <= reg;
|
||||
case 5:
|
||||
return reg > 0x8000;
|
||||
return 0x8000 > reg;
|
||||
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
|
||||
#endif
|
||||
|
||||
/* 803C5E80-803C6480 022FA0 0600+00 1/2 0/0 0/0 .data sCmdInfo__12JASSeqParser */
|
||||
SECTION_DATA JASSeqParser::CmdInfo JASSeqParser::sCmdInfo[96] = {
|
||||
|
|
@ -544,7 +532,7 @@ 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 */
|
||||
// extra mr instrucions
|
||||
// Matches with literals
|
||||
#ifdef NONMATCHING
|
||||
u32 JASSeqParser::readReg(JASTrack* param_0, u32 param_1) const {
|
||||
if (param_1 < 0x40) {
|
||||
|
|
@ -568,8 +556,7 @@ u32 JASSeqParser::readReg(JASTrack* param_0, u32 param_1) const {
|
|||
case 0x4d:
|
||||
case 0x4e:
|
||||
case 0x4f:
|
||||
result = param_0->getPort(param_1 - 0x40);
|
||||
break;
|
||||
return param_0->getPort(param_1 - 0x40);
|
||||
case 0x60:
|
||||
u16 r27 = 1;
|
||||
for (int i = 0; i < 16; i++) {
|
||||
|
|
@ -581,65 +568,45 @@ u32 JASSeqParser::readReg(JASTrack* param_0, u32 param_1) const {
|
|||
}
|
||||
break;
|
||||
case 0x61:
|
||||
result = param_0->getSeqCtrl()->getSeqReader()->getLoopCount();
|
||||
break;
|
||||
return param_0->getSeqCtrl()->getSeqReader()->getLoopCount();
|
||||
case 0x62:
|
||||
result = param_0->getTimebase();
|
||||
break;
|
||||
return param_0->getTimebase();
|
||||
case 0x63:
|
||||
result = param_0->getTranspose();
|
||||
break;
|
||||
return param_0->mTranspose;
|
||||
case 0x64:
|
||||
result = param_0->getBendSense();
|
||||
break;
|
||||
return param_0->getBendSense();
|
||||
case 0x65:
|
||||
result = param_0->getGateRate();
|
||||
break;
|
||||
return param_0->getGateRate();
|
||||
case 0x66:
|
||||
result = param_0->getSkipSample();
|
||||
break;
|
||||
return param_0->getSkipSample();
|
||||
case 0x67:
|
||||
result = param_0->getBankNumber();
|
||||
break;
|
||||
return param_0->getBankNumber();
|
||||
case 0x68:
|
||||
result = param_0->getProgNumber();
|
||||
break;
|
||||
return param_0->getProgNumber();
|
||||
case 0x69:
|
||||
result = param_0->getPanPower() * 32767.0f;
|
||||
break;
|
||||
return param_0->getPanPower() * 32767.0f;
|
||||
case 0x6a:
|
||||
result = param_0->getReleasePrio() | param_0->getNoteOnPrio();
|
||||
break;
|
||||
return param_0->getReleasePrio() | param_0->getNoteOnPrio();
|
||||
case 0x6b:
|
||||
result = param_0->getNoteOnPrio();
|
||||
break;
|
||||
return param_0->getNoteOnPrio();
|
||||
case 0x6c:
|
||||
result = param_0->getReleasePrio();
|
||||
break;
|
||||
return param_0->getReleasePrio();
|
||||
case 0x6d:
|
||||
result = param_0->getDirectRelease();
|
||||
break;
|
||||
return param_0->getDirectRelease();
|
||||
case 0x6e:
|
||||
result = param_0->getVibDepth() * 1524.0f;
|
||||
break;
|
||||
return param_0->getVibDepth() * 1524.0f;
|
||||
case 0x6f:
|
||||
result = param_0->getVibDepth() * 12192.0f;
|
||||
break;
|
||||
return param_0->getVibDepth() * 12192.0f;
|
||||
case 0x70:
|
||||
result = param_0->getTremDepth() * 256.0f;
|
||||
break;
|
||||
return param_0->getTremDepth() * 256.0f;
|
||||
case 0x71:
|
||||
result = param_0->getVibPitch() * 64.0f;
|
||||
break;
|
||||
return param_0->getVibPitch() * 64.0f;
|
||||
case 0x72:
|
||||
result = param_0->getTremPitch() * 64.0f;
|
||||
break;
|
||||
return param_0->getTremPitch() * 64.0f;
|
||||
case 0x73:
|
||||
result = param_0->getVibDelay();
|
||||
break;
|
||||
return param_0->getVibDelay();
|
||||
case 0x74:
|
||||
result = param_0->getTremDelay();
|
||||
break;
|
||||
return param_0->getTremDelay();
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
@ -724,43 +691,23 @@ s32 JASSeqParser::cmdJmpF(JASTrack* param_0, u32* param_1) {
|
|||
}
|
||||
|
||||
/* 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) {
|
||||
u32 uVar1 = param_1[0];
|
||||
uVar1 += uVar1 * 2;
|
||||
JASSeqCtrl* seqCtrl = param_0->getSeqCtrl();
|
||||
seqCtrl->jump(seqCtrl->get24(param_1[1] + param_1[0] * 2 + param_1[0]));
|
||||
seqCtrl->jump(seqCtrl->get24(param_1[1] + uVar1));
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
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]));
|
||||
u32 uVar1 = param_1[0];
|
||||
uVar1 += uVar1 * 2;
|
||||
seqCtrl->call(seqCtrl->get24(param_1[1] + uVar1));
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
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 */
|
||||
s32 JASSeqParser::cmdLoopS(JASTrack* param_0, u32* param_1) {
|
||||
|
|
@ -1151,31 +1098,7 @@ asm s32 JASSeqParser::cmdParamEI(JASTrack* param_0, u32* param_1) {
|
|||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803C7624-803C7650 -00001 002C+00 1/1 0/0 0/0 .data @1124 */
|
||||
SECTION_DATA static void* lit_1124[11] = {
|
||||
(void*)(((char*)cmdReg__12JASSeqParserFP8JASTrackPUl) + 0x138),
|
||||
(void*)(((char*)cmdReg__12JASSeqParserFP8JASTrackPUl) + 0x48),
|
||||
(void*)(((char*)cmdReg__12JASSeqParserFP8JASTrackPUl) + 0x58),
|
||||
(void*)(((char*)cmdReg__12JASSeqParserFP8JASTrackPUl) + 0x68),
|
||||
(void*)(((char*)cmdReg__12JASSeqParserFP8JASTrackPUl) + 0x7C),
|
||||
(void*)(((char*)cmdReg__12JASSeqParserFP8JASTrackPUl) + 0x90),
|
||||
(void*)(((char*)cmdReg__12JASSeqParserFP8JASTrackPUl) + 0xA0),
|
||||
(void*)(((char*)cmdReg__12JASSeqParserFP8JASTrackPUl) + 0xB0),
|
||||
(void*)(((char*)cmdReg__12JASSeqParserFP8JASTrackPUl) + 0xC0),
|
||||
(void*)(((char*)cmdReg__12JASSeqParserFP8JASTrackPUl) + 0x110),
|
||||
(void*)(((char*)cmdReg__12JASSeqParserFP8JASTrackPUl) + 0x120),
|
||||
};
|
||||
|
||||
/* 80451244-80451248 000744 0004+00 1/1 0/0 0/0 .sbss None */
|
||||
static u8 data_80451244[4];
|
||||
|
||||
/* 80451248-80451250 000748 0004+04 1/1 0/0 0/0 .sbss oRandom$1099 */
|
||||
static u8 oRandom[4 + 4 /* padding */];
|
||||
|
||||
/* 80294DA8-80294F10 28F6E8 0168+00 3/0 0/0 0/0 .text cmdReg__12JASSeqParserFP8JASTrackPUl */
|
||||
// mullw operand flipped
|
||||
#ifdef NONMATCHING
|
||||
s32 JASSeqParser::cmdReg(JASTrack* param_0, u32* param_1) {
|
||||
u32 r29 = param_1[1];
|
||||
u32 r30 = param_1[2];
|
||||
|
|
@ -1208,7 +1131,7 @@ s32 JASSeqParser::cmdReg(JASTrack* param_0, u32* param_1) {
|
|||
case 8:
|
||||
static JMath::TRandom_fast_ oRandom(0);
|
||||
u32 tmp = oRandom.get_bit32() >> 9;
|
||||
r30 = tmp - tmp / r30 * r30;
|
||||
r30 = tmp % r30;
|
||||
break;
|
||||
case 9:
|
||||
r30 = readReg(param_0, r29) << r30;
|
||||
|
|
@ -1222,16 +1145,6 @@ s32 JASSeqParser::cmdReg(JASTrack* param_0, u32* param_1) {
|
|||
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 */
|
||||
s32 JASSeqParser::cmdRegLoad(JASTrack* param_0, u32* param_1) {
|
||||
|
|
@ -1256,7 +1169,7 @@ s32 JASSeqParser::cmdRegUni(JASTrack* param_0, u32* param_1) {
|
|||
|
||||
/* 80294FB4-80295088 28F8F4 00D4+00 1/0 0/0 0/0 .text cmdRegTblLoad__12JASSeqParserFP8JASTrackPUl
|
||||
*/
|
||||
// case 12, case 14
|
||||
// case 12
|
||||
#ifdef NONMATCHING
|
||||
s32 JASSeqParser::cmdRegTblLoad(JASTrack* param_0, u32* param_1) {
|
||||
JASSeqCtrl* seqCtrl = param_0->getSeqCtrl();
|
||||
|
|
@ -1272,7 +1185,8 @@ s32 JASSeqParser::cmdRegTblLoad(JASTrack* param_0, u32* param_1) {
|
|||
r27 = seqCtrl->get16(p2 + p3 * 2);
|
||||
break;
|
||||
case 14:
|
||||
r27 = seqCtrl->get24(p2 + p3 * 2 + p3);
|
||||
p3 += p3 *2;
|
||||
r27 = seqCtrl->get24(p2 + p3);
|
||||
break;
|
||||
case 15:
|
||||
r27 = seqCtrl->get32(p2 + p3 * 4);
|
||||
|
|
@ -1475,7 +1389,7 @@ s32 JASSeqParser::parseNoteOn(JASTrack* param_0, u8 param_1) {
|
|||
|
||||
/* 802956B0-80295864 28FFF0 01B4+00 2/2 0/0 0/0 .text parseCommand__12JASSeqParserFP8JASTrackUcUs
|
||||
*/
|
||||
// ptmf stack
|
||||
// u16 bit or
|
||||
#ifdef NONMATCHING
|
||||
s32 JASSeqParser::parseCommand(JASTrack* param_0, u8 cmd, u16 param_2) {
|
||||
JASSeqCtrl* seqCtrl = param_0->getSeqCtrl();
|
||||
|
|
@ -1506,7 +1420,7 @@ s32 JASSeqParser::parseCommand(JASTrack* param_0, u8 cmd, u16 param_2) {
|
|||
stack_28[i] = r27;
|
||||
r28 >>= 2;
|
||||
}
|
||||
s32 (JASSeqParser::*ptr)(JASTrack*, u32*);
|
||||
s32 (JASSeqParser::*ptr)(JASTrack*, u32*) = cmdInfo->field_0x0;
|
||||
if (!ptr) {
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue