Fix bug that made it impossible to even try to boot LLE bios (not tested). Also add ability for Patches/ INI files to override dual core and optimizequant.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@94 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
hrydgard 2008-07-29 21:16:33 +00:00
parent 27a141ecca
commit 7894e6c9e9
5 changed files with 16 additions and 6 deletions

View File

@ -168,7 +168,7 @@ void CBoot::EmulatedBIOS(bool _bDebug)
u32 iLength = Memory::ReadUnchecked_U32(0x81300008);
u32 iDVDOffset = Memory::ReadUnchecked_U32(0x8130000c);
LOG(MASTER_LOG, "DVDRead: offset: %08x memOffse: %08x length: %i", iDVDOffset, iRamAddress, iLength);
LOG(MASTER_LOG, "DVDRead: offset: %08x memOffset: %08x length: %i", iDVDOffset, iRamAddress, iLength);
DVDInterface::DVDRead(iDVDOffset, iRamAddress, iLength);
} while(PowerPC::ppcState.gpr[3] != 0x00);

View File

@ -103,7 +103,6 @@ bool Init(const SCoreStartupParameter _CoreParameter)
Host_SetWaitCursor(true);
g_CoreStartupParameter = _CoreParameter;
// Init the Hardware
// start the thread again
_dbg_assert_(HLE, g_pThread == NULL);

View File

@ -64,7 +64,7 @@ bool SCoreStartupParameter::AutoSetup(EBootBios _BootBios)
PanicAlert("Your GCM/ISO file seems to be invalid, or not a GC/Wii ISO.");
return false;
}
m_strUniqueID = pVolume->GetUniqueID();
bWii = DiscIO::IsVolumeWiiDisc(*pVolume);
switch (pVolume->GetCountry())

View File

@ -79,12 +79,14 @@ struct SCoreStartupParameter
std::string m_strMemoryCardB;
std::string m_strSRAM;
std::string m_strDefaultGCM;
std::string m_strUniqueID;
//
SCoreStartupParameter();
void LoadDefaults();
bool AutoSetup(EBootBios _BootBios);
const std::string &GetUniqueID() const { return m_strUniqueID; }
};
#endif

View File

@ -20,6 +20,7 @@
#include "Globals.h"
#include "Common.h"
#include "IniFile.h"
#include "BootManager.h"
#include "ISOFile.h"
#include "Volume.h"
@ -57,11 +58,10 @@ bool BootCore(const std::string& _rFilename)
StartUp.bUseDynarec = true;
}
#ifndef _WIN32
StartUp.bUseDynarec = false;//Never use Dynarec in Linux, crashes
StartUp.bUseDynarec = false;//Never use Dynarec in Linux, crashes
#endif
StartUp.m_BootType = SCoreStartupParameter::BOOT_ISO;
StartUp.m_strFilename = _rFilename;
StartUp.bHLEBios = true;
StartUp.bRunCompareClient = false;
StartUp.bRunCompareServer = false;
StartUp.bEnableDebugging = g_pCodeWindow ? true : false; // RUNNING_DEBUG
@ -70,8 +70,17 @@ bool BootCore(const std::string& _rFilename)
StartUp.hInstance = wxGetInstance();
#endif
//
StartUp.AutoSetup(SCoreStartupParameter::BOOT_DEFAULT);
// Load overrides
IniFile ini;
std::string unique_id = StartUp.GetUniqueID();
if (unique_id.size() == 6 && ini.Load(("Patches/" + unique_id + ".ini").c_str()))
{
ini.Get("Core", "UseDualCore", &StartUp.bUseDualCore, StartUp.bUseDualCore);
ini.Get("Core", "OptimizeQuantizers", &StartUp.bOptimizeQuantizers, StartUp.bOptimizeQuantizers);
}
StartUp.hMainWindow = main_frame->GetRenderHandle();
// init the core