Merge pull request #538 from Jcw87/JAudio

JASTrack, JASNoteMgr, JASOuterParam, JASSeqParser
This commit is contained in:
Jasper St. Pierre
2023-11-04 10:35:01 -07:00
committed by GitHub
11 changed files with 1138 additions and 200 deletions
+2 -2
View File
@@ -662,8 +662,8 @@ config.libs = [
Object(Matching, "JSystem/JAudio/JASKernelDebug.cpp"),
Object(Matching, "JSystem/JAudio/JASCmdStack.cpp"),
Object(Matching, "JSystem/JAudio/JASSystemHeap.cpp"),
Object(NonMatching, "JSystem/JAudio/JASNoteMgr.cpp"),
Object(NonMatching, "JSystem/JAudio/JASOuterParam.cpp"),
Object(Matching, "JSystem/JAudio/JASNoteMgr.cpp"),
Object(Matching, "JSystem/JAudio/JASOuterParam.cpp"),
Object(Matching, "JSystem/JAudio/JASPlayer_impl.cpp"),
Object(Matching, "JSystem/JAudio/JASRegisterParam.cpp"),
Object(NonMatching, "JSystem/JAudio/JASSeqCtrl.cpp"),
+1 -1
View File
@@ -29,7 +29,7 @@ namespace JASystem {
f32 bankOscToOfs(u32);
void effectOsc(u32, f32);
int getOscState(u32) const;
bool isOsc(u32);
BOOL isOsc(u32);
void copyOsc(u32, TOscillator::Osc_*);
void overwriteOsc(u32, TOscillator::Osc_*);
void setKeySweepTarget(u8, u32);
+1 -1
View File
@@ -14,7 +14,7 @@ namespace JASystem {
bool waitCountDown();
bool callIntr(void*);
bool retIntr();
u32 get16(u32) const;
u16 get16(u32) const;
u32 get24(u32) const;
u32 get32(u32) const;
u32 read16();
+75
View File
@@ -0,0 +1,75 @@
#ifndef JASSEQPARSER_H
#define JASSEQPARSER_H
#include "dolphin/types.h"
namespace JASystem {
class TTrack;
class TSeqParser {
public:
int cmdOpenTrack(TTrack*, u32*);
int cmdOpenTrackBros(TTrack*, u32*);
int cmdCall(TTrack*, u32*);
int cmdRet(TTrack*, u32*);
int cmdJmp(TTrack*, u32*);
int cmdLoopS(TTrack*, u32*);
int cmdLoopE(TTrack*, u32*);
int cmdReadPort(TTrack*, u32*);
int cmdWritePort(TTrack*, u32*);
int cmdParentWritePort(TTrack*, u32*);
int cmdChildWritePort(TTrack*, u32*);
int cmdCheckPortImport(TTrack*, u32*);
int cmdCheckPortExport(TTrack*, u32*);
int cmdWait(TTrack*, u32*);
int cmdSetLastNote(TTrack*, u32*);
int cmdTimeRelate(TTrack*, u32*);
int cmdSimpleOsc(TTrack*, u32*);
int cmdSimpleEnv(TTrack*, u32*);
int cmdSimpleADSR(TTrack*, u32*);
int cmdTranspose(TTrack*, u32*);
int cmdCloseTrack(TTrack*, u32*);
int cmdOutSwitch(TTrack*, u32*);
int cmdUpdateSync(TTrack*, u32*);
int cmdBusConnect(TTrack*, u32*);
int cmdPauseStatus(TTrack*, u32*);
int cmdVolumeMode(TTrack*, u32*);
int cmdSetInterrupt(TTrack*, u32*);
int cmdDisInterrupt(TTrack*, u32*);
int cmdClrI(TTrack*, u32*);
int cmdSetI(TTrack*, u32*);
int cmdRetI(TTrack*, u32*);
int cmdIntTimer(TTrack*, u32*);
int cmdSyncCPU(TTrack*, u32*);
int cmdFlushAll(TTrack*, u32*);
int cmdFlushRelease(TTrack*, u32*);
int cmdTimeBase(TTrack*, u32*);
int cmdTempo(TTrack*, u32*);
int cmdFinish(TTrack*, u32*);
int cmdNop(TTrack*, u32*);
int cmdPanPowSet(TTrack*, u32*);
int cmdFIRSet(TTrack*, u32*);
int cmdEXTSet(TTrack*, u32*);
int cmdPanSwSet(TTrack*, u32*);
int cmdOscRoute(TTrack*, u32*);
int cmdVibDepth(TTrack*, u32*);
int cmdVibDepthMidi(TTrack*, u32*);
int cmdVibPitch(TTrack*, u32*);
int cmdIIRSet(TTrack*, u32*);
int cmdIIRCutOff(TTrack*, u32*);
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 cmdSetParam(TTrack*, u8);
int cmdWait(TTrack*, u8);
int cmdNoteOff(TTrack*, u8);
int cmdNoteOn(TTrack*, u8);
bool conditionCheck(TTrack*, u8);
void parseSeq(TTrack*);
static int (TSeqParser::*sCmdPList[])(TTrack*, u32*);
};
}
#endif /* JASSEQPARSER_H */
+211
View File
@@ -0,0 +1,211 @@
#ifndef JASTRACK_H
#define JASTRACK_H
#include "JSystem/JAudio/JASChannelMgr.h"
#include "JSystem/JAudio/JASOscillator.h"
#include "JSystem/JAudio/JASRegisterParam.h"
#include "JSystem/JAudio/JASSeqCtrl.h"
#include "JSystem/JAudio/JASSeqParser.h"
#include "JSystem/JAudio/JASTrackInterrupt.h"
#include "JSystem/JAudio/JASTrackPort.h"
#include "JSystem/JUtility/JUTAssert.h"
namespace JASystem {
class TChannel;
class TVibrate {
public:
TVibrate();
void init();
void incCounter();
f32 getValue() const;
/* 0x00 */ f32 field_0x0;
/* 0x04 */ f32 field_0x4;
/* 0x08 */ f32 field_0x8;
};
class TTrack {
public:
class TOuterParam {
public:
TOuterParam();
void initExtBuffer();
void setOuterSwitch(u16);
bool checkOuterSwitch(u16);
void setOuterUpdate(u16);
u16 getOuterUpdate();
s16 getIntFirFilter(u8);
void setParam(u8, f32);
void onSwitch(u16);
void setFirFilter(s16*);
/* 0x00 */ u16 field_0x0;
/* 0x02 */ u16 field_0x2;
/* 0x04 */ f32 field_0x4;
/* 0x08 */ f32 field_0x8;
/* 0x0C */ f32 field_0xc;
/* 0x10 */ f32 field_0x10;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ f32 field_0x18;
/* 0x1C */ s16 field_0x1c[8];
};
class MoveParam_ {
public:
MoveParam_();
/* 0x00 */ f32 field_0x0;
/* 0x04 */ f32 field_0x4;
/* 0x08 */ f32 field_0x8;
/* 0x0C */ f32 field_0xc;
};
class AInnerParam_ {
public:
AInnerParam_();
/* 0x000 */ f32 field_0x0[48];
/* 0x0C0 */ MoveParam_ field_0xc0[4];
/* 0x100 */ f32 field_0x100[8];
};
class TimedParam_ {
public:
TimedParam_();
union {
AInnerParam_ inner;
MoveParam_ move[18];
};
};
class TNoteMgr {
public:
void init();
void endProcess();
void setChannel(int, TChannel*);
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;
};
static const int MAX_CHILDREN = 16;
TTrack();
void init();
void inherit();
s8 mainProc();
void setInterrupt(u16);
bool tryInterrupt();
void assignExtBuffer(TOuterParam*);
void releaseChannelAll();
void flushAll();
static int moveFreeChannel(TChannelMgr*, TChannelMgr*, int);
void initTimed();
void connectBus(int, int);
int noteOn(u8, s32, s32, s32, u32);
void overwriteOsc(TChannel*);
bool noteOff(u8, u16);
int gateOn(u8, s32, s32, s32);
int checkNoteStop(s32);
void oscSetupFull(u8, u32, u32);
void oscSetupSimpleEnv(u8, u32);
void updateOscParam(int, f32);
void oscSetupSimple(u8);
void updateTimedParam();
void updateTrackAll();
void updateTrack(u32);
void updateTempo();
void updateSeq(u32, bool);
int seqTimeToDspTime(s32, u8);
void setParam(int, f32, int);
bool setSeqData(u8*, s32, int);
bool startSeq();
bool stopSeq();
void stopSeqMain();
void noteOffAll();
int close();
void muteTrack(bool);
bool start(void*, u32);
TTrack* openChild(u8, u8);
int loadTbl(u32, u32, u32);
int exchangeRegisterValue(u8);
void readReg32(u8);
void readReg16(u8);
void writeRegDirect(u8, u16);
void writeRegParam(u8);
u16 readSelfPort(int);
void writeSelfPort(int, u16);
int writePortAppDirect(u32, u16);
int readPortAppDirect(u32, u16*);
void routeTrack(u32);
int writePortApp(u32, u16);
int readPortApp(u32, u16*);
void pause(bool, bool);
int getTranspose() const;
void setTempo(u16);
void setTimebase(u16);
f32 panCalc(f32, f32, f32, u8);
static int rootCallback(void*);
static void registerSeqCallback(u16 (*)(TTrack*, u16));
static void newMemPool(int);
TTrack* getParent() { return mParent; }
TTrack* getChild(int index) {
JUT_ASSERT(242, index >= 0);
JUT_ASSERT(243, index < MAX_CHILDREN);
return mChildren[index];
}
/* 0x000 */ union {
TSeqCtrl field_0x0;
TTrack* next;
};
/* 0x048 */ TTrackPort field_0x48;
/* 0x088 */ TIntrMgr field_0x88;
/* 0x0B4 */ TNoteMgr field_0xb4;
/* 0x0EC */ TVibrate field_0xec;
/* 0x0F8 */ TChannelMgr field_0xf8;
/* 0x16C */ TimedParam_ field_0x16c;
/* 0x28C */ TRegisterParam field_0x28c;
/* 0x2BC */ u8 field_0x2bc[0x2cc - 0x2bc];
/* 0x2CC */ TOscillator::Osc_ field_0x2cc[2];
/* 0x2FC */ u32 field_0x2fc[2];
/* 0x304 */ short field_0x304[12];
/* 0x31C */ TTrack* mParent;
/* 0x320 */ TTrack* mChildren[MAX_CHILDREN];
/* 0x360 */ TOuterParam* field_0x360;
/* 0x364 */ f32 field_0x364;
/* 0x368 */ f32 field_0x368;
/* 0x36C */ int field_0x36c;
/* 0x370 */ int field_0x370;
/* 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;
/* 0x386 */ u8 field_0x386;
/* 0x387 */ bool field_0x387;
/* 0x388 */ u8 field_0x388;
/* 0x389 */ u8 field_0x389;
static u16 (*sCallBackFunc)(TTrack*, u16);
static TSeqParser sParser;
static TTrack* sFreeList;
};
}
#endif /* JASTRACK_H */
+1 -1
View File
@@ -112,7 +112,7 @@ int JASystem::TChannel::getOscState(u32 oscnum) const {
}
/* 8028BB14-8028BB98 .text isOsc__Q28JASystem8TChannelFUl */
bool JASystem::TChannel::isOsc(u32 oscnum) {
BOOL JASystem::TChannel::isOsc(u32 oscnum) {
/* Nonmatching */
JUT_ASSERT(284, oscnum < (4));
return osc[oscnum]->field_0x0 != 0;
+43 -11
View File
@@ -3,31 +3,63 @@
// Translation Unit: JASNoteMgr.cpp
//
#include "JASNoteMgr.h"
#include "dolphin/types.h"
#include "JSystem/JAudio/JASTrack.h"
#include "JSystem/JAudio/JASChannel.h"
#include "JSystem/JUtility/JUTAssert.h"
static const int MULTI_MAX = 8;
/* 8027DD54-8027DD94 .text init__Q38JASystem6TTrack8TNoteMgrFv */
void JASystem::TTrack::TNoteMgr::init() {
/* Nonmatching */
field_0x30 = 0;
field_0x34 = 0;
field_0x35 = 0;
field_0x36 = 0;
for (int i = 0; i < MULTI_MAX; i++) {
field_0x0[i] = NULL;
field_0x20[i] = 0;
}
}
/* 8027DD94-8027DDBC .text endProcess__Q38JASystem6TTrack8TNoteMgrFv */
void JASystem::TTrack::TNoteMgr::endProcess() {
/* Nonmatching */
if (field_0x30 == 0xffffffff) {
return;
}
if (field_0x34 != 0) {
return;
}
field_0x0[0] = NULL;
}
/* 8027DDBC-8027DE78 .text setChannel__Q38JASystem6TTrack8TNoteMgrFiPQ28JASystem8TChannel */
void JASystem::TTrack::TNoteMgr::setChannel(int, JASystem::TChannel*) {
/* Nonmatching */
void JASystem::TTrack::TNoteMgr::setChannel(int index, JASystem::TChannel* channel) {
JUT_ASSERT(44, index >= 0);
JUT_ASSERT(45, index < MULTI_MAX);
field_0x0[index] = channel;
field_0x20[index] = channel->field_0xc8;
}
/* 8027DE78-8027DF24 .text releaseChannel__Q38JASystem6TTrack8TNoteMgrFi */
void JASystem::TTrack::TNoteMgr::releaseChannel(int) {
/* Nonmatching */
void JASystem::TTrack::TNoteMgr::releaseChannel(int index) {
JUT_ASSERT(53, index >= 0);
JUT_ASSERT(54, index < MULTI_MAX);
field_0x0[index] = NULL;
}
/* 8027DF24-8027DFD8 .text getChannel__Q38JASystem6TTrack8TNoteMgrFi */
void JASystem::TTrack::TNoteMgr::getChannel(int) {
/* Nonmatching */
JASystem::TChannel* JASystem::TTrack::TNoteMgr::getChannel(int index) {
JUT_ASSERT(61, index >= 0);
if (index >= MULTI_MAX) {
return NULL;
}
TChannel* channel = field_0x0[index];
if (!channel) {
return NULL;
}
if (field_0x20[index] != channel->field_0xc8) {
field_0x0[index] = NULL;
return NULL;
}
return channel;
}
+59 -21
View File
@@ -3,56 +3,94 @@
// Translation Unit: JASOuterParam.cpp
//
#include "JASOuterParam.h"
#include "dolphin/types.h"
#include "JSystem/JAudio/JASTrack.h"
/* 8027DFD8-8027E020 .text __ct__Q38JASystem6TTrack11TOuterParamFv */
JASystem::TTrack::TOuterParam::TOuterParam() {
/* Nonmatching */
field_0x0 = 0;
field_0x2 = 0;
field_0x4 = 0.0f;
field_0x8 = 0.0f;
field_0xc = 0.0f;
field_0x10 = 0.0f;
field_0x14 = 0.0f;
field_0x18 = 0.0f;
for (int i = 0; i < 8; i++) {
field_0x1c[i] = 0;
}
}
/* 8027E020-8027E030 .text initExtBuffer__Q38JASystem6TTrack11TOuterParamFv */
void JASystem::TTrack::TOuterParam::initExtBuffer() {
/* Nonmatching */
field_0x0 = 0;
field_0x2 = 0;
}
/* 8027E030-8027E038 .text setOuterSwitch__Q38JASystem6TTrack11TOuterParamFUs */
void JASystem::TTrack::TOuterParam::setOuterSwitch(unsigned short) {
/* Nonmatching */
void JASystem::TTrack::TOuterParam::setOuterSwitch(u16 param_1) {
field_0x0 = param_1;
}
/* 8027E038-8027E054 .text checkOuterSwitch__Q38JASystem6TTrack11TOuterParamFUs */
void JASystem::TTrack::TOuterParam::checkOuterSwitch(unsigned short) {
/* Nonmatching */
bool JASystem::TTrack::TOuterParam::checkOuterSwitch(u16 param_1) {
return field_0x0 & param_1;
}
/* 8027E054-8027E05C .text setOuterUpdate__Q38JASystem6TTrack11TOuterParamFUs */
void JASystem::TTrack::TOuterParam::setOuterUpdate(unsigned short) {
/* Nonmatching */
void JASystem::TTrack::TOuterParam::setOuterUpdate(u16 param_1) {
field_0x2 = param_1;
}
/* 8027E05C-8027E064 .text getOuterUpdate__Q38JASystem6TTrack11TOuterParamFv */
void JASystem::TTrack::TOuterParam::getOuterUpdate() {
/* Nonmatching */
u16 JASystem::TTrack::TOuterParam::getOuterUpdate() {
return field_0x2;
}
/* 8027E064-8027E074 .text getIntFirFilter__Q38JASystem6TTrack11TOuterParamFUc */
void JASystem::TTrack::TOuterParam::getIntFirFilter(unsigned char) {
/* Nonmatching */
s16 JASystem::TTrack::TOuterParam::getIntFirFilter(u8 param_1) {
return field_0x1c[param_1];
}
/* 8027E074-8027E110 .text setParam__Q38JASystem6TTrack11TOuterParamFUcf */
void JASystem::TTrack::TOuterParam::setParam(unsigned char, float) {
/* Nonmatching */
void JASystem::TTrack::TOuterParam::setParam(u8 param_1, f32 param_2) {
f32* var1;
switch (param_1) {
case 1:
var1 = &field_0x4;
break;
case 2:
var1 = &field_0x8;
break;
case 4:
var1 = &field_0xc;
break;
case 16:
var1 = &field_0x10;
break;
case 8:
var1 = &field_0x14;
break;
case 64:
var1 = &field_0x18;
break;
default:
return;
}
*var1 = param_2;
field_0x2 |= param_1;
}
/* 8027E110-8027E12C .text onSwitch__Q38JASystem6TTrack11TOuterParamFUs */
void JASystem::TTrack::TOuterParam::onSwitch(unsigned short) {
/* Nonmatching */
void JASystem::TTrack::TOuterParam::onSwitch(u16 param_1) {
field_0x0 |= param_1;
field_0x2 |= param_1;
}
/* 8027E12C-8027E170 .text setFirFilter__Q38JASystem6TTrack11TOuterParamFPs */
void JASystem::TTrack::TOuterParam::setFirFilter(short*) {
/* Nonmatching */
void JASystem::TTrack::TOuterParam::setFirFilter(s16* param_1) {
field_0x2 |= 0x80;
field_0x0 |= 0x80;
for (u8 i = 0; i < 8; i++) {
field_0x1c[i] = param_1[i];
}
}
+2 -2
View File
@@ -82,8 +82,8 @@ bool JASystem::TSeqCtrl::retIntr() {
}
/* 8027E59C-8027E5B4 .text get16__Q28JASystem8TSeqCtrlCFUl */
u32 JASystem::TSeqCtrl::get16(u32 param_1) const {
u32 result = field_0x0[param_1++] << 8;
u16 JASystem::TSeqCtrl::get16(u32 param_1) const {
u16 result = field_0x0[param_1++] << 8;
result |= field_0x0[param_1++];
return result;
}
+279 -91
View File
@@ -3,306 +3,494 @@
// Translation Unit: JASSeqParser.cpp
//
#include "JASSeqParser.h"
#include "dolphin/types.h"
#include "JSystem/JAudio/JASSeqParser.h"
#include "JSystem/JAudio/JASPlayer.h"
#include "JSystem/JAudio/JASTrack.h"
#include "JSystem/JSupport/JSupport.h"
#include "JSystem/JUtility/JUTAssert.h"
/* 8027E680-8027E728 .text cmdOpenTrack__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdOpenTrack(JASystem::TTrack*, unsigned long*) {
int JASystem::TSeqParser::cmdOpenTrack(TTrack* track, u32* params) {
/* Nonmatching */
u32 param1 = params[0];
u32 param2 = params[1];
u8 b1 = param1 & 0xF;
u8 b2 = (param1 >> 6) & 3;
if (param1 & 0x20) {
b2 = 4;
}
TTrack* child = track->openChild(b1, b2);
JUT_ASSERT(255, child);
child->start(track->field_0x0.field_0x0, param2);
return 0;
}
/* 8027E728-8027E800 .text cmdOpenTrackBros__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdOpenTrackBros(JASystem::TTrack*, unsigned long*) {
int JASystem::TSeqParser::cmdOpenTrackBros(TTrack* track, u32* params) {
/* Nonmatching */
if (!track->getParent()) {
JUT_WARN(268, "%s", "cannot opentrackB in ROOT Track");
return 0;
}
u32 param1 = params[0];
u32 param2 = params[1];
u8 b1 = param1 & 0xF;
u8 b2 = (param1 >> 6) & 3;
if (param1 & 0x20) {
b2 = 4;
}
TTrack* bros = track->getParent()->openChild(b1, b2);
JUT_ASSERT(282, bros);
bros->start(track->field_0x0.field_0x0, param2);
return 0;
}
/* 8027E800-8027E90C .text cmdCall__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdCall(JASystem::TTrack*, unsigned long*) {
int JASystem::TSeqParser::cmdCall(TTrack* track, u32* params) {
/* Nonmatching */
}
/* 8027E90C-8027E9AC .text cmdRet__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdRet(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdRet(TTrack* track, u32* params) {
if (conditionCheck(track, params[0])) {
u32 var1 = track->field_0x0.field_0xc;
bool tmp;
if (var1 == 0) {
tmp = false;
} else {
u32 var2 = var1 - 1;
track->field_0x0.field_0xc = var2;
track->field_0x0.field_0x4 = track->field_0x0.field_0x10[var2];
tmp = true;
}
if (!tmp) {
JUT_WARN(335, "%s", "cannot ret for call-stack is NULL");
return 3;
}
}
return 0;
}
/* 8027E9AC-8027EAF4 .text cmdJmp__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdJmp(JASystem::TTrack*, unsigned long*) {
int JASystem::TSeqParser::cmdJmp(TTrack* track, u32* params) {
/* Nonmatching */
}
/* 8027EAF4-8027EB2C .text cmdLoopS__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdLoopS(JASystem::TTrack*, unsigned long*) {
int JASystem::TSeqParser::cmdLoopS(TTrack* track, u32* params) {
/* Nonmatching */
u32 param1 = params[0];
track->field_0x0.field_0x10[track->field_0x0.field_0xc] = track->field_0x0.field_0x4;
track->field_0x0.field_0x30[track->field_0x0.field_0xc++] = param1;
return 0;
}
/* 8027EB2C-8027EB54 .text cmdLoopE__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdLoopE(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdLoopE(TTrack* track, u32* params) {
track->field_0x0.loopEnd();
return 0;
}
/* 8027EB54-8027EBAC .text cmdReadPort__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdReadPort(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdReadPort(TTrack* track, u32* params) {
track->writeRegDirect(params[1], track->readSelfPort(params[0]));
return 0;
}
/* 8027EBAC-8027EBE0 .text cmdWritePort__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdWritePort(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdWritePort(TTrack* track, u32* params) {
track->writeSelfPort(params[0], params[1]);
return 0;
}
/* 8027EBE0-8027EC68 .text cmdParentWritePort__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdParentWritePort(JASystem::TTrack*, unsigned long*) {
int JASystem::TSeqParser::cmdParentWritePort(TTrack* track, u32* params) {
/* Nonmatching */
TTrack* parent = track->getParent();
JUT_ASSERT(452, parent != 0);
parent->writePortAppDirect(params[0] & 0xf, params[1]);
return 0;
}
/* 8027EC68-8027ED80 .text cmdChildWritePort__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdChildWritePort(JASystem::TTrack*, unsigned long*) {
int JASystem::TSeqParser::cmdChildWritePort(TTrack* track, u32* params) {
/* Nonmatching */
u8 param1 = JSULoByte(params[0]);
u8 b1 = JSUHiNibble(param1);
TTrack* child = track->getChild(b1);
JUT_ASSERT(462, child != 0);
child->writePortAppDirect(JSULoNibble(param1), params[1]);
return 0;
}
/* 8027ED80-8027ED98 .text cmdCheckPortImport__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdCheckPortImport(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdCheckPortImport(TTrack* track, u32* params) {
track->field_0x28c.field_0x6 = track->field_0x48.field_0x0[params[0]];
return 0;
}
/* 8027ED98-8027EDB0 .text cmdCheckPortExport__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdCheckPortExport(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdCheckPortExport(TTrack* track, u32* params) {
track->field_0x28c.field_0x6 = track->field_0x48.field_0x10[params[0]];
return 0;
}
/* 8027EDB0-8027EDC4 .text cmdWait__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdWait(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdWait(TTrack* track, u32* params) {
u32 param1 = params[0];
track->field_0x0.field_0x8 = param1;
return param1 != 0 ? 1 : 0;
}
/* 8027EDC4-8027EE44 .text cmdSetLastNote__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdSetLastNote(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdSetLastNote(TTrack* track, u32* params) {
u32 key = params[0];
key += track->getTranspose();
JUT_ASSERT(506, key < 256);
track->field_0xb4.field_0x35 = key;
return 0;
}
/* 8027EE44-8027EE5C .text cmdTimeRelate__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdTimeRelate(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdTimeRelate(TTrack* track, u32* params) {
track->field_0x387 = params[0];
return 0;
}
/* 8027EE5C-8027EE8C .text cmdSimpleOsc__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdSimpleOsc(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdSimpleOsc(TTrack* track, u32* params) {
track->oscSetupSimple(params[0]);
return 0;
}
/* 8027EE8C-8027EEC0 .text cmdSimpleEnv__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdSimpleEnv(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdSimpleEnv(TTrack* track, u32* params) {
track->oscSetupSimpleEnv(params[0], params[1]);
return 0;
}
/* 8027EEC0-8027EF2C .text cmdSimpleADSR__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdSimpleADSR(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdSimpleADSR(TTrack* track, u32* params) {
track->field_0x2cc[0] = Player::sAdsrDef;
track->field_0x2cc[0].table = track->field_0x304;
track->field_0x304[1] = params[0];
track->field_0x304[4] = params[1];
track->field_0x304[7] = params[2];
track->field_0x304[8] = params[3];
track->field_0x374 = params[4];
return 0;
}
/* 8027EF2C-8027EF3C .text cmdTranspose__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdTranspose(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdTranspose(TTrack* track, u32* params) {
track->field_0x37a = params[0];
return 0;
}
/* 8027EF3C-8027EFD8 .text cmdCloseTrack__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdCloseTrack(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdCloseTrack(TTrack* track, u32* params) {
u8 track_no = params[0];
JUT_ASSERT(565, track_no < TTrack::MAX_CHILDREN);
if (!track->mChildren[track_no]) {
return 0;
}
track->mChildren[track_no]->close();
track->mChildren[track_no] = NULL;
return 0;
}
/* 8027EFD8-8027F02C .text cmdOutSwitch__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdOutSwitch(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdOutSwitch(TTrack* track, u32* params) {
TTrack::TOuterParam* outer = track->field_0x360;
if (outer) {
outer->setOuterSwitch(params[0]);
outer->setOuterUpdate(0xffff);
}
return 0;
}
/* 8027F02C-8027F058 .text cmdUpdateSync__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdUpdateSync(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdUpdateSync(TTrack* track, u32* params) {
track->updateTrack(params[0]);
return 0;
}
/* 8027F058-8027F088 .text cmdBusConnect__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdBusConnect(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdBusConnect(TTrack* track, u32* params) {
track->connectBus(params[0], params[1]);
return 0;
}
/* 8027F088-8027F098 .text cmdPauseStatus__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdPauseStatus(JASystem::TTrack*, unsigned long*) {
int JASystem::TSeqParser::cmdPauseStatus(TTrack* track, u32* params) {
/* Nonmatching */
track->field_0x37c = params[0];
return 0;
}
/* 8027F098-8027F0A8 .text cmdVolumeMode__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdVolumeMode(JASystem::TTrack*, unsigned long*) {
int JASystem::TSeqParser::cmdVolumeMode(TTrack* track, u32* params) {
/* Nonmatching */
track->field_0x37d = params[0];
return 0;
}
/* 8027F0A8-8027F0E0 .text cmdSetInterrupt__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdSetInterrupt(JASystem::TTrack*, unsigned long*) {
int JASystem::TSeqParser::cmdSetInterrupt(TTrack* track, u32* params) {
/* Nonmatching */
track->field_0x88.setIntr(params[0], track->field_0x0.field_0x0 + params[1]);
return 0;
}
/* 8027F0E0-8027F10C .text cmdDisInterrupt__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdDisInterrupt(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdDisInterrupt(TTrack* track, u32* params) {
track->field_0x88.resetInter(params[0]);
return 0;
}
/* 8027F10C-8027F124 .text cmdClrI__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdClrI(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdClrI(TTrack* track, u32* params) {
track->field_0x88.field_0x0 = 1;
track->field_0x0.field_0x44 = 0;
return 0;
}
/* 8027F124-8027F134 .text cmdSetI__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdSetI(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdSetI(TTrack* track, u32* params) {
track->field_0x88.field_0x0 = 0;
return 0;
}
/* 8027F134-8027F178 .text cmdRetI__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdRetI(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdRetI(TTrack* track, u32* params) {
track->field_0x88.field_0x0 = 1;
track->field_0x0.retIntr();
track->tryInterrupt();
return 0;
}
/* 8027F178-8027F194 .text cmdIntTimer__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdIntTimer(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdIntTimer(TTrack* track, u32* params) {
u32 param2 = params[1];
track->field_0x88.field_0x3 = params[0];
track->field_0x88.field_0x4 = param2;
track->field_0x88.field_0x8 = param2;
return 0;
}
/* 8027F194-8027F1EC .text cmdSyncCPU__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdSyncCPU(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdSyncCPU(TTrack* track, u32* params) {
u16 var1 = 0xffff;
if (TTrack::sCallBackFunc) {
var1 = TTrack::sCallBackFunc(track, params[0]);
}
track->field_0x28c.field_0x6 = var1;
return 0;
}
/* 8027F1EC-8027F214 .text cmdFlushAll__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdFlushAll(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdFlushAll(TTrack* track, u32* params) {
track->flushAll();
return 0;
}
/* 8027F214-8027F23C .text cmdFlushRelease__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdFlushRelease(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdFlushRelease(TTrack* track, u32* params) {
track->field_0xf8.stopAllRelease();
return 0;
}
/* 8027F23C-8027F26C .text cmdTimeBase__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdTimeBase(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdTimeBase(TTrack* track, u32* params) {
track->setTimebase(params[0]);
return 0;
}
/* 8027F26C-8027F29C .text cmdTempo__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdTempo(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdTempo(TTrack* track, u32* params) {
track->setTempo(params[0]);
return 0;
}
/* 8027F29C-8027F2A4 .text cmdFinish__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdFinish(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdFinish(TTrack* track, u32* params) {
return 3;
}
/* 8027F2A4-8027F2AC .text cmdNop__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdNop(JASystem::TTrack*, unsigned long*) {
/* Nonmatching */
int JASystem::TSeqParser::cmdNop(TTrack* track, u32* params) {
return 0;
}
/* 8027F2AC-8027F330 .text cmdPanPowSet__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdPanPowSet(JASystem::TTrack*, unsigned long*) {
int JASystem::TSeqParser::cmdPanPowSet(TTrack* track, u32* params) {
/* Nonmatching */
}
/* 8027F330-8027F368 .text cmdFIRSet__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdFIRSet(JASystem::TTrack*, unsigned long*) {
int JASystem::TSeqParser::cmdFIRSet(TTrack* track, u32* params) {
/* Nonmatching */
}
/* 8027F368-8027F3BC .text cmdEXTSet__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdEXTSet(JASystem::TTrack*, unsigned long*) {
int JASystem::TSeqParser::cmdEXTSet(TTrack* track, u32* params) {
/* Nonmatching */
}
/* 8027F3BC-8027F460 .text cmdPanSwSet__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdPanSwSet(JASystem::TTrack*, unsigned long*) {
int JASystem::TSeqParser::cmdPanSwSet(TTrack* track, u32* params) {
/* Nonmatching */
}
/* 8027F460-8027F47C .text cmdOscRoute__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdOscRoute(JASystem::TTrack*, unsigned long*) {
int JASystem::TSeqParser::cmdOscRoute(TTrack* track, u32* params) {
/* Nonmatching */
}
/* 8027F47C-8027F4C4 .text cmdVibDepth__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdVibDepth(JASystem::TTrack*, unsigned long*) {
int JASystem::TSeqParser::cmdVibDepth(TTrack* track, u32* params) {
/* Nonmatching */
}
/* 8027F4C4-8027F4FC .text cmdVibDepthMidi__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdVibDepthMidi(JASystem::TTrack*, unsigned long*) {
int JASystem::TSeqParser::cmdVibDepthMidi(TTrack* track, u32* params) {
/* Nonmatching */
}
/* 8027F4FC-8027F544 .text cmdVibPitch__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdVibPitch(JASystem::TTrack*, unsigned long*) {
int JASystem::TSeqParser::cmdVibPitch(TTrack* track, u32* params) {
/* Nonmatching */
}
/* 8027F544-8027F5C8 .text cmdIIRSet__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdIIRSet(JASystem::TTrack*, unsigned long*) {
int JASystem::TSeqParser::cmdIIRSet(TTrack* track, u32* params) {
/* Nonmatching */
}
/* 8027F5C8-8027F65C .text cmdIIRCutOff__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdIIRCutOff(JASystem::TTrack*, unsigned long*) {
int JASystem::TSeqParser::cmdIIRCutOff(TTrack* track, u32* params) {
/* Nonmatching */
}
/* 8027F65C-8027F698 .text cmdOscFull__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdOscFull(JASystem::TTrack*, unsigned long*) {
int JASystem::TSeqParser::cmdOscFull(TTrack* track, u32* params) {
/* Nonmatching */
}
/* 8027F698-8027F6A8 .text cmdCheckWave__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdCheckWave(JASystem::TTrack*, unsigned long*) {
int JASystem::TSeqParser::cmdCheckWave(TTrack* track, u32* params) {
/* Nonmatching */
}
/* 8027F6A8-8027F8F4 .text cmdPrintf__Q28JASystem10TSeqParserFPQ28JASystem6TTrackPUl */
void JASystem::TSeqParser::cmdPrintf(JASystem::TTrack*, unsigned long*) {
int JASystem::TSeqParser::cmdPrintf(TTrack* track, u32* params) {
/* Nonmatching */
}
/* 8027F8F4-8027FA48 .text Cmd_Process__Q28JASystem10TSeqParserFPQ28JASystem6TTrackUcUs */
void JASystem::TSeqParser::Cmd_Process(JASystem::TTrack*, unsigned char, unsigned short) {
void JASystem::TSeqParser::Cmd_Process(TTrack* track, u8, u16) {
/* Nonmatching */
}
/* 8027FA48-8027FB08 .text RegCmd_Process__Q28JASystem10TSeqParserFPQ28JASystem6TTrackii */
void JASystem::TSeqParser::RegCmd_Process(JASystem::TTrack*, int, int) {
void JASystem::TSeqParser::RegCmd_Process(TTrack* track, int, int) {
/* Nonmatching */
}
/* 8027FB08-8027FC98 .text cmdSetParam__Q28JASystem10TSeqParserFPQ28JASystem6TTrackUc */
void JASystem::TSeqParser::cmdSetParam(JASystem::TTrack*, unsigned char) {
int JASystem::TSeqParser::cmdSetParam(TTrack* track, u8) {
/* Nonmatching */
}
/* 8027FC98-8027FCE4 .text cmdWait__Q28JASystem10TSeqParserFPQ28JASystem6TTrackUc */
void JASystem::TSeqParser::cmdWait(JASystem::TTrack*, unsigned char) {
int JASystem::TSeqParser::cmdWait(TTrack* track, u8) {
/* Nonmatching */
}
/* 8027FCE4-8027FE08 .text cmdNoteOff__Q28JASystem10TSeqParserFPQ28JASystem6TTrackUc */
void JASystem::TSeqParser::cmdNoteOff(JASystem::TTrack*, unsigned char) {
int JASystem::TSeqParser::cmdNoteOff(TTrack* track, u8) {
/* Nonmatching */
}
/* 8027FE08-80280148 .text cmdNoteOn__Q28JASystem10TSeqParserFPQ28JASystem6TTrackUc */
void JASystem::TSeqParser::cmdNoteOn(JASystem::TTrack*, unsigned char) {
int JASystem::TSeqParser::cmdNoteOn(TTrack* track, u8) {
/* Nonmatching */
}
/* 80280148-8028024C .text conditionCheck__Q28JASystem10TSeqParserFPQ28JASystem6TTrackUc */
void JASystem::TSeqParser::conditionCheck(JASystem::TTrack*, unsigned char) {
bool JASystem::TSeqParser::conditionCheck(TTrack* track, u8) {
/* Nonmatching */
}
/* 8028024C-802803B0 .text parseSeq__Q28JASystem10TSeqParserFPQ28JASystem6TTrack */
void JASystem::TSeqParser::parseSeq(JASystem::TTrack*) {
void JASystem::TSeqParser::parseSeq(TTrack* track) {
/* Nonmatching */
}
int (JASystem::TSeqParser::*JASystem::TSeqParser::sCmdPList[64])(JASystem::TTrack*, u32*) = {
NULL,
JASystem::TSeqParser::cmdOpenTrack,
JASystem::TSeqParser::cmdOpenTrackBros,
NULL,
JASystem::TSeqParser::cmdCall,
NULL,
JASystem::TSeqParser::cmdRet,
NULL,
JASystem::TSeqParser::cmdJmp,
JASystem::TSeqParser::cmdLoopS,
JASystem::TSeqParser::cmdLoopE,
JASystem::TSeqParser::cmdReadPort,
JASystem::TSeqParser::cmdWritePort,
JASystem::TSeqParser::cmdCheckPortImport,
JASystem::TSeqParser::cmdCheckPortExport,
JASystem::TSeqParser::cmdWait,
NULL,
JASystem::TSeqParser::cmdParentWritePort,
JASystem::TSeqParser::cmdChildWritePort,
NULL,
JASystem::TSeqParser::cmdSetLastNote,
JASystem::TSeqParser::cmdTimeRelate,
JASystem::TSeqParser::cmdSimpleOsc,
JASystem::TSeqParser::cmdSimpleEnv,
JASystem::TSeqParser::cmdSimpleADSR,
JASystem::TSeqParser::cmdTranspose,
JASystem::TSeqParser::cmdCloseTrack,
JASystem::TSeqParser::cmdOutSwitch,
JASystem::TSeqParser::cmdUpdateSync,
JASystem::TSeqParser::cmdBusConnect,
JASystem::TSeqParser::cmdPauseStatus,
JASystem::TSeqParser::cmdSetInterrupt,
JASystem::TSeqParser::cmdDisInterrupt,
JASystem::TSeqParser::cmdClrI,
JASystem::TSeqParser::cmdSetI,
JASystem::TSeqParser::cmdRetI,
JASystem::TSeqParser::cmdIntTimer,
JASystem::TSeqParser::cmdVibDepth,
JASystem::TSeqParser::cmdVibDepthMidi,
JASystem::TSeqParser::cmdSyncCPU,
JASystem::TSeqParser::cmdFlushAll,
JASystem::TSeqParser::cmdFlushRelease,
JASystem::TSeqParser::cmdWait,
JASystem::TSeqParser::cmdPanPowSet,
JASystem::TSeqParser::cmdIIRSet,
JASystem::TSeqParser::cmdFIRSet,
JASystem::TSeqParser::cmdEXTSet,
JASystem::TSeqParser::cmdPanSwSet,
JASystem::TSeqParser::cmdOscRoute,
JASystem::TSeqParser::cmdIIRCutOff,
JASystem::TSeqParser::cmdOscFull,
JASystem::TSeqParser::cmdVolumeMode,
JASystem::TSeqParser::cmdVibPitch,
NULL,
NULL,
NULL,
NULL,
NULL,
JASystem::TSeqParser::cmdCheckWave,
JASystem::TSeqParser::cmdPrintf,
JASystem::TSeqParser::cmdNop,
JASystem::TSeqParser::cmdTempo,
JASystem::TSeqParser::cmdTimeBase,
JASystem::TSeqParser::cmdFinish,
};
+464 -70
View File
@@ -3,117 +3,456 @@
// Translation Unit: JASTrack.cpp
//
#include "JASTrack.h"
#include "dolphin/types.h"
#include "JSystem/JAudio/JASTrack.h"
#include "JSystem/JAudio/JASBankMgr.h"
#include "JSystem/JAudio/JASCalc.h"
#include "JSystem/JAudio/JASChannel.h"
#include "JSystem/JAudio/JASChGlobal.h"
#include "JSystem/JAudio/JASPlayer.h"
#include "JSystem/JAudio/JASSystemHeap.h"
#include "JSystem/JKernel/JKRSolidHeap.h"
#include "JSystem/JUtility/JUTAssert.h"
/* 80280960-80280A34 .text __ct__Q28JASystem6TTrackFv */
JASystem::TTrack::TTrack() {
/* Nonmatching */
mParent = NULL;
field_0x364 = 0.0f;
field_0x368 = 0.0f;
field_0x36c = 0;
field_0x370 = 0;
field_0x374 = 0;
field_0x376 = 0x78;
field_0x378 = 0x78;
field_0x37a = 0;
field_0x37b = 0;
field_0x37c = 0;
field_0x37d = 0;
field_0x37e = 0;
field_0x385 = 0;
field_0x386 = 0;
field_0x387 = 0;
field_0x388 = 0;
field_0x389 = 0;
field_0xf8.init();
for (int i = 0; i < 12; i++) {
field_0x304[i] = Player::sAdsTable[i];
}
Calc::bzero(&field_0x16c, sizeof(TimedParam_));
}
/* 80280A34-80280A80 .text __ct__Q38JASystem6TTrack11TimedParam_Fv */
JASystem::TTrack::TimedParam_::TimedParam_() {
/* Nonmatching */
}
JASystem::TTrack::TimedParam_::TimedParam_() {}
/* 80280A80-80280C10 .text init__Q28JASystem6TTrackFv */
void JASystem::TTrack::init() {
/* Nonmatching */
field_0x0.init();
field_0x48.init();
field_0x88.init();
field_0xb4.init();
field_0xf8.initAllocChannel(0);
initTimed();
field_0x28c.init();
field_0x2fc[0] = 0x0f;
field_0x2cc[0] = Player::sEnvelopeDef;
field_0x2fc[1] = 0x0f;
field_0x2cc[1] = Player::sEnvelopeDef;
mParent = NULL;
for (int i = 0; i < 16; i++) {
mChildren[i] = NULL;
}
if (field_0x360) {
field_0x360->initExtBuffer();
}
field_0x364 = 0.0f;
field_0x368 = 1.0f;
field_0x36c = 0;
field_0xec.init();
field_0x370 = 0;
field_0x374 = 0;
field_0x376 = 0x78;
field_0x378 = 0x30;
updateTempo();
field_0x37a = 0;
field_0x37b = 0;
field_0x37c = 10;
field_0x37d = 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;
}
field_0x385 = 0;
field_0x386 = 0;
field_0x387 = 1;
field_0x388 = 0;
}
/* 80280C10-80280D0C .text inherit__Q28JASystem6TTrackFv */
void JASystem::TTrack::inherit() {
/* Nonmatching */
if (!mParent) {
return;
}
field_0x376 = mParent->field_0x376;
field_0x388 = 0;
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;
field_0x386 = mParent->field_0x386;
if (field_0x37b & 2) {
return;
}
field_0x28c.inherit(mParent->field_0x28c);
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];
}
}
u16 (*JASystem::TTrack::sCallBackFunc)(JASystem::TTrack*, u16);
JASystem::TSeqParser JASystem::TTrack::sParser;
/* 80280D0C-80280F80 .text mainProc__Q28JASystem6TTrackFv */
void JASystem::TTrack::mainProc() {
s8 JASystem::TTrack::mainProc() {
/* Nonmatching */
int r31 = 0;
if (field_0x388 && mParent) {
f32 tmp = f32(field_0x376) / f32(mParent->field_0x376);
if (tmp > 1.0f) {
tmp = 1.0f;
}
field_0x364 += tmp;
if (field_0x364 < 1.0f) {
return 0;
}
field_0x364 -= 1.0f;
}
if (mParent && field_0xf8.field_0x0) {
TChannel* channel = field_0xf8.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++;
}
}
field_0x88.request(7);
field_0x88.timerProcess();
tryInterrupt();
if (field_0x385 == 0 && (field_0x37c & 2) == 0) {
// TODO:
}
updateSeq(0, false);
if (r31 < 0) {
return -1;
}
for (int i = 0; i < 16; i++) {
TTrack* child = mChildren[i];
if (child && child->field_0x37e) {
JUT_ASSERT(276, this == child->mParent);
if (child->mainProc() == -1) {
child->close();
mChildren[i] = NULL;
}
}
}
return 0;
}
/* 80280F80-80280FA8 .text setInterrupt__Q28JASystem6TTrackFUs */
void JASystem::TTrack::setInterrupt(unsigned short) {
/* Nonmatching */
void JASystem::TTrack::setInterrupt(u16 param_1) {
field_0x88.request(param_1);
}
/* 80280FA8-80281004 .text tryInterrupt__Q28JASystem6TTrackFv */
void JASystem::TTrack::tryInterrupt() {
/* Nonmatching */
bool JASystem::TTrack::tryInterrupt() {
if (field_0x0.field_0x44) {
return false;
}
void* var1 = field_0x88.checkIntr();
if (var1 == NULL) {
return false;
}
return field_0x0.callIntr(var1);
}
/* 80281004-8028100C .text assignExtBuffer__Q28JASystem6TTrackFPQ38JASystem6TTrack11TOuterParam */
void JASystem::TTrack::assignExtBuffer(JASystem::TTrack::TOuterParam*) {
/* Nonmatching */
void JASystem::TTrack::assignExtBuffer(TOuterParam* param_1) {
field_0x360 = param_1;
}
/* 8028100C-80281050 .text releaseChannelAll__Q28JASystem6TTrackFv */
void JASystem::TTrack::releaseChannelAll() {
/* Nonmatching */
if (mParent) {
mParent->field_0xf8.receiveAllChannels(&field_0xf8);
} else {
TGlobalChannel::releaseAll(&field_0xf8);
}
}
/* 80281050-80281088 .text flushAll__Q28JASystem6TTrackFv */
void JASystem::TTrack::flushAll() {
/* Nonmatching */
field_0xf8.stopAll();
field_0xf8.stopAllRelease();
}
/* 80281088-80281138 .text moveFreeChannel__Q28JASystem6TTrackFPQ28JASystem11TChannelMgrPQ28JASystem11TChannelMgri */
void JASystem::TTrack::moveFreeChannel(JASystem::TChannelMgr*, JASystem::TChannelMgr*, int) {
/* Nonmatching */
int JASystem::TTrack::moveFreeChannel(TChannelMgr* param_1, TChannelMgr* param_2, int param_3) {
if (param_3 < 0) {
u32 r31 = param_1->field_0x0;
param_2->receiveAllChannels(param_1);
return r31;
}
for (int i = 0; i < param_3; i++) {
if (!param_1->field_0x0) {
break;
}
TChannel* channel = param_1->getListHead(0);
if (!channel) {
break;
}
param_1->field_0x0--;
param_2->addListHead(channel, 0);
param_2->field_0x0++;
}
return 0;
}
/* 80281138-802811DC .text initTimed__Q28JASystem6TTrackFv */
void JASystem::TTrack::initTimed() {
/* Nonmatching */
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;
}
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;
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;
}
field_0x16c.move[5].field_0x0 = 0.0f;
field_0x16c.move[5].field_0x4 = 0.0f;
}
static void dummy() {
OSReport("i >= 0");
OSReport("i < 3");
}
/* 802811DC-80281258 .text connectBus__Q28JASystem6TTrackFii */
void JASystem::TTrack::connectBus(int, int) {
/* Nonmatching */
void JASystem::TTrack::connectBus(int line, int param_2) {
JUT_ASSERT(486, line < (6));
field_0xf8.field_0x4e[line] = param_2;
}
/* 80281258-802814AC .text noteOn__Q28JASystem6TTrackFUclllUl */
void JASystem::TTrack::noteOn(unsigned char, long, long, long, unsigned long) {
/* Nonmatching */
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)) {
return -1;
}
noteOff(param_1, 0);
TChannelMgr* r31 = &field_0xf8;
TTrack* parent = mParent;
while (r31->field_0x0 == 0 || r31->field_0x8 == 0) {
if (!parent) {
r31 = &field_0xf8;
break;
}
r31 = &parent->field_0xf8;
parent = parent->mParent;
}
if (field_0x37b == 4) {
JUT_ASSERT(527, mParent != 0);
if (r31 != &mParent->field_0xf8) {
if (moveFreeChannel(r31, &mParent->field_0xf8, 1) != 1) {
OSReport("in Player (NOTE-MODE) ... ボイス借用に失敗しました!! (%d)\n", r31->field_0x0);
}
r31 = &mParent->field_0xf8;
}
} else if (r31 != &field_0xf8) {
if (moveFreeChannel(r31, &field_0xf8, 1) != 1) {
OSReport("in Player ボイス借用に失敗しました!! (%d)\n", r31->field_0x0);
}
r31 = &field_0xf8;
}
u8 bankNum = field_0x28c.getBankNumber();
u8 physNum = BankMgr::getPhysicalNumber(bankNum);
u8 progNum = field_0x28c.getProgramNumber();
TChannel* channel = BankMgr::noteOn(r31, physNum, progNum, param_2, param_3, param_4);
if (!channel) {
return -1;
}
field_0xb4.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);
overwriteOsc(channel);
if (field_0x374) {
channel->directReleaseOsc(0, field_0x374);
}
return 0;
}
/* 802814AC-802815DC .text overwriteOsc__Q28JASystem6TTrackFPQ28JASystem8TChannel */
void JASystem::TTrack::overwriteOsc(JASystem::TChannel*) {
void JASystem::TTrack::overwriteOsc(TChannel* param_1) {
/* Nonmatching */
u32 r28;
for (int i = 0; i < 2; i++) {
u32 var1 = field_0x2fc[i];
if (var1 == 0x0f) {
continue;
}
r28 = var1 & 3;
if (var1 & 8) {
if (!param_1->isOsc(r28)) {
JUT_WARN(593, "%s", "cannot copy osc");
continue;
}
param_1->copyOsc(r28, &field_0x2cc[i]);
} else if (var1 & 4) {
void* var4 = field_0x2cc[i].rel_table;
if (!param_1->isOsc(r28)) {
JUT_WARN(603, "%s", "cannot copy osc");
continue;
}
param_1->copyOsc(r28, &field_0x2cc[i]);
field_0x2cc[i].rel_table = var4;
}
param_1->overwriteOsc(r28, &field_0x2cc[i]);
}
}
/* 802815DC-8028165C .text noteOff__Q28JASystem6TTrackFUcUs */
void JASystem::TTrack::noteOff(unsigned char, unsigned short) {
/* Nonmatching */
bool JASystem::TTrack::noteOff(u8 param_1, u16 param_2) {
TChannel* channel = field_0xb4.getChannel(param_1);
if (!channel) {
return false;
}
if (param_2 == 0) {
channel->stop(0);
} else {
channel->stop(param_2);
}
field_0xb4.releaseChannel(param_1);
return true;
}
/* 8028165C-802816C4 .text gateOn__Q28JASystem6TTrackFUclll */
void JASystem::TTrack::gateOn(unsigned char, long, long, long) {
/* Nonmatching */
int JASystem::TTrack::gateOn(u8 param_1, s32 param_2, s32 param_3, s32 param_4) {
TChannel* channel = field_0xb4.getChannel(param_1);
if (!channel) {
return -1;
}
BankMgr::gateOn(channel, param_2, param_3, param_4);
return 0;
}
/* 802816C4-80281708 .text checkNoteStop__Q28JASystem6TTrackFl */
void JASystem::TTrack::checkNoteStop(long) {
/* Nonmatching */
int JASystem::TTrack::checkNoteStop(s32 param_1) {
TChannel* channel = field_0xb4.getChannel(param_1);
if (channel == NULL) {
return true;
}
return channel->field_0x1 == 0xff;
}
/* 80281708-802817E4 .text oscSetupFull__Q28JASystem6TTrackFUcUlUl */
void JASystem::TTrack::oscSetupFull(unsigned char, unsigned long, unsigned long) {
void JASystem::TTrack::oscSetupFull(u8 param_1, u32 param_2, u32 param_3) {
/* Nonmatching */
u32 var1 = (param_1 & 0x10) >> 4;
int var2 = param_1 & 0x0f;
bool var3 = (param_1 & 0x80) >> 7;
bool var4 = param_1 & 0x40;
bool var5 = param_1 & 0x20;
if (var3) {
field_0x2cc[var1] = Player::sEnvelopeDef;
field_0x2cc[var1].field_0x0 = var2;
if (var2 == 1) {
field_0x2cc[var1].field_0x14 = 1.0f;
}
}
if (var4) {
if (param_2 == 0) {
field_0x2cc[var1].table = NULL;
}
field_0x2cc[var1].table = field_0x0.field_0x0 + param_2;
}
if (!var5) {
return;
}
if (param_3 == 0) {
field_0x2cc[var1].rel_table = Player::sRelTable;
}
field_0x2cc[var1].rel_table = field_0x0.field_0x0 + param_2;
}
/* 802817E4-80281850 .text oscSetupSimpleEnv__Q28JASystem6TTrackFUcUl */
void JASystem::TTrack::oscSetupSimpleEnv(unsigned char, unsigned long) {
/* Nonmatching */
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;
break;
case 1:
field_0x2cc[0].rel_table = field_0x0.field_0x0 + param_2;
break;
}
}
/* 80281850-80281900 .text updateOscParam__Q28JASystem6TTrackFif */
void JASystem::TTrack::updateOscParam(int, float) {
/* Nonmatching */
void JASystem::TTrack::updateOscParam(int param_1, f32 param_2) {
switch (param_1) {
case 6:
field_0x2cc[0].field_0x10 = param_2;
break;
case 7:
field_0x2cc[0].field_0x4 = param_2;
break;
case 8:
field_0x2cc[0].field_0x14 = param_2;
break;
case 9:
field_0x2cc[1].field_0x10 = param_2;
break;
case 10:
field_0x2cc[1].field_0x4 = param_2;
break;
case 11:
field_0x2cc[1].field_0x14 = param_2;
break;
default:
JUT_ASSERT(753, false);
break;
}
}
/* 80281900-802819D0 .text oscSetupSimple__Q28JASystem6TTrackFUc */
void JASystem::TTrack::oscSetupSimple(unsigned char) {
/* Nonmatching */
void JASystem::TTrack::oscSetupSimple(u8 param_1) {
switch (param_1) {
case 0:
field_0x2cc[1] = Player::sVibratoDef;
break;
case 1:
field_0x2cc[0] = Player::sTremoroDef;
break;
case 2:
field_0x2cc[1] = Player::sTremoroDef;
break;
}
}
/* 802819D0-80281AA4 .text updateTimedParam__Q28JASystem6TTrackFv */
@@ -127,7 +466,7 @@ void JASystem::TTrack::updateTrackAll() {
}
/* 80281E90-80282364 .text updateTrack__Q28JASystem6TTrackFUl */
void JASystem::TTrack::updateTrack(unsigned long) {
void JASystem::TTrack::updateTrack(u32) {
/* Nonmatching */
}
@@ -137,32 +476,38 @@ void JASystem::TTrack::updateTempo() {
}
/* 802824C0-802825A0 .text updateSeq__Q28JASystem6TTrackFUlb */
void JASystem::TTrack::updateSeq(unsigned long, bool) {
void JASystem::TTrack::updateSeq(u32, bool) {
/* Nonmatching */
}
/* 802825A0-8028265C .text seqTimeToDspTime__Q28JASystem6TTrackFlUc */
void JASystem::TTrack::seqTimeToDspTime(long, unsigned char) {
int JASystem::TTrack::seqTimeToDspTime(s32, u8) {
/* Nonmatching */
}
/* 8028265C-8028278C .text setParam__Q28JASystem6TTrackFifi */
void JASystem::TTrack::setParam(int, float, int) {
void JASystem::TTrack::setParam(int, f32, int) {
/* Nonmatching */
}
/* 8028278C-802827F0 .text setSeqData__Q28JASystem6TTrackFPUcli */
void JASystem::TTrack::setSeqData(unsigned char*, long, int) {
bool JASystem::TTrack::setSeqData(u8* param_1, s32, int) {
/* Nonmatching */
init();
field_0x37b = 3;
field_0x0.start(param_1, 0);
updateTrackAll();
field_0x37e = 2;
return true;
}
/* 802827F0-802828A8 .text startSeq__Q28JASystem6TTrackFv */
void JASystem::TTrack::startSeq() {
bool JASystem::TTrack::startSeq() {
/* Nonmatching */
}
/* 802828A8-80282908 .text stopSeq__Q28JASystem6TTrackFv */
void JASystem::TTrack::stopSeq() {
bool JASystem::TTrack::stopSeq() {
/* Nonmatching */
}
@@ -177,7 +522,7 @@ void JASystem::TTrack::noteOffAll() {
}
/* 802829DC-80282A90 .text close__Q28JASystem6TTrackFv */
void JASystem::TTrack::close() {
int JASystem::TTrack::close() {
/* Nonmatching */
}
@@ -187,77 +532,95 @@ void JASystem::TTrack::muteTrack(bool) {
}
/* 80282B44-80282B84 .text start__Q28JASystem6TTrackFPvUl */
void JASystem::TTrack::start(void*, unsigned long) {
bool JASystem::TTrack::start(void* param_1, u32 param_2) {
/* Nonmatching */
field_0x0.start(param_1, param_2);
field_0x37e = 1;
updateTrackAll();
return false;
}
/* 80282B84-80282CE8 .text openChild__Q28JASystem6TTrackFUcUc */
void JASystem::TTrack::openChild(unsigned char, unsigned char) {
JASystem::TTrack* JASystem::TTrack::openChild(u8, u8) {
/* Nonmatching */
}
/* 80282CE8-80282D80 .text loadTbl__Q28JASystem6TTrackFUlUlUl */
void JASystem::TTrack::loadTbl(unsigned long, unsigned long, unsigned long) {
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];
case 5:
return field_0x0.get16(param_1 + param_2 * 2);
case 6:
return field_0x0.get24(param_1 + param_2 * 3);
case 7:
return field_0x0.get32(param_1 + param_2 * 4);
case 8:
return field_0x0.get32(param_1 + param_2);
}
}
/* 80282D80-80282DC0 .text exchangeRegisterValue__Q28JASystem6TTrackFUc */
void JASystem::TTrack::exchangeRegisterValue(unsigned char) {
int JASystem::TTrack::exchangeRegisterValue(u8) {
/* Nonmatching */
}
/* 80282DC0-80282ED4 .text readReg32__Q28JASystem6TTrackFUc */
void JASystem::TTrack::readReg32(unsigned char) {
void JASystem::TTrack::readReg32(u8) {
/* Nonmatching */
}
/* 80282ED4-802830AC .text readReg16__Q28JASystem6TTrackFUc */
void JASystem::TTrack::readReg16(unsigned char) {
void JASystem::TTrack::readReg16(u8) {
/* Nonmatching */
}
/* 802830AC-80283164 .text writeRegDirect__Q28JASystem6TTrackFUcUs */
void JASystem::TTrack::writeRegDirect(unsigned char, unsigned short) {
void JASystem::TTrack::writeRegDirect(u8, u16) {
/* Nonmatching */
}
/* 80283164-802836FC .text writeRegParam__Q28JASystem6TTrackFUc */
void JASystem::TTrack::writeRegParam(unsigned char) {
void JASystem::TTrack::writeRegParam(u8) {
/* Nonmatching */
}
/* 802836FC-80283720 .text readSelfPort__Q28JASystem6TTrackFi */
void JASystem::TTrack::readSelfPort(int) {
u16 JASystem::TTrack::readSelfPort(int param_1) {
/* Nonmatching */
return field_0x48.readImport(param_1);
}
/* 80283720-80283744 .text writeSelfPort__Q28JASystem6TTrackFiUs */
void JASystem::TTrack::writeSelfPort(int, unsigned short) {
void JASystem::TTrack::writeSelfPort(int param_1, u16 param_2) {
/* Nonmatching */
field_0x48.writeExport(param_1, param_2);
}
/* 80283744-802837AC .text writePortAppDirect__Q28JASystem6TTrackFUlUs */
void JASystem::TTrack::writePortAppDirect(unsigned long, unsigned short) {
int JASystem::TTrack::writePortAppDirect(u32, u16) {
/* Nonmatching */
}
/* 802837AC-802837E4 .text readPortAppDirect__Q28JASystem6TTrackFUlPUs */
void JASystem::TTrack::readPortAppDirect(unsigned long, unsigned short*) {
int JASystem::TTrack::readPortAppDirect(u32, u16*) {
/* Nonmatching */
}
/* 802837E4-8028381C .text routeTrack__Q28JASystem6TTrackFUl */
void JASystem::TTrack::routeTrack(unsigned long) {
void JASystem::TTrack::routeTrack(u32) {
/* Nonmatching */
}
/* 8028381C-80283870 .text writePortApp__Q28JASystem6TTrackFUlUs */
void JASystem::TTrack::writePortApp(unsigned long, unsigned short) {
int JASystem::TTrack::writePortApp(u32, u16) {
/* Nonmatching */
}
/* 80283870-802838C4 .text readPortApp__Q28JASystem6TTrackFUlPUs */
void JASystem::TTrack::readPortApp(unsigned long, unsigned short*) {
int JASystem::TTrack::readPortApp(u32, u16*) {
/* Nonmatching */
}
@@ -267,67 +630,98 @@ void JASystem::TTrack::pause(bool, bool) {
}
/* 80283A64-80283AB4 .text getTranspose__Q28JASystem6TTrackCFv */
void JASystem::TTrack::getTranspose() const {
int JASystem::TTrack::getTranspose() const {
/* Nonmatching */
}
/* 80283AB4-80283AF0 .text setTempo__Q28JASystem6TTrackFUs */
void JASystem::TTrack::setTempo(unsigned short) {
void JASystem::TTrack::setTempo(u16) {
/* Nonmatching */
}
/* 80283AF0-80283B20 .text setTimebase__Q28JASystem6TTrackFUs */
void JASystem::TTrack::setTimebase(unsigned short) {
void JASystem::TTrack::setTimebase(u16) {
/* Nonmatching */
}
/* 80283B20-80283BBC .text panCalc__Q28JASystem6TTrackFfffUc */
void JASystem::TTrack::panCalc(float, float, float, unsigned char) {
f32 JASystem::TTrack::panCalc(f32, f32, f32, u8) {
/* Nonmatching */
}
/* 80283BBC-80283C9C .text rootCallback__Q28JASystem6TTrackFPv */
void JASystem::TTrack::rootCallback(void*) {
int JASystem::TTrack::rootCallback(void*) {
/* Nonmatching */
}
/* 80283C9C-80283CE8 .text registerSeqCallback__Q28JASystem6TTrackFPFPQ28JASystem6TTrackUs_Us */
void JASystem::TTrack::registerSeqCallback(unsigned short (*)(JASystem::TTrack*, unsigned short)) {
void JASystem::TTrack::registerSeqCallback(u16 (*param_1)(TTrack*, u16)) {
/* Nonmatching */
if (sCallBackFunc) {
OSReport("in Player ... overwrite callback\n");
}
sCallBackFunc = param_1;
}
/* 80283CE8-80283E9C .text newMemPool__Q28JASystem6TTrackFi */
void JASystem::TTrack::newMemPool(int) {
void JASystem::TTrack::newMemPool(int param_1) {
/* Nonmatching */
TTrack* runner = (TTrack*)new (JASDram, 0) u8[sizeof(TTrack)];
JUT_ASSERT(2218, runner);
TOuterParam* outer = new (JASDram, 0) TOuterParam();
JUT_ASSERT(2220, outer);
runner->assignExtBuffer(outer);
sFreeList = runner;
for (int i = 1; i < param_1; i++) {
runner->next = (TTrack*)new (JASDram, 0) u8[sizeof(TTrack)];
JUT_ASSERT(2228, runner->next);
TOuterParam* outer = new (JASDram, 0) TOuterParam();
JUT_ASSERT(2230, outer);
runner->next->assignExtBuffer(outer);
runner = runner->next;
}
runner->next = NULL;
}
/* 80283E9C-80283ECC .text __ct__Q28JASystem8TVibrateFv */
JASystem::TVibrate::TVibrate() {
/* Nonmatching */
init();
}
/* 80283ECC-80283EE4 .text init__Q28JASystem8TVibrateFv */
void JASystem::TVibrate::init() {
/* Nonmatching */
field_0x8 = 1.0f / 18.0f;
field_0x4 = 0.0f;
field_0x0 = 0.0f;
}
/* 80283EE4-80283F18 .text incCounter__Q28JASystem8TVibrateFv */
void JASystem::TVibrate::incCounter() {
/* Nonmatching */
field_0x0 += field_0x8;
if (!(field_0x0 >= 4.0)) {
return;
}
field_0x0 -= 4.0f;
}
/* 80283F18-80283FD0 .text getValue__Q28JASystem8TVibrateCFv */
void JASystem::TVibrate::getValue() const {
f32 JASystem::TVibrate::getValue() const {
/* Nonmatching */
}
/* 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;
}
/* 80283FE8-80284118 .text __ct__Q38JASystem6TTrack12AInnerParam_Fv */
JASystem::TTrack::AInnerParam_::AInnerParam_() {
/* Nonmatching */
}