mirror of https://github.com/PCSX2/pcsx2.git
Wee improvement to how the Win32 GUI handles Run->Execute. It'll now resume the existing cpu state instead of starting a new one. The old code had a tendency to get desync'd because it didn't complete the in-progress BranchTest execution (not good).
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@336 a6443dda-0b58-4228-96e9-037be469359c
This commit is contained in:
parent
a9e06593ba
commit
d24add597e
|
@ -724,6 +724,24 @@ void RunGui() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int m_ReturnToGame = 0; // set to 1 to exit the RunGui message pump
|
||||||
|
static int m_GameInProgress = 0; // if set to 1, Run->Execute will return instead of starting a new cpu->Execute session.
|
||||||
|
|
||||||
|
void RunGuiAndReturn() {
|
||||||
|
MSG msg;
|
||||||
|
|
||||||
|
m_ReturnToGame = 0;
|
||||||
|
while( !m_ReturnToGame ) {
|
||||||
|
if(PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE)) {
|
||||||
|
TranslateMessage(&msg);
|
||||||
|
DispatchMessage(&msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
Sleep(10);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static int shiftkey = 0;
|
static int shiftkey = 0;
|
||||||
void CALLBACK KeyEvent(keyEvent* ev)
|
void CALLBACK KeyEvent(keyEvent* ev)
|
||||||
{
|
{
|
||||||
|
@ -786,8 +804,10 @@ void CALLBACK KeyEvent(keyEvent* ev)
|
||||||
}
|
}
|
||||||
|
|
||||||
CreateMainWindow(SW_SHOWNORMAL);
|
CreateMainWindow(SW_SHOWNORMAL);
|
||||||
RunGui();
|
m_GameInProgress = 1;
|
||||||
nDisableSC = 0;
|
nDisableSC = 0;
|
||||||
|
RunGuiAndReturn();
|
||||||
|
m_GameInProgress = 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1155,9 +1175,18 @@ LRESULT WINAPI MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
case ID_RUN_EXECUTE:
|
case ID_RUN_EXECUTE:
|
||||||
if(needReset == 1) RunExe = 1;
|
if(needReset == 1)
|
||||||
|
{
|
||||||
|
RunExe = 1;
|
||||||
|
m_ReturnToGame = 0;
|
||||||
|
m_GameInProgress = 0;
|
||||||
|
}
|
||||||
|
else if( m_GameInProgress )
|
||||||
|
m_ReturnToGame = 1;
|
||||||
|
|
||||||
efile = 0;
|
efile = 0;
|
||||||
RunExecute(1);
|
RunExecute( !m_ReturnToGame );
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
case ID_FILE_RUNCD:
|
case ID_FILE_RUNCD:
|
||||||
|
|
Loading…
Reference in New Issue