Fix some JASSeqParser.cpp

This commit is contained in:
HeartPiece 2024-01-25 20:33:30 +11:00
parent db0346b8eb
commit 1adbebe017
4 changed files with 45 additions and 610 deletions

View File

@ -51,10 +51,10 @@
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JStudio/fvb.cpp">JStudio/fvb.cpp</a> | 37460 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JParticle/JPAParticle.cpp">JParticle/JPAParticle.cpp</a> | 39432 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J2D/J2DMaterialFactory.cpp">J2D/J2DMaterialFactory.cpp</a> | 39928 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JAudio/JSystem/JAS/JASAramStream.cpp">JAudio//JAS/JASAramStream.cpp</a> | 40005 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DMaterialFactory_v21.cpp">J3D/J3DMaterialFactory_v21.cpp</a> | 41204 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DShapeMtx.cpp">J3D/J3DShapeMtx.cpp</a> | 42377 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DTevs.cpp">J3D/J3DTevs.cpp</a> | 44120 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DAnimation.cpp">J3D/J3DAnimation.cpp</a> | 46665 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DModelLoader.cpp">J3D/J3DModelLoader.cpp</a> | 47976 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JMessage/processor.cpp">JMessage/processor.cpp</a> | 49155 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JAudio/JSystem/JAS/JASSeqParser.cpp">JAudio//JAS/JASSeqParser.cpp</a> | 49844 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JUtility/JUTGamePad.cpp">JUtility/JUTGamePad.cpp</a> | 52317 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JAudio/JSystem/JAI/JAIStreamMgr.cpp">JAudio//JAI/JAIStreamMgr.cpp</a> | 62631 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JAudio/JSystem/JAI/JAISeMgr.cpp">JAudio//JAI/JAISeMgr.cpp</a> | 68579 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JAudio/JSystem/JAS/JASSeqParser.cpp">JAudio//JAS/JASSeqParser.cpp</a> | 43330 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DTevs.cpp">J3D/J3DTevs.cpp</a> | 44120 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DAnimation.cpp">J3D/J3DAnimation.cpp</a> | 46665 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DModelLoader.cpp">J3D/J3DModelLoader.cpp</a> | 47976 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JMessage/processor.cpp">JMessage/processor.cpp</a> | 49155 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JUtility/JUTGamePad.cpp">JUtility/JUTGamePad.cpp</a> | 52317 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JAudio/JSystem/JAI/JAISeMgr.cpp">JAudio//JAI/JAISeMgr.cpp</a> | 61150 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JAudio/JSystem/JAI/JAIStreamMgr.cpp">JAudio//JAI/JAIStreamMgr.cpp</a> | 62631 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JParticle/JPAFieldBlock.cpp">JParticle/JPAFieldBlock.cpp</a> | 69307 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J2D/J2DWindowEx.cpp">J2D/J2DWindowEx.cpp</a> | 72267 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JAudio/JSystem/JAI/JAISound.cpp">JAudio//JAI/JAISound.cpp</a> | 79855 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JParticle/JPAResource.cpp">JParticle/JPAResource.cpp</a> | 81389 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DMaterialFactory.cpp">J3D/J3DMaterialFactory.cpp</a> | 83566 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JAudio/JSystem/JAS/JASTrack.cpp">JAudio//JAS/JASTrack.cpp</a> | 83923 |

View File

