the BIAS register set to 0x200 on fake boot.

This commit is contained in:
mtabachenko 2013-11-28 14:40:14 +00:00
parent cc13d8f6d4
commit 02701e48d9
3 changed files with 7 additions and 3 deletions

View File

@ -2394,7 +2394,7 @@ void NDS_Reset()
memcpy(FW_Mac, (MMU.fw.data + 0x36), 6);
SPU_DeInit();
SPU_ReInit();
SPU_ReInit(!canBootFromFirmware && bootResult);
//this needs to happen last, pretty much, since it establishes the correct scheduling state based on all of the above initialization
initSchedule();

View File

@ -184,9 +184,13 @@ SoundInterface_struct *SPU_SoundCore()
return SNDCore;
}
void SPU_ReInit()
void SPU_ReInit(bool fakeBoot)
{
SPU_Init(SNDCoreId, buffersize);
// Firmware set BIAS to 0x200
if (fakeBoot)
SPU_WriteWord(0x04000504, 0x0200);
}
int SPU_Init(int coreid, int buffersize)

View File

@ -194,7 +194,7 @@ public:
int SPU_ChangeSoundCore(int coreid, int buffersize);
SoundInterface_struct *SPU_SoundCore();
void SPU_ReInit();
void SPU_ReInit(bool fakeBoot = false);
int SPU_Init(int coreid, int buffersize);
void SPU_Pause(int pause);
void SPU_SetVolume(int volume);