DTK Music: Test of code to fix the 1080 and Waver Race music

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3326 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
John Peterson 2009-06-04 20:33:26 +00:00
parent 4380898080
commit 04adec5ae5
3 changed files with 19 additions and 8 deletions

View File

@ -174,6 +174,12 @@ void Write32(const u32 _Value, const u32 _Address)
INFO_LOG(AUDIO_INTERFACE, "Change Freq to %s", tmpAICtrl.AFR ? "48khz":"32khz"); INFO_LOG(AUDIO_INTERFACE, "Change Freq to %s", tmpAICtrl.AFR ? "48khz":"32khz");
g_AudioRegister.m_Control.AFR = tmpAICtrl.AFR; g_AudioRegister.m_Control.AFR = tmpAICtrl.AFR;
} }
// Set DSP frequency
if (tmpAICtrl.DSPFR != g_AudioRegister.m_Control.DSPFR)
{
INFO_LOG(AUDIO_INTERFACE, "AI_CONTROL_REGISTER: Change DSPFR Freq to %s", tmpAICtrl.DSPFR ? "48khz":"32khz");
g_AudioRegister.m_Control.DSPFR = tmpAICtrl.DSPFR;
}
g_SampleRate = tmpAICtrl.AFR ? 32000 : 48000; g_SampleRate = tmpAICtrl.AFR ? 32000 : 48000;
g_DSPSampleRate = tmpAICtrl.DSPFR ? 32000 : 48000; g_DSPSampleRate = tmpAICtrl.DSPFR ? 32000 : 48000;
@ -186,8 +192,11 @@ void Write32(const u32 _Value, const u32 _Address)
{ {
INFO_LOG(AUDIO_INTERFACE, "Change StreamingCounter to %s", tmpAICtrl.PSTAT ? "startet":"stopped"); INFO_LOG(AUDIO_INTERFACE, "Change StreamingCounter to %s", tmpAICtrl.PSTAT ? "startet":"stopped");
g_AudioRegister.m_Control.PSTAT = tmpAICtrl.PSTAT; g_AudioRegister.m_Control.PSTAT = tmpAICtrl.PSTAT;
g_LastCPUTime = CoreTiming::GetTicks(); g_LastCPUTime = CoreTiming::GetTicks();
// This is the only new code in this ~3,326 revision, it seems to avoid hanging Crazy Taxi,
// while the 1080 and Wave Race music still works
if (!tmpAICtrl.PSTAT) DVDInterface::m_bStream = false;
} }
// AI Interrupt // AI Interrupt
@ -209,7 +218,8 @@ void Write32(const u32 _Value, const u32 _Address)
g_LastCPUTime = CoreTiming::GetTicks(); g_LastCPUTime = CoreTiming::GetTicks();
} }
g_AudioRegister.m_Control = tmpAICtrl; // I don't think we need this
//g_AudioRegister.m_Control = tmpAICtrl;
UpdateInterrupts(); UpdateInterrupts();
} }

View File

@ -587,10 +587,10 @@ void ExecuteCommand(UDIDMAControlRegister& _DMAControlReg)
//========================================================================================================= //=========================================================================================================
case 0xE2: case 0xE2:
{ {
/* if (m_bStream) /**/ if (m_bStream)
dvdMem.Immediate = 1; dvdMem.Immediate = 1;
else else
dvdMem.Immediate = 0;*/ dvdMem.Immediate = 0;
} }
DEBUG_LOG(DVDINTERFACE, "DVD(Audio): Request Audio status"); DEBUG_LOG(DVDINTERFACE, "DVD(Audio): Request Audio status");
break; break;
@ -609,16 +609,16 @@ void ExecuteCommand(UDIDMAControlRegister& _DMAControlReg)
// Command/Subcommand/Padding <- E4010000 (enable) // Command/Subcommand/Padding <- E4010000 (enable)
//========================================================================================================= //=========================================================================================================
case 0xE4: case 0xE4:
/* if (((dvdMem.Command[0] & 0x00FF0000) >> 16) == 1) /**/ if (((dvdMem.Command[0] & 0x00FF0000) >> 16) == 1)
{ {
m_bStream = true; m_bStream = true;
LOG(DVDINTERFACE, "DVD(Audio): Audio enabled"); DEBUG_LOG(DVDINTERFACE, "DVD(Audio): Audio enabled");
} }
else else
{ {
m_bStream = false; m_bStream = false;
LOG(DVDINTERFACE, "DVD(Audio): Audio disabled"); DEBUG_LOG(DVDINTERFACE, "DVD(Audio): Audio disabled");
}*/ }
break; break;
//========================================================================================================= //=========================================================================================================

View File

@ -38,6 +38,7 @@ bool IsLidOpen();
// DVD Access Functions // DVD Access Functions
bool DVDRead(u32 _iDVDOffset, u32 _iRamAddress, u32 _iLength); bool DVDRead(u32 _iDVDOffset, u32 _iRamAddress, u32 _iLength);
bool DVDReadADPCM(u8* _pDestBuffer, u32 _iNumSamples); bool DVDReadADPCM(u8* _pDestBuffer, u32 _iNumSamples);
extern bool m_bStream;
// Read32 // Read32
void Read32(u32& _uReturnValue, const u32 _iAddress); void Read32(u32& _uReturnValue, const u32 _iAddress);