Fixed lockup when rom is no longer on disk and power cycle is pressed while debugger tools are opened
This commit is contained in:
parent
27d512e02f
commit
5f7b2319ce
1 changed files with 16 additions and 11 deletions
|
@ -257,13 +257,13 @@ bool Console::Initialize(VirtualFile &romFile)
|
|||
|
||||
bool Console::Initialize(VirtualFile &romFile, VirtualFile &patchFile)
|
||||
{
|
||||
Pause();
|
||||
if(!_romFilepath.empty() && _mapper) {
|
||||
//Ensure we save any battery file before loading a new game
|
||||
SaveBatteries();
|
||||
}
|
||||
|
||||
if(romFile.IsValid()) {
|
||||
Pause();
|
||||
if(!_romFilepath.empty() && _mapper) {
|
||||
//Ensure we save any battery file before loading a new game
|
||||
SaveBatteries();
|
||||
}
|
||||
|
||||
_videoDecoder->StopThread();
|
||||
|
||||
shared_ptr<HdPackData> originalHdPackData = _hdData;
|
||||
|
@ -431,17 +431,22 @@ bool Console::Initialize(VirtualFile &romFile, VirtualFile &patchFile)
|
|||
return true;
|
||||
} else {
|
||||
_hdData = originalHdPackData;
|
||||
|
||||
//Reset battery source to current game if new game failed to load
|
||||
_batteryManager->Initialize(FolderUtilities::GetFilename(GetRomInfo().RomName, false));
|
||||
if(_mapper) {
|
||||
_videoDecoder->StartThread();
|
||||
}
|
||||
Resume();
|
||||
}
|
||||
}
|
||||
|
||||
//Reset battery source to current game if new game failed to load
|
||||
_batteryManager->Initialize(FolderUtilities::GetFilename(GetRomInfo().RomName, false));
|
||||
if(_mapper) {
|
||||
_videoDecoder->StartThread();
|
||||
shared_ptr<Debugger> debugger = _debugger;
|
||||
if(debugger) {
|
||||
debugger->Resume();
|
||||
}
|
||||
|
||||
MessageManager::DisplayMessage("Error", "CouldNotLoadFile", romFile.GetFileName());
|
||||
Resume();
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue