mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-09-04 03:35:19 +02:00
MRFIXIT2001: This patch adds a second frameskip setting, one for setting the # of frames to skip, one for setting the % of frames to skip based off fps
This commit is contained in:
@@ -337,6 +337,7 @@ namespace MainWindow {
|
||||
TranslateSubMenu(menu, "Frame Skipping", MENU_OPTIONS, SUBMENU_FRAME_SKIPPING, L"\tF7");
|
||||
TranslateMenuItem(menu, ID_OPTIONS_FRAMESKIP_AUTO);
|
||||
TranslateMenuItem(menu, ID_OPTIONS_FRAMESKIP_0);
|
||||
TranslateMenuItem(menu, ID_OPTIONS_FRAMESKIPTYPE_0);
|
||||
// Skip frameskipping 1-8..
|
||||
TranslateSubMenu(menu, "Texture Filtering", MENU_OPTIONS, SUBMENU_TEXTURE_FILTERING);
|
||||
TranslateMenuItem(menu, ID_OPTIONS_TEXTUREFILTERING_AUTO);
|
||||
@@ -542,6 +543,26 @@ namespace MainWindow {
|
||||
osm.Show(messageStream.str());
|
||||
}
|
||||
|
||||
static void setFrameSkippingType(int fskipType = -1) {
|
||||
if (fskipType >= 0 && fskipType <= 1) {
|
||||
g_Config.iFrameSkipType = fskipType;
|
||||
} else {
|
||||
g_Config.iFrameSkipType = 0;
|
||||
}
|
||||
|
||||
I18NCategory *gr = GetI18NCategory("Graphics");
|
||||
|
||||
std::ostringstream messageStream;
|
||||
messageStream << gr->T("Frame Skipping Type") << ":" << " ";
|
||||
|
||||
if (g_Config.iFrameSkipType == 0)
|
||||
messageStream << gr->T("Number of Frames");
|
||||
else
|
||||
messageStream << gr->T("Percent of FPS");
|
||||
|
||||
osm.Show(messageStream.str());
|
||||
}
|
||||
|
||||
static void enableCheats(bool cheats) {
|
||||
g_Config.bEnableCheats = cheats;
|
||||
}
|
||||
@@ -825,8 +846,12 @@ namespace MainWindow {
|
||||
case ID_OPTIONS_FRAMESKIP_7: setFrameSkipping(FRAMESKIP_7); break;
|
||||
case ID_OPTIONS_FRAMESKIP_8: setFrameSkipping(FRAMESKIP_MAX); break;
|
||||
|
||||
case ID_OPTIONS_FRAMESKIPTYPE_0: setFrameSkippingType(FRAMESKIPTYPE_0); break;
|
||||
case ID_OPTIONS_FRAMESKIPTYPE_1: setFrameSkippingType(FRAMESKIPTYPE_1); break;
|
||||
|
||||
case ID_OPTIONS_FRAMESKIPDUMMY:
|
||||
setFrameSkipping();
|
||||
setFrameSkippingType();
|
||||
break;
|
||||
|
||||
case ID_FILE_EXIT:
|
||||
@@ -1076,6 +1101,7 @@ namespace MainWindow {
|
||||
CHECKITEM(ID_OPTIONS_SHOWFPS, g_Config.iShowFPSCounter);
|
||||
CHECKITEM(ID_OPTIONS_FRAMESKIP_AUTO, g_Config.bAutoFrameSkip);
|
||||
CHECKITEM(ID_OPTIONS_FRAMESKIP, g_Config.iFrameSkip != FRAMESKIP_OFF);
|
||||
CHECKITEM(ID_OPTIONS_FRAMESKIPTYPE, g_Config.iFrameSkipType);
|
||||
CHECKITEM(ID_OPTIONS_VSYNC, g_Config.bVSync);
|
||||
CHECKITEM(ID_OPTIONS_TOPMOST, g_Config.bTopMost);
|
||||
CHECKITEM(ID_OPTIONS_PAUSE_FOCUS, g_Config.bPauseOnLostFocus);
|
||||
@@ -1248,6 +1274,12 @@ namespace MainWindow {
|
||||
ID_OPTIONS_FRAMESKIP_7,
|
||||
ID_OPTIONS_FRAMESKIP_8,
|
||||
};
|
||||
|
||||
static const int frameskippingType[] = {
|
||||
ID_OPTIONS_FRAMESKIPTYPE_0,
|
||||
ID_OPTIONS_FRAMESKIPTYPE_1,
|
||||
};
|
||||
|
||||
if (g_Config.iFrameSkip < FRAMESKIP_OFF)
|
||||
g_Config.iFrameSkip = FRAMESKIP_OFF;
|
||||
|
||||
@@ -1258,6 +1290,10 @@ namespace MainWindow {
|
||||
CheckMenuItem(menu, frameskipping[i], MF_BYCOMMAND | ((i == g_Config.iFrameSkip) ? MF_CHECKED : MF_UNCHECKED));
|
||||
}
|
||||
|
||||
for (int i = 0; i < ARRAY_SIZE(frameskippingType); i++) {
|
||||
CheckMenuItem(menu, frameskippingType[i], MF_BYCOMMAND | ((i == g_Config.iFrameSkipType) ? MF_CHECKED : MF_UNCHECKED));
|
||||
}
|
||||
|
||||
static const int savestateSlot[] = {
|
||||
ID_FILE_SAVESTATE_SLOT_1,
|
||||
ID_FILE_SAVESTATE_SLOT_2,
|
||||
|
||||
Reference in New Issue
Block a user