mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-29 17:19:44 -06:00
Ban compression of Wii images until it has been tested. All sorts of minor cleanup.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@669 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@ -42,9 +42,7 @@ CDSPHandler::~CDSPHandler()
|
||||
void CDSPHandler::Update()
|
||||
{
|
||||
if (m_pUCode != NULL)
|
||||
{
|
||||
m_pUCode->Update();
|
||||
}
|
||||
}
|
||||
|
||||
unsigned short CDSPHandler::WriteControlRegister(unsigned short _Value)
|
||||
@ -64,32 +62,29 @@ unsigned short CDSPHandler::WriteControlRegister(unsigned short _Value)
|
||||
}
|
||||
|
||||
m_DSPControl.Hex = Temp.Hex;
|
||||
|
||||
return(m_DSPControl.Hex);
|
||||
return m_DSPControl.Hex;
|
||||
}
|
||||
|
||||
unsigned short CDSPHandler::ReadControlRegister()
|
||||
{
|
||||
return(m_DSPControl.Hex);
|
||||
return m_DSPControl.Hex;
|
||||
}
|
||||
|
||||
void CDSPHandler::SendMailToDSP(u32 _uMail)
|
||||
{
|
||||
if (m_pUCode != NULL)
|
||||
{
|
||||
m_pUCode->HandleMail(_uMail);
|
||||
}
|
||||
}
|
||||
|
||||
IUCode* CDSPHandler::GetUCode()
|
||||
{
|
||||
return(m_pUCode);
|
||||
return m_pUCode;
|
||||
}
|
||||
|
||||
void CDSPHandler::SetUCode(u32 _crc)
|
||||
{
|
||||
delete m_pUCode;
|
||||
|
||||
m_pUCode = NULL;
|
||||
m_MailHandler.Clear();
|
||||
m_pUCode = UCodeFactory(_crc, m_MailHandler);
|
||||
}
|
||||
|
@ -32,11 +32,11 @@ public:
|
||||
IUCode* GetUCode();
|
||||
void SetUCode(u32 _crc);
|
||||
|
||||
CMailHandler& AccessMailHandler() {return(m_MailHandler);}
|
||||
CMailHandler& AccessMailHandler() { return m_MailHandler; }
|
||||
|
||||
static CDSPHandler& GetInstance()
|
||||
{
|
||||
return(*m_pInstance);
|
||||
return *m_pInstance;
|
||||
}
|
||||
|
||||
static void Destroy()
|
||||
@ -48,11 +48,9 @@ public:
|
||||
static CDSPHandler& CreateInstance()
|
||||
{
|
||||
if (!m_pInstance)
|
||||
{
|
||||
m_pInstance = new CDSPHandler();
|
||||
}
|
||||
|
||||
return(*m_pInstance);
|
||||
return *m_pInstance;
|
||||
}
|
||||
|
||||
private:
|
||||
|
@ -18,7 +18,9 @@
|
||||
#include "MailHandler.h"
|
||||
|
||||
CMailHandler::CMailHandler()
|
||||
{}
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
CMailHandler::~CMailHandler()
|
||||
{
|
||||
@ -38,13 +40,11 @@ u16 CMailHandler::ReadDSPMailboxHigh()
|
||||
if (!m_Mails.empty())
|
||||
{
|
||||
u16 result = (m_Mails.front() >> 16) & 0xFFFF;
|
||||
|
||||
Update();
|
||||
|
||||
return(result);
|
||||
return result;
|
||||
}
|
||||
|
||||
return(0x00);
|
||||
return 0x00;
|
||||
}
|
||||
|
||||
u16 CMailHandler::ReadDSPMailboxLow()
|
||||
@ -60,20 +60,18 @@ u16 CMailHandler::ReadDSPMailboxLow()
|
||||
return(result);
|
||||
}
|
||||
|
||||
return(0x00);
|
||||
return 0x00;
|
||||
}
|
||||
|
||||
void CMailHandler::Clear()
|
||||
{
|
||||
while (!m_Mails.empty())
|
||||
{
|
||||
m_Mails.pop();
|
||||
}
|
||||
}
|
||||
|
||||
bool CMailHandler::IsEmpty()
|
||||
{
|
||||
return(m_Mails.empty());
|
||||
return m_Mails.empty();
|
||||
}
|
||||
|
||||
void CMailHandler::Halt(bool _Halt)
|
||||
|
@ -29,10 +29,13 @@ CUCode_Zelda::CUCode_Zelda(CMailHandler& _rMailHandler)
|
||||
: IUCode(_rMailHandler)
|
||||
, m_numSteps(0)
|
||||
, m_bListInProgress(false)
|
||||
, m_step(0)
|
||||
, m_readOffset(0)
|
||||
{
|
||||
DebugLog("UCode_Zelda - add boot mails for handshake");
|
||||
m_rMailHandler.PushMail(DSP_INIT);
|
||||
m_rMailHandler.PushMail(0x80000000); // handshake
|
||||
memset(m_Buffer, 0, sizeof(m_Buffer));
|
||||
}
|
||||
|
||||
|
||||
@ -46,9 +49,7 @@ void CUCode_Zelda::Update()
|
||||
{
|
||||
// check if we have to sent something
|
||||
if (!m_rMailHandler.IsEmpty())
|
||||
{
|
||||
g_dspInitialize.pGenerateDSPInterrupt();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -62,6 +63,8 @@ void CUCode_Zelda::HandleMail(u32 _uMail)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (m_step < 0 || m_step >= sizeof(m_Buffer)/4)
|
||||
PanicAlert("m_step out of range");
|
||||
((u32*)m_Buffer)[m_step] = _uMail;
|
||||
m_step++;
|
||||
|
||||
|
@ -45,21 +45,21 @@ private:
|
||||
|
||||
u8 Read8()
|
||||
{
|
||||
return(m_Buffer[m_readOffset++]);
|
||||
return m_Buffer[m_readOffset++];
|
||||
}
|
||||
|
||||
u16 Read16()
|
||||
{
|
||||
u16 res = *(u16*)&m_Buffer[m_readOffset];
|
||||
m_readOffset += 2;
|
||||
return(res);
|
||||
return res;
|
||||
}
|
||||
|
||||
u32 Read32()
|
||||
{
|
||||
u32 res = *(u32*)&m_Buffer[m_readOffset];
|
||||
m_readOffset += 4;
|
||||
return(res);
|
||||
return res;
|
||||
}
|
||||
public:
|
||||
|
||||
|
@ -32,20 +32,20 @@ IUCode* UCodeFactory(u32 _CRC, CMailHandler& _rMailHandler)
|
||||
switch (_CRC)
|
||||
{
|
||||
case UCODE_ROM:
|
||||
return(new CUCode_Rom(_rMailHandler));
|
||||
return new CUCode_Rom(_rMailHandler);
|
||||
|
||||
case UCODE_INIT_AUDIO_SYSTEM:
|
||||
return(new CUCode_InitAudioSystem(_rMailHandler));
|
||||
return new CUCode_InitAudioSystem(_rMailHandler);
|
||||
|
||||
case 0x65d6cc6f: // CARD
|
||||
return(new CUCode_CARD(_rMailHandler));
|
||||
return new CUCode_CARD(_rMailHandler);
|
||||
|
||||
case 0x088e38a5: // IPL - JAP
|
||||
case 0xd73338cf: // IPL
|
||||
case 0x42f64ac4: // Luigi (after fix)
|
||||
case 0x4be6a5cb: // AC, Pikmin (after fix)
|
||||
DebugLog("JAC ucode chosen");
|
||||
return(new CUCode_Jac(_rMailHandler));
|
||||
return new CUCode_Jac(_rMailHandler);
|
||||
|
||||
case 0x3ad3b7ac: // Naruto3
|
||||
case 0x3daf59b9: // Alien Hominid
|
||||
@ -57,31 +57,31 @@ IUCode* UCodeFactory(u32 _CRC, CMailHandler& _rMailHandler)
|
||||
// Zelda:OOT, Tony hawk, viewtiful joe
|
||||
case 0xe2136399: // billy hatcher, dragonballz, mario party 5, TMNT, ava1080
|
||||
DebugLog("AX ucode chosen, yay!");
|
||||
return(new CUCode_AX(_rMailHandler));
|
||||
return new CUCode_AX(_rMailHandler);
|
||||
|
||||
case 0x6CA33A6D: // DK Jungle Beat
|
||||
case 0x86840740: // zelda
|
||||
case 0x56d36052: // mario
|
||||
case 0x2fcdf1ec: // mariokart, zelda 4 swords
|
||||
DebugLog("Zelda ucode chosen");
|
||||
return(new CUCode_Zelda(_rMailHandler));
|
||||
return new CUCode_Zelda(_rMailHandler);
|
||||
|
||||
// WII CRCs
|
||||
case 0x6c3f6f94: // zelda - PAL
|
||||
case 0xd643001f: // mario galaxy - PAL
|
||||
DebugLog("Zelda Wii ucode chosen");
|
||||
return(new CUCode_Zelda(_rMailHandler));
|
||||
return new CUCode_Zelda(_rMailHandler);
|
||||
|
||||
case 0x347112ba: // raving rabbits
|
||||
DebugLog("Wii - AX chosen");
|
||||
return(new CUCode_AX(_rMailHandler, true));
|
||||
return new CUCode_AX(_rMailHandler, true);
|
||||
|
||||
default:
|
||||
PanicAlert("Unknown ucode (CRC = %08x) - forcing AX", _CRC);
|
||||
return(new CUCode_AX(_rMailHandler));
|
||||
return new CUCode_AX(_rMailHandler);
|
||||
}
|
||||
|
||||
return(NULL);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
|
@ -24,6 +24,7 @@
|
||||
#define UCODE_INIT_AUDIO_SYSTEM 0x0000001
|
||||
|
||||
class CMailHandler;
|
||||
|
||||
class IUCode
|
||||
{
|
||||
public:
|
||||
|
@ -132,6 +132,12 @@ void DSP_Initialize(DSPInitialize _dspInitialize)
|
||||
CDSPHandler::CreateInstance();
|
||||
|
||||
#ifdef _WIN32
|
||||
#ifdef _DEBUG
|
||||
int tmpflag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG);
|
||||
tmpflag |= _CRTDBG_DELAY_FREE_MEM_DF;
|
||||
_CrtSetDbgFlag(tmpflag);
|
||||
#endif
|
||||
|
||||
DSound::DSound_StartSound((HWND)g_dspInitialize.hWnd, 48000, Mixer);
|
||||
#else
|
||||
AOSound::AOSound_StartSound(48000, Mixer);
|
||||
@ -157,11 +163,11 @@ unsigned short DSP_ReadMailboxHigh(bool _CPUMailbox)
|
||||
{
|
||||
if (_CPUMailbox)
|
||||
{
|
||||
return((g_dspState.CPUMailbox >> 16) & 0xFFFF);
|
||||
return (g_dspState.CPUMailbox >> 16) & 0xFFFF;
|
||||
}
|
||||
else
|
||||
{
|
||||
return(CDSPHandler::GetInstance().AccessMailHandler().ReadDSPMailboxHigh());
|
||||
return CDSPHandler::GetInstance().AccessMailHandler().ReadDSPMailboxHigh();
|
||||
}
|
||||
}
|
||||
|
||||
@ -169,11 +175,11 @@ unsigned short DSP_ReadMailboxLow(bool _CPUMailbox)
|
||||
{
|
||||
if (_CPUMailbox)
|
||||
{
|
||||
return(g_dspState.CPUMailbox & 0xFFFF);
|
||||
return g_dspState.CPUMailbox & 0xFFFF;
|
||||
}
|
||||
else
|
||||
{
|
||||
return(CDSPHandler::GetInstance().AccessMailHandler().ReadDSPMailboxLow());
|
||||
return CDSPHandler::GetInstance().AccessMailHandler().ReadDSPMailboxLow();
|
||||
}
|
||||
}
|
||||
|
||||
@ -249,5 +255,4 @@ void DSP_SendAIBuffer(unsigned int address, int sample_rate)
|
||||
if ((counter & 255) == 0)
|
||||
DSound::DSound_UpdateSound();
|
||||
#endif
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user