mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-02-15 16:59:18 +01:00
Low level emulate the GC IPL (BIOS screen). The GC BIOS now correctly launches the game. JIT the IPL instead of interpreting it. Made LLE BIOS the default (which silently fails to HLE). Relabelled the "HLE the IPL" option to "Skip GC BIOS".
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6113 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
d5647ce997
commit
20704fca3d
@ -135,9 +135,9 @@ bool CBoot::LoadMapFromFilename(const std::string &_rFilename, const char *_game
|
|||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
// This function does *some* of what BS1 does: loading IPL(BS2) and jumping to it
|
// If ipl.bin is not found, this function does *some* of what BS1 does:
|
||||||
// It does not initialize the hardware or anything else like BS1 does
|
// loading IPL(BS2) and jumping to it.
|
||||||
// We should eventually just load BS1 and let it take care of everything :)
|
// It does not initialize the hardware or anything else like BS1 does.
|
||||||
bool CBoot::Load_BS2(const std::string& _rBootROMFilename)
|
bool CBoot::Load_BS2(const std::string& _rBootROMFilename)
|
||||||
{
|
{
|
||||||
// Load the whole ROM dump
|
// Load the whole ROM dump
|
||||||
@ -148,10 +148,9 @@ bool CBoot::Load_BS2(const std::string& _rBootROMFilename)
|
|||||||
// Run the descrambler over the encrypted section containing BS1/BS2
|
// Run the descrambler over the encrypted section containing BS1/BS2
|
||||||
CEXIIPL::Descrambler((u8*)data.data()+0x100, 0x1AFE00);
|
CEXIIPL::Descrambler((u8*)data.data()+0x100, 0x1AFE00);
|
||||||
|
|
||||||
//File::WriteStringToFile(false, data, "decrypted_bs1_bs2.bin");
|
Memory::WriteBigEData((const u8*)data.data() + 0x100, 0x81200000, 0x700);
|
||||||
//Memory::WriteBigEData((const u8*)data.data() + 0x100, 0x81200000, 0x700);
|
|
||||||
Memory::WriteBigEData((const u8*)data.data() + 0x820, 0x81300000, 0x1AFE00);
|
Memory::WriteBigEData((const u8*)data.data() + 0x820, 0x81300000, 0x1AFE00);
|
||||||
PC = 0x81300000;
|
PC = 0x81200000;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -262,7 +262,7 @@ void SConfig::LoadSettings()
|
|||||||
ini.Get("GameList", "ListUnknown", &m_ListUnknown, true);
|
ini.Get("GameList", "ListUnknown", &m_ListUnknown, true);
|
||||||
|
|
||||||
// Core
|
// Core
|
||||||
ini.Get("Core", "HLE_BS2", &m_LocalCoreStartupParameter.bHLE_BS2, true);
|
ini.Get("Core", "HLE_BS2", &m_LocalCoreStartupParameter.bHLE_BS2, false);
|
||||||
ini.Get("Core", "EnableOpenCL", &m_LocalCoreStartupParameter.bEnableOpenCL, false);
|
ini.Get("Core", "EnableOpenCL", &m_LocalCoreStartupParameter.bEnableOpenCL, false);
|
||||||
ini.Get("Core", "CPUCore", &m_LocalCoreStartupParameter.iCPUCore, 1);
|
ini.Get("Core", "CPUCore", &m_LocalCoreStartupParameter.iCPUCore, 1);
|
||||||
ini.Get("Core", "DSPThread", &m_LocalCoreStartupParameter.bDSPThread, false);
|
ini.Get("Core", "DSPThread", &m_LocalCoreStartupParameter.bDSPThread, false);
|
||||||
|
@ -148,7 +148,7 @@ void Init(int cpu_core)
|
|||||||
jit = new JitIL;
|
jit = new JitIL;
|
||||||
jit->Init();
|
jit->Init();
|
||||||
// ... but start as interpreter by default.
|
// ... but start as interpreter by default.
|
||||||
mode = MODE_INTERPRETER;
|
mode = MODE_JIT;
|
||||||
state = CPU_STEPPING;
|
state = CPU_STEPPING;
|
||||||
|
|
||||||
ppcState.iCache.Reset();
|
ppcState.iCache.Reset();
|
||||||
|
@ -412,7 +412,7 @@ void CConfigMain::CreateGUIControls()
|
|||||||
|
|
||||||
// Core Settings - Advanced
|
// Core Settings - Advanced
|
||||||
sbAdvanced = new wxStaticBoxSizer(wxVERTICAL, GeneralPage, wxT("Advanced Settings"));
|
sbAdvanced = new wxStaticBoxSizer(wxVERTICAL, GeneralPage, wxT("Advanced Settings"));
|
||||||
AlwaysHLE_BS2 = new wxCheckBox(GeneralPage, ID_ALWAYS_HLE_BS2, wxT("HLE the IPL (recommended)"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
AlwaysHLE_BS2 = new wxCheckBox(GeneralPage, ID_ALWAYS_HLE_BS2, wxT("Skip GC BIOS"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||||
#if defined(HAVE_OPENCL) && HAVE_OPENCL
|
#if defined(HAVE_OPENCL) && HAVE_OPENCL
|
||||||
EnableOpenCL = new wxCheckBox(GeneralPage, ID_ENABLE_OPENCL, wxT("Enable OpenCL"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
EnableOpenCL = new wxCheckBox(GeneralPage, ID_ENABLE_OPENCL, wxT("Enable OpenCL"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user