mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-02-01 03:32:58 +00:00
Boot: Load DOL/ELF after memory setup
I recently talked to a homebrew developer who was trying to add exception handlers at link time but found out that Dolphin was overwriting their exception handlers. I figure that's not the usual way to do exception handlers, but... making us load the executable after setting up memory rather than before is easy, and matches what we do when booting discs, so I suppose there's no reason not to do it. It also matches the intent of why Dolphin is writing default exception handlers – we're writing them because some homebrew relies on exception handlers being left around from whatever program was running before it (see 3dd777be70).
This commit is contained in:
parent
0210d115c2
commit
fb916a4c33
@ -540,12 +540,6 @@ bool CBoot::BootUp(std::unique_ptr<BootParameters> boot)
|
||||
if (!executable.reader->IsValid())
|
||||
return false;
|
||||
|
||||
if (!executable.reader->LoadIntoMemory())
|
||||
{
|
||||
PanicAlertFmtT("Failed to load the executable to memory.");
|
||||
return false;
|
||||
}
|
||||
|
||||
SetDefaultDisc();
|
||||
|
||||
SetupMSR();
|
||||
@ -569,6 +563,12 @@ bool CBoot::BootUp(std::unique_ptr<BootParameters> boot)
|
||||
SetupGCMemory();
|
||||
}
|
||||
|
||||
if (!executable.reader->LoadIntoMemory())
|
||||
{
|
||||
PanicAlertFmtT("Failed to load the executable to memory.");
|
||||
return false;
|
||||
}
|
||||
|
||||
SConfig::OnNewTitleLoad();
|
||||
|
||||
PC = executable.reader->GetEntryPoint();
|
||||
|
Loading…
x
Reference in New Issue
Block a user