Merge pull request #3758 from thedax/win32Cleanup

Win32 UI: Some cleanups and simplifications, fix some small bugs.
This commit is contained in:
Henrik Rydgård 2013-09-15 00:26:07 -07:00
commit 588d3e3c4f
7 changed files with 84 additions and 155 deletions

View File

@ -166,9 +166,11 @@ void EmuScreen::sendMessage(const char *message, const char *value) {
bootGame(value);
}
else if (!strcmp(message, "control mapping")) {
globalUIState = UISTATE_MENU;
screenManager()->push(new ControlMappingScreen());
}
else if (!strcmp(message, "settings")) {
globalUIState = UISTATE_MENU;
screenManager()->push(new GameSettingsScreen(gamePath_));
}
}

View File

@ -44,7 +44,6 @@
namespace MainWindow {
enum {
WM_USER_LOG_STATUS_CHANGED = WM_USER + 101,
WM_USER_ATRAC_STATUS_CHANGED = WM_USER + 102,
};
extern HWND hwndMain;
}

View File

@ -559,9 +559,11 @@ void MainScreen::sendMessage(const char *message, const char *value) {
screenManager()->RecreateAllViews();
}
if (!strcmp(message, "control mapping")) {
globalUIState = UISTATE_MENU;
screenManager()->push(new ControlMappingScreen());
}
if (!strcmp(message, "settings")) {
globalUIState = UISTATE_MENU;
screenManager()->push(new GameSettingsScreen(""));
}
}
@ -587,13 +589,23 @@ UI::EventReturn MainScreen::OnLoadFile(UI::EventParams &e) {
}
UI::EventReturn MainScreen::OnGameSelected(UI::EventParams &e) {
screenManager()->push(new GameScreen(e.s));
#ifdef _WIN32
std::string path = ReplaceAll(e.s, "//", "/");
#else
std::string path = e.s;
#endif
screenManager()->push(new GameScreen(path));
return UI::EVENT_DONE;
}
UI::EventReturn MainScreen::OnGameSelectedInstant(UI::EventParams &e) {
#ifdef _WIN32
std::string path = ReplaceAll(e.s, "//", "/");
#else
std::string path = e.s;
#endif
// Go directly into the game.
screenManager()->switchScreen(new EmuScreen(e.s));
screenManager()->switchScreen(new EmuScreen(path));
return UI::EVENT_DONE;
}

View File

