winport: add "Fast Fetch-Execute" to the menu, since r2844 brought some emulation glitches.
This commit is contained in:
parent
b7a55e65e8
commit
6769ec30ac
|
@ -495,6 +495,7 @@ armcpu_flagIrq( armcpu_t *armcpu) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool fastFetchExecute = true;
|
||||||
template<int PROCNUM>
|
template<int PROCNUM>
|
||||||
u32 armcpu_exec()
|
u32 armcpu_exec()
|
||||||
{
|
{
|
||||||
|
@ -521,7 +522,7 @@ u32 armcpu_exec()
|
||||||
cFetch = armcpu_prefetch(&ARMPROC);
|
cFetch = armcpu_prefetch(&ARMPROC);
|
||||||
|
|
||||||
if (ARMPROC.stalled) {
|
if (ARMPROC.stalled) {
|
||||||
return std::max(cFetch, cExecute);
|
return fastFetchExecute ? std::max(cFetch, cExecute) : (cFetch + cExecute);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -553,7 +554,7 @@ u32 armcpu_exec()
|
||||||
#else
|
#else
|
||||||
cFetch = armcpu_prefetch<PROCNUM>();
|
cFetch = armcpu_prefetch<PROCNUM>();
|
||||||
#endif
|
#endif
|
||||||
return std::max(cFetch, cExecute);
|
return fastFetchExecute ? std::max(cFetch, cExecute) : (cFetch + cExecute);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(PROCNUM==0)
|
if(PROCNUM==0)
|
||||||
|
@ -569,7 +570,7 @@ u32 armcpu_exec()
|
||||||
#else
|
#else
|
||||||
cFetch = armcpu_prefetch<PROCNUM>();
|
cFetch = armcpu_prefetch<PROCNUM>();
|
||||||
#endif
|
#endif
|
||||||
return std::max(cFetch, cExecute);
|
return fastFetchExecute ? std::max(cFetch, cExecute) : (cFetch + cExecute);
|
||||||
}
|
}
|
||||||
|
|
||||||
//these templates needed to be instantiated manually
|
//these templates needed to be instantiated manually
|
||||||
|
|
|
@ -219,6 +219,8 @@ static bool lostFocusPause = true;
|
||||||
static bool lastPauseFromLostFocus = false;
|
static bool lastPauseFromLostFocus = false;
|
||||||
static bool FrameLimit = true;
|
static bool FrameLimit = true;
|
||||||
|
|
||||||
|
extern bool fastFetchExecute; // from armcpu.cpp
|
||||||
|
|
||||||
std::vector<HWND> LuaScriptHWnds;
|
std::vector<HWND> LuaScriptHWnds;
|
||||||
LRESULT CALLBACK LuaScriptProc(HWND, UINT, WPARAM, LPARAM);
|
LRESULT CALLBACK LuaScriptProc(HWND, UINT, WPARAM, LPARAM);
|
||||||
|
|
||||||
|
@ -3050,6 +3052,8 @@ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM
|
||||||
//Gray the recent ROM menu item if there are no recent ROMs
|
//Gray the recent ROM menu item if there are no recent ROMs
|
||||||
DesEnableMenuItem(mainMenu, ID_FILE_RECENTROM, RecentRoms.size()>0);
|
DesEnableMenuItem(mainMenu, ID_FILE_RECENTROM, RecentRoms.size()>0);
|
||||||
|
|
||||||
|
DesEnableMenuItem(mainMenu, IDC_FASTFETCHEXECUTE, movieMode == MOVIEMODE_INACTIVE);
|
||||||
|
|
||||||
//Updated Checked menu items
|
//Updated Checked menu items
|
||||||
|
|
||||||
//Pause
|
//Pause
|
||||||
|
@ -3121,8 +3125,8 @@ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM
|
||||||
|
|
||||||
MainWindow->checkMenu(IDC_STATEREWINDING, staterewindingenabled == 1 );
|
MainWindow->checkMenu(IDC_STATEREWINDING, staterewindingenabled == 1 );
|
||||||
|
|
||||||
//Language selection
|
|
||||||
MainWindow->checkMenu(IDC_BACKGROUNDPAUSE, lostFocusPause);
|
MainWindow->checkMenu(IDC_BACKGROUNDPAUSE, lostFocusPause);
|
||||||
|
MainWindow->checkMenu(IDC_FASTFETCHEXECUTE, fastFetchExecute);
|
||||||
|
|
||||||
//Save type
|
//Save type
|
||||||
const int savelist[] = {IDC_SAVETYPE1,IDC_SAVETYPE2,IDC_SAVETYPE3,IDC_SAVETYPE4,IDC_SAVETYPE5,IDC_SAVETYPE6,IDC_SAVETYPE7};
|
const int savelist[] = {IDC_SAVETYPE1,IDC_SAVETYPE2,IDC_SAVETYPE3,IDC_SAVETYPE4,IDC_SAVETYPE5,IDC_SAVETYPE6,IDC_SAVETYPE7};
|
||||||
|
@ -4096,6 +4100,10 @@ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM
|
||||||
WritePrivateProfileInt("Focus", "BackgroundPause", (int)lostFocusPause, IniName);
|
WritePrivateProfileInt("Focus", "BackgroundPause", (int)lostFocusPause, IniName);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
case IDC_FASTFETCHEXECUTE:
|
||||||
|
fastFetchExecute = !fastFetchExecute;
|
||||||
|
return 0;
|
||||||
|
|
||||||
case IDC_SAVETYPE1: backup_setManualBackupType(0); return 0;
|
case IDC_SAVETYPE1: backup_setManualBackupType(0); return 0;
|
||||||
case IDC_SAVETYPE2: backup_setManualBackupType(1); return 0;
|
case IDC_SAVETYPE2: backup_setManualBackupType(1); return 0;
|
||||||
case IDC_SAVETYPE3: backup_setManualBackupType(2); return 0;
|
case IDC_SAVETYPE3: backup_setManualBackupType(2); return 0;
|
||||||
|
|
|
@ -812,6 +812,7 @@
|
||||||
#define IDC_HKCOMBO 60077
|
#define IDC_HKCOMBO 60077
|
||||||
#define IDD_KEYCUSTOM 60078
|
#define IDD_KEYCUSTOM 60078
|
||||||
#define IDM_HOTKEY_CONFIG 60079
|
#define IDM_HOTKEY_CONFIG 60079
|
||||||
|
#define IDC_FASTFETCHEXECUTE 60080
|
||||||
|
|
||||||
// Next default values for new objects
|
// Next default values for new objects
|
||||||
//
|
//
|
||||||
|
|
Binary file not shown.
Loading…
Reference in New Issue