mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-06-11 12:39:48 -04:00
JAudio2 debug (#3006)
This commit is contained in:
@@ -17,10 +17,34 @@ JASDsp::FxBuf* JASDsp::FX_BUF;
|
||||
|
||||
f32 JASDsp::sDSPVolume;
|
||||
|
||||
u16 JASDsp::SEND_TABLE[] = {
|
||||
0x0D00,
|
||||
0x0D60,
|
||||
0x0DC8,
|
||||
0x0E28,
|
||||
0x0E88,
|
||||
0x0EE8,
|
||||
0x0CA0,
|
||||
0x0F40,
|
||||
0x0FA0,
|
||||
0x0B00,
|
||||
0x09A0,
|
||||
0x0000,
|
||||
};
|
||||
|
||||
u32 JASWaveInfo::one = 1;
|
||||
|
||||
#if DEBUG
|
||||
s32 JASDsp::dspMutex = 1;
|
||||
#endif
|
||||
|
||||
void JASDsp::boot(void (*param_0)(void*)) {
|
||||
static bool data_804512F4 = true;
|
||||
if (data_804512F4) {
|
||||
DspBoot(param_0);
|
||||
#if !PLATFORM_GCN
|
||||
// DsetVARAM(JKRHeap::getAltAramStartAdr());
|
||||
#endif
|
||||
data_804512F4 = false;
|
||||
}
|
||||
}
|
||||
@@ -40,6 +64,7 @@ void JASDsp::syncFrame(u32 param_0, u32 param_1, u32 param_2) {
|
||||
void JASDsp::setDSPMixerLevel(f32 dsp_level) {
|
||||
sDSPVolume = dsp_level;
|
||||
dsp_level *= 4.0f;
|
||||
JUT_ASSERT(277, (0.0 <= dsp_level) && (dsp_level <= 8.0));
|
||||
DsetMixerLevel(dsp_level);
|
||||
}
|
||||
|
||||
@@ -51,6 +76,10 @@ JASDsp::TChannel* JASDsp::getDSPHandle(int param_0) {
|
||||
return CH_BUF + param_0;
|
||||
}
|
||||
|
||||
JASDsp::TChannel* JASDsp::getDSPHandleNc(int param_0) {
|
||||
return (TChannel*)OSCachedToUncached(CH_BUF + param_0);
|
||||
}
|
||||
|
||||
void JASDsp::setFilterTable(s16* param_0, s16* param_1, u32 param_2) {
|
||||
for (int i = 0; i < param_2; i++) {
|
||||
*param_0++ = *param_1++;
|
||||
@@ -398,7 +427,9 @@ u32 const ATTRIBUTE_ALIGN(32) JASDsp::DSPRES_FILTER[320] = {
|
||||
|
||||
void JASDsp::initBuffer() {
|
||||
CH_BUF = new(JASDram, 0x20) TChannel[64];
|
||||
JUT_ASSERT(354, CH_BUF);
|
||||
FX_BUF = new(JASDram, 0x20) FxBuf[4];
|
||||
JUT_ASSERT(356, FX_BUF);
|
||||
JASCalc::bzero(CH_BUF, 0x6000);
|
||||
JASCalc::bzero(FX_BUF, sizeof(FxBuf) * 4);
|
||||
for (u8 i = 0; i < 4; i++) {
|
||||
@@ -408,22 +439,7 @@ void JASDsp::initBuffer() {
|
||||
flushBuffer();
|
||||
}
|
||||
|
||||
u16 JASDsp::SEND_TABLE[] = {
|
||||
0x0D00,
|
||||
0x0D60,
|
||||
0x0DC8,
|
||||
0x0E28,
|
||||
0x0E88,
|
||||
0x0EE8,
|
||||
0x0CA0,
|
||||
0x0F40,
|
||||
0x0FA0,
|
||||
0x0B00,
|
||||
0x09A0,
|
||||
0x0000,
|
||||
};
|
||||
|
||||
int JASDsp::setFXLine(u8 param_0, s16* param_1, JASDsp::FxlineConfig_* param_2) {
|
||||
int JASDsp::setFXLine(u8 param_0, s16* buffer, JASDsp::FxlineConfig_* param_2) {
|
||||
FxBuf* puVar3 = FX_BUF + param_0;
|
||||
JASCriticalSection aJStack_20;
|
||||
puVar3->field_0x0 = 0;
|
||||
@@ -433,15 +449,17 @@ int JASDsp::setFXLine(u8 param_0, s16* param_1, JASDsp::FxlineConfig_* param_2)
|
||||
puVar3->field_0xe = param_2->field_0x8;
|
||||
puVar3->field_0xc = SEND_TABLE[param_2->field_0x6];
|
||||
puVar3->field_0x2 = param_2->field_0xc;
|
||||
setFilterTable(puVar3->field_0x10, param_2->field_0x10, 8);
|
||||
setFilterTable((s16*)puVar3->field_0x10, param_2->field_0x10, 8);
|
||||
}
|
||||
if (param_1 != NULL && param_2 != NULL) {
|
||||
u32 iVar1 = param_2->field_0xc * 0xa0;
|
||||
puVar3->field_0x4 = param_1;
|
||||
JASCalc::bzero(param_1, iVar1);
|
||||
DCFlushRange(param_1, iVar1);
|
||||
} else if (param_2 == NULL || param_1 != NULL) {
|
||||
puVar3->field_0x4 = param_1;
|
||||
if (buffer != NULL && param_2 != NULL) {
|
||||
u32 bufsize = param_2->field_0xc * 0xa0;
|
||||
puVar3->field_0x4 = buffer;
|
||||
JASCalc::bzero(buffer, bufsize);
|
||||
JUT_ASSERT(420, (reinterpret_cast<u32>(buffer) & 0x1f) == 0);
|
||||
JUT_ASSERT(421, (bufsize & 0x1f) == 0);
|
||||
DCFlushRange(buffer, bufsize);
|
||||
} else if (param_2 == NULL || buffer != NULL) {
|
||||
puVar3->field_0x4 = buffer;
|
||||
}
|
||||
|
||||
if (puVar3->field_0x4 != NULL) {
|
||||
@@ -453,7 +471,31 @@ int JASDsp::setFXLine(u8 param_0, s16* param_1, JASDsp::FxlineConfig_* param_2)
|
||||
return 1;
|
||||
}
|
||||
|
||||
BOOL JASDsp::changeFXLineParam(u8 param_0, u8 param_1, u32 param_2) {
|
||||
JUT_ASSERT(450, dspMutex);
|
||||
FxBuf* buf = &FX_BUF[param_0];
|
||||
switch (param_1) {
|
||||
case 0: buf->field_0x8 = param_2; break;
|
||||
case 1: buf->field_0xc = param_2; break;
|
||||
case 2: buf->field_0xa = param_2; break;
|
||||
case 3: buf->field_0xe = param_2; break;
|
||||
case 4: buf->field_0x2 = param_2; break;
|
||||
case 5: buf->field_0x10[0] = param_2; break;
|
||||
case 6: buf->field_0x10[1] = param_2; break;
|
||||
case 7: buf->field_0x10[2] = param_2; break;
|
||||
case 8: buf->field_0x10[3] = param_2; break;
|
||||
case 9: buf->field_0x10[4] = param_2; break;
|
||||
case 10: buf->field_0x10[5] = param_2; break;
|
||||
case 11: buf->field_0x10[6] = param_2; break;
|
||||
case 12: buf->field_0x10[7] = param_2; break;
|
||||
case 13: setFilterTable((s16*)buf->field_0x10, (s16*)param_2, 8); break;
|
||||
case 14: buf->field_0x0 = param_2; break;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
void JASDsp::TChannel::init() {
|
||||
JUT_ASSERT(489, dspMutex);
|
||||
mPauseFlag = 0;
|
||||
mIsFinished = 0;
|
||||
mForcedStop = 0;
|
||||
@@ -464,6 +506,7 @@ void JASDsp::TChannel::init() {
|
||||
}
|
||||
|
||||
void JASDsp::TChannel::playStart() {
|
||||
JUT_ASSERT(508, dspMutex);
|
||||
field_0x10c = 0;
|
||||
field_0x060 = 0;
|
||||
field_0x008 = 1;
|
||||
@@ -480,27 +523,34 @@ void JASDsp::TChannel::playStart() {
|
||||
}
|
||||
|
||||
void JASDsp::TChannel::playStop() {
|
||||
JUT_ASSERT(540, dspMutex);
|
||||
mIsActive = 0;
|
||||
}
|
||||
|
||||
void JASDsp::TChannel::replyFinishRequest() {
|
||||
JUT_ASSERT(549, dspMutex);
|
||||
mIsFinished = 0;
|
||||
mIsActive = 0;
|
||||
}
|
||||
|
||||
void JASDsp::TChannel::forceStop() {
|
||||
JUT_ASSERT(559, dspMutex);
|
||||
mForcedStop = 1;
|
||||
}
|
||||
|
||||
bool JASDsp::TChannel::isActive() const {
|
||||
JUT_ASSERT(568, dspMutex);
|
||||
return mIsActive != 0;
|
||||
}
|
||||
|
||||
bool JASDsp::TChannel::isFinish() const {
|
||||
JUT_ASSERT(577, dspMutex);
|
||||
return mIsFinished != 0;
|
||||
}
|
||||
|
||||
void JASDsp::TChannel::setWaveInfo(JASWaveInfo const& param_0, u32 param_1, u32 param_2) {
|
||||
int i;
|
||||
JUT_ASSERT(610, dspMutex);
|
||||
field_0x118 = param_1;
|
||||
static const u8 COMP_BLOCKSAMPLES[8] = {0x10, 0x10, 0x01, 0x01, 0x01, 0x10, 0x10, 0x01};
|
||||
field_0x064 = COMP_BLOCKSAMPLES[param_0.field_0x00];
|
||||
@@ -536,19 +586,21 @@ void JASDsp::TChannel::setWaveInfo(JASWaveInfo const& param_0, u32 param_1, u32
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < 16; i++) {
|
||||
for (i = 0; i < 16; i++) {
|
||||
field_0x0b0[i] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void JASDsp::TChannel::setOscInfo(u32 param_0) {
|
||||
JUT_ASSERT(671, dspMutex);
|
||||
field_0x118 = 0;
|
||||
field_0x064 = 16;
|
||||
field_0x100 = param_0;
|
||||
}
|
||||
|
||||
void JASDsp::TChannel::initAutoMixer() {
|
||||
JUT_ASSERT(688, dspMutex);
|
||||
if (field_0x058) {
|
||||
field_0x054 = field_0x056;
|
||||
} else {
|
||||
@@ -559,6 +611,7 @@ void JASDsp::TChannel::initAutoMixer() {
|
||||
|
||||
void JASDsp::TChannel::setAutoMixer(u16 param_0, u8 param_1, u8 param_2, u8 param_3,
|
||||
u8 param_4) {
|
||||
JUT_ASSERT(709, dspMutex);
|
||||
field_0x050 = (param_1 << 8) | param_2;
|
||||
field_0x052 = param_3 << 8 | param_3 << 1;
|
||||
field_0x056 = param_0;
|
||||
@@ -566,6 +619,7 @@ void JASDsp::TChannel::setAutoMixer(u16 param_0, u8 param_1, u8 param_2, u8 para
|
||||
}
|
||||
|
||||
void JASDsp::TChannel::setPitch(u16 param_0) {
|
||||
JUT_ASSERT(763, dspMutex);
|
||||
if (param_0 >= 0x7fff) {
|
||||
param_0 = 0x7fff;
|
||||
}
|
||||
@@ -573,6 +627,7 @@ void JASDsp::TChannel::setPitch(u16 param_0) {
|
||||
}
|
||||
|
||||
void JASDsp::TChannel::setMixerInitVolume(u8 param_0, s16 param_1) {
|
||||
JUT_ASSERT(798, dspMutex);
|
||||
u16* tmp = field_0x010[param_0];
|
||||
tmp[2] = param_1;
|
||||
tmp[1] = param_1;
|
||||
@@ -580,14 +635,17 @@ void JASDsp::TChannel::setMixerInitVolume(u8 param_0, s16 param_1) {
|
||||
}
|
||||
|
||||
void JASDsp::TChannel::setMixerVolume(u8 param_0, s16 param_1) {
|
||||
u16* tmp;
|
||||
JUT_ASSERT(841, dspMutex);
|
||||
if (mForcedStop == 0) {
|
||||
u16* tmp = field_0x010[param_0];
|
||||
tmp = field_0x010[param_0];
|
||||
tmp[1] = param_1;
|
||||
tmp[3] &= 0xff;
|
||||
}
|
||||
}
|
||||
|
||||
void JASDsp::TChannel::setPauseFlag(u8 param_0) {
|
||||
JUT_ASSERT(863, dspMutex);
|
||||
mPauseFlag = param_0;
|
||||
}
|
||||
|
||||
@@ -596,7 +654,8 @@ void JASDsp::TChannel::flush() {
|
||||
}
|
||||
|
||||
void JASDsp::TChannel::initFilter() {
|
||||
int i;
|
||||
u32 i;
|
||||
JUT_ASSERT(888, dspMutex);
|
||||
for (i = 0; i < 8; i++) {
|
||||
fir_filter_params[i] = 0;
|
||||
}
|
||||
@@ -609,6 +668,7 @@ void JASDsp::TChannel::initFilter() {
|
||||
}
|
||||
|
||||
void JASDsp::TChannel::setFilterMode(u16 param_0) {
|
||||
JUT_ASSERT(914, dspMutex);
|
||||
u8 r30 = param_0 & 0x20;
|
||||
u8 r31 = param_0 & 0x1f;
|
||||
if (r30) {
|
||||
@@ -624,24 +684,30 @@ void JASDsp::TChannel::setFilterMode(u16 param_0) {
|
||||
}
|
||||
|
||||
void JASDsp::TChannel::setIIRFilterParam(s16* param_0) {
|
||||
JUT_ASSERT(937, dspMutex);
|
||||
setFilterTable(iir_filter_params, param_0, 8);
|
||||
}
|
||||
|
||||
void JASDsp::TChannel::setFIR8FilterParam(s16* param_0) {
|
||||
JUT_ASSERT(948, dspMutex);
|
||||
setFilterTable(fir_filter_params, param_0, 8);
|
||||
}
|
||||
|
||||
void JASDsp::TChannel::setDistFilter(s16 param_0) {
|
||||
JUT_ASSERT(959, dspMutex);
|
||||
iir_filter_params[4] = param_0;
|
||||
}
|
||||
|
||||
void JASDsp::TChannel::setBusConnect(u8 param_0, u8 param_1) {
|
||||
JUT_ASSERT(973, dspMutex);
|
||||
u16* tmp = field_0x010[param_0];
|
||||
static u16 const connect_table[12] = {
|
||||
0x0000, 0x0D00, 0x0D60, 0x0DC0, 0x0E20, 0x0E80,
|
||||
0x0EE0, 0x0CA0, 0x0F40, 0x0FA0, 0x0B00, 0x09A0,
|
||||
};
|
||||
tmp[0] = connect_table[param_1];
|
||||
u16 r30 = 0;
|
||||
r30 = connect_table[param_1];
|
||||
tmp[0] = r30;
|
||||
}
|
||||
|
||||
u16 DSP_CreateMap2(u32 param_0) {
|
||||
@@ -656,9 +722,3 @@ u16 DSP_CreateMap2(u32 param_0) {
|
||||
}
|
||||
return r30;
|
||||
}
|
||||
|
||||
u32 JASWaveInfo::one = 1;
|
||||
|
||||
#if DEBUG
|
||||
s32 dspMutex = 1;
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user