@ -107,32 +107,14 @@ void WindowsHost::ShutdownGL()
void WindowsHost::SetWindowTitle(const char *message)
{
std::string title = std::string("PPSSPP ") + PPSSPP_GIT_VERSION;
if (message)
title = title + " - " + message;
int size = MultiByteToWideChar(CP_UTF8, 0, title.c_str(), (int) title.size(), NULL, 0);
if (size > 0)
{
// VC++6.0 any more?
wchar_t *utf16_title = new(std::nothrow) wchar_t[size + 1];
if (utf16_title)
size = MultiByteToWideChar(CP_UTF8, 0, title.c_str(), (int) title.size(), utf16_title, size);
else
size = 0;
if (size > 0)
{
utf16_title[size] = 0;
// Don't use SetWindowTextW because it will internally use DefWindowProcA.
DefWindowProcW(mainWindow_, WM_SETTEXT, 0, (LPARAM) utf16_title);
delete[] utf16_title;
}
std::wstring winTitle = ConvertUTF8ToWString(std::string("PPSSPP ") + PPSSPP_GIT_VERSION);
if(message != nullptr) {
winTitle.append(ConvertUTF8ToWString(" - "));
winTitle.append(ConvertUTF8ToWString(message));
}
// Something went wrong, fall back to using the local codepage.
if (size <= 0)
SetWindowTextA(mainWindow_, title.c_str());
MainWindow::SetWindowTitle(winTitle.c_str());
PostMessage(MainWindow::GetHWND(), MainWindow::WM_USER_WINDOW_TITLE_CHANGED, 0, 0);
}
void WindowsHost::InitSound(PMixer *mixer)

View File

@ -74,6 +74,7 @@
extern std::map<int, int> windowsTransTable;
BOOL g_bFullScreen = FALSE;
static RECT g_normalRC = {0};
static std::wstring windowTitle;
extern bool g_TakeScreenshot;
extern InputState input_state;
@ -269,6 +270,7 @@ namespace MainWindow
CorrectCursor();
ResizeDisplay();
ShowOwnedPopups(hwndMain, TRUE);
W32Util::MakeTopMost(hwndMain, g_Config.bTopMost);
}
void _ViewFullScreen(HWND hWnd) {
@ -433,16 +435,28 @@ namespace MainWindow
langMenuCreated = true;
}
void TranslateMenuItembyText(const int menuID, const char *menuText, const char *category="", const bool enabled = true, const bool checked = false, const std::wstring& accelerator = L"") {
void _TranslateMenuItem(const int menuID, const char *text, const char *category, const std::wstring& accelerator = L"") {
I18NCategory *c = GetI18NCategory(category);
std::string key = c->T(menuText);
std::string key = c->T(text);
std::wstring translated = ConvertUTF8ToWString(key);
translated.append(accelerator);
ModifyMenu(menu, menuID, MF_STRING
| (enabled? MF_ENABLED : MF_GRAYED)
| (checked? MF_CHECKED : MF_UNCHECKED),
menuID, translated.c_str());
ModifyMenu(menu, menuID, MF_STRING, menuID, translated.c_str());
}
// Replaces TranslateMenuItemByText. Use this for menu items that change text dynamically
// like "Run/Pause".
void TranslateMenuItem(const int menuID, const char *category, const char *menuText, const std::wstring& accelerator = L"") {
if(menuText == nullptr || !strcmp(menuText, ""))
_TranslateMenuItem(menuID, GetMenuItemInitialText(menuID).c_str(), category, accelerator);
else
_TranslateMenuItem(menuID, menuText, category, accelerator);
}
// Use this one for menu items that don't change.
void TranslateMenuItem(const int menuID, const char *category, const std::wstring& accelerator = L"") {
_TranslateMenuItem(menuID, GetMenuItemInitialText(menuID).c_str(), category, accelerator);
}
void TranslateMenuHeader(HMENU menu, const char *category, const char *key, const MenuID id, const std::wstring& accelerator = L"") {
@ -463,17 +477,6 @@ namespace MainWindow
ModifyMenu(subMenu, subMenuID, MF_BYPOSITION | MF_STRING, 0, translated.c_str());
}
void TranslateMenuItem(const int menuID, const char *category, const bool enabled = true, const bool checked = false, const std::wstring& accelerator = L"") {
I18NCategory *c = GetI18NCategory(category);
std::string key = c->T(GetMenuItemInitialText(menuID).c_str());
std::wstring translated = ConvertUTF8ToWString(key);
translated.append(accelerator);
ModifyMenu(menu, menuID, MF_STRING
| (enabled? MF_ENABLED : MF_GRAYED)
| (checked? MF_CHECKED : MF_UNCHECKED),
menuID, translated.c_str());
}
void TranslateMenus() {
const char *desktopUI = "DesktopUI";
@ -482,26 +485,20 @@ namespace MainWindow
TranslateMenuItem(ID_FILE_LOAD_DIR, desktopUI);
TranslateMenuItem(ID_FILE_LOAD_MEMSTICK, desktopUI);
TranslateMenuItem(ID_FILE_MEMSTICK, desktopUI);
TranslateMenuItem(ID_FILE_QUICKLOADSTATE, desktopUI, false, false, L"\tF4");
TranslateMenuItem(ID_FILE_QUICKSAVESTATE, desktopUI, false, false, L"\tF2");
TranslateMenuItem(ID_FILE_LOADSTATEFILE, desktopUI, false, false);
TranslateMenuItem(ID_FILE_SAVESTATEFILE, desktopUI, false, false);
TranslateMenuItem(ID_FILE_EXIT, desktopUI, true, false, L"\tAlt+F4");
TranslateMenuItem(ID_FILE_QUICKLOADSTATE, desktopUI, L"\tF4");
TranslateMenuItem(ID_FILE_QUICKSAVESTATE, desktopUI, L"\tF2");
TranslateMenuItem(ID_FILE_LOADSTATEFILE, desktopUI);
TranslateMenuItem(ID_FILE_SAVESTATEFILE, desktopUI);
TranslateMenuItem(ID_FILE_EXIT, desktopUI, L"\tAlt+F4");
// Emulation menu
bool isPaused = Core_IsStepping() && globalUIState == UISTATE_INGAME;
TranslateMenuItembyText(ID_TOGGLE_PAUSE, isPaused ? "Run" : "Pause", "DesktopUI", false, false, L"\tF8");
TranslateMenuItem(ID_EMULATION_STOP, desktopUI, false, false, L"\tCtrl+W");
TranslateMenuItem(ID_EMULATION_RESET, desktopUI, false, false, L"\tCtrl+B");
bool isPaused = Core_IsStepping() && (globalUIState == UISTATE_INGAME);
TranslateMenuItem(ID_TOGGLE_PAUSE, desktopUI, isPaused ? "Run" : "Pause", L"\tF8");
TranslateMenuItem(ID_EMULATION_STOP, desktopUI, L"\tCtrl+W");
TranslateMenuItem(ID_EMULATION_RESET, desktopUI, L"\tCtrl+B");
TranslateMenuItem(ID_DEBUG_RUNONLOAD, desktopUI);
TranslateMenuItem(ID_EMULATION_SOUND, desktopUI, true, true);
TranslateMenuItem(ID_EMULATION_ATRAC3_SOUND, desktopUI, true, false);
TranslateMenuItem(ID_EMULATION_CHEATS, desktopUI,true, true, L"\tCtrl+T");
TranslateMenuItem(ID_EMULATION_RENDER_MODE_OGL, desktopUI, true, true);
TranslateMenuItem(ID_EMULATION_RENDER_MODE_SOFT, desktopUI);
TranslateMenuItem(ID_CPU_DYNAREC, desktopUI);
TranslateMenuItem(ID_CPU_MULTITHREADED, desktopUI);
TranslateMenuItem(ID_IO_MULTITHREADED, desktopUI);
TranslateMenuItem(ID_EMULATION_SOUND, desktopUI);
TranslateMenuItem(ID_EMULATION_CHEATS, desktopUI, L"\tCtrl+T");
// Debug menu
TranslateMenuItem(ID_DEBUG_LOADMAPFILE, desktopUI);
@ -509,22 +506,22 @@ namespace MainWindow
TranslateMenuItem(ID_DEBUG_RESETSYMBOLTABLE, desktopUI);
TranslateMenuItem(ID_DEBUG_DUMPNEXTFRAME, desktopUI);
TranslateMenuItem(ID_DEBUG_SHOWDEBUGSTATISTICS, desktopUI);
TranslateMenuItem(ID_DEBUG_TAKESCREENSHOT, desktopUI, true, false, L"\tF12");
TranslateMenuItem(ID_DEBUG_DISASSEMBLY, desktopUI, true, false, L"\tCtrl+D");
TranslateMenuItem(ID_DEBUG_LOG, desktopUI, true, false, L"\tCtrl+L");
TranslateMenuItem(ID_DEBUG_MEMORYVIEW, desktopUI, true, false, L"\tCtrl+M");
TranslateMenuItem(ID_DEBUG_TAKESCREENSHOT, desktopUI, L"\tF12");
TranslateMenuItem(ID_DEBUG_DISASSEMBLY, desktopUI, L"\tCtrl+D");
TranslateMenuItem(ID_DEBUG_LOG, desktopUI, L"\tCtrl+L");
TranslateMenuItem(ID_DEBUG_MEMORYVIEW, desktopUI, L"\tCtrl+M");
// Options menu
TranslateMenuItem(ID_OPTIONS_FULLSCREEN, desktopUI, true, false, L"\tAlt+Return, F11");
TranslateMenuItem(ID_OPTIONS_FULLSCREEN, desktopUI, L"\tAlt+Return, F11");
TranslateMenuItem(ID_OPTIONS_TOPMOST, desktopUI);
TranslateMenuItem(ID_OPTIONS_STRETCHDISPLAY, desktopUI);
TranslateMenuItem(ID_OPTIONS_SCREENAUTO, desktopUI);
// Skip rendering resolution 2x-5x..
// Skip window size 1x-4x..
TranslateMenuItem(ID_OPTIONS_NONBUFFEREDRENDERING, desktopUI, true, false);
TranslateMenuItem(ID_OPTIONS_BUFFEREDRENDERING, desktopUI, true, true);
TranslateMenuItem(ID_OPTIONS_READFBOTOMEMORYCPU, desktopUI, true, false);
TranslateMenuItem(ID_OPTIONS_READFBOTOMEMORYGPU, desktopUI, true, false);
TranslateMenuItem(ID_OPTIONS_NONBUFFEREDRENDERING, desktopUI);
TranslateMenuItem(ID_OPTIONS_BUFFEREDRENDERING, desktopUI);
TranslateMenuItem(ID_OPTIONS_READFBOTOMEMORYCPU, desktopUI);
TranslateMenuItem(ID_OPTIONS_READFBOTOMEMORYGPU, desktopUI);
TranslateMenuItem(ID_OPTIONS_FRAMESKIP_0, desktopUI);
TranslateMenuItem(ID_OPTIONS_FRAMESKIP_AUTO, desktopUI);
// Skip frameskipping 1-8..
@ -541,13 +538,10 @@ namespace MainWindow
TranslateMenuItem(ID_TEXTURESCALING_BICUBIC, desktopUI);
TranslateMenuItem(ID_TEXTURESCALING_HYBRID_BICUBIC, desktopUI);
TranslateMenuItem(ID_TEXTURESCALING_DEPOSTERIZE, desktopUI);
TranslateMenuItem(ID_OPTIONS_HARDWARETRANSFORM, desktopUI, true, true, L"\tF6");
TranslateMenuItem(ID_OPTIONS_HARDWARETRANSFORM, desktopUI, L"\tF6");
TranslateMenuItem(ID_OPTIONS_VERTEXCACHE, desktopUI);
TranslateMenuItem(ID_OPTIONS_MIPMAP, desktopUI);
TranslateMenuItem(ID_OPTIONS_ANTIALIASING, desktopUI);
TranslateMenuItem(ID_OPTIONS_VSYNC, desktopUI);
TranslateMenuItem(ID_OPTIONS_SHOWFPS, desktopUI);
TranslateMenuItem(ID_OPTIONS_FASTMEMORY, desktopUI);
TranslateMenuItem(ID_DEBUG_IGNOREILLEGALREADS, desktopUI);
// Language menu
@ -650,6 +644,15 @@ namespace MainWindow
g_Config.bEnableCheats = cheats;
}
void UpdateWindowTitle() {
// Seems to be fine to call now since we use a UNICODE build...
SetWindowText(hwndMain, windowTitle.c_str());
}
void SetWindowTitle(const wchar_t *title) {
windowTitle = title;
}
BOOL Show(HINSTANCE hInstance, int nCmdShow) {
hInst = hInstance; // Store instance handle in our global variable.
@ -791,6 +794,7 @@ namespace MainWindow
_splitpath(fullpath.c_str(), drive, dir, fname, ext);
std::string executable = std::string(drive) + std::string(dir) + std::string(fname) + std::string(ext);
executable = ReplaceAll(executable, "\\", "/");
NativeMessageReceived("boot", executable.c_str());
}
else {
@ -1108,14 +1112,6 @@ namespace MainWindow
NativeMessageReceived("reset", "");
break;
case ID_EMULATION_RENDER_MODE_OGL:
g_Config.bSoftwareRendering = false;
break;
case ID_EMULATION_RENDER_MODE_SOFT:
g_Config.bSoftwareRendering = true;
break;
case ID_FILE_LOADSTATEFILE:
if (W32Util::BrowseForFileName(true, hWnd, L"Load state",0,L"Save States (*.ppst)\0*.ppst\0All files\0*.*\0\0",L"ppst",fn)) {
SetCursor(LoadCursor(0, IDC_WAIT));
@ -1177,10 +1173,6 @@ namespace MainWindow
break;
}
case ID_OPTIONS_MIPMAP:
g_Config.bMipMap = !g_Config.bMipMap;
break;
case ID_OPTIONS_VSYNC:
g_Config.bVSync = !g_Config.bVSync;
break;
@ -1250,18 +1242,6 @@ namespace MainWindow
DestroyWindow(hWnd);
break;
case ID_CPU_DYNAREC:
g_Config.bJit = !g_Config.bJit;
break;
case ID_CPU_MULTITHREADED:
g_Config.bSeparateCPUThread = !g_Config.bSeparateCPUThread;
break;
case ID_IO_MULTITHREADED:
g_Config.bSeparateIOThread = !g_Config.bSeparateIOThread;
break;
case ID_DEBUG_RUNONLOAD:
g_Config.bAutoRun = !g_Config.bAutoRun;
break;
@ -1335,10 +1315,6 @@ namespace MainWindow
g_Config.iShowFPSCounter = !g_Config.iShowFPSCounter;
break;
case ID_OPTIONS_FASTMEMORY:
g_Config.bFastMemory = !g_Config.bFastMemory;
break;
case ID_OPTIONS_TEXTUREFILTERING_AUTO: setTexFiltering(AUTO); break;
case ID_OPTIONS_NEARESTFILTERING: setTexFiltering(NEAREST); break;
case ID_OPTIONS_LINEARFILTERING: setTexFiltering(LINEAR); break;
@ -1351,35 +1327,17 @@ namespace MainWindow
case ID_OPTIONS_CONTROLS:
NativeMessageReceived("control mapping", "");
globalUIState = UISTATE_MENU;
break;
case ID_OPTIONS_MORE_SETTINGS:
NativeMessageReceived("settings", "");
globalUIState = UISTATE_MENU;
break;
case ID_EMULATION_SOUND:
g_Config.bEnableSound = !g_Config.bEnableSound;
if(!g_Config.bEnableSound) {
EnableMenuItem(menu, ID_EMULATION_ATRAC3_SOUND, MF_GRAYED);
if(!IsAudioInitialised())
Audio_Init();
} else {
if(Atrac3plus_Decoder::IsInstalled())
EnableMenuItem(menu, ID_EMULATION_ATRAC3_SOUND, MF_ENABLED);
}
break;
case ID_EMULATION_ATRAC3_SOUND:
g_Config.bEnableAtrac3plus = !g_Config.bEnableAtrac3plus;
if(Atrac3plus_Decoder::IsInstalled()) {
if(g_Config.bEnableAtrac3plus)
Atrac3plus_Decoder::Init();
else Atrac3plus_Decoder::Shutdown();
} else {
EnableMenuItem(menu, ID_EMULATION_ATRAC3_SOUND, MF_GRAYED);
}
break;
@ -1558,13 +1516,6 @@ namespace MainWindow
}
break;
case WM_USER_ATRAC_STATUS_CHANGED:
if(g_Config.bEnableAtrac3plus && Atrac3plus_Decoder::IsInstalled())
EnableMenuItem(menu, ID_EMULATION_ATRAC3_SOUND, MF_ENABLED);
else
EnableMenuItem(menu, ID_EMULATION_ATRAC3_SOUND, MF_GRAYED);
break;
case WM_USER_UPDATE_UI:
CreateLanguageMenu();
TranslateMenus();
@ -1575,6 +1526,10 @@ namespace MainWindow
ResizeDisplay(true);
break;
case WM_USER_WINDOW_TITLE_CHANGED:
UpdateWindowTitle();
break;
case WM_MENUSELECT:
// Unfortunately, accelerate keys (hotkeys) shares the same enabled/disabled states
// with corresponding menu items.
@ -1605,25 +1560,17 @@ namespace MainWindow
HMENU menu = GetMenu(GetHWND());
#define CHECKITEM(item,value) CheckMenuItem(menu,item,MF_BYCOMMAND | ((value) ? MF_CHECKED : MF_UNCHECKED));
CHECKITEM(ID_DEBUG_IGNOREILLEGALREADS, g_Config.bIgnoreBadMemAccess);
CHECKITEM(ID_CPU_DYNAREC, g_Config.bJit == true);
CHECKITEM(ID_CPU_MULTITHREADED, g_Config.bSeparateCPUThread);
CHECKITEM(ID_IO_MULTITHREADED, g_Config.bSeparateIOThread);
CHECKITEM(ID_DEBUG_SHOWDEBUGSTATISTICS, g_Config.bShowDebugStats);
CHECKITEM(ID_OPTIONS_HARDWARETRANSFORM, g_Config.bHardwareTransform);
CHECKITEM(ID_OPTIONS_FASTMEMORY, g_Config.bFastMemory);
CHECKITEM(ID_OPTIONS_STRETCHDISPLAY, g_Config.bStretchToDisplay);
CHECKITEM(ID_DEBUG_RUNONLOAD, g_Config.bAutoRun);
CHECKITEM(ID_OPTIONS_VERTEXCACHE, g_Config.bVertexCache);
CHECKITEM(ID_OPTIONS_SHOWFPS, g_Config.iShowFPSCounter);
CHECKITEM(ID_OPTIONS_FRAMESKIP, g_Config.iFrameSkip != 0);
CHECKITEM(ID_OPTIONS_MIPMAP, g_Config.bMipMap);
CHECKITEM(ID_OPTIONS_VSYNC, g_Config.bVSync);
CHECKITEM(ID_OPTIONS_TOPMOST, g_Config.bTopMost);
CHECKITEM(ID_EMULATION_SOUND, g_Config.bEnableSound);
CHECKITEM(ID_TEXTURESCALING_DEPOSTERIZE, g_Config.bTexDeposterize);
CHECKITEM(ID_EMULATION_ATRAC3_SOUND, g_Config.bEnableAtrac3plus);
CHECKITEM(ID_EMULATION_RENDER_MODE_OGL, g_Config.bSoftwareRendering == false);
CHECKITEM(ID_EMULATION_RENDER_MODE_SOFT, g_Config.bSoftwareRendering == true);
CHECKITEM(ID_EMULATION_CHEATS, g_Config.bEnableCheats);
static const int zoomitems[6] = {
@ -1780,7 +1727,7 @@ namespace MainWindow
HMENU menu = GetMenu(GetHWND());
bool isPaused = Core_IsStepping() && globalUIState == UISTATE_INGAME;
TranslateMenuItembyText(ID_TOGGLE_PAUSE, isPaused ? "Run" : "Pause", "DesktopUI", false, false, L"\tF8");
TranslateMenuItem(ID_TOGGLE_PAUSE, "DesktopUI", isPaused ? "Run" : "Pause", L"\tF8");
UINT ingameEnable = globalUIState == UISTATE_INGAME ? MF_ENABLED : MF_GRAYED;
EnableMenuItem(menu, ID_TOGGLE_PAUSE, ingameEnable);
@ -1792,13 +1739,7 @@ namespace MainWindow
EnableMenuItem(menu, ID_FILE_LOADSTATEFILE, !menuEnable);
EnableMenuItem(menu, ID_FILE_QUICKSAVESTATE, !menuEnable);
EnableMenuItem(menu, ID_FILE_QUICKLOADSTATE, !menuEnable);
EnableMenuItem(menu, ID_CPU_DYNAREC, menuEnable);
EnableMenuItem(menu, ID_CPU_MULTITHREADED, menuEnable);
EnableMenuItem(menu, ID_IO_MULTITHREADED, menuEnable);
EnableMenuItem(menu, ID_DEBUG_LOG, !g_Config.bEnableLogging);
EnableMenuItem(menu, ID_EMULATION_RENDER_MODE_OGL, menuEnable);
EnableMenuItem(menu, ID_EMULATION_RENDER_MODE_SOFT, menuEnable);
EnableMenuItem(menu, ID_EMULATION_ATRAC3_SOUND, !Atrac3plus_Decoder::IsInstalled());
}
// Message handler for about box.

View File

@ -10,9 +10,9 @@ namespace MainWindow
enum {
WM_USER_SAVESTATE_FINISH = WM_USER + 100,
WM_USER_LOG_STATUS_CHANGED = WM_USER + 101,
WM_USER_ATRAC_STATUS_CHANGED = WM_USER + 102,
WM_USER_UPDATE_UI = WM_USER + 103,
WM_USER_UPDATE_SCREEN = WM_USER + 104,
WM_USER_UPDATE_UI = WM_USER + 102,
WM_USER_UPDATE_SCREEN = WM_USER + 103,
WM_USER_WINDOW_TITLE_CHANGED = WM_USER + 104,
};
enum {
@ -42,6 +42,7 @@ namespace MainWindow
void Close();
void UpdateMenus();
void UpdateCommands();
void SetWindowTitle(const wchar_t *title);
void Update();
void Redraw();
HWND GetHWND();

View File

@ -31,7 +31,6 @@
#define ID_CONFIG_RESOLUTION 141
#define ID_OPTIONS_FULLSCREEN 154
#define ID_OPTIONS_SETTINGS 155
#define ID_CPU_DYNAREC 156
#define ID_OPTIONS_SHOWERRORS 158
#define ID_PLUGINS_LOADDEFAULTPLUGINS 159
#define IDD_MEMORY 160
@ -64,8 +63,6 @@
#define IDD_VFPU 231
#define IDD_BREAKPOINT 233
#define ID_FILE_LOAD_DIR 234
#define ID_CPU_MULTITHREADED 235
#define ID_IO_MULTITHREADED 236
#define IDR_DEBUGACCELS 237
#define ID_DEBUG_DISPLAYMEMVIEW 238
#define ID_DEBUG_DISPLAYBREAKPOINTLIST 239
@ -181,7 +178,6 @@
#define ID_OPTIONS_SCREEN4X 40028
#define ID_OPTIONS_SCREEN5X 40029
#define ID_OPTIONS_HARDWARETRANSFORM 40030
#define ID_OPTIONS_FASTMEMORY 40031
#define IDC_STEPHLE 40032
#define ID_OPTIONS_LINEARFILTERING 40033
#define ID_FILE_QUICKSAVESTATE 40034
@ -189,7 +185,6 @@
#define ID_OPTIONS_CONTROLS 40036
#define ID_DEBUG_RUNONLOAD 40037
#define ID_DEBUG_DUMPNEXTFRAME 40038
#define ID_OPTIONS_ANTIALIASING 40039
#define ID_OPTIONS_VERTEXCACHE 40040
#define ID_OPTIONS_SHOWFPS 40041
#define ID_OPTIONS_STRETCHDISPLAY 40042
@ -237,14 +232,11 @@
#define ID_OPTIONS_FRAMESKIP_7 40084
#define ID_OPTIONS_FRAMESKIP_8 40085
#define ID_OPTIONS_FRAMESKIP_AUTO 40087
#define ID_OPTIONS_FRAMESKIPDUMMY 40088
#define ID_OPTIONS_RESOLUTIONDUMMY 40089
#define ID_OPTIONS_FRAMESKIPDUMMY 40088
#define ID_OPTIONS_RESOLUTIONDUMMY 40089
#define ID_DISASM_ASSEMBLE 40090
#define ID_DISASM_ADDNEWBREAKPOINT 40091
#define ID_DISASM_EDITBREAKPOINT 40092
#define ID_EMULATION_ATRAC3_SOUND 40093
#define ID_EMULATION_RENDER_MODE_OGL 40094
#define ID_EMULATION_RENDER_MODE_SOFT 40095
#define ID_EMULATION_CHEATS 40096
#define ID_HELP_CHINESE_FORUM 40097
#define ID_OPTIONS_MORE_SETTINGS 40098