From 1e2d9223429e8bc52dab71fb2033f60dd72dea40 Mon Sep 17 00:00:00 2001 From: skidau Date: Thu, 3 Mar 2011 11:37:12 +0000 Subject: [PATCH] Fixed channel loading from the Wii System Menu. The DOL is not being loaded properly by the system probably due to caching. Wiimotes will need to be manually reconnected after the channel loads. Also fixed a small bug in the PowerPC ResetRegisters function (clearing CRFast). git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7281 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp | 1 + Source/Core/Core/Src/PowerPC/PowerPC.cpp | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp index 6d8c1091df..f08fbc7183 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp @@ -699,6 +699,7 @@ bool CWII_IPC_HLE_Device_es::IOCtlV(u32 _CommandAddress) { LoadWAD(Common::CreateTitleContentPath(TitleID)); CDolLoader DolLoader(pContent->m_pData, pContent->m_Size); + DolLoader.Load(); // TODO: Check why sysmenu does not load the DOL correctly PC = DolLoader.GetEntryPoint() | 0x80000000; IOSv = ContentLoader.GetIosVersion(); bSuccess = true; diff --git a/Source/Core/Core/Src/PowerPC/PowerPC.cpp b/Source/Core/Core/Src/PowerPC/PowerPC.cpp index 1cea48f6e1..3283c3f8e6 100644 --- a/Source/Core/Core/Src/PowerPC/PowerPC.cpp +++ b/Source/Core/Core/Src/PowerPC/PowerPC.cpp @@ -115,6 +115,11 @@ void ResetRegisters() ppcState.npc = 0; ppcState.Exceptions = 0; + for (int i = 0; i < 8; i++) + { + ppcState.cr_fast[i] = 0; + } + TL = 0; TU = 0; SystemTimers::TimeBaseSet();