mirror of https://github.com/PrimeDecomp/prime.git
Minor cleanups in hw_dolphin and synth_ac
This commit is contained in:
parent
3d0dfaca62
commit
c6ff09fb87
|
@ -5,8 +5,8 @@
|
||||||
|
|
||||||
/* Is this actually what factor 5 did? They specify 0x2000 for the dram size, but the next TU winds
|
/* Is this actually what factor 5 did? They specify 0x2000 for the dram size, but the next TU winds
|
||||||
* up incorrectly aligned */
|
* up incorrectly aligned */
|
||||||
static u8 dram_image[0x2008] ATTRIBUTE_ALIGN(32);
|
|
||||||
static DSPTaskInfo dsp_task ATTRIBUTE_ALIGN(8);
|
static DSPTaskInfo dsp_task ATTRIBUTE_ALIGN(8);
|
||||||
|
static u16 dram_image[4096 + 4] ATTRIBUTE_ALIGN(32);
|
||||||
|
|
||||||
static volatile u32 oldState = 0;
|
static volatile u32 oldState = 0;
|
||||||
static volatile u16 hwIrqLevel = 0;
|
static volatile u16 hwIrqLevel = 0;
|
||||||
|
@ -36,7 +36,7 @@ void callUserCallback() {
|
||||||
|
|
||||||
void salCallback() {
|
void salCallback() {
|
||||||
salAIBufferIndex = (salAIBufferIndex + 1) % 4;
|
salAIBufferIndex = (salAIBufferIndex + 1) % 4;
|
||||||
AIInitDMA((((u32)salAIBufferBase - 0x80000000) + (salAIBufferIndex * DMA_BUFFER_LEN)),
|
AIInitDMA(OSCachedToPhysical(salAIBufferBase) + (salAIBufferIndex * DMA_BUFFER_LEN),
|
||||||
DMA_BUFFER_LEN);
|
DMA_BUFFER_LEN);
|
||||||
salLastTick = OSGetTick();
|
salLastTick = OSGetTick();
|
||||||
if (salDspIsDone) {
|
if (salDspIsDone) {
|
||||||
|
@ -55,19 +55,12 @@ void dspResumeCallback() {
|
||||||
salDspIsDone = TRUE;
|
salDspIsDone = TRUE;
|
||||||
if (salLogicIsWaiting) {
|
if (salLogicIsWaiting) {
|
||||||
salLogicIsWaiting = FALSE;
|
salLogicIsWaiting = FALSE;
|
||||||
if (salLogicActive == FALSE) {
|
callUserCallback();
|
||||||
salLogicActive = TRUE;
|
|
||||||
OSEnableInterrupts();
|
|
||||||
userCallback();
|
|
||||||
OSDisableInterrupts();
|
|
||||||
salLogicActive = FALSE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 salInitAi(SND_SOME_CALLBACK callback, u32 unk, u32* outFreq) {
|
u32 salInitAi(SND_SOME_CALLBACK callback, u32 unk, u32* outFreq) {
|
||||||
salAIBufferBase = salMalloc(DMA_BUFFER_LEN * 4);
|
if ((salAIBufferBase = salMalloc(DMA_BUFFER_LEN * 4)) != NULL) {
|
||||||
if (salAIBufferBase != NULL) {
|
|
||||||
memset(salAIBufferBase, 0, DMA_BUFFER_LEN * 4);
|
memset(salAIBufferBase, 0, DMA_BUFFER_LEN * 4);
|
||||||
DCFlushRange(salAIBufferBase, DMA_BUFFER_LEN * 4);
|
DCFlushRange(salAIBufferBase, DMA_BUFFER_LEN * 4);
|
||||||
salAIBufferIndex = TRUE;
|
salAIBufferIndex = TRUE;
|
||||||
|
@ -76,9 +69,10 @@ u32 salInitAi(SND_SOME_CALLBACK callback, u32 unk, u32* outFreq) {
|
||||||
salLogicActive = FALSE;
|
salLogicActive = FALSE;
|
||||||
userCallback = callback;
|
userCallback = callback;
|
||||||
AIRegisterDMACallback(salCallback);
|
AIRegisterDMACallback(salCallback);
|
||||||
AIInitDMA(OSCachedToPhysical((u32)salAIBufferBase) + (salAIBufferIndex * 0x280), 0x280);
|
AIInitDMA(OSCachedToPhysical(salAIBufferBase) + (salAIBufferIndex * 0x280), 0x280);
|
||||||
synthInfo.numSamples = 0x20;
|
synthInfo.numSamples = 0x20;
|
||||||
*outFreq = 32000;
|
*outFreq = 32000;
|
||||||
|
MUSY_DEBUG("MusyX AI interface initialized.\n");
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -130,11 +124,12 @@ u32 salExitDsp() {
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void salStartDsp(u16* cmdList) {
|
void salStartDsp(u16* cmdList) {
|
||||||
salDspIsDone = FALSE;
|
salDspIsDone = FALSE;
|
||||||
PPCSync();
|
PPCSync();
|
||||||
|
/* clang-format off */
|
||||||
MUSY_ASSERT(((u32)cmdList&0x1F) == 0);
|
MUSY_ASSERT(((u32)cmdList&0x1F) == 0);
|
||||||
|
/* clang-format on */
|
||||||
DSPSendMailToDSP(dspCmdFirstSize | 0xbabe0000);
|
DSPSendMailToDSP(dspCmdFirstSize | 0xbabe0000);
|
||||||
|
|
||||||
while (DSPCheckMailToDSP())
|
while (DSPCheckMailToDSP())
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
extern SynthInfo synthInfo;
|
extern SynthInfo synthInfo;
|
||||||
|
|
||||||
float toneup_tab[128] = {
|
static float toneup_tab[128] = {
|
||||||
1.0f, 1.0594635f, 1.1224623f, 1.1892071f, 1.2599211f, 1.3348398f, 1.4142141f,
|
1.0f, 1.0594635f, 1.1224623f, 1.1892071f, 1.2599211f, 1.3348398f, 1.4142141f,
|
||||||
1.4983072f, 1.5874014f, 1.6817932f, 1.7817984f, 1.8877487f, 2.000001f, 2.118927f,
|
1.4983072f, 1.5874014f, 1.6817932f, 1.7817984f, 1.8877487f, 2.000001f, 2.118927f,
|
||||||
2.2449245f, 2.378415f, 2.519843f, 2.6696806f, 2.8284283f, 2.9966154f, 3.1748037f,
|
2.2449245f, 2.378415f, 2.519843f, 2.6696806f, 2.8284283f, 2.9966154f, 3.1748037f,
|
||||||
|
@ -24,7 +24,7 @@ float toneup_tab[128] = {
|
||||||
1448.1554f, 1534.2672f,
|
1448.1554f, 1534.2672f,
|
||||||
|
|
||||||
};
|
};
|
||||||
float tonedown_tab[128] = {
|
static float tonedown_tab[128] = {
|
||||||
1.0f, 0.94387436f, 0.8908987f, 0.8408966f, 0.7937002f, 0.74915314f,
|
1.0f, 0.94387436f, 0.8908987f, 0.8408966f, 0.7937002f, 0.74915314f,
|
||||||
0.7071066f, 0.66741943f, 0.62996006f, 0.59460354f, 0.56123066f, 0.52973175f,
|
0.7071066f, 0.66741943f, 0.62996006f, 0.59460354f, 0.56123066f, 0.52973175f,
|
||||||
0.5f, 0.47193718f, 0.44544888f, 0.4204483f, 0.3968506f, 0.37457657f,
|
0.5f, 0.47193718f, 0.44544888f, 0.4204483f, 0.3968506f, 0.37457657f,
|
||||||
|
|
Loading…
Reference in New Issue