summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorJohn Peterson <jpeterson57@gmail.com>2009-06-04 20:33:26 +0000
committerJohn Peterson <jpeterson57@gmail.com>2009-06-04 20:33:26 +0000
commit04adec5ae59362b35e347a31d60acae633a232c2 (patch)
tree59da93bbb26912961766893aaf074fc8cda6643c /Source/Core
parent4380898080ede48cbf520e7ec7cd622346be349c (diff)
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
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/Src/HW/AudioInterface.cpp14
-rw-r--r--Source/Core/Core/Src/HW/DVDInterface.cpp12
-rw-r--r--Source/Core/Core/Src/HW/DVDInterface.h1
3 files changed, 19 insertions, 8 deletions
diff --git a/Source/Core/Core/Src/HW/AudioInterface.cpp b/Source/Core/Core/Src/HW/AudioInterface.cpp
index 9dcf7ec3d9..037c5757ea 100644
--- a/Source/Core/Core/Src/HW/AudioInterface.cpp
+++ b/Source/Core/Core/Src/HW/AudioInterface.cpp
@@ -174,6 +174,12 @@ void Write32(const u32 _Value, const u32 _Address)
INFO_LOG(AUDIO_INTERFACE, "Change Freq to %s", tmpAICtrl.AFR ? "48khz":"32khz");
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_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");
g_AudioRegister.m_Control.PSTAT = tmpAICtrl.PSTAT;
-
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
@@ -209,7 +218,8 @@ void Write32(const u32 _Value, const u32 _Address)
g_LastCPUTime = CoreTiming::GetTicks();
}
- g_AudioRegister.m_Control = tmpAICtrl;
+ // I don't think we need this
+ //g_AudioRegister.m_Control = tmpAICtrl;
UpdateInterrupts();
}
diff --git a/Source/Core/Core/Src/HW/DVDInterface.cpp b/Source/Core/Core/Src/HW/DVDInterface.cpp
index 99404c34e5..a810e35508 100644
--- a/Source/Core/Core/Src/HW/DVDInterface.cpp
+++ b/Source/Core/Core/Src/HW/DVDInterface.cpp
@@ -587,10 +587,10 @@ void ExecuteCommand(UDIDMAControlRegister& _DMAControlReg)
//=========================================================================================================
case 0xE2:
{
- /* if (m_bStream)
+ /**/ if (m_bStream)
dvdMem.Immediate = 1;
else
- dvdMem.Immediate = 0;*/
+ dvdMem.Immediate = 0;
}
DEBUG_LOG(DVDINTERFACE, "DVD(Audio): Request Audio status");
break;
@@ -609,16 +609,16 @@ void ExecuteCommand(UDIDMAControlRegister& _DMAControlReg)
// Command/Subcommand/Padding <- E4010000 (enable)
//=========================================================================================================
case 0xE4:
-/* if (((dvdMem.Command[0] & 0x00FF0000) >> 16) == 1)
+/**/ if (((dvdMem.Command[0] & 0x00FF0000) >> 16) == 1)
{
m_bStream = true;
- LOG(DVDINTERFACE, "DVD(Audio): Audio enabled");
+ DEBUG_LOG(DVDINTERFACE, "DVD(Audio): Audio enabled");
}
else
{
m_bStream = false;
- LOG(DVDINTERFACE, "DVD(Audio): Audio disabled");
- }*/
+ DEBUG_LOG(DVDINTERFACE, "DVD(Audio): Audio disabled");
+ }
break;
//=========================================================================================================
diff --git a/Source/Core/Core/Src/HW/DVDInterface.h b/Source/Core/Core/Src/HW/DVDInterface.h
index bf282ae0cb..4a2f536ff1 100644
--- a/Source/Core/Core/Src/HW/DVDInterface.h
+++ b/Source/Core/Core/Src/HW/DVDInterface.h
@@ -38,6 +38,7 @@ bool IsLidOpen();
// DVD Access Functions
bool DVDRead(u32 _iDVDOffset, u32 _iRamAddress, u32 _iLength);
bool DVDReadADPCM(u8* _pDestBuffer, u32 _iNumSamples);
+extern bool m_bStream;
// Read32
void Read32(u32& _uReturnValue, const u32 _iAddress);