From f5fa53a3971d6c658bfef873aa6b5d4f95425171 Mon Sep 17 00:00:00 2001 From: John Peterson Date: Mon, 8 Dec 2008 01:55:43 +0000 Subject: [PATCH] Fix to last commit git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1433 8ced0084-cf51-0410-be5f-012b33b47a6e --- .../Src/IPC_HLE/WII_IPC_HLE_Device_DI.cpp | 21 +++++----- Source/Core/DolphinWX/Src/Main.cpp | 41 ++++++++++--------- 2 files changed, 32 insertions(+), 30 deletions(-) diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_DI.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_DI.cpp index dfd199c607..21b559de91 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_DI.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_DI.cpp @@ -94,20 +94,21 @@ u32 CWII_IPC_HLE_Device_di::ExecuteCommand(u32 _BufferIn, u32 _BufferInSize, u32 // DVDLowInquiry case 0x12: { - Memory::Memset(_BufferOut, 0, _BufferOutSize); - u8* buffer = Memory::GetPointer(_BufferOut); - // rev - buffer[0] = 0x01; + /* In theory this gives a game the option to use different read / write behaviors + depending on which hardware revision that is used, if there have been more than + one. But it's probably not used at all by any game, in any case it would be strange + if it refused a certain value here if it's possible that that would make it + incompatible with new DVD drives for example. From an actual Wii the code was + 0x0000, 0x0002, 0x20060526, I tried it in Balls of Fury that gives a DVD error + message after the DVDLowInquiry, but that did't change anything, it must be + something else. */ + buffer[0] = 0x01; // rev buffer[1] = 0x02; - - // dev code - buffer[2] = 0x03; + buffer[2] = 0x03; // dev code buffer[3] = 0x04; - - // firmware date - buffer[4] = 0x20; + buffer[4] = 0x20; // firmware date buffer[5] = 0x08; buffer[6] = 0x08; buffer[7] = 0x29; diff --git a/Source/Core/DolphinWX/Src/Main.cpp b/Source/Core/DolphinWX/Src/Main.cpp index 0e383ab3d9..87386c0d5d 100644 --- a/Source/Core/DolphinWX/Src/Main.cpp +++ b/Source/Core/DolphinWX/Src/Main.cpp @@ -196,34 +196,35 @@ bool DolphinApp::OnInit() } // --------- - // create debugger + // Create debugger if (UseDebugger) { g_pCodeWindow = new CCodeWindow(SConfig::GetInstance().m_LocalCoreStartupParameter, main_frame); g_pCodeWindow->Show(true); - - /* If we have selected Automatic Start, start the default ISO, or if no default - ISO exists, start the last loaded ISO */ - if (g_pCodeWindow->AutomaticStart()) - { - if(!SConfig::GetInstance().m_LocalCoreStartupParameter.m_strDefaultGCM.empty() - && File::Exists(SConfig::GetInstance().m_LocalCoreStartupParameter. - m_strDefaultGCM.c_str())) - { - BootManager::BootCore(SConfig::GetInstance().m_LocalCoreStartupParameter. - m_strDefaultGCM); - } - else if(!SConfig::GetInstance().m_LastFilename.empty() - && File::Exists(SConfig::GetInstance().m_LastFilename.c_str())) - { - BootManager::BootCore(SConfig::GetInstance().m_LastFilename); - } - - } } + // First check if we have a elf command line if (LoadElf && ElfFile != wxEmptyString) + { BootManager::BootCore(std::string(ElfFile.ToAscii())); + } + /* If we have selected Automatic Start, start the default ISO, or if no default + ISO exists, start the last loaded ISO */ + else if (UseDebugger && g_pCodeWindow->AutomaticStart()) + { + if(!SConfig::GetInstance().m_LocalCoreStartupParameter.m_strDefaultGCM.empty() + && File::Exists(SConfig::GetInstance().m_LocalCoreStartupParameter. + m_strDefaultGCM.c_str())) + { + BootManager::BootCore(SConfig::GetInstance().m_LocalCoreStartupParameter. + m_strDefaultGCM); + } + else if(!SConfig::GetInstance().m_LastFilename.empty() + && File::Exists(SConfig::GetInstance().m_LastFilename.c_str())) + { + BootManager::BootCore(SConfig::GetInstance().m_LastFilename); + } + } SetTopWindow(main_frame); return true;