From 9734e39530b9221290b9021c3b72432c4fb9fd75 Mon Sep 17 00:00:00 2001 From: nakeee Date: Thu, 8 Apr 2010 13:32:09 +0000 Subject: [PATCH] Stable: Changed version to 2.0 Backported HLE changed from trunk git-svn-id: https://dolphin-emu.googlecode.com/svn/branches/stable@5293 8ced0084-cf51-0410-be5f-012b33b47a6e --- SConstruct | 2 +- Source/Core/Common/Src/svnrev.h | 4 +- .../Plugin_DSP_HLE/Src/UCodes/UCode_AX.cpp | 58 ++++++++++++------- .../Plugin_DSP_HLE/Src/UCodes/UCode_AXWii.cpp | 54 +++++++++++------ 4 files changed, 78 insertions(+), 40 deletions(-) diff --git a/SConstruct b/SConstruct index d0c38c7776..4387db990e 100644 --- a/SConstruct +++ b/SConstruct @@ -521,7 +521,7 @@ if env['bundle']: rev = "" # Make tar ball (TODO put inside normal dir) tar_env = env.Clone() - tarball = tar_env.Tar('dolphin-2.0RC1-'+ rev +'.tar.bz2', env['prefix']) + tarball = tar_env.Tar('dolphin-2.0.tar.bz2', env['prefix']) tar_env.Append(TARFLAGS='-j', TARCOMSTR="Creating release tarball") diff --git a/Source/Core/Common/Src/svnrev.h b/Source/Core/Common/Src/svnrev.h index 9cddda0625..3ba8ed4ce9 100644 --- a/Source/Core/Common/Src/svnrev.h +++ b/Source/Core/Common/Src/svnrev.h @@ -1,2 +1,2 @@ -#define SVN_REV 5163 -#define SVN_REV_STR "2.0 RC1" +#define SVN_REV 5163 +#define SVN_REV_STR "2.0" diff --git a/Source/Plugins/Plugin_DSP_HLE/Src/UCodes/UCode_AX.cpp b/Source/Plugins/Plugin_DSP_HLE/Src/UCodes/UCode_AX.cpp index 637784a826..6bd4f6ee1b 100644 --- a/Source/Plugins/Plugin_DSP_HLE/Src/UCodes/UCode_AX.cpp +++ b/Source/Plugins/Plugin_DSP_HLE/Src/UCodes/UCode_AX.cpp @@ -23,6 +23,7 @@ #include "../Globals.h" #include "Mixer.h" #include "../MailHandler.h" +#include "../DSPHandler.h" #include "UCodes.h" #include "UCode_AXStructs.h" @@ -65,7 +66,7 @@ static void ProcessUpdates(AXPB &PB) int on = 0, off = 0; for (int j = 0; j < numupd; j++) { - int k = g_Config.m_EnableRE0Fix ? 0 : j; + int k = g_Config.m_RE0Fix ? 0 : j; const u16 updpar = Memory_Read_U16(updaddr + k); const u16 upddata = Memory_Read_U16(updaddr + k + 2); @@ -215,26 +216,43 @@ void CUCode_AX::MixAdd(short* _pBuffer, int _iSize) // Handle incoming mail void CUCode_AX::HandleMail(u32 _uMail) { - if ((_uMail & 0xFFFF0000) == MAIL_AX_ALIST) - { - // We are expected to get a new CmdBlock - DEBUG_LOG(DSPHLE, "GetNextCmdBlock (%ibytes)", (u16)_uMail); + static s8 newucodemails = -1; + + if (newucodemails > -1) { + newucodemails++; + if (newucodemails == 10) { + newucodemails = -1; + m_rMailHandler.PushMail(DSP_RESUME); + } } - else if (_uMail == 0xCDD10000) // Action 0 - restart - { - m_rMailHandler.PushMail(DSP_RESUME); - } - else if (_uMail == 0xCDD10001) // Action 1 - new ucode upload - { - NOTICE_LOG(DSPHLE,"Game wanted to upload new ucode!"); - } - else if ((_uMail & 0xFFFF0000) == 0xCDD10000) // Action 2/3 - { - } - else - { - DEBUG_LOG(DSPHLE, " >>>> u32 MAIL : AXTask Mail (%08x)", _uMail); - AXTask(_uMail); + else { + if ((_uMail & 0xFFFF0000) == MAIL_AX_ALIST) + { + // We are expected to get a new CmdBlock + DEBUG_LOG(DSPHLE, "GetNextCmdBlock (%ibytes)", (u16)_uMail); + } + else if (_uMail == 0xCDD10000) // Action 0 - AX_ResumeTask(); + { + m_rMailHandler.PushMail(DSP_RESUME); + } + else if (_uMail == 0xCDD10001) // Action 1 - new ucode upload ( GC: BayBlade S.T.B,...) + { + NOTICE_LOG(DSPHLE,"DSP IROM - New Ucode!"); + newucodemails = 0; + } + else if (_uMail == 0xCDD10002) // Action 2 - IROM_Reset(); ( GC: NFS Carbon, FF Crystal Chronicles,...) + { + NOTICE_LOG(DSPHLE,"DSP IROM - Reset!"); + CDSPHandler::GetInstance().SetUCode(UCODE_ROM); + } + else if (_uMail == 0xCDD10003) // Action 3 - AX_GetNextCmdBlock(); + { + } + else + { + DEBUG_LOG(DSPHLE, " >>>> u32 MAIL : AXTask Mail (%08x)", _uMail); + AXTask(_uMail); + } } } diff --git a/Source/Plugins/Plugin_DSP_HLE/Src/UCodes/UCode_AXWii.cpp b/Source/Plugins/Plugin_DSP_HLE/Src/UCodes/UCode_AXWii.cpp index 3b835193b7..d11a56bbab 100644 --- a/Source/Plugins/Plugin_DSP_HLE/Src/UCodes/UCode_AXWii.cpp +++ b/Source/Plugins/Plugin_DSP_HLE/Src/UCodes/UCode_AXWii.cpp @@ -19,6 +19,7 @@ #include "../MailHandler.h" #include "Mixer.h" +#include "../DSPHandler.h" #include "UCodes.h" #include "UCode_AXStructs.h" @@ -50,24 +51,43 @@ CUCode_AXWii::~CUCode_AXWii() void CUCode_AXWii::HandleMail(u32 _uMail) { - if ((_uMail & 0xFFFF0000) == MAIL_AX_ALIST) - { - // a new List + static s8 newucodemails = -1; + + if (newucodemails > -1) { + newucodemails++; + if (newucodemails == 10) { + newucodemails = -1; + m_rMailHandler.PushMail(DSP_RESUME); + } } - else if (_uMail == 0xCDD10000) // Action 0 - restart - { - m_rMailHandler.PushMail(DSP_RESUME); - } - else if (_uMail == 0xCDD10001) // Action 1 - new ucode upload - { - NOTICE_LOG(DSPHLE,"Game wanted to upload new ucode!"); - } - else if ((_uMail & 0xFFFF0000) == 0xCDD10000) // Action 2/3 - { - } - else - { - AXTask(_uMail); + else { + if ((_uMail & 0xFFFF0000) == MAIL_AX_ALIST) + { + // We are expected to get a new CmdBlock + DEBUG_LOG(DSPHLE, "GetNextCmdBlock (%ibytes)", (u16)_uMail); + } + else if (_uMail == 0xCDD10000) // Action 0 - AX_ResumeTask(); + { + m_rMailHandler.PushMail(DSP_RESUME); + } + else if (_uMail == 0xCDD10001) // Action 1 - new ucode upload + { + NOTICE_LOG(DSPHLE,"DSP IROM - New Ucode!"); + newucodemails = 0; + } + else if (_uMail == 0xCDD10002) // Action 2 - IROM_Reset(); ( WII: De Blob, Cursed Mountain,...) + { + NOTICE_LOG(DSPHLE,"DSP IROM - Reset!"); + CDSPHandler::GetInstance().SetUCode(UCODE_ROM); + } + else if (_uMail == 0xCDD10003) // Action 3 - AX_GetNextCmdBlock(); + { + } + else + { + DEBUG_LOG(DSPHLE, " >>>> u32 MAIL : AXTask Mail (%08x)", _uMail); + AXTask(_uMail); + } } }