mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-07 13:23:27 -04:00
JASSeqParser work
This commit is contained in:
@@ -43,7 +43,7 @@ namespace JASystem {
|
||||
/* 0x5A */ u8 field_0x5a[6];
|
||||
/* 0x60 */ u8 field_0x60;
|
||||
/* 0x61 */ u8 field_0x61;
|
||||
/* 0x62 */ u8 field_0x62[3];
|
||||
/* 0x62 */ u8 mCalcTypes[3];
|
||||
/* 0x68 */ int field_0x68;
|
||||
/* 0x6C */ u16 field_0x6c;
|
||||
/* 0x70 */ int field_0x70;
|
||||
|
||||
@@ -12,15 +12,23 @@ namespace JASystem {
|
||||
u8 getBankNumber() const;
|
||||
u8 getProgramNumber() const;
|
||||
|
||||
/* 0x00 */ short field_0x0;
|
||||
/* 0x02 */ short field_0x2;
|
||||
/* 0x04 */ short field_0x4;
|
||||
/* 0x06 */ short field_0x6;
|
||||
/* 0x08 */ short field_0x8;
|
||||
/* 0x0A */ short field_0xa;
|
||||
void getAddress(int) const {}
|
||||
void getBendSense() const {}
|
||||
void getFlag() const {}
|
||||
void getPanPowerBank() const {}
|
||||
void getPanPowerExt() const {}
|
||||
void getPanPowerOsc() const {}
|
||||
void getPanPowerParent() const {}
|
||||
void getPanPowerTrack() const {}
|
||||
void getPriority() const {}
|
||||
void setAddress(int, u32) {}
|
||||
void setFlag(u16) {}
|
||||
void setPanPower(int i, u16 power) { mPanPower[i] = power; }
|
||||
|
||||
/* 0x00 */ u16 field_0x0[6];
|
||||
/* 0x0C */ u16 field_0xc;
|
||||
/* 0x0E */ u16 field_0xe;
|
||||
/* 0x10 */ u16 field_0x10[5];
|
||||
/* 0x10 */ u16 mPanPower[5];
|
||||
/* 0x1A */ u16 field_0x1a;
|
||||
/* 0x1C */ int field_0x1c;
|
||||
/* 0x20 */ int field_0x20;
|
||||
|
||||
@@ -8,19 +8,32 @@ namespace JASystem {
|
||||
|
||||
class TSeqCtrl {
|
||||
public:
|
||||
void call(u32) {}
|
||||
void clrIntr() {}
|
||||
void getAddr(u32) {}
|
||||
void getBase() {}
|
||||
u8 getByte(u32 offset) const { return field_0x0[offset]; }
|
||||
void call(u32 offset) {
|
||||
mLoopStartPositions[mLoopIndex++] = mCurrentFilePtr;
|
||||
mCurrentFilePtr = mRawFilePtr + offset;
|
||||
}
|
||||
void clrIntr() { mPreviousFilePtr = 0; }
|
||||
u8* getAddr(u32 offset) { return mRawFilePtr + offset; }
|
||||
u8* getBase() { return mRawFilePtr; }
|
||||
u8 getByte(u32 offset) const { return mRawFilePtr[offset]; }
|
||||
void getLoopCount() const {}
|
||||
void getWait() const {}
|
||||
void isIntr() const {}
|
||||
void jump(u32) {}
|
||||
void loopStart(u32) {}
|
||||
u8 readByte() { return *field_0x4++; }
|
||||
void ret() {}
|
||||
void wait(s32) {}
|
||||
void jump(u32 offset) {
|
||||
mCurrentFilePtr = mRawFilePtr + offset;
|
||||
}
|
||||
void loopStart(u32 timer) {
|
||||
mLoopStartPositions[mLoopIndex] = mCurrentFilePtr;
|
||||
mLoopTimers[mLoopIndex++] = timer;
|
||||
}
|
||||
u8 readByte() { return *mCurrentFilePtr++; }
|
||||
bool ret() {
|
||||
mCurrentFilePtr = mLoopStartPositions[--mLoopIndex];
|
||||
return true;
|
||||
}
|
||||
void wait(s32 timer) {
|
||||
mWaitTimer = timer;
|
||||
}
|
||||
|
||||
void init();
|
||||
void start(void*, u32);
|
||||
@@ -34,14 +47,14 @@ namespace JASystem {
|
||||
u32 read16();
|
||||
u32 read24();
|
||||
|
||||
/* 0x00 */ u8* field_0x0;
|
||||
/* 0x04 */ u8* field_0x4;
|
||||
/* 0x08 */ int field_0x8;
|
||||
/* 0x0C */ u32 field_0xc;
|
||||
/* 0x10 */ u8* field_0x10[8];
|
||||
/* 0x30 */ u16 field_0x30[8];
|
||||
/* 0x00 */ u8* mRawFilePtr;
|
||||
/* 0x04 */ u8* mCurrentFilePtr;
|
||||
/* 0x08 */ int mWaitTimer;
|
||||
/* 0x0C */ u32 mLoopIndex;
|
||||
/* 0x10 */ u8* mLoopStartPositions[8];
|
||||
/* 0x30 */ u16 mLoopTimers[8];
|
||||
/* 0x40 */ int field_0x40;
|
||||
/* 0x44 */ u8* field_0x44;
|
||||
/* 0x44 */ u8* mPreviousFilePtr;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -59,17 +59,19 @@ namespace JASystem {
|
||||
int cmdOscFull(TTrack*, u32*);
|
||||
int cmdCheckWave(TTrack*, u32*);
|
||||
int cmdPrintf(TTrack*, u32*);
|
||||
void Cmd_Process(TTrack*, u8, u16);
|
||||
void RegCmd_Process(TTrack*, int, int);
|
||||
int Cmd_Process(TTrack*, u8, u16);
|
||||
int RegCmd_Process(TTrack*, int, int);
|
||||
int cmdSetParam(TTrack*, u8);
|
||||
int cmdWait(TTrack*, u8);
|
||||
int cmdNoteOff(TTrack*, u8);
|
||||
int cmdNoteOn(TTrack*, u8);
|
||||
bool conditionCheck(TTrack*, u8);
|
||||
void parseSeq(TTrack*);
|
||||
int parseSeq(TTrack*);
|
||||
|
||||
static int (TSeqParser::*sCmdPList[])(TTrack*, u32*);
|
||||
};
|
||||
|
||||
extern const u16 Arglist[0x40][2];
|
||||
}
|
||||
|
||||
#endif /* JASSEQPARSER_H */
|
||||
|
||||
@@ -38,13 +38,38 @@ namespace JASystem {
|
||||
void incCounter();
|
||||
f32 getValue() const;
|
||||
|
||||
void setDepth(f32 depth) { mDepth = depth; }
|
||||
void setPitch(f32 pitch) { mPitch = pitch; }
|
||||
|
||||
/* 0x00 */ f32 field_0x0;
|
||||
/* 0x04 */ f32 field_0x4;
|
||||
/* 0x08 */ f32 field_0x8;
|
||||
/* 0x04 */ f32 mDepth;
|
||||
/* 0x08 */ f32 mPitch;
|
||||
};
|
||||
|
||||
class TTrack {
|
||||
public:
|
||||
enum TimedParamType {
|
||||
TIMED_Volume = 0,
|
||||
TIMED_Pitch = 1,
|
||||
TIMED_Fxmix = 2,
|
||||
TIMED_Pan = 3,
|
||||
TIMED_Dolby = 4,
|
||||
TIMED_Unk5 = 5,
|
||||
TIMED_Osc0_Width = 6,
|
||||
TIMED_Osc0_Rate = 7,
|
||||
TIMED_Osc0_Vertex = 8,
|
||||
TIMED_Osc1_Width = 9,
|
||||
TIMED_Osc1_Rate = 10,
|
||||
TIMED_Osc1_Vertex = 11,
|
||||
TIMED_IIR_Unk0 = 12,
|
||||
TIMED_IIR_Unk1 = 13,
|
||||
TIMED_IIR_Unk2 = 14,
|
||||
TIMED_IIR_Unk3 = 15,
|
||||
TIMED_Unk16 = 16,
|
||||
TIMED_Unk17 = 17,
|
||||
TIMED_Count, // 18
|
||||
};
|
||||
|
||||
class TOuterParam {
|
||||
public:
|
||||
TOuterParam();
|
||||
@@ -73,17 +98,18 @@ namespace JASystem {
|
||||
public:
|
||||
MoveParam_();
|
||||
|
||||
/* 0x00 */ f32 field_0x0;
|
||||
/* 0x04 */ f32 field_0x4;
|
||||
/* 0x08 */ f32 field_0x8;
|
||||
/* 0x0C */ f32 field_0xc;
|
||||
/* 0x00 */ f32 mCurrentValue;
|
||||
/* 0x04 */ f32 mTargetValue;
|
||||
/* 0x08 */ f32 mMoveTime;
|
||||
/* 0x0C */ f32 mMoveAmount;
|
||||
};
|
||||
|
||||
class AInnerParam_ {
|
||||
public:
|
||||
AInnerParam_();
|
||||
|
||||
/* 0x000 */ f32 field_0x0[48];
|
||||
/* 0x000 */ MoveParam_ mIIRs[4];
|
||||
/* 0x010 */ f32 field_0x10[32];
|
||||
/* 0x0C0 */ MoveParam_ field_0xc0[4];
|
||||
/* 0x100 */ f32 field_0x100[8];
|
||||
};
|
||||
@@ -93,8 +119,8 @@ namespace JASystem {
|
||||
TimedParam_();
|
||||
|
||||
union {
|
||||
AInnerParam_ inner;
|
||||
MoveParam_ move[18];
|
||||
AInnerParam_ mInnerParam;
|
||||
MoveParam_ mMoveParams[TIMED_Count];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -106,12 +132,12 @@ namespace JASystem {
|
||||
void releaseChannel(int);
|
||||
TChannel* getChannel(int);
|
||||
|
||||
TChannel* field_0x0[8];
|
||||
u16 field_0x20[8];
|
||||
int field_0x30;
|
||||
u8 field_0x34;
|
||||
u8 field_0x35;
|
||||
u8 field_0x36;
|
||||
/* 0x00 */ TChannel* field_0x0[8];
|
||||
/* 0x20 */ u16 field_0x20[8];
|
||||
/* 0x30 */ int field_0x30;
|
||||
/* 0x34 */ u8 field_0x34;
|
||||
/* 0x35 */ u8 field_0x35;
|
||||
/* 0x36 */ u8 field_0x36;
|
||||
};
|
||||
|
||||
static const int MAX_CHILDREN = 16;
|
||||
@@ -155,8 +181,8 @@ namespace JASystem {
|
||||
TTrack* openChild(u8, u8);
|
||||
int loadTbl(u32, u32, u32);
|
||||
int exchangeRegisterValue(u8);
|
||||
void readReg32(u8);
|
||||
void readReg16(u8);
|
||||
u32 readReg32(u8);
|
||||
u16 readReg16(u8);
|
||||
void writeRegDirect(u8, u16);
|
||||
void writeRegParam(u8);
|
||||
u16 readSelfPort(int);
|
||||
@@ -184,53 +210,53 @@ namespace JASystem {
|
||||
|
||||
TOuterParam* getOuterParam() { return mOuterParam; }
|
||||
|
||||
void checkExport(int) const {}
|
||||
void checkImport(int) const {}
|
||||
bool checkImport(int i) const { return mTrackPort.checkImport(i); }
|
||||
bool checkExport(int i) const { return mTrackPort.checkExport(i); }
|
||||
void getActivity() const {}
|
||||
void getRoute() const {}
|
||||
void getSeq() {}
|
||||
TSeqCtrl* getSeq() { return &mSeqCtrl; }
|
||||
// void operator delete(void*, u32) {}
|
||||
// void* operator new(size_t) {}
|
||||
void pauseTrackAll() {}
|
||||
void setPanPower(int, u16) {}
|
||||
void setPanPower(int i, u16 power) { mRegisterParam.setPanPower(i, power); }
|
||||
void setPauseStatus(u8) {}
|
||||
void setTranspose(s32) {}
|
||||
void setVolumeMode(u8) {}
|
||||
void setTranspose(s32 transpose) { field_0x37a = transpose; }
|
||||
void setVolumeMode(u8 mode) { mVolumeMode = mode; }
|
||||
void unPauseTrackAll() {}
|
||||
|
||||
/* 0x000 */ union {
|
||||
TSeqCtrl field_0x0;
|
||||
TSeqCtrl mSeqCtrl;
|
||||
TTrack* next;
|
||||
};
|
||||
/* 0x048 */ TTrackPort field_0x48;
|
||||
/* 0x048 */ TTrackPort mTrackPort;
|
||||
/* 0x088 */ TIntrMgr field_0x88;
|
||||
/* 0x0B4 */ TNoteMgr field_0xb4;
|
||||
/* 0x0EC */ TVibrate field_0xec;
|
||||
/* 0x0F8 */ TChannelMgr field_0xf8;
|
||||
/* 0x16C */ TimedParam_ field_0x16c;
|
||||
/* 0x28C */ TRegisterParam field_0x28c;
|
||||
/* 0x0B4 */ TNoteMgr mNoteMgr;
|
||||
/* 0x0EC */ TVibrate mVibrate;
|
||||
/* 0x0F8 */ TChannelMgr mChannelUpdater;
|
||||
/* 0x16C */ TimedParam_ mTimedParam;
|
||||
/* 0x28C */ TRegisterParam mRegisterParam;
|
||||
/* 0x2BC */ u8 field_0x2bc[0x2cc - 0x2bc];
|
||||
/* 0x2CC */ TOscillator::Osc_ field_0x2cc[2];
|
||||
/* 0x2FC */ u32 field_0x2fc[2];
|
||||
/* 0x304 */ short field_0x304[12];
|
||||
/* 0x2FC */ u32 mOscRoute[2];
|
||||
/* 0x304 */ s16 field_0x304[12];
|
||||
/* 0x31C */ TTrack* mParent;
|
||||
/* 0x320 */ TTrack* mChildren[MAX_CHILDREN];
|
||||
/* 0x360 */ TOuterParam* mOuterParam;
|
||||
/* 0x364 */ f32 field_0x364;
|
||||
/* 0x368 */ f32 field_0x368;
|
||||
/* 0x36C */ int field_0x36c;
|
||||
/* 0x370 */ int field_0x370;
|
||||
/* 0x370 */ u32 mUpdateFlags;
|
||||
/* 0x374 */ u16 field_0x374;
|
||||
/* 0x376 */ u16 field_0x376;
|
||||
/* 0x378 */ u16 field_0x378;
|
||||
/* 0x37a */ u8 field_0x37a;
|
||||
/* 0x37b */ u8 field_0x37b;
|
||||
/* 0x37c */ u8 field_0x37c;
|
||||
/* 0x37d */ u8 field_0x37d;
|
||||
/* 0x37e */ u8 field_0x37e;
|
||||
/* 0x37f */ u8 field_0x37f[3];
|
||||
/* 0x382 */ u8 field_0x382[3];
|
||||
/* 0x385 */ u8 field_0x385;
|
||||
/* 0x37A */ u8 field_0x37a;
|
||||
/* 0x37B */ u8 field_0x37b;
|
||||
/* 0x37C */ u8 mPauseStatus;
|
||||
/* 0x37D */ u8 mVolumeMode;
|
||||
/* 0x37E */ u8 field_0x37e;
|
||||
/* 0x37F */ u8 mCalcTypes[3];
|
||||
/* 0x382 */ u8 mParentCalcTypes[3];
|
||||
/* 0x385 */ u8 mIsPaused;
|
||||
/* 0x386 */ u8 field_0x386;
|
||||
/* 0x387 */ bool field_0x387;
|
||||
/* 0x388 */ u8 field_0x388;
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
#define TRACKPORT_MAX (16)
|
||||
|
||||
namespace JASystem {
|
||||
class TTrackPort {
|
||||
public:
|
||||
@@ -12,9 +14,13 @@ namespace JASystem {
|
||||
void writeImport(int, u16);
|
||||
void writeExport(int, u16);
|
||||
|
||||
/* 0x00 */ u8 field_0x0[16];
|
||||
/* 0x10 */ u8 field_0x10[16];
|
||||
/* 0x20 */ u16 field_0x20[16];
|
||||
bool checkImport(int i) const { return mImportFlag[i] != 0; }
|
||||
bool checkExport(int i) const { return mExportFlag[i] != 0; }
|
||||
u16 get(u32 i) { return mValue[i]; }
|
||||
|
||||
/* 0x00 */ u8 mImportFlag[TRACKPORT_MAX];
|
||||
/* 0x10 */ u8 mExportFlag[TRACKPORT_MAX];
|
||||
/* 0x20 */ u16 mValue[TRACKPORT_MAX];
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ T* JSUConvertOffsetToPtr(const void* ptr, const void* offset) {
|
||||
}
|
||||
|
||||
inline u8 JSULoNibble(u8 param_0) { return param_0 & 0x0f; }
|
||||
inline u8 JSUHiNibble(u8 param_0) {return param_0 >> 4; }
|
||||
inline u8 JSUHiNibble(u8 param_0) {return (param_0 & 0xff) >> 4; }
|
||||
|
||||
inline u8 JSULoByte(u16 in) {
|
||||
return in & 0xff;
|
||||
|
||||
@@ -42,7 +42,7 @@ void JASystem::TChannel::init() {
|
||||
field_0x48 = field_0x4->field_0x68;
|
||||
field_0x4c = field_0x4->field_0x6c;
|
||||
for (int i = 0; i < 3; i++) {
|
||||
field_0x60[i] = field_0x4->field_0x62[i];
|
||||
field_0x60[i] = field_0x4->mCalcTypes[i];
|
||||
}
|
||||
}
|
||||
for (u32 i = 0; i < 4; i++) {
|
||||
|
||||
@@ -45,9 +45,9 @@ void JASystem::TChannelMgr::init() {
|
||||
field_0x4e[5] = 0;
|
||||
field_0x68 = 0x20103;
|
||||
field_0x6c = 600;
|
||||
field_0x62[0] = 13;
|
||||
field_0x62[1] = 13;
|
||||
field_0x62[2] = 13;
|
||||
mCalcTypes[0] = 13;
|
||||
mCalcTypes[1] = 13;
|
||||
mCalcTypes[2] = 13;
|
||||
}
|
||||
|
||||
/* 8028D4D0-8028D514 .text stopAll__Q28JASystem11TChannelMgrFv */
|
||||
|
||||
@@ -8,20 +8,20 @@
|
||||
|
||||
/* 8027E2C0-8027E310 .text __ct__Q28JASystem14TRegisterParamFv */
|
||||
JASystem::TRegisterParam::TRegisterParam() {
|
||||
field_0x0 = 0;
|
||||
field_0x2 = 0;
|
||||
field_0x4 = 0;
|
||||
field_0x6 = 0;
|
||||
field_0x8 = 0;
|
||||
field_0xa = 0;
|
||||
field_0x0[0] = 0;
|
||||
field_0x0[1] = 0;
|
||||
field_0x0[2] = 0;
|
||||
field_0x0[3] = 0;
|
||||
field_0x0[4] = 0;
|
||||
field_0x0[5] = 0;
|
||||
field_0xc = 0;
|
||||
field_0xe = 0;
|
||||
field_0x1a = 0;
|
||||
field_0x10[0] = 0;
|
||||
field_0x10[1] = 0;
|
||||
field_0x10[2] = 0;
|
||||
field_0x10[3] = 0;
|
||||
field_0x10[4] = 0;
|
||||
mPanPower[0] = 0;
|
||||
mPanPower[1] = 0;
|
||||
mPanPower[2] = 0;
|
||||
mPanPower[3] = 0;
|
||||
mPanPower[4] = 0;
|
||||
field_0x20 = 0;
|
||||
field_0x24 = 0;
|
||||
field_0x28 = 0;
|
||||
@@ -30,20 +30,20 @@ JASystem::TRegisterParam::TRegisterParam() {
|
||||
|
||||
/* 8027E310-8027E378 .text init__Q28JASystem14TRegisterParamFv */
|
||||
void JASystem::TRegisterParam::init() {
|
||||
field_0x0 = 0;
|
||||
field_0x2 = 0;
|
||||
field_0x4 = 0;
|
||||
field_0x6 = 0;
|
||||
field_0x8 = 0;
|
||||
field_0xa = 0;
|
||||
field_0x0[0] = 0;
|
||||
field_0x0[1] = 0;
|
||||
field_0x0[2] = 0;
|
||||
field_0x0[3] = 0;
|
||||
field_0x0[4] = 0;
|
||||
field_0x0[5] = 0;
|
||||
field_0xc = 0xf0;
|
||||
field_0xe = 0x0c;
|
||||
field_0x1a = 0x40;
|
||||
field_0x10[0] = 0;
|
||||
field_0x10[1] = 1;
|
||||
field_0x10[2] = 1;
|
||||
field_0x10[3] = 0x7fff;
|
||||
field_0x10[4] = 0x4000;
|
||||
mPanPower[0] = 0;
|
||||
mPanPower[1] = 1;
|
||||
mPanPower[2] = 1;
|
||||
mPanPower[3] = 0x7fff;
|
||||
mPanPower[4] = 0x4000;
|
||||
field_0x20 = 0;
|
||||
field_0x24 = 0;
|
||||
field_0x28 = 0;
|
||||
@@ -52,17 +52,17 @@ void JASystem::TRegisterParam::init() {
|
||||
|
||||
/* 8027E378-8027E3E0 .text inherit__Q28JASystem14TRegisterParamFRCQ28JASystem14TRegisterParam */
|
||||
void JASystem::TRegisterParam::inherit(const JASystem::TRegisterParam& param_1) {
|
||||
field_0x0 = 0;
|
||||
field_0x2 = 0;
|
||||
field_0x4 = 0;
|
||||
field_0x6 = 0;
|
||||
field_0x8 = 0;
|
||||
field_0xa = 0;
|
||||
field_0x0[0] = 0;
|
||||
field_0x0[1] = 0;
|
||||
field_0x0[2] = 0;
|
||||
field_0x0[3] = 0;
|
||||
field_0x0[4] = 0;
|
||||
field_0x0[5] = 0;
|
||||
field_0xc = param_1.field_0xc;
|
||||
field_0xe = param_1.field_0xe;
|
||||
field_0x1a = param_1.field_0x1a;
|
||||
for (int i = 0; i < 5; i++) {
|
||||
field_0x10[i] = param_1.field_0x10[i];
|
||||
mPanPower[i] = param_1.mPanPower[i];
|
||||
}
|
||||
field_0x20 = 0;
|
||||
field_0x24 = 0;
|
||||
|
||||
@@ -8,49 +8,49 @@
|
||||
|
||||
/* 8027E3F8-8027E448 .text init__Q28JASystem8TSeqCtrlFv */
|
||||
void JASystem::TSeqCtrl::init() {
|
||||
field_0x0 = NULL;
|
||||
field_0x4 = NULL;
|
||||
field_0x8 = 0;
|
||||
field_0xc = 0;
|
||||
mRawFilePtr = NULL;
|
||||
mCurrentFilePtr = NULL;
|
||||
mWaitTimer = 0;
|
||||
mLoopIndex = 0;
|
||||
for (int i = 0; i < 8; i++) {
|
||||
field_0x10[i] = NULL;
|
||||
field_0x30[i] = 0;
|
||||
mLoopStartPositions[i] = NULL;
|
||||
mLoopTimers[i] = 0;
|
||||
}
|
||||
field_0x40 = 0;
|
||||
field_0x44 = NULL;
|
||||
mPreviousFilePtr = NULL;
|
||||
}
|
||||
|
||||
/* 8027E448-8027E45C .text start__Q28JASystem8TSeqCtrlFPvUl */
|
||||
void JASystem::TSeqCtrl::start(void* param_1, u32 param_2) {
|
||||
field_0x0 = (u8*)param_1;
|
||||
field_0x4 = field_0x0 + param_2;
|
||||
mRawFilePtr = (u8*)param_1;
|
||||
mCurrentFilePtr = mRawFilePtr + param_2;
|
||||
}
|
||||
|
||||
/* 8027E45C-8027E500 .text loopEnd__Q28JASystem8TSeqCtrlFv */
|
||||
int JASystem::TSeqCtrl::loopEnd() {
|
||||
u32 var1 = field_0xc;
|
||||
u32 var1 = mLoopIndex;
|
||||
if (var1 == 0) {
|
||||
JUT_WARN(45, "%s", "cannot loopE for call-stack is NULL");
|
||||
return 0;
|
||||
}
|
||||
u16 var3 = field_0x30[var1 - 1];
|
||||
u16 var3 = mLoopTimers[var1 - 1];
|
||||
if (var3) {
|
||||
var3--;
|
||||
}
|
||||
if (var3 == 0) {
|
||||
field_0xc--;
|
||||
mLoopIndex--;
|
||||
return true;
|
||||
}
|
||||
field_0x30[var1 - 1] = var3;
|
||||
field_0x4 = field_0x10[field_0xc - 1];
|
||||
mLoopTimers[var1 - 1] = var3;
|
||||
mCurrentFilePtr = mLoopStartPositions[mLoopIndex - 1];
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8027E500-8027E530 .text waitCountDown__Q28JASystem8TSeqCtrlFv */
|
||||
bool JASystem::TSeqCtrl::waitCountDown() {
|
||||
if (field_0x8 > 0) {
|
||||
field_0x8--;
|
||||
if (field_0x8) {
|
||||
if (mWaitTimer > 0) {
|
||||
mWaitTimer--;
|
||||
if (mWaitTimer) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -59,24 +59,24 @@ bool JASystem::TSeqCtrl::waitCountDown() {
|
||||
|
||||
/* 8027E530-8027E568 .text callIntr__Q28JASystem8TSeqCtrlFPv */
|
||||
bool JASystem::TSeqCtrl::callIntr(void* param_1) {
|
||||
if (field_0x44) {
|
||||
if (mPreviousFilePtr) {
|
||||
return false;
|
||||
}
|
||||
field_0x44 = field_0x4;
|
||||
field_0x4 = (u8*)param_1;
|
||||
field_0x40 = field_0x8;
|
||||
field_0x8 = 0;
|
||||
mPreviousFilePtr = mCurrentFilePtr;
|
||||
mCurrentFilePtr = (u8*)param_1;
|
||||
field_0x40 = mWaitTimer;
|
||||
mWaitTimer = 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8027E568-8027E59C .text retIntr__Q28JASystem8TSeqCtrlFv */
|
||||
bool JASystem::TSeqCtrl::retIntr() {
|
||||
if (!field_0x44) {
|
||||
if (!mPreviousFilePtr) {
|
||||
return false;
|
||||
}
|
||||
field_0x8 = field_0x40;
|
||||
field_0x4 = field_0x44;
|
||||
field_0x44 = NULL;
|
||||
mWaitTimer = field_0x40;
|
||||
mCurrentFilePtr = mPreviousFilePtr;
|
||||
mPreviousFilePtr = NULL;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
+623
-135
File diff suppressed because it is too large
Load Diff
+102
-102
@@ -20,25 +20,25 @@ JASystem::TTrack::TTrack() {
|
||||
field_0x364 = 0.0f;
|
||||
field_0x368 = 0.0f;
|
||||
field_0x36c = 0;
|
||||
field_0x370 = 0;
|
||||
mUpdateFlags = 0;
|
||||
field_0x374 = 0;
|
||||
field_0x376 = 0x78;
|
||||
field_0x378 = 0x78;
|
||||
field_0x37a = 0;
|
||||
field_0x37b = 0;
|
||||
field_0x37c = 0;
|
||||
field_0x37d = 0;
|
||||
mPauseStatus = 0;
|
||||
mVolumeMode = 0;
|
||||
field_0x37e = 0;
|
||||
field_0x385 = 0;
|
||||
mIsPaused = 0;
|
||||
field_0x386 = 0;
|
||||
field_0x387 = 0;
|
||||
field_0x388 = 0;
|
||||
field_0x389 = 0;
|
||||
field_0xf8.init();
|
||||
mChannelUpdater.init();
|
||||
for (int i = 0; i < 12; i++) {
|
||||
field_0x304[i] = Player::sAdsTable[i];
|
||||
}
|
||||
Calc::bzero(&field_0x16c, sizeof(TimedParam_));
|
||||
Calc::bzero(&mTimedParam, sizeof(TimedParam_));
|
||||
}
|
||||
|
||||
/* 80280A34-80280A80 .text __ct__Q38JASystem6TTrack11TimedParam_Fv */
|
||||
@@ -46,16 +46,16 @@ JASystem::TTrack::TimedParam_::TimedParam_() {}
|
||||
|
||||
/* 80280A80-80280C10 .text init__Q28JASystem6TTrackFv */
|
||||
void JASystem::TTrack::init() {
|
||||
field_0x0.init();
|
||||
field_0x48.init();
|
||||
mSeqCtrl.init();
|
||||
mTrackPort.init();
|
||||
field_0x88.init();
|
||||
field_0xb4.init();
|
||||
field_0xf8.initAllocChannel(0);
|
||||
mNoteMgr.init();
|
||||
mChannelUpdater.initAllocChannel(0);
|
||||
initTimed();
|
||||
field_0x28c.init();
|
||||
field_0x2fc[0] = 0x0f;
|
||||
mRegisterParam.init();
|
||||
mOscRoute[0] = 0x0f;
|
||||
field_0x2cc[0] = Player::sEnvelopeDef;
|
||||
field_0x2fc[1] = 0x0f;
|
||||
mOscRoute[1] = 0x0f;
|
||||
field_0x2cc[1] = Player::sEnvelopeDef;
|
||||
mParent = NULL;
|
||||
for (int i = 0; i < 16; i++) {
|
||||
@@ -67,23 +67,23 @@ void JASystem::TTrack::init() {
|
||||
field_0x364 = 0.0f;
|
||||
field_0x368 = 1.0f;
|
||||
field_0x36c = 0;
|
||||
field_0xec.init();
|
||||
field_0x370 = 0;
|
||||
mVibrate.init();
|
||||
mUpdateFlags = 0;
|
||||
field_0x374 = 0;
|
||||
field_0x376 = 0x78;
|
||||
field_0x378 = 0x30;
|
||||
updateTempo();
|
||||
field_0x37a = 0;
|
||||
field_0x37b = 0;
|
||||
field_0x37c = 10;
|
||||
field_0x37d = 0;
|
||||
mPauseStatus = 10;
|
||||
mVolumeMode = 0;
|
||||
field_0x37e = 0;
|
||||
for (int i = 0; i < 3; i++) {
|
||||
field_0x37f[i] = 0;
|
||||
field_0x382[i] = 0;
|
||||
field_0xf8.field_0x62[i] = 0x0d;
|
||||
mCalcTypes[i] = 0;
|
||||
mParentCalcTypes[i] = 0;
|
||||
mChannelUpdater.mCalcTypes[i] = 0x0d;
|
||||
}
|
||||
field_0x385 = 0;
|
||||
mIsPaused = 0;
|
||||
field_0x386 = 0;
|
||||
field_0x387 = 1;
|
||||
field_0x388 = 0;
|
||||
@@ -99,18 +99,18 @@ void JASystem::TTrack::inherit() {
|
||||
field_0x368 = mParent->field_0x368;
|
||||
field_0x378 = mParent->field_0x378;
|
||||
field_0x387 = mParent->field_0x387;
|
||||
field_0x385 = mParent->field_0x385;
|
||||
field_0x37c = mParent->field_0x37c;
|
||||
field_0x37d = mParent->field_0x37d;
|
||||
mIsPaused = mParent->mIsPaused;
|
||||
mPauseStatus = mParent->mPauseStatus;
|
||||
mVolumeMode = mParent->mVolumeMode;
|
||||
field_0x386 = mParent->field_0x386;
|
||||
if (field_0x37b & 2) {
|
||||
return;
|
||||
}
|
||||
field_0x28c.inherit(mParent->field_0x28c);
|
||||
mRegisterParam.inherit(mParent->mRegisterParam);
|
||||
for (int i = 0; i < 3; i++) {
|
||||
field_0x37f[i] = mParent->field_0x37f[i];
|
||||
field_0x382[i] = mParent->field_0x382[i];
|
||||
field_0xf8.field_0x62[i] = mParent->field_0xf8.field_0x62[i];
|
||||
mCalcTypes[i] = mParent->mCalcTypes[i];
|
||||
mParentCalcTypes[i] = mParent->mParentCalcTypes[i];
|
||||
mChannelUpdater.mCalcTypes[i] = mParent->mChannelUpdater.mCalcTypes[i];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -132,19 +132,19 @@ s8 JASystem::TTrack::mainProc() {
|
||||
}
|
||||
field_0x364 -= 1.0f;
|
||||
}
|
||||
if (mParent && field_0xf8.field_0x0) {
|
||||
TChannel* channel = field_0xf8.getListHead(0);
|
||||
if (mParent && mChannelUpdater.field_0x0) {
|
||||
TChannel* channel = mChannelUpdater.getListHead(0);
|
||||
if (channel) {
|
||||
mParent->field_0xf8.addListHead(channel, 0);
|
||||
channel->field_0x4 = &mParent->field_0xf8;
|
||||
field_0xf8.field_0x0--;
|
||||
mParent->field_0xf8.field_0x0++;
|
||||
mParent->mChannelUpdater.addListHead(channel, 0);
|
||||
channel->field_0x4 = &mParent->mChannelUpdater;
|
||||
mChannelUpdater.field_0x0--;
|
||||
mParent->mChannelUpdater.field_0x0++;
|
||||
}
|
||||
}
|
||||
field_0x88.request(7);
|
||||
field_0x88.timerProcess();
|
||||
tryInterrupt();
|
||||
if (field_0x385 == 0 && (field_0x37c & 2) == 0) {
|
||||
if (mIsPaused == 0 && (mPauseStatus & 2) == 0) {
|
||||
// TODO:
|
||||
}
|
||||
updateSeq(0, false);
|
||||
@@ -171,14 +171,14 @@ void JASystem::TTrack::setInterrupt(u16 param_1) {
|
||||
|
||||
/* 80280FA8-80281004 .text tryInterrupt__Q28JASystem6TTrackFv */
|
||||
bool JASystem::TTrack::tryInterrupt() {
|
||||
if (field_0x0.field_0x44) {
|
||||
if (mSeqCtrl.mPreviousFilePtr) {
|
||||
return false;
|
||||
}
|
||||
void* var1 = field_0x88.checkIntr();
|
||||
if (var1 == NULL) {
|
||||
return false;
|
||||
}
|
||||
return field_0x0.callIntr(var1);
|
||||
return mSeqCtrl.callIntr(var1);
|
||||
}
|
||||
|
||||
/* 80281004-8028100C .text assignExtBuffer__Q28JASystem6TTrackFPQ38JASystem6TTrack11TOuterParam */
|
||||
@@ -189,16 +189,16 @@ void JASystem::TTrack::assignExtBuffer(TOuterParam* param_1) {
|
||||
/* 8028100C-80281050 .text releaseChannelAll__Q28JASystem6TTrackFv */
|
||||
void JASystem::TTrack::releaseChannelAll() {
|
||||
if (mParent) {
|
||||
mParent->field_0xf8.receiveAllChannels(&field_0xf8);
|
||||
mParent->mChannelUpdater.receiveAllChannels(&mChannelUpdater);
|
||||
} else {
|
||||
TGlobalChannel::releaseAll(&field_0xf8);
|
||||
TGlobalChannel::releaseAll(&mChannelUpdater);
|
||||
}
|
||||
}
|
||||
|
||||
/* 80281050-80281088 .text flushAll__Q28JASystem6TTrackFv */
|
||||
void JASystem::TTrack::flushAll() {
|
||||
field_0xf8.stopAll();
|
||||
field_0xf8.stopAllRelease();
|
||||
mChannelUpdater.stopAll();
|
||||
mChannelUpdater.stopAllRelease();
|
||||
}
|
||||
|
||||
/* 80281088-80281138 .text moveFreeChannel__Q28JASystem6TTrackFPQ28JASystem11TChannelMgrPQ28JASystem11TChannelMgri */
|
||||
@@ -226,28 +226,28 @@ int JASystem::TTrack::moveFreeChannel(TChannelMgr* param_1, TChannelMgr* param_2
|
||||
/* 80281138-802811DC .text initTimed__Q28JASystem6TTrackFv */
|
||||
void JASystem::TTrack::initTimed() {
|
||||
for (u8 i = 0; i < 18; i++) {
|
||||
field_0x16c.move[i].field_0x8 = 0.0f;
|
||||
field_0x16c.move[i].field_0x0 = 1.0f;
|
||||
field_0x16c.move[i].field_0x4 = 1.0f;
|
||||
mTimedParam.mMoveParams[i].mMoveTime = 0.0f;
|
||||
mTimedParam.mMoveParams[i].mCurrentValue = 1.0f;
|
||||
mTimedParam.mMoveParams[i].mTargetValue = 1.0f;
|
||||
}
|
||||
field_0x16c.move[1].field_0x0 = 0.0f;
|
||||
field_0x16c.move[1].field_0x4 = 0.0f;
|
||||
field_0x16c.move[3].field_0x0 = 0.5f;
|
||||
field_0x16c.move[3].field_0x4 = 0.5f;
|
||||
field_0x16c.move[16].field_0x0 = 0.5f;
|
||||
field_0x16c.move[16].field_0x4 = 0.5f;
|
||||
field_0x16c.move[17].field_0x0 = 0.0f;
|
||||
field_0x16c.move[17].field_0x4 = 0.0f;
|
||||
field_0x16c.move[2].field_0x0 = 0.0f;
|
||||
field_0x16c.move[2].field_0x4 = 0.0f;
|
||||
field_0x16c.move[4].field_0x0 = 0.0f;
|
||||
field_0x16c.move[4].field_0x4 = 0.0f;
|
||||
mTimedParam.mMoveParams[1].mCurrentValue = 0.0f;
|
||||
mTimedParam.mMoveParams[1].mTargetValue = 0.0f;
|
||||
mTimedParam.mMoveParams[3].mCurrentValue = 0.5f;
|
||||
mTimedParam.mMoveParams[3].mTargetValue = 0.5f;
|
||||
mTimedParam.mMoveParams[16].mCurrentValue = 0.5f;
|
||||
mTimedParam.mMoveParams[16].mTargetValue = 0.5f;
|
||||
mTimedParam.mMoveParams[17].mCurrentValue = 0.0f;
|
||||
mTimedParam.mMoveParams[17].mTargetValue = 0.0f;
|
||||
mTimedParam.mMoveParams[2].mCurrentValue = 0.0f;
|
||||
mTimedParam.mMoveParams[2].mTargetValue = 0.0f;
|
||||
mTimedParam.mMoveParams[4].mCurrentValue = 0.0f;
|
||||
mTimedParam.mMoveParams[4].mTargetValue = 0.0f;
|
||||
for (u8 i = 1; i < 4; i++) {
|
||||
field_0x16c.move[i + 12].field_0x0 = 0.0f;
|
||||
field_0x16c.move[i + 12].field_0x4 = 0.0f;
|
||||
mTimedParam.mMoveParams[i + 12].mCurrentValue = 0.0f;
|
||||
mTimedParam.mMoveParams[i + 12].mTargetValue = 0.0f;
|
||||
}
|
||||
field_0x16c.move[5].field_0x0 = 0.0f;
|
||||
field_0x16c.move[5].field_0x4 = 0.0f;
|
||||
mTimedParam.mMoveParams[5].mCurrentValue = 0.0f;
|
||||
mTimedParam.mMoveParams[5].mTargetValue = 0.0f;
|
||||
}
|
||||
|
||||
static void dummy() {
|
||||
@@ -258,49 +258,49 @@ static void dummy() {
|
||||
/* 802811DC-80281258 .text connectBus__Q28JASystem6TTrackFii */
|
||||
void JASystem::TTrack::connectBus(int line, int param_2) {
|
||||
JUT_ASSERT(486, line < (6));
|
||||
field_0xf8.field_0x4e[line] = param_2;
|
||||
mChannelUpdater.field_0x4e[line] = param_2;
|
||||
}
|
||||
|
||||
/* 80281258-802814AC .text noteOn__Q28JASystem6TTrackFUclllUl */
|
||||
int JASystem::TTrack::noteOn(u8 param_1, s32 param_2, s32 param_3, s32 param_4, u32 param_5) {
|
||||
if (field_0x386 && (field_0x37c & 0x40)) {
|
||||
if (field_0x386 && (mPauseStatus & 0x40)) {
|
||||
return -1;
|
||||
}
|
||||
noteOff(param_1, 0);
|
||||
TChannelMgr* r31 = &field_0xf8;
|
||||
TChannelMgr* r31 = &mChannelUpdater;
|
||||
TTrack* parent = mParent;
|
||||
while (r31->field_0x0 == 0 || r31->field_0x8 == 0) {
|
||||
if (!parent) {
|
||||
r31 = &field_0xf8;
|
||||
r31 = &mChannelUpdater;
|
||||
break;
|
||||
}
|
||||
r31 = &parent->field_0xf8;
|
||||
r31 = &parent->mChannelUpdater;
|
||||
parent = parent->mParent;
|
||||
}
|
||||
if (field_0x37b == 4) {
|
||||
JUT_ASSERT(527, mParent != NULL);
|
||||
if (r31 != &mParent->field_0xf8) {
|
||||
if (moveFreeChannel(r31, &mParent->field_0xf8, 1) != 1) {
|
||||
if (r31 != &mParent->mChannelUpdater) {
|
||||
if (moveFreeChannel(r31, &mParent->mChannelUpdater, 1) != 1) {
|
||||
OSReport("in Player (NOTE-MODE) ... ボイス借用に失敗しました!! (%d)\n", r31->field_0x0);
|
||||
}
|
||||
r31 = &mParent->field_0xf8;
|
||||
r31 = &mParent->mChannelUpdater;
|
||||
}
|
||||
} else if (r31 != &field_0xf8) {
|
||||
if (moveFreeChannel(r31, &field_0xf8, 1) != 1) {
|
||||
} else if (r31 != &mChannelUpdater) {
|
||||
if (moveFreeChannel(r31, &mChannelUpdater, 1) != 1) {
|
||||
OSReport("in Player ボイス借用に失敗しました!! (%d)\n", r31->field_0x0);
|
||||
}
|
||||
r31 = &field_0xf8;
|
||||
r31 = &mChannelUpdater;
|
||||
}
|
||||
u8 bankNum = field_0x28c.getBankNumber();
|
||||
u8 bankNum = mRegisterParam.getBankNumber();
|
||||
u8 physNum = BankMgr::getPhysicalNumber(bankNum);
|
||||
u8 progNum = field_0x28c.getProgramNumber();
|
||||
u8 progNum = mRegisterParam.getProgramNumber();
|
||||
TChannel* channel = BankMgr::noteOn(r31, physNum, progNum, param_2, param_3, param_4);
|
||||
if (!channel) {
|
||||
return -1;
|
||||
}
|
||||
field_0xb4.setChannel(param_1, channel);
|
||||
mNoteMgr.setChannel(param_1, channel);
|
||||
channel->field_0xe8 = param_5;
|
||||
channel->setPanPower(field_0x28c.field_0x10[0], field_0x28c.field_0x10[1], field_0x28c.field_0x10[2], 0.0f);
|
||||
channel->setPanPower(mRegisterParam.mPanPower[0], mRegisterParam.mPanPower[1], mRegisterParam.mPanPower[2], 0.0f);
|
||||
overwriteOsc(channel);
|
||||
if (field_0x374) {
|
||||
channel->directReleaseOsc(0, field_0x374);
|
||||
@@ -313,7 +313,7 @@ void JASystem::TTrack::overwriteOsc(TChannel* param_1) {
|
||||
/* Nonmatching */
|
||||
u32 r28;
|
||||
for (int i = 0; i < 2; i++) {
|
||||
u32 var1 = field_0x2fc[i];
|
||||
u32 var1 = mOscRoute[i];
|
||||
if (var1 == 0x0f) {
|
||||
continue;
|
||||
}
|
||||
@@ -339,7 +339,7 @@ void JASystem::TTrack::overwriteOsc(TChannel* param_1) {
|
||||
|
||||
/* 802815DC-8028165C .text noteOff__Q28JASystem6TTrackFUcUs */
|
||||
bool JASystem::TTrack::noteOff(u8 param_1, u16 param_2) {
|
||||
TChannel* channel = field_0xb4.getChannel(param_1);
|
||||
TChannel* channel = mNoteMgr.getChannel(param_1);
|
||||
if (!channel) {
|
||||
return false;
|
||||
}
|
||||
@@ -348,13 +348,13 @@ bool JASystem::TTrack::noteOff(u8 param_1, u16 param_2) {
|
||||
} else {
|
||||
channel->stop(param_2);
|
||||
}
|
||||
field_0xb4.releaseChannel(param_1);
|
||||
mNoteMgr.releaseChannel(param_1);
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 8028165C-802816C4 .text gateOn__Q28JASystem6TTrackFUclll */
|
||||
int JASystem::TTrack::gateOn(u8 param_1, s32 param_2, s32 param_3, s32 param_4) {
|
||||
TChannel* channel = field_0xb4.getChannel(param_1);
|
||||
TChannel* channel = mNoteMgr.getChannel(param_1);
|
||||
if (!channel) {
|
||||
return -1;
|
||||
}
|
||||
@@ -364,7 +364,7 @@ int JASystem::TTrack::gateOn(u8 param_1, s32 param_2, s32 param_3, s32 param_4)
|
||||
|
||||
/* 802816C4-80281708 .text checkNoteStop__Q28JASystem6TTrackFl */
|
||||
int JASystem::TTrack::checkNoteStop(s32 param_1) {
|
||||
TChannel* channel = field_0xb4.getChannel(param_1);
|
||||
TChannel* channel = mNoteMgr.getChannel(param_1);
|
||||
if (channel == NULL) {
|
||||
return true;
|
||||
}
|
||||
@@ -390,7 +390,7 @@ void JASystem::TTrack::oscSetupFull(u8 param_1, u32 param_2, u32 param_3) {
|
||||
if (param_2 == 0) {
|
||||
field_0x2cc[var1].table = NULL;
|
||||
}
|
||||
field_0x2cc[var1].table = field_0x0.field_0x0 + param_2;
|
||||
field_0x2cc[var1].table = mSeqCtrl.mRawFilePtr + param_2;
|
||||
}
|
||||
if (!var5) {
|
||||
return;
|
||||
@@ -398,7 +398,7 @@ void JASystem::TTrack::oscSetupFull(u8 param_1, u32 param_2, u32 param_3) {
|
||||
if (param_3 == 0) {
|
||||
field_0x2cc[var1].rel_table = Player::sRelTable;
|
||||
}
|
||||
field_0x2cc[var1].rel_table = field_0x0.field_0x0 + param_2;
|
||||
field_0x2cc[var1].rel_table = mSeqCtrl.mRawFilePtr + param_2;
|
||||
}
|
||||
|
||||
/* 802817E4-80281850 .text oscSetupSimpleEnv__Q28JASystem6TTrackFUcUl */
|
||||
@@ -406,10 +406,10 @@ void JASystem::TTrack::oscSetupSimpleEnv(u8 param_1, u32 param_2) {
|
||||
switch (param_1) {
|
||||
case 0:
|
||||
field_0x2cc[0] = Player::sEnvelopeDef;
|
||||
field_0x2cc[0].table = field_0x0.field_0x0 + param_2;
|
||||
field_0x2cc[0].table = mSeqCtrl.mRawFilePtr + param_2;
|
||||
break;
|
||||
case 1:
|
||||
field_0x2cc[0].rel_table = field_0x0.field_0x0 + param_2;
|
||||
field_0x2cc[0].rel_table = mSeqCtrl.mRawFilePtr + param_2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -506,7 +506,7 @@ bool JASystem::TTrack::setSeqData(u8* param_1, s32, int) {
|
||||
/* Nonmatching */
|
||||
init();
|
||||
field_0x37b = 3;
|
||||
field_0x0.start(param_1, 0);
|
||||
mSeqCtrl.start(param_1, 0);
|
||||
updateTrackAll();
|
||||
field_0x37e = 2;
|
||||
return true;
|
||||
@@ -546,7 +546,7 @@ void JASystem::TTrack::muteTrack(bool) {
|
||||
/* 80282B44-80282B84 .text start__Q28JASystem6TTrackFPvUl */
|
||||
bool JASystem::TTrack::start(void* param_1, u32 param_2) {
|
||||
/* Nonmatching */
|
||||
field_0x0.start(param_1, param_2);
|
||||
mSeqCtrl.start(param_1, param_2);
|
||||
field_0x37e = 1;
|
||||
updateTrackAll();
|
||||
return false;
|
||||
@@ -562,15 +562,15 @@ int JASystem::TTrack::loadTbl(u32 param_1, u32 param_2, u32 param_3) {
|
||||
/* Nonmatching */
|
||||
switch (param_3) {
|
||||
case 4:
|
||||
return field_0x0.field_0x0[param_1 + param_2];
|
||||
return mSeqCtrl.mRawFilePtr[param_1 + param_2];
|
||||
case 5:
|
||||
return field_0x0.get16(param_1 + param_2 * 2);
|
||||
return mSeqCtrl.get16(param_1 + param_2 * 2);
|
||||
case 6:
|
||||
return field_0x0.get24(param_1 + param_2 * 3);
|
||||
return mSeqCtrl.get24(param_1 + param_2 * 3);
|
||||
case 7:
|
||||
return field_0x0.get32(param_1 + param_2 * 4);
|
||||
return mSeqCtrl.get32(param_1 + param_2 * 4);
|
||||
case 8:
|
||||
return field_0x0.get32(param_1 + param_2);
|
||||
return mSeqCtrl.get32(param_1 + param_2);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -580,12 +580,12 @@ int JASystem::TTrack::exchangeRegisterValue(u8) {
|
||||
}
|
||||
|
||||
/* 80282DC0-80282ED4 .text readReg32__Q28JASystem6TTrackFUc */
|
||||
void JASystem::TTrack::readReg32(u8) {
|
||||
u32 JASystem::TTrack::readReg32(u8) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80282ED4-802830AC .text readReg16__Q28JASystem6TTrackFUc */
|
||||
void JASystem::TTrack::readReg16(u8) {
|
||||
u16 JASystem::TTrack::readReg16(u8) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
@@ -602,13 +602,13 @@ void JASystem::TTrack::writeRegParam(u8) {
|
||||
/* 802836FC-80283720 .text readSelfPort__Q28JASystem6TTrackFi */
|
||||
u16 JASystem::TTrack::readSelfPort(int param_1) {
|
||||
/* Nonmatching */
|
||||
return field_0x48.readImport(param_1);
|
||||
return mTrackPort.readImport(param_1);
|
||||
}
|
||||
|
||||
/* 80283720-80283744 .text writeSelfPort__Q28JASystem6TTrackFiUs */
|
||||
void JASystem::TTrack::writeSelfPort(int param_1, u16 param_2) {
|
||||
/* Nonmatching */
|
||||
field_0x48.writeExport(param_1, param_2);
|
||||
mTrackPort.writeExport(param_1, param_2);
|
||||
}
|
||||
|
||||
/* 80283744-802837AC .text writePortAppDirect__Q28JASystem6TTrackFUlUs */
|
||||
@@ -704,15 +704,15 @@ JASystem::TVibrate::TVibrate() {
|
||||
/* 80283ECC-80283EE4 .text init__Q28JASystem8TVibrateFv */
|
||||
void JASystem::TVibrate::init() {
|
||||
/* Nonmatching */
|
||||
field_0x8 = 1.0f / 18.0f;
|
||||
field_0x4 = 0.0f;
|
||||
mPitch = 1.0f / 18.0f;
|
||||
mDepth = 0.0f;
|
||||
field_0x0 = 0.0f;
|
||||
}
|
||||
|
||||
/* 80283EE4-80283F18 .text incCounter__Q28JASystem8TVibrateFv */
|
||||
void JASystem::TVibrate::incCounter() {
|
||||
/* Nonmatching */
|
||||
field_0x0 += field_0x8;
|
||||
field_0x0 += mPitch;
|
||||
if (!(field_0x0 >= 4.0)) {
|
||||
return;
|
||||
}
|
||||
@@ -727,10 +727,10 @@ f32 JASystem::TVibrate::getValue() const {
|
||||
/* 80283FD0-80283FE8 .text __ct__Q38JASystem6TTrack10MoveParam_Fv */
|
||||
JASystem::TTrack::MoveParam_::MoveParam_() {
|
||||
/* Nonmatching */
|
||||
field_0x0 = 0.0f;
|
||||
field_0x4 = 0.0f;
|
||||
field_0x8 = 0.0f;
|
||||
field_0xc = 0.0f;
|
||||
mCurrentValue = 0.0f;
|
||||
mTargetValue = 0.0f;
|
||||
mMoveTime = 0.0f;
|
||||
mMoveAmount = 0.0f;
|
||||
}
|
||||
|
||||
/* 80283FE8-80284118 .text __ct__Q38JASystem6TTrack12AInnerParam_Fv */
|
||||
|
||||
@@ -12,36 +12,36 @@ const u32 MAX_PORTS = 16;
|
||||
void JASystem::TTrackPort::init() {
|
||||
/* Nonmatching */
|
||||
for (int i = 0; i < 16; i++) {
|
||||
field_0x0[i] = 0;
|
||||
field_0x10[i] = 0;
|
||||
field_0x20[i] = 0;
|
||||
mImportFlag[i] = 0;
|
||||
mExportFlag[i] = 0;
|
||||
mValue[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* 802842E8-8028437C .text readImport__Q28JASystem10TTrackPortFi */
|
||||
u16 JASystem::TTrackPort::readImport(int port_num) {
|
||||
JUT_ASSERT(31, port_num >= 0 && port_num < MAX_PORTS);
|
||||
field_0x0[port_num] = 0;
|
||||
return field_0x20[port_num];
|
||||
mImportFlag[port_num] = 0;
|
||||
return mValue[port_num];
|
||||
}
|
||||
|
||||
/* 8028437C-80284414 .text readExport__Q28JASystem10TTrackPortFi */
|
||||
u16 JASystem::TTrackPort::readExport(int port_num) {
|
||||
JUT_ASSERT(38, port_num >= 0 && port_num < MAX_PORTS);
|
||||
field_0x10[port_num] = 0;
|
||||
return field_0x20[port_num];
|
||||
mExportFlag[port_num] = 0;
|
||||
return mValue[port_num];
|
||||
}
|
||||
|
||||
/* 80284414-802844AC .text writeImport__Q28JASystem10TTrackPortFiUs */
|
||||
void JASystem::TTrackPort::writeImport(int port_num, u16 value) {
|
||||
JUT_ASSERT(45, port_num >= 0 && port_num < MAX_PORTS);
|
||||
field_0x0[port_num] = 1;
|
||||
field_0x20[port_num] = value;
|
||||
mImportFlag[port_num] = 1;
|
||||
mValue[port_num] = value;
|
||||
}
|
||||
|
||||
/* 802844AC-80284548 .text writeExport__Q28JASystem10TTrackPortFiUs */
|
||||
void JASystem::TTrackPort::writeExport(int port_num, u16 value) {
|
||||
JUT_ASSERT(51, port_num >= 0 && port_num < MAX_PORTS);
|
||||
field_0x10[port_num] = 1;
|
||||
field_0x20[port_num] = value;
|
||||
mExportFlag[port_num] = 1;
|
||||
mValue[port_num] = value;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user