@ -54,6 +54,7 @@ struct JAIBasic {
static u16 setParameterSeqSync(JASTrack*, u16);
static JAIBasic* getInterface() { return msBasic; }
static JKRHeap* getCurrentHeap() { return msCurrentHeap; }
template <typename T>
void startSoundActorT(u32 id, T** handlePtr, JAInter::Actor* actor, u32 p4, u8 p5);

View File

@ -124,26 +124,26 @@ void init()
for (u32 soundScene = 0; soundScene < JAIGlobalParameter::getParamSoundSceneMax(); soundScene++) {
u32 sumOfCategories = 0;
for (u32 category = 0; category < JAIGlobalParameter::getParamSeCategoryMax(); category++) {
sumOfCategories += JAIBasic::msBasic->_1C[soundScene][category];
sumOfCategories += JAIBasic::msBasic->_1C[soundScene][category * 2];
}
if (sumOfCategories > JAIGlobalParameter::getParamSeTrackMax()) {
if (JAIGlobalParameter::getParamSeTrackMax() < sumOfCategories) {
JAIGlobalParameter::setParamSeTrackMax(sumOfCategories);
}
}
}
seRegist = new (JAIBasic::msCurrentHeap, 0x20) LinkSound[JAIGlobalParameter::getParamSeCategoryMax()];
sePlaySound = new (JAIBasic::msCurrentHeap, 0x20) JAISound**[JAIGlobalParameter::getParamSeCategoryMax()];
seRegist = new (JAIBasic::getCurrentHeap(), 0x20) LinkSound[JAIGlobalParameter::getParamSeCategoryMax()];
sePlaySound = new (JAIBasic::getCurrentHeap(), 0x20) JAISound**[JAIGlobalParameter::getParamSeCategoryMax()];
for (u32 i = 0; i < JAIGlobalParameter::getParamSeCategoryMax(); i++) {
seRegist[i].init();
for (u32 j = 0; j < JAIGlobalParameter::getParamSeRegistMax(); j++) {
seRegist[i].mFreeList->append(JAIBasic::msBasic->makeSe());
}
sePlaySound[i] = new (JAIBasic::msCurrentHeap, 0x20) JAISound*[0x10];
sePlaySound[i] = new (JAIBasic::getCurrentHeap(), 0x20) JAISound*[0x10];
for (int j = 0; j < 0x10; j++) {
sePlaySound[i][j] = nullptr;
}
}
seTrackUpdate = new (JAIBasic::msCurrentHeap, 0x20) TrackUpdate[JAIGlobalParameter::getParamSeTrackMax()];
seTrackUpdate = new (JAIBasic::getCurrentHeap(), 0x20) TrackUpdate[JAIGlobalParameter::getParamSeTrackMax()];
for (u32 i = 0; i < JAIGlobalParameter::getParamSeTrackMax(); i++) {
TrackUpdate* trackUpdate = seTrackUpdate + i;
trackUpdate->_04 = 1.0f;
@ -154,296 +154,25 @@ void init()
trackUpdate->_14 = 0.0f;
}
// TODO: ???
new (JAIBasic::msCurrentHeap, 0x20)
new (JAIBasic::getCurrentHeap(), 0x20)
SeParameter[JAIGlobalParameter::getParamSeCategoryMax() * JAIGlobalParameter::getParamSeRegistMax()];
u16** v1 = JAIBasic::msBasic->_1C;
if (JAIBasic::msBasic->_1C == nullptr) {
categoryInfoTable = new (JAIBasic::msCurrentHeap, 0x20) u16*[JAIGlobalParameter::getParamSoundSceneMax()];
u16** v1 = (u16**)JAIBasic::msBasic->_1C;
if (JAIBasic::msBasic->_1C) {
categoryInfoTable = v1;
} else {
categoryInfoTable = new (JAIBasic::getCurrentHeap(), 0x20) u16*[JAIGlobalParameter::getParamSoundSceneMax()];
v1 = categoryInfoTable;
for (u32 i = 0; i < JAIGlobalParameter::getParamSoundSceneMax(); i++) {
categoryInfoTable[i] = JAInter::Const::sCInfos_0;
}
}
categoryInfoTable = v1;
seEntryCancel = new (JAIBasic::msCurrentHeap, 0x20) u8[JAIGlobalParameter::getParamSeCategoryMax()];
seCategoryVolume = new (JAIBasic::msCurrentHeap, 0x20) f32[JAIGlobalParameter::getParamSeCategoryMax()];
seEntryCancel = new (JAIBasic::getCurrentHeap(), 0x20) u8[JAIGlobalParameter::getParamSeCategoryMax()];
seCategoryVolume = new (JAIBasic::getCurrentHeap(), 0x20) f32[JAIGlobalParameter::getParamSeCategoryMax()];
for (u32 i = 0; i < JAIGlobalParameter::getParamSeCategoryMax(); i++) {
seEntryCancel[i] = 0;
seCategoryVolume[i] = 1.0f;
}
/*
stwu r1, -0x50(r1)
mflr r0
stw r0, 0x54(r1)
stfd f31, 0x40(r1)
psq_st f31, 72(r1), 0, qr0
stfd f30, 0x30(r1)
psq_st f30, 56(r1), 0, qr0
stfd f29, 0x20(r1)
psq_st f29, 40(r1), 0, qr0
stmw r27, 0xc(r1)
lwz r3, msBasic__8JAIBasic@sda21(r13)
lwz r0, 0x1c(r3)
cmplwi r0, 0
beq lbl_800AE14C
li r3, 0
bl setParamSeTrackMax__18JAIGlobalParameterFUl
li r31, 0
li r30, 0
b lbl_800AE140
lbl_800AE0EC:
li r28, 0
li r27, 0
li r29, 0
b lbl_800AE118
lbl_800AE0FC:
lwz r3, msBasic__8JAIBasic@sda21(r13)
addi r27, r27, 1
lwz r0, 0x1c(r3)
lwzx r3, r30, r0
lbzx r0, r3, r29
addi r29, r29, 2
add r28, r28, r0
lbl_800AE118:
bl getParamSeCategoryMax__18JAIGlobalParameterFv
cmplw r27, r3
blt lbl_800AE0FC
bl getParamSeTrackMax__18JAIGlobalParameterFv
cmplw r3, r28
bge lbl_800AE138
mr r3, r28
bl setParamSeTrackMax__18JAIGlobalParameterFUl
lbl_800AE138:
addi r30, r30, 4
addi r31, r31, 1
lbl_800AE140:
bl getParamSoundSceneMax__18JAIGlobalParameterFv
cmplw r31, r3
blt lbl_800AE0EC
lbl_800AE14C:
lwz r29, msCurrentHeap__8JAIBasic@sda21(r13)
bl getParamSeCategoryMax__18JAIGlobalParameterFv
slwi r3, r3, 3
mr r4, r29
li r5, 0x20
bl __nwa__FUlP7JKRHeapi
stw r3, seRegist__Q27JAInter5SeMgr@sda21(r13)
lwz r29, msCurrentHeap__8JAIBasic@sda21(r13)
bl getParamSeCategoryMax__18JAIGlobalParameterFv
slwi r3, r3, 2
mr r4, r29
li r5, 0x20
bl __nwa__FUlP7JKRHeapi
li r31, 0
stw r3, sePlaySound__Q27JAInter5SeMgr@sda21(r13)
mr r30, r31
li r29, 0
b lbl_800AE294
lbl_800AE194:
lwz r0, seRegist__Q27JAInter5SeMgr@sda21(r13)
add r3, r0, r31
bl init__Q27JAInter9LinkSoundFv
li r27, 0
b lbl_800AE1D0
lbl_800AE1A8:
lwz r3, msBasic__8JAIBasic@sda21(r13)
lwz r12, 0(r3)
lwz r12, 0xc(r12)
mtctr r12
bctrl
lwz r0, seRegist__Q27JAInter5SeMgr@sda21(r13)
mr r4, r3
lwzx r3, r31, r0
bl append__10JSUPtrListFP10JSUPtrLink
addi r27, r27, 1
lbl_800AE1D0:
bl getParamSeRegistMax__18JAIGlobalParameterFv
cmplw r27, r3
blt lbl_800AE1A8
lwz r4, msCurrentHeap__8JAIBasic@sda21(r13)
li r3, 0x40
li r5, 0x20
bl __nwa__FUlP7JKRHeapi
lwz r5, sePlaySound__Q27JAInter5SeMgr@sda21(r13)
li r0, 2
li r4, 0
stwx r3, r5, r30
mtctr r0
lbl_800AE200:
lwz r0, sePlaySound__Q27JAInter5SeMgr@sda21(r13)
li r11, 0
addi r9, r4, 4
addi r8, r4, 8
lwzx r3, r30, r0
addi r7, r4, 0xc
addi r6, r4, 0x10
addi r5, r4, 0x14
stwx r11, r3, r4
addi r3, r4, 0x18
addi r0, r4, 0x1c
addi r4, r4, 0x20
lwz r10, sePlaySound__Q27JAInter5SeMgr@sda21(r13)
lwzx r10, r30, r10
stwx r11, r10, r9
lwz r9, sePlaySound__Q27JAInter5SeMgr@sda21(r13)
lwzx r9, r30, r9
stwx r11, r9, r8
lwz r8, sePlaySound__Q27JAInter5SeMgr@sda21(r13)
lwzx r8, r30, r8
stwx r11, r8, r7
lwz r7, sePlaySound__Q27JAInter5SeMgr@sda21(r13)
lwzx r7, r30, r7
stwx r11, r7, r6
lwz r6, sePlaySound__Q27JAInter5SeMgr@sda21(r13)
lwzx r6, r30, r6
stwx r11, r6, r5
lwz r5, sePlaySound__Q27JAInter5SeMgr@sda21(r13)
lwzx r5, r30, r5
stwx r11, r5, r3
lwz r3, sePlaySound__Q27JAInter5SeMgr@sda21(r13)
lwzx r3, r30, r3
stwx r11, r3, r0
bdnz lbl_800AE200
addi r31, r31, 8
addi r30, r30, 4
addi r29, r29, 1
lbl_800AE294:
bl getParamSeCategoryMax__18JAIGlobalParameterFv
cmplw r29, r3
blt lbl_800AE194
lwz r29, msCurrentHeap__8JAIBasic@sda21(r13)
bl getParamSeTrackMax__18JAIGlobalParameterFv
mulli r3, r3, 0x18
mr r4, r29
li r5, 0x20
bl __nwa__FUlP7JKRHeapi
stw r3, seTrackUpdate__Q27JAInter5SeMgr@sda21(r13)
li r27, 0
lfs f29, lbl_80516F48@sda21(r2)
li r30, 0
lfs f30, lbl_80516F4C@sda21(r2)
li r29, 0xff
lfs f31, lbl_80516F50@sda21(r2)
b lbl_800AE300
lbl_800AE2D8:
lwz r0, seTrackUpdate__Q27JAInter5SeMgr@sda21(r13)
addi r27, r27, 1
add r3, r0, r30
addi r30, r30, 0x18
stfs f29, 4(r3)
stfs f29, 8(r3)
stfs f30, 0xc(r3)
stfs f31, 0x10(r3)
stb r29, 0(r3)
stfs f30, 0x14(r3)
lbl_800AE300:
bl getParamSeTrackMax__18JAIGlobalParameterFv
cmplw r27, r3
blt lbl_800AE2D8
bl getParamSeRegistMax__18JAIGlobalParameterFv
mr r29, r3
bl getParamSeCategoryMax__18JAIGlobalParameterFv
mullw r29, r3, r29
lwz r4, msCurrentHeap__8JAIBasic@sda21(r13)
li r5, 0x20
mulli r3, r29, 0x43c
addi r3, r3, 0x10
bl __nwa__FUlP7JKRHeapi
lis r4, __ct__Q27JAInter11SeParameterFv@ha
mr r7, r29
addi r4, r4, __ct__Q27JAInter11SeParameterFv@l
li r5, 0
li r6, 0x43c
bl __construct_new_array
lwz r3, msBasic__8JAIBasic@sda21(r13)
lwz r0, 0x1c(r3)
cmplwi r0, 0
beq lbl_800AE360
stw r0, categoryInfoTable__Q27JAInter5SeMgr@sda21(r13)
b lbl_800AE3AC
lbl_800AE360:
lwz r29, msCurrentHeap__8JAIBasic@sda21(r13)
bl getParamSoundSceneMax__18JAIGlobalParameterFv
slwi r3, r3, 2
mr r4, r29
li r5, 0x20
bl __nwa__FUlP7JKRHeapi
lis r4, sCInfos_0__Q27JAInter5Const@ha
stw r3, categoryInfoTable__Q27JAInter5SeMgr@sda21(r13)
addi r29, r4, sCInfos_0__Q27JAInter5Const@l
li r27, 0
li r30, 0
b lbl_800AE3A0
lbl_800AE390:
lwz r3, categoryInfoTable__Q27JAInter5SeMgr@sda21(r13)
addi r27, r27, 1
stwx r29, r3, r30
addi r30, r30, 4
lbl_800AE3A0:
bl getParamSoundSceneMax__18JAIGlobalParameterFv
cmplw r27, r3
blt lbl_800AE390
lbl_800AE3AC:
lwz r29, msCurrentHeap__8JAIBasic@sda21(r13)
bl getParamSeCategoryMax__18JAIGlobalParameterFv
mr r4, r29
li r5, 0x20
bl __nwa__FUlP7JKRHeapi
stw r3, seEntryCancel__Q27JAInter5SeMgr@sda21(r13)
lwz r29, msCurrentHeap__8JAIBasic@sda21(r13)
bl getParamSeCategoryMax__18JAIGlobalParameterFv
slwi r3, r3, 2
mr r4, r29
li r5, 0x20
bl __nwa__FUlP7JKRHeapi
li r30, 0
stw r3, seCategoryVolume__Q27JAInter5SeMgr@sda21(r13)
lfs f31, lbl_80516F48@sda21(r2)
mr r29, r30
li r27, 0
b lbl_800AE40C
lbl_800AE3F4:
lwz r3, seEntryCancel__Q27JAInter5SeMgr@sda21(r13)
stbx r29, r3, r27
addi r27, r27, 1
lwz r3, seCategoryVolume__Q27JAInter5SeMgr@sda21(r13)
stfsx f31, r3, r30
addi r30, r30, 4
lbl_800AE40C:
bl getParamSeCategoryMax__18JAIGlobalParameterFv
cmplw r27, r3
blt lbl_800AE3F4
psq_l f31, 72(r1), 0, qr0
lfd f31, 0x40(r1)
psq_l f30, 56(r1), 0, qr0
lfd f30, 0x30(r1)
psq_l f29, 40(r1), 0, qr0
lfd f29, 0x20(r1)
lmw r27, 0xc(r1)
lwz r0, 0x54(r1)
mtlr r0
addi r1, r1, 0x50
blr
*/
}
/**

View File

@ -78,9 +78,8 @@ int JASSeqParser::cmdRet(JASTrack* track, u32* args)
if (!ctrl->mLoopIndex) {
looped = false;
} else {
looped = true;
ctrl->mLoopIndex--;
ctrl->mCurrentFilePtr = ctrl->mLoopStartPositions[ctrl->mLoopIndex];
looped = true;
ctrl->mCurrentFilePtr = ctrl->mLoopStartPositions[--ctrl->mLoopIndex];
}
if (!looped) {
@ -89,49 +88,6 @@ int JASSeqParser::cmdRet(JASTrack* track, u32* args)
}
return 0;
/*
stwu r1, -0x10(r1)
mflr r0
stw r0, 0x14(r1)
stw r31, 0xc(r1)
mr r31, r4
lwz r0, 0(r5)
clrlwi r5, r0, 0x18
bl conditionCheck__12JASSeqParserFP8JASTrackUc
clrlwi. r0, r3, 0x18
beq lbl_8009CCEC
addi r4, r31, 0xc
lwz r3, 0x18(r31)
cmplwi r3, 0
bne lbl_8009CCC0
li r5, 0
b lbl_8009CCDC
lbl_8009CCC0:
addi r3, r3, -1
li r5, 1
slwi r0, r3, 2
stw r3, 0xc(r4)
add r3, r4, r0
lwz r0, 0x10(r3)
stw r0, 4(r4)
lbl_8009CCDC:
clrlwi. r0, r5, 0x18
bne lbl_8009CCEC
li r3, 3
b lbl_8009CCF0
lbl_8009CCEC:
li r3, 0
lbl_8009CCF0:
lwz r0, 0x14(r1)
lwz r31, 0xc(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
/**
@ -144,8 +100,8 @@ int JASSeqParser::cmdJmp(JASTrack* track, u32* args)
u8 flag = *ctrl->mCurrentFilePtr++;
bool usetrackptr = false;
int trackptr = 0;
u32 data;
if (flag & 0x80) {
u8 cData = *ctrl->mCurrentFilePtr++;
@ -357,28 +313,9 @@ int JASSeqParser::cmdParentWritePort(JASTrack* track, u32* args)
*/
int JASSeqParser::cmdChildWritePort(JASTrack* track, u32* args)
{
u8 a1 = args[0] & 0xf;
track->mChildList[(u16)args[0] & 0x3c]->writePortAppDirect(a1, args[1]);
u8 a1 = args[0] & 0xF;
track->mChildList[(args[0] / 16) & 0xF]->writePortAppDirect(a1, args[1]);
return 0;
/*
stwu r1, -0x10(r1)
mflr r0
stw r0, 0x14(r1)
lwz r6, 0(r5)
lwz r0, 4(r5)
rlwinm r3, r6, 0x1e, 0x1a, 0x1d
clrlwi r5, r6, 0x1c
add r3, r4, r3
lwz r3, 0x2fc(r3)
mr r4, r5
clrlwi r5, r0, 0x10
bl writePortAppDirect__8JASTrackFUlUs
lwz r0, 0x14(r1)
li r3, 0
mtlr r0
addi r1, r1, 0x10
blr
*/
}
/**
@ -399,14 +336,6 @@ int JASSeqParser::cmdCheckPortExport(JASTrack* track, u32* args)
{
track->mRegisterParam._00[3] = track->mTrackPort._10[args[0]];
return 0;
/*
lwz r0, 0(r5)
li r3, 0
add r5, r4, r0
lbz r0, 0x64(r5)
sth r0, 0x26e(r4)
blr
*/
}
/**
@ -603,30 +532,7 @@ int JASSeqParser::cmdRetI(JASTrack* track, u32* args)
track->mIntrMgr._00 = 1;
track->mSeqCtrl.retIntr();
track->tryInterrupt();
return track->mSeqCtrl.mWaitTimer != 0;
/*
stwu r1, -0x10(r1)
mflr r0
stw r0, 0x14(r1)
li r0, 1
stw r31, 0xc(r1)
mr r31, r4
addi r3, r31, 0xc
stb r0, 0x94(r4)
bl retIntr__10JASSeqCtrlFv
mr r3, r31
bl tryInterrupt__8JASTrackFv
lwz r3, 0x14(r31)
lwz r31, 0xc(r1)
neg r0, r3
andc r0, r0, r3
srwi r3, r0, 0x1f
lwz r0, 0x14(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
return track->mSeqCtrl.mWaitTimer > 0;
}
/**
@ -720,23 +626,8 @@ int JASSeqParser::cmdPanPowSet(JASTrack* track, u32* args)
*/
int JASSeqParser::cmdFIRSet(JASTrack* track, u32* args)
{
track->mExtBuffer->setFirFilter((s16*)track->mSeqCtrl.mRawFilePtr + args[0]);
track->mExtBuffer->setFirFilter((s16*)((u32)track->mSeqCtrl.mRawFilePtr + args[0]));
return 0;
/*
stwu r1, -0x10(r1)
mflr r0
stw r0, 0x14(r1)
lwz r6, 0xc(r4)
lwz r0, 0(r5)
lwz r3, 0x33c(r4)
add r4, r6, r0
bl setFirFilter__13JASOuterParamFPs
lwz r0, 0x14(r1)
li r3, 0
mtlr r0
addi r1, r1, 0x10
blr
*/
}
/**
@ -757,8 +648,8 @@ int JASSeqParser::cmdEXTSet(JASTrack* track, u32* args)
*/
int JASSeqParser::cmdPanSwSet(JASTrack* track, u32* args)
{
u8 stuff[] = { 0, 0, 0, 1, 1, 2, 2, 0 };
u8 stuff2[] = { 0, 1, 2, 0, 2, 0, 2, 0 };
u8 stuff[] = { 0, 0, 0, 1, 1, 2, 2 };
u8 stuff2[] = { 0, 1, 2, 0, 2, 0, 2 };
track->_35C = stuff[args[0] >> 5];
track->_35F = stuff2[args[0] >> 5];
@ -775,70 +666,6 @@ int JASSeqParser::cmdPanSwSet(JASTrack* track, u32* args)
track->mChannelUpdater._4C = args[2] & 0x1f;
track->_34C |= 0x1c;
return 0;
/*
stwu r1, -0x20(r1)
li r3, 0
stw r31, 0x1c(r1)
addi r7, r1, 0x10
addi r6, r1, 8
lwz r31, lbl_80516D40@sda21(r2)
lhz r12, lbl_80516D44@sda21(r2)
lbz r11, lbl_80516D46@sda21(r2)
lwz r0, 0(r5)
lwz r10, lbl_80516D48@sda21(r2)
lhz r9, lbl_80516D4C@sda21(r2)
srwi r0, r0, 5
lbz r8, lbl_80516D4E@sda21(r2)
stw r31, 0x10(r1)
sth r12, 0x14(r1)
stb r11, 0x16(r1)
lbzx r0, r7, r0
stw r10, 8(r1)
stb r0, 0x35c(r4)
lwz r0, 0(r5)
sth r9, 0xc(r1)
srwi r0, r0, 5
stb r8, 0xe(r1)
lbzx r0, r6, r0
stb r0, 0x35f(r4)
lwz r0, 0(r5)
clrlwi r0, r0, 0x1b
stb r0, 0x13e(r4)
lwz r0, 0x34c(r4)
ori r0, r0, 0x1c
stw r0, 0x34c(r4)
lwz r0, 4(r5)
srwi r0, r0, 5
lbzx r0, r7, r0
stb r0, 0x35d(r4)
lwz r0, 4(r5)
srwi r0, r0, 5
lbzx r0, r6, r0
stb r0, 0x360(r4)
lwz r0, 4(r5)
clrlwi r0, r0, 0x1b
stb r0, 0x13f(r4)
lwz r0, 0x34c(r4)
ori r0, r0, 0x1c
stw r0, 0x34c(r4)
lwz r0, 8(r5)
srwi r0, r0, 5
lbzx r0, r7, r0
stb r0, 0x35e(r4)
lwz r0, 8(r5)
srwi r0, r0, 5
lbzx r0, r6, r0
stb r0, 0x361(r4)
lwz r0, 8(r5)
clrlwi r0, r0, 0x1b
stb r0, 0x140(r4)
lwz r0, 0x34c(r4)
ori r0, r0, 0x1c
stw r0, 0x34c(r4)
lwz r31, 0x1c(r1)
addi r1, r1, 0x20
blr
*/
}
/**
@ -847,17 +674,8 @@ int JASSeqParser::cmdPanSwSet(JASTrack* track, u32* args)
*/
int JASSeqParser::cmdOscRoute(JASTrack* track, u32* args)
{
track->_2D8[args[0] & 0x3c] = args[0] & 0xf;
track->_2D8[(args[0] / 16) & 0xF] = args[0] & 0xF;
return 0;
/*
lwz r5, 0(r5)
li r3, 0
rlwinm r0, r5, 0x1e, 0x1a, 0x1d
clrlwi r5, r5, 0x1c
add r4, r4, r0
stw r5, 0x2d8(r4)
blr
*/
}
/**
@ -866,28 +684,10 @@ int JASSeqParser::cmdOscRoute(JASTrack* track, u32* args)
*/
int JASSeqParser::cmdVibDepth(JASTrack* track, u32* args)
{
track->mVibrate.mDepth = ((u8)args[0] << 8 | (u8)args[0] << 1) / 393204.0f;
f32 depth = ((u8)args[0] << 8 | (u8)args[0] << 1);
depth /= 393204.0f;
track->mVibrate.mDepth = depth;
return 0;
/*
stwu r1, -0x10(r1)
lis r0, 0x4330
lfd f2, lbl_80516D58@sda21(r2)
li r3, 0
lwz r6, 0(r5)
stw r0, 8(r1)
rlwinm r5, r6, 8, 0x10, 0x17
rlwinm r0, r6, 1, 0x17, 0x1e
or r0, r5, r0
lfs f0, lbl_80516D50@sda21(r2)
xoris r0, r0, 0x8000
stw r0, 0xc(r1)
lfd f1, 8(r1)
fsubs f1, f1, f2
fdivs f1, f1, f0
stfs f1, 0xec(r4)
addi r1, r1, 0x10
blr
*/
}
/**
@ -896,24 +696,10 @@ int JASSeqParser::cmdVibDepth(JASTrack* track, u32* args)
*/
int JASSeqParser::cmdVibDepthMidi(JASTrack* track, u32* args)
{
track->mVibrate.mDepth = (args[0]) / 393204.0f;
f32 depth = args[0];
depth /= 393204.0f;
track->mVibrate.mDepth = depth;
return 0;
/*
stwu r1, -0x10(r1)
lis r0, 0x4330
lfd f2, lbl_80516D38@sda21(r2)
li r3, 0
lwz r5, 0(r5)
stw r0, 8(r1)
lfs f0, lbl_80516D50@sda21(r2)
stw r5, 0xc(r1)
lfd f1, 8(r1)
fsubs f1, f1, f2
fdivs f1, f1, f0
stfs f1, 0xec(r4)
addi r1, r1, 0x10
blr
*/
}
/**
@ -922,28 +708,10 @@ int JASSeqParser::cmdVibDepthMidi(JASTrack* track, u32* args)
*/
int JASSeqParser::cmdVibPitch(JASTrack* track, u32* args)
{
track->mVibrate.mPitch = u16((u8)args[0] << 8 | (u8)args[0] << 1) / 294903.0f;
f32 pitch = u16((u8)args[0] << 8 | (u8)args[0] << 1);
pitch /= 294903.0f;
track->mVibrate.mPitch = pitch;
return 0;
/*
stwu r1, -0x10(r1)
lis r0, 0x4330
lfd f2, lbl_80516D38@sda21(r2)
li r3, 0
lwz r6, 0(r5)
stw r0, 8(r1)
rlwinm r5, r6, 8, 0x10, 0x17
rlwinm r0, r6, 1, 0x17, 0x1e
or r0, r5, r0
lfs f0, lbl_80516D60@sda21(r2)
clrlwi r0, r0, 0x10
stw r0, 0xc(r1)
lfd f1, 8(r1)
fsubs f1, f1, f2
fdivs f1, f1, f0
stfs f1, 0xf0(r4)
addi r1, r1, 0x10
blr
*/
}
/**
@ -980,91 +748,28 @@ int JASSeqParser::cmdIIRSet(JASTrack* track, u32* args)
*/
int JASSeqParser::cmdIIRCutOff(JASTrack* track, u32* args)
{
u8 arg = (u8)args[0] * 8;
track->mTimedParam.mMoveParams[12]._04 = JASPlayer::CUTOFF_TO_IIR_TABLE[(int)arg] / 32768.0f;
// u16 arg = ((u8)args[0]) * 4;
s16* table = &JASPlayer::CUTOFF_TO_IIR_TABLE[((u8)args[0]) * 4];
track->mTimedParam.mMoveParams[12]._04 = table[0] / 32767.0f;
track->mTimedParam.mMoveParams[12]._00 = track->mTimedParam.mMoveParams[12]._04;
track->mTimedParam.mMoveParams[12]._0C = 0.0f;
track->mTimedParam.mMoveParams[12]._08 = 1.0f;
track->mTimedParam.mMoveParams[13]._04 = JASPlayer::CUTOFF_TO_IIR_TABLE[(int)arg + 1] / 32768.0f;
track->mTimedParam.mMoveParams[13]._04 = table[1] / 32767.0f;
track->mTimedParam.mMoveParams[13]._00 = track->mTimedParam.mMoveParams[13]._04;
track->mTimedParam.mMoveParams[13]._0C = 0.0f;
track->mTimedParam.mMoveParams[13]._08 = 1.0f;
track->mTimedParam.mMoveParams[14]._04 = JASPlayer::CUTOFF_TO_IIR_TABLE[(int)arg + 2] / 32768.0f;
track->mTimedParam.mMoveParams[14]._04 = table[2] / 32767.0f;
track->mTimedParam.mMoveParams[14]._00 = track->mTimedParam.mMoveParams[14]._04;
track->mTimedParam.mMoveParams[14]._0C = 0.0f;
track->mTimedParam.mMoveParams[14]._08 = 1.0f;
track->mTimedParam.mMoveParams[15]._04 = JASPlayer::CUTOFF_TO_IIR_TABLE[(int)arg + 3] / 32768.0f;
track->mTimedParam.mMoveParams[15]._04 = table[3] / 32767.0f;
track->mTimedParam.mMoveParams[15]._00 = track->mTimedParam.mMoveParams[15]._04;
track->mTimedParam.mMoveParams[15]._0C = 0.0f;
track->mTimedParam.mMoveParams[15]._08 = 1.0f;
return 0;
/*
stwu r1, -0x30(r1)
lis r0, 0x4330
lis r3, CUTOFF_TO_IIR_TABLE__9JASPlayer@ha
lfd f4, lbl_80516D58@sda21(r2)
lwz r5, 0(r5)
addi r3, r3, CUTOFF_TO_IIR_TABLE__9JASPlayer@l
stw r0, 8(r1)
rlwinm r5, r5, 3, 0x15, 0x1c
lfs f3, lbl_80516D70@sda21(r2)
add r6, r3, r5
lfs f2, lbl_80516D68@sda21(r2)
lha r5, 0(r6)
li r3, 0
lfs f1, lbl_80516D6C@sda21(r2)
xoris r5, r5, 0x8000
stw r0, 0x10(r1)
stw r5, 0xc(r1)
lfd f0, 8(r1)
stw r0, 0x18(r1)
fsubs f0, f0, f4
stw r0, 0x20(r1)
fdivs f0, f0, f3
stfs f0, 0x20c(r4)
lfs f0, 0x20c(r4)
stfs f0, 0x208(r4)
stfs f2, 0x214(r4)
stfs f1, 0x210(r4)
lha r0, 2(r6)
xoris r0, r0, 0x8000
stw r0, 0x14(r1)
lfd f0, 0x10(r1)
fsubs f0, f0, f4
fdivs f0, f0, f3
stfs f0, 0x21c(r4)
lfs f0, 0x21c(r4)
stfs f0, 0x218(r4)
stfs f2, 0x224(r4)
stfs f1, 0x220(r4)
lha r0, 4(r6)
xoris r0, r0, 0x8000
stw r0, 0x1c(r1)
lfd f0, 0x18(r1)
fsubs f0, f0, f4
fdivs f0, f0, f3
stfs f0, 0x22c(r4)
lfs f0, 0x22c(r4)
stfs f0, 0x228(r4)
stfs f2, 0x234(r4)
stfs f1, 0x230(r4)
lha r0, 6(r6)
xoris r0, r0, 0x8000
stw r0, 0x24(r1)
lfd f0, 0x20(r1)
fsubs f0, f0, f4
fdivs f0, f0, f3
stfs f0, 0x23c(r4)
lfs f0, 0x23c(r4)
stfs f0, 0x238(r4)
stfs f2, 0x244(r4)
stfs f1, 0x240(r4)
addi r1, r1, 0x30
blr
*/
}
/**