ES HLE / WAD boot: hardcode the entrypoint
NAND titles are always started at address 0x3400 with translation off. The entrypoint in the DOL is ignored.
This commit is contained in:
parent
2ceea61bbf
commit
3f11879640
|
@ -109,7 +109,11 @@ bool CBoot::Boot_WiiWAD(const std::string& _pFilename)
|
|||
return false;
|
||||
|
||||
pDolLoader->Load();
|
||||
PC = pDolLoader->GetEntryPoint();
|
||||
// NAND titles start with address translation off at 0x3400 (via the PPC bootstub)
|
||||
// The state of other CPU registers (like the BAT registers) doesn't matter much
|
||||
// because the realmode code at 0x3400 initializes everything itself anyway.
|
||||
MSR = 0;
|
||||
PC = 0x3400;
|
||||
|
||||
// Pass the "#002 check"
|
||||
// Apploader should write the IOS version and revision to 0x3140, and compare it
|
||||
|
|
|
@ -968,12 +968,12 @@ IPCCommandResult CWII_IPC_HLE_Device_es::IOCtlV(u32 _CommandAddress)
|
|||
if (pDolLoader->IsValid())
|
||||
{
|
||||
pDolLoader->Load(); // TODO: Check why sysmenu does not load the DOL correctly
|
||||
// WADs start with address translation off at the given entry point.
|
||||
// NAND titles start with address translation off at 0x3400 (via the PPC bootstub)
|
||||
//
|
||||
// The state of other CPU registers (like the BAT registers) doesn't matter much
|
||||
// because the WAD initializes everything itself anyway.
|
||||
// because the realmode code at 0x3400 initializes everything itself anyway.
|
||||
MSR = 0;
|
||||
PC = pDolLoader->GetEntryPoint();
|
||||
PC = 0x3400;
|
||||
bSuccess = true;
|
||||
}
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue