From d138a0186085530b9b0102807f781106fa345522 Mon Sep 17 00:00:00 2001 From: owomomo Date: Fri, 21 Jun 2019 19:59:57 +0800 Subject: [PATCH 01/19] 1. Add popup tip for "Auto load / save with game" checkbox, because its tri-state may be perplexed for some reason. 2. Fix a bug, when the cheat editing controls lost focus, but editing mode is still there, which makes case EN_UPDATE triggered when user is not typing in them, that's an inappropriate circumstance. It might make the cheat editing control shows nothing when selecting a cheat. 3. Re-arranged some controls in resource file. 4. Changed some directory dialog logic, use defined ID rather than hard-code the actural number. 5. Detail. --- src/drivers/win/cheat.cpp | 76 +++++++++++-- src/drivers/win/cheat.h | 3 + src/drivers/win/debugger.cpp | 16 +-- src/drivers/win/directories.cpp | 90 ++++++++------- src/drivers/win/main.cpp | 4 +- src/drivers/win/main.h | 2 + src/drivers/win/res.rc | 196 ++++++++++++++++---------------- src/drivers/win/resource.h | 31 ++++- src/fceu.cpp | 2 +- 9 files changed, 260 insertions(+), 160 deletions(-) diff --git a/src/drivers/win/cheat.cpp b/src/drivers/win/cheat.cpp index 530a12ea..b0b4de5d 100644 --- a/src/drivers/win/cheat.cpp +++ b/src/drivers/win/cheat.cpp @@ -30,7 +30,8 @@ #include // static HWND pwindow = 0; // owomomo: removed pwindow because ambiguous, perhaps it is some obseleted early future plan from half developed old FCEUX? -HWND hCheat = 0; //Handle to Cheats dialog +HWND hCheat = 0; //Handle to Cheats dialog +HWND hCheatTip = 0; //Handle to tooltip HMENU hCheatcontext = 0; //Handle to cheat context menu bool pauseWhileActive = false; //For checkbox "Pause while active" @@ -72,7 +73,7 @@ char* GameGenieLetters = "APZLGITYEOXUKSVN"; // bool dodecode; -HWND hGGConv; +HWND hGGConv = 0; void EncodeGG(char *str, int a, int v, int c); void ListGGAddresses(HWND hwndDlg); @@ -295,6 +296,7 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l { case WM_INITDIALOG: { + POINT pt; if (ChtPosX != 0 && ChtPosY != 0) { @@ -352,7 +354,8 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l SetWindowLong(GetDlgItem(hwndDlg, IDC_CHEAT_TEXT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); SetWindowLong(GetDlgItem(hwndDlg, IDC_CHEAT_GAME_GENIE_TEXT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - + // Create popup to "Auto load / save with game", since it has 3 states and the text need some explanation + SetCheatToolTip(hwndDlg, IDC_CHEAT_AUTOLOADSAVE); possiTotalCount = 0; possiItemCount = SendDlgItemMessage(hwndDlg, IDC_CHEAT_LIST_POSSIBILITIES, LVM_GETCOUNTPERPAGE, 0, 0); @@ -395,6 +398,7 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l break; case WM_QUIT: case WM_CLOSE: + DestroyWindow(hCheatTip); if (CheatStyle) DestroyWindow(hwndDlg); else @@ -463,7 +467,7 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l break; case WM_COMMAND: { - static int editMode = 0; + static int editMode = -1; switch (HIWORD(wParam)) { @@ -741,12 +745,13 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l } break; case IDC_CHEAT_AUTOLOADSAVE: + { switch (IsDlgButtonChecked(hwndDlg, IDC_CHEAT_AUTOLOADSAVE)) { case BST_CHECKED: disableAutoLSCheats = 0; break; case BST_INDETERMINATE: disableAutoLSCheats = 1; break; case BST_UNCHECKED: - if(MessageBox(hwndDlg, "If this option is unchecked, you must manually save the cheats by yourself, or all the changed you made to the cheat list would be discarded silently without any asking once you close the game!\nDo you really want to do it in this way?", "Cheat warning", MB_YESNO | MB_ICONWARNING) == IDYES) + if(MessageBox(hwndDlg, "If this option is unchecked, you must manually save the cheats by yourself, or all the changes you made to the cheat list would be discarded silently without any asking once you close the game!\nDo you really want to do it in this way?", "Cheat warning", MB_YESNO | MB_ICONWARNING | MB_DEFBUTTON2) == IDYES) disableAutoLSCheats = 2; else { @@ -754,6 +759,8 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l CheckDlgButton(hwndDlg, IDC_CHEAT_AUTOLOADSAVE, BST_CHECKED); } } + SetCheatToolTip(hwndDlg, IDC_CHEAT_AUTOLOADSAVE); + } } break; case EN_SETFOCUS: @@ -764,6 +771,18 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l case IDC_CHEAT_COM: editMode = 0; break; case IDC_CHEAT_TEXT: editMode = 1; break; case IDC_CHEAT_GAME_GENIE_TEXT: editMode = 2; break; + default: editMode = -1; + } + break; + case EN_KILLFOCUS: + switch (LOWORD(wParam)) + { + case IDC_CHEAT_ADDR: + case IDC_CHEAT_VAL: + case IDC_CHEAT_COM: + case IDC_CHEAT_TEXT: + case IDC_CHEAT_GAME_GENIE_TEXT: + default: editMode = -1; break; } break; case EN_UPDATE: @@ -1046,8 +1065,6 @@ void UpdateCheatsAdded() BOOL CALLBACK GGConvCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { -// int i; - extern void GetUIGGInfo(HWND hwndDlg, uint32* a, uint8* v, int* c); switch(uMsg) { case WM_MOVE: { @@ -1227,7 +1244,6 @@ void ListGGAddresses(HWND hwndDlg) SendDlgItemMessage(hwndDlg, IDC_LIST_GGADDRESSES, LB_RESETCONTENT,0,0); uint32 a = -1; uint8 v = -1; int c = -1; - extern void GetUIGGInfo(HWND hwnd, uint32* a, uint8* v, int* c); GetUIGGInfo(hwndDlg, &a, &v, &c); // also enable/disable the add GG button here @@ -1310,6 +1326,50 @@ inline void GetCheatCodeStr(char* buf, int a, int v, int c) sprintf(buf, "%04X?%02X:%02X", a, c, v); } +static void SetCheatToolTip(HWND hwndDlg, UINT id) +{ + TOOLINFO info; + memset(&info, 0, sizeof(TOOLINFO)); + info.cbSize = sizeof(TOOLINFO); + info.uFlags = TTF_SUBCLASS | TTF_IDISHWND; + info.hwnd = hwndDlg; + info.lpszText = GetCheatToolTipStr(hwndDlg, id); + info.uId = (UINT_PTR)GetDlgItem(hwndDlg, id); + + if (hCheatTip) + SendMessage(hCheatTip, TTM_UPDATETIPTEXT, 0, (LPARAM)&info); + else + { + if (hCheatTip = CreateWindow(TOOLTIPS_CLASS, NULL, WS_POPUP | TTS_ALWAYSTIP, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, hwndDlg, NULL, fceu_hInstance, NULL)) { + SendMessage(hCheatTip, TTM_ADDTOOL, 0, (LPARAM)&info); + SendMessage(hCheatTip, TTM_SETDELAYTIME, TTDT_AUTOPOP, 30000); + SendMessage(hCheatTip, TTM_SETMAXTIPWIDTH, 0, 8000); + } + } +} + +char* GetCheatToolTipStr(HWND hwndDlg, UINT id) +{ + switch (id) + { + case IDC_CHEAT_AUTOLOADSAVE: + switch (disableAutoLSCheats) + { + case 0: return "Automatically load/save cheat file along with the game."; + case 1: return + "Don't add cheat on game load, but prompt for saving on game closes.\r\n" + "You must manually import cht file when it's needed."; + case 2: return + "Don't add cheat on game load, and don't save cheat on game closes.\r\n" + "You must manually import/export cht file by yourself,\nor all your changes to cheat will be lost!"; + default: + return "Mysterious undocumented state."; + } + } + + return NULL; +} + void GetUICheatInfo(HWND hwndDlg, char* name, uint32* a, uint8* v, int* c) { char buf[16]; diff --git a/src/drivers/win/cheat.h b/src/drivers/win/cheat.h index 28acc9e2..60485424 100644 --- a/src/drivers/win/cheat.h +++ b/src/drivers/win/cheat.h @@ -19,8 +19,11 @@ void UpdateCheatListGroupBoxUI(); void UpdateCheatsAdded(); void ToggleCheatInputMode(HWND hwndDlg, int modeId); void GetUICheatInfo(HWND hwndDlg, char* name, uint32* a, uint8* v, int* c); +void GetUIGGInfo(HWND hwndDlg, uint32* a, uint8* v, int* c); inline void GetCheatStr(char* buf, int a, int v, int c); inline void GetCheatCodeStr(char* buf, int a, int v, int c); +static void SetCheatToolTip(HWND hwndDlg, UINT id); +char* GetCheatToolTipStr(HWND hwndDlg, UINT id); extern unsigned int FrozenAddressCount; extern std::vector FrozenAddresses; diff --git a/src/drivers/win/debugger.cpp b/src/drivers/win/debugger.cpp index c38feaed..7e316de1 100644 --- a/src/drivers/win/debugger.cpp +++ b/src/drivers/win/debugger.cpp @@ -370,13 +370,13 @@ BOOL CALLBACK AddbpCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) break; } if ((tmp=AddBreak(hwndDlg)) == TOO_MANY_BREAKPOINTS) { - MessageBox(hwndDlg, "Too many breakpoints, please delete one and try again", "Breakpoint Error", MB_OK); + MessageBox(hwndDlg, "Too many breakpoints, please delete one and try again", "Breakpoint Error", MB_OK | MB_ICONERROR); goto endaddbrk; } if (tmp == 2) goto endaddbrk; else if (tmp == INVALID_BREAKPOINT_CONDITION) { - MessageBox(hwndDlg, "Invalid breakpoint condition", "Error", MB_OK); + MessageBox(hwndDlg, "Invalid breakpoint condition", "Error", MB_OK | MB_ICONERROR); break; } EndDialog(hwndDlg,1); @@ -1295,7 +1295,7 @@ BOOL CALLBACK AssemblerCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar saved = 1; applied = 0; } - else MessageBox(hwndDlg, "Unable to save changes to file", "Error saving to file", MB_OK); + else MessageBox(hwndDlg, "Unable to save changes to file", "Error saving to file", MB_OK | MB_ICONERROR); } } break; @@ -1334,7 +1334,7 @@ BOOL CALLBACK AssemblerCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar count += opsize[patchdata[i][0]]; } if (count > 0x10000) { //note: don't use 0xFFFF! - MessageBox(hwndDlg, "Patch data cannot exceed address 0xFFFF", "Address error", MB_OK); + MessageBox(hwndDlg, "Patch data cannot exceed address 0xFFFF", "Address error", MB_OK | MB_ICONERROR); break; } SetDlgItemText(hwndDlg,IDC_ASSEMBLER_HISTORY,""); @@ -1399,11 +1399,11 @@ BOOL CALLBACK PatcherCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam else iapoffset = GetNesFileAddress(GetEditHex(hwndDlg,IDC_ROMPATCHER_OFFSET)); if((iapoffset < 16) && (iapoffset != -1)){ - MessageBox(hDebug, "Sorry, iNes Header editing isn't supported", "Error", MB_OK); + MessageBox(hDebug, "Sorry, iNES Header editing isn't supported by this tool. If you want to edit the header, please use iNES Header Editor", "Error", MB_OK | MB_ICONASTERISK); iapoffset = -1; } if((iapoffset > PRGsize[0]) && (iapoffset != -1)){ - MessageBox(hDebug, "Error: .Nes offset outside of PRG rom", "Error", MB_OK); + MessageBox(hDebug, "Error: .Nes offset outside of PRG rom", "Error", MB_OK | MB_ICONERROR); iapoffset = -1; } UpdatePatcher(hwndDlg); @@ -1420,7 +1420,7 @@ BOOL CALLBACK PatcherCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam break; case IDC_ROMPATCHER_BTN_SAVE: if (!iNesSave()) - MessageBox(NULL, "Error Saving", "Error", MB_OK); + MessageBox(NULL, "Error Saving", "Error", MB_OK | MB_ICONERROR); break; } break; @@ -2447,7 +2447,7 @@ void DoPatcher(int address, HWND hParent) if (GameInterface == iNESGI) DialogBox(fceu_hInstance, "ROMPATCHER", hParent, PatcherCallB); else - MessageBox(hDebug, "Sorry, The Patcher only works on INES rom images", "Error", MB_OK); + MessageBox(hDebug, "Sorry, The Patcher only works on INES rom images", "Error", MB_OK | MB_ICONASTERISK); UpdateDebugger(false); } diff --git a/src/drivers/win/directories.cpp b/src/drivers/win/directories.cpp index accda7d5..9f4c65fe 100644 --- a/src/drivers/win/directories.cpp +++ b/src/drivers/win/directories.cpp @@ -27,7 +27,7 @@ void CloseDirectoriesDialog(HWND hwndDlg) for(unsigned int curr_dir = 0; curr_dir < NUMBER_OF_DIRECTORIES; curr_dir++) { LONG len; - len = SendDlgItemMessage(hwndDlg, EDIT_ROMS + curr_dir, WM_GETTEXTLENGTH, 0, 0); + len = SendDlgItemMessage(hwndDlg, edit_id[curr_dir], WM_GETTEXTLENGTH, 0, 0); if(len <= 0) { @@ -47,7 +47,7 @@ void CloseDirectoriesDialog(HWND hwndDlg) continue; } - if(!GetDlgItemText(hwndDlg, EDIT_ROMS + curr_dir, directory_names[curr_dir], len)) + if(!GetDlgItemText(hwndDlg, edit_id[curr_dir], directory_names[curr_dir], len)) { free(directory_names[curr_dir]); directory_names[curr_dir] = 0; @@ -98,7 +98,7 @@ static BOOL CALLBACK DirConCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM // Initialize the directories textboxes for(unsigned int curr_dir = 0; curr_dir < NUMBER_OF_DIRECTORIES; curr_dir++) { - SetDlgItemText(hwndDlg, EDIT_ROMS + curr_dir, directory_names[curr_dir]); + SetDlgItemText(hwndDlg, edit_id[curr_dir], directory_names[curr_dir]); } // Check the screenshot naming checkbox if necessary @@ -119,48 +119,54 @@ static BOOL CALLBACK DirConCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM break; case WM_COMMAND: - if( !(wParam >> 16) ) + switch (HIWORD(wParam)) { - if( (wParam & 0xFFFF) >= BUTTON_ROMS && (wParam & 0xFFFF) <= BUTTON_ROMS + NUMBER_OF_DIRECTORIES) - { - // If a directory selection button was pressed, ask the - // user for a directory. - - static char *helpert[14] = { - "Roms", - "Battery Saves", - "Save States", - "FDS Bios Rom", - "Screenshots", - "Cheats", - "Movies", - "Memory Watch", - "Basic Bot", - "Macro files", - "Input Presets", - "Lua Scripts", - "Avi Directory", - "Base Directory", - }; - - char name[MAX_PATH]; - char path[MAX_PATH]; - GetDlgItemText(hwndDlg, EDIT_ROMS + ((wParam & 0xFFFF) - BUTTON_ROMS), path, MAX_PATH); - - if(BrowseForFolder(hwndDlg, helpert[ ( (wParam & 0xFFFF) - BUTTON_ROMS)], name, path)) + case BN_CLICKED: + switch(LOWORD(wParam)) { - SetDlgItemText(hwndDlg, EDIT_ROMS + ((wParam & 0xFFFF) - BUTTON_ROMS), name); + case CLOSE_BUTTON: + CloseDirectoriesDialog(hwndDlg); + break; + case BTN_CANCEL: + EndDialog(hwndDlg, 0); + break; + default: + static char *helpert[14] = { + "Roms", + "Battery Saves", + "Save States", + "FDS Bios Rom", + "Screenshots", + "Cheats", + "Movies", + "Memory Watch", + "Basic Bot", + "Macro files", + "Input Presets", + "Lua Scripts", + "Avi output", + "Base", + }; + + for (int i = 0; i < NUMBER_OF_DIRECTORIES; ++i) + { + if (browse_btn_id[i] == LOWORD(wParam)) + { + // If a directory selection button was pressed, ask the + // user for a directory. + + char name[MAX_PATH]; + char path[MAX_PATH]; + char caption[256]; + + GetDlgItemText(hwndDlg, edit_id[i], path, MAX_PATH); + sprintf(caption, "Select a directory for %s.", helpert[i]); + if (BrowseForFolder(hwndDlg, caption, name, path)) + SetDlgItemText(hwndDlg, edit_id[i], name); + break; + } + } } - } - else switch(wParam & 0xFFFF) - { - case CLOSE_BUTTON: - CloseDirectoriesDialog(hwndDlg); - break; - case BTN_CANCEL: - EndDialog(hwndDlg, 0); - break; - } } } diff --git a/src/drivers/win/main.cpp b/src/drivers/win/main.cpp index 32e9a005..9963fdca 100644 --- a/src/drivers/win/main.cpp +++ b/src/drivers/win/main.cpp @@ -161,8 +161,10 @@ int PauseAfterLoad; unsigned int skippy = 0; //Frame skip int frameSkipCounter = 0; //Counter for managing frame skip // Contains the names of the overridden standard directories -// in the order roms, nonvol, states, fdsrom, snaps, cheats, movies, memwatch, macro, input presets, lua scripts, base +// in the order roms, nonvol, states, fdsrom, snaps, cheats, movies, memwatch, basic bot, macro, input presets, lua scripts, avi, base char *directory_names[14] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; +int edit_id[14] = { EDIT_ROM, EDIT_BATTERY, EDIT_STATE, EDIT_FDSBIOS, EDIT_SCREENSHOT, EDIT_CHEAT, EDIT_MOVIE, EDIT_MEMWATCH, EDIT_BOT, EDIT_MACRO, EDIT_PRESET, EDIT_LUA, EDIT_AVI, EDIT_ROOT }; +int browse_btn_id[14] = {BUTTON_ROM, BUTTON_BATTERY, BUTTON_STATE, BUTTON_FDSBIOS, BUTTON_SCREENSHOT, BUTTON_CHEAT, BUTTON_MOVIE, BUTTON_MEMWATCH, BUTTON_BOT, BUTTON_MACRO, BUTTON_PRESET, BUTTON_LUA, BUTTON_AVI, BUTTON_ROOT }; std::string cfgFile = "fceux.cfg"; //Handle of the main window. HWND hAppWnd = 0; diff --git a/src/drivers/win/main.h b/src/drivers/win/main.h index b26b123b..faa319cb 100644 --- a/src/drivers/win/main.h +++ b/src/drivers/win/main.h @@ -64,6 +64,8 @@ extern int AutoFireOffset; extern int vmod; extern char* directory_names[14]; +extern int edit_id[14]; +extern int browse_btn_id[14]; char *GetRomName(bool force = false); //Checks if rom is loaded, if so, outputs the Rom name with no directory path or file extension char *GetRomPath(bool force = false); //Checks if rom is loaded, if so, outputs the Rom path only diff --git a/src/drivers/win/res.rc b/src/drivers/win/res.rc index 643bc61c..4255840f 100644 --- a/src/drivers/win/res.rc +++ b/src/drivers/win/res.rc @@ -12,7 +12,7 @@ #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// -// English(U.S.) resources +// English(United States) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US @@ -709,44 +709,44 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTIO CAPTION "Directories Configuration" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN + LTEXT "Base &Directory",IDC_STATIC,10,10,47,8 + EDITTEXT EDIT_ROOT,71,9,158,12,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",BUTTON_ROOT,239,8,56,14 + LTEXT "&Roms",IDC_STATIC,10,28,19,8 + EDITTEXT EDIT_ROM,71,27,158,12,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",BUTTON_ROM,239,26,56,14 + LTEXT "&Battery Saves",IDC_STATIC,10,46,45,8 + EDITTEXT EDIT_BATTERY,71,45,158,12,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",BUTTON_BATTERY,239,44,56,14 + LTEXT "&Save States",IDC_STATIC,10,64,41,9 + EDITTEXT EDIT_STATE,71,63,158,12,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",BUTTON_STATE,239,62,56,14 + LTEXT "&FDS Bios Rom",IDC_STATIC,10,82,47,8 + EDITTEXT EDIT_FDSBIOS,71,81,158,12,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",BUTTON_FDSBIOS,239,80,56,14 + LTEXT "Screens&hots",IDC_STATIC,10,100,40,8 + EDITTEXT EDIT_SCREENSHOT,71,99,158,12,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",BUTTON_SCREENSHOT,239,98,56,14 + LTEXT "Chea&ts",IDC_STATIC,10,118,23,8 + EDITTEXT EDIT_CHEAT,71,117,158,12,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",BUTTON_CHEAT,239,116,56,14 + LTEXT "&Movies",IDC_STATIC,10,136,24,8 + EDITTEXT EDIT_MOVIE,71,135,158,12,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",BUTTON_MOVIE,239,134,56,14 + LTEXT "Memory &Watch",IDC_STATIC,10,154,52,9 + EDITTEXT EDIT_MEMWATCH,71,153,158,12,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",BUTTON_MEMWATCH,239,152,56,14 + LTEXT "&Input Presets",IDC_STATIC,10,172,42,8 + EDITTEXT EDIT_PRESET,71,171,158,12,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",210,239,170,56,14 + LTEXT "&Lua Scripts",IDC_STATIC,10,190,36,8 + EDITTEXT EDIT_LUA,71,189,158,12,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",211,239,188,56,14 + LTEXT "A&vi Output",IDC_STATIC,10,208,34,8 + EDITTEXT EDIT_AVI,71,207,158,12,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",BUTTON_AVI,239,206,56,14 DEFPUSHBUTTON "OK",CLOSE_BUTTON,175,230,56,14 PUSHBUTTON "Cancel",BTN_CANCEL,239,230,56,14 - EDITTEXT 113,71,9,158,12,ES_AUTOHSCROLL - EDITTEXT EDIT_ROMS,71,27,158,12,ES_AUTOHSCROLL - EDITTEXT 101,71,45,158,12,ES_AUTOHSCROLL - EDITTEXT 102,71,63,158,12,ES_AUTOHSCROLL - EDITTEXT 103,71,81,158,12,ES_AUTOHSCROLL - EDITTEXT 104,71,99,158,12,ES_AUTOHSCROLL - EDITTEXT 105,71,117,158,12,ES_AUTOHSCROLL - EDITTEXT 106,71,135,158,12,ES_AUTOHSCROLL - EDITTEXT 107,71,153,158,12,ES_AUTOHSCROLL - EDITTEXT 110,71,171,158,12,ES_AUTOHSCROLL - EDITTEXT 111,71,189,158,12,ES_AUTOHSCROLL - EDITTEXT 112,71,207,158,12,ES_AUTOHSCROLL - PUSHBUTTON "Browse...",213,239,8,56,14 - PUSHBUTTON "Browse...",BUTTON_ROMS,239,26,56,14 - PUSHBUTTON "Browse...",201,239,44,56,14 - PUSHBUTTON "Browse...",202,239,62,56,14 - PUSHBUTTON "Browse...",203,239,80,56,14 - PUSHBUTTON "Browse...",204,239,98,56,14 - PUSHBUTTON "Browse...",205,239,116,56,14 - PUSHBUTTON "Browse...",206,239,134,56,14 - PUSHBUTTON "Browse...",207,239,152,56,14 - PUSHBUTTON "Browse...",210,239,170,56,14 - PUSHBUTTON "Browse...",211,239,188,56,14 - PUSHBUTTON "Browse...",212,239,206,56,14 - LTEXT "Base Directory",IDC_STATIC,10,10,47,8 - LTEXT "Roms",IDC_STATIC,10,28,19,8 - LTEXT "Battery Saves",IDC_STATIC,10,46,45,8 - LTEXT "Save States",IDC_STATIC,10,64,41,9 - LTEXT "FDS Bios Rom",IDC_STATIC,10,82,47,8 - LTEXT "Screenshots",IDC_STATIC,10,100,40,8 - LTEXT "Cheats",IDC_STATIC,10,118,23,8 - LTEXT "Movies",IDC_STATIC,10,136,24,8 - LTEXT "Memory Watch",IDC_STATIC,10,154,52,9 - LTEXT "Input Presets",IDC_STATIC,10,172,42,8 - LTEXT "Lua Scripts",IDC_STATIC,10,190,36,8 - LTEXT "Avi Output",IDC_STATIC,10,208,34,8 END DWBDIALOG DIALOG 33, 99, 250, 56 @@ -876,7 +876,6 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTIO CAPTION "GUI Configuration" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - DEFPUSHBUTTON "Close",BTN_CLOSE,65,136,56,14 CONTROL "Load ""File Open"" dialog when FCEUX starts.",CB_LOAD_FILE_OPEN, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,8,168,12 CONTROL "Automatically hide menu on game load.",CB_AUTO_HIDE_MENU, @@ -891,6 +890,7 @@ BEGIN CONTROL "Partially disable Visual Themes (Requires restart)",CB_PARTIALVISUALTHEME, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,100,168,12 CONTROL "Single Instance Mode",IDC_SINGLEINSTANCE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,117,167,10 + DEFPUSHBUTTON "Close",BTN_CLOSE,65,136,56,14 END INPUTCONFIG DIALOGEX 122, 105, 349, 199 @@ -946,7 +946,6 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTIO CAPTION "mahjong" FONT 8, "MS Shell Dlg" BEGIN - DEFPUSHBUTTON "Close",BTN_CLOSE,277,91,56,14 GROUPBOX "",321,8,8,324,73,WS_GROUP PUSHBUTTON "A",300,14,42,16,12 PUSHBUTTON "B",301,36,42,16,12 @@ -969,6 +968,7 @@ BEGIN PUSHBUTTON " ",318,212,58,16,12 PUSHBUTTON " ",319,234,58,16,12 PUSHBUTTON " ",320,256,58,16,12 + DEFPUSHBUTTON "Close",BTN_CLOSE,277,91,56,14 END MAPINPUT DIALOGEX 0, 0, 318, 294 @@ -980,8 +980,8 @@ BEGIN PUSHBUTTON "Cancel",BTN_CANCEL,205,274,50,14 CONTROL "List2",LV_MAPPING,"SysListView32",LVS_REPORT | WS_BORDER | WS_TABSTOP,7,7,304,243 PUSHBUTTON "Restore Defaults",BTN_RESTORE_DEFAULTS,7,274,75,14 - COMBOBOX COMBO_FILTER,32,255,279,193,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP RTEXT "Filter:",65484,6,255,21,12,SS_CENTERIMAGE | NOT WS_GROUP + COMBOBOX COMBO_FILTER,32,255,279,193,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP END MESSAGELOG DIALOGEX 33, 38, 197, 229 @@ -1031,31 +1031,31 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTIO CAPTION "Palette Configuration" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - DEFPUSHBUTTON "Close",BUTTON_CLOSE,162,195,56,14 GROUPBOX "NES Palette",302,10,8,102,81,WS_GROUP DEFPUSHBUTTON "&Load Palette...",BTN_PALETTE_LOAD,18,39,58,14 CONTROL "Enabled",CHECK_PALETTE_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,22,87,12 + CTEXT "Tint",65463,123,34,85,8,WS_DISABLED CONTROL "Tint",CTL_TINT_TRACKBAR,"msctls_trackbar32",WS_DISABLED | WS_TABSTOP,121,44,91,11 GROUPBOX "NTSC Color Emulation",101,115,8,103,81,WS_GROUP - CONTROL "Hue",CTL_HUE_TRACKBAR,"msctls_trackbar32",WS_DISABLED | WS_TABSTOP,121,69,91,11 CTEXT "Hue",64395,124,59,85,8,WS_DISABLED - CTEXT "Tint",65463,123,34,85,8,WS_DISABLED + CONTROL "Hue",CTL_HUE_TRACKBAR,"msctls_trackbar32",WS_DISABLED | WS_TABSTOP,121,69,91,11 CONTROL "Force Grayscale",CHECK_PALETTE_GRAYSCALE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,57,85,12 CONTROL "Use Custom Palette",CHECK_PALETTE_CUSTOM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,22,85,12 GROUPBOX "PAL Emulation",IDC_STATIC,10,89,208,66,WS_DISABLED - CONTROL "",CTL_PALSAT_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,78,110,70,15 LTEXT "Saturation:",STATIC_SATVALUE,83,100,58,8,WS_DISABLED + CONTROL "",CTL_PALSAT_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,78,110,70,15 PUSHBUTTON "Reset",BTN_PALETTE_RESET,161,132,50,14,WS_DISABLED - CONTROL "",CTL_PALNOTCH_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,11,110,68,15 LTEXT "Notch:",STATIC_NOTCHVALUE,16,100,46,8,WS_DISABLED - CONTROL "",CTL_PALSHARP_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,156,109,61,15 + CONTROL "",CTL_PALNOTCH_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,11,110,68,15 LTEXT "Sharpness:",STATIC_SHARPVALUE,161,99,50,8,WS_DISABLED + CONTROL "",CTL_PALSHARP_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,156,109,61,15 LTEXT "NTSC Color Emulation overrides Internal default Palette.\nIndividual Game Palette overrides Internal+NTSC Palettes.\nCustom Palette overrides all of the above.\nPAL Emulation overrides other choices when PAL filter is selected",IDC_STATIC,10,159,208,33 - CONTROL "",CTL_PALCONTRAST_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,11,134,67,15 LTEXT "Contrast: ",STATIC_CONTRASTVALUE,16,126,55,8,WS_DISABLED - CONTROL "",CTL_PALBRIGHT_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,78,133,70,15 + CONTROL "",CTL_PALCONTRAST_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,11,134,67,15 LTEXT "Brightness: ",STATIC_BRIGHTVALUE,83,125,61,8,WS_DISABLED + CONTROL "",CTL_PALBRIGHT_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,78,133,70,15 CONTROL "De-emphasis bit swap",CHECK_DEEMPH_SWAP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,73,83,10 + DEFPUSHBUTTON "Close",BUTTON_CLOSE,162,195,56,14 END POWERPADDIALOG DIALOG 30, 123, 131, 119 @@ -1253,16 +1253,16 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_VISIB CAPTION "Timing Configuration" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - DEFPUSHBUTTON "Close",1,137,87,56,14 CONTROL "Disable speed throttling used when sound is disabled.",CB_DISABLE_SPEED_THROTTLING, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,8,183,12 CONTROL "Set high-priority thread.",CB_SET_HIGH_PRIORITY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,24,102,12 CONTROL "Overclocking (old PPU only).",CB_OVERCLOCKING,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,41,101,10 - EDITTEXT IDC_EXTRA_SCANLINES,104,55,84,14,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED LTEXT "Post-render scanlines:",IDC_EXTRA_SCANLINES_TEXT,21,57,74,8,WS_DISABLED + EDITTEXT IDC_EXTRA_SCANLINES,104,55,84,14,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED CONTROL "Don't overclock 7-bit samples.",CB_SKIP_7BIT,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,10,87,111,10 - EDITTEXT IDC_VBLANK_SCANLINES,104,68,84,14,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED LTEXT "VBlank scanlines:",IDC_VBLANK_SCANLINES_TEXT,21,71,76,8,WS_DISABLED + EDITTEXT IDC_VBLANK_SCANLINES,104,68,84,14,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED + DEFPUSHBUTTON "Close",1,137,87,56,14 END MOVIEOPTIONS DIALOGEX 65520, 76, 147, 222 @@ -1270,7 +1270,6 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTIO CAPTION "Movie Options" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - DEFPUSHBUTTON "Close",IDC_MOVIE_CLOSE,48,200,49,14,BS_CENTER CONTROL "Pause after playback",IDC_MOVIE_PAUSEAFTERPLAYBACK, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,26,110,10 CONTROL "Bind savestates to movies",IDC_MOVIE_BINDSAVESTATES, @@ -1290,6 +1289,7 @@ BEGIN CONTROL "Always suggest Read-Only replay",IDC_MOVIE_SUGGEST_READONLY, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,8,125,10 LTEXT "(VBA-rr and SNES9x style)",IDC_STATIC,25,184,93,8 + DEFPUSHBUTTON "Close",IDC_MOVIE_CLOSE,48,200,49,14,BS_CENTER END DWBDIALOGSIMPLE DIALOGEX 33, 99, 250, 39 @@ -1519,8 +1519,8 @@ CAPTION "Add Breakpoint..." FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN LTEXT "&Address:",-1,14,6,30,10 - EDITTEXT IDC_ADDBP_ADDR_START,48,4,30,12,ES_UPPERCASE | ES_WANTRETURN CTEXT "-",65534,78,6,8,8 + EDITTEXT IDC_ADDBP_ADDR_START,48,4,30,12,ES_UPPERCASE | ES_WANTRETURN EDITTEXT IDC_ADDBP_ADDR_END,87,4,30,12,ES_UPPERCASE | ES_WANTRETURN CONTROL "&Forbid",IDC_ADDBP_MODE_F,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,154,6,33,12 GROUPBOX "",112,3,18,185,50,WS_TABSTOP @@ -1663,16 +1663,16 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPT CAPTION "Find" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN + LTEXT "Find &What:",-1,7,9,38,8 EDITTEXT IDC_MEMVIEWFIND_WHAT,47,7,171,14,ES_AUTOHSCROLL - LTEXT "Find What:",-1,7,9,38,8 GROUPBOX "Type",-1,83,29,187,45 - CONTROL "Hex",IDC_MEMVIEWFIND_TYPE_HEX,"Button",BS_AUTORADIOBUTTON | WS_GROUP,93,43,29,10 - CONTROL "Text (Uses Currently Loaded Table as Reference)",IDC_MEMVIEWFIND_TYPE_TEXT, + CONTROL "&Hex",IDC_MEMVIEWFIND_TYPE_HEX,"Button",BS_AUTORADIOBUTTON | WS_GROUP,93,43,29,10 + CONTROL "&Text (Uses Currently Loaded Table as Reference)",IDC_MEMVIEWFIND_TYPE_TEXT, "Button",BS_AUTORADIOBUTTON,93,56,172,10 GROUPBOX "Direction",-1,9,29,65,44 - CONTROL "Up",IDC_MEMVIEWFIND_DIR_UP,"Button",BS_AUTORADIOBUTTON | WS_GROUP,18,43,25,10 - CONTROL "Down",IDC_MEMVIEWFIND_DIR_DOWN,"Button",BS_AUTORADIOBUTTON,18,56,35,10 - DEFPUSHBUTTON "Find Next",IDC_MEMVIEWFIND_NEXT,225,7,50,14 + CONTROL "&Up",IDC_MEMVIEWFIND_DIR_UP,"Button",BS_AUTORADIOBUTTON | WS_GROUP,18,43,25,10 + CONTROL "&Down",IDC_MEMVIEWFIND_DIR_DOWN,"Button",BS_AUTORADIOBUTTON,18,56,35,10 + DEFPUSHBUTTON "&Find Next",IDC_MEMVIEWFIND_NEXT,225,7,50,14 END IDD_RECORDINP DIALOGEX 0, 0, 276, 86 @@ -1680,16 +1680,16 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTI CAPTION "Record input" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - DEFPUSHBUTTON "OK",1,167,66,50,14 GROUPBOX "",65501,3,0,269,60 - RTEXT "File:",65500,28,11,24,10,SS_CENTERIMAGE | NOT WS_GROUP,WS_EX_RIGHT - PUSHBUTTON "Cancel",2,221,66,50,14 + RTEXT "&File:",65500,28,11,24,10,SS_CENTERIMAGE | NOT WS_GROUP,WS_EX_RIGHT EDITTEXT IDC_EDIT_FILENAME,55,10,189,12,ES_AUTOHSCROLL PUSHBUTTON "...",IDC_BUTTON_BROWSEFILE,249,10,18,14 + RTEXT "&Record From:",65498,9,27,43,8,0,WS_EX_RIGHT COMBOBOX IDC_COMBO_RECORDFROM,55,25,189,154,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - RTEXT "Record From:",65498,9,27,43,8,0,WS_EX_RIGHT + RTEXT "&Author:",65502,18,43,34,10,SS_CENTERIMAGE | NOT WS_GROUP,WS_EX_RIGHT EDITTEXT IDC_EDIT_AUTHOR,55,41,189,14,ES_AUTOHSCROLL - RTEXT "Author:",65502,18,43,34,10,SS_CENTERIMAGE | NOT WS_GROUP,WS_EX_RIGHT + DEFPUSHBUTTON "OK",1,167,66,50,14 + PUSHBUTTON "Cancel",2,221,66,50,14 END IDD_REPLAYINP DIALOGEX 0, 0, 300, 202 @@ -1697,36 +1697,36 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTI CAPTION "Play Movie" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - DEFPUSHBUTTON "OK",1,189,183,50,14 GROUPBOX "",65497,3,0,293,179 RTEXT "File:",65498,8,11,24,10,SS_CENTERIMAGE | NOT WS_GROUP COMBOBOX IDC_COMBO_FILENAME,35,10,257,128,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Cancel",2,243,183,50,14 RTEXT "Length:",64397,10,67,59,8 + EDITTEXT IDC_LABEL_LENGTH,76,67,59,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP RTEXT "Frames:",65496,10,78,59,8 + EDITTEXT IDC_LABEL_FRAMES,76,78,59,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP RTEXT "Record Count:",65495,10,89,59,8 + EDITTEXT IDC_LABEL_UNDOCOUNT,76,89,59,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP RTEXT "ROM Used:",65493,10,111,59,8 + EDITTEXT IDC_LABEL_ROMUSED,76,111,187,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP RTEXT "ROM Checksum:",65492,10,122,59,8 + EDITTEXT IDC_LABEL_ROMCHECKSUM,76,122,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP RTEXT "Recorded From:",65491,10,100,59,8 + EDITTEXT IDC_LABEL_RECORDEDFROM,76,100,123,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP RTEXT "Emulator Used:",65490,10,144,59,8 + EDITTEXT IDC_LABEL_EMULATORUSED,76,144,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP RTEXT "Current ROM Sum:",65489,8,133,61,8 + EDITTEXT IDC_LABEL_CURRCHECKSUM,76,133,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP CONTROL "Pause movie at frame",IDC_CHECK_STOPMOVIE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,49,83,10 EDITTEXT IDC_EDIT_STOPFRAME,103,47,39,12,ES_AUTOHSCROLL | ES_NUMBER GROUPBOX "Parameters",IDC_STATIC,13,25,278,40 PUSHBUTTON "Metadata...",IDC_BUTTON_METADATA,239,71,50,14 - EDITTEXT IDC_LABEL_EMULATORUSED,76,144,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP - EDITTEXT IDC_LABEL_CURRCHECKSUM,76,133,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP - EDITTEXT IDC_LABEL_ROMCHECKSUM,76,122,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP - EDITTEXT IDC_LABEL_ROMUSED,76,111,187,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP - EDITTEXT IDC_LABEL_RECORDEDFROM,76,100,123,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP CONTROL "Open &Read-Only",IDC_CHECK_READONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,36,69,10 - EDITTEXT IDC_LABEL_UNDOCOUNT,76,89,59,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP - EDITTEXT IDC_LABEL_FRAMES,76,78,59,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP - EDITTEXT IDC_LABEL_LENGTH,76,67,59,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP RTEXT "Pal:",65494,10,155,59,8 EDITTEXT IDC_LABEL_PALUSED,76,155,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP RTEXT "New PPU:",65499,10,166,59,8 EDITTEXT IDC_LABEL_NEWPPUUSED,76,166,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP + DEFPUSHBUTTON "OK",1,189,183,50,14 + PUSHBUTTON "Cancel",2,243,183,50,14 END TASEDITOR DIALOGEX 0, 0, 326, 348 @@ -1798,16 +1798,16 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTI CAPTION "Create New Project" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN - DEFPUSHBUTTON "OK",IDOK,7,80,50,14 - PUSHBUTTON "Cancel",IDCANCEL,114,80,50,14 CONTROL " Copy current Input",IDC_COPY_INPUT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,80,14,75,10 CONTROL " 1 player",IDC_RADIO_1PLAYER,"Button",BS_AUTORADIOBUTTON,16,14,45,10 CONTROL " 2 players",IDC_RADIO_2PLAYERS,"Button",BS_AUTORADIOBUTTON,16,27,45,10 CONTROL " Fourscore",IDC_RADIO_FOURSCORE,"Button",BS_AUTORADIOBUTTON,16,40,45,10 CONTROL " Copy current Markers",IDC_COPY_MARKERS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,80,27,83,10 GROUPBOX "Input type",IDC_STATIC,5,3,67,52,BS_CENTER - EDITTEXT IDC_EDIT_AUTHOR,36,61,127,13,ES_AUTOHSCROLL LTEXT "Author:",IDC_STATIC,8,63,26,9 + EDITTEXT IDC_EDIT_AUTHOR,36,61,127,13,ES_AUTOHSCROLL + DEFPUSHBUTTON "OK",IDOK,7,80,50,14 + PUSHBUTTON "Cancel",IDCANCEL,114,80,50,14 END IDD_TASEDITOR_EXPORT DIALOGEX 0, 0, 158, 86 @@ -1815,13 +1815,13 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIB CAPTION "Export to FM2" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN - DEFPUSHBUTTON "Export",IDOK,7,66,50,14 - PUSHBUTTON "Cancel",IDCANCEL,100,66,50,14 CONTROL " 1 player",IDC_RADIO_1PLAYER,"Button",BS_AUTORADIOBUTTON | WS_GROUP,8,8,47,10 CONTROL " 2 players",IDC_RADIO_2PLAYERS,"Button",BS_AUTORADIOBUTTON,8,21,47,10 CONTROL " Fourscore",IDC_RADIO_FOURSCORE,"Button",BS_AUTORADIOBUTTON,8,35,47,10 CONTROL " Convert Marker Notes to Movie Subtitles",IDC_NOTES_TO_SUBTITLES, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,50,146,10 + DEFPUSHBUTTON "Export",IDOK,7,66,50,14 + PUSHBUTTON "Cancel",IDCANCEL,100,66,50,14 END IDD_TASEDITOR_FINDNOTE DIALOGEX 0, 0, 228, 49 @@ -2058,16 +2058,16 @@ CAPTION "Lua Script" MENU LUAWINDOW_MENU FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN - PUSHBUTTON "&Browse...",IDC_BUTTON_LUABROWSE,7,31,48,16 - PUSHBUTTON "&Run",IDC_BUTTON_LUARUN,213,31,50,16 - PUSHBUTTON "&Stop",IDC_BUTTON_LUASTOP,160,31,50,16 - EDITTEXT IDC_EDIT_LUAPATH,7,16,256,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_LUAARGS,47,50,216,14,ES_AUTOHSCROLL - EDITTEXT IDC_LUACONSOLE,7,80,256,60,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL - LTEXT "Output Console:",IDC_STATIC,7,70,56,8 LTEXT "Script File:",IDC_STATIC,7,7,36,8 - LTEXT "Arguments:",IDC_STATIC,7,52,40,8 + EDITTEXT IDC_EDIT_LUAPATH,7,16,256,14,ES_AUTOHSCROLL + PUSHBUTTON "&Browse...",IDC_BUTTON_LUABROWSE,7,31,48,16 PUSHBUTTON "Edit",IDC_BUTTON_LUAEDIT,58,31,46,16 + PUSHBUTTON "&Stop",IDC_BUTTON_LUASTOP,160,31,50,16 + PUSHBUTTON "&Run",IDC_BUTTON_LUARUN,213,31,50,16 + LTEXT "Output Console:",IDC_STATIC,7,70,56,8 + EDITTEXT IDC_LUACONSOLE,7,80,256,60,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL + LTEXT "Arguments:",IDC_STATIC,7,52,40,8 + EDITTEXT IDC_EDIT_LUAARGS,47,50,216,14,ES_AUTOHSCROLL END VIDEOCONFIG DIALOGEX 65520, 76, 511, 170 @@ -2107,12 +2107,12 @@ BEGIN COMBOBOX IDC_VIDEOCONFIG_SYNC_METHOD_WIN,236,106,103,47,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP GROUPBOX "Drawing Area",65494,351,50,154,65,WS_GROUP LTEXT "First line:",65436,367,68,40,9 - LTEXT "Last line:",65435,367,84,40,9 CTEXT "NTSC",65434,413,57,27,8 - CTEXT "PAL/Dendy",65433,455,57,48,8 EDITTEXT IDC_SCANLINE_FIRST_NTSC,414,66,27,12,ES_RIGHT | ES_NUMBER - EDITTEXT IDC_SCANLINE_LAST_NTSC,414,83,27,12,ES_RIGHT | ES_NUMBER + CTEXT "PAL/Dendy",65433,455,57,48,8 EDITTEXT IDC_SCANLINE_FIRST_PAL,465,66,27,12,ES_RIGHT | ES_NUMBER + LTEXT "Last line:",65435,367,84,40,9 + EDITTEXT IDC_SCANLINE_LAST_NTSC,414,83,27,12,ES_RIGHT | ES_NUMBER EDITTEXT IDC_SCANLINE_LAST_PAL,465,83,27,12,ES_RIGHT | ES_NUMBER CONTROL "Clip left and right sides (8 px on each)",IDC_VIDEOCONFIG_CLIPSIDES, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,357,98,140,12 @@ -2131,8 +2131,8 @@ BEGIN EDITTEXT IDC_TVASPECT_Y,458,28,41,12,ES_AUTOHSCROLL | WS_DISABLED CTEXT "/",IDC_STATIC_SLASHTEXT,449,31,8,8,WS_DISABLED LTEXT "DirectDraw:",65454,11,126,46,10 - LTEXT "DirectDraw:",65455,188,125,46,10 COMBOBOX IDC_VIDEOCONFIG_DIRECTDRAW_FS,59,123,105,50,CBS_DROPDOWNLIST | WS_TABSTOP + LTEXT "DirectDraw:",65455,188,125,46,10 COMBOBOX IDC_VIDEOCONFIG_DIRECTDRAW_WIN,236,123,103,47,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP END @@ -2278,16 +2278,16 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSM CAPTION "Symbolic Debug Naming" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN - DEFPUSHBUTTON "OK",IDOK,132,62,50,14 - PUSHBUTTON "Cancel",IDCANCEL,189,62,50,14 LTEXT "File",IDC_STATIC,7,7,15,9 - EDITTEXT IDC_SYMBOLIC_ADDRESS,38,24,33,13,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP + EDITTEXT IDC_SYMBOLIC_FILENAME,24,6,215,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP LTEXT "Address",IDC_STATIC,6,26,30,10 - EDITTEXT IDC_SYMBOLIC_NAME,107,24,132,13,ES_AUTOHSCROLL + EDITTEXT IDC_SYMBOLIC_ADDRESS,38,24,33,13,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP LTEXT "Name",IDC_STATIC,83,26,22,10 + EDITTEXT IDC_SYMBOLIC_NAME,107,24,132,13,ES_AUTOHSCROLL LTEXT "Comment",IDC_STATIC,6,45,37,10 EDITTEXT IDC_SYMBOLIC_COMMENT,45,43,194,13,ES_AUTOHSCROLL - EDITTEXT IDC_SYMBOLIC_FILENAME,24,6,215,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP + DEFPUSHBUTTON "OK",IDOK,132,62,50,14 + PUSHBUTTON "Cancel",IDCANCEL,189,62,50,14 END IDD_REPLAY_METADATA DIALOGEX 0, 0, 325, 250 @@ -2296,7 +2296,7 @@ CAPTION "Movie Metadata" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN DEFPUSHBUTTON "Close",IDCANCEL,268,229,50,14 - CONTROL "",IDC_LIST1,"SysListView32",LVS_REPORT | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,7,7,311,214 + CONTROL "",IDC_LIST1,"SysListView32",LVS_REPORT | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,7,7,311,214 END IDD_EDIT_HEADER DIALOGEX 0, 0, 321, 258 @@ -2864,7 +2864,7 @@ IDB_BITMAP_SELECTED17 BITMAP "res\\te_17_selected.bmp" IDB_BITMAP_SELECTED18 BITMAP "res\\te_18_selected.bmp" IDB_BITMAP_SELECTED19 BITMAP "res\\te_19_selected.bmp" IDB_BRANCH_SPRITESHEET BITMAP "res\\branch_spritesheet.bmp" -#endif // English(U.S.) resources +#endif // English(United States) resources ///////////////////////////////////////////////////////////////////////////// diff --git a/src/drivers/win/resource.h b/src/drivers/win/resource.h index b61c0931..2206e9d1 100644 --- a/src/drivers/win/resource.h +++ b/src/drivers/win/resource.h @@ -6,7 +6,7 @@ #define BUTTON_CLOSE 1 #define BTN_CLOSE 1 #define MENU_OPEN_FILE 100 -#define EDIT_ROMS 100 +#define EDIT_ROM 100 #define LBL_LOG_TEXT 100 #define LBL_KEY_COMBO 100 #define LBL_CDLOGGER_CODECOUNT 100 @@ -31,6 +31,7 @@ #define IDC_ROMPATCHER_DOTNES_OFFSET 101 #define IDC_NTVIEW_TABLE_BOX 101 #define IDC_ASSEMBLER_DISASSEMBLY 101 +#define EDIT_BATTERY 101 #define MENU_RECENT_FILES 102 #define CB_LOAD_FILE_OPEN 102 #define LBL_CDLOGGER_UNDEFCOUNT 102 @@ -46,6 +47,7 @@ #define IDC_NTVIEW_SCANLINE 102 #define IDC_ASSEMBLER_PATCH_DISASM 102 #define CHECK_PALETTE_GRAYSCALE 102 +#define EDIT_STATE 102 #define BTN_CDLOGGER_RESET 103 #define LBL_PPUVIEW_TILE1 103 #define IDC_CHEAT_VAL 103 @@ -56,6 +58,7 @@ #define IDC_ROMPATCHER_BTN_EDIT 103 #define IDC_NTVIEW_PROPERTIES_LINE_1 103 #define IDC_VIDEOCONFIG_HIDEMOUSE 103 +#define EDIT_FDSBIOS 103 #define CB_AUTO_HIDE_MENU 104 #define COMBO_PAD1 104 #define BTN_CDLOGGER_LOAD 104 @@ -69,6 +72,7 @@ #define IDC_ROMPATCHER_CURRENT_DATA_BOX 104 #define IDC_NTVIEW_PROPERTIES_LINE_2 104 #define CHECK_PALETTE_CUSTOM 104 +#define EDIT_SCREENSHOT 104 #define COMBO_PAD2 105 #define CB_SET_HIGH_PRIORITY 105 #define BTN_CDLOGGER_START_PAUSE 105 @@ -81,6 +85,7 @@ #define IDC_ADDBP_MEM_CPU 105 #define IDC_ROMPATCHER_CURRENT_DATA 105 #define IDC_NTVIEW_PROPERTIES_LINE_3 105 +#define EDIT_CHEAT 105 #define BTN_PORT1 106 #define BTN_CDLOGGER_SAVE_AS 106 #define IDC_CHEAT_LIST_POSSIBILITIES 106 @@ -89,18 +94,21 @@ #define IDC_ADDBP_MEM_PPU 106 #define IDC_NTVIEW_PROPERTIES_LINE_4 106 #define IDC_TEXT_LINES_TO_THIS_WINDOW 106 +#define EDIT_MOVIE 106 #define BTN_PORT2 107 #define BTN_CDLOGGER_SAVE 107 #define IDC_DEBUGGER_STEP_OVER 107 #define IDC_ADDBP_MEM_SPR 107 #define IDC_ROMPATCHER_DISASSEMBLY 107 #define IDC_VIDEOCONFIG_BESTFIT 107 +#define EDIT_MEMWATCH 107 #define IDR_ACCELERATOR1 108 #define BTN_CDLOGGER_SAVE_STRIPPED 108 #define IDC_CHEAT_VAL_NE_BY 108 #define IDC_DEBUGGER_SEEK_PC 108 #define IDR_TASEDITOR_ACCELERATORS 108 #define IDC_VIDEOCONFIG_CONSOLE_BGCOLOR 108 +#define EDIT_BOT 108 #define IDC_CHEAT_VAL_GT_BY 109 #define IDC_DEBUGGER_SEEK_TO 109 #define IDC_ROMPATCHER_PATCH_DATA 109 @@ -108,6 +116,7 @@ #define BTN_CDLOGGER_SAVE_UNUSED 109 #define IDC_VIDEOCONFIG_TVASPECT 109 #define IDC_GROUP_LOG_OPTIONS 109 +#define EDIT_MACRO 109 #define IDC_CHEAT_VAL_LT_BY 110 #define MENU_SAVE_STATE 110 #define CB_ASK_EXIT 110 @@ -118,6 +127,7 @@ #define IDC_ROMPATCHER_BTN_APPLY 110 #define LBL_CDLOGGER_RENDERCOUNT 110 #define IDC_VIDEOCONFIG_SQUARE_PIXELS 110 +#define EDIT_PRESET 110 #define MENU_LOAD_STATE 111 #define CB_DISABLE_SCREEN_SAVER 111 #define BTN_FAM 111 @@ -126,12 +136,15 @@ #define IDC_ROMPATCHER_BTN_SAVE 111 #define IDC_CHEAT_COM 111 #define IDC_VIDEOCONFIG_DIRECTDRAW_FS 111 +#define EDIT_LUA 111 #define BTN_AUTO_HOLD 112 #define IDC_BTN_LOG_BROWSE 112 #define IDC_DEBUGGER_BOOKMARK_ADD 112 #define IDC_VIDEOCONFIG_DIRECTDRAW_WIN 112 +#define EDIT_AVI 112 #define IDC_DEBUGGER_BOOKMARK_DEL 113 #define IDC_EXTRA_LOG_OPTIONS 113 +#define EDIT_ROOT 113 #define BTN_CLEAR_AH 114 #define IDC_CHECK_LOG_NEW_INSTRUCTIONS 114 #define IDC_DEBUGGER_RUN_LINE 114 @@ -203,7 +216,7 @@ #define IDD_TASEDITOR_FINDNOTE 198 #define IDD_TASEDITOR_ABOUT 199 #define MENU_RESET 200 -#define BUTTON_ROMS 200 +#define BUTTON_ROM 200 #define TXT_PAD1 200 #define BTN_RESTORE_DEFAULTS 200 #define BTN_CLEAR 200 @@ -232,6 +245,7 @@ #define IDC_ASSEMBLER_APPLY 201 #define IDI_ICON4 201 #define BTN_OK 201 +#define BUTTON_BATTERY 201 #define MENU_EJECT_DISK 202 #define TXT_FAM 202 #define MENU_MV_EDIT_PASTE 202 @@ -241,6 +255,7 @@ #define IDC_ASSEMBLER_SAVE 202 #define IDD_TASEDITOR_NEWPROJECT 202 #define IDC_GROUPBOX_CHEATSEARCH 202 +#define BUTTON_STATE 202 #define MENU_SWITCH_DISK 203 #define IDC_NETMOO_NICK 203 #define IDC_CHEAT_BOX_POSSIBILITIES 203 @@ -248,24 +263,35 @@ #define IDC_DEBUGGER_FLAG_B 203 #define IDC_ADDBP_NAME 203 #define IDC_ASSEMBLER_UNDO 203 +#define BUTTON_FDSBIOS 203 #define MENU_INSERT_COIN 204 #define COMBO_NETMOO_LOCAL_PLAYERS 204 #define IDC_DEBUGGER_FLAG_D 204 #define IDC_GROUP_PREV_COM 204 +#define BUTTON_SCREENSHOT 204 #define IDC_NETMOO_KEY 205 #define IDC_DEBUGGER_FLAG_I 205 #define IDB_TE_GREEN_ARROW 205 +#define BUTTON_CHEAT 205 #define IDC_NETMOO_PASS 206 #define IDC_DEBUGGER_FLAG_Z 206 +#define BUTTON_MOVIE 206 #define IDC_DEBUGGER_FLAG_C 207 +#define BUTTON_MEMWATCH 207 #define IDC_DEBUGGER_ENABLE_SYMBOLIC 208 #define IDB_TE_GREEN_BLUE_ARROW 208 +#define BUTTON_BOT 208 #define IDB_PIANO_0 209 #define IDC_DEBUGGER_ROM_OFFSETS 209 +#define BUTTON_MACRO 209 #define IDB_PIANO_1 210 +#define BUTTON_PRESET 210 #define IDB_PIANO_2 211 +#define BUTTON_LUA 211 #define IDB_PIANO_3 212 +#define BUTTON_AVI 212 #define IDB_PIANO_4 213 +#define BUTTON_ROOT 213 #define IDB_PIANO_5 214 #define IDB_PIANO_6 215 #define IDB_PIANO_7 216 @@ -825,6 +851,7 @@ #define IDC_CHEAT_VAL_LABEL 1314 #define IDC_CHEAT_COM_LABEL 1315 #define IDC_CHEAT_LABEL_KNOWN 1316 +#define IDC_BINARY 1317 #define IDC_GAME_GENIE_ADDR 1501 #define MENU_INESHEADEREDITOR 40001 #define MENU_NETWORK 40040 diff --git a/src/fceu.cpp b/src/fceu.cpp index 4153c04d..aa36a92a 100644 --- a/src/fceu.cpp +++ b/src/fceu.cpp @@ -1371,7 +1371,7 @@ uint8 FCEU_ReadRomByte(uint32 i) { void FCEU_WriteRomByte(uint32 i, uint8 value) { if (i < 16) #ifdef WIN32 - MessageBox(hMemView, "Sorry", "You can't edit the ROM header.", MB_OK); + MessageBox(hMemView, "Sorry", "You can't edit the ROM header.", MB_OK | MB_ICONERROR); #else printf("Sorry, you can't edit the ROM header.\n"); #endif From 547dcd3a59d8aefc7b03b60dc7b7d0e14eb7e2ea Mon Sep 17 00:00:00 2001 From: owomomo Date: Mon, 24 Jun 2019 20:16:01 +0800 Subject: [PATCH 02/19] Detail bug fix --- src/drivers/win/header_editor.cpp | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/drivers/win/header_editor.cpp b/src/drivers/win/header_editor.cpp index 14c95733..d411d344 100644 --- a/src/drivers/win/header_editor.cpp +++ b/src/drivers/win/header_editor.cpp @@ -985,8 +985,11 @@ bool WriteHeaderData(HWND hwnd, iNES_HEADER* header) sprintf(buf, "PRG ROM size you entered is invalid in iNES 2.0, do you want to set to its nearest value %s?", buf2); if (MessageBox(hwnd, buf, "Error", MB_YESNO | MB_ICONERROR) == IDYES) SetDlgItemText(hwnd, IDC_PRGROM_COMBO, buf2); - SetFocus(GetDlgItem(hwnd, IDC_PRGROM_COMBO)); - return false; + else + { + SetFocus(GetDlgItem(hwnd, IDC_PRGROM_COMBO)); + return false; + } } } else { @@ -1154,8 +1157,11 @@ bool WriteHeaderData(HWND hwnd, iNES_HEADER* header) sprintf(buf, "CHR ROM size you entered is invalid in iNES 2.0, do you want to set to its nearest value %s?", buf2); if (MessageBox(hwnd, buf, "Error", MB_YESNO | MB_ICONERROR) == IDYES) SetDlgItemText(hwnd, IDC_CHRROM_COMBO, buf2); - SetFocus(GetDlgItem(hwnd, IDC_CHRROM_COMBO)); - return false; + else + { + SetFocus(GetDlgItem(hwnd, IDC_CHRROM_COMBO)); + return false; + } } } else { @@ -1344,14 +1350,14 @@ bool WriteHeaderData(HWND hwnd, iNES_HEADER* header) int misc_roms = 0; if (sscanf(buf, "%d", &misc_roms) < 1) { - MessageBox(hwnd, "Invalid miscellanous ROM(s) count. If you don't know what value should be, we recommend to set it to 0.", "ERROR", MB_OK | MB_ICONERROR); - SetFocus(GetDlgItem(hwnd, IDC_MISCELLANEOUS_ROMS_TEXT)); + MessageBox(hwnd, "Invalid miscellanous ROM(s) count. If you don't know what value should be, we recommend to set it to 0.", "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_MISCELLANEOUS_ROMS_EDIT)); return false; } if (misc_roms > 3) { MessageBox(hwnd, "Miscellanous ROM(s) count has exceeded the limit of iNES 2.0 (3)", "Error", MB_OK | MB_ICONERROR); - SetFocus(GetDlgItem(hwnd, IDC_MISCELLANEOUS_ROMS_TEXT)); + SetFocus(GetDlgItem(hwnd, IDC_MISCELLANEOUS_ROMS_EDIT)); return false; } _header.reserved[0] |= misc_roms & 3; From 07c897df91dec74c1dff1936816c9b9f5a1ec9e0 Mon Sep 17 00:00:00 2001 From: owomomo Date: Mon, 24 Jun 2019 20:23:11 +0800 Subject: [PATCH 03/19] ... --- src/drivers/win/res.rc | 425 ++++++++++++++++++++++++++++------------- 1 file changed, 292 insertions(+), 133 deletions(-) diff --git a/src/drivers/win/res.rc b/src/drivers/win/res.rc index 4255840f..70d22e6a 100644 --- a/src/drivers/win/res.rc +++ b/src/drivers/win/res.rc @@ -12,7 +12,7 @@ #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// -// English(United States) resources +// English (United States) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US @@ -50,10 +50,14 @@ END // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. IDI_ICON3 ICON "res/taseditor-icon.ico" + IDI_ICON4 ICON "res/taseditor-icon32.ico" + ICON_1 ICON "res/ICON_1.ico" + ICON_2 ICON "res/ICON_2.ico" + ///////////////////////////////////////////////////////////////////////////// // // Menu @@ -709,44 +713,44 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTIO CAPTION "Directories Configuration" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - LTEXT "Base &Directory",IDC_STATIC,10,10,47,8 - EDITTEXT EDIT_ROOT,71,9,158,12,ES_AUTOHSCROLL - PUSHBUTTON "Browse...",BUTTON_ROOT,239,8,56,14 - LTEXT "&Roms",IDC_STATIC,10,28,19,8 - EDITTEXT EDIT_ROM,71,27,158,12,ES_AUTOHSCROLL - PUSHBUTTON "Browse...",BUTTON_ROM,239,26,56,14 - LTEXT "&Battery Saves",IDC_STATIC,10,46,45,8 - EDITTEXT EDIT_BATTERY,71,45,158,12,ES_AUTOHSCROLL - PUSHBUTTON "Browse...",BUTTON_BATTERY,239,44,56,14 - LTEXT "&Save States",IDC_STATIC,10,64,41,9 - EDITTEXT EDIT_STATE,71,63,158,12,ES_AUTOHSCROLL - PUSHBUTTON "Browse...",BUTTON_STATE,239,62,56,14 - LTEXT "&FDS Bios Rom",IDC_STATIC,10,82,47,8 - EDITTEXT EDIT_FDSBIOS,71,81,158,12,ES_AUTOHSCROLL - PUSHBUTTON "Browse...",BUTTON_FDSBIOS,239,80,56,14 - LTEXT "Screens&hots",IDC_STATIC,10,100,40,8 - EDITTEXT EDIT_SCREENSHOT,71,99,158,12,ES_AUTOHSCROLL - PUSHBUTTON "Browse...",BUTTON_SCREENSHOT,239,98,56,14 - LTEXT "Chea&ts",IDC_STATIC,10,118,23,8 - EDITTEXT EDIT_CHEAT,71,117,158,12,ES_AUTOHSCROLL - PUSHBUTTON "Browse...",BUTTON_CHEAT,239,116,56,14 - LTEXT "&Movies",IDC_STATIC,10,136,24,8 - EDITTEXT EDIT_MOVIE,71,135,158,12,ES_AUTOHSCROLL - PUSHBUTTON "Browse...",BUTTON_MOVIE,239,134,56,14 - LTEXT "Memory &Watch",IDC_STATIC,10,154,52,9 - EDITTEXT EDIT_MEMWATCH,71,153,158,12,ES_AUTOHSCROLL - PUSHBUTTON "Browse...",BUTTON_MEMWATCH,239,152,56,14 - LTEXT "&Input Presets",IDC_STATIC,10,172,42,8 - EDITTEXT EDIT_PRESET,71,171,158,12,ES_AUTOHSCROLL - PUSHBUTTON "Browse...",210,239,170,56,14 - LTEXT "&Lua Scripts",IDC_STATIC,10,190,36,8 - EDITTEXT EDIT_LUA,71,189,158,12,ES_AUTOHSCROLL - PUSHBUTTON "Browse...",211,239,188,56,14 - LTEXT "A&vi Output",IDC_STATIC,10,208,34,8 - EDITTEXT EDIT_AVI,71,207,158,12,ES_AUTOHSCROLL - PUSHBUTTON "Browse...",BUTTON_AVI,239,206,56,14 DEFPUSHBUTTON "OK",CLOSE_BUTTON,175,230,56,14 PUSHBUTTON "Cancel",BTN_CANCEL,239,230,56,14 + EDITTEXT 113,71,9,158,12,ES_AUTOHSCROLL + EDITTEXT EDIT_ROMS,71,27,158,12,ES_AUTOHSCROLL + EDITTEXT 101,71,45,158,12,ES_AUTOHSCROLL + EDITTEXT 102,71,63,158,12,ES_AUTOHSCROLL + EDITTEXT 103,71,81,158,12,ES_AUTOHSCROLL + EDITTEXT 104,71,99,158,12,ES_AUTOHSCROLL + EDITTEXT 105,71,117,158,12,ES_AUTOHSCROLL + EDITTEXT 106,71,135,158,12,ES_AUTOHSCROLL + EDITTEXT 107,71,153,158,12,ES_AUTOHSCROLL + EDITTEXT 110,71,171,158,12,ES_AUTOHSCROLL + EDITTEXT 111,71,189,158,12,ES_AUTOHSCROLL + EDITTEXT 112,71,207,158,12,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",213,239,8,56,14 + PUSHBUTTON "Browse...",BUTTON_ROMS,239,26,56,14 + PUSHBUTTON "Browse...",201,239,44,56,14 + PUSHBUTTON "Browse...",202,239,62,56,14 + PUSHBUTTON "Browse...",203,239,80,56,14 + PUSHBUTTON "Browse...",204,239,98,56,14 + PUSHBUTTON "Browse...",205,239,116,56,14 + PUSHBUTTON "Browse...",206,239,134,56,14 + PUSHBUTTON "Browse...",207,239,152,56,14 + PUSHBUTTON "Browse...",210,239,170,56,14 + PUSHBUTTON "Browse...",211,239,188,56,14 + PUSHBUTTON "Browse...",212,239,206,56,14 + LTEXT "Base Directory",IDC_STATIC,10,10,47,8 + LTEXT "Roms",IDC_STATIC,10,28,19,8 + LTEXT "Battery Saves",IDC_STATIC,10,46,45,8 + LTEXT "Save States",IDC_STATIC,10,64,41,9 + LTEXT "FDS Bios Rom",IDC_STATIC,10,82,47,8 + LTEXT "Screenshots",IDC_STATIC,10,100,40,8 + LTEXT "Cheats",IDC_STATIC,10,118,23,8 + LTEXT "Movies",IDC_STATIC,10,136,24,8 + LTEXT "Memory Watch",IDC_STATIC,10,154,52,9 + LTEXT "Input Presets",IDC_STATIC,10,172,42,8 + LTEXT "Lua Scripts",IDC_STATIC,10,190,36,8 + LTEXT "Avi Output",IDC_STATIC,10,208,34,8 END DWBDIALOG DIALOG 33, 99, 250, 56 @@ -876,6 +880,7 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTIO CAPTION "GUI Configuration" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN + DEFPUSHBUTTON "Close",BTN_CLOSE,65,136,56,14 CONTROL "Load ""File Open"" dialog when FCEUX starts.",CB_LOAD_FILE_OPEN, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,8,168,12 CONTROL "Automatically hide menu on game load.",CB_AUTO_HIDE_MENU, @@ -890,35 +895,34 @@ BEGIN CONTROL "Partially disable Visual Themes (Requires restart)",CB_PARTIALVISUALTHEME, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,100,168,12 CONTROL "Single Instance Mode",IDC_SINGLEINSTANCE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,117,167,10 - DEFPUSHBUTTON "Close",BTN_CLOSE,65,136,56,14 END INPUTCONFIG DIALOGEX 122, 105, 349, 199 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Input Configuration" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "Port 1:",102,20,31,152,50 - COMBOBOX COMBO_PAD1,27,57,71,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - DEFPUSHBUTTON "Configure",BTN_PORT1,109,43,56,14 - GROUPBOX "Port 2:",103,176,31,152,50 - COMBOBOX COMBO_PAD2,183,57,71,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - DEFPUSHBUTTON "Configure",BTN_PORT2,265,41,56,14 + COMBOBOX COMBO_PAD1,27,57,74,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "Configure",BTN_PORT1,109,40,56,14 + GROUPBOX "Port 2:",103,176,31,162,50 + COMBOBOX COMBO_PAD2,183,57,84,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "Configure",BTN_PORT2,275,40,56,14 GROUPBOX "NES-style Input Ports",108,10,8,328,83 GROUPBOX "Famicom Expansion Port:",109,176,93,162,50 COMBOBOX COMBO_FAM,183,122,84,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP DEFPUSHBUTTON "Configure",BTN_FAM,275,105,56,14 - CONTROL "",65487,"Static",SS_BLACKFRAME,27,41,71,12 - CONTROL "",65486,"Static",SS_BLACKFRAME,183,41,71,12 + CONTROL "",65487,"Static",SS_BLACKFRAME,27,41,74,12 + CONTROL "",65486,"Static",SS_BLACKFRAME,183,41,84,12 CONTROL "",65485,"Static",SS_BLACKFRAME,183,106,84,12 - CTEXT "",TXT_PAD1,30,42,65,10 - CTEXT "",TXT_PAD2,186,42,65,10 + CTEXT "",TXT_PAD1,30,42,68,10 + CTEXT "",TXT_PAD2,186,42,78,10 CTEXT "",TXT_FAM,186,107,78,10 PUSHBUTTON "Set",BTN_AUTO_HOLD,19,157,45,13 LTEXT "not assigned",LBL_AUTO_HOLD,71,159,87,8 PUSHBUTTON "Clear",BTN_CLEAR_AH,19,172,45,13 LTEXT "not assigned",LBL_CLEAR_AH,71,174,87,8 - DEFPUSHBUTTON "Close",BTN_CLOSE,282,177,56,14 + DEFPUSHBUTTON "Close",BTN_CLOSE,275,177,56,14 GROUPBOX "Input Presets",113,10,93,162,50 CONTROL "Allow Left+Right / Up+Down",BTN_ALLOW_LRUD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,183,157,107,10 PUSHBUTTON "Set",BTN_PRESET_SET1,34,103,37,11 @@ -930,7 +934,7 @@ BEGIN PUSHBUTTON "Export",BTN_PRESET_EXPORT1,123,103,37,11 PUSHBUTTON "Export",BTN_PRESET_EXPORT2,123,115,37,11 PUSHBUTTON "Export",BTN_PRESET_EXPORT3,123,127,37,11 - GROUPBOX "Auto-Hold",118,10,146,162,44 + GROUPBOX "Auto-Hold",118,10,146,162,46 GROUPBOX "Emulation",119,176,146,162,25 CTEXT "1",IDC_STATIC,18,105,8,8 CTEXT "2",IDC_STATIC,18,116,8,8 @@ -946,6 +950,7 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTIO CAPTION "mahjong" FONT 8, "MS Shell Dlg" BEGIN + DEFPUSHBUTTON "Close",BTN_CLOSE,277,91,56,14 GROUPBOX "",321,8,8,324,73,WS_GROUP PUSHBUTTON "A",300,14,42,16,12 PUSHBUTTON "B",301,36,42,16,12 @@ -968,7 +973,6 @@ BEGIN PUSHBUTTON " ",318,212,58,16,12 PUSHBUTTON " ",319,234,58,16,12 PUSHBUTTON " ",320,256,58,16,12 - DEFPUSHBUTTON "Close",BTN_CLOSE,277,91,56,14 END MAPINPUT DIALOGEX 0, 0, 318, 294 @@ -980,8 +984,8 @@ BEGIN PUSHBUTTON "Cancel",BTN_CANCEL,205,274,50,14 CONTROL "List2",LV_MAPPING,"SysListView32",LVS_REPORT | WS_BORDER | WS_TABSTOP,7,7,304,243 PUSHBUTTON "Restore Defaults",BTN_RESTORE_DEFAULTS,7,274,75,14 - RTEXT "Filter:",65484,6,255,21,12,SS_CENTERIMAGE | NOT WS_GROUP COMBOBOX COMBO_FILTER,32,255,279,193,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + RTEXT "Filter:",65484,6,255,21,12,SS_CENTERIMAGE | NOT WS_GROUP END MESSAGELOG DIALOGEX 33, 38, 197, 229 @@ -1031,31 +1035,31 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTIO CAPTION "Palette Configuration" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN + DEFPUSHBUTTON "Close",BUTTON_CLOSE,162,195,56,14 GROUPBOX "NES Palette",302,10,8,102,81,WS_GROUP DEFPUSHBUTTON "&Load Palette...",BTN_PALETTE_LOAD,18,39,58,14 CONTROL "Enabled",CHECK_PALETTE_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,22,87,12 - CTEXT "Tint",65463,123,34,85,8,WS_DISABLED CONTROL "Tint",CTL_TINT_TRACKBAR,"msctls_trackbar32",WS_DISABLED | WS_TABSTOP,121,44,91,11 GROUPBOX "NTSC Color Emulation",101,115,8,103,81,WS_GROUP - CTEXT "Hue",64395,124,59,85,8,WS_DISABLED CONTROL "Hue",CTL_HUE_TRACKBAR,"msctls_trackbar32",WS_DISABLED | WS_TABSTOP,121,69,91,11 + CTEXT "Hue",64395,124,59,85,8,WS_DISABLED + CTEXT "Tint",65463,123,34,85,8,WS_DISABLED CONTROL "Force Grayscale",CHECK_PALETTE_GRAYSCALE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,57,85,12 CONTROL "Use Custom Palette",CHECK_PALETTE_CUSTOM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,22,85,12 GROUPBOX "PAL Emulation",IDC_STATIC,10,89,208,66,WS_DISABLED - LTEXT "Saturation:",STATIC_SATVALUE,83,100,58,8,WS_DISABLED CONTROL "",CTL_PALSAT_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,78,110,70,15 + LTEXT "Saturation:",STATIC_SATVALUE,83,100,58,8,WS_DISABLED PUSHBUTTON "Reset",BTN_PALETTE_RESET,161,132,50,14,WS_DISABLED - LTEXT "Notch:",STATIC_NOTCHVALUE,16,100,46,8,WS_DISABLED CONTROL "",CTL_PALNOTCH_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,11,110,68,15 - LTEXT "Sharpness:",STATIC_SHARPVALUE,161,99,50,8,WS_DISABLED + LTEXT "Notch:",STATIC_NOTCHVALUE,16,100,46,8,WS_DISABLED CONTROL "",CTL_PALSHARP_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,156,109,61,15 + LTEXT "Sharpness:",STATIC_SHARPVALUE,161,99,50,8,WS_DISABLED LTEXT "NTSC Color Emulation overrides Internal default Palette.\nIndividual Game Palette overrides Internal+NTSC Palettes.\nCustom Palette overrides all of the above.\nPAL Emulation overrides other choices when PAL filter is selected",IDC_STATIC,10,159,208,33 - LTEXT "Contrast: ",STATIC_CONTRASTVALUE,16,126,55,8,WS_DISABLED CONTROL "",CTL_PALCONTRAST_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,11,134,67,15 - LTEXT "Brightness: ",STATIC_BRIGHTVALUE,83,125,61,8,WS_DISABLED + LTEXT "Contrast: ",STATIC_CONTRASTVALUE,16,126,55,8,WS_DISABLED CONTROL "",CTL_PALBRIGHT_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,78,133,70,15 + LTEXT "Brightness: ",STATIC_BRIGHTVALUE,83,125,61,8,WS_DISABLED CONTROL "De-emphasis bit swap",CHECK_DEEMPH_SWAP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,73,83,10 - DEFPUSHBUTTON "Close",BUTTON_CLOSE,162,195,56,14 END POWERPADDIALOG DIALOG 30, 123, 131, 119 @@ -1253,16 +1257,16 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_VISIB CAPTION "Timing Configuration" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN + DEFPUSHBUTTON "Close",1,137,87,56,14 CONTROL "Disable speed throttling used when sound is disabled.",CB_DISABLE_SPEED_THROTTLING, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,8,183,12 CONTROL "Set high-priority thread.",CB_SET_HIGH_PRIORITY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,24,102,12 CONTROL "Overclocking (old PPU only).",CB_OVERCLOCKING,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,41,101,10 - LTEXT "Post-render scanlines:",IDC_EXTRA_SCANLINES_TEXT,21,57,74,8,WS_DISABLED EDITTEXT IDC_EXTRA_SCANLINES,104,55,84,14,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED + LTEXT "Post-render scanlines:",IDC_EXTRA_SCANLINES_TEXT,21,57,74,8,WS_DISABLED CONTROL "Don't overclock 7-bit samples.",CB_SKIP_7BIT,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,10,87,111,10 - LTEXT "VBlank scanlines:",IDC_VBLANK_SCANLINES_TEXT,21,71,76,8,WS_DISABLED EDITTEXT IDC_VBLANK_SCANLINES,104,68,84,14,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED - DEFPUSHBUTTON "Close",1,137,87,56,14 + LTEXT "VBlank scanlines:",IDC_VBLANK_SCANLINES_TEXT,21,71,76,8,WS_DISABLED END MOVIEOPTIONS DIALOGEX 65520, 76, 147, 222 @@ -1270,6 +1274,7 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTIO CAPTION "Movie Options" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN + DEFPUSHBUTTON "Close",IDC_MOVIE_CLOSE,48,200,49,14,BS_CENTER CONTROL "Pause after playback",IDC_MOVIE_PAUSEAFTERPLAYBACK, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,26,110,10 CONTROL "Bind savestates to movies",IDC_MOVIE_BINDSAVESTATES, @@ -1289,7 +1294,6 @@ BEGIN CONTROL "Always suggest Read-Only replay",IDC_MOVIE_SUGGEST_READONLY, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,8,125,10 LTEXT "(VBA-rr and SNES9x style)",IDC_STATIC,25,184,93,8 - DEFPUSHBUTTON "Close",IDC_MOVIE_CLOSE,48,200,49,14,BS_CENTER END DWBDIALOGSIMPLE DIALOGEX 33, 99, 250, 39 @@ -1476,7 +1480,7 @@ BEGIN END TRACER DIALOGEX 0, 0, 317, 181 -STYLE DS_SETFONT | DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME +STYLE DS_SETFONT | DS_3DLOOK | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME CAPTION "Trace Logger" FONT 8, "MS Shell Dlg", 400, 0, 0x0 BEGIN @@ -1509,18 +1513,18 @@ BEGIN CONTROL "Only log newly mapped code",IDC_CHECK_LOG_NEW_INSTRUCTIONS, "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,8,162,102,10 CONTROL "Only log code that accesses newly mapped data",IDC_CHECK_LOG_NEW_DATA, - "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,112,162,171,10 + "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,113,162,171,10 CONTROL "Log Bank number",IDC_CHECK_LOG_BANK_NUMBER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,211,121,100,10 END -ADDBP DIALOGEX 66, 83, 197, 125 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +ADDBP DIALOGEX 66, 83, 197, 127 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Add Breakpoint..." FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN LTEXT "&Address:",-1,14,6,30,10 - CTEXT "-",65534,78,6,8,8 EDITTEXT IDC_ADDBP_ADDR_START,48,4,30,12,ES_UPPERCASE | ES_WANTRETURN + CTEXT "-",65534,78,6,8,8 EDITTEXT IDC_ADDBP_ADDR_END,87,4,30,12,ES_UPPERCASE | ES_WANTRETURN CONTROL "&Forbid",IDC_ADDBP_MODE_F,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,154,6,33,12 GROUPBOX "",112,3,18,185,50,WS_TABSTOP @@ -1569,7 +1573,7 @@ BEGIN END ROMPATCHER DIALOGEX 84, 67, 304, 135 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Rom Data Editor" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN @@ -1663,16 +1667,16 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPT CAPTION "Find" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN - LTEXT "Find &What:",-1,7,9,38,8 EDITTEXT IDC_MEMVIEWFIND_WHAT,47,7,171,14,ES_AUTOHSCROLL + LTEXT "Find What:",-1,7,9,38,8 GROUPBOX "Type",-1,83,29,187,45 - CONTROL "&Hex",IDC_MEMVIEWFIND_TYPE_HEX,"Button",BS_AUTORADIOBUTTON | WS_GROUP,93,43,29,10 - CONTROL "&Text (Uses Currently Loaded Table as Reference)",IDC_MEMVIEWFIND_TYPE_TEXT, + CONTROL "Hex",IDC_MEMVIEWFIND_TYPE_HEX,"Button",BS_AUTORADIOBUTTON | WS_GROUP,93,43,29,10 + CONTROL "Text (Uses Currently Loaded Table as Reference)",IDC_MEMVIEWFIND_TYPE_TEXT, "Button",BS_AUTORADIOBUTTON,93,56,172,10 GROUPBOX "Direction",-1,9,29,65,44 - CONTROL "&Up",IDC_MEMVIEWFIND_DIR_UP,"Button",BS_AUTORADIOBUTTON | WS_GROUP,18,43,25,10 - CONTROL "&Down",IDC_MEMVIEWFIND_DIR_DOWN,"Button",BS_AUTORADIOBUTTON,18,56,35,10 - DEFPUSHBUTTON "&Find Next",IDC_MEMVIEWFIND_NEXT,225,7,50,14 + CONTROL "Up",IDC_MEMVIEWFIND_DIR_UP,"Button",BS_AUTORADIOBUTTON | WS_GROUP,18,43,25,10 + CONTROL "Down",IDC_MEMVIEWFIND_DIR_DOWN,"Button",BS_AUTORADIOBUTTON,18,56,35,10 + DEFPUSHBUTTON "Find Next",IDC_MEMVIEWFIND_NEXT,225,7,50,14 END IDD_RECORDINP DIALOGEX 0, 0, 276, 86 @@ -1680,16 +1684,16 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTI CAPTION "Record input" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN + DEFPUSHBUTTON "OK",1,167,66,50,14 GROUPBOX "",65501,3,0,269,60 - RTEXT "&File:",65500,28,11,24,10,SS_CENTERIMAGE | NOT WS_GROUP,WS_EX_RIGHT + RTEXT "File:",65500,28,11,24,10,SS_CENTERIMAGE | NOT WS_GROUP,WS_EX_RIGHT + PUSHBUTTON "Cancel",2,221,66,50,14 EDITTEXT IDC_EDIT_FILENAME,55,10,189,12,ES_AUTOHSCROLL PUSHBUTTON "...",IDC_BUTTON_BROWSEFILE,249,10,18,14 - RTEXT "&Record From:",65498,9,27,43,8,0,WS_EX_RIGHT COMBOBOX IDC_COMBO_RECORDFROM,55,25,189,154,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - RTEXT "&Author:",65502,18,43,34,10,SS_CENTERIMAGE | NOT WS_GROUP,WS_EX_RIGHT + RTEXT "Record From:",65498,9,27,43,8,0,WS_EX_RIGHT EDITTEXT IDC_EDIT_AUTHOR,55,41,189,14,ES_AUTOHSCROLL - DEFPUSHBUTTON "OK",1,167,66,50,14 - PUSHBUTTON "Cancel",2,221,66,50,14 + RTEXT "Author:",65502,18,43,34,10,SS_CENTERIMAGE | NOT WS_GROUP,WS_EX_RIGHT END IDD_REPLAYINP DIALOGEX 0, 0, 300, 202 @@ -1697,36 +1701,36 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTI CAPTION "Play Movie" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - GROUPBOX "",65497,3,0,293,179 + DEFPUSHBUTTON "OK",1,189,183,50,14 + GROUPBOX "",65497,3,0,293,180 RTEXT "File:",65498,8,11,24,10,SS_CENTERIMAGE | NOT WS_GROUP COMBOBOX IDC_COMBO_FILENAME,35,10,257,128,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Cancel",2,243,183,50,14 RTEXT "Length:",64397,10,67,59,8 - EDITTEXT IDC_LABEL_LENGTH,76,67,59,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP RTEXT "Frames:",65496,10,78,59,8 - EDITTEXT IDC_LABEL_FRAMES,76,78,59,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP RTEXT "Record Count:",65495,10,89,59,8 - EDITTEXT IDC_LABEL_UNDOCOUNT,76,89,59,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP RTEXT "ROM Used:",65493,10,111,59,8 - EDITTEXT IDC_LABEL_ROMUSED,76,111,187,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP RTEXT "ROM Checksum:",65492,10,122,59,8 - EDITTEXT IDC_LABEL_ROMCHECKSUM,76,122,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP RTEXT "Recorded From:",65491,10,100,59,8 - EDITTEXT IDC_LABEL_RECORDEDFROM,76,100,123,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP RTEXT "Emulator Used:",65490,10,144,59,8 - EDITTEXT IDC_LABEL_EMULATORUSED,76,144,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP RTEXT "Current ROM Sum:",65489,8,133,61,8 - EDITTEXT IDC_LABEL_CURRCHECKSUM,76,133,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP CONTROL "Pause movie at frame",IDC_CHECK_STOPMOVIE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,49,83,10 EDITTEXT IDC_EDIT_STOPFRAME,103,47,39,12,ES_AUTOHSCROLL | ES_NUMBER GROUPBOX "Parameters",IDC_STATIC,13,25,278,40 PUSHBUTTON "Metadata...",IDC_BUTTON_METADATA,239,71,50,14 + EDITTEXT IDC_LABEL_EMULATORUSED,76,144,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP + EDITTEXT IDC_LABEL_CURRCHECKSUM,76,133,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP + EDITTEXT IDC_LABEL_ROMCHECKSUM,76,122,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP + EDITTEXT IDC_LABEL_ROMUSED,76,111,187,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP + EDITTEXT IDC_LABEL_RECORDEDFROM,76,100,123,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP CONTROL "Open &Read-Only",IDC_CHECK_READONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,36,69,10 + EDITTEXT IDC_LABEL_UNDOCOUNT,76,89,59,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP + EDITTEXT IDC_LABEL_FRAMES,76,78,59,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP + EDITTEXT IDC_LABEL_LENGTH,76,67,59,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP RTEXT "Pal:",65494,10,155,59,8 EDITTEXT IDC_LABEL_PALUSED,76,155,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP RTEXT "New PPU:",65499,10,166,59,8 EDITTEXT IDC_LABEL_NEWPPUUSED,76,166,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP - DEFPUSHBUTTON "OK",1,189,183,50,14 - PUSHBUTTON "Cancel",2,243,183,50,14 END TASEDITOR DIALOGEX 0, 0, 326, 348 @@ -1798,16 +1802,16 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTI CAPTION "Create New Project" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN + DEFPUSHBUTTON "OK",IDOK,7,80,50,14 + PUSHBUTTON "Cancel",IDCANCEL,114,80,50,14 CONTROL " Copy current Input",IDC_COPY_INPUT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,80,14,75,10 CONTROL " 1 player",IDC_RADIO_1PLAYER,"Button",BS_AUTORADIOBUTTON,16,14,45,10 CONTROL " 2 players",IDC_RADIO_2PLAYERS,"Button",BS_AUTORADIOBUTTON,16,27,45,10 CONTROL " Fourscore",IDC_RADIO_FOURSCORE,"Button",BS_AUTORADIOBUTTON,16,40,45,10 CONTROL " Copy current Markers",IDC_COPY_MARKERS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,80,27,83,10 GROUPBOX "Input type",IDC_STATIC,5,3,67,52,BS_CENTER - LTEXT "Author:",IDC_STATIC,8,63,26,9 EDITTEXT IDC_EDIT_AUTHOR,36,61,127,13,ES_AUTOHSCROLL - DEFPUSHBUTTON "OK",IDOK,7,80,50,14 - PUSHBUTTON "Cancel",IDCANCEL,114,80,50,14 + LTEXT "Author:",IDC_STATIC,8,63,26,9 END IDD_TASEDITOR_EXPORT DIALOGEX 0, 0, 158, 86 @@ -1815,13 +1819,13 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIB CAPTION "Export to FM2" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN + DEFPUSHBUTTON "Export",IDOK,7,66,50,14 + PUSHBUTTON "Cancel",IDCANCEL,100,66,50,14 CONTROL " 1 player",IDC_RADIO_1PLAYER,"Button",BS_AUTORADIOBUTTON | WS_GROUP,8,8,47,10 CONTROL " 2 players",IDC_RADIO_2PLAYERS,"Button",BS_AUTORADIOBUTTON,8,21,47,10 CONTROL " Fourscore",IDC_RADIO_FOURSCORE,"Button",BS_AUTORADIOBUTTON,8,35,47,10 CONTROL " Convert Marker Notes to Movie Subtitles",IDC_NOTES_TO_SUBTITLES, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,50,146,10 - DEFPUSHBUTTON "Export",IDOK,7,66,50,14 - PUSHBUTTON "Cancel",IDCANCEL,100,66,50,14 END IDD_TASEDITOR_FINDNOTE DIALOGEX 0, 0, 228, 49 @@ -1962,7 +1966,7 @@ BEGIN LISTBOX IDC_LIST1,7,7,251,120,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -TEXTHOOKER DIALOGEX 0, 0, 456, 327 +TEXTHOOKER DIALOGEX 0, 0, 437, 314 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_ACCEPTFILES CAPTION "Text Hooker" @@ -2058,16 +2062,16 @@ CAPTION "Lua Script" MENU LUAWINDOW_MENU FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN - LTEXT "Script File:",IDC_STATIC,7,7,36,8 - EDITTEXT IDC_EDIT_LUAPATH,7,16,256,14,ES_AUTOHSCROLL PUSHBUTTON "&Browse...",IDC_BUTTON_LUABROWSE,7,31,48,16 - PUSHBUTTON "Edit",IDC_BUTTON_LUAEDIT,58,31,46,16 - PUSHBUTTON "&Stop",IDC_BUTTON_LUASTOP,160,31,50,16 PUSHBUTTON "&Run",IDC_BUTTON_LUARUN,213,31,50,16 - LTEXT "Output Console:",IDC_STATIC,7,70,56,8 - EDITTEXT IDC_LUACONSOLE,7,80,256,60,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL - LTEXT "Arguments:",IDC_STATIC,7,52,40,8 + PUSHBUTTON "&Stop",IDC_BUTTON_LUASTOP,160,31,50,16 + EDITTEXT IDC_EDIT_LUAPATH,7,16,256,14,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_LUAARGS,47,50,216,14,ES_AUTOHSCROLL + EDITTEXT IDC_LUACONSOLE,7,80,256,60,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL + LTEXT "Output Console:",IDC_STATIC,7,70,56,8 + LTEXT "Script File:",IDC_STATIC,7,7,36,8 + LTEXT "Arguments:",IDC_STATIC,7,52,40,8 + PUSHBUTTON "Edit",IDC_BUTTON_LUAEDIT,58,31,46,16 END VIDEOCONFIG DIALOGEX 65520, 76, 511, 170 @@ -2107,12 +2111,12 @@ BEGIN COMBOBOX IDC_VIDEOCONFIG_SYNC_METHOD_WIN,236,106,103,47,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP GROUPBOX "Drawing Area",65494,351,50,154,65,WS_GROUP LTEXT "First line:",65436,367,68,40,9 - CTEXT "NTSC",65434,413,57,27,8 - EDITTEXT IDC_SCANLINE_FIRST_NTSC,414,66,27,12,ES_RIGHT | ES_NUMBER - CTEXT "PAL/Dendy",65433,455,57,48,8 - EDITTEXT IDC_SCANLINE_FIRST_PAL,465,66,27,12,ES_RIGHT | ES_NUMBER LTEXT "Last line:",65435,367,84,40,9 + CTEXT "NTSC",65434,413,57,27,8 + CTEXT "PAL/Dendy",65433,455,57,48,8 + EDITTEXT IDC_SCANLINE_FIRST_NTSC,414,66,27,12,ES_RIGHT | ES_NUMBER EDITTEXT IDC_SCANLINE_LAST_NTSC,414,83,27,12,ES_RIGHT | ES_NUMBER + EDITTEXT IDC_SCANLINE_FIRST_PAL,465,66,27,12,ES_RIGHT | ES_NUMBER EDITTEXT IDC_SCANLINE_LAST_PAL,465,83,27,12,ES_RIGHT | ES_NUMBER CONTROL "Clip left and right sides (8 px on each)",IDC_VIDEOCONFIG_CLIPSIDES, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,357,98,140,12 @@ -2131,8 +2135,8 @@ BEGIN EDITTEXT IDC_TVASPECT_Y,458,28,41,12,ES_AUTOHSCROLL | WS_DISABLED CTEXT "/",IDC_STATIC_SLASHTEXT,449,31,8,8,WS_DISABLED LTEXT "DirectDraw:",65454,11,126,46,10 - COMBOBOX IDC_VIDEOCONFIG_DIRECTDRAW_FS,59,123,105,50,CBS_DROPDOWNLIST | WS_TABSTOP LTEXT "DirectDraw:",65455,188,125,46,10 + COMBOBOX IDC_VIDEOCONFIG_DIRECTDRAW_FS,59,123,105,50,CBS_DROPDOWNLIST | WS_TABSTOP COMBOBOX IDC_VIDEOCONFIG_DIRECTDRAW_WIN,236,123,103,47,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP END @@ -2194,13 +2198,13 @@ BEGIN PUSHBUTTON "Remove",IDC_C_WATCH_REMOVE,226,83,34,14 PUSHBUTTON "New",IDC_C_WATCH,226,100,34,14 PUSHBUTTON "Duplicate",IDC_C_WATCH_DUPLICATE,226,117,34,14 - PUSHBUTTON "Add Cheat",IDC_C_ADDCHEAT,223,168,42,16,WS_DISABLED - GROUPBOX "Watches",IDC_STATIC,222,11,42,145 + PUSHBUTTON "Add Cheat",IDC_C_ADDCHEAT,222,163,42,16,WS_DISABLED + GROUPBOX "Watches",IDC_STATIC,222,6,42,152 CONTROL "",ID_WATCHES_UPDOWN,"msctls_updown32",WS_TABSTOP,232,23,19,36 PUSHBUTTON "Separator",IDC_C_WATCH_SEPARATE,225,137,36,14 END -IDD_EDITWATCH DIALOGEX 0, 0, 181, 95 +IDD_EDITWATCH DIALOGEX 0, 0, 177, 115 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION " Edit Watch" FONT 8, "MS Shell Dlg", 400, 0, 0x1 @@ -2209,16 +2213,17 @@ BEGIN EDITTEXT IDC_EDIT_COMPAREADDRESS,48,10,65,12,ES_UPPERCASE | ES_AUTOHSCROLL CTEXT "&Notes:",IDC_PROMPT_TEXT,23,24,22,8 EDITTEXT IDC_PROMPT_EDIT,48,22,119,12,ES_AUTOHSCROLL - GROUPBOX "Data Type",IDC_DATATYPE_GROUPBOX,14,37,75,42,0,WS_EX_TRANSPARENT + GROUPBOX "Data Type",IDC_DATATYPE_GROUPBOX,14,37,75,53,0,WS_EX_TRANSPARENT CONTROL "&Signed",IDC_SIGNED,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,18,47,67,9 CONTROL "&Unsigned",IDC_UNSIGNED,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,18,57,67,9 CONTROL "&Hexadecimal",IDC_HEX,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,18,67,67,9 - GROUPBOX "Data Size",IDC_DATASIZE_GROUPBOX,94,37,73,42,0,WS_EX_TRANSPARENT + CONTROL "&Binary",IDC_BINARY,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,18,77,67,9 + GROUPBOX "Data Size",IDC_DATASIZE_GROUPBOX,94,37,73,52,0,WS_EX_TRANSPARENT CONTROL "&1 byte",IDC_1_BYTE,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,98,47,61,11 CONTROL "&2 bytes",IDC_2_BYTES,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,98,57,61,11 CONTROL "&4 bytes",IDC_4_BYTES,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,98,67,61,11 - DEFPUSHBUTTON "OK",IDOK,66,80,50,14 - PUSHBUTTON "Cancel",IDCANCEL,120,80,50,14 + DEFPUSHBUTTON "&OK",IDOK,66,93,50,14 + PUSHBUTTON "&Cancel",IDCANCEL,118,93,50,14 END DLG_SNESPAD DIALOGEX 4, 109, 243, 121 @@ -2278,16 +2283,16 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSM CAPTION "Symbolic Debug Naming" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN - LTEXT "File",IDC_STATIC,7,7,15,9 - EDITTEXT IDC_SYMBOLIC_FILENAME,24,6,215,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP - LTEXT "Address",IDC_STATIC,6,26,30,10 - EDITTEXT IDC_SYMBOLIC_ADDRESS,38,24,33,13,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP - LTEXT "Name",IDC_STATIC,83,26,22,10 - EDITTEXT IDC_SYMBOLIC_NAME,107,24,132,13,ES_AUTOHSCROLL - LTEXT "Comment",IDC_STATIC,6,45,37,10 - EDITTEXT IDC_SYMBOLIC_COMMENT,45,43,194,13,ES_AUTOHSCROLL DEFPUSHBUTTON "OK",IDOK,132,62,50,14 PUSHBUTTON "Cancel",IDCANCEL,189,62,50,14 + LTEXT "File",IDC_STATIC,7,7,15,9 + EDITTEXT IDC_SYMBOLIC_ADDRESS,38,24,33,13,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP + LTEXT "Address",IDC_STATIC,6,26,30,10 + EDITTEXT IDC_SYMBOLIC_NAME,107,24,132,13,ES_AUTOHSCROLL + LTEXT "Name",IDC_STATIC,83,26,22,10 + LTEXT "Comment",IDC_STATIC,6,45,37,10 + EDITTEXT IDC_SYMBOLIC_COMMENT,45,43,194,13,ES_AUTOHSCROLL + EDITTEXT IDC_SYMBOLIC_FILENAME,24,6,215,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP END IDD_REPLAY_METADATA DIALOGEX 0, 0, 325, 250 @@ -2296,7 +2301,7 @@ CAPTION "Movie Metadata" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN DEFPUSHBUTTON "Close",IDCANCEL,268,229,50,14 - CONTROL "",IDC_LIST1,"SysListView32",LVS_REPORT | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,7,7,311,214 + CONTROL "",IDC_LIST1,"SysListView32",LVS_REPORT | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,7,7,311,214 END IDD_EDIT_HEADER DIALOGEX 0, 0, 321, 258 @@ -2353,7 +2358,7 @@ BEGIN COMBOBOX IDC_VS_PPU_COMBO,155,154,140,30,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_DISABLED | WS_VSCROLL | WS_TABSTOP CONTROL "iNES 1.0 Unofficial Properties",IDC_CHECK_UNOFFICIAL, "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_DISABLED | WS_TABSTOP,14,164,103,10 - GROUPBOX "iNES 1.0 Unofficial Properties",IDC_UNOFFICIAL_GROUP,13,176,104,35,WS_DISABLED + GROUPBOX "iNES 1.0 Unofficial Properties",IDC_UNOFFICIAL_GROUP,13,176,105,35,WS_DISABLED CONTROL "Dual region",IDC_CHECK_UNOFFICIAL_EXTRA_REGION,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_DISABLED | WS_TABSTOP,19,186,48,10 CONTROL "PRG RAM exists",IDC_CHECK_UNOFFICIAL_PRGRAM,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_DISABLED | WS_TABSTOP,70,188,43,17 CONTROL "Bus conflict",IDC_CHECK_UNOFFICIAL_BUS_CONFLICT,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_DISABLED | WS_TABSTOP,19,198,49,10 @@ -2363,7 +2368,7 @@ BEGIN EDITTEXT IDC_MISCELLANEOUS_ROMS_EDIT,14,215,12,14,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED PUSHBUTTON "Restore",IDC_RESTORE_BUTTON,6,237,44,14,WS_DISABLED PUSHBUTTON "Save as...",IDSAVE,223,237,44,14,WS_DISABLED - DEFPUSHBUTTON "Close",IDCLOSE,270,237,44,14 + DEFPUSHBUTTON "Close",IDCLOSE,271,237,44,14 END @@ -2426,6 +2431,14 @@ BEGIN BOTTOMMARGIN, 209 END + "POWERPADDIALOG", DIALOG + BEGIN + END + + "QUIZKINGDIALOG", DIALOG + BEGIN + END + "SOUNDCONFIG", DIALOG BEGIN LEFTMARGIN, 10 @@ -2434,6 +2447,10 @@ BEGIN BOTTOMMARGIN, 274 END + "SUBORKBDIALOG", DIALOG + BEGIN + END + "TIMINGCONFIG", DIALOG BEGIN LEFTMARGIN, 10 @@ -2472,13 +2489,17 @@ BEGIN "ADDBP", DIALOG BEGIN RIGHTMARGIN, 195 - BOTTOMMARGIN, 123 + BOTTOMMARGIN, 125 END "NTVIEW", DIALOG BEGIN END + "ROMPATCHER", DIALOG + BEGIN + END + "GGCONV", DIALOG BEGIN END @@ -2568,9 +2589,9 @@ BEGIN "TEXTHOOKER", DIALOG BEGIN LEFTMARGIN, 7 - RIGHTMARGIN, 449 + RIGHTMARGIN, 430 TOPMARGIN, 7 - BOTTOMMARGIN, 320 + BOTTOMMARGIN, 307 END "CHEATCONSOLE", DIALOG @@ -2579,6 +2600,10 @@ BEGIN BOTTOMMARGIN, 225 END + IDD_LUA, DIALOG + BEGIN + END + "VIDEOCONFIG", DIALOG BEGIN END @@ -2593,7 +2618,7 @@ BEGIN IDD_EDITWATCH, DIALOG BEGIN - BOTTOMMARGIN, 94 + BOTTOMMARGIN, 112 END DLG_SNESPAD, DIALOG @@ -2693,6 +2718,36 @@ BEGIN 0 END +INPUTCONFIG AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +IDD_REPLAYINP AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +IDD_RAMWATCH AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +TRACER AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +TEXTHOOKER AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +ROMPATCHER AFX_DIALOG_LAYOUT +BEGIN + 0 +END + ///////////////////////////////////////////////////////////////////////////// // @@ -2761,110 +2816,214 @@ END // IDB_BITMAP0 BITMAP "res\\te_0.bmp" + IDB_BITMAP1 BITMAP "res\\te_1.bmp" + IDB_BITMAP2 BITMAP "res\\te_2.bmp" + IDB_BITMAP3 BITMAP "res\\te_3.bmp" + IDB_BITMAP4 BITMAP "res\\te_4.bmp" + IDB_BITMAP5 BITMAP "res\\te_5.bmp" + IDB_BITMAP6 BITMAP "res\\te_6.bmp" + IDB_BITMAP7 BITMAP "res\\te_7.bmp" + IDB_BITMAP8 BITMAP "res\\te_8.bmp" + IDB_BITMAP9 BITMAP "res\\te_9.bmp" + IDB_BITMAP10 BITMAP "res\\te_10.bmp" + IDB_BITMAP11 BITMAP "res\\te_11.bmp" + IDB_BITMAP12 BITMAP "res\\te_12.bmp" + IDB_BITMAP13 BITMAP "res\\te_13.bmp" + IDB_BITMAP14 BITMAP "res\\te_14.bmp" + IDB_BITMAP15 BITMAP "res\\te_15.bmp" + IDB_BITMAP16 BITMAP "res\\te_16.bmp" + IDB_BITMAP17 BITMAP "res\\te_17.bmp" + IDB_BITMAP18 BITMAP "res\\te_18.bmp" + IDB_BITMAP19 BITMAP "res\\te_19.bmp" + IDB_TE_ARROW BITMAP "res\\te_arrow.bmp" + IDB_TE_GREEN_ARROW BITMAP "res\\te_green_arrow.bmp" + IDB_TE_GREEN_BLUE_ARROW BITMAP "res\\te_green_blue_arrow.bmp" + IDB_PIANO_0 BITMAP "res\\te_piano_0.bmp" + IDB_PIANO_1 BITMAP "res\\te_piano_1.bmp" + IDB_PIANO_2 BITMAP "res\\te_piano_2.bmp" + IDB_PIANO_3 BITMAP "res\\te_piano_3.bmp" + IDB_PIANO_4 BITMAP "res\\te_piano_4.bmp" + IDB_PIANO_5 BITMAP "res\\te_piano_5.bmp" + IDB_PIANO_6 BITMAP "res\\te_piano_6.bmp" + IDB_PIANO_7 BITMAP "res\\te_piano_7.bmp" + IDB_PIANO_8 BITMAP "res\\te_piano_8.bmp" + IDB_PIANO_9 BITMAP "res\\te_piano_9.bmp" + IDB_PIANO_10 BITMAP "res\\te_piano_10.bmp" + IDB_PIANO_11 BITMAP "res\\te_piano_11.bmp" + IDB_PIANO_12 BITMAP "res\\te_piano_12.bmp" + IDB_PIANO_13 BITMAP "res\\te_piano_13.bmp" + IDB_PIANO_14 BITMAP "res\\te_piano_14.bmp" + IDB_PIANO_15 BITMAP "res\\te_piano_15.bmp" + IDB_PIANO_16 BITMAP "res\\te_piano_16.bmp" + IDB_PIANO_17 BITMAP "res\\te_piano_17.bmp" + IDB_PIANO_18 BITMAP "res\\te_piano_18.bmp" + IDB_PIANO_19 BITMAP "res\\te_piano_19.bmp" + IDB_PIANO_PLAYBACK_0 BITMAP "res\\te_piano_0_playback.bmp" + IDB_PIANO_PLAYBACK_1 BITMAP "res\\te_piano_1_playback.bmp" + IDB_PIANO_PLAYBACK_2 BITMAP "res\\te_piano_2_playback.bmp" + IDB_PIANO_PLAYBACK_3 BITMAP "res\\te_piano_3_playback.bmp" + IDB_PIANO_PLAYBACK_4 BITMAP "res\\te_piano_4_playback.bmp" + IDB_PIANO_PLAYBACK_5 BITMAP "res\\te_piano_5_playback.bmp" + IDB_PIANO_PLAYBACK_6 BITMAP "res\\te_piano_6_playback.bmp" + IDB_PIANO_PLAYBACK_7 BITMAP "res\\te_piano_7_playback.bmp" + IDB_PIANO_PLAYBACK_8 BITMAP "res\\te_piano_8_playback.bmp" + IDB_PIANO_PLAYBACK_9 BITMAP "res\\te_piano_9_playback.bmp" + IDB_PIANO_PLAYBACK_10 BITMAP "res\\te_piano_10_playback.bmp" + IDB_PIANO_PLAYBACK_11 BITMAP "res\\te_piano_11_playback.bmp" + IDB_PIANO_PLAYBACK_12 BITMAP "res\\te_piano_12_playback.bmp" + IDB_PIANO_PLAYBACK_13 BITMAP "res\\te_piano_13_playback.bmp" + IDB_PIANO_PLAYBACK_14 BITMAP "res\\te_piano_14_playback.bmp" + IDB_PIANO_PLAYBACK_15 BITMAP "res\\te_piano_15_playback.bmp" + IDB_PIANO_PLAYBACK_16 BITMAP "res\\te_piano_16_playback.bmp" + IDB_PIANO_PLAYBACK_17 BITMAP "res\\te_piano_17_playback.bmp" + IDB_PIANO_PLAYBACK_18 BITMAP "res\\te_piano_18_playback.bmp" + IDB_PIANO_PLAYBACK_19 BITMAP "res\\te_piano_19_playback.bmp" + IDB_PIANO_LOSTPOS_0 BITMAP "res\\te_piano_0_lostpos.bmp" + IDB_PIANO_LOSTPOS_1 BITMAP "res\\te_piano_1_lostpos.bmp" + IDB_PIANO_LOSTPOS_2 BITMAP "res\\te_piano_2_lostpos.bmp" + IDB_PIANO_LOSTPOS_3 BITMAP "res\\te_piano_3_lostpos.bmp" + IDB_PIANO_LOSTPOS_4 BITMAP "res\\te_piano_4_lostpos.bmp" + IDB_PIANO_LOSTPOS_5 BITMAP "res\\te_piano_5_lostpos.bmp" + IDB_PIANO_LOSTPOS_6 BITMAP "res\\te_piano_6_lostpos.bmp" + IDB_PIANO_LOSTPOS_7 BITMAP "res\\te_piano_7_lostpos.bmp" + IDB_PIANO_LOSTPOS_8 BITMAP "res\\te_piano_8_lostpos.bmp" + IDB_PIANO_LOSTPOS_9 BITMAP "res\\te_piano_9_lostpos.bmp" + IDB_PIANO_LOSTPOS_10 BITMAP "res\\te_piano_10_lostpos.bmp" + IDB_PIANO_LOSTPOS_11 BITMAP "res\\te_piano_11_lostpos.bmp" + IDB_PIANO_LOSTPOS_12 BITMAP "res\\te_piano_12_lostpos.bmp" + IDB_PIANO_LOSTPOS_13 BITMAP "res\\te_piano_13_lostpos.bmp" + IDB_PIANO_LOSTPOS_14 BITMAP "res\\te_piano_14_lostpos.bmp" + IDB_PIANO_LOSTPOS_15 BITMAP "res\\te_piano_15_lostpos.bmp" + IDB_PIANO_LOSTPOS_16 BITMAP "res\\te_piano_16_lostpos.bmp" + IDB_PIANO_LOSTPOS_17 BITMAP "res\\te_piano_17_lostpos.bmp" + IDB_PIANO_LOSTPOS_18 BITMAP "res\\te_piano_18_lostpos.bmp" + IDB_PIANO_LOSTPOS_19 BITMAP "res\\te_piano_19_lostpos.bmp" + IDB_BITMAP_SELECTED0 BITMAP "res\\te_0_selected.bmp" + IDB_BITMAP_SELECTED1 BITMAP "res\\te_1_selected.bmp" + IDB_BITMAP_SELECTED2 BITMAP "res\\te_2_selected.bmp" + IDB_BITMAP_SELECTED3 BITMAP "res\\te_3_selected.bmp" + IDB_BITMAP_SELECTED4 BITMAP "res\\te_4_selected.bmp" + IDB_BITMAP_SELECTED5 BITMAP "res\\te_5_selected.bmp" + IDB_BITMAP_SELECTED6 BITMAP "res\\te_6_selected.bmp" + IDB_BITMAP_SELECTED7 BITMAP "res\\te_7_selected.bmp" + IDB_BITMAP_SELECTED8 BITMAP "res\\te_8_selected.bmp" + IDB_BITMAP_SELECTED9 BITMAP "res\\te_9_selected.bmp" + IDB_BITMAP_SELECTED10 BITMAP "res\\te_10_selected.bmp" + IDB_BITMAP_SELECTED11 BITMAP "res\\te_11_selected.bmp" + IDB_BITMAP_SELECTED12 BITMAP "res\\te_12_selected.bmp" + IDB_BITMAP_SELECTED13 BITMAP "res\\te_13_selected.bmp" + IDB_BITMAP_SELECTED14 BITMAP "res\\te_14_selected.bmp" + IDB_BITMAP_SELECTED15 BITMAP "res\\te_15_selected.bmp" + IDB_BITMAP_SELECTED16 BITMAP "res\\te_16_selected.bmp" + IDB_BITMAP_SELECTED17 BITMAP "res\\te_17_selected.bmp" + IDB_BITMAP_SELECTED18 BITMAP "res\\te_18_selected.bmp" + IDB_BITMAP_SELECTED19 BITMAP "res\\te_19_selected.bmp" + IDB_BRANCH_SPRITESHEET BITMAP "res\\branch_spritesheet.bmp" -#endif // English(United States) resources + +#endif // English (United States) resources ///////////////////////////////////////////////////////////////////////////// From 25b67593f6f80649babf0dbe236aba3efb3a1427 Mon Sep 17 00:00:00 2001 From: owomomo Date: Mon, 24 Jun 2019 20:25:08 +0800 Subject: [PATCH 04/19] ... --- src/drivers/win/resource.h | 2284 ++++++++++++++++++------------------ 1 file changed, 1129 insertions(+), 1155 deletions(-) diff --git a/src/drivers/win/resource.h b/src/drivers/win/resource.h index 2206e9d1..50d1f1c3 100644 --- a/src/drivers/win/resource.h +++ b/src/drivers/win/resource.h @@ -1,1155 +1,1129 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file -// for res.rc -// -#define CLOSE_BUTTON 1 -#define BUTTON_CLOSE 1 -#define BTN_CLOSE 1 -#define MENU_OPEN_FILE 100 -#define EDIT_ROM 100 -#define LBL_LOG_TEXT 100 -#define LBL_KEY_COMBO 100 -#define LBL_CDLOGGER_CODECOUNT 100 -#define CHECK_PALETTE_ENABLED 100 -#define LBL_DWBDIALOG_TEXT 100 -#define GRP_GAMEPAD1 100 -#define IDC_TRACER_LOG 100 -#define MENU_MV_FILE_SAVE 100 -#define IDC_ROMPATCHER_OFFSET_BOX 100 -#define IDC_ASSEMBLER_HISTORY 100 -#define MENU_CLOSE_FILE 101 -#define CB_DISABLE_SPEED_THROTTLING 101 -#define LBL_CDLOGGER_DATACOUNT 101 -#define GRP_PPUVIEW_TABLES 101 -#define IDC_NETMOO_STATUS 101 -#define GRP_GAMEPAD2 101 -#define IDC_LIST_CHEATS 101 -#define IDC_SCRL_TRACER_LOG 101 -#define MENU_MV_FILE_SAVE_AS 101 -#define IDC_VIDEOCONFIG_FS 101 -#define IDC_DEBUGGER_BP_ADD 101 -#define IDC_ROMPATCHER_DOTNES_OFFSET 101 -#define IDC_NTVIEW_TABLE_BOX 101 -#define IDC_ASSEMBLER_DISASSEMBLY 101 -#define EDIT_BATTERY 101 -#define MENU_RECENT_FILES 102 -#define CB_LOAD_FILE_OPEN 102 -#define LBL_CDLOGGER_UNDEFCOUNT 102 -#define IDC_PPUVIEW_SCANLINE 102 -#define IDC_NETMOO_CMD_INPUT 102 -#define IDC_CHEAT_ADDR 102 -#define IDC_BTN_START_STOP_LOGGING 102 -#define MENU_MV_FILE_LOAD_TBL 102 -#define IDC_VIDEOCONFIG_AUTO_FS 102 -#define IDC_DEBUGGER_BP_DEL 102 -#define IDC_ADDBP_MODE_R 102 -#define IDC_ROMPATCHER_OFFSET 102 -#define IDC_NTVIEW_SCANLINE 102 -#define IDC_ASSEMBLER_PATCH_DISASM 102 -#define CHECK_PALETTE_GRAYSCALE 102 -#define EDIT_STATE 102 -#define BTN_CDLOGGER_RESET 103 -#define LBL_PPUVIEW_TILE1 103 -#define IDC_CHEAT_VAL 103 -#define IDC_RADIO_LOG_LAST 103 -#define MENU_MV_FILE_UNLOAD_TBL 103 -#define IDC_DEBUGGER_BP_EDIT 103 -#define IDC_ADDBP_MODE_W 103 -#define IDC_ROMPATCHER_BTN_EDIT 103 -#define IDC_NTVIEW_PROPERTIES_LINE_1 103 -#define IDC_VIDEOCONFIG_HIDEMOUSE 103 -#define EDIT_FDSBIOS 103 -#define CB_AUTO_HIDE_MENU 104 -#define COMBO_PAD1 104 -#define BTN_CDLOGGER_LOAD 104 -#define LBL_PPUVIEW_TILE2 104 -#define IDC_CHEAT_NAME 104 -#define IDC_RADIO_LOG_TO_FILE 104 -#define MENU_MV_FILE_DUMP_RAM 104 -#define IDC_VIDEOCONFIG_SYNC_METHOD_WIN 104 -#define IDC_DEBUGGER_RUN 104 -#define IDC_ADDBP_MODE_X 104 -#define IDC_ROMPATCHER_CURRENT_DATA_BOX 104 -#define IDC_NTVIEW_PROPERTIES_LINE_2 104 -#define CHECK_PALETTE_CUSTOM 104 -#define EDIT_SCREENSHOT 104 -#define COMBO_PAD2 105 -#define CB_SET_HIGH_PRIORITY 105 -#define BTN_CDLOGGER_START_PAUSE 105 -#define LBL_PPUVIEW_PALETTES 105 -#define IDC_CHEAT_VAL_KNOWN 105 -#define MENU_MV_FILE_DUMP_PPU 105 -#define IDC_VIDEOCONFIG_SYNC_METHOD_FS 105 -#define IDC_DEBUGGER_STEP_IN 105 -#define IDC_TRACER_LOG_SIZE 105 -#define IDC_ADDBP_MEM_CPU 105 -#define IDC_ROMPATCHER_CURRENT_DATA 105 -#define IDC_NTVIEW_PROPERTIES_LINE_3 105 -#define EDIT_CHEAT 105 -#define BTN_PORT1 106 -#define BTN_CDLOGGER_SAVE_AS 106 -#define IDC_CHEAT_LIST_POSSIBILITIES 106 -#define IDC_VIDEOCONFIG_CLIPSIDES 106 -#define IDC_DEBUGGER_STEP_OUT 106 -#define IDC_ADDBP_MEM_PPU 106 -#define IDC_NTVIEW_PROPERTIES_LINE_4 106 -#define IDC_TEXT_LINES_TO_THIS_WINDOW 106 -#define EDIT_MOVIE 106 -#define BTN_PORT2 107 -#define BTN_CDLOGGER_SAVE 107 -#define IDC_DEBUGGER_STEP_OVER 107 -#define IDC_ADDBP_MEM_SPR 107 -#define IDC_ROMPATCHER_DISASSEMBLY 107 -#define IDC_VIDEOCONFIG_BESTFIT 107 -#define EDIT_MEMWATCH 107 -#define IDR_ACCELERATOR1 108 -#define BTN_CDLOGGER_SAVE_STRIPPED 108 -#define IDC_CHEAT_VAL_NE_BY 108 -#define IDC_DEBUGGER_SEEK_PC 108 -#define IDR_TASEDITOR_ACCELERATORS 108 -#define IDC_VIDEOCONFIG_CONSOLE_BGCOLOR 108 -#define EDIT_BOT 108 -#define IDC_CHEAT_VAL_GT_BY 109 -#define IDC_DEBUGGER_SEEK_TO 109 -#define IDC_ROMPATCHER_PATCH_DATA 109 -#define IDC_ADDBP_MODE_F 109 -#define BTN_CDLOGGER_SAVE_UNUSED 109 -#define IDC_VIDEOCONFIG_TVASPECT 109 -#define IDC_GROUP_LOG_OPTIONS 109 -#define EDIT_MACRO 109 -#define IDC_CHEAT_VAL_LT_BY 110 -#define MENU_SAVE_STATE 110 -#define CB_ASK_EXIT 110 -#define COMBO_FAM 110 -#define IDB_TE_ARROW 110 -#define IDC_CHECK_LOG_REGISTERS 110 -#define IDC_DEBUGGER_BREAK_ON_BAD_OP 110 -#define IDC_ROMPATCHER_BTN_APPLY 110 -#define LBL_CDLOGGER_RENDERCOUNT 110 -#define IDC_VIDEOCONFIG_SQUARE_PIXELS 110 -#define EDIT_PRESET 110 -#define MENU_LOAD_STATE 111 -#define CB_DISABLE_SCREEN_SAVER 111 -#define BTN_FAM 111 -#define IDC_CHECK_LOG_PROCESSOR_STATUS 111 -#define IDC_DEBUGGER_RELOAD_SYMS 111 -#define IDC_ROMPATCHER_BTN_SAVE 111 -#define IDC_CHEAT_COM 111 -#define IDC_VIDEOCONFIG_DIRECTDRAW_FS 111 -#define EDIT_LUA 111 -#define BTN_AUTO_HOLD 112 -#define IDC_BTN_LOG_BROWSE 112 -#define IDC_DEBUGGER_BOOKMARK_ADD 112 -#define IDC_VIDEOCONFIG_DIRECTDRAW_WIN 112 -#define EDIT_AVI 112 -#define IDC_DEBUGGER_BOOKMARK_DEL 113 -#define IDC_EXTRA_LOG_OPTIONS 113 -#define EDIT_ROOT 113 -#define BTN_CLEAR_AH 114 -#define IDC_CHECK_LOG_NEW_INSTRUCTIONS 114 -#define IDC_DEBUGGER_RUN_LINE 114 -#define LBL_CDLOGGER_VROMREADCOUNT 114 -#define LBL_AUTO_HOLD 115 -#define IDC_CHECK_LOG_NEW_DATA 115 -#define IDC_DEBUGGER_RUN_FRAME2 115 -#define LBL_CDLOGGER_UNDEFVROMCOUNT 115 -#define LBL_CLEAR_AH 116 -#define IDC_CHECK_LOG_UPDATE_WINDOW 116 -#define IDC_DEBUGGER_RESET_COUNTERS 116 -#define CHEAT_CONTEXT_LIST_TOGGLECHEAT 117 -#define IDC_DEBUGGER_BREAK_ON_CYCLES 117 -#define IDC_CHECK_CODE_TABBING 117 -#define CHEAT_CONTEXT_LIST_POKECHEATVALUE 118 -#define IDC_CHECK_LOG_STATUSES_TO_THE_LEFT 118 -#define IDC_DEBUGGER_BOOKMARK_NAME 118 -#define CHEAT_CONTEXT_LIST_GOTOINHEXEDITOR 119 -#define IDC_DEBUGGER_BREAK_ON_INSTRUCTIONS 119 -#define IDC_CHECK_LOG_FRAMES_COUNT 119 -#define IDC_CHECK_LOG_CYCLES_COUNT 120 -#define CHEAT_CONTEXT_LIST_DELETESELECTEDCHEATS 120 -#define IDC_CHECK_LOG_INSTRUCTIONS_COUNT 121 -#define COMBO_SOUND_8BIT 122 -#define IDC_CHECK_SYMBOLIC_TRACING 123 -#define CHECK_SOUND_GLOBAL_FOCUS 124 -#define IDC_CHECK_LOG_MESSAGES 124 -#define IDC_CHECK_LOG_BREAKPOINTS 125 -#define CHECK_SOUND_ENABLED 126 -#define CTL_LATENCY_TRACKBAR 128 -#define COMBO_SOUND_QUALITY 129 -#define CHECK_SOUND_MUTEFA 130 -#define DEBUGGER_CONTEXT_TOGGLEBREAK 132 -#define MENU_RECORD_MOVIE 141 -#define MENU_REPLAY_MOVIE 142 -#define MENU_STOP_MOVIE 143 -#define MENU_RECORD_AVI 151 -#define MENU_STOP_AVI 152 -#define MENU_EXIT 153 -#define IDD_RAMSEARCH 154 -#define IDD_RAMWATCH 155 -#define IDD_EDITWATCH 156 -#define IDR_RWACCELERATOR 158 -#define IDD_LUA 159 -#define IDB_BITMAP0 163 -#define IDB_BITMAP1 164 -#define IDB_BITMAP2 165 -#define IDB_BITMAP3 166 -#define IDB_BITMAP4 167 -#define IDB_BITMAP5 168 -#define IDB_BITMAP6 169 -#define IDB_BITMAP7 170 -#define IDB_BITMAP8 171 -#define IDB_BITMAP9 172 -#define IDB_BITMAP10 173 -#define IDB_BITMAP11 174 -#define IDB_BITMAP12 175 -#define IDB_BITMAP13 176 -#define IDB_BITMAP14 177 -#define IDB_BITMAP15 178 -#define IDB_BITMAP16 179 -#define IDB_BITMAP17 180 -#define IDB_BITMAP18 181 -#define IDB_BITMAP19 182 -#define IDB_BRANCH_SPRITESHEET 184 -#define IDD_TASEDITOR_SAVECOMPACT 195 -#define IDD_TASEDITOR_EXPORT 196 -#define IDI_ICON3 197 -#define IDD_TASEDITOR_FINDNOTE 198 -#define IDD_TASEDITOR_ABOUT 199 -#define MENU_RESET 200 -#define BUTTON_ROM 200 -#define TXT_PAD1 200 -#define BTN_RESTORE_DEFAULTS 200 -#define BTN_CLEAR 200 -#define IDC_EDIT_FILENAME 200 -#define IDC_COMBO_FILENAME 200 -#define BTN_PALETTE_LOAD 200 -#define IDC_NETMOO_HOST 200 -#define COMBO_SOUND_RATE 200 -#define MENU_MV_EDIT_UNDO 200 -#define IDC_VIDEOCONFIG_XRES 200 -#define IDC_DEBUGGER_FLAG_N 200 -#define IDC_ADDBP_ADDR_START 200 -#define MENU_POWER 201 -#define IDC_GROUPBOX_CHEATLIST 201 -#define TXT_PAD2 201 -#define IDC_BUTTON_BROWSEFILE 201 -#define IDC_CHECK_READONLY 201 -#define BTN_PALETTE_RESET 201 -#define CTL_PPUVIEW_TRACKBAR 201 -#define IDC_NETMOO_PORT 201 -#define MENU_MV_EDIT_COPY 201 -#define IDC_VIDEOCONFIG_YRES 201 -#define IDC_DEBUGGER_FLAG_V 201 -#define IDC_ADDBP_ADDR_END 201 -#define IDC_NTVIEW_REFRESH_TRACKBAR 201 -#define IDC_ASSEMBLER_APPLY 201 -#define IDI_ICON4 201 -#define BTN_OK 201 -#define BUTTON_BATTERY 201 -#define MENU_EJECT_DISK 202 -#define TXT_FAM 202 -#define MENU_MV_EDIT_PASTE 202 -#define IDC_VIDEOCONFIG_BPP 202 -#define IDC_DEBUGGER_FLAG_U 202 -#define IDC_ADDBP_CONDITION 202 -#define IDC_ASSEMBLER_SAVE 202 -#define IDD_TASEDITOR_NEWPROJECT 202 -#define IDC_GROUPBOX_CHEATSEARCH 202 -#define BUTTON_STATE 202 -#define MENU_SWITCH_DISK 203 -#define IDC_NETMOO_NICK 203 -#define IDC_CHEAT_BOX_POSSIBILITIES 203 -#define MENU_MV_EDIT_FIND 203 -#define IDC_DEBUGGER_FLAG_B 203 -#define IDC_ADDBP_NAME 203 -#define IDC_ASSEMBLER_UNDO 203 -#define BUTTON_FDSBIOS 203 -#define MENU_INSERT_COIN 204 -#define COMBO_NETMOO_LOCAL_PLAYERS 204 -#define IDC_DEBUGGER_FLAG_D 204 -#define IDC_GROUP_PREV_COM 204 -#define BUTTON_SCREENSHOT 204 -#define IDC_NETMOO_KEY 205 -#define IDC_DEBUGGER_FLAG_I 205 -#define IDB_TE_GREEN_ARROW 205 -#define BUTTON_CHEAT 205 -#define IDC_NETMOO_PASS 206 -#define IDC_DEBUGGER_FLAG_Z 206 -#define BUTTON_MOVIE 206 -#define IDC_DEBUGGER_FLAG_C 207 -#define BUTTON_MEMWATCH 207 -#define IDC_DEBUGGER_ENABLE_SYMBOLIC 208 -#define IDB_TE_GREEN_BLUE_ARROW 208 -#define BUTTON_BOT 208 -#define IDB_PIANO_0 209 -#define IDC_DEBUGGER_ROM_OFFSETS 209 -#define BUTTON_MACRO 209 -#define IDB_PIANO_1 210 -#define BUTTON_PRESET 210 -#define IDB_PIANO_2 211 -#define BUTTON_LUA 211 -#define IDB_PIANO_3 212 -#define BUTTON_AVI 212 -#define IDB_PIANO_4 213 -#define BUTTON_ROOT 213 -#define IDB_PIANO_5 214 -#define IDB_PIANO_6 215 -#define IDB_PIANO_7 216 -#define IDB_PIANO_8 217 -#define IDB_PIANO_9 218 -#define IDB_PIANO_10 219 -#define IDB_PIANO_11 220 -#define IDB_PIANO_12 221 -#define IDB_PIANO_13 222 -#define IDB_PIANO_14 223 -#define IDB_PIANO_15 224 -#define IDB_PIANO_16 225 -#define IDB_PIANO_17 226 -#define IDB_PIANO_18 227 -#define IDB_PIANO_19 228 -#define IDB_PIANO_PLAYBACK_0 229 -#define IDB_PIANO_PLAYBACK_1 230 -#define IDB_PIANO_PLAYBACK_2 231 -#define IDB_PIANO_PLAYBACK_3 232 -#define IDB_PIANO_PLAYBACK_4 233 -#define IDB_PIANO_PLAYBACK_5 234 -#define IDB_PIANO_PLAYBACK_6 235 -#define IDB_PIANO_PLAYBACK_7 236 -#define IDB_PIANO_PLAYBACK_8 237 -#define IDB_PIANO_PLAYBACK_9 238 -#define IDB_PIANO_PLAYBACK_10 239 -#define IDB_PIANO_PLAYBACK_11 240 -#define IDB_PIANO_PLAYBACK_12 241 -#define IDB_PIANO_PLAYBACK_13 242 -#define IDB_PIANO_PLAYBACK_14 243 -#define IDB_PIANO_PLAYBACK_15 244 -#define IDB_PIANO_PLAYBACK_16 245 -#define IDB_PIANO_PLAYBACK_17 246 -#define IDB_PIANO_PLAYBACK_18 247 -#define IDB_PIANO_PLAYBACK_19 248 -#define IDB_PIANO_LOSTPOS_0 249 -#define IDB_PIANO_LOSTPOS_1 250 -#define BTN_NETMOO_CONNECT 250 -#define IDB_PIANO_LOSTPOS_2 251 -#define IDB_PIANO_LOSTPOS_3 252 -#define IDB_PIANO_LOSTPOS_4 253 -#define IDB_PIANO_LOSTPOS_5 254 -#define IDB_PIANO_LOSTPOS_6 255 -#define IDB_PIANO_LOSTPOS_7 256 -#define IDB_PIANO_LOSTPOS_8 257 -#define IDB_PIANO_LOSTPOS_9 258 -#define IDB_PIANO_LOSTPOS_10 259 -#define IDB_PIANO_LOSTPOS_11 260 -#define IDB_PIANO_LOSTPOS_12 261 -#define IDB_PIANO_LOSTPOS_13 262 -#define IDB_PIANO_LOSTPOS_14 263 -#define IDB_PIANO_LOSTPOS_15 264 -#define IDB_PIANO_LOSTPOS_16 265 -#define IDB_PIANO_LOSTPOS_17 266 -#define IDB_PIANO_LOSTPOS_18 267 -#define IDB_PIANO_LOSTPOS_19 268 -#define IDB_BITMAP_SELECTED0 269 -#define IDB_BITMAP_SELECTED1 270 -#define IDB_BITMAP_SELECTED2 271 -#define IDB_BITMAP_SELECTED3 272 -#define IDB_BITMAP_SELECTED4 273 -#define IDB_BITMAP_SELECTED5 274 -#define IDB_BITMAP_SELECTED6 275 -#define IDB_BITMAP_SELECTED7 276 -#define IDB_BITMAP_SELECTED8 277 -#define IDB_BITMAP_SELECTED9 278 -#define IDB_BITMAP_SELECTED10 279 -#define IDB_BITMAP_SELECTED11 280 -#define IDB_BITMAP_SELECTED12 281 -#define IDB_BITMAP_SELECTED13 282 -#define IDB_BITMAP_SELECTED14 283 -#define IDB_BITMAP_SELECTED15 284 -#define IDB_BITMAP_SELECTED16 285 -#define IDB_BITMAP_SELECTED17 286 -#define IDB_BITMAP_SELECTED18 287 -#define IDB_BITMAP_SELECTED19 288 -#define IDD_TASEDITOR_SAVINGOPTIONS 289 -#define IDD_SYMBOLIC_DEBUG_NAMING 290 -#define DLG_SNESPAD 291 -#define MENU_HIDE_MENU 300 -#define COMBO_FILTER 300 -#define IDC_LABEL_LENGTH 300 -#define MENU_MV_VIEW_RAM 300 -#define IDC_DEBUGGER_DISASSEMBLY 300 -#define IDC_ASSEMBLER_DEFPUSHBUTTON 300 -#define MENU_RUN_IN_BACKGROUND 301 -#define IDC_COMBO_RECORDFROM 301 -#define IDC_LABEL_FRAMES 301 -#define IDC_BTN_CHEAT_ADD 301 -#define MENU_MV_VIEW_PPU 301 -#define IDC_DEBUGGER_DISASSEMBLY_VSCR 301 -#define MENU_BACKGROUND_INPUT 302 -#define IDC_LABEL_UNDOCOUNT 302 -#define IDC_BTN_CHEAT_DEL 302 -#define IDC_DEBUGGER_BP_LIST 302 -#define MENU_MV_VIEW_OAM 302 -#define MENU_MV_VIEW_ROM 303 -#define IDC_BTN_CHEAT_UPD 303 -#define IDC_DEBUGGER_DISASSEMBLY_LEFT_PANEL 303 -#define IDD_EDIT_HEADER 303 -#define MENU_ENABLE_AUTOSAVE 304 -#define IDC_LABEL_ROMUSED 304 -#define IDC_BTN_CHEAT_RESET 304 -#define IDC_VIDEOCONFIG_SCALER_FS 304 -#define IDC_DEBUGGER_VAL_A 304 -#define IDC_LABEL_ROMCHECKSUM 305 -#define IDC_BTN_CHEAT_KNOWN 305 -#define IDC_DEBUGGER_VAL_X 305 -#define IDC_LABEL_RECORDEDFROM 306 -#define IDC_BTN_CHEAT_EQ 306 -#define IDC_DEBUGGER_VAL_Y 306 -#define IDC_LABEL_EMULATORUSED 307 -#define IDC_BTN_CHEAT_NE 307 -#define IDC_DEBUGGER_VAL_PC 307 -#define IDC_LABEL_CURRCHECKSUM 308 -#define IDC_BTN_CHEAT_GT 308 -#define IDC_DEBUGGER_STACK_CONTENTS 308 -#define IDC_BTN_CHEAT_LT 309 -#define IDC_DEBUGGER_VAL_PCSEEK 309 -#define IDC_LABEL_PALUSED 309 -#define MENU_GAME_GENIE 310 -#define IDC_DEBUGGER_VAL_PPU 310 -#define IDC_LABEL_NEWPPUUSED 310 -#define IDC_DEBUGGER_VAL_SPR 311 -#define IDC_BTN_CHEAT_ADDFROMFILE 311 -#define IDC_DEBUGGER_BOOKMARK 312 -#define IDC_DEBUGGER_CYCLES_EXCEED 313 -#define IDC_DEBUGGER_INSTRUCTIONS_EXCEED 314 -#define MENU_DIRECTORIES 320 -#define MENU_INPUT 321 -#define MENU_GUI_OPTIONS 327 -#define MENU_NTSC 330 -#define MENU_PAL 331 -#define MENU_DENDY 332 -#define MENU_MV_BOOKMARKS_RM_ALL 400 -#define IDC_WINSIZE_MUL_X 400 -#define IDC_CHEAT_CHECK_NE_BY 401 -#define IDC_WINSIZE_MUL_Y 401 -#define CHECK_ENABLE_FOURSCORE 401 -#define IDC_CHEAT_CHECK_GT_BY 402 -#define IDC_FORCE_INT_VIDEO_SCALARS 402 -#define IDC_DEBUGGER_BREAKPOINTS 402 -#define IDC_CHEAT_CHECK_LT_BY 403 -#define IDC_FORCE_ASPECT_CORRECTION 403 -#define IDC_DEBUGGER_VAL_S 403 -#define IDC_TVASPECT_X 404 -#define IDC_DEBUGGER_VAL_S2 405 -#define IDC_TVASPECT_Y 405 -#define IDC_VIDEOCONFIG_SCALER_WIN 406 -#define CHECK_ENABLE_MICROPHONE 407 -#define CTL_TINT_TRACKBAR 500 -#define CTL_VOLUME_TRACKBAR 500 -#define IDC_SCANLINE_FIRST_NTSC 500 -#define IDC_SCANLINE_LAST_NTSC 501 -#define CTL_HUE_TRACKBAR 501 -#define IDC_DEBUGGER_VAL_SLINE 501 -#define CTL_VOLUME_TRACKBAR_TRIANGLE 501 -#define IDC_SCANLINE_FIRST_PAL 502 -#define IDC_DEBUGGER_ADDR_LINE 502 -#define CTL_VOLUME_TRACKBAR_SQUARE1 502 -#define IDC_SCANLINE_LAST_PAL 503 -#define CTL_VOLUME_TRACKBAR_SQUARE2 503 -#define IDC_DEBUGGER_VAL_CYCLES_COUNT 503 -#define CTL_VOLUME_TRACKBAR_NOISE 504 -#define IDC_DEBUGGER_VAL_PPUPIXEL 504 -#define CTL_VOLUME_TRACKBAR_PCM 505 -#define IDC_DEBUGGER_VAL_CYCLES_COUNT2 505 -#define IDC_DEBUGGER_VAL_INSTRUCTIONS_COUNT 506 -#define IDC_DEBUGGER_VAL_INSTRUCTIONS_COUNT2 507 -#define IDC_VIDEOCONFIG_NO8LIM 600 -#define IDC_DEBUGGER_ROM_PATCHER 602 -#define LIST_DEBUGGER_BOOKMARKS 701 -#define BTN_CANCEL 800 -#define IDC_GAME_GENIE_CODE 1000 -#define IDC_MEMVIEWFIND_WHAT 1000 -#define IDC_BOOKMARK_DESCRIPTION 1000 -#define MW_NAME00 1000 -#define MW_ADDR00 1001 -#define IDC_MEMVIEWFIND_TYPE_HEX 1001 -#define IDC_NTVIEW_MIRROR_HORIZONTAL 1001 -#define IDC_CHECK_STOPMOVIE 1002 -#define IDC_GAME_GENIE_COMP 1002 -#define IDC_MEMVIEWFIND_TYPE_TEXT 1002 -#define IDC_NTVIEW_MIRROR_VERTICAL 1002 -#define MW_VAL00 1002 -#define LV_MAPPING 1003 -#define IDC_EDIT_STOPFRAME 1003 -#define IDC_GAME_GENIE_VAL 1003 -#define IDC_MEMVIEWFIND_DIR_UP 1003 -#define IDC_NTVIEW_MIRROR_FOUR_SCREEN 1003 -#define MW_NAME01 1003 -#define MW_ADDR01 1004 -#define IDC_LIST_GGADDRESSES 1004 -#define IDC_MEMVIEWFIND_DIR_DOWN 1004 -#define IDC_NTVIEW_MIRROR_SS_TABLE_0 1004 -#define IDC_BTN_ADD_TO_CHEATS 1005 -#define IDC_MEMVIEWFIND_NEXT 1005 -#define IDC_NTVIEW_MIRROR_SS_TABLE_1 1005 -#define MW_VAL01 1005 -#define IDC_NTVIEW_MIRROR_SS_TABLE_2 1006 -#define MW_NAME02 1006 -#define MW_ADDR02 1007 -#define IDC_NTVIEW_MIRROR_SS_TABLE_3 1007 -#define IDC_NTVIEW_SHOW_SCROLL_LINES 1008 -#define MW_VAL02 1008 -#define IDC_NTVIEW_SHOW_ATTRIBUTES 1009 -#define MW_NAME03 1009 -#define IDC_NTVIEW_HIDE_PALETTES 1010 -#define MW_ADDR03 1010 -#define IDC_BTN_CHEAT_EXPORTTOFILE 1011 -#define MW_VAL03 1011 -#define IDSAVE 1012 -#define MW_NAME04 1012 -#define MW_ADDR04 1013 -#define IDC_CHECK1 1013 -#define IDC_CHEAT_AUTOLOADSAVE 1013 -#define IDC_RESTORE_BUTTON 1014 -#define MW_VAL04 1014 -#define MW_NAME05 1015 -#define MW_ADDR05 1016 -#define MW_VAL05 1017 -#define IDC_PRGROM_COMBO 1018 -#define MW_NAME06 1018 -#define MW_ADDR06 1019 -#define IDC_CHRROM_COMBO 1019 -#define IDC_RADIO_MIRR_HORIZONTAL 1020 -#define MW_VAL06 1020 -#define IDC_RADIO_MIRR_VERTICAL 1021 -#define MW_NAME07 1021 -#define MW_ADDR07 1022 -#define IDC_RADIO_MIRR_4SCREEN 1022 -#define MW_VAL07 1023 -#define IDC_CHECK_TRAINER 1024 -#define MW_NAME08 1024 -#define MW_ADDR08 1025 -#define IDC_PRGRAM_COMBO 1025 -#define IDC_MAPPER_COMBO 1026 -#define MW_VAL08 1026 -#define IDC_SUBMAPPER_EDIT 1027 -#define MW_NAME09 1027 -#define MW_ADDR09 1028 -#define IDC_CHRRAM_COMBO 1028 -#define IDC_PRGNVRAM_COMBO 1029 -#define MW_VAL09 1029 -#define IDC_CHRNVRAM_COMBO 1030 -#define MW_NAME10 1030 -#define MW_ADDR10 1031 -#define IDC_RADIO_REGION_NTSC 1031 -#define IDC_RADIO_REGION_PAL 1032 -#define MW_VAL10 1032 -#define IDC_RADIO_REGION_DUAL 1033 -#define MW_NAME11 1033 -#define MW_ADDR11 1034 -#define MW_VAL11 1035 -#define IDC_INPUT_DEVICE_COMBO 1036 -#define MW_NAME12 1036 -#define MW_ADDR12 1037 -#define IDC_RADIO_REGION_DENDY 1037 -#define IDC_RADIO_SYSTEM_NORMAL 1038 -#define MW_VAL12 1038 -#define IDC_RADIO_SYSTEM_VS 1039 -#define MW_NAME13 1039 -#define MW_ADDR13 1040 -#define IDC_RADIO_SYSTEM_PLAYCHOICE10 1040 -#define IDC_RADIO_SYSTEM_EXTEND 1041 -#define MW_VAL13 1041 -#define MW_NAME14 1042 -#define MW_ADDR14 1043 -#define IDC_SYSTEM_EXTEND_COMBO 1043 -#define MW_VAL14 1044 -#define MW_NAME15 1045 -#define MW_ADDR15 1046 -#define IDC_VS_SYSTEM_COMBO 1046 -#define IDC_VS_PPU_COMBO 1047 -#define MW_VAL15 1047 -#define MW_NAME16 1048 -#define MW_ADDR16 1049 -#define IDC_MAPPER_TEXT 1049 -#define IDC_SUBMAPPER_TEXT 1050 -#define MW_VAL16 1050 -#define IDC_PRGROM_TEXT 1051 -#define MW_NAME17 1051 -#define MW_ADDR17 1052 -#define IDC_CHRROM_TEXT 1053 -#define MW_VAL17 1053 -#define MW_NAME18 1054 -#define MW_ADDR18 1055 -#define IDC_PRGRAM_TEXT 1055 -#define MW_VAL18 1056 -#define IDC_CHRRAM_TEXT 1057 -#define MW_NAME19 1057 -#define MW_ADDR19 1058 -#define IDC_PRGNVRAM_TEXT 1059 -#define MW_VAL19 1059 -#define IDC_CHRNVRAM_TEXT 1060 -#define MW_NAME20 1060 -#define MW_ADDR20 1061 -#define MW_VAL20 1062 -#define IDC_INESHEADER_GROUP 1063 -#define MW_NAME21 1063 -#define MW_ADDR21 1064 -#define IDC_MIRRORING_GROUP 1064 -#define IDC_REGION_GROUP 1065 -#define MW_VAL21 1065 -#define IDC_SYSTEM_GROUP 1066 -#define MW_NAME22 1066 -#define MW_ADDR22 1067 -#define IDC_VS_SYSTEM_GROUP 1067 -#define IDC_VS_SYSTEM_TEXT 1068 -#define MW_VAL22 1068 -#define IDC_VS_PPU_TEXT 1069 -#define MW_NAME23 1069 -#define MW_ADDR23 1070 -#define IDC_RADIO_VERSION_STANDARD 1071 -#define MW_VAL23 1071 -#define IDC_RADIO_VERSION_INES20 1073 -#define IDC_VERSION_GROUP 1074 -#define IDC_MAPPER_GROUP 1075 -#define IDC_CHECK_BATTERYNVRAM 1076 -#define IDC_INPUT_DEVICE_TEXT 1077 -#define IDC_PRG_GROUP 1078 -#define IDC_CHR_GROUP 1079 -#define IDC_UNOFFICIAL_GROUP 1081 -#define IDC_CHECK_UNOFFICIAL_PRGRAM 1082 -#define IDC_CHECK_UNOFFICIAL_EXTRA_REGION 1083 -#define IDC_CHECK_UNOFFICIAL_BUS_CONFLICT 1084 -#define IDC_CHECK_UNOFFICIAL 1085 -#define IDC_MISCELLANEOUS_ROMS_TEXT 1086 -#define IDC_MISCELLANEOUS_ROMS_EDIT 1087 -#define IDC_EXTEND_SYSTEM_GROUP 1089 -#define IDC_EXTEND_SYSTEM_TEXT 1090 -#define IDC_BUTTON1 1094 -#define IDC_CHEAT_SWITCH 1096 -#define IDC_CHEAT_GLOBAL_SWITCH 1096 -#define IDC_GAME_GENIE_LABEL 1097 -#define IDC_CHEAT_GAME_GENIE_TEXT 1098 -#define IDC_CHECK2 1099 -#define BTN_ALLOW_LRUD 1117 -#define IDC_PRGROM_EDIT 1118 -#define IDC_CHRROM_EDIT 1119 -#define BTN_PRESET_SET1 1119 -#define BTN_PRESET_SET2 1120 -#define BTN_PRESET_SET3 1121 -#define BTN_PRESET_IMPORT1 1122 -#define BTN_PRESET_IMPORT2 1123 -#define BTN_PRESET_IMPORT3 1124 -#define IDC_PRGRAM_EDIT 1125 -#define BTN_PRESET_EXPORT1 1125 -#define BTN_PRESET_EXPORT2 1126 -#define BTN_PRESET_EXPORT3 1127 -#define IDC_CHRRAM_EDIT 1128 -#define IDC_PRGNVRAM_EDIT 1129 -#define IDC_CHRNVRAM_EDIT 1130 -#define IDC_LIST1 1130 -#define IDC_BUTTON_METADATA 1132 -#define MEMW_EXPANDCOLLAPSE 1133 -#define IDC_SOUND_RESTOREDEFAULTVOL 1133 -#define TASEDITOR_REWIND 1133 -#define TASEDITOR_FORWARD 1134 -#define TASEDITOR_REWIND_FULL 1135 -#define TASEDITOR_FORWARD_FULL 1136 -#define TASEDITOR_PLAYSTOP 1137 -#define IDC_RADIO_GREENZONE_SAVINGMODE_ALLFRAMES 1138 -#define IDC_RADIO_UP 1138 -#define IDC_RADIO_ALL 1139 -#define IDC_RADIO_GREENZONE_SAVINGMODE_EVERY16FRAME 1139 -#define IDC_RADIO_1P 1140 -#define IDC_RADIO_GREENZONE_SAVINGMODE_MARKEDFRAMES 1140 -#define IDC_RADIO_2P 1141 -#define IDC_RADIO_GREENZONE_SAVINGMODE_DONTSAVE 1141 -#define MEMW_EDIT00FORMULA 1142 -#define IDC_RADIO_3P 1142 -#define MEMW_EDIT01FORMULA 1143 -#define IDC_RADIO_4P 1143 -#define IDC_PROGRESS_BUTTON 1144 -#define MEMW_EDIT02FORMULA 1144 -#define MEMW_EDIT03FORMULA 1145 -#define TASEDITOR_PREV_MARKER 1145 -#define TASEDITOR_FIND_BEST_SIMILAR_MARKER 1146 -#define IDC_SELECTION_MARKER_EDIT 1147 -#define IDC_NOTE_TO_FIND 1147 -#define IDC_AUTOSAVE_PERIOD 1147 -#define IDC_EXTRA_SCANLINES 1147 -#define IDC_CHEAT_TEXT 1147 -#define TASEDITOR_FIND_NEXT_SIMILAR_MARKER 1148 -#define IDC_SYMBOLIC_ADDRESS 1148 -#define IDC_VBLANK_SCANLINES 1148 -#define IDC_HISTORYLIST 1149 -#define IDC_SYMBOLIC_NAME 1149 -#define IDC_BOOKMARKSLIST 1150 -#define IDC_SYMBOLIC_FILENAME 1150 -#define TASEDITOR_NEXT_MARKER 1151 -#define IDC_SYMBOLIC_COMMENT 1151 -#define IDC_BRANCHES_BUTTON 1152 -#define IDC_PLAYBACK_MARKER_EDIT 1154 -#define TASEDITOR_RUN_MANUAL 1156 -#define CHECK_SOUND_MUTETURBO 1179 -#define IDC_EDIT_AUTHOR 1180 -#define MEMW_EDIT00RESET 1184 -#define MEMW_EDIT01RESET 1185 -#define MEMW_EDIT02RESET 1186 -#define MEMW_EDIT03RESET 1187 -#define MEMW_EDIT00RMADDRESS 1188 -#define MEMW_EDIT01RMADDRESS 1189 -#define MEMW_EDIT02RMADDRESS 1190 -#define MEMW_EDIT03RMADDRESS 1191 -#define IDC_DEBUGGER_RESTORESIZE 1191 -#define IDC_MOVIE_CLOSE 1192 -#define EDIT00_RESULTS 1193 -#define IDC_MOVIE_PAUSEAFTERPLAYBACK 1193 -#define EDIT01_RESULTS 1194 -#define IDC_MOVIE_BINDSAVESTATES 1194 -#define EDIT02_RESULTS 1195 -#define EDIT03_RESULTS 1196 -#define IDC_MOVIE_DISPLAYSUBTITLES 1196 -#define IDC_MOVIE_SUBTITLESINAVI 1197 -#define IDC_MOVIE_AUTOBACKUP 1198 -#define ID_SOUND_TRITOP 1201 -#define IDC_MOVIE_SUGGEST_READONLY 1201 -#define ID_SOUND_QUALITYNOTIFY 1202 -#define CB_ENABLECONTEXTMENU 1203 -#define DEBUGAUTOLOAD 1203 -#define IDC_CHEAT_PAUSEWHENACTIVE 1203 -#define IDC_FULLSAVESTATES 1203 -#define IDC_SUPERIMPOSE 1203 -#define IDC_CHECK_BINARY 1203 -#define IDC_NOTES_TO_SUBTITLES 1203 -#define IDC_MATCH_CASE 1203 -#define IDC_COPY_INPUT 1203 -#define IDC_AUTORESUMECDLOGGING 1203 -#define IDC_MASK_UNUSED_GRAPHICS 1203 -#define CHECK_SOUND_SWAPDUTY 1203 -#define CB_OVERCLOCKING 1203 -#define CHECK_DEEMPH_SWAP 1203 -#define IDC_CHECK_LOG_BANK_NUMBER 1203 -#define IDC_VOLUMEGROUP 1204 -#define IDC_CHECK_MARKERS 1204 -#define IDC_RECORDING 1204 -#define IDC_COPY_MARKERS 1204 -#define IDC_AUTOSAVECDL 1204 -#define IDC_INVERT_THE_MASK 1204 -#define IDC_DEBUGGER_PREDEFINED_REGS 1204 -#define IDC_RAMLIST 1205 -#define IDC_CHECK_BOOKMARKS 1205 -#define IDC_RUN_AUTO 1205 -#define IDC_AUTOLOADCDL 1205 -#define IDC_SPRITE16_MODE 1205 -#define IDC_C_SEARCH 1206 -#define IDC_USEPATTERN 1206 -#define IDC_C_ADDCHEAT 1207 -#define IDC_CHECK_HISTORY 1207 -#define IDC_C_WATCH 1208 -#define IDC_CHECK_SELECTION 1208 -#define IDC_C_RESET 1209 -#define IDC_CHECK_PIANO_ROLL 1209 -#define IDC_C_ELIMINATE 1210 -#define IDC_LESSTHAN 1211 -#define IDC_MORETHAN 1212 -#define IDC_NOMORETHAN 1213 -#define IDC_NOLESSTHAN 1214 -#define IDC_EQUALTO 1215 -#define IDC_DIFFERENTFROM 1216 -#define IDC_DIFFERENTBY 1217 -#define IDC_MODULO 1218 -#define IDC_EDIT_DIFFBY 1219 -#define IDC_EDIT_MODBY 1220 -#define IDC_PREVIOUSVALUE 1221 -#define IDC_SPECIFICVALUE 1222 -#define IDC_SPECIFICADDRESS 1223 -#define IDC_NUMBEROFCHANGES 1224 -#define IDC_EDIT_COMPAREVALUE 1225 -#define IDC_EDIT_COMPAREADDRESS 1226 -#define IDC_EDIT_COMPARECHANGES 1227 -#define IDC_SIGNED 1228 -#define IDC_UNSIGNED 1229 -#define IDC_HEX 1230 -#define IDC_C_AUTOSEARCH 1231 -#define IDC_1_BYTE 1232 -#define IDC_2_BYTES 1233 -#define IDC_4_BYTES 1234 -#define IDC_MISALIGN 1235 -#define IDC_C_RESET_CHANGES 1236 -#define IDC_C_UNDO 1237 -#define IDC_WATCHLIST 1238 -#define IDC_C_HEXEDITOR 1238 -#define IDC_C_WATCH_EDIT 1239 -#define IDC_C_WATCH_REMOVE 1240 -#define IDC_C_WATCH_DUPLICATE 1241 -#define ID_WATCHES_UPDOWN 1242 -#define IDC_C_WATCH_UP 1243 -#define IDC_C_WATCH_DOWN 1244 -#define IDC_PROMPT_TEXT 1245 -#define IDC_PROMPT_EDIT 1247 -#define IDC_BUTTON_LUABROWSE 1248 -#define IDC_BUTTON_LUARUN 1249 -#define IDC_BUTTON_LUASTOP 1250 -#define IDC_EDIT_LUAPATH 1251 -#define IDC_LUACONSOLE 1252 -#define IDC_BUTTON_LUAEDIT 1253 -#define IDC_LUACONSOLE_CLEAR 1254 -#define IDC_LUACONSOLE_CHOOSEFONT 1255 -#define IDC_EDIT_LUAARGS 1256 -#define CB_PARTIALVISUALTHEME 1257 -#define DEBUGLOADDEB 1258 -#define IDC_C_SEARCHROM 1258 -#define IDC_SINGLEINSTANCE 1258 -#define IDC_MOVIE_CLOSEAFTERPLAYBACK 1258 -#define IDC_C_WATCH_SEPARATE 1259 -#define CHECK_AUTORESTORE_PLAYBACK 1261 -#define CB_FS_BY_DOUBLECLICK 1261 -#define IDC_PROGRESS1 1262 -#define CHECK_FOLLOW_CURSOR 1263 -#define IDC_BOOKMARKS_BOX 1264 -#define IDC_BRANCHES_BITMAP 1265 -#define CHECK_TURBO_SEEK 1266 -#define IDC_TEXT_SELECTION 1267 -#define IDC_TEXT_CLIPBOARD 1268 -#define IDC_RADIO_1PLAYER 1269 -#define IDC_RADIO_2PLAYERS 1270 -#define IDC_PLAYBACK_MARKER 1270 -#define IDC_RADIO_FOURSCORE 1271 -#define IDC_SELECTION_MARKER 1271 -#define IDC_RADIO_DOWN 1273 -#define IDC_PLAYBACK_BOX 1275 -#define IDC_RECORDER_BOX 1276 -#define IDC_SPLICER_BOX 1277 -#define IDC_LUA_BOX 1278 -#define IDC_HISTORY_BOX 1279 -#define IDC_TASEDITOR_NAME 1280 -#define ID_CANCEL 1281 -#define IDC_AUTOSAVE_PROJECT 1282 -#define IDC_SILENT_AUTOSAVE 1283 -#define ID_CHR1 1283 -#define ID_CHR2 1284 -#define ID_CHR3 1285 -#define ID_STATIC 1286 -#define CTL_PALSAT_TRACKBAR 1291 -#define CB_SKIP_7BIT 1293 -#define STATIC_SATVALUE 1294 -#define CTL_PALNOTCH_TRACKBAR 1295 -#define STATIC_NOTCHVALUE 1296 -#define CTL_PALSHARP_TRACKBAR 1297 -#define STATIC_SHARPVALUE 1298 -#define CTL_PALCONTRAST_TRACKBAR 1299 -#define STATIC_CONTRASTVALUE 1300 -#define CTL_PALBRIGHT_TRACKBAR 1301 -#define STATIC_BRIGHTVALUE 1302 -#define DEBUGIDAFONT 1305 -#define IDC_AUTOSAVE_PERIOD_EVERY_TEXT 1306 -#define IDC_AUTOSAVE_PERIOD_MINUTES_TEXT 1307 -#define IDC_VBLANK_SCANLINES_TEXT 1308 -#define IDC_EXTRA_SCANLINES_TEXT 1309 -#define IDC_DATASIZE_GROUPBOX 1310 -#define IDC_DATATYPE_GROUPBOX 1311 -#define IDC_CHEAT_CODE_LABEL 1312 -#define IDC_CHEAT_ADDRESS_LABEL 1313 -#define IDC_CHEAT_VAL_LABEL 1314 -#define IDC_CHEAT_COM_LABEL 1315 -#define IDC_CHEAT_LABEL_KNOWN 1316 -#define IDC_BINARY 1317 -#define IDC_GAME_GENIE_ADDR 1501 -#define MENU_INESHEADEREDITOR 40001 -#define MENU_NETWORK 40040 -#define MENU_PALETTE 40041 -#define MENU_SOUND 40042 -#define MENU_TIMING 40043 -#define MENU_VIDEO 40044 -#define MENU_HOTKEYS 40045 -#define MENU_ABOUT 40046 -#define MENU_MSGLOG 40047 -#define MENU_CHEATS 40048 -#define MENU_AUTOFIRE_PATTERN_1 40050 -#define MENU_AUTOFIRE_PATTERN_2 40051 -#define MENU_AUTOFIRE_PATTERN_3 40052 -#define ID_DEBUG_DEBUGGER 40053 -#define MENU_AUTOFIRE_PATTERN_4 40053 -#define ID_DEBUG_PPUVIEWER 40054 -#define MENU_AUTOFIRE_PATTERN_5 40054 -#define ID_DEBUG_NAMETABLEVIEWER 40055 -#define MENU_AUTOFIRE_PATTERN_6 40055 -#define ID_DEBUG_HEXEDITOR 40056 -#define MENU_AUTOFIRE_PATTERN_7 40056 -#define ID_DEBUG_TRACELOGGER 40057 -#define MENU_AUTOFIRE_PATTERN_8 40057 -#define MENU_AUTOFIRE_PATTERN_9 40058 -#define ID_DEBUG_GAMEGENIEDECODER 40059 -#define MENU_AUTOFIRE_PATTERN_10 40059 -#define ID_DEBUG_CDLOGGER 40060 -#define MENU_AUTOFIRE_PATTERN_11 40060 -#define MENU_AUTOFIRE_PATTERN_12 40061 -#define MENU_AUTOFIRE_PATTERN_13 40062 -#define MENU_AUTOFIRE_PATTERN_14 40063 -#define MENU_AUTOFIRE_PATTERN_15 40064 -#define MENU_AUTOFIRE_OFFSET_1 40065 -#define MENU_AUTOFIRE_OFFSET_2 40066 -#define MENU_AUTOFIRE_OFFSET_3 40067 -#define MENU_AUTOFIRE_OFFSET_4 40068 -#define MENU_AUTOFIRE_OFFSET_5 40069 -#define MENU_AUTOFIRE_OFFSET_6 40070 -#define MENU_ALTERNATE_AB 40071 -#define MENU_PPUVIEWER 40074 -#define MENU_NAMETABLEVIEWER 40075 -#define MENU_HEXEDITOR 40076 -#define MENU_TRACELOGGER 40077 -#define MENU_CDLOGGER 40078 -#define MENU_GAMEGENIEDECODER 40079 -#define MENU_DEBUGGER 40080 -#define MENU_MEMORY_WATCH 40081 -#define ID_FILE_RECENT 40100 -#define MEMW_HELP_WCOMMANDS 40101 -#define MEMW_OPTIONS_LOADLASTFILE 40102 -#define MEMW_FILE_NEW 40103 -#define MEMW_FILE_OPEN 40104 -#define MEMW_FILE_SAVE 40105 -#define MEMW_FILE_SAVEAS 40106 -#define MEMW_FILE_CLOSE 40108 -#define MEMW_OPTIONS_LOADSTART 40109 -#define ID_FILE_RECORDMODE_TRUNCATE 40110 -#define ID_FILE_RECORDMODE_OVERWRITE 40111 -#define ID_FILE_RECORDMODE_INSERT 40112 -#define FCEUX_CONTEXT_RECORDMODE_TRUNCATE 40115 -#define FCEUX_CONTEXT_RECORDMODE_OVERWRITE 40116 -#define FCEUX_CONTEXT_RECORDMODE_INSERT 40117 -#define MENU_RECORD_WAV 40120 -#define MENU_STOP_WAV 40121 -#define ID_FILE_NEXTRECORDMODE 40127 -#define ID_FILE_PREVRECORDMODE 40128 -#define ACCEL_CTRL_O 40130 -#define ACCEL_CTRL_W 40132 -#define ACCEL_CTRL_S 40134 -#define ACCEL_CTRL_SHIFT_S 40135 -#define ACCEL_CTRL_N 40136 -#define ACCEL_CTRL_C 40138 -#define MENU_HELP 40140 -#define MENU_DISPLAY_BG 40147 -#define MENU_DISPLAY_OBJ 40148 -#define MENU_CONVERT_MOVIE 40150 -#define ID_TOOLS_TEXTHOOKER 40158 -#define ID_EDIT_DELETE 40169 -#define ID_FILE_SAVEPROJECT 40172 -#define ID_EDIT_TRUNCATE 40177 -#define ID_FILE_IMPORT 40178 -#define ID_FILE_OPENPROJECT 40181 -#define ID_FILE_SAVEPROJECTAS 40182 -#define ID_FILE_EXPORTFM2 40183 -#define ACCEL_CTRL_X 40184 -#define ACCEL_CTRL_V 40195 -#define ACCEL_CTRL_SHIFT_V 40196 -#define ACCEL_CTRL_DELETE 40197 -#define ACCEL_CTRL_B 40199 -#define ID_CONTEXT_SELECTED_TRUNCATE 40200 -#define ID_CONTEXT_SELECTED_INSERTFRAMES 40204 -#define ID_CONTEXT_SELECTED_DELETEFRAMES 40205 -#define ID_EDIT_SELECTALL 40214 -#define ID_MEMWVIEW_FILE_CLOSE 40217 -#define MENU_MV_FILE_GOTO_ADDRESS 40219 -#define ID_FILE_TRUNCATE_MOVIE 40221 -#define FCEUX_CONTEXT_TRUNCATE_MOVIE 40222 -#define ID_FILE_INSERT_1_FRAME 40223 -#define FCEUX_CONTEXT_INSERT_1_FRAME 40224 -#define ID_FILE_DELETE_1_FRAME 40225 -#define FCEUX_CONTEXT_DELETE_1_FRAME 40226 -#define ID_FILE_OPENLUAWINDOW 40229 -#define ID_FILE_CLOSELUAWINDOWS 40230 -#define MENU_DISPLAY_LAGCOUNTER 40237 -#define MENU_DISPLAY_FA_LAGSKIP 40239 -#define MENU_INPUTDISPLAY_0 40250 -#define MENU_INPUTDISPLAY_1 40251 -#define MENU_INPUTDISPLAY_2 40252 -#define MENU_INPUTDISPLAY_4 40253 -#define ID_DISPLAY_FRAMECOUNTER 40254 -#define MENU_CONFIG_BINDSAVES 40256 -#define MENU_MV_HELP 40258 -#define ID_NES_PAUSE 40263 -#define ID_NES_SPEEDUP 40265 -#define ID_NES_SLOWDOWN 40266 -#define ID_NES_NORMALSPEED 40268 -#define ID_NES_TURBO 40269 -#define ID_NES_SLOWESTSPEED 40270 -#define ID_FILE_SCREENSHOT 40272 -#define ID_FILE_PLAYMOVIEFROMBEGINNING 40274 -#define FCEU_CONTEXT_MOVIEHELP 40281 -#define FCEUX_CONTEXT_REPLAYMOVIE 40282 -#define FCEU_CONTEXT_OPENROM 40286 -#define FCEU_CONTEXT_FCEUHELP 40287 -#define FCEU_CONTEXT_PLAYMOVIEFROMBEGINNING 40295 -#define FCEU_CONTEXT_STOPMOVIE 40296 -#define FCEU_CONTEXT_CLOSEROM 40298 -#define FCEUX_CONTEXT_RECORDMOVIE 40303 -#define FCEUX_CONTEXT_SCREENSHOT 40305 -#define FCEUX_CONTEXT_REWINDTOLASTAUTO 40307 -#define FCEUX_CONTEXT_VIEWCOMMENTSSUBTITLES 40311 -#define MEMW_OPTIONS_EXPANDCOLLAPSE 40314 -#define FCEUX_CONTEXT_UNDOLOADSTATE 40316 -#define FCEUX_CONTEXT_MAKEBACKUP 40320 -#define MENU_MOVIEOPTIONS 40322 -#define FCEUX_CONTEXT_UNDOSAVESTATE 40324 -#define FCEUX_CONTEXT_RECENTROM1 40328 -#define ID_FILE_MOVIE_TOGGLEREAD 40331 -#define FCEUX_CONTEXT_READONLYTOGGLE 40335 -#define MENU_LOADSTATE 40343 -#define MENU_SAVESTATE 40344 -#define MENU_NEXTSAVESTATE 40347 -#define MENU_PREVIOUSSAVESTATE 40348 -#define MENU_VIEWSAVESLOTS 40350 -#define MENU_LUA_RECENT 40352 -#define MENU_MOVIE_RECENT 40354 -#define FCEUX_CONTEXT_LOADLASTMOVIE 40356 -#define FCEUX_CONTEXT_SAVEMOVIEAS 40358 -#define ID_FILE_TOGGLE_RECORDING_MOVIE 40359 -#define FCEUX_CONTEXT_TOGGLE_RECORDING 40360 -#define ID_OPTIONS_BINDTOMAINWINDOW 40361 -#define ID_NEWPPU 40365 -#define ID_OLDPPU 40366 -#define ID_CONFIG_SAVECONFIGFILE 40367 -#define RAMMENU_FILE_AUTOLOAD 40368 -#define RAMMENU_FILE_SAVEWINDOW 40369 -#define RAMMENU_FILE_SAVE 40370 -#define RAMMENU_FILE_SAVEAS 40371 -#define RAMMENU_FILE_OPEN 40372 -#define RAMMENU_FILE_APPEND 40373 -#define RAMMENU_FILE_NEW 40374 -#define RAMMENU_FILE_RECENT 40375 -#define ID_RAM_SEARCH 40376 -#define ID_RAM_WATCH 40377 -#define RW_MENU_FIRST_RECENT_FILE 40380 -#define RW_MENU_LAST_RECENT_FILE 40400 -#define ID_ENABLE_BACKUPSAVESTATES 40401 -#define ID_ENABLE_COMPRESSSAVESTATES 40402 -#define ID_AVI_DISMOVIEMESSAGE 40405 -#define ID_INPUTDISPLAY_OLDSTYLEDISP 40406 -#define ID_CONTEXT_FULLSAVESTATES 40409 -#define ID_FILE_SAVESCREENSHOTAS 40411 -#define FCEUX_CONTEXT_GUICONFIG 40418 -#define ID_CONTEXT_SELECTED_INSERTFRAMES2 40425 -#define ACCEL_CTRL_F 40429 -#define ID_CONFIG_SETGREENZONECAPACITY 40432 -#define ACCEL_CTRL_INSERT 40433 -#define ID_DISPLAY_RERECORDCOUNTER 40436 -#define ID_DISPLAY_MOVIESTATUSICON 40437 -#define ID_AVI_ENABLEHUDRECORDING 40440 -#define ACCEL_INS 40442 -#define ACCEL_DEL 40443 -#define ID_CONTEXT_SELECTED_CLEARFRAMES 40447 -#define ID_EDIT_CLEAR 40450 -#define ID_EDIT_INSERTFRAMES 40451 -#define ID_EDIT_INSERT 40452 -#define ID_CONFIG_BINDMARKERSTOINPUT 40454 -#define ACCEL_CTRL_A 40455 -#define ID_EDIT_SELECTMIDMARKERS 40457 -#define ID_SELECTED_SELECTMIDMARKERS 40458 -#define ID_EDIT_CLONEFRAMES 40460 -#define ACCEL_CTRL_SHIFT_INS 40461 -#define ID_SELECTED_CLONE 40463 -#define ACCEL_CTRL_Z 40465 -#define ACCEL_CTRL_Y 40466 -#define ID_EDIT_UNDO 40468 -#define ID_EDIT_REDO 40469 -#define ID_CONFIG_SETMAXUNDOLEVELS 40470 -#define ID_VIEW_JUMPWHENMAKINGUNDO 40472 -#define ID_CONFIG_BRANCHESRESTOREFULLMOVIE 40473 -#define ID_CONFIG_OLDBRANCHINGCONTROLS 40474 -#define ID_CONFIG_HUDINBRANCHSCREENSHOTS 40475 -#define ACCEL_CTRL_Q 40478 -#define ID_EDIT_SELECTIONUNDO 40481 -#define ID_EDIT_SELECTIONREDO 40482 -#define ID_EDIT_RESELECTCLIPBOARD 40483 -#define ID_FILE_SAVECOMPACT 40484 -#define ID_HELP_ABOUT 40485 -#define ID_VIEW_ENABLEHOTCHANGES 40488 -#define ID_VIEW_SHOWBRANCHSCREENSHOTS 40489 -#define ID_CONFIG_USE1PFORRECORDING 40491 -#define ID_CONFIG_COMBINECONSECUTIVERECORDINGS 40492 -#define ID_EDIT_PASTEINSERT 40495 -#define ACCEL_CTRL_PGUP 40502 -#define ACCEL_CTRL_PGDN 40503 -#define ACCEL_SHIFT_PGUP 40504 -#define ACCEL_SHIFT_PGDN 40505 -#define ID_VIEW_FOLLOWMARKERNOTECONTEXT 40507 -#define ID_VIEW_SHOWBRANCHTOOLTIPS 40508 -#define ID_CONFIG_USEINPUTKEYSFORCOLUMNSET 40509 -#define ID_CONFIG_EMPTYNEWMARKERNOTES 40510 -#define ID_VIEW_FINDNOTE 40515 -#define ID_FILE_CLOSE 40517 -#define ID_EDIT_PASTE 40520 -#define ID_EDIT_COPY 40521 -#define ID_EDIT_CUT 40522 -#define MENU_TASEDITOR 40524 -#define ID_FILE_NEW 40525 -#define ID_HELP_TOOLTIPS 40527 -#define ID_PATTERN_TEST 40534 -#define ID_EDIT_DESELECT 40536 -#define ID_SELECTED_DESELECT 40537 -#define ID_CONFIG_DRAWINPUTBYDRAGGING 40539 -#define ACCEL_CTRL_UP 40541 -#define ACCEL_CTRL_DOWN 40542 -#define ACCEL_CTRL_LEFT 40543 -#define ACCEL_CTRL_RIGHT 40544 -#define ACCEL_HOME 40545 -#define ACCEL_END 40546 -#define ACCEL_PGUP 40547 -#define ACCEL_PGDN 40548 -#define ACCEL_CTRL_HOME 40550 -#define ACCEL_CTRL_END 40551 -#define ACCEL_SHIFT_HOME 40552 -#define ACCEL_SHIFT_END 40553 -#define ACCEL_SHIFT_UP 40554 -#define ACCEL_SHIFT_DOWN 40555 -#define ACCEL_SHIFT_LEFT 40556 -#define ACCEL_SHIFT_RIGHT 40557 -#define ID_CONFIG_AUTOPAUSEATTHEENDOFMOVIE 40559 -#define ID_SELECTED_SETMARKERS 40560 -#define ID_SELECTED_REMOVEMARKERS 40561 -#define ID_HELP_OPEN_MANUAL 40564 -#define ID_DISPLAY_FPS 40565 -#define ID_CONFIG_ADJUSTLAG 40567 -#define ID_CONFIG_PATTERNSKIPSLAG 40568 -#define CLEAR_LOG 40569 -#define CLOSE_LOG 40570 -#define ID_SELECTED_UNGREENZONE 40571 -#define CHEAT_CONTEXT_POSSI_GOTOINHEXEDITOR 40572 -#define ID_CONFIG_ENABLEGREENZONING 40573 -#define ID_EMULATIONSPEED_SETFRAMEADVANCEDELAY 40574 -#define ID_EMULATIONSPEED_SETCUSTOMSPEEDFORFRAMEADVANCE 40576 -#define ID_EMULATIONSPEED_CUSTOMSPEED 40577 -#define ID_ENABLE_AUTORESUME 40579 -#define ID_CONFIG_SAVING_OPTIONS 40581 -#define ID_CDLFILENAME 40582 -#define ID_HIGHLIGHTING_FADEWHENPAUSED 40586 -#define ID_HIGHLIGHTING_SETFADINGPERIOD 40587 -#define ID_HIGHLIGHTING_HIGHLIGHT_ACTIVITY 40588 -#define MENU_MV_FILE_DUMP_64K 40590 -#define MENU_MV_FILE_DUMP_OAM 40592 -#define MENU_RAMINIT_DEFAULT 40593 -#define MENU_RAMINIT_FF 40594 -#define MENU_RAMINIT_00 40595 -#define MENU_RAMINIT_RANDOM 40596 -#define MENU_MV_FILE_LOAD_RAM 40597 -#define MENU_MV_FILE_LOAD_PPU 40598 -#define DISASM_CONTEXT_COPY 40598 -#define MENU_MV_FILE_LOAD_OAM 40599 -#define DISASM_CONTEXT_SELECTALL 40599 -#define CHEAT_CONTEXT_POSSI_ADDTOMEMORYWATCH 40600 -#define CHEAT_CONTEXT_POSSI_ADDCHEAT 40601 -#define CHEAT_CONTEXT_POSSI_ADDTORAMWATCH 40603 -#define MW_VALUELABEL2 65423 -#define MW_VALUELABEL1 65426 -#define IDC_STATIC_SLASHTEXT 65442 -#define IDC_BOOKMARK_NAME_TEXT 65532 -#define IDC_NTVIEW_SCANLINE_TEXT 65534 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 305 -#define _APS_NEXT_COMMAND_VALUE 40002 -#define _APS_NEXT_CONTROL_VALUE 1100 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file +// for res.rc +// +#define CLOSE_BUTTON 1 +#define BUTTON_CLOSE 1 +#define BTN_CLOSE 1 +#define MENU_OPEN_FILE 100 +#define EDIT_ROMS 100 +#define LBL_LOG_TEXT 100 +#define LBL_KEY_COMBO 100 +#define LBL_CDLOGGER_CODECOUNT 100 +#define CHECK_PALETTE_ENABLED 100 +#define LBL_DWBDIALOG_TEXT 100 +#define GRP_GAMEPAD1 100 +#define IDC_TRACER_LOG 100 +#define MENU_MV_FILE_SAVE 100 +#define IDC_ROMPATCHER_OFFSET_BOX 100 +#define IDC_ASSEMBLER_HISTORY 100 +#define MENU_CLOSE_FILE 101 +#define CB_DISABLE_SPEED_THROTTLING 101 +#define LBL_CDLOGGER_DATACOUNT 101 +#define GRP_PPUVIEW_TABLES 101 +#define IDC_NETMOO_STATUS 101 +#define GRP_GAMEPAD2 101 +#define IDC_LIST_CHEATS 101 +#define IDC_SCRL_TRACER_LOG 101 +#define MENU_MV_FILE_SAVE_AS 101 +#define IDC_VIDEOCONFIG_FS 101 +#define IDC_DEBUGGER_BP_ADD 101 +#define IDC_ROMPATCHER_DOTNES_OFFSET 101 +#define IDC_NTVIEW_TABLE_BOX 101 +#define IDC_ASSEMBLER_DISASSEMBLY 101 +#define MENU_RECENT_FILES 102 +#define CB_LOAD_FILE_OPEN 102 +#define LBL_CDLOGGER_UNDEFCOUNT 102 +#define IDC_PPUVIEW_SCANLINE 102 +#define IDC_NETMOO_CMD_INPUT 102 +#define IDC_CHEAT_ADDR 102 +#define IDC_BTN_START_STOP_LOGGING 102 +#define MENU_MV_FILE_LOAD_TBL 102 +#define IDC_VIDEOCONFIG_AUTO_FS 102 +#define IDC_DEBUGGER_BP_DEL 102 +#define IDC_ADDBP_MODE_R 102 +#define IDC_ROMPATCHER_OFFSET 102 +#define IDC_NTVIEW_SCANLINE 102 +#define IDC_ASSEMBLER_PATCH_DISASM 102 +#define CHECK_PALETTE_GRAYSCALE 102 +#define BTN_CDLOGGER_RESET 103 +#define LBL_PPUVIEW_TILE1 103 +#define IDC_CHEAT_VAL 103 +#define IDC_RADIO_LOG_LAST 103 +#define MENU_MV_FILE_UNLOAD_TBL 103 +#define IDC_DEBUGGER_BP_EDIT 103 +#define IDC_ADDBP_MODE_W 103 +#define IDC_ROMPATCHER_BTN_EDIT 103 +#define IDC_NTVIEW_PROPERTIES_LINE_1 103 +#define IDC_VIDEOCONFIG_HIDEMOUSE 103 +#define CB_AUTO_HIDE_MENU 104 +#define COMBO_PAD1 104 +#define BTN_CDLOGGER_LOAD 104 +#define LBL_PPUVIEW_TILE2 104 +#define IDC_CHEAT_NAME 104 +#define IDC_RADIO_LOG_TO_FILE 104 +#define MENU_MV_FILE_DUMP_RAM 104 +#define IDC_VIDEOCONFIG_SYNC_METHOD_WIN 104 +#define IDC_DEBUGGER_RUN 104 +#define IDC_ADDBP_MODE_X 104 +#define IDC_ROMPATCHER_CURRENT_DATA_BOX 104 +#define IDC_NTVIEW_PROPERTIES_LINE_2 104 +#define CHECK_PALETTE_CUSTOM 104 +#define COMBO_PAD2 105 +#define CB_SET_HIGH_PRIORITY 105 +#define BTN_CDLOGGER_START_PAUSE 105 +#define LBL_PPUVIEW_PALETTES 105 +#define IDC_CHEAT_VAL_KNOWN 105 +#define MENU_MV_FILE_DUMP_PPU 105 +#define IDC_VIDEOCONFIG_SYNC_METHOD_FS 105 +#define IDC_DEBUGGER_STEP_IN 105 +#define IDC_TRACER_LOG_SIZE 105 +#define IDC_ADDBP_MEM_CPU 105 +#define IDC_ROMPATCHER_CURRENT_DATA 105 +#define IDC_NTVIEW_PROPERTIES_LINE_3 105 +#define BTN_PORT1 106 +#define BTN_CDLOGGER_SAVE_AS 106 +#define IDC_CHEAT_LIST_POSSIBILITIES 106 +#define IDC_VIDEOCONFIG_CLIPSIDES 106 +#define IDC_DEBUGGER_STEP_OUT 106 +#define IDC_ADDBP_MEM_PPU 106 +#define IDC_NTVIEW_PROPERTIES_LINE_4 106 +#define IDC_TEXT_LINES_TO_THIS_WINDOW 106 +#define BTN_PORT2 107 +#define BTN_CDLOGGER_SAVE 107 +#define IDC_DEBUGGER_STEP_OVER 107 +#define IDC_ADDBP_MEM_SPR 107 +#define IDC_ROMPATCHER_DISASSEMBLY 107 +#define IDC_VIDEOCONFIG_BESTFIT 107 +#define IDR_ACCELERATOR1 108 +#define BTN_CDLOGGER_SAVE_STRIPPED 108 +#define IDC_CHEAT_VAL_NE_BY 108 +#define IDC_DEBUGGER_SEEK_PC 108 +#define IDR_TASEDITOR_ACCELERATORS 108 +#define IDC_VIDEOCONFIG_CONSOLE_BGCOLOR 108 +#define IDC_CHEAT_VAL_GT_BY 109 +#define IDC_DEBUGGER_SEEK_TO 109 +#define IDC_ROMPATCHER_PATCH_DATA 109 +#define IDC_ADDBP_MODE_F 109 +#define BTN_CDLOGGER_SAVE_UNUSED 109 +#define IDC_VIDEOCONFIG_TVASPECT 109 +#define IDC_GROUP_LOG_OPTIONS 109 +#define IDC_CHEAT_VAL_LT_BY 110 +#define MENU_SAVE_STATE 110 +#define CB_ASK_EXIT 110 +#define COMBO_FAM 110 +#define IDB_TE_ARROW 110 +#define IDC_CHECK_LOG_REGISTERS 110 +#define IDC_DEBUGGER_BREAK_ON_BAD_OP 110 +#define IDC_ROMPATCHER_BTN_APPLY 110 +#define LBL_CDLOGGER_RENDERCOUNT 110 +#define IDC_VIDEOCONFIG_SQUARE_PIXELS 110 +#define MENU_LOAD_STATE 111 +#define CB_DISABLE_SCREEN_SAVER 111 +#define BTN_FAM 111 +#define IDC_CHECK_LOG_PROCESSOR_STATUS 111 +#define IDC_DEBUGGER_RELOAD_SYMS 111 +#define IDC_ROMPATCHER_BTN_SAVE 111 +#define IDC_CHEAT_COM 111 +#define IDC_VIDEOCONFIG_DIRECTDRAW_FS 111 +#define BTN_AUTO_HOLD 112 +#define IDC_BTN_LOG_BROWSE 112 +#define IDC_DEBUGGER_BOOKMARK_ADD 112 +#define IDC_VIDEOCONFIG_DIRECTDRAW_WIN 112 +#define IDC_DEBUGGER_BOOKMARK_DEL 113 +#define IDC_EXTRA_LOG_OPTIONS 113 +#define BTN_CLEAR_AH 114 +#define IDC_CHECK_LOG_NEW_INSTRUCTIONS 114 +#define IDC_DEBUGGER_RUN_LINE 114 +#define LBL_CDLOGGER_VROMREADCOUNT 114 +#define LBL_AUTO_HOLD 115 +#define IDC_CHECK_LOG_NEW_DATA 115 +#define IDC_DEBUGGER_RUN_FRAME2 115 +#define LBL_CDLOGGER_UNDEFVROMCOUNT 115 +#define LBL_CLEAR_AH 116 +#define IDC_CHECK_LOG_UPDATE_WINDOW 116 +#define IDC_DEBUGGER_RESET_COUNTERS 116 +#define CHEAT_CONTEXT_LIST_TOGGLECHEAT 117 +#define IDC_DEBUGGER_BREAK_ON_CYCLES 117 +#define IDC_CHECK_CODE_TABBING 117 +#define CHEAT_CONTEXT_LIST_POKECHEATVALUE 118 +#define IDC_CHECK_LOG_STATUSES_TO_THE_LEFT 118 +#define IDC_DEBUGGER_BOOKMARK_NAME 118 +#define CHEAT_CONTEXT_LIST_GOTOINHEXEDITOR 119 +#define IDC_DEBUGGER_BREAK_ON_INSTRUCTIONS 119 +#define IDC_CHECK_LOG_FRAMES_COUNT 119 +#define IDC_CHECK_LOG_CYCLES_COUNT 120 +#define CHEAT_CONTEXT_LIST_DELETESELECTEDCHEATS 120 +#define IDC_CHECK_LOG_INSTRUCTIONS_COUNT 121 +#define COMBO_SOUND_8BIT 122 +#define IDC_CHECK_SYMBOLIC_TRACING 123 +#define CHECK_SOUND_GLOBAL_FOCUS 124 +#define IDC_CHECK_LOG_MESSAGES 124 +#define IDC_CHECK_LOG_BREAKPOINTS 125 +#define CHECK_SOUND_ENABLED 126 +#define CTL_LATENCY_TRACKBAR 128 +#define COMBO_SOUND_QUALITY 129 +#define CHECK_SOUND_MUTEFA 130 +#define DEBUGGER_CONTEXT_TOGGLEBREAK 132 +#define MENU_RECORD_MOVIE 141 +#define MENU_REPLAY_MOVIE 142 +#define MENU_STOP_MOVIE 143 +#define MENU_RECORD_AVI 151 +#define MENU_STOP_AVI 152 +#define MENU_EXIT 153 +#define IDD_RAMSEARCH 154 +#define IDD_RAMWATCH 155 +#define IDD_EDITWATCH 156 +#define IDR_RWACCELERATOR 158 +#define IDD_LUA 159 +#define IDB_BITMAP0 163 +#define IDB_BITMAP1 164 +#define IDB_BITMAP2 165 +#define IDB_BITMAP3 166 +#define IDB_BITMAP4 167 +#define IDB_BITMAP5 168 +#define IDB_BITMAP6 169 +#define IDB_BITMAP7 170 +#define IDB_BITMAP8 171 +#define IDB_BITMAP9 172 +#define IDB_BITMAP10 173 +#define IDB_BITMAP11 174 +#define IDB_BITMAP12 175 +#define IDB_BITMAP13 176 +#define IDB_BITMAP14 177 +#define IDB_BITMAP15 178 +#define IDB_BITMAP16 179 +#define IDB_BITMAP17 180 +#define IDB_BITMAP18 181 +#define IDB_BITMAP19 182 +#define IDB_BRANCH_SPRITESHEET 184 +#define IDD_TASEDITOR_SAVECOMPACT 195 +#define IDD_TASEDITOR_EXPORT 196 +#define IDI_ICON3 197 +#define IDD_TASEDITOR_FINDNOTE 198 +#define IDD_TASEDITOR_ABOUT 199 +#define MENU_RESET 200 +#define BUTTON_ROMS 200 +#define TXT_PAD1 200 +#define BTN_RESTORE_DEFAULTS 200 +#define BTN_CLEAR 200 +#define IDC_EDIT_FILENAME 200 +#define IDC_COMBO_FILENAME 200 +#define BTN_PALETTE_LOAD 200 +#define IDC_NETMOO_HOST 200 +#define COMBO_SOUND_RATE 200 +#define MENU_MV_EDIT_UNDO 200 +#define IDC_VIDEOCONFIG_XRES 200 +#define IDC_DEBUGGER_FLAG_N 200 +#define IDC_ADDBP_ADDR_START 200 +#define MENU_POWER 201 +#define IDC_GROUPBOX_CHEATLIST 201 +#define TXT_PAD2 201 +#define IDC_BUTTON_BROWSEFILE 201 +#define IDC_CHECK_READONLY 201 +#define BTN_PALETTE_RESET 201 +#define CTL_PPUVIEW_TRACKBAR 201 +#define IDC_NETMOO_PORT 201 +#define MENU_MV_EDIT_COPY 201 +#define IDC_VIDEOCONFIG_YRES 201 +#define IDC_DEBUGGER_FLAG_V 201 +#define IDC_ADDBP_ADDR_END 201 +#define IDC_NTVIEW_REFRESH_TRACKBAR 201 +#define IDC_ASSEMBLER_APPLY 201 +#define IDI_ICON4 201 +#define BTN_OK 201 +#define MENU_EJECT_DISK 202 +#define TXT_FAM 202 +#define MENU_MV_EDIT_PASTE 202 +#define IDC_VIDEOCONFIG_BPP 202 +#define IDC_DEBUGGER_FLAG_U 202 +#define IDC_ADDBP_CONDITION 202 +#define IDC_ASSEMBLER_SAVE 202 +#define IDD_TASEDITOR_NEWPROJECT 202 +#define IDC_GROUPBOX_CHEATSEARCH 202 +#define MENU_SWITCH_DISK 203 +#define IDC_NETMOO_NICK 203 +#define IDC_CHEAT_BOX_POSSIBILITIES 203 +#define MENU_MV_EDIT_FIND 203 +#define IDC_DEBUGGER_FLAG_B 203 +#define IDC_ADDBP_NAME 203 +#define IDC_ASSEMBLER_UNDO 203 +#define MENU_INSERT_COIN 204 +#define COMBO_NETMOO_LOCAL_PLAYERS 204 +#define IDC_DEBUGGER_FLAG_D 204 +#define IDC_GROUP_PREV_COM 204 +#define IDC_NETMOO_KEY 205 +#define IDC_DEBUGGER_FLAG_I 205 +#define IDB_TE_GREEN_ARROW 205 +#define IDC_NETMOO_PASS 206 +#define IDC_DEBUGGER_FLAG_Z 206 +#define IDC_DEBUGGER_FLAG_C 207 +#define IDC_DEBUGGER_ENABLE_SYMBOLIC 208 +#define IDB_TE_GREEN_BLUE_ARROW 208 +#define IDB_PIANO_0 209 +#define IDC_DEBUGGER_ROM_OFFSETS 209 +#define IDB_PIANO_1 210 +#define IDB_PIANO_2 211 +#define IDB_PIANO_3 212 +#define IDB_PIANO_4 213 +#define IDB_PIANO_5 214 +#define IDB_PIANO_6 215 +#define IDB_PIANO_7 216 +#define IDB_PIANO_8 217 +#define IDB_PIANO_9 218 +#define IDB_PIANO_10 219 +#define IDB_PIANO_11 220 +#define IDB_PIANO_12 221 +#define IDB_PIANO_13 222 +#define IDB_PIANO_14 223 +#define IDB_PIANO_15 224 +#define IDB_PIANO_16 225 +#define IDB_PIANO_17 226 +#define IDB_PIANO_18 227 +#define IDB_PIANO_19 228 +#define IDB_PIANO_PLAYBACK_0 229 +#define IDB_PIANO_PLAYBACK_1 230 +#define IDB_PIANO_PLAYBACK_2 231 +#define IDB_PIANO_PLAYBACK_3 232 +#define IDB_PIANO_PLAYBACK_4 233 +#define IDB_PIANO_PLAYBACK_5 234 +#define IDB_PIANO_PLAYBACK_6 235 +#define IDB_PIANO_PLAYBACK_7 236 +#define IDB_PIANO_PLAYBACK_8 237 +#define IDB_PIANO_PLAYBACK_9 238 +#define IDB_PIANO_PLAYBACK_10 239 +#define IDB_PIANO_PLAYBACK_11 240 +#define IDB_PIANO_PLAYBACK_12 241 +#define IDB_PIANO_PLAYBACK_13 242 +#define IDB_PIANO_PLAYBACK_14 243 +#define IDB_PIANO_PLAYBACK_15 244 +#define IDB_PIANO_PLAYBACK_16 245 +#define IDB_PIANO_PLAYBACK_17 246 +#define IDB_PIANO_PLAYBACK_18 247 +#define IDB_PIANO_PLAYBACK_19 248 +#define IDB_PIANO_LOSTPOS_0 249 +#define IDB_PIANO_LOSTPOS_1 250 +#define BTN_NETMOO_CONNECT 250 +#define IDB_PIANO_LOSTPOS_2 251 +#define IDB_PIANO_LOSTPOS_3 252 +#define IDB_PIANO_LOSTPOS_4 253 +#define IDB_PIANO_LOSTPOS_5 254 +#define IDB_PIANO_LOSTPOS_6 255 +#define IDB_PIANO_LOSTPOS_7 256 +#define IDB_PIANO_LOSTPOS_8 257 +#define IDB_PIANO_LOSTPOS_9 258 +#define IDB_PIANO_LOSTPOS_10 259 +#define IDB_PIANO_LOSTPOS_11 260 +#define IDB_PIANO_LOSTPOS_12 261 +#define IDB_PIANO_LOSTPOS_13 262 +#define IDB_PIANO_LOSTPOS_14 263 +#define IDB_PIANO_LOSTPOS_15 264 +#define IDB_PIANO_LOSTPOS_16 265 +#define IDB_PIANO_LOSTPOS_17 266 +#define IDB_PIANO_LOSTPOS_18 267 +#define IDB_PIANO_LOSTPOS_19 268 +#define IDB_BITMAP_SELECTED0 269 +#define IDB_BITMAP_SELECTED1 270 +#define IDB_BITMAP_SELECTED2 271 +#define IDB_BITMAP_SELECTED3 272 +#define IDB_BITMAP_SELECTED4 273 +#define IDB_BITMAP_SELECTED5 274 +#define IDB_BITMAP_SELECTED6 275 +#define IDB_BITMAP_SELECTED7 276 +#define IDB_BITMAP_SELECTED8 277 +#define IDB_BITMAP_SELECTED9 278 +#define IDB_BITMAP_SELECTED10 279 +#define IDB_BITMAP_SELECTED11 280 +#define IDB_BITMAP_SELECTED12 281 +#define IDB_BITMAP_SELECTED13 282 +#define IDB_BITMAP_SELECTED14 283 +#define IDB_BITMAP_SELECTED15 284 +#define IDB_BITMAP_SELECTED16 285 +#define IDB_BITMAP_SELECTED17 286 +#define IDB_BITMAP_SELECTED18 287 +#define IDB_BITMAP_SELECTED19 288 +#define IDD_TASEDITOR_SAVINGOPTIONS 289 +#define IDD_SYMBOLIC_DEBUG_NAMING 290 +#define DLG_SNESPAD 291 +#define MENU_HIDE_MENU 300 +#define COMBO_FILTER 300 +#define IDC_LABEL_LENGTH 300 +#define MENU_MV_VIEW_RAM 300 +#define IDC_DEBUGGER_DISASSEMBLY 300 +#define IDC_ASSEMBLER_DEFPUSHBUTTON 300 +#define MENU_RUN_IN_BACKGROUND 301 +#define IDC_COMBO_RECORDFROM 301 +#define IDC_LABEL_FRAMES 301 +#define IDC_BTN_CHEAT_ADD 301 +#define MENU_MV_VIEW_PPU 301 +#define IDC_DEBUGGER_DISASSEMBLY_VSCR 301 +#define MENU_BACKGROUND_INPUT 302 +#define IDC_LABEL_UNDOCOUNT 302 +#define IDC_BTN_CHEAT_DEL 302 +#define IDC_DEBUGGER_BP_LIST 302 +#define MENU_MV_VIEW_OAM 302 +#define MENU_MV_VIEW_ROM 303 +#define IDC_BTN_CHEAT_UPD 303 +#define IDC_DEBUGGER_DISASSEMBLY_LEFT_PANEL 303 +#define IDD_EDIT_HEADER 303 +#define MENU_ENABLE_AUTOSAVE 304 +#define IDC_LABEL_ROMUSED 304 +#define IDC_BTN_CHEAT_RESET 304 +#define IDC_VIDEOCONFIG_SCALER_FS 304 +#define IDC_DEBUGGER_VAL_A 304 +#define IDC_LABEL_ROMCHECKSUM 305 +#define IDC_BTN_CHEAT_KNOWN 305 +#define IDC_DEBUGGER_VAL_X 305 +#define IDC_LABEL_RECORDEDFROM 306 +#define IDC_BTN_CHEAT_EQ 306 +#define IDC_DEBUGGER_VAL_Y 306 +#define IDC_LABEL_EMULATORUSED 307 +#define IDC_BTN_CHEAT_NE 307 +#define IDC_DEBUGGER_VAL_PC 307 +#define IDC_LABEL_CURRCHECKSUM 308 +#define IDC_BTN_CHEAT_GT 308 +#define IDC_DEBUGGER_STACK_CONTENTS 308 +#define IDC_BTN_CHEAT_LT 309 +#define IDC_DEBUGGER_VAL_PCSEEK 309 +#define IDC_LABEL_PALUSED 309 +#define MENU_GAME_GENIE 310 +#define IDC_DEBUGGER_VAL_PPU 310 +#define IDC_LABEL_NEWPPUUSED 310 +#define IDC_DEBUGGER_VAL_SPR 311 +#define IDC_BTN_CHEAT_ADDFROMFILE 311 +#define IDC_DEBUGGER_BOOKMARK 312 +#define IDC_DEBUGGER_CYCLES_EXCEED 313 +#define IDC_DEBUGGER_INSTRUCTIONS_EXCEED 314 +#define MENU_DIRECTORIES 320 +#define MENU_INPUT 321 +#define MENU_GUI_OPTIONS 327 +#define MENU_NTSC 330 +#define MENU_PAL 331 +#define MENU_DENDY 332 +#define MENU_MV_BOOKMARKS_RM_ALL 400 +#define IDC_WINSIZE_MUL_X 400 +#define IDC_CHEAT_CHECK_NE_BY 401 +#define IDC_WINSIZE_MUL_Y 401 +#define CHECK_ENABLE_FOURSCORE 401 +#define IDC_CHEAT_CHECK_GT_BY 402 +#define IDC_FORCE_INT_VIDEO_SCALARS 402 +#define IDC_DEBUGGER_BREAKPOINTS 402 +#define IDC_CHEAT_CHECK_LT_BY 403 +#define IDC_FORCE_ASPECT_CORRECTION 403 +#define IDC_DEBUGGER_VAL_S 403 +#define IDC_TVASPECT_X 404 +#define IDC_DEBUGGER_VAL_S2 405 +#define IDC_TVASPECT_Y 405 +#define IDC_VIDEOCONFIG_SCALER_WIN 406 +#define CHECK_ENABLE_MICROPHONE 407 +#define CTL_TINT_TRACKBAR 500 +#define CTL_VOLUME_TRACKBAR 500 +#define IDC_SCANLINE_FIRST_NTSC 500 +#define IDC_SCANLINE_LAST_NTSC 501 +#define CTL_HUE_TRACKBAR 501 +#define IDC_DEBUGGER_VAL_SLINE 501 +#define CTL_VOLUME_TRACKBAR_TRIANGLE 501 +#define IDC_SCANLINE_FIRST_PAL 502 +#define IDC_DEBUGGER_ADDR_LINE 502 +#define CTL_VOLUME_TRACKBAR_SQUARE1 502 +#define IDC_SCANLINE_LAST_PAL 503 +#define CTL_VOLUME_TRACKBAR_SQUARE2 503 +#define IDC_DEBUGGER_VAL_CYCLES_COUNT 503 +#define CTL_VOLUME_TRACKBAR_NOISE 504 +#define IDC_DEBUGGER_VAL_PPUPIXEL 504 +#define CTL_VOLUME_TRACKBAR_PCM 505 +#define IDC_DEBUGGER_VAL_CYCLES_COUNT2 505 +#define IDC_DEBUGGER_VAL_INSTRUCTIONS_COUNT 506 +#define IDC_DEBUGGER_VAL_INSTRUCTIONS_COUNT2 507 +#define IDC_VIDEOCONFIG_NO8LIM 600 +#define IDC_DEBUGGER_ROM_PATCHER 602 +#define LIST_DEBUGGER_BOOKMARKS 701 +#define BTN_CANCEL 800 +#define IDC_GAME_GENIE_CODE 1000 +#define IDC_MEMVIEWFIND_WHAT 1000 +#define IDC_BOOKMARK_DESCRIPTION 1000 +#define MW_NAME00 1000 +#define MW_ADDR00 1001 +#define IDC_MEMVIEWFIND_TYPE_HEX 1001 +#define IDC_NTVIEW_MIRROR_HORIZONTAL 1001 +#define IDC_CHECK_STOPMOVIE 1002 +#define IDC_GAME_GENIE_COMP 1002 +#define IDC_MEMVIEWFIND_TYPE_TEXT 1002 +#define IDC_NTVIEW_MIRROR_VERTICAL 1002 +#define MW_VAL00 1002 +#define LV_MAPPING 1003 +#define IDC_EDIT_STOPFRAME 1003 +#define IDC_GAME_GENIE_VAL 1003 +#define IDC_MEMVIEWFIND_DIR_UP 1003 +#define IDC_NTVIEW_MIRROR_FOUR_SCREEN 1003 +#define MW_NAME01 1003 +#define MW_ADDR01 1004 +#define IDC_LIST_GGADDRESSES 1004 +#define IDC_MEMVIEWFIND_DIR_DOWN 1004 +#define IDC_NTVIEW_MIRROR_SS_TABLE_0 1004 +#define IDC_BTN_ADD_TO_CHEATS 1005 +#define IDC_MEMVIEWFIND_NEXT 1005 +#define IDC_NTVIEW_MIRROR_SS_TABLE_1 1005 +#define MW_VAL01 1005 +#define IDC_NTVIEW_MIRROR_SS_TABLE_2 1006 +#define MW_NAME02 1006 +#define MW_ADDR02 1007 +#define IDC_NTVIEW_MIRROR_SS_TABLE_3 1007 +#define IDC_NTVIEW_SHOW_SCROLL_LINES 1008 +#define MW_VAL02 1008 +#define IDC_NTVIEW_SHOW_ATTRIBUTES 1009 +#define MW_NAME03 1009 +#define IDC_NTVIEW_HIDE_PALETTES 1010 +#define MW_ADDR03 1010 +#define IDC_BTN_CHEAT_EXPORTTOFILE 1011 +#define MW_VAL03 1011 +#define IDSAVE 1012 +#define MW_NAME04 1012 +#define MW_ADDR04 1013 +#define IDC_CHECK1 1013 +#define IDC_CHEAT_AUTOLOADSAVE 1013 +#define IDC_RESTORE_BUTTON 1014 +#define MW_VAL04 1014 +#define MW_NAME05 1015 +#define MW_ADDR05 1016 +#define MW_VAL05 1017 +#define IDC_PRGROM_COMBO 1018 +#define MW_NAME06 1018 +#define MW_ADDR06 1019 +#define IDC_CHRROM_COMBO 1019 +#define IDC_RADIO_MIRR_HORIZONTAL 1020 +#define MW_VAL06 1020 +#define IDC_RADIO_MIRR_VERTICAL 1021 +#define MW_NAME07 1021 +#define MW_ADDR07 1022 +#define IDC_RADIO_MIRR_4SCREEN 1022 +#define MW_VAL07 1023 +#define IDC_CHECK_TRAINER 1024 +#define MW_NAME08 1024 +#define MW_ADDR08 1025 +#define IDC_PRGRAM_COMBO 1025 +#define IDC_MAPPER_COMBO 1026 +#define MW_VAL08 1026 +#define IDC_SUBMAPPER_EDIT 1027 +#define MW_NAME09 1027 +#define MW_ADDR09 1028 +#define IDC_CHRRAM_COMBO 1028 +#define IDC_PRGNVRAM_COMBO 1029 +#define MW_VAL09 1029 +#define IDC_CHRNVRAM_COMBO 1030 +#define MW_NAME10 1030 +#define MW_ADDR10 1031 +#define IDC_RADIO_REGION_NTSC 1031 +#define IDC_RADIO_REGION_PAL 1032 +#define MW_VAL10 1032 +#define IDC_RADIO_REGION_DUAL 1033 +#define MW_NAME11 1033 +#define MW_ADDR11 1034 +#define MW_VAL11 1035 +#define IDC_INPUT_DEVICE_COMBO 1036 +#define MW_NAME12 1036 +#define MW_ADDR12 1037 +#define IDC_RADIO_REGION_DENDY 1037 +#define IDC_RADIO_SYSTEM_NORMAL 1038 +#define MW_VAL12 1038 +#define IDC_RADIO_SYSTEM_VS 1039 +#define MW_NAME13 1039 +#define MW_ADDR13 1040 +#define IDC_RADIO_SYSTEM_PLAYCHOICE10 1040 +#define IDC_RADIO_SYSTEM_EXTEND 1041 +#define MW_VAL13 1041 +#define MW_NAME14 1042 +#define MW_ADDR14 1043 +#define IDC_SYSTEM_EXTEND_COMBO 1043 +#define MW_VAL14 1044 +#define MW_NAME15 1045 +#define MW_ADDR15 1046 +#define IDC_VS_SYSTEM_COMBO 1046 +#define IDC_VS_PPU_COMBO 1047 +#define MW_VAL15 1047 +#define MW_NAME16 1048 +#define MW_ADDR16 1049 +#define IDC_MAPPER_TEXT 1049 +#define IDC_SUBMAPPER_TEXT 1050 +#define MW_VAL16 1050 +#define IDC_PRGROM_TEXT 1051 +#define MW_NAME17 1051 +#define MW_ADDR17 1052 +#define IDC_CHRROM_TEXT 1053 +#define MW_VAL17 1053 +#define MW_NAME18 1054 +#define MW_ADDR18 1055 +#define IDC_PRGRAM_TEXT 1055 +#define MW_VAL18 1056 +#define IDC_CHRRAM_TEXT 1057 +#define MW_NAME19 1057 +#define MW_ADDR19 1058 +#define IDC_PRGNVRAM_TEXT 1059 +#define MW_VAL19 1059 +#define IDC_CHRNVRAM_TEXT 1060 +#define MW_NAME20 1060 +#define MW_ADDR20 1061 +#define MW_VAL20 1062 +#define IDC_INESHEADER_GROUP 1063 +#define MW_NAME21 1063 +#define MW_ADDR21 1064 +#define IDC_MIRRORING_GROUP 1064 +#define IDC_REGION_GROUP 1065 +#define MW_VAL21 1065 +#define IDC_SYSTEM_GROUP 1066 +#define MW_NAME22 1066 +#define MW_ADDR22 1067 +#define IDC_VS_SYSTEM_GROUP 1067 +#define IDC_VS_SYSTEM_TEXT 1068 +#define MW_VAL22 1068 +#define IDC_VS_PPU_TEXT 1069 +#define MW_NAME23 1069 +#define MW_ADDR23 1070 +#define IDC_RADIO_VERSION_STANDARD 1071 +#define MW_VAL23 1071 +#define IDC_RADIO_VERSION_INES20 1073 +#define IDC_VERSION_GROUP 1074 +#define IDC_MAPPER_GROUP 1075 +#define IDC_CHECK_BATTERYNVRAM 1076 +#define IDC_INPUT_DEVICE_TEXT 1077 +#define IDC_PRG_GROUP 1078 +#define IDC_CHR_GROUP 1079 +#define IDC_UNOFFICIAL_GROUP 1081 +#define IDC_CHECK_UNOFFICIAL_PRGRAM 1082 +#define IDC_CHECK_UNOFFICIAL_EXTRA_REGION 1083 +#define IDC_CHECK_UNOFFICIAL_BUS_CONFLICT 1084 +#define IDC_CHECK_UNOFFICIAL 1085 +#define IDC_MISCELLANEOUS_ROMS_TEXT 1086 +#define IDC_MISCELLANEOUS_ROMS_EDIT 1087 +#define IDC_EXTEND_SYSTEM_GROUP 1089 +#define IDC_EXTEND_SYSTEM_TEXT 1090 +#define IDC_BUTTON1 1094 +#define IDC_CHEAT_SWITCH 1096 +#define IDC_CHEAT_GLOBAL_SWITCH 1096 +#define IDC_GAME_GENIE_LABEL 1097 +#define IDC_CHEAT_GAME_GENIE_TEXT 1098 +#define IDC_CHECK2 1099 +#define BTN_ALLOW_LRUD 1117 +#define IDC_PRGROM_EDIT 1118 +#define IDC_CHRROM_EDIT 1119 +#define BTN_PRESET_SET1 1119 +#define BTN_PRESET_SET2 1120 +#define BTN_PRESET_SET3 1121 +#define BTN_PRESET_IMPORT1 1122 +#define BTN_PRESET_IMPORT2 1123 +#define BTN_PRESET_IMPORT3 1124 +#define IDC_PRGRAM_EDIT 1125 +#define BTN_PRESET_EXPORT1 1125 +#define BTN_PRESET_EXPORT2 1126 +#define BTN_PRESET_EXPORT3 1127 +#define IDC_CHRRAM_EDIT 1128 +#define IDC_PRGNVRAM_EDIT 1129 +#define IDC_CHRNVRAM_EDIT 1130 +#define IDC_LIST1 1130 +#define IDC_BUTTON_METADATA 1132 +#define MEMW_EXPANDCOLLAPSE 1133 +#define IDC_SOUND_RESTOREDEFAULTVOL 1133 +#define TASEDITOR_REWIND 1133 +#define TASEDITOR_FORWARD 1134 +#define TASEDITOR_REWIND_FULL 1135 +#define TASEDITOR_FORWARD_FULL 1136 +#define TASEDITOR_PLAYSTOP 1137 +#define IDC_RADIO_GREENZONE_SAVINGMODE_ALLFRAMES 1138 +#define IDC_RADIO_UP 1138 +#define IDC_RADIO_ALL 1139 +#define IDC_RADIO_GREENZONE_SAVINGMODE_EVERY16FRAME 1139 +#define IDC_RADIO_1P 1140 +#define IDC_RADIO_GREENZONE_SAVINGMODE_MARKEDFRAMES 1140 +#define IDC_RADIO_2P 1141 +#define IDC_RADIO_GREENZONE_SAVINGMODE_DONTSAVE 1141 +#define MEMW_EDIT00FORMULA 1142 +#define IDC_RADIO_3P 1142 +#define MEMW_EDIT01FORMULA 1143 +#define IDC_RADIO_4P 1143 +#define IDC_PROGRESS_BUTTON 1144 +#define MEMW_EDIT02FORMULA 1144 +#define MEMW_EDIT03FORMULA 1145 +#define TASEDITOR_PREV_MARKER 1145 +#define TASEDITOR_FIND_BEST_SIMILAR_MARKER 1146 +#define IDC_SELECTION_MARKER_EDIT 1147 +#define IDC_NOTE_TO_FIND 1147 +#define IDC_AUTOSAVE_PERIOD 1147 +#define IDC_EXTRA_SCANLINES 1147 +#define IDC_CHEAT_TEXT 1147 +#define TASEDITOR_FIND_NEXT_SIMILAR_MARKER 1148 +#define IDC_SYMBOLIC_ADDRESS 1148 +#define IDC_VBLANK_SCANLINES 1148 +#define IDC_HISTORYLIST 1149 +#define IDC_SYMBOLIC_NAME 1149 +#define IDC_BOOKMARKSLIST 1150 +#define IDC_SYMBOLIC_FILENAME 1150 +#define TASEDITOR_NEXT_MARKER 1151 +#define IDC_SYMBOLIC_COMMENT 1151 +#define IDC_BRANCHES_BUTTON 1152 +#define IDC_PLAYBACK_MARKER_EDIT 1154 +#define TASEDITOR_RUN_MANUAL 1156 +#define CHECK_SOUND_MUTETURBO 1179 +#define IDC_EDIT_AUTHOR 1180 +#define MEMW_EDIT00RESET 1184 +#define MEMW_EDIT01RESET 1185 +#define MEMW_EDIT02RESET 1186 +#define MEMW_EDIT03RESET 1187 +#define MEMW_EDIT00RMADDRESS 1188 +#define MEMW_EDIT01RMADDRESS 1189 +#define MEMW_EDIT02RMADDRESS 1190 +#define MEMW_EDIT03RMADDRESS 1191 +#define IDC_DEBUGGER_RESTORESIZE 1191 +#define IDC_MOVIE_CLOSE 1192 +#define EDIT00_RESULTS 1193 +#define IDC_MOVIE_PAUSEAFTERPLAYBACK 1193 +#define EDIT01_RESULTS 1194 +#define IDC_MOVIE_BINDSAVESTATES 1194 +#define EDIT02_RESULTS 1195 +#define EDIT03_RESULTS 1196 +#define IDC_MOVIE_DISPLAYSUBTITLES 1196 +#define IDC_MOVIE_SUBTITLESINAVI 1197 +#define IDC_MOVIE_AUTOBACKUP 1198 +#define ID_SOUND_TRITOP 1201 +#define IDC_MOVIE_SUGGEST_READONLY 1201 +#define ID_SOUND_QUALITYNOTIFY 1202 +#define CB_ENABLECONTEXTMENU 1203 +#define DEBUGAUTOLOAD 1203 +#define IDC_CHEAT_PAUSEWHENACTIVE 1203 +#define IDC_FULLSAVESTATES 1203 +#define IDC_SUPERIMPOSE 1203 +#define IDC_CHECK_BINARY 1203 +#define IDC_NOTES_TO_SUBTITLES 1203 +#define IDC_MATCH_CASE 1203 +#define IDC_COPY_INPUT 1203 +#define IDC_AUTORESUMECDLOGGING 1203 +#define IDC_MASK_UNUSED_GRAPHICS 1203 +#define CHECK_SOUND_SWAPDUTY 1203 +#define CB_OVERCLOCKING 1203 +#define CHECK_DEEMPH_SWAP 1203 +#define IDC_CHECK_LOG_BANK_NUMBER 1203 +#define IDC_VOLUMEGROUP 1204 +#define IDC_CHECK_MARKERS 1204 +#define IDC_RECORDING 1204 +#define IDC_COPY_MARKERS 1204 +#define IDC_AUTOSAVECDL 1204 +#define IDC_INVERT_THE_MASK 1204 +#define IDC_DEBUGGER_PREDEFINED_REGS 1204 +#define IDC_RAMLIST 1205 +#define IDC_CHECK_BOOKMARKS 1205 +#define IDC_RUN_AUTO 1205 +#define IDC_AUTOLOADCDL 1205 +#define IDC_SPRITE16_MODE 1205 +#define IDC_C_SEARCH 1206 +#define IDC_USEPATTERN 1206 +#define IDC_C_ADDCHEAT 1207 +#define IDC_CHECK_HISTORY 1207 +#define IDC_C_WATCH 1208 +#define IDC_CHECK_SELECTION 1208 +#define IDC_C_RESET 1209 +#define IDC_CHECK_PIANO_ROLL 1209 +#define IDC_C_ELIMINATE 1210 +#define IDC_LESSTHAN 1211 +#define IDC_MORETHAN 1212 +#define IDC_NOMORETHAN 1213 +#define IDC_NOLESSTHAN 1214 +#define IDC_EQUALTO 1215 +#define IDC_DIFFERENTFROM 1216 +#define IDC_DIFFERENTBY 1217 +#define IDC_MODULO 1218 +#define IDC_EDIT_DIFFBY 1219 +#define IDC_EDIT_MODBY 1220 +#define IDC_PREVIOUSVALUE 1221 +#define IDC_SPECIFICVALUE 1222 +#define IDC_SPECIFICADDRESS 1223 +#define IDC_NUMBEROFCHANGES 1224 +#define IDC_EDIT_COMPAREVALUE 1225 +#define IDC_EDIT_COMPAREADDRESS 1226 +#define IDC_EDIT_COMPARECHANGES 1227 +#define IDC_SIGNED 1228 +#define IDC_UNSIGNED 1229 +#define IDC_HEX 1230 +#define IDC_C_AUTOSEARCH 1231 +#define IDC_1_BYTE 1232 +#define IDC_2_BYTES 1233 +#define IDC_4_BYTES 1234 +#define IDC_MISALIGN 1235 +#define IDC_C_RESET_CHANGES 1236 +#define IDC_C_UNDO 1237 +#define IDC_WATCHLIST 1238 +#define IDC_C_HEXEDITOR 1238 +#define IDC_C_WATCH_EDIT 1239 +#define IDC_C_WATCH_REMOVE 1240 +#define IDC_C_WATCH_DUPLICATE 1241 +#define ID_WATCHES_UPDOWN 1242 +#define IDC_C_WATCH_UP 1243 +#define IDC_C_WATCH_DOWN 1244 +#define IDC_PROMPT_TEXT 1245 +#define IDC_PROMPT_EDIT 1247 +#define IDC_BUTTON_LUABROWSE 1248 +#define IDC_BUTTON_LUARUN 1249 +#define IDC_BUTTON_LUASTOP 1250 +#define IDC_EDIT_LUAPATH 1251 +#define IDC_LUACONSOLE 1252 +#define IDC_BUTTON_LUAEDIT 1253 +#define IDC_LUACONSOLE_CLEAR 1254 +#define IDC_LUACONSOLE_CHOOSEFONT 1255 +#define IDC_EDIT_LUAARGS 1256 +#define CB_PARTIALVISUALTHEME 1257 +#define DEBUGLOADDEB 1258 +#define IDC_C_SEARCHROM 1258 +#define IDC_SINGLEINSTANCE 1258 +#define IDC_MOVIE_CLOSEAFTERPLAYBACK 1258 +#define IDC_C_WATCH_SEPARATE 1259 +#define CHECK_AUTORESTORE_PLAYBACK 1261 +#define CB_FS_BY_DOUBLECLICK 1261 +#define IDC_PROGRESS1 1262 +#define CHECK_FOLLOW_CURSOR 1263 +#define IDC_BOOKMARKS_BOX 1264 +#define IDC_BRANCHES_BITMAP 1265 +#define CHECK_TURBO_SEEK 1266 +#define IDC_TEXT_SELECTION 1267 +#define IDC_TEXT_CLIPBOARD 1268 +#define IDC_RADIO_1PLAYER 1269 +#define IDC_RADIO_2PLAYERS 1270 +#define IDC_PLAYBACK_MARKER 1270 +#define IDC_RADIO_FOURSCORE 1271 +#define IDC_SELECTION_MARKER 1271 +#define IDC_RADIO_DOWN 1273 +#define IDC_PLAYBACK_BOX 1275 +#define IDC_RECORDER_BOX 1276 +#define IDC_SPLICER_BOX 1277 +#define IDC_LUA_BOX 1278 +#define IDC_HISTORY_BOX 1279 +#define IDC_TASEDITOR_NAME 1280 +#define ID_CANCEL 1281 +#define IDC_AUTOSAVE_PROJECT 1282 +#define IDC_SILENT_AUTOSAVE 1283 +#define ID_CHR1 1283 +#define ID_CHR2 1284 +#define ID_CHR3 1285 +#define ID_STATIC 1286 +#define CTL_PALSAT_TRACKBAR 1291 +#define CB_SKIP_7BIT 1293 +#define STATIC_SATVALUE 1294 +#define CTL_PALNOTCH_TRACKBAR 1295 +#define STATIC_NOTCHVALUE 1296 +#define CTL_PALSHARP_TRACKBAR 1297 +#define STATIC_SHARPVALUE 1298 +#define CTL_PALCONTRAST_TRACKBAR 1299 +#define STATIC_CONTRASTVALUE 1300 +#define CTL_PALBRIGHT_TRACKBAR 1301 +#define STATIC_BRIGHTVALUE 1302 +#define DEBUGIDAFONT 1305 +#define IDC_AUTOSAVE_PERIOD_EVERY_TEXT 1306 +#define IDC_AUTOSAVE_PERIOD_MINUTES_TEXT 1307 +#define IDC_VBLANK_SCANLINES_TEXT 1308 +#define IDC_EXTRA_SCANLINES_TEXT 1309 +#define IDC_DATASIZE_GROUPBOX 1310 +#define IDC_DATATYPE_GROUPBOX 1311 +#define IDC_CHEAT_CODE_LABEL 1312 +#define IDC_CHEAT_ADDRESS_LABEL 1313 +#define IDC_CHEAT_VAL_LABEL 1314 +#define IDC_CHEAT_COM_LABEL 1315 +#define IDC_CHEAT_LABEL_KNOWN 1316 +#define IDC_BINARY 1317 +#define IDC_GAME_GENIE_ADDR 1501 +#define MENU_INESHEADEREDITOR 40001 +#define MENU_NETWORK 40040 +#define MENU_PALETTE 40041 +#define MENU_SOUND 40042 +#define MENU_TIMING 40043 +#define MENU_VIDEO 40044 +#define MENU_HOTKEYS 40045 +#define MENU_ABOUT 40046 +#define MENU_MSGLOG 40047 +#define MENU_CHEATS 40048 +#define MENU_AUTOFIRE_PATTERN_1 40050 +#define MENU_AUTOFIRE_PATTERN_2 40051 +#define MENU_AUTOFIRE_PATTERN_3 40052 +#define ID_DEBUG_DEBUGGER 40053 +#define MENU_AUTOFIRE_PATTERN_4 40053 +#define ID_DEBUG_PPUVIEWER 40054 +#define MENU_AUTOFIRE_PATTERN_5 40054 +#define ID_DEBUG_NAMETABLEVIEWER 40055 +#define MENU_AUTOFIRE_PATTERN_6 40055 +#define ID_DEBUG_HEXEDITOR 40056 +#define MENU_AUTOFIRE_PATTERN_7 40056 +#define ID_DEBUG_TRACELOGGER 40057 +#define MENU_AUTOFIRE_PATTERN_8 40057 +#define MENU_AUTOFIRE_PATTERN_9 40058 +#define ID_DEBUG_GAMEGENIEDECODER 40059 +#define MENU_AUTOFIRE_PATTERN_10 40059 +#define ID_DEBUG_CDLOGGER 40060 +#define MENU_AUTOFIRE_PATTERN_11 40060 +#define MENU_AUTOFIRE_PATTERN_12 40061 +#define MENU_AUTOFIRE_PATTERN_13 40062 +#define MENU_AUTOFIRE_PATTERN_14 40063 +#define MENU_AUTOFIRE_PATTERN_15 40064 +#define MENU_AUTOFIRE_OFFSET_1 40065 +#define MENU_AUTOFIRE_OFFSET_2 40066 +#define MENU_AUTOFIRE_OFFSET_3 40067 +#define MENU_AUTOFIRE_OFFSET_4 40068 +#define MENU_AUTOFIRE_OFFSET_5 40069 +#define MENU_AUTOFIRE_OFFSET_6 40070 +#define MENU_ALTERNATE_AB 40071 +#define MENU_PPUVIEWER 40074 +#define MENU_NAMETABLEVIEWER 40075 +#define MENU_HEXEDITOR 40076 +#define MENU_TRACELOGGER 40077 +#define MENU_CDLOGGER 40078 +#define MENU_GAMEGENIEDECODER 40079 +#define MENU_DEBUGGER 40080 +#define MENU_MEMORY_WATCH 40081 +#define ID_FILE_RECENT 40100 +#define MEMW_HELP_WCOMMANDS 40101 +#define MEMW_OPTIONS_LOADLASTFILE 40102 +#define MEMW_FILE_NEW 40103 +#define MEMW_FILE_OPEN 40104 +#define MEMW_FILE_SAVE 40105 +#define MEMW_FILE_SAVEAS 40106 +#define MEMW_FILE_CLOSE 40108 +#define MEMW_OPTIONS_LOADSTART 40109 +#define ID_FILE_RECORDMODE_TRUNCATE 40110 +#define ID_FILE_RECORDMODE_OVERWRITE 40111 +#define ID_FILE_RECORDMODE_INSERT 40112 +#define FCEUX_CONTEXT_RECORDMODE_TRUNCATE 40115 +#define FCEUX_CONTEXT_RECORDMODE_OVERWRITE 40116 +#define FCEUX_CONTEXT_RECORDMODE_INSERT 40117 +#define MENU_RECORD_WAV 40120 +#define MENU_STOP_WAV 40121 +#define ID_FILE_NEXTRECORDMODE 40127 +#define ID_FILE_PREVRECORDMODE 40128 +#define ACCEL_CTRL_O 40130 +#define ACCEL_CTRL_W 40132 +#define ACCEL_CTRL_S 40134 +#define ACCEL_CTRL_SHIFT_S 40135 +#define ACCEL_CTRL_N 40136 +#define ACCEL_CTRL_C 40138 +#define MENU_HELP 40140 +#define MENU_DISPLAY_BG 40147 +#define MENU_DISPLAY_OBJ 40148 +#define MENU_CONVERT_MOVIE 40150 +#define ID_TOOLS_TEXTHOOKER 40158 +#define ID_EDIT_DELETE 40169 +#define ID_FILE_SAVEPROJECT 40172 +#define ID_EDIT_TRUNCATE 40177 +#define ID_FILE_IMPORT 40178 +#define ID_FILE_OPENPROJECT 40181 +#define ID_FILE_SAVEPROJECTAS 40182 +#define ID_FILE_EXPORTFM2 40183 +#define ACCEL_CTRL_X 40184 +#define ACCEL_CTRL_V 40195 +#define ACCEL_CTRL_SHIFT_V 40196 +#define ACCEL_CTRL_DELETE 40197 +#define ACCEL_CTRL_B 40199 +#define ID_CONTEXT_SELECTED_TRUNCATE 40200 +#define ID_CONTEXT_SELECTED_INSERTFRAMES 40204 +#define ID_CONTEXT_SELECTED_DELETEFRAMES 40205 +#define ID_EDIT_SELECTALL 40214 +#define ID_MEMWVIEW_FILE_CLOSE 40217 +#define MENU_MV_FILE_GOTO_ADDRESS 40219 +#define ID_FILE_TRUNCATE_MOVIE 40221 +#define FCEUX_CONTEXT_TRUNCATE_MOVIE 40222 +#define ID_FILE_INSERT_1_FRAME 40223 +#define FCEUX_CONTEXT_INSERT_1_FRAME 40224 +#define ID_FILE_DELETE_1_FRAME 40225 +#define FCEUX_CONTEXT_DELETE_1_FRAME 40226 +#define ID_FILE_OPENLUAWINDOW 40229 +#define ID_FILE_CLOSELUAWINDOWS 40230 +#define MENU_DISPLAY_LAGCOUNTER 40237 +#define MENU_DISPLAY_FA_LAGSKIP 40239 +#define MENU_INPUTDISPLAY_0 40250 +#define MENU_INPUTDISPLAY_1 40251 +#define MENU_INPUTDISPLAY_2 40252 +#define MENU_INPUTDISPLAY_4 40253 +#define ID_DISPLAY_FRAMECOUNTER 40254 +#define MENU_CONFIG_BINDSAVES 40256 +#define MENU_MV_HELP 40258 +#define ID_NES_PAUSE 40263 +#define ID_NES_SPEEDUP 40265 +#define ID_NES_SLOWDOWN 40266 +#define ID_NES_NORMALSPEED 40268 +#define ID_NES_TURBO 40269 +#define ID_NES_SLOWESTSPEED 40270 +#define ID_FILE_SCREENSHOT 40272 +#define ID_FILE_PLAYMOVIEFROMBEGINNING 40274 +#define FCEU_CONTEXT_MOVIEHELP 40281 +#define FCEUX_CONTEXT_REPLAYMOVIE 40282 +#define FCEU_CONTEXT_OPENROM 40286 +#define FCEU_CONTEXT_FCEUHELP 40287 +#define FCEU_CONTEXT_PLAYMOVIEFROMBEGINNING 40295 +#define FCEU_CONTEXT_STOPMOVIE 40296 +#define FCEU_CONTEXT_CLOSEROM 40298 +#define FCEUX_CONTEXT_RECORDMOVIE 40303 +#define FCEUX_CONTEXT_SCREENSHOT 40305 +#define FCEUX_CONTEXT_REWINDTOLASTAUTO 40307 +#define FCEUX_CONTEXT_VIEWCOMMENTSSUBTITLES 40311 +#define MEMW_OPTIONS_EXPANDCOLLAPSE 40314 +#define FCEUX_CONTEXT_UNDOLOADSTATE 40316 +#define FCEUX_CONTEXT_MAKEBACKUP 40320 +#define MENU_MOVIEOPTIONS 40322 +#define FCEUX_CONTEXT_UNDOSAVESTATE 40324 +#define FCEUX_CONTEXT_RECENTROM1 40328 +#define ID_FILE_MOVIE_TOGGLEREAD 40331 +#define FCEUX_CONTEXT_READONLYTOGGLE 40335 +#define MENU_LOADSTATE 40343 +#define MENU_SAVESTATE 40344 +#define MENU_NEXTSAVESTATE 40347 +#define MENU_PREVIOUSSAVESTATE 40348 +#define MENU_VIEWSAVESLOTS 40350 +#define MENU_LUA_RECENT 40352 +#define MENU_MOVIE_RECENT 40354 +#define FCEUX_CONTEXT_LOADLASTMOVIE 40356 +#define FCEUX_CONTEXT_SAVEMOVIEAS 40358 +#define ID_FILE_TOGGLE_RECORDING_MOVIE 40359 +#define FCEUX_CONTEXT_TOGGLE_RECORDING 40360 +#define ID_OPTIONS_BINDTOMAINWINDOW 40361 +#define ID_NEWPPU 40365 +#define ID_OLDPPU 40366 +#define ID_CONFIG_SAVECONFIGFILE 40367 +#define RAMMENU_FILE_AUTOLOAD 40368 +#define RAMMENU_FILE_SAVEWINDOW 40369 +#define RAMMENU_FILE_SAVE 40370 +#define RAMMENU_FILE_SAVEAS 40371 +#define RAMMENU_FILE_OPEN 40372 +#define RAMMENU_FILE_APPEND 40373 +#define RAMMENU_FILE_NEW 40374 +#define RAMMENU_FILE_RECENT 40375 +#define ID_RAM_SEARCH 40376 +#define ID_RAM_WATCH 40377 +#define RW_MENU_FIRST_RECENT_FILE 40380 +#define RW_MENU_LAST_RECENT_FILE 40400 +#define ID_ENABLE_BACKUPSAVESTATES 40401 +#define ID_ENABLE_COMPRESSSAVESTATES 40402 +#define ID_AVI_DISMOVIEMESSAGE 40405 +#define ID_INPUTDISPLAY_OLDSTYLEDISP 40406 +#define ID_CONTEXT_FULLSAVESTATES 40409 +#define ID_FILE_SAVESCREENSHOTAS 40411 +#define FCEUX_CONTEXT_GUICONFIG 40418 +#define ID_CONTEXT_SELECTED_INSERTFRAMES2 40425 +#define ACCEL_CTRL_F 40429 +#define ID_CONFIG_SETGREENZONECAPACITY 40432 +#define ACCEL_CTRL_INSERT 40433 +#define ID_DISPLAY_RERECORDCOUNTER 40436 +#define ID_DISPLAY_MOVIESTATUSICON 40437 +#define ID_AVI_ENABLEHUDRECORDING 40440 +#define ACCEL_INS 40442 +#define ACCEL_DEL 40443 +#define ID_CONTEXT_SELECTED_CLEARFRAMES 40447 +#define ID_EDIT_CLEAR 40450 +#define ID_EDIT_INSERTFRAMES 40451 +#define ID_EDIT_INSERT 40452 +#define ID_CONFIG_BINDMARKERSTOINPUT 40454 +#define ACCEL_CTRL_A 40455 +#define ID_EDIT_SELECTMIDMARKERS 40457 +#define ID_SELECTED_SELECTMIDMARKERS 40458 +#define ID_EDIT_CLONEFRAMES 40460 +#define ACCEL_CTRL_SHIFT_INS 40461 +#define ID_SELECTED_CLONE 40463 +#define ACCEL_CTRL_Z 40465 +#define ACCEL_CTRL_Y 40466 +#define ID_EDIT_UNDO 40468 +#define ID_EDIT_REDO 40469 +#define ID_CONFIG_SETMAXUNDOLEVELS 40470 +#define ID_VIEW_JUMPWHENMAKINGUNDO 40472 +#define ID_CONFIG_BRANCHESRESTOREFULLMOVIE 40473 +#define ID_CONFIG_OLDBRANCHINGCONTROLS 40474 +#define ID_CONFIG_HUDINBRANCHSCREENSHOTS 40475 +#define ACCEL_CTRL_Q 40478 +#define ID_EDIT_SELECTIONUNDO 40481 +#define ID_EDIT_SELECTIONREDO 40482 +#define ID_EDIT_RESELECTCLIPBOARD 40483 +#define ID_FILE_SAVECOMPACT 40484 +#define ID_HELP_ABOUT 40485 +#define ID_VIEW_ENABLEHOTCHANGES 40488 +#define ID_VIEW_SHOWBRANCHSCREENSHOTS 40489 +#define ID_CONFIG_USE1PFORRECORDING 40491 +#define ID_CONFIG_COMBINECONSECUTIVERECORDINGS 40492 +#define ID_EDIT_PASTEINSERT 40495 +#define ACCEL_CTRL_PGUP 40502 +#define ACCEL_CTRL_PGDN 40503 +#define ACCEL_SHIFT_PGUP 40504 +#define ACCEL_SHIFT_PGDN 40505 +#define ID_VIEW_FOLLOWMARKERNOTECONTEXT 40507 +#define ID_VIEW_SHOWBRANCHTOOLTIPS 40508 +#define ID_CONFIG_USEINPUTKEYSFORCOLUMNSET 40509 +#define ID_CONFIG_EMPTYNEWMARKERNOTES 40510 +#define ID_VIEW_FINDNOTE 40515 +#define ID_FILE_CLOSE 40517 +#define ID_EDIT_PASTE 40520 +#define ID_EDIT_COPY 40521 +#define ID_EDIT_CUT 40522 +#define MENU_TASEDITOR 40524 +#define ID_FILE_NEW 40525 +#define ID_HELP_TOOLTIPS 40527 +#define ID_PATTERN_TEST 40534 +#define ID_EDIT_DESELECT 40536 +#define ID_SELECTED_DESELECT 40537 +#define ID_CONFIG_DRAWINPUTBYDRAGGING 40539 +#define ACCEL_CTRL_UP 40541 +#define ACCEL_CTRL_DOWN 40542 +#define ACCEL_CTRL_LEFT 40543 +#define ACCEL_CTRL_RIGHT 40544 +#define ACCEL_HOME 40545 +#define ACCEL_END 40546 +#define ACCEL_PGUP 40547 +#define ACCEL_PGDN 40548 +#define ACCEL_CTRL_HOME 40550 +#define ACCEL_CTRL_END 40551 +#define ACCEL_SHIFT_HOME 40552 +#define ACCEL_SHIFT_END 40553 +#define ACCEL_SHIFT_UP 40554 +#define ACCEL_SHIFT_DOWN 40555 +#define ACCEL_SHIFT_LEFT 40556 +#define ACCEL_SHIFT_RIGHT 40557 +#define ID_CONFIG_AUTOPAUSEATTHEENDOFMOVIE 40559 +#define ID_SELECTED_SETMARKERS 40560 +#define ID_SELECTED_REMOVEMARKERS 40561 +#define ID_HELP_OPEN_MANUAL 40564 +#define ID_DISPLAY_FPS 40565 +#define ID_CONFIG_ADJUSTLAG 40567 +#define ID_CONFIG_PATTERNSKIPSLAG 40568 +#define CLEAR_LOG 40569 +#define CLOSE_LOG 40570 +#define ID_SELECTED_UNGREENZONE 40571 +#define CHEAT_CONTEXT_POSSI_GOTOINHEXEDITOR 40572 +#define ID_CONFIG_ENABLEGREENZONING 40573 +#define ID_EMULATIONSPEED_SETFRAMEADVANCEDELAY 40574 +#define ID_EMULATIONSPEED_SETCUSTOMSPEEDFORFRAMEADVANCE 40576 +#define ID_EMULATIONSPEED_CUSTOMSPEED 40577 +#define ID_ENABLE_AUTORESUME 40579 +#define ID_CONFIG_SAVING_OPTIONS 40581 +#define ID_CDLFILENAME 40582 +#define ID_HIGHLIGHTING_FADEWHENPAUSED 40586 +#define ID_HIGHLIGHTING_SETFADINGPERIOD 40587 +#define ID_HIGHLIGHTING_HIGHLIGHT_ACTIVITY 40588 +#define MENU_MV_FILE_DUMP_64K 40590 +#define MENU_MV_FILE_DUMP_OAM 40592 +#define MENU_RAMINIT_DEFAULT 40593 +#define MENU_RAMINIT_FF 40594 +#define MENU_RAMINIT_00 40595 +#define MENU_RAMINIT_RANDOM 40596 +#define MENU_MV_FILE_LOAD_RAM 40597 +#define MENU_MV_FILE_LOAD_PPU 40598 +#define DISASM_CONTEXT_COPY 40598 +#define MENU_MV_FILE_LOAD_OAM 40599 +#define DISASM_CONTEXT_SELECTALL 40599 +#define CHEAT_CONTEXT_POSSI_ADDTOMEMORYWATCH 40600 +#define CHEAT_CONTEXT_POSSI_ADDCHEAT 40601 +#define CHEAT_CONTEXT_POSSI_ADDTORAMWATCH 40603 +#define MW_VALUELABEL2 65423 +#define MW_VALUELABEL1 65426 +#define IDC_STATIC_SLASHTEXT 65442 +#define IDC_BOOKMARK_NAME_TEXT 65532 +#define IDC_NTVIEW_SCANLINE_TEXT 65534 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 305 +#define _APS_NEXT_COMMAND_VALUE 40002 +#define _APS_NEXT_CONTROL_VALUE 1100 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif From 2d6bdcd0d1d21e673d55fcfae337b70d14f518f6 Mon Sep 17 00:00:00 2001 From: owomomo Date: Mon, 24 Jun 2019 20:32:02 +0800 Subject: [PATCH 05/19] ... --- src/drivers/win/res.rc | 419 ++++++++++++------------------------- src/drivers/win/resource.h | 30 ++- 2 files changed, 158 insertions(+), 291 deletions(-) diff --git a/src/drivers/win/res.rc b/src/drivers/win/res.rc index 70d22e6a..4255840f 100644 --- a/src/drivers/win/res.rc +++ b/src/drivers/win/res.rc @@ -12,7 +12,7 @@ #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// -// English (United States) resources +// English(United States) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US @@ -50,14 +50,10 @@ END // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. IDI_ICON3 ICON "res/taseditor-icon.ico" - IDI_ICON4 ICON "res/taseditor-icon32.ico" - ICON_1 ICON "res/ICON_1.ico" - ICON_2 ICON "res/ICON_2.ico" - ///////////////////////////////////////////////////////////////////////////// // // Menu @@ -713,44 +709,44 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTIO CAPTION "Directories Configuration" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN + LTEXT "Base &Directory",IDC_STATIC,10,10,47,8 + EDITTEXT EDIT_ROOT,71,9,158,12,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",BUTTON_ROOT,239,8,56,14 + LTEXT "&Roms",IDC_STATIC,10,28,19,8 + EDITTEXT EDIT_ROM,71,27,158,12,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",BUTTON_ROM,239,26,56,14 + LTEXT "&Battery Saves",IDC_STATIC,10,46,45,8 + EDITTEXT EDIT_BATTERY,71,45,158,12,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",BUTTON_BATTERY,239,44,56,14 + LTEXT "&Save States",IDC_STATIC,10,64,41,9 + EDITTEXT EDIT_STATE,71,63,158,12,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",BUTTON_STATE,239,62,56,14 + LTEXT "&FDS Bios Rom",IDC_STATIC,10,82,47,8 + EDITTEXT EDIT_FDSBIOS,71,81,158,12,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",BUTTON_FDSBIOS,239,80,56,14 + LTEXT "Screens&hots",IDC_STATIC,10,100,40,8 + EDITTEXT EDIT_SCREENSHOT,71,99,158,12,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",BUTTON_SCREENSHOT,239,98,56,14 + LTEXT "Chea&ts",IDC_STATIC,10,118,23,8 + EDITTEXT EDIT_CHEAT,71,117,158,12,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",BUTTON_CHEAT,239,116,56,14 + LTEXT "&Movies",IDC_STATIC,10,136,24,8 + EDITTEXT EDIT_MOVIE,71,135,158,12,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",BUTTON_MOVIE,239,134,56,14 + LTEXT "Memory &Watch",IDC_STATIC,10,154,52,9 + EDITTEXT EDIT_MEMWATCH,71,153,158,12,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",BUTTON_MEMWATCH,239,152,56,14 + LTEXT "&Input Presets",IDC_STATIC,10,172,42,8 + EDITTEXT EDIT_PRESET,71,171,158,12,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",210,239,170,56,14 + LTEXT "&Lua Scripts",IDC_STATIC,10,190,36,8 + EDITTEXT EDIT_LUA,71,189,158,12,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",211,239,188,56,14 + LTEXT "A&vi Output",IDC_STATIC,10,208,34,8 + EDITTEXT EDIT_AVI,71,207,158,12,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",BUTTON_AVI,239,206,56,14 DEFPUSHBUTTON "OK",CLOSE_BUTTON,175,230,56,14 PUSHBUTTON "Cancel",BTN_CANCEL,239,230,56,14 - EDITTEXT 113,71,9,158,12,ES_AUTOHSCROLL - EDITTEXT EDIT_ROMS,71,27,158,12,ES_AUTOHSCROLL - EDITTEXT 101,71,45,158,12,ES_AUTOHSCROLL - EDITTEXT 102,71,63,158,12,ES_AUTOHSCROLL - EDITTEXT 103,71,81,158,12,ES_AUTOHSCROLL - EDITTEXT 104,71,99,158,12,ES_AUTOHSCROLL - EDITTEXT 105,71,117,158,12,ES_AUTOHSCROLL - EDITTEXT 106,71,135,158,12,ES_AUTOHSCROLL - EDITTEXT 107,71,153,158,12,ES_AUTOHSCROLL - EDITTEXT 110,71,171,158,12,ES_AUTOHSCROLL - EDITTEXT 111,71,189,158,12,ES_AUTOHSCROLL - EDITTEXT 112,71,207,158,12,ES_AUTOHSCROLL - PUSHBUTTON "Browse...",213,239,8,56,14 - PUSHBUTTON "Browse...",BUTTON_ROMS,239,26,56,14 - PUSHBUTTON "Browse...",201,239,44,56,14 - PUSHBUTTON "Browse...",202,239,62,56,14 - PUSHBUTTON "Browse...",203,239,80,56,14 - PUSHBUTTON "Browse...",204,239,98,56,14 - PUSHBUTTON "Browse...",205,239,116,56,14 - PUSHBUTTON "Browse...",206,239,134,56,14 - PUSHBUTTON "Browse...",207,239,152,56,14 - PUSHBUTTON "Browse...",210,239,170,56,14 - PUSHBUTTON "Browse...",211,239,188,56,14 - PUSHBUTTON "Browse...",212,239,206,56,14 - LTEXT "Base Directory",IDC_STATIC,10,10,47,8 - LTEXT "Roms",IDC_STATIC,10,28,19,8 - LTEXT "Battery Saves",IDC_STATIC,10,46,45,8 - LTEXT "Save States",IDC_STATIC,10,64,41,9 - LTEXT "FDS Bios Rom",IDC_STATIC,10,82,47,8 - LTEXT "Screenshots",IDC_STATIC,10,100,40,8 - LTEXT "Cheats",IDC_STATIC,10,118,23,8 - LTEXT "Movies",IDC_STATIC,10,136,24,8 - LTEXT "Memory Watch",IDC_STATIC,10,154,52,9 - LTEXT "Input Presets",IDC_STATIC,10,172,42,8 - LTEXT "Lua Scripts",IDC_STATIC,10,190,36,8 - LTEXT "Avi Output",IDC_STATIC,10,208,34,8 END DWBDIALOG DIALOG 33, 99, 250, 56 @@ -880,7 +876,6 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTIO CAPTION "GUI Configuration" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - DEFPUSHBUTTON "Close",BTN_CLOSE,65,136,56,14 CONTROL "Load ""File Open"" dialog when FCEUX starts.",CB_LOAD_FILE_OPEN, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,8,168,12 CONTROL "Automatically hide menu on game load.",CB_AUTO_HIDE_MENU, @@ -895,34 +890,35 @@ BEGIN CONTROL "Partially disable Visual Themes (Requires restart)",CB_PARTIALVISUALTHEME, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,100,168,12 CONTROL "Single Instance Mode",IDC_SINGLEINSTANCE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,117,167,10 + DEFPUSHBUTTON "Close",BTN_CLOSE,65,136,56,14 END INPUTCONFIG DIALOGEX 122, 105, 349, 199 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Input Configuration" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "Port 1:",102,20,31,152,50 - COMBOBOX COMBO_PAD1,27,57,74,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - DEFPUSHBUTTON "Configure",BTN_PORT1,109,40,56,14 - GROUPBOX "Port 2:",103,176,31,162,50 - COMBOBOX COMBO_PAD2,183,57,84,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - DEFPUSHBUTTON "Configure",BTN_PORT2,275,40,56,14 + COMBOBOX COMBO_PAD1,27,57,71,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "Configure",BTN_PORT1,109,43,56,14 + GROUPBOX "Port 2:",103,176,31,152,50 + COMBOBOX COMBO_PAD2,183,57,71,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "Configure",BTN_PORT2,265,41,56,14 GROUPBOX "NES-style Input Ports",108,10,8,328,83 GROUPBOX "Famicom Expansion Port:",109,176,93,162,50 COMBOBOX COMBO_FAM,183,122,84,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP DEFPUSHBUTTON "Configure",BTN_FAM,275,105,56,14 - CONTROL "",65487,"Static",SS_BLACKFRAME,27,41,74,12 - CONTROL "",65486,"Static",SS_BLACKFRAME,183,41,84,12 + CONTROL "",65487,"Static",SS_BLACKFRAME,27,41,71,12 + CONTROL "",65486,"Static",SS_BLACKFRAME,183,41,71,12 CONTROL "",65485,"Static",SS_BLACKFRAME,183,106,84,12 - CTEXT "",TXT_PAD1,30,42,68,10 - CTEXT "",TXT_PAD2,186,42,78,10 + CTEXT "",TXT_PAD1,30,42,65,10 + CTEXT "",TXT_PAD2,186,42,65,10 CTEXT "",TXT_FAM,186,107,78,10 PUSHBUTTON "Set",BTN_AUTO_HOLD,19,157,45,13 LTEXT "not assigned",LBL_AUTO_HOLD,71,159,87,8 PUSHBUTTON "Clear",BTN_CLEAR_AH,19,172,45,13 LTEXT "not assigned",LBL_CLEAR_AH,71,174,87,8 - DEFPUSHBUTTON "Close",BTN_CLOSE,275,177,56,14 + DEFPUSHBUTTON "Close",BTN_CLOSE,282,177,56,14 GROUPBOX "Input Presets",113,10,93,162,50 CONTROL "Allow Left+Right / Up+Down",BTN_ALLOW_LRUD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,183,157,107,10 PUSHBUTTON "Set",BTN_PRESET_SET1,34,103,37,11 @@ -934,7 +930,7 @@ BEGIN PUSHBUTTON "Export",BTN_PRESET_EXPORT1,123,103,37,11 PUSHBUTTON "Export",BTN_PRESET_EXPORT2,123,115,37,11 PUSHBUTTON "Export",BTN_PRESET_EXPORT3,123,127,37,11 - GROUPBOX "Auto-Hold",118,10,146,162,46 + GROUPBOX "Auto-Hold",118,10,146,162,44 GROUPBOX "Emulation",119,176,146,162,25 CTEXT "1",IDC_STATIC,18,105,8,8 CTEXT "2",IDC_STATIC,18,116,8,8 @@ -950,7 +946,6 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTIO CAPTION "mahjong" FONT 8, "MS Shell Dlg" BEGIN - DEFPUSHBUTTON "Close",BTN_CLOSE,277,91,56,14 GROUPBOX "",321,8,8,324,73,WS_GROUP PUSHBUTTON "A",300,14,42,16,12 PUSHBUTTON "B",301,36,42,16,12 @@ -973,6 +968,7 @@ BEGIN PUSHBUTTON " ",318,212,58,16,12 PUSHBUTTON " ",319,234,58,16,12 PUSHBUTTON " ",320,256,58,16,12 + DEFPUSHBUTTON "Close",BTN_CLOSE,277,91,56,14 END MAPINPUT DIALOGEX 0, 0, 318, 294 @@ -984,8 +980,8 @@ BEGIN PUSHBUTTON "Cancel",BTN_CANCEL,205,274,50,14 CONTROL "List2",LV_MAPPING,"SysListView32",LVS_REPORT | WS_BORDER | WS_TABSTOP,7,7,304,243 PUSHBUTTON "Restore Defaults",BTN_RESTORE_DEFAULTS,7,274,75,14 - COMBOBOX COMBO_FILTER,32,255,279,193,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP RTEXT "Filter:",65484,6,255,21,12,SS_CENTERIMAGE | NOT WS_GROUP + COMBOBOX COMBO_FILTER,32,255,279,193,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP END MESSAGELOG DIALOGEX 33, 38, 197, 229 @@ -1035,31 +1031,31 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTIO CAPTION "Palette Configuration" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - DEFPUSHBUTTON "Close",BUTTON_CLOSE,162,195,56,14 GROUPBOX "NES Palette",302,10,8,102,81,WS_GROUP DEFPUSHBUTTON "&Load Palette...",BTN_PALETTE_LOAD,18,39,58,14 CONTROL "Enabled",CHECK_PALETTE_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,22,87,12 + CTEXT "Tint",65463,123,34,85,8,WS_DISABLED CONTROL "Tint",CTL_TINT_TRACKBAR,"msctls_trackbar32",WS_DISABLED | WS_TABSTOP,121,44,91,11 GROUPBOX "NTSC Color Emulation",101,115,8,103,81,WS_GROUP - CONTROL "Hue",CTL_HUE_TRACKBAR,"msctls_trackbar32",WS_DISABLED | WS_TABSTOP,121,69,91,11 CTEXT "Hue",64395,124,59,85,8,WS_DISABLED - CTEXT "Tint",65463,123,34,85,8,WS_DISABLED + CONTROL "Hue",CTL_HUE_TRACKBAR,"msctls_trackbar32",WS_DISABLED | WS_TABSTOP,121,69,91,11 CONTROL "Force Grayscale",CHECK_PALETTE_GRAYSCALE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,57,85,12 CONTROL "Use Custom Palette",CHECK_PALETTE_CUSTOM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,22,85,12 GROUPBOX "PAL Emulation",IDC_STATIC,10,89,208,66,WS_DISABLED - CONTROL "",CTL_PALSAT_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,78,110,70,15 LTEXT "Saturation:",STATIC_SATVALUE,83,100,58,8,WS_DISABLED + CONTROL "",CTL_PALSAT_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,78,110,70,15 PUSHBUTTON "Reset",BTN_PALETTE_RESET,161,132,50,14,WS_DISABLED - CONTROL "",CTL_PALNOTCH_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,11,110,68,15 LTEXT "Notch:",STATIC_NOTCHVALUE,16,100,46,8,WS_DISABLED - CONTROL "",CTL_PALSHARP_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,156,109,61,15 + CONTROL "",CTL_PALNOTCH_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,11,110,68,15 LTEXT "Sharpness:",STATIC_SHARPVALUE,161,99,50,8,WS_DISABLED + CONTROL "",CTL_PALSHARP_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,156,109,61,15 LTEXT "NTSC Color Emulation overrides Internal default Palette.\nIndividual Game Palette overrides Internal+NTSC Palettes.\nCustom Palette overrides all of the above.\nPAL Emulation overrides other choices when PAL filter is selected",IDC_STATIC,10,159,208,33 - CONTROL "",CTL_PALCONTRAST_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,11,134,67,15 LTEXT "Contrast: ",STATIC_CONTRASTVALUE,16,126,55,8,WS_DISABLED - CONTROL "",CTL_PALBRIGHT_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,78,133,70,15 + CONTROL "",CTL_PALCONTRAST_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,11,134,67,15 LTEXT "Brightness: ",STATIC_BRIGHTVALUE,83,125,61,8,WS_DISABLED + CONTROL "",CTL_PALBRIGHT_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,78,133,70,15 CONTROL "De-emphasis bit swap",CHECK_DEEMPH_SWAP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,73,83,10 + DEFPUSHBUTTON "Close",BUTTON_CLOSE,162,195,56,14 END POWERPADDIALOG DIALOG 30, 123, 131, 119 @@ -1257,16 +1253,16 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_VISIB CAPTION "Timing Configuration" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - DEFPUSHBUTTON "Close",1,137,87,56,14 CONTROL "Disable speed throttling used when sound is disabled.",CB_DISABLE_SPEED_THROTTLING, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,8,183,12 CONTROL "Set high-priority thread.",CB_SET_HIGH_PRIORITY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,24,102,12 CONTROL "Overclocking (old PPU only).",CB_OVERCLOCKING,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,41,101,10 - EDITTEXT IDC_EXTRA_SCANLINES,104,55,84,14,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED LTEXT "Post-render scanlines:",IDC_EXTRA_SCANLINES_TEXT,21,57,74,8,WS_DISABLED + EDITTEXT IDC_EXTRA_SCANLINES,104,55,84,14,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED CONTROL "Don't overclock 7-bit samples.",CB_SKIP_7BIT,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,10,87,111,10 - EDITTEXT IDC_VBLANK_SCANLINES,104,68,84,14,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED LTEXT "VBlank scanlines:",IDC_VBLANK_SCANLINES_TEXT,21,71,76,8,WS_DISABLED + EDITTEXT IDC_VBLANK_SCANLINES,104,68,84,14,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED + DEFPUSHBUTTON "Close",1,137,87,56,14 END MOVIEOPTIONS DIALOGEX 65520, 76, 147, 222 @@ -1274,7 +1270,6 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTIO CAPTION "Movie Options" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - DEFPUSHBUTTON "Close",IDC_MOVIE_CLOSE,48,200,49,14,BS_CENTER CONTROL "Pause after playback",IDC_MOVIE_PAUSEAFTERPLAYBACK, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,26,110,10 CONTROL "Bind savestates to movies",IDC_MOVIE_BINDSAVESTATES, @@ -1294,6 +1289,7 @@ BEGIN CONTROL "Always suggest Read-Only replay",IDC_MOVIE_SUGGEST_READONLY, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,8,125,10 LTEXT "(VBA-rr and SNES9x style)",IDC_STATIC,25,184,93,8 + DEFPUSHBUTTON "Close",IDC_MOVIE_CLOSE,48,200,49,14,BS_CENTER END DWBDIALOGSIMPLE DIALOGEX 33, 99, 250, 39 @@ -1480,7 +1476,7 @@ BEGIN END TRACER DIALOGEX 0, 0, 317, 181 -STYLE DS_SETFONT | DS_3DLOOK | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME +STYLE DS_SETFONT | DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME CAPTION "Trace Logger" FONT 8, "MS Shell Dlg", 400, 0, 0x0 BEGIN @@ -1513,18 +1509,18 @@ BEGIN CONTROL "Only log newly mapped code",IDC_CHECK_LOG_NEW_INSTRUCTIONS, "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,8,162,102,10 CONTROL "Only log code that accesses newly mapped data",IDC_CHECK_LOG_NEW_DATA, - "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,113,162,171,10 + "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,112,162,171,10 CONTROL "Log Bank number",IDC_CHECK_LOG_BANK_NUMBER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,211,121,100,10 END -ADDBP DIALOGEX 66, 83, 197, 127 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +ADDBP DIALOGEX 66, 83, 197, 125 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Add Breakpoint..." FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN LTEXT "&Address:",-1,14,6,30,10 - EDITTEXT IDC_ADDBP_ADDR_START,48,4,30,12,ES_UPPERCASE | ES_WANTRETURN CTEXT "-",65534,78,6,8,8 + EDITTEXT IDC_ADDBP_ADDR_START,48,4,30,12,ES_UPPERCASE | ES_WANTRETURN EDITTEXT IDC_ADDBP_ADDR_END,87,4,30,12,ES_UPPERCASE | ES_WANTRETURN CONTROL "&Forbid",IDC_ADDBP_MODE_F,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,154,6,33,12 GROUPBOX "",112,3,18,185,50,WS_TABSTOP @@ -1573,7 +1569,7 @@ BEGIN END ROMPATCHER DIALOGEX 84, 67, 304, 135 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Rom Data Editor" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN @@ -1667,16 +1663,16 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPT CAPTION "Find" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN + LTEXT "Find &What:",-1,7,9,38,8 EDITTEXT IDC_MEMVIEWFIND_WHAT,47,7,171,14,ES_AUTOHSCROLL - LTEXT "Find What:",-1,7,9,38,8 GROUPBOX "Type",-1,83,29,187,45 - CONTROL "Hex",IDC_MEMVIEWFIND_TYPE_HEX,"Button",BS_AUTORADIOBUTTON | WS_GROUP,93,43,29,10 - CONTROL "Text (Uses Currently Loaded Table as Reference)",IDC_MEMVIEWFIND_TYPE_TEXT, + CONTROL "&Hex",IDC_MEMVIEWFIND_TYPE_HEX,"Button",BS_AUTORADIOBUTTON | WS_GROUP,93,43,29,10 + CONTROL "&Text (Uses Currently Loaded Table as Reference)",IDC_MEMVIEWFIND_TYPE_TEXT, "Button",BS_AUTORADIOBUTTON,93,56,172,10 GROUPBOX "Direction",-1,9,29,65,44 - CONTROL "Up",IDC_MEMVIEWFIND_DIR_UP,"Button",BS_AUTORADIOBUTTON | WS_GROUP,18,43,25,10 - CONTROL "Down",IDC_MEMVIEWFIND_DIR_DOWN,"Button",BS_AUTORADIOBUTTON,18,56,35,10 - DEFPUSHBUTTON "Find Next",IDC_MEMVIEWFIND_NEXT,225,7,50,14 + CONTROL "&Up",IDC_MEMVIEWFIND_DIR_UP,"Button",BS_AUTORADIOBUTTON | WS_GROUP,18,43,25,10 + CONTROL "&Down",IDC_MEMVIEWFIND_DIR_DOWN,"Button",BS_AUTORADIOBUTTON,18,56,35,10 + DEFPUSHBUTTON "&Find Next",IDC_MEMVIEWFIND_NEXT,225,7,50,14 END IDD_RECORDINP DIALOGEX 0, 0, 276, 86 @@ -1684,16 +1680,16 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTI CAPTION "Record input" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - DEFPUSHBUTTON "OK",1,167,66,50,14 GROUPBOX "",65501,3,0,269,60 - RTEXT "File:",65500,28,11,24,10,SS_CENTERIMAGE | NOT WS_GROUP,WS_EX_RIGHT - PUSHBUTTON "Cancel",2,221,66,50,14 + RTEXT "&File:",65500,28,11,24,10,SS_CENTERIMAGE | NOT WS_GROUP,WS_EX_RIGHT EDITTEXT IDC_EDIT_FILENAME,55,10,189,12,ES_AUTOHSCROLL PUSHBUTTON "...",IDC_BUTTON_BROWSEFILE,249,10,18,14 + RTEXT "&Record From:",65498,9,27,43,8,0,WS_EX_RIGHT COMBOBOX IDC_COMBO_RECORDFROM,55,25,189,154,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - RTEXT "Record From:",65498,9,27,43,8,0,WS_EX_RIGHT + RTEXT "&Author:",65502,18,43,34,10,SS_CENTERIMAGE | NOT WS_GROUP,WS_EX_RIGHT EDITTEXT IDC_EDIT_AUTHOR,55,41,189,14,ES_AUTOHSCROLL - RTEXT "Author:",65502,18,43,34,10,SS_CENTERIMAGE | NOT WS_GROUP,WS_EX_RIGHT + DEFPUSHBUTTON "OK",1,167,66,50,14 + PUSHBUTTON "Cancel",2,221,66,50,14 END IDD_REPLAYINP DIALOGEX 0, 0, 300, 202 @@ -1701,36 +1697,36 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTI CAPTION "Play Movie" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - DEFPUSHBUTTON "OK",1,189,183,50,14 - GROUPBOX "",65497,3,0,293,180 + GROUPBOX "",65497,3,0,293,179 RTEXT "File:",65498,8,11,24,10,SS_CENTERIMAGE | NOT WS_GROUP COMBOBOX IDC_COMBO_FILENAME,35,10,257,128,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Cancel",2,243,183,50,14 RTEXT "Length:",64397,10,67,59,8 + EDITTEXT IDC_LABEL_LENGTH,76,67,59,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP RTEXT "Frames:",65496,10,78,59,8 + EDITTEXT IDC_LABEL_FRAMES,76,78,59,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP RTEXT "Record Count:",65495,10,89,59,8 + EDITTEXT IDC_LABEL_UNDOCOUNT,76,89,59,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP RTEXT "ROM Used:",65493,10,111,59,8 + EDITTEXT IDC_LABEL_ROMUSED,76,111,187,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP RTEXT "ROM Checksum:",65492,10,122,59,8 + EDITTEXT IDC_LABEL_ROMCHECKSUM,76,122,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP RTEXT "Recorded From:",65491,10,100,59,8 + EDITTEXT IDC_LABEL_RECORDEDFROM,76,100,123,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP RTEXT "Emulator Used:",65490,10,144,59,8 + EDITTEXT IDC_LABEL_EMULATORUSED,76,144,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP RTEXT "Current ROM Sum:",65489,8,133,61,8 + EDITTEXT IDC_LABEL_CURRCHECKSUM,76,133,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP CONTROL "Pause movie at frame",IDC_CHECK_STOPMOVIE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,49,83,10 EDITTEXT IDC_EDIT_STOPFRAME,103,47,39,12,ES_AUTOHSCROLL | ES_NUMBER GROUPBOX "Parameters",IDC_STATIC,13,25,278,40 PUSHBUTTON "Metadata...",IDC_BUTTON_METADATA,239,71,50,14 - EDITTEXT IDC_LABEL_EMULATORUSED,76,144,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP - EDITTEXT IDC_LABEL_CURRCHECKSUM,76,133,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP - EDITTEXT IDC_LABEL_ROMCHECKSUM,76,122,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP - EDITTEXT IDC_LABEL_ROMUSED,76,111,187,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP - EDITTEXT IDC_LABEL_RECORDEDFROM,76,100,123,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP CONTROL "Open &Read-Only",IDC_CHECK_READONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,36,69,10 - EDITTEXT IDC_LABEL_UNDOCOUNT,76,89,59,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP - EDITTEXT IDC_LABEL_FRAMES,76,78,59,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP - EDITTEXT IDC_LABEL_LENGTH,76,67,59,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP RTEXT "Pal:",65494,10,155,59,8 EDITTEXT IDC_LABEL_PALUSED,76,155,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP RTEXT "New PPU:",65499,10,166,59,8 EDITTEXT IDC_LABEL_NEWPPUUSED,76,166,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP + DEFPUSHBUTTON "OK",1,189,183,50,14 + PUSHBUTTON "Cancel",2,243,183,50,14 END TASEDITOR DIALOGEX 0, 0, 326, 348 @@ -1802,16 +1798,16 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTI CAPTION "Create New Project" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN - DEFPUSHBUTTON "OK",IDOK,7,80,50,14 - PUSHBUTTON "Cancel",IDCANCEL,114,80,50,14 CONTROL " Copy current Input",IDC_COPY_INPUT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,80,14,75,10 CONTROL " 1 player",IDC_RADIO_1PLAYER,"Button",BS_AUTORADIOBUTTON,16,14,45,10 CONTROL " 2 players",IDC_RADIO_2PLAYERS,"Button",BS_AUTORADIOBUTTON,16,27,45,10 CONTROL " Fourscore",IDC_RADIO_FOURSCORE,"Button",BS_AUTORADIOBUTTON,16,40,45,10 CONTROL " Copy current Markers",IDC_COPY_MARKERS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,80,27,83,10 GROUPBOX "Input type",IDC_STATIC,5,3,67,52,BS_CENTER - EDITTEXT IDC_EDIT_AUTHOR,36,61,127,13,ES_AUTOHSCROLL LTEXT "Author:",IDC_STATIC,8,63,26,9 + EDITTEXT IDC_EDIT_AUTHOR,36,61,127,13,ES_AUTOHSCROLL + DEFPUSHBUTTON "OK",IDOK,7,80,50,14 + PUSHBUTTON "Cancel",IDCANCEL,114,80,50,14 END IDD_TASEDITOR_EXPORT DIALOGEX 0, 0, 158, 86 @@ -1819,13 +1815,13 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIB CAPTION "Export to FM2" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN - DEFPUSHBUTTON "Export",IDOK,7,66,50,14 - PUSHBUTTON "Cancel",IDCANCEL,100,66,50,14 CONTROL " 1 player",IDC_RADIO_1PLAYER,"Button",BS_AUTORADIOBUTTON | WS_GROUP,8,8,47,10 CONTROL " 2 players",IDC_RADIO_2PLAYERS,"Button",BS_AUTORADIOBUTTON,8,21,47,10 CONTROL " Fourscore",IDC_RADIO_FOURSCORE,"Button",BS_AUTORADIOBUTTON,8,35,47,10 CONTROL " Convert Marker Notes to Movie Subtitles",IDC_NOTES_TO_SUBTITLES, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,50,146,10 + DEFPUSHBUTTON "Export",IDOK,7,66,50,14 + PUSHBUTTON "Cancel",IDCANCEL,100,66,50,14 END IDD_TASEDITOR_FINDNOTE DIALOGEX 0, 0, 228, 49 @@ -1966,7 +1962,7 @@ BEGIN LISTBOX IDC_LIST1,7,7,251,120,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -TEXTHOOKER DIALOGEX 0, 0, 437, 314 +TEXTHOOKER DIALOGEX 0, 0, 456, 327 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_ACCEPTFILES CAPTION "Text Hooker" @@ -2062,16 +2058,16 @@ CAPTION "Lua Script" MENU LUAWINDOW_MENU FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN - PUSHBUTTON "&Browse...",IDC_BUTTON_LUABROWSE,7,31,48,16 - PUSHBUTTON "&Run",IDC_BUTTON_LUARUN,213,31,50,16 - PUSHBUTTON "&Stop",IDC_BUTTON_LUASTOP,160,31,50,16 - EDITTEXT IDC_EDIT_LUAPATH,7,16,256,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_LUAARGS,47,50,216,14,ES_AUTOHSCROLL - EDITTEXT IDC_LUACONSOLE,7,80,256,60,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL - LTEXT "Output Console:",IDC_STATIC,7,70,56,8 LTEXT "Script File:",IDC_STATIC,7,7,36,8 - LTEXT "Arguments:",IDC_STATIC,7,52,40,8 + EDITTEXT IDC_EDIT_LUAPATH,7,16,256,14,ES_AUTOHSCROLL + PUSHBUTTON "&Browse...",IDC_BUTTON_LUABROWSE,7,31,48,16 PUSHBUTTON "Edit",IDC_BUTTON_LUAEDIT,58,31,46,16 + PUSHBUTTON "&Stop",IDC_BUTTON_LUASTOP,160,31,50,16 + PUSHBUTTON "&Run",IDC_BUTTON_LUARUN,213,31,50,16 + LTEXT "Output Console:",IDC_STATIC,7,70,56,8 + EDITTEXT IDC_LUACONSOLE,7,80,256,60,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL + LTEXT "Arguments:",IDC_STATIC,7,52,40,8 + EDITTEXT IDC_EDIT_LUAARGS,47,50,216,14,ES_AUTOHSCROLL END VIDEOCONFIG DIALOGEX 65520, 76, 511, 170 @@ -2111,12 +2107,12 @@ BEGIN COMBOBOX IDC_VIDEOCONFIG_SYNC_METHOD_WIN,236,106,103,47,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP GROUPBOX "Drawing Area",65494,351,50,154,65,WS_GROUP LTEXT "First line:",65436,367,68,40,9 - LTEXT "Last line:",65435,367,84,40,9 CTEXT "NTSC",65434,413,57,27,8 - CTEXT "PAL/Dendy",65433,455,57,48,8 EDITTEXT IDC_SCANLINE_FIRST_NTSC,414,66,27,12,ES_RIGHT | ES_NUMBER - EDITTEXT IDC_SCANLINE_LAST_NTSC,414,83,27,12,ES_RIGHT | ES_NUMBER + CTEXT "PAL/Dendy",65433,455,57,48,8 EDITTEXT IDC_SCANLINE_FIRST_PAL,465,66,27,12,ES_RIGHT | ES_NUMBER + LTEXT "Last line:",65435,367,84,40,9 + EDITTEXT IDC_SCANLINE_LAST_NTSC,414,83,27,12,ES_RIGHT | ES_NUMBER EDITTEXT IDC_SCANLINE_LAST_PAL,465,83,27,12,ES_RIGHT | ES_NUMBER CONTROL "Clip left and right sides (8 px on each)",IDC_VIDEOCONFIG_CLIPSIDES, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,357,98,140,12 @@ -2135,8 +2131,8 @@ BEGIN EDITTEXT IDC_TVASPECT_Y,458,28,41,12,ES_AUTOHSCROLL | WS_DISABLED CTEXT "/",IDC_STATIC_SLASHTEXT,449,31,8,8,WS_DISABLED LTEXT "DirectDraw:",65454,11,126,46,10 - LTEXT "DirectDraw:",65455,188,125,46,10 COMBOBOX IDC_VIDEOCONFIG_DIRECTDRAW_FS,59,123,105,50,CBS_DROPDOWNLIST | WS_TABSTOP + LTEXT "DirectDraw:",65455,188,125,46,10 COMBOBOX IDC_VIDEOCONFIG_DIRECTDRAW_WIN,236,123,103,47,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP END @@ -2198,13 +2194,13 @@ BEGIN PUSHBUTTON "Remove",IDC_C_WATCH_REMOVE,226,83,34,14 PUSHBUTTON "New",IDC_C_WATCH,226,100,34,14 PUSHBUTTON "Duplicate",IDC_C_WATCH_DUPLICATE,226,117,34,14 - PUSHBUTTON "Add Cheat",IDC_C_ADDCHEAT,222,163,42,16,WS_DISABLED - GROUPBOX "Watches",IDC_STATIC,222,6,42,152 + PUSHBUTTON "Add Cheat",IDC_C_ADDCHEAT,223,168,42,16,WS_DISABLED + GROUPBOX "Watches",IDC_STATIC,222,11,42,145 CONTROL "",ID_WATCHES_UPDOWN,"msctls_updown32",WS_TABSTOP,232,23,19,36 PUSHBUTTON "Separator",IDC_C_WATCH_SEPARATE,225,137,36,14 END -IDD_EDITWATCH DIALOGEX 0, 0, 177, 115 +IDD_EDITWATCH DIALOGEX 0, 0, 181, 95 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION " Edit Watch" FONT 8, "MS Shell Dlg", 400, 0, 0x1 @@ -2213,17 +2209,16 @@ BEGIN EDITTEXT IDC_EDIT_COMPAREADDRESS,48,10,65,12,ES_UPPERCASE | ES_AUTOHSCROLL CTEXT "&Notes:",IDC_PROMPT_TEXT,23,24,22,8 EDITTEXT IDC_PROMPT_EDIT,48,22,119,12,ES_AUTOHSCROLL - GROUPBOX "Data Type",IDC_DATATYPE_GROUPBOX,14,37,75,53,0,WS_EX_TRANSPARENT + GROUPBOX "Data Type",IDC_DATATYPE_GROUPBOX,14,37,75,42,0,WS_EX_TRANSPARENT CONTROL "&Signed",IDC_SIGNED,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,18,47,67,9 CONTROL "&Unsigned",IDC_UNSIGNED,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,18,57,67,9 CONTROL "&Hexadecimal",IDC_HEX,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,18,67,67,9 - CONTROL "&Binary",IDC_BINARY,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,18,77,67,9 - GROUPBOX "Data Size",IDC_DATASIZE_GROUPBOX,94,37,73,52,0,WS_EX_TRANSPARENT + GROUPBOX "Data Size",IDC_DATASIZE_GROUPBOX,94,37,73,42,0,WS_EX_TRANSPARENT CONTROL "&1 byte",IDC_1_BYTE,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,98,47,61,11 CONTROL "&2 bytes",IDC_2_BYTES,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,98,57,61,11 CONTROL "&4 bytes",IDC_4_BYTES,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,98,67,61,11 - DEFPUSHBUTTON "&OK",IDOK,66,93,50,14 - PUSHBUTTON "&Cancel",IDCANCEL,118,93,50,14 + DEFPUSHBUTTON "OK",IDOK,66,80,50,14 + PUSHBUTTON "Cancel",IDCANCEL,120,80,50,14 END DLG_SNESPAD DIALOGEX 4, 109, 243, 121 @@ -2283,16 +2278,16 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSM CAPTION "Symbolic Debug Naming" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN - DEFPUSHBUTTON "OK",IDOK,132,62,50,14 - PUSHBUTTON "Cancel",IDCANCEL,189,62,50,14 LTEXT "File",IDC_STATIC,7,7,15,9 - EDITTEXT IDC_SYMBOLIC_ADDRESS,38,24,33,13,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP + EDITTEXT IDC_SYMBOLIC_FILENAME,24,6,215,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP LTEXT "Address",IDC_STATIC,6,26,30,10 - EDITTEXT IDC_SYMBOLIC_NAME,107,24,132,13,ES_AUTOHSCROLL + EDITTEXT IDC_SYMBOLIC_ADDRESS,38,24,33,13,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP LTEXT "Name",IDC_STATIC,83,26,22,10 + EDITTEXT IDC_SYMBOLIC_NAME,107,24,132,13,ES_AUTOHSCROLL LTEXT "Comment",IDC_STATIC,6,45,37,10 EDITTEXT IDC_SYMBOLIC_COMMENT,45,43,194,13,ES_AUTOHSCROLL - EDITTEXT IDC_SYMBOLIC_FILENAME,24,6,215,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP + DEFPUSHBUTTON "OK",IDOK,132,62,50,14 + PUSHBUTTON "Cancel",IDCANCEL,189,62,50,14 END IDD_REPLAY_METADATA DIALOGEX 0, 0, 325, 250 @@ -2301,7 +2296,7 @@ CAPTION "Movie Metadata" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN DEFPUSHBUTTON "Close",IDCANCEL,268,229,50,14 - CONTROL "",IDC_LIST1,"SysListView32",LVS_REPORT | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,7,7,311,214 + CONTROL "",IDC_LIST1,"SysListView32",LVS_REPORT | LVS_ALIGNLEFT | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,7,7,311,214 END IDD_EDIT_HEADER DIALOGEX 0, 0, 321, 258 @@ -2358,7 +2353,7 @@ BEGIN COMBOBOX IDC_VS_PPU_COMBO,155,154,140,30,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_DISABLED | WS_VSCROLL | WS_TABSTOP CONTROL "iNES 1.0 Unofficial Properties",IDC_CHECK_UNOFFICIAL, "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_DISABLED | WS_TABSTOP,14,164,103,10 - GROUPBOX "iNES 1.0 Unofficial Properties",IDC_UNOFFICIAL_GROUP,13,176,105,35,WS_DISABLED + GROUPBOX "iNES 1.0 Unofficial Properties",IDC_UNOFFICIAL_GROUP,13,176,104,35,WS_DISABLED CONTROL "Dual region",IDC_CHECK_UNOFFICIAL_EXTRA_REGION,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_DISABLED | WS_TABSTOP,19,186,48,10 CONTROL "PRG RAM exists",IDC_CHECK_UNOFFICIAL_PRGRAM,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_DISABLED | WS_TABSTOP,70,188,43,17 CONTROL "Bus conflict",IDC_CHECK_UNOFFICIAL_BUS_CONFLICT,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_DISABLED | WS_TABSTOP,19,198,49,10 @@ -2368,7 +2363,7 @@ BEGIN EDITTEXT IDC_MISCELLANEOUS_ROMS_EDIT,14,215,12,14,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED PUSHBUTTON "Restore",IDC_RESTORE_BUTTON,6,237,44,14,WS_DISABLED PUSHBUTTON "Save as...",IDSAVE,223,237,44,14,WS_DISABLED - DEFPUSHBUTTON "Close",IDCLOSE,271,237,44,14 + DEFPUSHBUTTON "Close",IDCLOSE,270,237,44,14 END @@ -2431,14 +2426,6 @@ BEGIN BOTTOMMARGIN, 209 END - "POWERPADDIALOG", DIALOG - BEGIN - END - - "QUIZKINGDIALOG", DIALOG - BEGIN - END - "SOUNDCONFIG", DIALOG BEGIN LEFTMARGIN, 10 @@ -2447,10 +2434,6 @@ BEGIN BOTTOMMARGIN, 274 END - "SUBORKBDIALOG", DIALOG - BEGIN - END - "TIMINGCONFIG", DIALOG BEGIN LEFTMARGIN, 10 @@ -2489,17 +2472,13 @@ BEGIN "ADDBP", DIALOG BEGIN RIGHTMARGIN, 195 - BOTTOMMARGIN, 125 + BOTTOMMARGIN, 123 END "NTVIEW", DIALOG BEGIN END - "ROMPATCHER", DIALOG - BEGIN - END - "GGCONV", DIALOG BEGIN END @@ -2589,9 +2568,9 @@ BEGIN "TEXTHOOKER", DIALOG BEGIN LEFTMARGIN, 7 - RIGHTMARGIN, 430 + RIGHTMARGIN, 449 TOPMARGIN, 7 - BOTTOMMARGIN, 307 + BOTTOMMARGIN, 320 END "CHEATCONSOLE", DIALOG @@ -2600,10 +2579,6 @@ BEGIN BOTTOMMARGIN, 225 END - IDD_LUA, DIALOG - BEGIN - END - "VIDEOCONFIG", DIALOG BEGIN END @@ -2618,7 +2593,7 @@ BEGIN IDD_EDITWATCH, DIALOG BEGIN - BOTTOMMARGIN, 112 + BOTTOMMARGIN, 94 END DLG_SNESPAD, DIALOG @@ -2718,36 +2693,6 @@ BEGIN 0 END -INPUTCONFIG AFX_DIALOG_LAYOUT -BEGIN - 0 -END - -IDD_REPLAYINP AFX_DIALOG_LAYOUT -BEGIN - 0 -END - -IDD_RAMWATCH AFX_DIALOG_LAYOUT -BEGIN - 0 -END - -TRACER AFX_DIALOG_LAYOUT -BEGIN - 0 -END - -TEXTHOOKER AFX_DIALOG_LAYOUT -BEGIN - 0 -END - -ROMPATCHER AFX_DIALOG_LAYOUT -BEGIN - 0 -END - ///////////////////////////////////////////////////////////////////////////// // @@ -2816,214 +2761,110 @@ END // IDB_BITMAP0 BITMAP "res\\te_0.bmp" - IDB_BITMAP1 BITMAP "res\\te_1.bmp" - IDB_BITMAP2 BITMAP "res\\te_2.bmp" - IDB_BITMAP3 BITMAP "res\\te_3.bmp" - IDB_BITMAP4 BITMAP "res\\te_4.bmp" - IDB_BITMAP5 BITMAP "res\\te_5.bmp" - IDB_BITMAP6 BITMAP "res\\te_6.bmp" - IDB_BITMAP7 BITMAP "res\\te_7.bmp" - IDB_BITMAP8 BITMAP "res\\te_8.bmp" - IDB_BITMAP9 BITMAP "res\\te_9.bmp" - IDB_BITMAP10 BITMAP "res\\te_10.bmp" - IDB_BITMAP11 BITMAP "res\\te_11.bmp" - IDB_BITMAP12 BITMAP "res\\te_12.bmp" - IDB_BITMAP13 BITMAP "res\\te_13.bmp" - IDB_BITMAP14 BITMAP "res\\te_14.bmp" - IDB_BITMAP15 BITMAP "res\\te_15.bmp" - IDB_BITMAP16 BITMAP "res\\te_16.bmp" - IDB_BITMAP17 BITMAP "res\\te_17.bmp" - IDB_BITMAP18 BITMAP "res\\te_18.bmp" - IDB_BITMAP19 BITMAP "res\\te_19.bmp" - IDB_TE_ARROW BITMAP "res\\te_arrow.bmp" - IDB_TE_GREEN_ARROW BITMAP "res\\te_green_arrow.bmp" - IDB_TE_GREEN_BLUE_ARROW BITMAP "res\\te_green_blue_arrow.bmp" - IDB_PIANO_0 BITMAP "res\\te_piano_0.bmp" - IDB_PIANO_1 BITMAP "res\\te_piano_1.bmp" - IDB_PIANO_2 BITMAP "res\\te_piano_2.bmp" - IDB_PIANO_3 BITMAP "res\\te_piano_3.bmp" - IDB_PIANO_4 BITMAP "res\\te_piano_4.bmp" - IDB_PIANO_5 BITMAP "res\\te_piano_5.bmp" - IDB_PIANO_6 BITMAP "res\\te_piano_6.bmp" - IDB_PIANO_7 BITMAP "res\\te_piano_7.bmp" - IDB_PIANO_8 BITMAP "res\\te_piano_8.bmp" - IDB_PIANO_9 BITMAP "res\\te_piano_9.bmp" - IDB_PIANO_10 BITMAP "res\\te_piano_10.bmp" - IDB_PIANO_11 BITMAP "res\\te_piano_11.bmp" - IDB_PIANO_12 BITMAP "res\\te_piano_12.bmp" - IDB_PIANO_13 BITMAP "res\\te_piano_13.bmp" - IDB_PIANO_14 BITMAP "res\\te_piano_14.bmp" - IDB_PIANO_15 BITMAP "res\\te_piano_15.bmp" - IDB_PIANO_16 BITMAP "res\\te_piano_16.bmp" - IDB_PIANO_17 BITMAP "res\\te_piano_17.bmp" - IDB_PIANO_18 BITMAP "res\\te_piano_18.bmp" - IDB_PIANO_19 BITMAP "res\\te_piano_19.bmp" - IDB_PIANO_PLAYBACK_0 BITMAP "res\\te_piano_0_playback.bmp" - IDB_PIANO_PLAYBACK_1 BITMAP "res\\te_piano_1_playback.bmp" - IDB_PIANO_PLAYBACK_2 BITMAP "res\\te_piano_2_playback.bmp" - IDB_PIANO_PLAYBACK_3 BITMAP "res\\te_piano_3_playback.bmp" - IDB_PIANO_PLAYBACK_4 BITMAP "res\\te_piano_4_playback.bmp" - IDB_PIANO_PLAYBACK_5 BITMAP "res\\te_piano_5_playback.bmp" - IDB_PIANO_PLAYBACK_6 BITMAP "res\\te_piano_6_playback.bmp" - IDB_PIANO_PLAYBACK_7 BITMAP "res\\te_piano_7_playback.bmp" - IDB_PIANO_PLAYBACK_8 BITMAP "res\\te_piano_8_playback.bmp" - IDB_PIANO_PLAYBACK_9 BITMAP "res\\te_piano_9_playback.bmp" - IDB_PIANO_PLAYBACK_10 BITMAP "res\\te_piano_10_playback.bmp" - IDB_PIANO_PLAYBACK_11 BITMAP "res\\te_piano_11_playback.bmp" - IDB_PIANO_PLAYBACK_12 BITMAP "res\\te_piano_12_playback.bmp" - IDB_PIANO_PLAYBACK_13 BITMAP "res\\te_piano_13_playback.bmp" - IDB_PIANO_PLAYBACK_14 BITMAP "res\\te_piano_14_playback.bmp" - IDB_PIANO_PLAYBACK_15 BITMAP "res\\te_piano_15_playback.bmp" - IDB_PIANO_PLAYBACK_16 BITMAP "res\\te_piano_16_playback.bmp" - IDB_PIANO_PLAYBACK_17 BITMAP "res\\te_piano_17_playback.bmp" - IDB_PIANO_PLAYBACK_18 BITMAP "res\\te_piano_18_playback.bmp" - IDB_PIANO_PLAYBACK_19 BITMAP "res\\te_piano_19_playback.bmp" - IDB_PIANO_LOSTPOS_0 BITMAP "res\\te_piano_0_lostpos.bmp" - IDB_PIANO_LOSTPOS_1 BITMAP "res\\te_piano_1_lostpos.bmp" - IDB_PIANO_LOSTPOS_2 BITMAP "res\\te_piano_2_lostpos.bmp" - IDB_PIANO_LOSTPOS_3 BITMAP "res\\te_piano_3_lostpos.bmp" - IDB_PIANO_LOSTPOS_4 BITMAP "res\\te_piano_4_lostpos.bmp" - IDB_PIANO_LOSTPOS_5 BITMAP "res\\te_piano_5_lostpos.bmp" - IDB_PIANO_LOSTPOS_6 BITMAP "res\\te_piano_6_lostpos.bmp" - IDB_PIANO_LOSTPOS_7 BITMAP "res\\te_piano_7_lostpos.bmp" - IDB_PIANO_LOSTPOS_8 BITMAP "res\\te_piano_8_lostpos.bmp" - IDB_PIANO_LOSTPOS_9 BITMAP "res\\te_piano_9_lostpos.bmp" - IDB_PIANO_LOSTPOS_10 BITMAP "res\\te_piano_10_lostpos.bmp" - IDB_PIANO_LOSTPOS_11 BITMAP "res\\te_piano_11_lostpos.bmp" - IDB_PIANO_LOSTPOS_12 BITMAP "res\\te_piano_12_lostpos.bmp" - IDB_PIANO_LOSTPOS_13 BITMAP "res\\te_piano_13_lostpos.bmp" - IDB_PIANO_LOSTPOS_14 BITMAP "res\\te_piano_14_lostpos.bmp" - IDB_PIANO_LOSTPOS_15 BITMAP "res\\te_piano_15_lostpos.bmp" - IDB_PIANO_LOSTPOS_16 BITMAP "res\\te_piano_16_lostpos.bmp" - IDB_PIANO_LOSTPOS_17 BITMAP "res\\te_piano_17_lostpos.bmp" - IDB_PIANO_LOSTPOS_18 BITMAP "res\\te_piano_18_lostpos.bmp" - IDB_PIANO_LOSTPOS_19 BITMAP "res\\te_piano_19_lostpos.bmp" - IDB_BITMAP_SELECTED0 BITMAP "res\\te_0_selected.bmp" - IDB_BITMAP_SELECTED1 BITMAP "res\\te_1_selected.bmp" - IDB_BITMAP_SELECTED2 BITMAP "res\\te_2_selected.bmp" - IDB_BITMAP_SELECTED3 BITMAP "res\\te_3_selected.bmp" - IDB_BITMAP_SELECTED4 BITMAP "res\\te_4_selected.bmp" - IDB_BITMAP_SELECTED5 BITMAP "res\\te_5_selected.bmp" - IDB_BITMAP_SELECTED6 BITMAP "res\\te_6_selected.bmp" - IDB_BITMAP_SELECTED7 BITMAP "res\\te_7_selected.bmp" - IDB_BITMAP_SELECTED8 BITMAP "res\\te_8_selected.bmp" - IDB_BITMAP_SELECTED9 BITMAP "res\\te_9_selected.bmp" - IDB_BITMAP_SELECTED10 BITMAP "res\\te_10_selected.bmp" - IDB_BITMAP_SELECTED11 BITMAP "res\\te_11_selected.bmp" - IDB_BITMAP_SELECTED12 BITMAP "res\\te_12_selected.bmp" - IDB_BITMAP_SELECTED13 BITMAP "res\\te_13_selected.bmp" - IDB_BITMAP_SELECTED14 BITMAP "res\\te_14_selected.bmp" - IDB_BITMAP_SELECTED15 BITMAP "res\\te_15_selected.bmp" - IDB_BITMAP_SELECTED16 BITMAP "res\\te_16_selected.bmp" - IDB_BITMAP_SELECTED17 BITMAP "res\\te_17_selected.bmp" - IDB_BITMAP_SELECTED18 BITMAP "res\\te_18_selected.bmp" - IDB_BITMAP_SELECTED19 BITMAP "res\\te_19_selected.bmp" - IDB_BRANCH_SPRITESHEET BITMAP "res\\branch_spritesheet.bmp" - -#endif // English (United States) resources +#endif // English(United States) resources ///////////////////////////////////////////////////////////////////////////// diff --git a/src/drivers/win/resource.h b/src/drivers/win/resource.h index 50d1f1c3..a7233fc7 100644 --- a/src/drivers/win/resource.h +++ b/src/drivers/win/resource.h @@ -6,7 +6,7 @@ #define BUTTON_CLOSE 1 #define BTN_CLOSE 1 #define MENU_OPEN_FILE 100 -#define EDIT_ROMS 100 +#define EDIT_ROM 100 #define LBL_LOG_TEXT 100 #define LBL_KEY_COMBO 100 #define LBL_CDLOGGER_CODECOUNT 100 @@ -31,6 +31,7 @@ #define IDC_ROMPATCHER_DOTNES_OFFSET 101 #define IDC_NTVIEW_TABLE_BOX 101 #define IDC_ASSEMBLER_DISASSEMBLY 101 +#define EDIT_BATTERY 101 #define MENU_RECENT_FILES 102 #define CB_LOAD_FILE_OPEN 102 #define LBL_CDLOGGER_UNDEFCOUNT 102 @@ -46,6 +47,7 @@ #define IDC_NTVIEW_SCANLINE 102 #define IDC_ASSEMBLER_PATCH_DISASM 102 #define CHECK_PALETTE_GRAYSCALE 102 +#define EDIT_STATE 102 #define BTN_CDLOGGER_RESET 103 #define LBL_PPUVIEW_TILE1 103 #define IDC_CHEAT_VAL 103 @@ -56,6 +58,7 @@ #define IDC_ROMPATCHER_BTN_EDIT 103 #define IDC_NTVIEW_PROPERTIES_LINE_1 103 #define IDC_VIDEOCONFIG_HIDEMOUSE 103 +#define EDIT_FDSBIOS 103 #define CB_AUTO_HIDE_MENU 104 #define COMBO_PAD1 104 #define BTN_CDLOGGER_LOAD 104 @@ -69,6 +72,7 @@ #define IDC_ROMPATCHER_CURRENT_DATA_BOX 104 #define IDC_NTVIEW_PROPERTIES_LINE_2 104 #define CHECK_PALETTE_CUSTOM 104 +#define EDIT_SCREENSHOT 104 #define COMBO_PAD2 105 #define CB_SET_HIGH_PRIORITY 105 #define BTN_CDLOGGER_START_PAUSE 105 @@ -81,6 +85,7 @@ #define IDC_ADDBP_MEM_CPU 105 #define IDC_ROMPATCHER_CURRENT_DATA 105 #define IDC_NTVIEW_PROPERTIES_LINE_3 105 +#define EDIT_CHEAT 105 #define BTN_PORT1 106 #define BTN_CDLOGGER_SAVE_AS 106 #define IDC_CHEAT_LIST_POSSIBILITIES 106 @@ -89,18 +94,21 @@ #define IDC_ADDBP_MEM_PPU 106 #define IDC_NTVIEW_PROPERTIES_LINE_4 106 #define IDC_TEXT_LINES_TO_THIS_WINDOW 106 +#define EDIT_MOVIE 106 #define BTN_PORT2 107 #define BTN_CDLOGGER_SAVE 107 #define IDC_DEBUGGER_STEP_OVER 107 #define IDC_ADDBP_MEM_SPR 107 #define IDC_ROMPATCHER_DISASSEMBLY 107 #define IDC_VIDEOCONFIG_BESTFIT 107 +#define EDIT_MEMWATCH 107 #define IDR_ACCELERATOR1 108 #define BTN_CDLOGGER_SAVE_STRIPPED 108 #define IDC_CHEAT_VAL_NE_BY 108 #define IDC_DEBUGGER_SEEK_PC 108 #define IDR_TASEDITOR_ACCELERATORS 108 #define IDC_VIDEOCONFIG_CONSOLE_BGCOLOR 108 +#define EDIT_BOT 108 #define IDC_CHEAT_VAL_GT_BY 109 #define IDC_DEBUGGER_SEEK_TO 109 #define IDC_ROMPATCHER_PATCH_DATA 109 @@ -108,6 +116,7 @@ #define BTN_CDLOGGER_SAVE_UNUSED 109 #define IDC_VIDEOCONFIG_TVASPECT 109 #define IDC_GROUP_LOG_OPTIONS 109 +#define EDIT_MACRO 109 #define IDC_CHEAT_VAL_LT_BY 110 #define MENU_SAVE_STATE 110 #define CB_ASK_EXIT 110 @@ -118,6 +127,7 @@ #define IDC_ROMPATCHER_BTN_APPLY 110 #define LBL_CDLOGGER_RENDERCOUNT 110 #define IDC_VIDEOCONFIG_SQUARE_PIXELS 110 +#define EDIT_PRESET 110 #define MENU_LOAD_STATE 111 #define CB_DISABLE_SCREEN_SAVER 111 #define BTN_FAM 111 @@ -126,12 +136,15 @@ #define IDC_ROMPATCHER_BTN_SAVE 111 #define IDC_CHEAT_COM 111 #define IDC_VIDEOCONFIG_DIRECTDRAW_FS 111 +#define EDIT_LUA 111 #define BTN_AUTO_HOLD 112 #define IDC_BTN_LOG_BROWSE 112 #define IDC_DEBUGGER_BOOKMARK_ADD 112 #define IDC_VIDEOCONFIG_DIRECTDRAW_WIN 112 +#define EDIT_AVI 112 #define IDC_DEBUGGER_BOOKMARK_DEL 113 #define IDC_EXTRA_LOG_OPTIONS 113 +#define EDIT_ROOT 113 #define BTN_CLEAR_AH 114 #define IDC_CHECK_LOG_NEW_INSTRUCTIONS 114 #define IDC_DEBUGGER_RUN_LINE 114 @@ -203,7 +216,7 @@ #define IDD_TASEDITOR_FINDNOTE 198 #define IDD_TASEDITOR_ABOUT 199 #define MENU_RESET 200 -#define BUTTON_ROMS 200 +#define BUTTON_ROM 200 #define TXT_PAD1 200 #define BTN_RESTORE_DEFAULTS 200 #define BTN_CLEAR 200 @@ -232,6 +245,7 @@ #define IDC_ASSEMBLER_APPLY 201 #define IDI_ICON4 201 #define BTN_OK 201 +#define BUTTON_BATTERY 201 #define MENU_EJECT_DISK 202 #define TXT_FAM 202 #define MENU_MV_EDIT_PASTE 202 @@ -241,6 +255,7 @@ #define IDC_ASSEMBLER_SAVE 202 #define IDD_TASEDITOR_NEWPROJECT 202 #define IDC_GROUPBOX_CHEATSEARCH 202 +#define BUTTON_STATE 202 #define MENU_SWITCH_DISK 203 #define IDC_NETMOO_NICK 203 #define IDC_CHEAT_BOX_POSSIBILITIES 203 @@ -248,24 +263,35 @@ #define IDC_DEBUGGER_FLAG_B 203 #define IDC_ADDBP_NAME 203 #define IDC_ASSEMBLER_UNDO 203 +#define BUTTON_FDSBIOS 203 #define MENU_INSERT_COIN 204 #define COMBO_NETMOO_LOCAL_PLAYERS 204 #define IDC_DEBUGGER_FLAG_D 204 #define IDC_GROUP_PREV_COM 204 +#define BUTTON_SCREENSHOT 204 #define IDC_NETMOO_KEY 205 #define IDC_DEBUGGER_FLAG_I 205 #define IDB_TE_GREEN_ARROW 205 +#define BUTTON_CHEAT 205 #define IDC_NETMOO_PASS 206 #define IDC_DEBUGGER_FLAG_Z 206 +#define BUTTON_MOVIE 206 #define IDC_DEBUGGER_FLAG_C 207 +#define BUTTON_MEMWATCH 207 #define IDC_DEBUGGER_ENABLE_SYMBOLIC 208 #define IDB_TE_GREEN_BLUE_ARROW 208 +#define BUTTON_BOT 208 #define IDB_PIANO_0 209 #define IDC_DEBUGGER_ROM_OFFSETS 209 +#define BUTTON_MACRO 209 #define IDB_PIANO_1 210 +#define BUTTON_PRESET 210 #define IDB_PIANO_2 211 +#define BUTTON_LUA 211 #define IDB_PIANO_3 212 +#define BUTTON_AVI 212 #define IDB_PIANO_4 213 +#define BUTTON_ROOT 213 #define IDB_PIANO_5 214 #define IDB_PIANO_6 215 #define IDB_PIANO_7 216 From fb0f6ee35f1dfb2cb0bb0510e93d63296beec9d7 Mon Sep 17 00:00:00 2001 From: owomomo Date: Mon, 24 Jun 2019 22:39:02 +0800 Subject: [PATCH 06/19] ... --- src/drivers/win/res.rc | 112 +++++++++++++++++++++++++++++------------ 1 file changed, 81 insertions(+), 31 deletions(-) diff --git a/src/drivers/win/res.rc b/src/drivers/win/res.rc index 4255840f..76e660ec 100644 --- a/src/drivers/win/res.rc +++ b/src/drivers/win/res.rc @@ -894,31 +894,31 @@ BEGIN END INPUTCONFIG DIALOGEX 122, 105, 349, 199 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Input Configuration" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "Port 1:",102,20,31,152,50 - COMBOBOX COMBO_PAD1,27,57,71,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - DEFPUSHBUTTON "Configure",BTN_PORT1,109,43,56,14 - GROUPBOX "Port 2:",103,176,31,152,50 - COMBOBOX COMBO_PAD2,183,57,71,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - DEFPUSHBUTTON "Configure",BTN_PORT2,265,41,56,14 + COMBOBOX COMBO_PAD1,27,57,74,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "Configure",BTN_PORT1,109,40,56,14 + GROUPBOX "Port 2:",103,176,31,162,50 + COMBOBOX COMBO_PAD2,183,57,84,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "Configure",BTN_PORT2,275,40,56,14 GROUPBOX "NES-style Input Ports",108,10,8,328,83 GROUPBOX "Famicom Expansion Port:",109,176,93,162,50 COMBOBOX COMBO_FAM,183,122,84,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP DEFPUSHBUTTON "Configure",BTN_FAM,275,105,56,14 - CONTROL "",65487,"Static",SS_BLACKFRAME,27,41,71,12 - CONTROL "",65486,"Static",SS_BLACKFRAME,183,41,71,12 + CONTROL "",65487,"Static",SS_BLACKFRAME,27,41,74,12 + CONTROL "",65486,"Static",SS_BLACKFRAME,183,41,84,12 CONTROL "",65485,"Static",SS_BLACKFRAME,183,106,84,12 - CTEXT "",TXT_PAD1,30,42,65,10 - CTEXT "",TXT_PAD2,186,42,65,10 + CTEXT "",TXT_PAD1,30,42,68,10 + CTEXT "",TXT_PAD2,186,42,78,10 CTEXT "",TXT_FAM,186,107,78,10 PUSHBUTTON "Set",BTN_AUTO_HOLD,19,157,45,13 LTEXT "not assigned",LBL_AUTO_HOLD,71,159,87,8 PUSHBUTTON "Clear",BTN_CLEAR_AH,19,172,45,13 LTEXT "not assigned",LBL_CLEAR_AH,71,174,87,8 - DEFPUSHBUTTON "Close",BTN_CLOSE,282,177,56,14 + DEFPUSHBUTTON "Close",BTN_CLOSE,275,177,56,14 GROUPBOX "Input Presets",113,10,93,162,50 CONTROL "Allow Left+Right / Up+Down",BTN_ALLOW_LRUD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,183,157,107,10 PUSHBUTTON "Set",BTN_PRESET_SET1,34,103,37,11 @@ -930,7 +930,7 @@ BEGIN PUSHBUTTON "Export",BTN_PRESET_EXPORT1,123,103,37,11 PUSHBUTTON "Export",BTN_PRESET_EXPORT2,123,115,37,11 PUSHBUTTON "Export",BTN_PRESET_EXPORT3,123,127,37,11 - GROUPBOX "Auto-Hold",118,10,146,162,44 + GROUPBOX "Auto-Hold",118,10,146,162,46 GROUPBOX "Emulation",119,176,146,162,25 CTEXT "1",IDC_STATIC,18,105,8,8 CTEXT "2",IDC_STATIC,18,116,8,8 @@ -1476,7 +1476,7 @@ BEGIN END TRACER DIALOGEX 0, 0, 317, 181 -STYLE DS_SETFONT | DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME +STYLE DS_SETFONT | DS_3DLOOK | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME CAPTION "Trace Logger" FONT 8, "MS Shell Dlg", 400, 0, 0x0 BEGIN @@ -1509,12 +1509,12 @@ BEGIN CONTROL "Only log newly mapped code",IDC_CHECK_LOG_NEW_INSTRUCTIONS, "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,8,162,102,10 CONTROL "Only log code that accesses newly mapped data",IDC_CHECK_LOG_NEW_DATA, - "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,112,162,171,10 + "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,113,162,171,10 CONTROL "Log Bank number",IDC_CHECK_LOG_BANK_NUMBER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,211,121,100,10 END -ADDBP DIALOGEX 66, 83, 197, 125 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +ADDBP DIALOGEX 66, 83, 197, 127 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Add Breakpoint..." FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN @@ -1697,7 +1697,7 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTI CAPTION "Play Movie" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - GROUPBOX "",65497,3,0,293,179 + GROUPBOX "",65497,3,0,293,180 RTEXT "File:",65498,8,11,24,10,SS_CENTERIMAGE | NOT WS_GROUP COMBOBOX IDC_COMBO_FILENAME,35,10,257,128,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP RTEXT "Length:",64397,10,67,59,8 @@ -1962,7 +1962,7 @@ BEGIN LISTBOX IDC_LIST1,7,7,251,120,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP END -TEXTHOOKER DIALOGEX 0, 0, 456, 327 +TEXTHOOKER DIALOGEX 0, 0, 437, 314 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_ACCEPTFILES CAPTION "Text Hooker" @@ -2194,13 +2194,13 @@ BEGIN PUSHBUTTON "Remove",IDC_C_WATCH_REMOVE,226,83,34,14 PUSHBUTTON "New",IDC_C_WATCH,226,100,34,14 PUSHBUTTON "Duplicate",IDC_C_WATCH_DUPLICATE,226,117,34,14 - PUSHBUTTON "Add Cheat",IDC_C_ADDCHEAT,223,168,42,16,WS_DISABLED - GROUPBOX "Watches",IDC_STATIC,222,11,42,145 + PUSHBUTTON "Add Cheat",IDC_C_ADDCHEAT,222,163,42,16,WS_DISABLED + GROUPBOX "Watches",IDC_STATIC,222,6,42,152 CONTROL "",ID_WATCHES_UPDOWN,"msctls_updown32",WS_TABSTOP,232,23,19,36 PUSHBUTTON "Separator",IDC_C_WATCH_SEPARATE,225,137,36,14 END -IDD_EDITWATCH DIALOGEX 0, 0, 181, 95 +IDD_EDITWATCH DIALOGEX 0, 0, 177, 115 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION " Edit Watch" FONT 8, "MS Shell Dlg", 400, 0, 0x1 @@ -2209,16 +2209,16 @@ BEGIN EDITTEXT IDC_EDIT_COMPAREADDRESS,48,10,65,12,ES_UPPERCASE | ES_AUTOHSCROLL CTEXT "&Notes:",IDC_PROMPT_TEXT,23,24,22,8 EDITTEXT IDC_PROMPT_EDIT,48,22,119,12,ES_AUTOHSCROLL - GROUPBOX "Data Type",IDC_DATATYPE_GROUPBOX,14,37,75,42,0,WS_EX_TRANSPARENT + GROUPBOX "Data Type",IDC_DATATYPE_GROUPBOX,14,37,75,53,0,WS_EX_TRANSPARENT CONTROL "&Signed",IDC_SIGNED,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,18,47,67,9 CONTROL "&Unsigned",IDC_UNSIGNED,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,18,57,67,9 CONTROL "&Hexadecimal",IDC_HEX,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,18,67,67,9 - GROUPBOX "Data Size",IDC_DATASIZE_GROUPBOX,94,37,73,42,0,WS_EX_TRANSPARENT + GROUPBOX "Data Size",IDC_DATASIZE_GROUPBOX,94,37,73,52,0,WS_EX_TRANSPARENT CONTROL "&1 byte",IDC_1_BYTE,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,98,47,61,11 CONTROL "&2 bytes",IDC_2_BYTES,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,98,57,61,11 CONTROL "&4 bytes",IDC_4_BYTES,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,98,67,61,11 - DEFPUSHBUTTON "OK",IDOK,66,80,50,14 - PUSHBUTTON "Cancel",IDCANCEL,120,80,50,14 + DEFPUSHBUTTON "OK",IDOK,66,93,50,14 + PUSHBUTTON "Cancel",IDCANCEL,118,93,50,14 END DLG_SNESPAD DIALOGEX 4, 109, 243, 121 @@ -2353,7 +2353,7 @@ BEGIN COMBOBOX IDC_VS_PPU_COMBO,155,154,140,30,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_DISABLED | WS_VSCROLL | WS_TABSTOP CONTROL "iNES 1.0 Unofficial Properties",IDC_CHECK_UNOFFICIAL, "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_DISABLED | WS_TABSTOP,14,164,103,10 - GROUPBOX "iNES 1.0 Unofficial Properties",IDC_UNOFFICIAL_GROUP,13,176,104,35,WS_DISABLED + GROUPBOX "iNES 1.0 Unofficial Properties",IDC_UNOFFICIAL_GROUP,13,176,105,35,WS_DISABLED CONTROL "Dual region",IDC_CHECK_UNOFFICIAL_EXTRA_REGION,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_DISABLED | WS_TABSTOP,19,186,48,10 CONTROL "PRG RAM exists",IDC_CHECK_UNOFFICIAL_PRGRAM,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_DISABLED | WS_TABSTOP,70,188,43,17 CONTROL "Bus conflict",IDC_CHECK_UNOFFICIAL_BUS_CONFLICT,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_DISABLED | WS_TABSTOP,19,198,49,10 @@ -2363,7 +2363,7 @@ BEGIN EDITTEXT IDC_MISCELLANEOUS_ROMS_EDIT,14,215,12,14,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED PUSHBUTTON "Restore",IDC_RESTORE_BUTTON,6,237,44,14,WS_DISABLED PUSHBUTTON "Save as...",IDSAVE,223,237,44,14,WS_DISABLED - DEFPUSHBUTTON "Close",IDCLOSE,270,237,44,14 + DEFPUSHBUTTON "Close",IDCLOSE,271,237,44,14 END @@ -2426,6 +2426,14 @@ BEGIN BOTTOMMARGIN, 209 END + "POWERPADDIALOG", DIALOG + BEGIN + END + + "QUIZKINGDIALOG", DIALOG + BEGIN + END + "SOUNDCONFIG", DIALOG BEGIN LEFTMARGIN, 10 @@ -2434,6 +2442,10 @@ BEGIN BOTTOMMARGIN, 274 END + "SUBORKBDIALOG", DIALOG + BEGIN + END + "TIMINGCONFIG", DIALOG BEGIN LEFTMARGIN, 10 @@ -2472,13 +2484,17 @@ BEGIN "ADDBP", DIALOG BEGIN RIGHTMARGIN, 195 - BOTTOMMARGIN, 123 + BOTTOMMARGIN, 125 END "NTVIEW", DIALOG BEGIN END + "ROMPATCHER", DIALOG + BEGIN + END + "GGCONV", DIALOG BEGIN END @@ -2568,9 +2584,9 @@ BEGIN "TEXTHOOKER", DIALOG BEGIN LEFTMARGIN, 7 - RIGHTMARGIN, 449 + RIGHTMARGIN, 430 TOPMARGIN, 7 - BOTTOMMARGIN, 320 + BOTTOMMARGIN, 307 END "CHEATCONSOLE", DIALOG @@ -2579,6 +2595,10 @@ BEGIN BOTTOMMARGIN, 225 END + IDD_LUA, DIALOG + BEGIN + END + "VIDEOCONFIG", DIALOG BEGIN END @@ -2593,7 +2613,7 @@ BEGIN IDD_EDITWATCH, DIALOG BEGIN - BOTTOMMARGIN, 94 + BOTTOMMARGIN, 112 END DLG_SNESPAD, DIALOG @@ -2693,6 +2713,36 @@ BEGIN 0 END +INPUTCONFIG AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +IDD_REPLAYINP AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +IDD_RAMWATCH AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +TRACER AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +TEXTHOOKER AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +ROMPATCHER AFX_DIALOG_LAYOUT +BEGIN + 0 +END + ///////////////////////////////////////////////////////////////////////////// // From 7dde5467fdad5c4b9fd4265cac6a95ce8104606e Mon Sep 17 00:00:00 2001 From: owomomo Date: Thu, 27 Jun 2019 00:53:52 +0800 Subject: [PATCH 07/19] 1. Limit text input for Edit watch dialog and ram search. 2. As bbbradsmith in Pull Request #62 mentioned, SetWindowLong is replaced by SetWindowLongPtr for 64 bit compatible, I partially changed those written by myself. --- src/drivers/win/cheat.cpp | 28 +- src/drivers/win/debugger.cpp | 16 +- src/drivers/win/header_editor.cpp | 12 +- src/drivers/win/memwatch.cpp | 2 +- src/drivers/win/ram_search.cpp | 859 ++++++++++++++++-------------- src/drivers/win/ramwatch.cpp | 5 + src/drivers/win/res.rc | 10 +- src/drivers/win/video.cpp | 8 +- src/drivers/win/window.cpp | 61 ++- src/drivers/win/window.h | 2 + 10 files changed, 553 insertions(+), 450 deletions(-) diff --git a/src/drivers/win/cheat.cpp b/src/drivers/win/cheat.cpp index b0b4de5d..e3d55324 100644 --- a/src/drivers/win/cheat.cpp +++ b/src/drivers/win/cheat.cpp @@ -343,16 +343,16 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l SendDlgItemMessage(hwndDlg, IDC_CHEAT_GAME_GENIE_TEXT, EM_SETLIMITTEXT, 8, 0); // limit their characters - DefaultEditCtrlProc = (WNDPROC)SetWindowLong(GetDlgItem(hwndDlg, IDC_CHEAT_ADDR), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLong(GetDlgItem(hwndDlg, IDC_CHEAT_ADDR), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLong(GetDlgItem(hwndDlg, IDC_CHEAT_VAL), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLong(GetDlgItem(hwndDlg, IDC_CHEAT_COM), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLong(GetDlgItem(hwndDlg, IDC_CHEAT_VAL_KNOWN), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLong(GetDlgItem(hwndDlg, IDC_CHEAT_VAL_NE_BY), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLong(GetDlgItem(hwndDlg, IDC_CHEAT_VAL_GT_BY), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLong(GetDlgItem(hwndDlg, IDC_CHEAT_VAL_LT_BY), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLong(GetDlgItem(hwndDlg, IDC_CHEAT_TEXT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLong(GetDlgItem(hwndDlg, IDC_CHEAT_GAME_GENIE_TEXT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + DefaultEditCtrlProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_ADDR), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_ADDR), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_VAL), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_COM), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_VAL_KNOWN), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_VAL_NE_BY), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_VAL_GT_BY), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_VAL_LT_BY), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_TEXT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_GAME_GENIE_TEXT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); // Create popup to "Auto load / save with game", since it has 3 states and the text need some explanation SetCheatToolTip(hwndDlg, IDC_CHEAT_AUTOLOADSAVE); @@ -1109,10 +1109,10 @@ BOOL CALLBACK GGConvCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) SendDlgItemMessage(hwndDlg, IDC_GAME_GENIE_VAL, WM_SETFONT, (WPARAM)hNewFont, FALSE); // limit their characters - DefaultEditCtrlProc = (WNDPROC)SetWindowLong(GetDlgItem(hwndDlg, IDC_GAME_GENIE_CODE), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLong(GetDlgItem(hwndDlg, IDC_GAME_GENIE_ADDR), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLong(GetDlgItem(hwndDlg, IDC_GAME_GENIE_COMP), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLong(GetDlgItem(hwndDlg, IDC_GAME_GENIE_VAL), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + DefaultEditCtrlProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_GAME_GENIE_CODE), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_GAME_GENIE_ADDR), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_GAME_GENIE_COMP), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_GAME_GENIE_VAL), GWL_WNDPROC, (LONG)FilterEditCtrlProc); } break; case WM_CLOSE: diff --git a/src/drivers/win/debugger.cpp b/src/drivers/win/debugger.cpp index 7e316de1..169a91dc 100644 --- a/src/drivers/win/debugger.cpp +++ b/src/drivers/win/debugger.cpp @@ -279,8 +279,8 @@ BOOL CALLBACK AddbpCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) SendDlgItemMessage(hwndDlg, IDC_ADDBP_ADDR_START, EM_SETLIMITTEXT, 4, 0); SendDlgItemMessage(hwndDlg, IDC_ADDBP_ADDR_END, EM_SETLIMITTEXT, 4, 0); - DefaultEditCtrlProc = (WNDPROC)SetWindowLong(GetDlgItem(hwndDlg, IDC_ADDBP_ADDR_START), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLong(GetDlgItem(hwndDlg, IDC_ADDBP_ADDR_END), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + DefaultEditCtrlProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_ADDBP_ADDR_START), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_ADDBP_ADDR_END), GWL_WNDPROC, (LONG)FilterEditCtrlProc); if (WP_edit >= 0) { @@ -1825,12 +1825,12 @@ BOOL CALLBACK DebuggerCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPara SendDlgItemMessage(hwndDlg,IDC_DEBUGGER_VAL_SPR,EM_SETLIMITTEXT,2,0); // limit input - DefaultEditCtrlProc = (WNDPROC)SetWindowLong(GetDlgItem(hwndDlg, IDC_DEBUGGER_VAL_PCSEEK), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLong(GetDlgItem(hwndDlg, IDC_DEBUGGER_VAL_PC), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLong(GetDlgItem(hwndDlg, IDC_DEBUGGER_VAL_A), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLong(GetDlgItem(hwndDlg, IDC_DEBUGGER_VAL_X), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLong(GetDlgItem(hwndDlg, IDC_DEBUGGER_VAL_Y), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLong(GetDlgItem(hwndDlg, IDC_DEBUGGER_BOOKMARK), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + DefaultEditCtrlProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_DEBUGGER_VAL_PCSEEK), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_DEBUGGER_VAL_PC), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_DEBUGGER_VAL_A), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_DEBUGGER_VAL_X), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_DEBUGGER_VAL_Y), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_DEBUGGER_BOOKMARK), GWL_WNDPROC, (LONG)FilterEditCtrlProc); //I'm lazy, disable the controls which I can't mess with right now SendDlgItemMessage(hwndDlg,IDC_DEBUGGER_VAL_PPU,EM_SETREADONLY,TRUE,0); diff --git a/src/drivers/win/header_editor.cpp b/src/drivers/win/header_editor.cpp index d411d344..15637ca6 100644 --- a/src/drivers/win/header_editor.cpp +++ b/src/drivers/win/header_editor.cpp @@ -296,17 +296,17 @@ HWND InitHeaderEditDialog(HWND hwnd, iNES_HEADER* header) // Change the default wndproc of these control to limit their text // PRG ROM - DefaultEditCtrlProc = (WNDPROC)SetWindowLong(GetDlgItem(GetDlgItem(hwnd, IDC_PRGROM_COMBO), IDC_PRGROM_EDIT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + DefaultEditCtrlProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(GetDlgItem(hwnd, IDC_PRGROM_COMBO), IDC_PRGROM_EDIT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); // PRG RAM - SetWindowLong(GetDlgItem(GetDlgItem(hwnd, IDC_PRGRAM_COMBO), IDC_PRGRAM_EDIT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(GetDlgItem(hwnd, IDC_PRGRAM_COMBO), IDC_PRGRAM_EDIT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); // PRG NVRAM - SetWindowLong(GetDlgItem(GetDlgItem(hwnd, IDC_PRGNVRAM_COMBO), IDC_PRGNVRAM_EDIT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(GetDlgItem(hwnd, IDC_PRGNVRAM_COMBO), IDC_PRGNVRAM_EDIT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); // CHR ROM - SetWindowLong(GetDlgItem(GetDlgItem(hwnd, IDC_CHRROM_COMBO), IDC_CHRROM_EDIT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(GetDlgItem(hwnd, IDC_CHRROM_COMBO), IDC_CHRROM_EDIT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); // CHR RAM - SetWindowLong(GetDlgItem(GetDlgItem(hwnd, IDC_CHRRAM_COMBO), IDC_CHRRAM_EDIT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(GetDlgItem(hwnd, IDC_CHRRAM_COMBO), IDC_CHRRAM_EDIT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); // CHR NVRAM - SetWindowLong(GetDlgItem(GetDlgItem(hwnd, IDC_CHRNVRAM_COMBO), IDC_CHRNVRAM_EDIT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(GetDlgItem(hwnd, IDC_CHRNVRAM_COMBO), IDC_CHRNVRAM_EDIT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); ToggleINES20(hwnd, IsDlgButtonChecked(hwnd, IDC_RADIO_VERSION_INES20) == BST_CHECKED); diff --git a/src/drivers/win/memwatch.cpp b/src/drivers/win/memwatch.cpp index 34f0216b..7d1f541f 100644 --- a/src/drivers/win/memwatch.cpp +++ b/src/drivers/win/memwatch.cpp @@ -795,7 +795,7 @@ static BOOL CALLBACK MemWatchCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA // experimental: limit the text length and input to hex values SendDlgItemMessage(hwndDlg, MW_ADDR[i], EM_SETLIMITTEXT, 4, 0); - DefaultEditCtrlProc = (WNDPROC)SetWindowLong(GetDlgItem(hwndDlg, MW_ADDR[i]), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + DefaultEditCtrlProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(hwndDlg, MW_ADDR[i]), GWL_WNDPROC, (LONG)FilterEditCtrlProc); } //Populate Formula pulldown menus diff --git a/src/drivers/win/ram_search.cpp b/src/drivers/win/ram_search.cpp index a9fd503d..17b653cf 100644 --- a/src/drivers/win/ram_search.cpp +++ b/src/drivers/win/ram_search.cpp @@ -641,6 +641,18 @@ unsigned int HardwareAddressToItemIndex(HWAddressType hardwareAddress) : functionName(p0, p1, p2, p3)) \ : functionName(p0, p1, p2, p3)) +#define CONV_VAL_TO_STR(sizeTypeID, type, val, buf) (sprintf(buf, type == 's' ? "%d" : type == 'u' ? "%u" : type == 'd' ? "%08X" : type == 'w' ? "%04X" : "%02X", sizeTypeID == 'd' ? (type == 's' ? (long)(val & 0xFFFFFFFF) : (unsigned long)(val & 0xFFFFFFFF)) : sizeTypeID == 'w' ? (type == 's' ? (short)(val & 0xFFFF) : (unsigned short)(val & 0xFFFF)) : (type == 's' ? (char)(val & 0xFF) : (unsigned char)(val & 0xFF))), buf) + +#define ConvEditTextNum(hDlg, id, sizeTypeID, type) \ +{ \ + BOOL success = FALSE; \ + int val = ReadControlInt(id, type == 'h', success); \ + if (success) \ + { \ + char num[11]; \ + SetDlgItemText(hDlg, id, CONV_VAL_TO_STR(sizeTypeID, type, val, num)); \ + } else SetDlgItemText(hDlg, id, ""); \ +} // basic comparison functions: template inline bool LessCmp (T x, T y, T i) { return x < y; } template inline bool MoreCmp (T x, T y, T i) { return x > y; } @@ -1401,7 +1413,8 @@ LRESULT CALLBACK RamSearchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPara static int watchIndex=0; switch(uMsg) { - case WM_INITDIALOG: { + case WM_INITDIALOG: + { RamSearchHWnd = hDlg; CalcSubWindowPos(hDlg, NULL); @@ -1435,6 +1448,7 @@ LRESULT CALLBACK RamSearchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPara EnableWindow(GetDlgItem(hDlg,IDC_EDIT_MODBY),true); break; } + switch (rs_c) { case 'r': @@ -1453,6 +1467,7 @@ LRESULT CALLBACK RamSearchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPara EnableWindow(GetDlgItem(hDlg,IDC_EDIT_COMPARECHANGES),true); break; } + switch (rs_t) { case 's': @@ -1465,6 +1480,7 @@ LRESULT CALLBACK RamSearchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPara SendDlgItemMessage(hDlg, IDC_HEX, BM_SETCHECK, BST_CHECKED, 0); break; } + switch (rs_type_size) { case 'b': @@ -1517,8 +1533,16 @@ LRESULT CALLBACK RamSearchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPara ListView_SetCallbackMask(GetDlgItem(hDlg,IDC_RAMLIST), LVIS_FOCUSED|LVIS_SELECTED); + SendDlgItemMessage(hDlg, IDC_EDIT_COMPAREADDRESS, EM_SETLIMITTEXT, 4, 0); + + DefaultEditCtrlProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(hDlg, IDC_EDIT_DIFFBY), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hDlg, IDC_EDIT_MODBY), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hDlg, IDC_EDIT_COMPAREVALUE), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hDlg, IDC_EDIT_COMPAREADDRESS), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + return true; - } break; + } + break; case WM_NOTIFY: { LPNMHDR lP = (LPNMHDR) lParam; @@ -1561,28 +1585,12 @@ LRESULT CALLBACK RamSearchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPara case 1: { int i = CALL_WITH_T_SIZE_TYPES_1(GetCurValueFromItemIndex, rs_type_size,rs_t=='s',noMisalign, iNum); - const char* formatString = ((rs_t=='s') ? "%d" : (rs_t=='u') ? "%u" : (rs_type_size=='d' ? "%08X" : rs_type_size=='w' ? "%04X" : "%02X")); - switch (rs_type_size) - { - case 'b': - default: sprintf(num, formatString, rs_t=='s' ? (char)(i&0xff) : (unsigned char)(i&0xff)); break; - case 'w': sprintf(num, formatString, rs_t=='s' ? (short)(i&0xffff) : (unsigned short)(i&0xffff)); break; - case 'd': sprintf(num, formatString, rs_t=='s' ? (long)(i&0xffffffff) : (unsigned long)(i&0xffffffff)); break; - } - Item->item.pszText = num; + Item->item.pszText = CONV_VAL_TO_STR(rs_type_size, rs_t, i, num); } return true; case 2: { int i = CALL_WITH_T_SIZE_TYPES_1(GetPrevValueFromItemIndex, rs_type_size,rs_t=='s',noMisalign, iNum); - const char* formatString = ((rs_t=='s') ? "%d" : (rs_t=='u') ? "%u" : (rs_type_size=='d' ? "%08X" : rs_type_size=='w' ? "%04X" : "%02X")); - switch (rs_type_size) - { - case 'b': - default: sprintf(num, formatString, rs_t=='s' ? (char)(i&0xff) : (unsigned char)(i&0xff)); break; - case 'w': sprintf(num, formatString, rs_t=='s' ? (short)(i&0xffff) : (unsigned short)(i&0xffff)); break; - case 'd': sprintf(num, formatString, rs_t=='s' ? (long)(i&0xffffffff) : (unsigned long)(i&0xffffffff)); break; - } - Item->item.pszText = num; + Item->item.pszText = CONV_VAL_TO_STR(rs_type_size, rs_t, i, num); } return true; case 3: { @@ -1646,415 +1654,451 @@ LRESULT CALLBACK RamSearchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPara // return 0; //} } - break; } - + break; case WM_COMMAND: { - int rv = false; - switch(LOWORD(wParam)) + switch (HIWORD(wParam)) { - case IDC_SIGNED: - rs_t='s'; - signal_new_size(); - {rv = true; break;} - case IDC_UNSIGNED: - rs_t='u'; - signal_new_size(); - {rv = true; break;} - case IDC_HEX: - rs_t='h'; - signal_new_size(); - {rv = true; break;} - case IDC_1_BYTE: - rs_type_size = 'b'; - signal_new_size(); - {rv = true; break;} - case IDC_2_BYTES: - rs_type_size = 'w'; - signal_new_size(); - {rv = true; break;} - case IDC_4_BYTES: - rs_type_size = 'd'; - signal_new_size(); - {rv = true; break;} - case IDC_MISALIGN: - noMisalign = !noMisalign; - //CompactAddrs(); - signal_new_size(); - {rv = true; break;} -// case IDC_ENDIAN: -//// littleEndian = !littleEndian; -//// signal_new_size(); -// {rv = true; break;} - case IDC_LESSTHAN: - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_DIFFBY),false); - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_MODBY),false); - rs_o = '<'; - {rv = true; break;} - case IDC_MORETHAN: - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_DIFFBY),false); - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_MODBY),false); - rs_o = '>'; - {rv = true; break;} - case IDC_NOMORETHAN: - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_DIFFBY),false); - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_MODBY),false); - rs_o = 'l'; - {rv = true; break;} - case IDC_NOLESSTHAN: - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_DIFFBY),false); - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_MODBY),false); - rs_o = 'm'; - {rv = true; break;} - case IDC_EQUALTO: - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_DIFFBY),false); - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_MODBY),false); - rs_o = '='; - {rv = true; break;} - case IDC_DIFFERENTFROM: - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_DIFFBY),false); - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_MODBY),false); - rs_o = '!'; - {rv = true; break;} - case IDC_DIFFERENTBY: + case BN_CLICKED: { - rs_o = 'd'; - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_DIFFBY),true); - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_MODBY),false); - if(!SelectingByKeyboard()) - SelectEditControl(IDC_EDIT_DIFFBY); - } {rv = true; break;} - case IDC_MODULO: - { - rs_o = '%'; - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_DIFFBY),false); - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_MODBY),true); - if(!SelectingByKeyboard()) - SelectEditControl(IDC_EDIT_MODBY); - } {rv = true; break;} - case IDC_PREVIOUSVALUE: - rs_c='r'; - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_COMPAREVALUE),false); - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_COMPAREADDRESS),false); - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_COMPARECHANGES),false); - {rv = true; break;} - case IDC_SPECIFICVALUE: - { - rs_c = 's'; - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_COMPAREVALUE),true); - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_COMPAREADDRESS),false); - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_COMPARECHANGES),false); - if(!SelectingByKeyboard()) - SelectEditControl(IDC_EDIT_COMPAREVALUE); - {rv = true; break;} - } - case IDC_SPECIFICADDRESS: - { - rs_c = 'a'; - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_COMPAREADDRESS),true); - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_COMPAREVALUE),false); - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_COMPARECHANGES),false); - if(!SelectingByKeyboard()) - SelectEditControl(IDC_EDIT_COMPAREADDRESS); - } {rv = true; break;} - case IDC_NUMBEROFCHANGES: - { - rs_c = 'n'; - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_COMPARECHANGES),true); - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_COMPAREVALUE),false); - EnableWindow(GetDlgItem(hDlg,IDC_EDIT_COMPAREADDRESS),false); - if(!SelectingByKeyboard()) - SelectEditControl(IDC_EDIT_COMPARECHANGES); - } {rv = true; break;} - case IDC_C_ADDCHEAT: - { - HWND ramListControl = GetDlgItem(hDlg,IDC_RAMLIST); - int watchItemIndex = ListView_GetNextItem(ramListControl, -1, LVNI_SELECTED); - while (watchItemIndex >= 0) + int rv = true; + bool needRefresh = true; + switch (LOWORD(wParam)) { - unsigned long address = CALL_WITH_T_SIZE_TYPES_1(GetHardwareAddressFromItemIndex, rs_type_size,rs_t=='s',noMisalign, watchItemIndex); - unsigned long curvalue = CALL_WITH_T_SIZE_TYPES_1(GetCurValueFromItemIndex, rs_type_size,rs_t=='s',noMisalign, watchItemIndex); - - int sizeType = -1; - if(rs_type_size == 'b') - sizeType = 0; - else if(rs_type_size == 'w') - sizeType = 1; - else if(rs_type_size == 'd') - sizeType = 2; - - int numberType = -1; - if(rs_t == 's') - numberType = 0; - else if(rs_t == 'u') - numberType = 1; - else if(rs_t == 'h') - numberType = 2; - - // Don't open cheat dialog - - switch (sizeType) { - case 0: - FCEUI_AddCheat("",address,curvalue, -1, 1); - break; - case 1: - FCEUI_AddCheat("",address,curvalue & 0xFF, -1, 1); - FCEUI_AddCheat("",address + 1,(curvalue & 0xFF00) / 0x100, -1, 1); - break; - case 2: - FCEUI_AddCheat("",address,curvalue & 0xFF,-1,1); - FCEUI_AddCheat("",address + 1,(curvalue & 0xFF00) / 0x100, -1, 1); - FCEUI_AddCheat("",address + 2,(curvalue & 0xFF0000) / 0x10000, -1, 1); - FCEUI_AddCheat("",address + 3,(curvalue & 0xFF000000) / 0x1000000, -1, 1); - break; - } - - UpdateCheatsAdded(); - UpdateCheatRelatedWindow(); - - watchItemIndex = ListView_GetNextItem(ramListControl, watchItemIndex, LVNI_SELECTED); - - } - } {rv = true; break;} - case IDC_C_SEARCHROM: - ShowROM = SendDlgItemMessage(hDlg, IDC_C_SEARCHROM, BM_GETCHECK, 0, 0) != 0; - case IDC_C_RESET: - { - RamSearchSaveUndoStateIfNotTooBig(RamSearchHWnd); - int prevNumItems = last_rs_possible; - - soft_reset_address_info(); - - if(prevNumItems == last_rs_possible) - SetRamSearchUndoType(RamSearchHWnd, 0); // nothing to undo - - ListView_SetItemState(GetDlgItem(hDlg,IDC_RAMLIST), -1, 0, LVIS_SELECTED); // deselect all - //ListView_SetItemCount(GetDlgItem(hDlg,IDC_RAMLIST),ResultCount); - ListView_SetSelectionMark(GetDlgItem(hDlg,IDC_RAMLIST), 0); - RefreshRamListSelectedCountControlStatus(hDlg); - Update_RAM_Search(); - {rv = true; break;} - } - case IDC_C_RESET_CHANGES: - memset(s_numChanges, 0, (sizeof(*s_numChanges)*(MAX_RAM_SIZE))); - ListView_Update(GetDlgItem(hDlg,IDC_RAMLIST), -1); - Update_RAM_Search(); - //SetRamSearchUndoType(hDlg, 0); - {rv = true; break;} - case IDC_C_UNDO: - if(s_undoType>0) - { -// Clear_Sound_Buffer(); - EnterCriticalSection(&s_activeMemoryRegionsCS); - if(s_activeMemoryRegions.size() < tooManyRegionsForUndo) + case IDC_SIGNED: { - MemoryList tempMemoryList = s_activeMemoryRegions; - s_activeMemoryRegions = s_activeMemoryRegionsBackup; - s_activeMemoryRegionsBackup = tempMemoryList; - LeaveCriticalSection(&s_activeMemoryRegionsCS); - SetRamSearchUndoType(hDlg, 3 - s_undoType); + rs_t = 's'; + signal_new_size(); + ConvEditTextNum(hDlg, IDC_EDIT_COMPAREVALUE, rs_type_size, rs_t); + ConvEditTextNum(hDlg, IDC_EDIT_DIFFBY, rs_type_size, rs_t); + ConvEditTextNum(hDlg, IDC_EDIT_MODBY, rs_type_size, rs_t); } - else + break; + case IDC_UNSIGNED: { - s_activeMemoryRegions = s_activeMemoryRegionsBackup; - LeaveCriticalSection(&s_activeMemoryRegionsCS); - SetRamSearchUndoType(hDlg, -1); + rs_t = 'u'; + signal_new_size(); + ConvEditTextNum(hDlg, IDC_EDIT_COMPAREVALUE, rs_type_size, rs_t); + ConvEditTextNum(hDlg, IDC_EDIT_DIFFBY, rs_type_size, rs_t); + ConvEditTextNum(hDlg, IDC_EDIT_MODBY, rs_type_size, rs_t); } - CompactAddrs(); - ListView_SetItemState(GetDlgItem(hDlg,IDC_RAMLIST), -1, 0, LVIS_SELECTED); // deselect all - ListView_SetSelectionMark(GetDlgItem(hDlg,IDC_RAMLIST), 0); - RefreshRamListSelectedCountControlStatus(hDlg); - } - {rv = true; break;} - case IDC_C_AUTOSEARCH: - AutoSearch = SendDlgItemMessage(hDlg, IDC_C_AUTOSEARCH, BM_GETCHECK, 0, 0) != 0; - AutoSearchAutoRetry = false; - if (!AutoSearch) {rv = true; break;} - case IDC_C_SEARCH: - { -// Clear_Sound_Buffer(); - - if(!rs_val_valid && !(rs_val_valid = Set_RS_Val())) - goto invalid_field; - - if(ResultCount) - { - RamSearchSaveUndoStateIfNotTooBig(hDlg); - - prune(rs_c,rs_o,rs_t=='s',rs_val,rs_param); - - RefreshRamListSelectedCountControlStatus(hDlg); - } - - if(!ResultCount) - { - - MessageBox(RamSearchHWnd,"Resetting search.","Out of results.",MB_OK|MB_ICONINFORMATION); - soft_reset_address_info(); - } - - {rv = true; break;} - -invalid_field: - MessageBox(RamSearchHWnd,"Invalid or out-of-bound entered value.","Error",MB_OK|MB_ICONSTOP); - if(AutoSearch) // stop autosearch if it just started - { - SendDlgItemMessage(hDlg, IDC_C_AUTOSEARCH, BM_SETCHECK, BST_UNCHECKED, 0); - SendMessage(hDlg, WM_COMMAND, IDC_C_AUTOSEARCH, 0); - } - {rv = true; break;} - } - case IDC_C_HEXEDITOR: - { - HWND ramListControl = GetDlgItem(hDlg,IDC_RAMLIST); - int selCount = ListView_GetSelectedCount(ramListControl); - int watchItemIndex = ListView_GetNextItem(ramListControl, -1, LVNI_SELECTED); - if (watchItemIndex >= 0) - { - unsigned int addr = CALL_WITH_T_SIZE_TYPES_1(GetHardwareAddressFromItemIndex, rs_type_size, rs_t=='s', noMisalign, watchItemIndex); - ChangeMemViewFocus(0, addr, -1); - } - break; - } - case IDC_C_WATCH: - { - HWND ramListControl = GetDlgItem(hDlg,IDC_RAMLIST); - int selCount = SendMessage(ramListControl, LVM_GETSELECTEDCOUNT, 0, 0); - if (selCount > 0) - { - AddressWatcher tempWatch; - tempWatch.Size = rs_type_size; - tempWatch.Type = rs_t; - tempWatch.WrongEndian = 0; //Replace when I get little endian working - tempWatch.comment = NULL; - - bool inserted = false; - - AddressWatcher* watches = (AddressWatcher*)malloc(selCount * sizeof(AddressWatcher)); - int i = 0; - int watchItemIndex = -1; - while ((watchItemIndex = SendMessage(ramListControl, LVM_GETNEXTITEM, watchItemIndex, LVNI_SELECTED)) >= 0) + break; + case IDC_HEX: { - tempWatch.Address = CALL_WITH_T_SIZE_TYPES_1(GetHardwareAddressFromItemIndex, rs_type_size, rs_t == 's', noMisalign, watchItemIndex); - watches[i] = tempWatch; - ++i; + rs_t = 'h'; + signal_new_size(); + ConvEditTextNum(hDlg, IDC_EDIT_COMPAREVALUE, rs_type_size, rs_t); + ConvEditTextNum(hDlg, IDC_EDIT_DIFFBY, rs_type_size, rs_t); + ConvEditTextNum(hDlg, IDC_EDIT_MODBY, rs_type_size, rs_t); } - - // bring up the ram watch window if it's not already showing so the user knows where the watch went - if ((selCount == 1 ? - InsertWatch(watches[0], hDlg) : InsertWatches(watches, hDlg, selCount)) - && !RamWatchHWnd) - SendMessage(hWnd, WM_COMMAND, ID_RAM_WATCH, 0); - SetForegroundWindow(RamSearchHWnd); - - free(watches); - } - {rv = true; break;} - } - - // eliminate all selected items - case IDC_C_ELIMINATE: - { - RamSearchSaveUndoStateIfNotTooBig(hDlg); - - HWND ramListControl = GetDlgItem(hDlg,IDC_RAMLIST); - int size = (rs_type_size=='b' || !noMisalign) ? 1 : 2; - int selCount = ListView_GetSelectedCount(ramListControl); - int watchIndex = -1; - - // time-saving trick #1: - // condense the selected items into an array of address ranges - std::vector selHardwareAddrs; - for(int i = 0, j = 1024; i < selCount; ++i, --j) - { - watchIndex = ListView_GetNextItem(ramListControl, watchIndex, LVNI_SELECTED); - int addr = CALL_WITH_T_SIZE_TYPES_1(GetHardwareAddressFromItemIndex, rs_type_size,rs_t=='s',noMisalign, watchIndex); - if(!selHardwareAddrs.empty() && addr == selHardwareAddrs.back().End()) - selHardwareAddrs.back().size += size; - else - selHardwareAddrs.push_back(AddrRange(addr,size)); - - if(!j) UpdateRamSearchProgressBar(i * 50 / selCount), j = 1024; - } - - // now deactivate the ranges - - // time-saving trick #2: - // take advantage of the fact that the listbox items must be in the same order as the regions - MemoryList::iterator iter = s_activeMemoryRegions.begin(); - int numHardwareAddrRanges = selHardwareAddrs.size(); - for(int i = 0, j = 16; i < numHardwareAddrRanges; ++i, --j) - { - int addr = selHardwareAddrs[i].addr; - int size = selHardwareAddrs[i].size; - bool affected = false; - while(iter != s_activeMemoryRegions.end()) + break; + case IDC_1_BYTE: { - MemoryRegion& region = *iter; - int affNow = DeactivateRegion(region, iter, addr, size); - if(affNow) - affected = true; - else if(affected) + needRefresh = false; + rs_type_size = 'b'; + signal_new_size(); + BOOL success = FALSE; + int val = ReadControlInt(IDC_EDIT_COMPAREVALUE, false, success); + if (success) + { + char num[11]; + SetDlgItemText(hDlg, IDC_EDIT_COMPAREVALUE, CONV_VAL_TO_STR(rs_type_size, rs_t, val, num)); + } + } + break; + case IDC_2_BYTES: + needRefresh = false; + rs_type_size = 'w'; + signal_new_size(); + break; + case IDC_4_BYTES: + needRefresh = false; + rs_type_size = 'd'; + signal_new_size(); + break; + case IDC_MISALIGN: + needRefresh = false; + noMisalign = !noMisalign; + //CompactAddrs(); + signal_new_size(); + break; +// case IDC_ENDIAN: +// littleEndian = !littleEndian; +// signal_new_size(); +// break; + case IDC_LESSTHAN: + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_DIFFBY), false); + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_MODBY), false); + rs_o = '<'; + break; + case IDC_MORETHAN: + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_DIFFBY), false); + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_MODBY), false); + rs_o = '>'; + break; + case IDC_NOMORETHAN: + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_DIFFBY), false); + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_MODBY), false); + rs_o = 'l'; + break; + case IDC_NOLESSTHAN: + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_DIFFBY), false); + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_MODBY), false); + rs_o = 'm'; + break; + case IDC_EQUALTO: + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_DIFFBY), false); + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_MODBY), false); + rs_o = '='; + break; + case IDC_DIFFERENTFROM: + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_DIFFBY), false); + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_MODBY), false); + rs_o = '!'; + break; + case IDC_DIFFERENTBY: + { + rs_o = 'd'; + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_DIFFBY), true); + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_MODBY), false); + if (!SelectingByKeyboard()) + SelectEditControl(IDC_EDIT_DIFFBY); + break; + } + case IDC_MODULO: + { + rs_o = '%'; + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_DIFFBY), false); + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_MODBY), true); + if (!SelectingByKeyboard()) + SelectEditControl(IDC_EDIT_MODBY); + break; + } + case IDC_PREVIOUSVALUE: + rs_c = 'r'; + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_COMPAREVALUE), false); + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_COMPAREADDRESS), false); + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_COMPARECHANGES), false); + break; + case IDC_SPECIFICVALUE: + { + rs_c = 's'; + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_COMPAREVALUE), true); + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_COMPAREADDRESS), false); + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_COMPARECHANGES), false); + if (!SelectingByKeyboard()) + SelectEditControl(IDC_EDIT_COMPAREVALUE); + break; + } + case IDC_SPECIFICADDRESS: + { + rs_c = 'a'; + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_COMPAREADDRESS), true); + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_COMPAREVALUE), false); + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_COMPARECHANGES), false); + if (!SelectingByKeyboard()) + SelectEditControl(IDC_EDIT_COMPAREADDRESS); + break; + } + case IDC_NUMBEROFCHANGES: + { + rs_c = 'n'; + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_COMPARECHANGES), true); + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_COMPAREVALUE), false); + EnableWindow(GetDlgItem(hDlg, IDC_EDIT_COMPAREADDRESS), false); + if (!SelectingByKeyboard()) + SelectEditControl(IDC_EDIT_COMPARECHANGES); + break; + } + case IDC_C_ADDCHEAT: + { + needRefresh = false; + HWND ramListControl = GetDlgItem(hDlg, IDC_RAMLIST); + int watchItemIndex = ListView_GetNextItem(ramListControl, -1, LVNI_SELECTED); + while (watchItemIndex >= 0) + { + unsigned long address = CALL_WITH_T_SIZE_TYPES_1(GetHardwareAddressFromItemIndex, rs_type_size, rs_t == 's', noMisalign, watchItemIndex); + unsigned long curvalue = CALL_WITH_T_SIZE_TYPES_1(GetCurValueFromItemIndex, rs_type_size, rs_t == 's', noMisalign, watchItemIndex); + + int sizeType = -1; + if (rs_type_size == 'b') + sizeType = 0; + else if (rs_type_size == 'w') + sizeType = 1; + else if (rs_type_size == 'd') + sizeType = 2; + + int numberType = -1; + if (rs_t == 's') + numberType = 0; + else if (rs_t == 'u') + numberType = 1; + else if (rs_t == 'h') + numberType = 2; + + // Don't open cheat dialog + + switch (sizeType) { + case 0: + FCEUI_AddCheat("", address, curvalue, -1, 1); + break; + case 1: + FCEUI_AddCheat("", address, curvalue & 0xFF, -1, 1); + FCEUI_AddCheat("", address + 1, (curvalue & 0xFF00) / 0x100, -1, 1); + break; + case 2: + FCEUI_AddCheat("", address, curvalue & 0xFF, -1, 1); + FCEUI_AddCheat("", address + 1, (curvalue & 0xFF00) / 0x100, -1, 1); + FCEUI_AddCheat("", address + 2, (curvalue & 0xFF0000) / 0x10000, -1, 1); + FCEUI_AddCheat("", address + 3, (curvalue & 0xFF000000) / 0x1000000, -1, 1); + break; + } + + UpdateCheatsAdded(); + UpdateCheatRelatedWindow(); + + watchItemIndex = ListView_GetNextItem(ramListControl, watchItemIndex, LVNI_SELECTED); + + } + break; + } + case IDC_C_SEARCHROM: + ShowROM = SendDlgItemMessage(hDlg, IDC_C_SEARCHROM, BM_GETCHECK, 0, 0) != 0; + case IDC_C_RESET: + { + needRefresh = false; + RamSearchSaveUndoStateIfNotTooBig(RamSearchHWnd); + int prevNumItems = last_rs_possible; + + soft_reset_address_info(); + + if (prevNumItems == last_rs_possible) + SetRamSearchUndoType(RamSearchHWnd, 0); // nothing to undo + + ListView_SetItemState(GetDlgItem(hDlg, IDC_RAMLIST), -1, 0, LVIS_SELECTED); // deselect all + //ListView_SetItemCount(GetDlgItem(hDlg,IDC_RAMLIST),ResultCount); + ListView_SetSelectionMark(GetDlgItem(hDlg, IDC_RAMLIST), 0); + RefreshRamListSelectedCountControlStatus(hDlg); + Update_RAM_Search(); + break; + } + case IDC_C_RESET_CHANGES: + needRefresh = false; + memset(s_numChanges, 0, (sizeof(*s_numChanges)*(MAX_RAM_SIZE))); + ListView_Update(GetDlgItem(hDlg, IDC_RAMLIST), -1); + Update_RAM_Search(); + //SetRamSearchUndoType(hDlg, 0); + break; + case IDC_C_UNDO: + needRefresh = false; + if (s_undoType > 0) + { + // Clear_Sound_Buffer(); + EnterCriticalSection(&s_activeMemoryRegionsCS); + if (s_activeMemoryRegions.size() < tooManyRegionsForUndo) + { + MemoryList tempMemoryList = s_activeMemoryRegions; + s_activeMemoryRegions = s_activeMemoryRegionsBackup; + s_activeMemoryRegionsBackup = tempMemoryList; + LeaveCriticalSection(&s_activeMemoryRegionsCS); + SetRamSearchUndoType(hDlg, 3 - s_undoType); + } + else + { + s_activeMemoryRegions = s_activeMemoryRegionsBackup; + LeaveCriticalSection(&s_activeMemoryRegionsCS); + SetRamSearchUndoType(hDlg, -1); + } + CompactAddrs(); + ListView_SetItemState(GetDlgItem(hDlg, IDC_RAMLIST), -1, 0, LVIS_SELECTED); // deselect all + ListView_SetSelectionMark(GetDlgItem(hDlg, IDC_RAMLIST), 0); + RefreshRamListSelectedCountControlStatus(hDlg); + } + break; + case IDC_C_AUTOSEARCH: + needRefresh = false; + AutoSearch = SendDlgItemMessage(hDlg, IDC_C_AUTOSEARCH, BM_GETCHECK, 0, 0) != 0; + AutoSearchAutoRetry = false; + if (!AutoSearch) break; - if(affNow != 2) - ++iter; + else + rv = false; + case IDC_C_SEARCH: + { + needRefresh = false; + // Clear_Sound_Buffer(); + + if (!rs_val_valid && !(rs_val_valid = Set_RS_Val())) + { + MessageBox(RamSearchHWnd, "Invalid or out-of-bound entered value.", "Error", MB_OK | MB_ICONSTOP); + if (AutoSearch) // stop autosearch if it just started + { + SendDlgItemMessage(hDlg, IDC_C_AUTOSEARCH, BM_SETCHECK, BST_UNCHECKED, 0); + SendMessage(hDlg, WM_COMMAND, IDC_C_AUTOSEARCH, 0); + } + } + else { + if (ResultCount) + { + RamSearchSaveUndoStateIfNotTooBig(hDlg); + + prune(rs_c, rs_o, rs_t == 's', rs_val, rs_param); + + RefreshRamListSelectedCountControlStatus(hDlg); + } + + if (!ResultCount) + { + + MessageBox(RamSearchHWnd, "Resetting search.", "Out of results.", MB_OK | MB_ICONINFORMATION); + soft_reset_address_info(); + } + + } + break; + } + case IDC_C_HEXEDITOR: + { + needRefresh = false; + HWND ramListControl = GetDlgItem(hDlg, IDC_RAMLIST); + int selCount = ListView_GetSelectedCount(ramListControl); + int watchItemIndex = ListView_GetNextItem(ramListControl, -1, LVNI_SELECTED); + if (watchItemIndex >= 0) + { + unsigned int addr = CALL_WITH_T_SIZE_TYPES_1(GetHardwareAddressFromItemIndex, rs_type_size, rs_t == 's', noMisalign, watchItemIndex); + ChangeMemViewFocus(0, addr, -1); + } + rv = false; + break; + } + case IDC_C_WATCH: + { + needRefresh = false; + HWND ramListControl = GetDlgItem(hDlg, IDC_RAMLIST); + int selCount = SendMessage(ramListControl, LVM_GETSELECTEDCOUNT, 0, 0); + if (selCount > 0) + { + AddressWatcher tempWatch; + tempWatch.Size = rs_type_size; + tempWatch.Type = rs_t; + tempWatch.WrongEndian = 0; //Replace when I get little endian working + tempWatch.comment = NULL; + + bool inserted = false; + + AddressWatcher* watches = (AddressWatcher*)malloc(selCount * sizeof(AddressWatcher)); + int i = 0; + int watchItemIndex = -1; + while ((watchItemIndex = SendMessage(ramListControl, LVM_GETNEXTITEM, watchItemIndex, LVNI_SELECTED)) >= 0) + { + tempWatch.Address = CALL_WITH_T_SIZE_TYPES_1(GetHardwareAddressFromItemIndex, rs_type_size, rs_t == 's', noMisalign, watchItemIndex); + watches[i] = tempWatch; + ++i; + } + + // bring up the ram watch window if it's not already showing so the user knows where the watch went + if ((selCount == 1 ? + InsertWatch(watches[0], hDlg) : InsertWatches(watches, hDlg, selCount)) + && !RamWatchHWnd) + SendMessage(hWnd, WM_COMMAND, ID_RAM_WATCH, 0); + SetForegroundWindow(RamSearchHWnd); + + free(watches); + } + break; } - if(!j) UpdateRamSearchProgressBar(50 + (i * 50 / selCount)), j = 16; + // eliminate all selected items + case IDC_C_ELIMINATE: + { + needRefresh = false; + RamSearchSaveUndoStateIfNotTooBig(hDlg); + + HWND ramListControl = GetDlgItem(hDlg, IDC_RAMLIST); + int size = (rs_type_size == 'b' || !noMisalign) ? 1 : 2; + int selCount = ListView_GetSelectedCount(ramListControl); + int watchIndex = -1; + + // time-saving trick #1: + // condense the selected items into an array of address ranges + std::vector selHardwareAddrs; + for (int i = 0, j = 1024; i < selCount; ++i, --j) + { + watchIndex = ListView_GetNextItem(ramListControl, watchIndex, LVNI_SELECTED); + int addr = CALL_WITH_T_SIZE_TYPES_1(GetHardwareAddressFromItemIndex, rs_type_size, rs_t == 's', noMisalign, watchIndex); + if (!selHardwareAddrs.empty() && addr == selHardwareAddrs.back().End()) + selHardwareAddrs.back().size += size; + else + selHardwareAddrs.push_back(AddrRange(addr, size)); + + if (!j) UpdateRamSearchProgressBar(i * 50 / selCount), j = 1024; + } + + // now deactivate the ranges + + // time-saving trick #2: + // take advantage of the fact that the listbox items must be in the same order as the regions + MemoryList::iterator iter = s_activeMemoryRegions.begin(); + int numHardwareAddrRanges = selHardwareAddrs.size(); + for (int i = 0, j = 16; i < numHardwareAddrRanges; ++i, --j) + { + int addr = selHardwareAddrs[i].addr; + int size = selHardwareAddrs[i].size; + bool affected = false; + while (iter != s_activeMemoryRegions.end()) + { + MemoryRegion& region = *iter; + int affNow = DeactivateRegion(region, iter, addr, size); + if (affNow) + affected = true; + else if (affected) + break; + if (affNow != 2) + ++iter; + } + + if (!j) UpdateRamSearchProgressBar(50 + (i * 50 / selCount)), j = 16; + } + UpdateRamSearchTitleBar(); + + // careful -- if the above two time-saving tricks aren't working, + // the runtime can absolutely explode (seconds -> hours) when there are lots of regions + + ListView_SetItemState(ramListControl, -1, 0, LVIS_SELECTED); // deselect all + signal_new_size(); + break; + } + default: + rv = false; + needRefresh = false; + break; } - UpdateRamSearchTitleBar(); - // careful -- if the above two time-saving tricks aren't working, - // the runtime can absolutely explode (seconds -> hours) when there are lots of regions - - ListView_SetItemState(ramListControl, -1, 0, LVIS_SELECTED); // deselect all - signal_new_size(); - {rv = true; break;} - } - } - - // check refresh for comparison preview color update - // also, update rs_val if needed - bool needRefresh = false; - switch(LOWORD(wParam)) - { - case IDC_LESSTHAN: - case IDC_MORETHAN: - case IDC_NOMORETHAN: - case IDC_NOLESSTHAN: - case IDC_EQUALTO: - case IDC_DIFFERENTFROM: - case IDC_DIFFERENTBY: - case IDC_MODULO: - case IDC_PREVIOUSVALUE: - case IDC_SPECIFICVALUE: - case IDC_SPECIFICADDRESS: - case IDC_NUMBEROFCHANGES: - case IDC_SIGNED: - case IDC_UNSIGNED: - case IDC_HEX: - rs_val_valid = Set_RS_Val(); - needRefresh = true; - break; - case IDC_EDIT_COMPAREVALUE: - case IDC_EDIT_COMPAREADDRESS: - case IDC_EDIT_COMPARECHANGES: - case IDC_EDIT_DIFFBY: - case IDC_EDIT_MODBY: - if(HIWORD(wParam) == EN_CHANGE) + if (needRefresh) { rs_val_valid = Set_RS_Val(); - needRefresh = true; + ListView_Update(GetDlgItem(hDlg, IDC_RAMLIST), -1); } - break; + + return rv; + } + case EN_CHANGE: + { + switch (LOWORD(wParam)) + { + case IDC_EDIT_COMPAREVALUE: + case IDC_EDIT_COMPAREADDRESS: + case IDC_EDIT_COMPARECHANGES: + case IDC_EDIT_DIFFBY: + case IDC_EDIT_MODBY: + rs_val_valid = Set_RS_Val(); + ListView_Update(GetDlgItem(hDlg, IDC_RAMLIST), -1); + } + } } - if(needRefresh) - ListView_Update(GetDlgItem(hDlg,IDC_RAMLIST), -1); - - - return rv; - } break; + } + break; case WM_CLOSE: DestroyWindow(hDlg); break; @@ -2067,6 +2111,7 @@ invalid_field: return false; } + void UpdateRamSearchTitleBar(int percent) { #define HEADER_STR " RAM Search - " diff --git a/src/drivers/win/ramwatch.cpp b/src/drivers/win/ramwatch.cpp index dddb113a..acf02d95 100644 --- a/src/drivers/win/ramwatch.cpp +++ b/src/drivers/win/ramwatch.cpp @@ -854,6 +854,11 @@ LRESULT CALLBACK EditWatchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPara EnableWindow(GetDlgItem(hDlg, IDC_4_BYTES), FALSE); SetFocus(GetDlgItem(hDlg, IDC_PROMPT_EDIT)); } + else { + SetFocus(GetDlgItem(hDlg, IDC_EDIT_COMPAREADDRESS)); + SendDlgItemMessage(hDlg, IDC_EDIT_COMPAREADDRESS, EM_SETLIMITTEXT, 4, 0); + DefaultEditCtrlProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(hDlg, IDC_EDIT_COMPAREADDRESS), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + } } return true; diff --git a/src/drivers/win/res.rc b/src/drivers/win/res.rc index 76e660ec..413195a0 100644 --- a/src/drivers/win/res.rc +++ b/src/drivers/win/res.rc @@ -12,7 +12,7 @@ #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// -// English(United States) resources +// English (United States) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US @@ -2165,7 +2165,7 @@ BEGIN CONTROL "Number of Changes:",IDC_NUMBEROFCHANGES,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,121,212,76,10 EDITTEXT IDC_EDIT_COMPAREVALUE,203,187,63,12,ES_UPPERCASE | ES_AUTOHSCROLL | WS_DISABLED EDITTEXT IDC_EDIT_COMPAREADDRESS,203,199,63,12,ES_UPPERCASE | ES_AUTOHSCROLL | WS_DISABLED - EDITTEXT IDC_EDIT_COMPARECHANGES,203,211,63,12,ES_UPPERCASE | ES_AUTOHSCROLL | WS_DISABLED + EDITTEXT IDC_EDIT_COMPARECHANGES,203,211,63,12,ES_UPPERCASE | ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED GROUPBOX "Data Type / Display",IDC_STATIC,196,228,75,45,0,WS_EX_TRANSPARENT CONTROL "Signed",IDC_SIGNED,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,200,238,67,9 CONTROL "Unsigned",IDC_UNSIGNED,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,200,249,67,9 @@ -2213,6 +2213,7 @@ BEGIN CONTROL "&Signed",IDC_SIGNED,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,18,47,67,9 CONTROL "&Unsigned",IDC_UNSIGNED,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,18,57,67,9 CONTROL "&Hexadecimal",IDC_HEX,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,18,67,67,9 + CONTROL "&Binary",IDC_BINARY,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,18,77,67,9 GROUPBOX "Data Size",IDC_DATASIZE_GROUPBOX,94,37,73,52,0,WS_EX_TRANSPARENT CONTROL "&1 byte",IDC_1_BYTE,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,98,47,61,11 CONTROL "&2 bytes",IDC_2_BYTES,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,98,57,61,11 @@ -2743,6 +2744,11 @@ BEGIN 0 END +IDD_RAMSEARCH AFX_DIALOG_LAYOUT +BEGIN + 0 +END + ///////////////////////////////////////////////////////////////////////////// // diff --git a/src/drivers/win/video.cpp b/src/drivers/win/video.cpp index f20b470f..7029c3c2 100644 --- a/src/drivers/win/video.cpp +++ b/src/drivers/win/video.cpp @@ -1288,10 +1288,10 @@ BOOL CALLBACK VideoConCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPara EnableWindow(GetDlgItem(hwndDlg, IDC_TVASPECT_Y), eoptions&EO_TVASPECT); EnableWindow(GetDlgItem(hwndDlg, IDC_STATIC_SLASHTEXT), eoptions&EO_TVASPECT); - DefaultEditCtrlProc = (WNDPROC)SetWindowLong(GetDlgItem(hwndDlg, IDC_WINSIZE_MUL_X), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLong(GetDlgItem(hwndDlg, IDC_WINSIZE_MUL_Y), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLong(GetDlgItem(hwndDlg, IDC_TVASPECT_X), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLong(GetDlgItem(hwndDlg, IDC_TVASPECT_Y), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + DefaultEditCtrlProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_WINSIZE_MUL_X), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_WINSIZE_MUL_Y), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_TVASPECT_X), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_TVASPECT_Y), GWL_WNDPROC, (LONG)FilterEditCtrlProc); break; } diff --git a/src/drivers/win/window.cpp b/src/drivers/win/window.cpp index 0e537eeb..97e4db3d 100644 --- a/src/drivers/win/window.cpp +++ b/src/drivers/win/window.cpp @@ -3342,10 +3342,6 @@ bool inline (*GetIsLetterLegal(UINT id))(char letter) // Debugger -> Add breakpoint case IDC_ADDBP_ADDR_START: case IDC_ADDBP_ADDR_END: - // RAM Watch / RAM Search / Cheat -> Add watch - // TODO: Some other features - // case IDC_EDIT_COMPAREADDRESS: - // Address, Value, Compare, Known Value, Note equal, Greater than and Less than in Cheat case IDC_CHEAT_ADDR: case IDC_CHEAT_VAL: case IDC_CHEAT_COM: case IDC_CHEAT_VAL_KNOWN: case IDC_CHEAT_VAL_NE_BY: @@ -3361,6 +3357,10 @@ bool inline (*GetIsLetterLegal(UINT id))(char letter) case MW_ADDR12: case MW_ADDR13: case MW_ADDR14: case MW_ADDR15: case MW_ADDR16: case MW_ADDR17: case MW_ADDR18: case MW_ADDR19: case MW_ADDR20: case MW_ADDR21: case MW_ADDR22: case MW_ADDR23: + + // Specific Address in RAM Search + // RAM Watch / RAM Search / Cheat -> Add watch + case IDC_EDIT_COMPAREADDRESS: return IsLetterLegalHex; // Size multiplier and TV Aspect in Video Config @@ -3372,10 +3372,24 @@ bool inline (*GetIsLetterLegal(UINT id))(char letter) case IDC_CHEAT_TEXT: return IsLetterLegalCheat; - // PRG ROM, PRG RAM, PRG NVRAM, CHR ROM, CHR RAM, CHR NVRAM in iNES Header Editor + // PRG ROM, PRG RAM, PRG NVRAM, CHR ROM, CHR RAM and CHR NVRAM in iNES Header Editor case IDC_PRGROM_EDIT: case IDC_PRGRAM_EDIT: case IDC_PRGNVRAM_EDIT: case IDC_CHRROM_EDIT: case IDC_CHRRAM_EDIT: case IDC_CHRNVRAM_EDIT: return IsLetterLegalSize; + + // Specific value, Different by and Modulo in RAM search + case IDC_EDIT_COMPAREVALUE: + case IDC_EDIT_DIFFBY: + case IDC_EDIT_MODBY: + { + extern char rs_t; + switch (rs_t) + { + case 's': return IsLetterLegalDecHexMixed; + case 'u': return IsLetterLegalUnsignedDecHexMixed; + case 'h': return IsLetterLegalHex; + } + } } return NULL; } @@ -3430,7 +3444,28 @@ inline char* GetLetterIllegalErrMsg(bool(*IsLetterLegal)(char letter)) if (IsLetterLegal == IsLetterLegalSize) return "You can only type decimal number followed with B, KB or MB."; if (IsLetterLegal == IsLetterLegalDec) - return "You can only type decimal number (minus is acceptable)."; + return "You can only type decimal number (sign character is acceptable)."; + if (IsLetterLegal == IsLetterLegalDecHexMixed) + return + "You can only type decimal or hexademical number\n" + "(sign character is acceptable).\n\n" + "When your number contains letter A-F,\n" + "it is regarded as hexademical number,\n" + "however, if you want to express a heademical number\n" + "but all the digits are in 0-9,\n" + "you must add a $ prefix to prevent ambiguous.\n" + "eg. 10 is a decimal number,\n" + "$10 means a hexademical number that is 16 in decimal."; + if (IsLetterLegal == IsLetterLegalUnsignedDecHexMixed) + return + "You can only type decimal or hexademical number.\n\n" + "When your number contains letter A-F,\n" + "it is regarded as hexademical number,\n" + "however, if you want to express a heademical number\n" + "but all the digits are in 0-9,\n" + "you must add a $ prefix to prevent ambiguous.\n" + "eg. 10 is a decimal number,\n" + "$10 means a hexademical number that is 16 in decimal."; return "Your input contains invalid characters."; } @@ -3466,10 +3501,20 @@ inline bool IsLetterLegalSize(char letter) inline bool IsLetterLegalDec(char letter) { - return letter >= '0' && letter <= '9' || letter == '-'; + return letter >= '0' && letter <= '9' || letter == '-' || letter == '+'; } inline bool IsLetterLegalFloat(char letter) { - return letter >= '0' && letter <= '9' || letter == '.'; + return letter >= '0' && letter <= '9' || letter == '.' || letter == '-' || letter == '+'; +} + +inline bool IsLetterLegalDecHexMixed(char letter) +{ + return letter >= '0' && letter <= '9' || letter >= 'A' && letter <= 'F' || letter >= 'a' && letter <= 'f' || letter == '$' || letter == '-' || letter == '+'; +} + +inline bool IsLetterLegalUnsignedDecHexMixed(char letter) +{ + return letter >= '0' && letter <= '9' || letter >= 'A' && letter <= 'F' || letter >= 'a' && letter <= 'f' || letter == '$'; } \ No newline at end of file diff --git a/src/drivers/win/window.h b/src/drivers/win/window.h index 45cf98c5..0ba033ef 100644 --- a/src/drivers/win/window.h +++ b/src/drivers/win/window.h @@ -140,6 +140,8 @@ inline bool IsLetterLegalCheat(char letter); inline bool IsLetterLegalDec(char letter); inline bool IsLetterLegalSize(char letter); inline bool IsLetterLegalFloat(char letter); +inline bool IsLetterLegalDecHexMixed(char letter); +inline bool IsLetterLegalUnsignedDecHexMixed(char letter); extern WNDPROC DefaultEditCtrlProc; extern LRESULT APIENTRY FilterEditCtrlProc(HWND hDlg, UINT msg, WPARAM wP, LPARAM lP); From 5d443badea2949ddb223ff1ed6650362df7ef1bc Mon Sep 17 00:00:00 2001 From: owomomo Date: Sat, 29 Jun 2019 10:28:24 +0800 Subject: [PATCH 08/19] ... --- src/drivers/win/directories.cpp | 2 +- src/drivers/win/guiconfig.cpp | 2 +- src/drivers/win/mapinput.cpp | 4 ++-- src/drivers/win/palette.cpp | 2 +- src/drivers/win/replay.cpp | 6 +++--- src/drivers/win/timing.cpp | 2 +- src/drivers/win/window.cpp | 12 ++++++------ 7 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/drivers/win/directories.cpp b/src/drivers/win/directories.cpp index 9f4c65fe..6b3aceb4 100644 --- a/src/drivers/win/directories.cpp +++ b/src/drivers/win/directories.cpp @@ -89,7 +89,7 @@ void CloseDirectoriesDialog(HWND hwndDlg) } ///Callback function for the directories configuration dialog. -static BOOL CALLBACK DirConCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +static INT_PTR CALLBACK DirConCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { diff --git a/src/drivers/win/guiconfig.cpp b/src/drivers/win/guiconfig.cpp index 9c31aeb5..93c19ee0 100644 --- a/src/drivers/win/guiconfig.cpp +++ b/src/drivers/win/guiconfig.cpp @@ -107,7 +107,7 @@ void CloseGuiDialog(HWND hwndDlg) /** * Message loop of the GUI configuration dialog. **/ -BOOL CALLBACK GUIConCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +INT_PTR CALLBACK GUIConCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { diff --git a/src/drivers/win/mapinput.cpp b/src/drivers/win/mapinput.cpp index 131740bb..aca19ad1 100644 --- a/src/drivers/win/mapinput.cpp +++ b/src/drivers/win/mapinput.cpp @@ -332,7 +332,7 @@ char* GetKeyComboName(int c) } //Callback function for the dialog where the user can change hotkeys. -BOOL CALLBACK ChangeInputDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +INT_PTR CALLBACK ChangeInputDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { static HANDLE hThread = NULL; static DWORD dwThreadId = 0; @@ -702,7 +702,7 @@ void ApplyDefaultCommandMapping() /** * Callback function of the Map Input dialog **/ -BOOL CALLBACK MapInputDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +INT_PTR CALLBACK MapInputDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { diff --git a/src/drivers/win/palette.cpp b/src/drivers/win/palette.cpp index 6b3e3095..effe3ac2 100644 --- a/src/drivers/win/palette.cpp +++ b/src/drivers/win/palette.cpp @@ -69,7 +69,7 @@ int LoadPaletteFile() /** * Callback function for the palette configuration dialog. **/ -BOOL CALLBACK PaletteConCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +INT_PTR CALLBACK PaletteConCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { char text[40]; switch(uMsg) diff --git a/src/drivers/win/replay.cpp b/src/drivers/win/replay.cpp index acfecfbd..f651dd00 100644 --- a/src/drivers/win/replay.cpp +++ b/src/drivers/win/replay.cpp @@ -323,7 +323,7 @@ void AbsoluteToRelative(char *const dst, const char *const dir, const char *cons } -BOOL CALLBACK ReplayMetadataDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +INT_PTR CALLBACK ReplayMetadataDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { RECT wrect; switch(uMsg) @@ -502,7 +502,7 @@ void HandleScan(HWND hwndDlg, FCEUFILE* file, int& i) SendDlgItemMessage(hwndDlg, IDC_COMBO_FILENAME, CB_INSERTSTRING, i++, (LPARAM)relative); } -BOOL CALLBACK ReplayDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +INT_PTR CALLBACK ReplayDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { @@ -841,7 +841,7 @@ static void UpdateRecordDialogPath(HWND hwndDlg, const std::string &fname) } } -static BOOL CALLBACK RecordDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +static INT_PTR CALLBACK RecordDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { static struct CreateMovieParameters* p = NULL; diff --git a/src/drivers/win/timing.cpp b/src/drivers/win/timing.cpp index 89bc6e35..0b833a6b 100644 --- a/src/drivers/win/timing.cpp +++ b/src/drivers/win/timing.cpp @@ -71,7 +71,7 @@ void CloseTimingDialog(HWND hwndDlg) /** * Callback function of the Timing configuration dialog. **/ -BOOL CALLBACK TimingConCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +INT_PTR CALLBACK TimingConCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { diff --git a/src/drivers/win/window.cpp b/src/drivers/win/window.cpp index 97e4db3d..eee138b5 100644 --- a/src/drivers/win/window.cpp +++ b/src/drivers/win/window.cpp @@ -118,7 +118,7 @@ extern bool turbo; extern bool movie_readonly; extern bool AutoSS; //flag for whether an auto-save has been made extern int newppu; -extern BOOL CALLBACK ReplayMetadataDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); //Metadata dialog +extern INT_PTR CALLBACK ReplayMetadataDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); //Metadata dialog extern bool CheckFileExists(const char* filename); //Receives a filename (fullpath) and checks to see if that file exists extern bool oldInputDisplay; extern int RAMInitOption; @@ -1037,7 +1037,7 @@ void HideFWindow(int h) SetWindowPos(hAppWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_FRAMECHANGED | SWP_NOACTIVATE | SWP_NOCOPYBITS | SWP_NOMOVE | SWP_NOREPOSITION | SWP_NOSIZE); } - SetWindowLong(hAppWnd, GWL_STYLE, desa | ( GetWindowLong(hAppWnd, GWL_STYLE) & WS_VISIBLE )); + SetWindowLongPtr(hAppWnd, GWL_STYLE, desa | ( GetWindowLong(hAppWnd, GWL_STYLE) & WS_VISIBLE )); SetWindowPos(hAppWnd, 0, 0, 0, 0, 0, SWP_FRAMECHANGED | SWP_NOACTIVATE | SWP_NOCOPYBITS | SWP_NOMOVE | SWP_NOREPOSITION | SWP_NOSIZE | SWP_NOZORDER); } @@ -1877,7 +1877,7 @@ LRESULT FAR PASCAL AppWndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam) case ID_FILE_OPENLUAWINDOW: if (!LuaConsoleHWnd) { - LuaConsoleHWnd = CreateDialog(fceu_hInstance, MAKEINTRESOURCE(IDD_LUA), hWnd, (DLGPROC) DlgLuaScriptDialog); + LuaConsoleHWnd = CreateDialog(fceu_hInstance, MAKEINTRESOURCE(IDD_LUA), hWnd, DlgLuaScriptDialog); } else { ShowWindow(LuaConsoleHWnd, SW_SHOWNORMAL); @@ -3168,14 +3168,14 @@ void OpenRamSearch() if (GameInfo) { reset_address_info(); - RamSearchHWnd = CreateDialog(fceu_hInstance, MAKEINTRESOURCE(IDD_RAMSEARCH), MainhWnd, (DLGPROC)RamSearchProc); + RamSearchHWnd = CreateDialog(fceu_hInstance, MAKEINTRESOURCE(IDD_RAMSEARCH), MainhWnd, RamSearchProc); } } void OpenRamWatch() { if (GameInfo) - RamWatchHWnd = CreateDialog(fceu_hInstance, MAKEINTRESOURCE(IDD_RAMWATCH), MainhWnd, (DLGPROC) RamWatchProc); + RamWatchHWnd = CreateDialog(fceu_hInstance, MAKEINTRESOURCE(IDD_RAMWATCH), MainhWnd, RamWatchProc); } void SaveSnapshotAs() @@ -3265,7 +3265,7 @@ POINT CalcSubWindowPos(HWND hDlg, POINT* conf) LRESULT APIENTRY FilterEditCtrlProc(HWND hwnd, UINT msg, WPARAM wP, LPARAM lP) { bool through = true; - LRESULT result = 0; + INT_PTR result = 0; switch (msg) { From 297ff8ee31f470c5eee569d7b85862ce15a9bec7 Mon Sep 17 00:00:00 2001 From: owomomo Date: Sat, 29 Jun 2019 10:34:07 +0800 Subject: [PATCH 09/19] ... --- src/drivers/win/cheat.cpp | 4 ++-- src/drivers/win/debugger.cpp | 26 +++++++++++++------------- src/drivers/win/header_editor.cpp | 30 +++++++++++++++--------------- src/drivers/win/memwatch.cpp | 4 ++-- src/drivers/win/video.cpp | 10 +++++----- 5 files changed, 37 insertions(+), 37 deletions(-) diff --git a/src/drivers/win/cheat.cpp b/src/drivers/win/cheat.cpp index e3d55324..e272fae3 100644 --- a/src/drivers/win/cheat.cpp +++ b/src/drivers/win/cheat.cpp @@ -289,7 +289,7 @@ HWND InitializeCheatList(HWND hwnd) return hwndChtList; } -BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +INT_PTR CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) @@ -1063,7 +1063,7 @@ void UpdateCheatsAdded() UpdateCheatListGroupBoxUI(); } -BOOL CALLBACK GGConvCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +INT_PTR CALLBACK GGConvCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch(uMsg) { diff --git a/src/drivers/win/debugger.cpp b/src/drivers/win/debugger.cpp index 169a91dc..13bc4e7e 100644 --- a/src/drivers/win/debugger.cpp +++ b/src/drivers/win/debugger.cpp @@ -267,7 +267,7 @@ static void UpdateDialog(HWND hwndDlg) { //CheckDlgButton(hwndDlg,IDC_ADDBP_MEM_SPR,BST_UNCHECKED); } -BOOL CALLBACK AddbpCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +INT_PTR CALLBACK AddbpCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { char str[8] = {0}; int tmp; @@ -279,8 +279,8 @@ BOOL CALLBACK AddbpCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) SendDlgItemMessage(hwndDlg, IDC_ADDBP_ADDR_START, EM_SETLIMITTEXT, 4, 0); SendDlgItemMessage(hwndDlg, IDC_ADDBP_ADDR_END, EM_SETLIMITTEXT, 4, 0); - DefaultEditCtrlProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_ADDBP_ADDR_START), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_ADDBP_ADDR_END), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + DefaultEditCtrlProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_ADDBP_ADDR_START), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_ADDBP_ADDR_END), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); if (WP_edit >= 0) { @@ -1228,7 +1228,7 @@ int AddAsmHistory(HWND hwndDlg, int id, char *str) { return 1; } -BOOL CALLBACK AssemblerCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { +INT_PTR CALLBACK AssemblerCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { int romaddr,count,i,j; char str[128],*dasm; static int patchlen,applied,saved,lastundo; @@ -1362,7 +1362,7 @@ BOOL CALLBACK AssemblerCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar return FALSE; } -BOOL CALLBACK PatcherCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { +INT_PTR CALLBACK PatcherCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { char str[64]; //mbg merge 7/18/06 changed from unsigned char uint8 *c; int i; @@ -1760,7 +1760,7 @@ BOOL CALLBACK IDC_DEBUGGER_DISASSEMBLY_WndProc(HWND hwndDlg, UINT uMsg, WPARAM w return CallWindowProc(IDC_DEBUGGER_DISASSEMBLY_oldWndProc, hwndDlg, uMsg, wParam, lParam); } -BOOL CALLBACK DebuggerCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +INT_PTR CALLBACK DebuggerCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { RECT wrect; char str[256] = {0}; @@ -1825,12 +1825,12 @@ BOOL CALLBACK DebuggerCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPara SendDlgItemMessage(hwndDlg,IDC_DEBUGGER_VAL_SPR,EM_SETLIMITTEXT,2,0); // limit input - DefaultEditCtrlProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_DEBUGGER_VAL_PCSEEK), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_DEBUGGER_VAL_PC), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_DEBUGGER_VAL_A), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_DEBUGGER_VAL_X), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_DEBUGGER_VAL_Y), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_DEBUGGER_BOOKMARK), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + DefaultEditCtrlProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_DEBUGGER_VAL_PCSEEK), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_DEBUGGER_VAL_PC), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_DEBUGGER_VAL_A), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_DEBUGGER_VAL_X), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_DEBUGGER_VAL_Y), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_DEBUGGER_BOOKMARK), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); //I'm lazy, disable the controls which I can't mess with right now SendDlgItemMessage(hwndDlg,IDC_DEBUGGER_VAL_PPU,EM_SETREADONLY,TRUE,0); @@ -1851,7 +1851,7 @@ BOOL CALLBACK DebuggerCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPara hDisasmcontext = LoadMenu(fceu_hInstance,"DISASMCONTEXTMENUS"); // subclass editfield - IDC_DEBUGGER_DISASSEMBLY_oldWndProc = (WNDPROC)SetWindowLong(GetDlgItem(hwndDlg, IDC_DEBUGGER_DISASSEMBLY), GWL_WNDPROC, (LONG)IDC_DEBUGGER_DISASSEMBLY_WndProc); + IDC_DEBUGGER_DISASSEMBLY_oldWndProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_DEBUGGER_DISASSEMBLY), GWLP_WNDPROC, (LONG_PTR)IDC_DEBUGGER_DISASSEMBLY_WndProc); debugger_open = 1; inDebugger = true; diff --git a/src/drivers/win/header_editor.cpp b/src/drivers/win/header_editor.cpp index 15637ca6..9b43a7db 100644 --- a/src/drivers/win/header_editor.cpp +++ b/src/drivers/win/header_editor.cpp @@ -281,32 +281,32 @@ HWND InitHeaderEditDialog(HWND hwnd, iNES_HEADER* header) // Assign ID to the sub edit control in these comboboxes // PRG ROM - SetWindowLong(GetWindow(GetDlgItem(hwnd, IDC_PRGROM_COMBO), GW_CHILD), GWL_ID, IDC_PRGROM_EDIT); + SetWindowLongPtr(GetWindow(GetDlgItem(hwnd, IDC_PRGROM_COMBO), GW_CHILD), GWL_ID, IDC_PRGROM_EDIT); // PRG RAM - SetWindowLong(GetWindow(GetDlgItem(hwnd, IDC_PRGRAM_COMBO), GW_CHILD), GWL_ID, IDC_PRGRAM_EDIT); + SetWindowLongPtr(GetWindow(GetDlgItem(hwnd, IDC_PRGRAM_COMBO), GW_CHILD), GWL_ID, IDC_PRGRAM_EDIT); // PRG NVRAM - SetWindowLong(GetWindow(GetDlgItem(hwnd, IDC_PRGNVRAM_COMBO), GW_CHILD), GWL_ID, IDC_PRGNVRAM_EDIT); + SetWindowLongPtr(GetWindow(GetDlgItem(hwnd, IDC_PRGNVRAM_COMBO), GW_CHILD), GWL_ID, IDC_PRGNVRAM_EDIT); // CHR ROM - SetWindowLong(GetWindow(GetDlgItem(hwnd, IDC_CHRROM_COMBO), GW_CHILD), GWL_ID, IDC_CHRROM_EDIT); + SetWindowLongPtr(GetWindow(GetDlgItem(hwnd, IDC_CHRROM_COMBO), GW_CHILD), GWL_ID, IDC_CHRROM_EDIT); // CHR RAM - SetWindowLong(GetWindow(GetDlgItem(hwnd, IDC_CHRRAM_COMBO), GW_CHILD), GWL_ID, IDC_CHRRAM_EDIT); + SetWindowLongPtr(GetWindow(GetDlgItem(hwnd, IDC_CHRRAM_COMBO), GW_CHILD), GWL_ID, IDC_CHRRAM_EDIT); // CHR NVRAM - SetWindowLong(GetWindow(GetDlgItem(hwnd, IDC_CHRNVRAM_COMBO), GW_CHILD), GWL_ID, IDC_CHRNVRAM_EDIT); + SetWindowLongPtr(GetWindow(GetDlgItem(hwnd, IDC_CHRNVRAM_COMBO), GW_CHILD), GWL_ID, IDC_CHRNVRAM_EDIT); // Change the default wndproc of these control to limit their text // PRG ROM - DefaultEditCtrlProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(GetDlgItem(hwnd, IDC_PRGROM_COMBO), IDC_PRGROM_EDIT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + DefaultEditCtrlProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(GetDlgItem(hwnd, IDC_PRGROM_COMBO), IDC_PRGROM_EDIT), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); // PRG RAM - SetWindowLongPtr(GetDlgItem(GetDlgItem(hwnd, IDC_PRGRAM_COMBO), IDC_PRGRAM_EDIT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(GetDlgItem(hwnd, IDC_PRGRAM_COMBO), IDC_PRGRAM_EDIT), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); // PRG NVRAM - SetWindowLongPtr(GetDlgItem(GetDlgItem(hwnd, IDC_PRGNVRAM_COMBO), IDC_PRGNVRAM_EDIT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(GetDlgItem(hwnd, IDC_PRGNVRAM_COMBO), IDC_PRGNVRAM_EDIT), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); // CHR ROM - SetWindowLongPtr(GetDlgItem(GetDlgItem(hwnd, IDC_CHRROM_COMBO), IDC_CHRROM_EDIT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(GetDlgItem(hwnd, IDC_CHRROM_COMBO), IDC_CHRROM_EDIT), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); // CHR RAM - SetWindowLongPtr(GetDlgItem(GetDlgItem(hwnd, IDC_CHRRAM_COMBO), IDC_CHRRAM_EDIT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(GetDlgItem(hwnd, IDC_CHRRAM_COMBO), IDC_CHRRAM_EDIT), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); // CHR NVRAM - SetWindowLongPtr(GetDlgItem(GetDlgItem(hwnd, IDC_CHRNVRAM_COMBO), IDC_CHRNVRAM_EDIT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(GetDlgItem(hwnd, IDC_CHRNVRAM_COMBO), IDC_CHRNVRAM_EDIT), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); ToggleINES20(hwnd, IsDlgButtonChecked(hwnd, IDC_RADIO_VERSION_INES20) == BST_CHECKED); @@ -496,7 +496,7 @@ void ToggleUnofficialPrgRamPresent(HWND hwnd, bool ines20, bool unofficial_check EnableWindow(GetDlgItem(hwnd, IDC_PRGRAM_COMBO), enable); } -LRESULT CALLBACK HeaderEditorProc(HWND hDlg, UINT uMsg, WPARAM wP, LPARAM lP) +INT_PTR CALLBACK HeaderEditorProc(HWND hDlg, UINT uMsg, WPARAM wP, LPARAM lP) { static iNES_HEADER* header; @@ -599,7 +599,7 @@ void DoHeadEdit() if (GameInfo) { if (LoadHeader(hAppWnd, header)) - CreateDialogParam(fceu_hInstance, MAKEINTRESOURCE(IDD_EDIT_HEADER), hAppWnd, (DLGPROC)HeaderEditorProc, (LPARAM)header); + CreateDialogParam(fceu_hInstance, MAKEINTRESOURCE(IDD_EDIT_HEADER), hAppWnd, HeaderEditorProc, (LPARAM)header); else free(header); } @@ -607,7 +607,7 @@ void DoHeadEdit() // temporarily borrow LoadedRomFName, when no game is loaded, it is unused. LoadedRomFName[0] = 0; if (ShowINESFileBox(hAppWnd) && LoadHeader(hAppWnd, header)) - DialogBoxParam(fceu_hInstance, MAKEINTRESOURCE(IDD_EDIT_HEADER), hAppWnd, (DLGPROC)HeaderEditorProc, (LPARAM)header); + DialogBoxParam(fceu_hInstance, MAKEINTRESOURCE(IDD_EDIT_HEADER), hAppWnd, HeaderEditorProc, (LPARAM)header); else free(header); } diff --git a/src/drivers/win/memwatch.cpp b/src/drivers/win/memwatch.cpp index 7d1f541f..8da937f0 100644 --- a/src/drivers/win/memwatch.cpp +++ b/src/drivers/win/memwatch.cpp @@ -728,7 +728,7 @@ void ClearAllText() fileChanged = false; } -static BOOL CALLBACK MemWatchCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +static INT_PTR CALLBACK MemWatchCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { const int FMAX = 6; string formula[FMAX] = {"> than", "> by 1", "< than", "< by 1", "equal", "!equal"}; @@ -795,7 +795,7 @@ static BOOL CALLBACK MemWatchCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA // experimental: limit the text length and input to hex values SendDlgItemMessage(hwndDlg, MW_ADDR[i], EM_SETLIMITTEXT, 4, 0); - DefaultEditCtrlProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(hwndDlg, MW_ADDR[i]), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + DefaultEditCtrlProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(hwndDlg, MW_ADDR[i]), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); } //Populate Formula pulldown menus diff --git a/src/drivers/win/video.cpp b/src/drivers/win/video.cpp index 7029c3c2..5e466e3b 100644 --- a/src/drivers/win/video.cpp +++ b/src/drivers/win/video.cpp @@ -1148,7 +1148,7 @@ double GetDlgItemDouble(HWND hDlg, int item) return(ret); } -BOOL CALLBACK VideoConCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +INT_PTR CALLBACK VideoConCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { static char *vmstr[11]={ "Custom", @@ -1288,10 +1288,10 @@ BOOL CALLBACK VideoConCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPara EnableWindow(GetDlgItem(hwndDlg, IDC_TVASPECT_Y), eoptions&EO_TVASPECT); EnableWindow(GetDlgItem(hwndDlg, IDC_STATIC_SLASHTEXT), eoptions&EO_TVASPECT); - DefaultEditCtrlProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_WINSIZE_MUL_X), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_WINSIZE_MUL_Y), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_TVASPECT_X), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_TVASPECT_Y), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + DefaultEditCtrlProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_WINSIZE_MUL_X), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_WINSIZE_MUL_Y), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_TVASPECT_X), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_TVASPECT_Y), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); break; } From c1e94dd999f756b3c505458e9ef394d2a82c79f2 Mon Sep 17 00:00:00 2001 From: owomomo Date: Sat, 29 Jun 2019 10:35:21 +0800 Subject: [PATCH 10/19] ... --- src/drivers/win/cheat.cpp | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/drivers/win/cheat.cpp b/src/drivers/win/cheat.cpp index e272fae3..16044fce 100644 --- a/src/drivers/win/cheat.cpp +++ b/src/drivers/win/cheat.cpp @@ -343,16 +343,16 @@ INT_PTR CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA SendDlgItemMessage(hwndDlg, IDC_CHEAT_GAME_GENIE_TEXT, EM_SETLIMITTEXT, 8, 0); // limit their characters - DefaultEditCtrlProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_ADDR), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_ADDR), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_VAL), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_COM), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_VAL_KNOWN), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_VAL_NE_BY), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_VAL_GT_BY), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_VAL_LT_BY), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_TEXT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_GAME_GENIE_TEXT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + DefaultEditCtrlProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_ADDR), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_ADDR), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_VAL), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_COM), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_VAL_KNOWN), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_VAL_NE_BY), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_VAL_GT_BY), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_VAL_LT_BY), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_TEXT), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_GAME_GENIE_TEXT), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); // Create popup to "Auto load / save with game", since it has 3 states and the text need some explanation SetCheatToolTip(hwndDlg, IDC_CHEAT_AUTOLOADSAVE); @@ -1109,10 +1109,10 @@ INT_PTR CALLBACK GGConvCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar SendDlgItemMessage(hwndDlg, IDC_GAME_GENIE_VAL, WM_SETFONT, (WPARAM)hNewFont, FALSE); // limit their characters - DefaultEditCtrlProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_GAME_GENIE_CODE), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_GAME_GENIE_ADDR), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_GAME_GENIE_COMP), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_GAME_GENIE_VAL), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + DefaultEditCtrlProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_GAME_GENIE_CODE), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_GAME_GENIE_ADDR), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_GAME_GENIE_COMP), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_GAME_GENIE_VAL), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); } break; case WM_CLOSE: From 56f27ee19469f804434c2f9b874b9e245253bc2a Mon Sep 17 00:00:00 2001 From: owomomo Date: Sat, 29 Jun 2019 10:39:13 +0800 Subject: [PATCH 11/19] Temporarily revert my changes to solve conflict --- src/drivers/win/cheat.cpp | 76 +++++---------------------------------- 1 file changed, 8 insertions(+), 68 deletions(-) diff --git a/src/drivers/win/cheat.cpp b/src/drivers/win/cheat.cpp index 16044fce..bdbf48cb 100644 --- a/src/drivers/win/cheat.cpp +++ b/src/drivers/win/cheat.cpp @@ -30,8 +30,7 @@ #include // static HWND pwindow = 0; // owomomo: removed pwindow because ambiguous, perhaps it is some obseleted early future plan from half developed old FCEUX? -HWND hCheat = 0; //Handle to Cheats dialog -HWND hCheatTip = 0; //Handle to tooltip +HWND hCheat = 0; //Handle to Cheats dialog HMENU hCheatcontext = 0; //Handle to cheat context menu bool pauseWhileActive = false; //For checkbox "Pause while active" @@ -73,7 +72,7 @@ char* GameGenieLetters = "APZLGITYEOXUKSVN"; // bool dodecode; -HWND hGGConv = 0; +HWND hGGConv; void EncodeGG(char *str, int a, int v, int c); void ListGGAddresses(HWND hwndDlg); @@ -296,7 +295,6 @@ INT_PTR CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA { case WM_INITDIALOG: { - POINT pt; if (ChtPosX != 0 && ChtPosY != 0) { @@ -354,8 +352,7 @@ INT_PTR CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_TEXT), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_GAME_GENIE_TEXT), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); - // Create popup to "Auto load / save with game", since it has 3 states and the text need some explanation - SetCheatToolTip(hwndDlg, IDC_CHEAT_AUTOLOADSAVE); + possiTotalCount = 0; possiItemCount = SendDlgItemMessage(hwndDlg, IDC_CHEAT_LIST_POSSIBILITIES, LVM_GETCOUNTPERPAGE, 0, 0); @@ -398,7 +395,6 @@ INT_PTR CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA break; case WM_QUIT: case WM_CLOSE: - DestroyWindow(hCheatTip); if (CheatStyle) DestroyWindow(hwndDlg); else @@ -467,7 +463,7 @@ INT_PTR CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA break; case WM_COMMAND: { - static int editMode = -1; + static int editMode = 0; switch (HIWORD(wParam)) { @@ -745,13 +741,12 @@ INT_PTR CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA } break; case IDC_CHEAT_AUTOLOADSAVE: - { switch (IsDlgButtonChecked(hwndDlg, IDC_CHEAT_AUTOLOADSAVE)) { case BST_CHECKED: disableAutoLSCheats = 0; break; case BST_INDETERMINATE: disableAutoLSCheats = 1; break; case BST_UNCHECKED: - if(MessageBox(hwndDlg, "If this option is unchecked, you must manually save the cheats by yourself, or all the changes you made to the cheat list would be discarded silently without any asking once you close the game!\nDo you really want to do it in this way?", "Cheat warning", MB_YESNO | MB_ICONWARNING | MB_DEFBUTTON2) == IDYES) + if(MessageBox(hwndDlg, "If this option is unchecked, you must manually save the cheats by yourself, or all the changed you made to the cheat list would be discarded silently without any asking once you close the game!\nDo you really want to do it in this way?", "Cheat warning", MB_YESNO | MB_ICONWARNING) == IDYES) disableAutoLSCheats = 2; else { @@ -759,8 +754,6 @@ INT_PTR CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA CheckDlgButton(hwndDlg, IDC_CHEAT_AUTOLOADSAVE, BST_CHECKED); } } - SetCheatToolTip(hwndDlg, IDC_CHEAT_AUTOLOADSAVE); - } } break; case EN_SETFOCUS: @@ -771,18 +764,6 @@ INT_PTR CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA case IDC_CHEAT_COM: editMode = 0; break; case IDC_CHEAT_TEXT: editMode = 1; break; case IDC_CHEAT_GAME_GENIE_TEXT: editMode = 2; break; - default: editMode = -1; - } - break; - case EN_KILLFOCUS: - switch (LOWORD(wParam)) - { - case IDC_CHEAT_ADDR: - case IDC_CHEAT_VAL: - case IDC_CHEAT_COM: - case IDC_CHEAT_TEXT: - case IDC_CHEAT_GAME_GENIE_TEXT: - default: editMode = -1; break; } break; case EN_UPDATE: @@ -1065,6 +1046,8 @@ void UpdateCheatsAdded() INT_PTR CALLBACK GGConvCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { +// int i; + extern void GetUIGGInfo(HWND hwndDlg, uint32* a, uint8* v, int* c); switch(uMsg) { case WM_MOVE: { @@ -1244,6 +1227,7 @@ void ListGGAddresses(HWND hwndDlg) SendDlgItemMessage(hwndDlg, IDC_LIST_GGADDRESSES, LB_RESETCONTENT,0,0); uint32 a = -1; uint8 v = -1; int c = -1; + extern void GetUIGGInfo(HWND hwnd, uint32* a, uint8* v, int* c); GetUIGGInfo(hwndDlg, &a, &v, &c); // also enable/disable the add GG button here @@ -1326,50 +1310,6 @@ inline void GetCheatCodeStr(char* buf, int a, int v, int c) sprintf(buf, "%04X?%02X:%02X", a, c, v); } -static void SetCheatToolTip(HWND hwndDlg, UINT id) -{ - TOOLINFO info; - memset(&info, 0, sizeof(TOOLINFO)); - info.cbSize = sizeof(TOOLINFO); - info.uFlags = TTF_SUBCLASS | TTF_IDISHWND; - info.hwnd = hwndDlg; - info.lpszText = GetCheatToolTipStr(hwndDlg, id); - info.uId = (UINT_PTR)GetDlgItem(hwndDlg, id); - - if (hCheatTip) - SendMessage(hCheatTip, TTM_UPDATETIPTEXT, 0, (LPARAM)&info); - else - { - if (hCheatTip = CreateWindow(TOOLTIPS_CLASS, NULL, WS_POPUP | TTS_ALWAYSTIP, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, hwndDlg, NULL, fceu_hInstance, NULL)) { - SendMessage(hCheatTip, TTM_ADDTOOL, 0, (LPARAM)&info); - SendMessage(hCheatTip, TTM_SETDELAYTIME, TTDT_AUTOPOP, 30000); - SendMessage(hCheatTip, TTM_SETMAXTIPWIDTH, 0, 8000); - } - } -} - -char* GetCheatToolTipStr(HWND hwndDlg, UINT id) -{ - switch (id) - { - case IDC_CHEAT_AUTOLOADSAVE: - switch (disableAutoLSCheats) - { - case 0: return "Automatically load/save cheat file along with the game."; - case 1: return - "Don't add cheat on game load, but prompt for saving on game closes.\r\n" - "You must manually import cht file when it's needed."; - case 2: return - "Don't add cheat on game load, and don't save cheat on game closes.\r\n" - "You must manually import/export cht file by yourself,\nor all your changes to cheat will be lost!"; - default: - return "Mysterious undocumented state."; - } - } - - return NULL; -} - void GetUICheatInfo(HWND hwndDlg, char* name, uint32* a, uint8* v, int* c) { char buf[16]; From a9604c162f18776c8e694d5e50b42db9f73b3001 Mon Sep 17 00:00:00 2001 From: owomomo Date: Sat, 29 Jun 2019 10:53:44 +0800 Subject: [PATCH 12/19] Re-attach my changes to the conflict file. --- src/drivers/win/cheat.cpp | 77 ++++++++++++++++++++++++++++++++++----- 1 file changed, 68 insertions(+), 9 deletions(-) diff --git a/src/drivers/win/cheat.cpp b/src/drivers/win/cheat.cpp index bdbf48cb..cc2bac03 100644 --- a/src/drivers/win/cheat.cpp +++ b/src/drivers/win/cheat.cpp @@ -30,7 +30,8 @@ #include // static HWND pwindow = 0; // owomomo: removed pwindow because ambiguous, perhaps it is some obseleted early future plan from half developed old FCEUX? -HWND hCheat = 0; //Handle to Cheats dialog +HWND hCheat = 0; //Handle to Cheats dialog +HWND hCheatTip = 0; //Handle to tooltip HMENU hCheatcontext = 0; //Handle to cheat context menu bool pauseWhileActive = false; //For checkbox "Pause while active" @@ -72,7 +73,7 @@ char* GameGenieLetters = "APZLGITYEOXUKSVN"; // bool dodecode; -HWND hGGConv; +HWND hGGConv = 0; void EncodeGG(char *str, int a, int v, int c); void ListGGAddresses(HWND hwndDlg); @@ -352,7 +353,8 @@ INT_PTR CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_TEXT), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_CHEAT_GAME_GENIE_TEXT), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); - + // Create popup to "Auto load / save with game", since it has 3 states and the text need some explanation + SetCheatToolTip(hwndDlg, IDC_CHEAT_AUTOLOADSAVE); possiTotalCount = 0; possiItemCount = SendDlgItemMessage(hwndDlg, IDC_CHEAT_LIST_POSSIBILITIES, LVM_GETCOUNTPERPAGE, 0, 0); @@ -395,6 +397,7 @@ INT_PTR CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA break; case WM_QUIT: case WM_CLOSE: + DestroyWindow(hCheatTip); if (CheatStyle) DestroyWindow(hwndDlg); else @@ -463,7 +466,7 @@ INT_PTR CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA break; case WM_COMMAND: { - static int editMode = 0; + static int editMode = -1; switch (HIWORD(wParam)) { @@ -741,12 +744,13 @@ INT_PTR CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA } break; case IDC_CHEAT_AUTOLOADSAVE: + { switch (IsDlgButtonChecked(hwndDlg, IDC_CHEAT_AUTOLOADSAVE)) { case BST_CHECKED: disableAutoLSCheats = 0; break; case BST_INDETERMINATE: disableAutoLSCheats = 1; break; case BST_UNCHECKED: - if(MessageBox(hwndDlg, "If this option is unchecked, you must manually save the cheats by yourself, or all the changed you made to the cheat list would be discarded silently without any asking once you close the game!\nDo you really want to do it in this way?", "Cheat warning", MB_YESNO | MB_ICONWARNING) == IDYES) + if(MessageBox(hwndDlg, "If this option is unchecked, you must manually save the cheats by yourself, or all the changes you made to the cheat list would be discarded silently without any asking once you close the game!\nDo you really want to do it in this way?", "Cheat warning", MB_YESNO | MB_ICONWARNING | MB_DEFBUTTON2) == IDYES) disableAutoLSCheats = 2; else { @@ -754,6 +758,8 @@ INT_PTR CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA CheckDlgButton(hwndDlg, IDC_CHEAT_AUTOLOADSAVE, BST_CHECKED); } } + SetCheatToolTip(hwndDlg, IDC_CHEAT_AUTOLOADSAVE); + } } break; case EN_SETFOCUS: @@ -764,6 +770,18 @@ INT_PTR CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA case IDC_CHEAT_COM: editMode = 0; break; case IDC_CHEAT_TEXT: editMode = 1; break; case IDC_CHEAT_GAME_GENIE_TEXT: editMode = 2; break; + default: editMode = -1; + } + break; + case EN_KILLFOCUS: + switch (LOWORD(wParam)) + { + case IDC_CHEAT_ADDR: + case IDC_CHEAT_VAL: + case IDC_CHEAT_COM: + case IDC_CHEAT_TEXT: + case IDC_CHEAT_GAME_GENIE_TEXT: + default: editMode = -1; break; } break; case EN_UPDATE: @@ -1046,8 +1064,6 @@ void UpdateCheatsAdded() INT_PTR CALLBACK GGConvCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { -// int i; - extern void GetUIGGInfo(HWND hwndDlg, uint32* a, uint8* v, int* c); switch(uMsg) { case WM_MOVE: { @@ -1227,7 +1243,6 @@ void ListGGAddresses(HWND hwndDlg) SendDlgItemMessage(hwndDlg, IDC_LIST_GGADDRESSES, LB_RESETCONTENT,0,0); uint32 a = -1; uint8 v = -1; int c = -1; - extern void GetUIGGInfo(HWND hwnd, uint32* a, uint8* v, int* c); GetUIGGInfo(hwndDlg, &a, &v, &c); // also enable/disable the add GG button here @@ -1310,6 +1325,50 @@ inline void GetCheatCodeStr(char* buf, int a, int v, int c) sprintf(buf, "%04X?%02X:%02X", a, c, v); } +static void SetCheatToolTip(HWND hwndDlg, UINT id) +{ + TOOLINFO info; + memset(&info, 0, sizeof(TOOLINFO)); + info.cbSize = sizeof(TOOLINFO); + info.uFlags = TTF_SUBCLASS | TTF_IDISHWND; + info.hwnd = hwndDlg; + info.lpszText = GetCheatToolTipStr(hwndDlg, id); + info.uId = (UINT_PTR)GetDlgItem(hwndDlg, id); + + if (hCheatTip) + SendMessage(hCheatTip, TTM_UPDATETIPTEXT, 0, (LPARAM)&info); + else + { + if (hCheatTip = CreateWindow(TOOLTIPS_CLASS, NULL, WS_POPUP | TTS_ALWAYSTIP, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, hwndDlg, NULL, fceu_hInstance, NULL)) { + SendMessage(hCheatTip, TTM_ADDTOOL, 0, (LPARAM)&info); + SendMessage(hCheatTip, TTM_SETDELAYTIME, TTDT_AUTOPOP, 30000); + SendMessage(hCheatTip, TTM_SETMAXTIPWIDTH, 0, 8000); + } + } +} + +char* GetCheatToolTipStr(HWND hwndDlg, UINT id) +{ + switch (id) + { + case IDC_CHEAT_AUTOLOADSAVE: + switch (disableAutoLSCheats) + { + case 0: return "Automatically load/save cheat file along with the game."; + case 1: return + "Don't add cheat on game load, but prompt for saving on game closes.\r\n" + "You must manually import cht file when it's needed."; + case 2: return + "Don't add cheat on game load, and don't save cheat on game closes.\r\n" + "You must manually import/export cht file by yourself,\nor all your changes to cheat will be lost!"; + default: + return "Mysterious undocumented state."; + } + } + + return NULL; +} + void GetUICheatInfo(HWND hwndDlg, char* name, uint32* a, uint8* v, int* c) { char buf[16]; @@ -1483,4 +1542,4 @@ void DeleteCheatFont() hFont = NULL; hNewFont = NULL; } -} \ No newline at end of file +} From 50bbacfb4deba90aa0c62478b094edb01c23d61c Mon Sep 17 00:00:00 2001 From: owomomo Date: Fri, 12 Jul 2019 13:07:50 +0800 Subject: [PATCH 13/19] Detail --- src/drivers/win/ramwatch.cpp | 9 +++++---- src/drivers/win/window.cpp | 15 +++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/drivers/win/ramwatch.cpp b/src/drivers/win/ramwatch.cpp index d9433ed3..eaf109c3 100644 --- a/src/drivers/win/ramwatch.cpp +++ b/src/drivers/win/ramwatch.cpp @@ -787,8 +787,12 @@ INT_PTR CALLBACK EditWatchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPara { case WM_INITDIALOG: { + + HWND parent = GetParent(hDlg); + indexes[GetDlgStoreIndex(parent)] = lParam; + RECT r; - GetWindowRect(hWnd, &r); + GetWindowRect(hDlg, &r); SetWindowPos(hDlg, NULL, r.left, r.top, NULL, NULL, SWP_NOSIZE | SWP_NOZORDER | SWP_SHOWWINDOW); AddressWatcher& watcher = rswatches[lParam]; @@ -836,9 +840,6 @@ INT_PTR CALLBACK EditWatchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPara if (watcher.comment != NULL) SetDlgItemText(hDlg, IDC_PROMPT_EDIT, watcher.comment); - HWND parent = GetParent(hDlg); - indexes[GetDlgStoreIndex(parent)] = lParam; - if (watcher.Type == 'S' || parent == RamSearchHWnd || parent == hCheat) { EnableWindow(GetDlgItem(hDlg, IDC_SPECIFICADDRESS), FALSE); diff --git a/src/drivers/win/window.cpp b/src/drivers/win/window.cpp index eee138b5..ae70b7fa 100644 --- a/src/drivers/win/window.cpp +++ b/src/drivers/win/window.cpp @@ -3272,7 +3272,7 @@ LRESULT APIENTRY FilterEditCtrlProc(HWND hwnd, UINT msg, WPARAM wP, LPARAM lP) case WM_PASTE: { - bool(*IsLetterLegal)(char) = GetIsLetterLegal(GetDlgCtrlID(hwnd)); + bool (*IsLetterLegal)(char) = GetIsLetterLegal(GetDlgCtrlID(hwnd)); if (IsLetterLegal) { @@ -3299,7 +3299,6 @@ LRESULT APIENTRY FilterEditCtrlProc(HWND hwnd, UINT msg, WPARAM wP, LPARAM lP) } GlobalUnlock(handle); CloseClipboard(); - } } } @@ -3308,7 +3307,7 @@ LRESULT APIENTRY FilterEditCtrlProc(HWND hwnd, UINT msg, WPARAM wP, LPARAM lP) case WM_CHAR: { bool(*IsLetterLegal)(char) = GetIsLetterLegal(GetDlgCtrlID(hwnd)); - through = IsInputLegal(GetIsLetterLegal(GetDlgCtrlID(hwnd)), wP); + through = IsInputLegal(IsLetterLegal, wP); if (!through) ShowLetterIllegalError(hwnd, IsLetterLegal); } @@ -3322,9 +3321,6 @@ bool inline (*GetIsLetterLegal(UINT id))(char letter) { switch (id) { - // owomomo TODO: RAM Search is a bit complicated, - // I'll handle it in later development - // Game genie text in Cheat and Game Genie Encoder/Decoder case IDC_CHEAT_GAME_GENIE_TEXT: @@ -3418,16 +3414,19 @@ void ShowLetterIllegalBalloonTip(HWND hwnd, bool(*IsLetterLegal)(char letter)) tip.ttiIcon = TTI_ERROR; SendMessage(hwnd, EM_SHOWBALLOONTIP, 0, (LPARAM)&tip); + // make a sound + MessageBeep(0xFFFFFFFF); + free(titleW); free(msgW); } inline void ShowLetterIllegalMessageBox(HWND hwnd, bool(*IsLetterLegal)(char letter)) { - MessageBox(hwnd, GetLetterIllegalErrMsg(IsLetterLegal), "Unacceptable Character", MB_OK | MB_ICONERROR); + MessageBox(hwnd, GetLetterIllegalErrMsg(IsLetterLegal), _T("Unacceptable Character"), MB_OK | MB_ICONERROR); } -inline char* GetLetterIllegalErrMsg(bool(*IsLetterLegal)(char letter)) +inline TCHAR* GetLetterIllegalErrMsg(bool(*IsLetterLegal)(char letter)) { if (IsLetterLegal == IsLetterLegalGG) return "You can only type Game Genie characters:\nA P Z L G I T Y E O X U K S V N"; From c830d2cc7de5e1d35e4cc69fcfddd3d804164da8 Mon Sep 17 00:00:00 2001 From: owomomo Date: Fri, 31 Jan 2020 20:13:41 +0800 Subject: [PATCH 14/19] ... --- src/drivers/win/ram_search.cpp | 10 +++++----- src/drivers/win/ram_search.h | 6 ++++++ src/drivers/win/ramwatch.cpp | 10 +++++----- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/drivers/win/ram_search.cpp b/src/drivers/win/ram_search.cpp index c1b0dc73..f4a41214 100644 --- a/src/drivers/win/ram_search.cpp +++ b/src/drivers/win/ram_search.cpp @@ -1268,14 +1268,14 @@ LRESULT CustomDraw (LPARAM lParam) lplvcd->clrTextBk = RGB(248, 248, 255); break; case 1: - lplvcd->clrTextBk = RGB(216, 203, 253); break; + lplvcd->clrTextBk = CHEAT_1BYTE_BG; break; case 2: - lplvcd->clrTextBk = RGB(195, 186, 253); break; + lplvcd->clrTextBk = CHEAT_2BYTE_BG; break; case 3: - lplvcd->clrTextBk = RGB(176, 139, 252); break; + lplvcd->clrTextBk = CHEAT_3BYTE_BG; break; case 4: - lplvcd->clrTextBk = RGB(175, 94, 253); - lplvcd->clrText = RGB(255, 255, 255); break; // use a more visual color in dark background + lplvcd->clrTextBk = CHEAT_4BYTE_BG; + lplvcd->clrText = CHEAT_4BYTE_TEXT; break; // use a more visual color in dark background } if(!IsSatisfied(lplvcd->nmcd.dwItemSpec)) diff --git a/src/drivers/win/ram_search.h b/src/drivers/win/ram_search.h index 9fb14644..d3c96b36 100644 --- a/src/drivers/win/ram_search.h +++ b/src/drivers/win/ram_search.h @@ -37,4 +37,10 @@ extern POINT CalcSubWindowPos(HWND hDlg, POINT* conf); // static int CALLBACK RamSearchItemSortFunc(LPARAM lp1, LPARAM lp2, LPARAM lpSort); // extern void UpdateSortColumnIcon(HWND hwndListView, int sortColumn, bool sortAsc); +#define CHEAT_1BYTE_BG RGB(216, 203, 253) +#define CHEAT_2BYTE_BG RGB(195, 186, 253) +#define CHEAT_3BYTE_BG RGB(176, 139, 252) +#define CHEAT_4BYTE_BG RGB(175, 94, 253) +#define CHEAT_4BYTE_TEXT RGB(255, 255, 255) + #endif diff --git a/src/drivers/win/ramwatch.cpp b/src/drivers/win/ramwatch.cpp index eaf109c3..79d17ed8 100644 --- a/src/drivers/win/ramwatch.cpp +++ b/src/drivers/win/ramwatch.cpp @@ -1219,14 +1219,14 @@ INT_PTR CALLBACK RamWatchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam SetWindowLongPtr(hDlg, DWLP_MSGRESULT, CDRF_DODEFAULT); return TRUE; case 1: - lplvcd->clrTextBk = RGB(216, 203, 253); break; + lplvcd->clrTextBk = CHEAT_1BYTE_BG; break; case 2: - lplvcd->clrTextBk = RGB(195, 186, 253); break; + lplvcd->clrTextBk = CHEAT_2BYTE_BG; break; case 3: - lplvcd->clrTextBk = RGB(176, 139, 252); break; + lplvcd->clrTextBk = CHEAT_3BYTE_BG; break; case 4: - lplvcd->clrTextBk = RGB(175, 94, 253); - lplvcd->clrText = RGB(255, 255, 255); break; // use a more visual color in dark background + lplvcd->clrTextBk = CHEAT_4BYTE_BG; + lplvcd->clrText = CHEAT_4BYTE_TEXT; break; // use a more visual color in dark background } SetWindowLongPtr(hDlg, DWLP_MSGRESULT, CDRF_NEWFONT); } From c3d0d40aa65427cd4cc06b1045d5bab5d7102a5f Mon Sep 17 00:00:00 2001 From: owomomo Date: Sat, 1 Feb 2020 01:00:34 +0800 Subject: [PATCH 15/19] Trying to find a more efficient way to know which byte has a cheat. It might be memory cost but it's 2020. --- src/cheat.cpp | 50 ++++++++++++++++++---------------- src/cheat.h | 12 ++++---- src/drivers/win/cheat.cpp | 6 ++-- src/drivers/win/cheat.h | 1 - src/drivers/win/memwatch.cpp | 10 ++----- src/drivers/win/ram_search.cpp | 29 ++++++++++---------- 6 files changed, 52 insertions(+), 56 deletions(-) diff --git a/src/cheat.cpp b/src/cheat.cpp index 0ac5955c..c6ec6be7 100644 --- a/src/cheat.cpp +++ b/src/cheat.cpp @@ -39,7 +39,6 @@ using namespace std; static uint8 *CheatRPtrs[64]; vector FrozenAddresses; //List of addresses that are currently frozen -void UpdateFrozenList(void); //Function that populates the list of frozen addresses unsigned int FrozenAddressCount = 0; //Keeps up with the Frozen address count, necessary for using in other dialogs (such as hex editor) void FCEU_CheatResetRAM(void) @@ -64,6 +63,7 @@ CHEATF_SUBFAST SubCheats[256] = { 0 }; uint32 numsubcheats = 0; int globalCheatDisabled = 0; int disableAutoLSCheats = 0; +static unsigned char cheatMap[0x10000 / 8] = { 0 }; struct CHEATF *cheats = 0, *cheatsl = 0; @@ -102,11 +102,16 @@ void RebuildSubCheats(void) { uint32 x; struct CHEATF *c = cheats; - for(x = 0; x < numsubcheats; x++) + for (x = 0; x < numsubcheats; x++) + { SetReadHandler(SubCheats[x].addr, SubCheats[x].addr, SubCheats[x].PrevRead); + SetByteCheat(SubCheats[x].addr, false); + } numsubcheats = 0; + if (!globalCheatDisabled) + { while(c) { if(c->type == 1 && c->status && GetReadHandler(c->addr) != SubCheatsRead) @@ -116,26 +121,28 @@ void RebuildSubCheats(void) SubCheats[numsubcheats].val = c->val; SubCheats[numsubcheats].compare = c->compare; SetReadHandler(c->addr, c->addr, SubCheatsRead); + SetByteCheat(SubCheats[numsubcheats].addr, true); numsubcheats++; } c = c->next; } - + } FrozenAddressCount = numsubcheats; //Update the frozen address list - UpdateFrozenList(); } void FCEU_PowerCheats() { numsubcheats = 0; /* Quick hack to prevent setting of ancient read addresses. */ + memset(cheatMap, 0, sizeof(cheatMap)); RebuildSubCheats(); } int FCEU_CalcCheatAffectedBytes(uint32 address, uint32 size) { + uint32 count = 0; - for (uint32 i = 0; i < numsubcheats && count < size; ++i) - if (SubCheats[i].addr >= address && SubCheats[i].addr < address + size) + for (uint32 i = 0; i < size; ++i) + if (IsByteCheat(address + i)) ++count; return count; } @@ -195,9 +202,11 @@ void FCEU_LoadGameCheats(FILE *override, int override_existing) int tc = 0; char *fn; - savecheats = 0; if (override_existing) + { numsubcheats = 0; + memset(cheatMap, 0, sizeof(cheatMap)); + } if(override) fp = override; @@ -870,22 +879,6 @@ void FCEU_CheatSetByte(uint32 A, uint8 V) BWrite[A](A, V); } -void UpdateFrozenList(void) -{ - //The purpose of this function is to keep an up to date list of addresses that are currently frozen - //and make these accessible to other dialogs that deal with memory addresses such as - //memwatch, hex editor, ramfilter, etc. - - uint32 x; - FrozenAddresses.clear(); //Clear vector and repopulate - for(x = 0; x < numsubcheats; x++) - { - FrozenAddresses.push_back(SubCheats[x].addr); - //FCEU_printf("Address %d: %d \n",x,FrozenAddresses[x]); //Debug - } - //FCEUI_DispMessage("FrozenCount: %d",0,FrozenAddressCount);//Debug -} - // disable all cheats int FCEU_DisableAllCheats(){ int count = 0; @@ -902,3 +895,14 @@ int FCEU_DisableAllCheats(){ RebuildSubCheats(); return count; } + +int IsByteCheat(uint8 address) +{ + return cheatMap[address / 8] >> (address % 8) & 1; +} + +void SetByteCheat(uint8 address, bool cheat) +{ + cheat ? cheatMap[address / 8] |= (1 << address % 8) : cheatMap[address / 8] ^= (1 << address % 8); +} + diff --git a/src/cheat.h b/src/cheat.h index 84e75ef7..0b488420 100644 --- a/src/cheat.h +++ b/src/cheat.h @@ -11,7 +11,6 @@ void FCEU_ApplyPeriodicCheats(void); void FCEU_PowerCheats(void); int FCEU_CalcCheatAffectedBytes(uint32 address, uint32 size); - int FCEU_CheatGetByte(uint32 A); void FCEU_CheatSetByte(uint32 A, uint8 V); @@ -45,6 +44,11 @@ struct SEARCHPOSSIBLE { bool update; }; +// Trying to find a more efficient way for determining if an address has a cheat +// 1 byte represents to 8 bytes in NES, +int IsByteCheat(uint8 address); +void SetByteCheat(uint8 address, bool cheat); + #define FCEU_SEARCH_SPECIFIC_CHANGE 0 #define FCEU_SEARCH_RELATIVE_CHANGE 1 #define FCEU_SEARCH_PUERLY_RELATIVE_CHANGE 2 @@ -55,10 +59,4 @@ struct SEARCHPOSSIBLE { #define FCEU_SEARCH_NEWVAL_GT_KNOWN 7 #define FCEU_SEARCH_NEWVAL_LT_KNOWN 8 - -#define CalcAddressRangeCheatCount(count, address, size) \ - count = 0; \ - for (int i = 0; i < numsubcheats && count < size; ++i) \ - if (SubCheats[i].addr >= address && SubCheats[i].addr < address + size) \ - ++count #endif \ No newline at end of file diff --git a/src/drivers/win/cheat.cpp b/src/drivers/win/cheat.cpp index cc2bac03..576737e9 100644 --- a/src/drivers/win/cheat.cpp +++ b/src/drivers/win/cheat.cpp @@ -1415,24 +1415,22 @@ void UpdateCheatRelatedWindow() // ram search extern HWND RamSearchHWnd; if (RamSearchHWnd) - { // if ram search is open then update the ram list. SendDlgItemMessage(RamSearchHWnd, IDC_RAMLIST, LVM_REDRAWITEMS, SendDlgItemMessage(RamSearchHWnd, IDC_RAMLIST, LVM_GETTOPINDEX, 0, 0), + SendDlgItemMessage(RamSearchHWnd, IDC_RAMLIST, LVM_GETTOPINDEX, 0, 0) + SendDlgItemMessage(RamSearchHWnd, IDC_RAMLIST, LVM_GETCOUNTPERPAGE, 0, 0) + 1); - } // ram watch extern void UpdateWatchCheats(); UpdateWatchCheats(); extern HWND RamWatchHWnd; if (RamWatchHWnd) - { // if ram watch is open then update the ram list. SendDlgItemMessage(RamWatchHWnd, IDC_WATCHLIST, LVM_REDRAWITEMS, SendDlgItemMessage(RamWatchHWnd, IDC_WATCHLIST, LVM_GETTOPINDEX, 0, 0), + SendDlgItemMessage(RamSearchHWnd, IDC_RAMLIST, LVM_GETTOPINDEX, 0, 0) + SendDlgItemMessage(RamWatchHWnd, IDC_WATCHLIST, LVM_GETCOUNTPERPAGE, 0, 0) + 1); - } } diff --git a/src/drivers/win/cheat.h b/src/drivers/win/cheat.h index 13a7d9a2..a10af805 100644 --- a/src/drivers/win/cheat.h +++ b/src/drivers/win/cheat.h @@ -26,7 +26,6 @@ static void SetCheatToolTip(HWND hwndDlg, UINT id); char* GetCheatToolTipStr(HWND hwndDlg, UINT id); extern unsigned int FrozenAddressCount; -extern std::vector FrozenAddresses; //void ConfigAddCheat(HWND wnd); //bbit edited:commented out this line extern struct CHEATF* cheats; extern char* GameGenieLetters; diff --git a/src/drivers/win/memwatch.cpp b/src/drivers/win/memwatch.cpp index 8da937f0..e3b4fc16 100644 --- a/src/drivers/win/memwatch.cpp +++ b/src/drivers/win/memwatch.cpp @@ -315,17 +315,13 @@ void UpdateMemWatch() MWRec& mwrec = mwrecs[i]; //Display blue if address is frozen - if (FrozenAddressCount && FrozenAddresses.size()) - { + if (FrozenAddressCount) for (unsigned int x = 0; x < FrozenAddressCount; x++) { - if (mwrec.addr == FrozenAddresses[x]) - { - //SetTextColor(hdc,RGB(0,0,255)); + extern int IsByteCheat(uint8); + if (IsByteCheat(mwrec.addr)) SetTextColor(hdc,GetSysColor(COLOR_HIGHLIGHT)); - } } - } char* text; if(mwrec.valid && GameInfo) diff --git a/src/drivers/win/ram_search.cpp b/src/drivers/win/ram_search.cpp index f4a41214..6a05e252 100644 --- a/src/drivers/win/ram_search.cpp +++ b/src/drivers/win/ram_search.cpp @@ -39,6 +39,7 @@ #include #include #include + #ifdef WIN32 #include "BaseTsd.h" typedef INT_PTR intptr_t; @@ -1262,20 +1263,20 @@ LRESULT CustomDraw (LPARAM lParam) int rv = CDRF_DODEFAULT; int cheat = CALL_WITH_T_SIZE_TYPES_1(GetNumCheatsFromIndex, rs_type_size, rs_t == 's', noMisalign, lplvcd->nmcd.dwItemSpec); switch (cheat) { - default: - case 0: - if (lplvcd->nmcd.dwItemSpec % 2) - lplvcd->clrTextBk = RGB(248, 248, 255); - break; - case 1: - lplvcd->clrTextBk = CHEAT_1BYTE_BG; break; - case 2: - lplvcd->clrTextBk = CHEAT_2BYTE_BG; break; - case 3: - lplvcd->clrTextBk = CHEAT_3BYTE_BG; break; - case 4: - lplvcd->clrTextBk = CHEAT_4BYTE_BG; - lplvcd->clrText = CHEAT_4BYTE_TEXT; break; // use a more visual color in dark background + default: + case 0: + if (lplvcd->nmcd.dwItemSpec % 2) + lplvcd->clrTextBk = RGB(248, 248, 255); + break; + case 1: + lplvcd->clrTextBk = CHEAT_1BYTE_BG; break; + case 2: + lplvcd->clrTextBk = CHEAT_2BYTE_BG; break; + case 3: + lplvcd->clrTextBk = CHEAT_3BYTE_BG; break; + case 4: + lplvcd->clrTextBk = CHEAT_4BYTE_BG; + lplvcd->clrText = CHEAT_4BYTE_TEXT; break; // use a more visual color in dark background } if(!IsSatisfied(lplvcd->nmcd.dwItemSpec)) From a9c4bc9592e96022836180f81535bfeaa43ebd86 Mon Sep 17 00:00:00 2001 From: owomomo Date: Sat, 1 Feb 2020 16:51:33 +0800 Subject: [PATCH 16/19] 1. Trying to find a more efficient way to know which byte has a cheat. Since the cheat map occupies a lot of memory, I decided to make it only exists when necessary. 2. Reorganized some codes. --- src/cheat.cpp | 47 ++++-- src/cheat.h | 16 +- src/drivers/win/cheat.cpp | 17 +++ src/drivers/win/cheat.h | 4 + src/drivers/win/memview.cpp | 266 +++++++++++++++++---------------- src/drivers/win/memwatch.cpp | 10 +- src/drivers/win/ram_search.cpp | 3 + src/drivers/win/ramwatch.cpp | 3 + 8 files changed, 219 insertions(+), 147 deletions(-) diff --git a/src/cheat.cpp b/src/cheat.cpp index c6ec6be7..10ee4105 100644 --- a/src/cheat.cpp +++ b/src/cheat.cpp @@ -63,7 +63,7 @@ CHEATF_SUBFAST SubCheats[256] = { 0 }; uint32 numsubcheats = 0; int globalCheatDisabled = 0; int disableAutoLSCheats = 0; -static unsigned char cheatMap[0x10000 / 8] = { 0 }; +static _8BYTECHEATMAP* cheatMap = NULL; struct CHEATF *cheats = 0, *cheatsl = 0; @@ -105,7 +105,8 @@ void RebuildSubCheats(void) for (x = 0; x < numsubcheats; x++) { SetReadHandler(SubCheats[x].addr, SubCheats[x].addr, SubCheats[x].PrevRead); - SetByteCheat(SubCheats[x].addr, false); + if (cheatMap) + FCEUI_SetCheatMapByte(SubCheats[x].addr, false); } numsubcheats = 0; @@ -121,7 +122,8 @@ void RebuildSubCheats(void) SubCheats[numsubcheats].val = c->val; SubCheats[numsubcheats].compare = c->compare; SetReadHandler(c->addr, c->addr, SubCheatsRead); - SetByteCheat(SubCheats[numsubcheats].addr, true); + if (cheatMap) + FCEUI_SetCheatMapByte(SubCheats[numsubcheats].addr, true); numsubcheats++; } c = c->next; @@ -134,16 +136,18 @@ void RebuildSubCheats(void) void FCEU_PowerCheats() { numsubcheats = 0; /* Quick hack to prevent setting of ancient read addresses. */ - memset(cheatMap, 0, sizeof(cheatMap)); + if (cheatMap) + FCEUI_RefreshCheatMap(); RebuildSubCheats(); } int FCEU_CalcCheatAffectedBytes(uint32 address, uint32 size) { uint32 count = 0; - for (uint32 i = 0; i < size; ++i) - if (IsByteCheat(address + i)) - ++count; + if (cheatMap) + for (uint32 i = 0; i < size; ++i) + if (FCEUI_FindCheatMapByte(address + i)) + ++count; return count; } @@ -205,7 +209,8 @@ void FCEU_LoadGameCheats(FILE *override, int override_existing) if (override_existing) { numsubcheats = 0; - memset(cheatMap, 0, sizeof(cheatMap)); + if (cheatMap) + FCEUI_RefreshCheatMap(); } if(override) @@ -896,13 +901,35 @@ int FCEU_DisableAllCheats(){ return count; } -int IsByteCheat(uint8 address) +inline int FCEUI_FindCheatMapByte(uint16 address) { return cheatMap[address / 8] >> (address % 8) & 1; } -void SetByteCheat(uint8 address, bool cheat) +inline void FCEUI_SetCheatMapByte(uint16 address, bool cheat) { cheat ? cheatMap[address / 8] |= (1 << address % 8) : cheatMap[address / 8] ^= (1 << address % 8); } +inline void FCEUI_CreateCheatMap() +{ + if (!cheatMap) + cheatMap = (unsigned char*)malloc(CHEATMAP_SIZE); + FCEUI_RefreshCheatMap(); +} + +inline void FCEUI_RefreshCheatMap() +{ + memset(cheatMap, 0, CHEATMAP_SIZE); + for (int i = 0; i < numsubcheats; ++i) + FCEUI_SetCheatMapByte(SubCheats[i].addr, true); +} + +inline void FCEUI_ReleaseCheatMap() +{ + if (cheatMap) + { + free(cheatMap); + cheatMap = NULL; + } +} \ No newline at end of file diff --git a/src/cheat.h b/src/cheat.h index 0b488420..4ea6f12c 100644 --- a/src/cheat.h +++ b/src/cheat.h @@ -11,6 +11,17 @@ void FCEU_ApplyPeriodicCheats(void); void FCEU_PowerCheats(void); int FCEU_CalcCheatAffectedBytes(uint32 address, uint32 size); +// Trying to find a more efficient way for determining if an address has a cheat +// each bit of 1 byte represents to 8 bytes in NES +typedef unsigned char _8BYTECHEATMAP; +#define CHEATMAP_SIZE 0x10000 / 8 + +extern int FCEUI_FindCheatMapByte(uint16 address); +extern void FCEUI_SetCheatMapByte(uint16 address, bool cheat); +extern void FCEUI_CreateCheatMap(); +extern void FCEUI_RefreshCheatMap(); +extern void FCEUI_ReleaseCheatMap(); + int FCEU_CheatGetByte(uint32 A); void FCEU_CheatSetByte(uint32 A, uint8 V); @@ -44,11 +55,6 @@ struct SEARCHPOSSIBLE { bool update; }; -// Trying to find a more efficient way for determining if an address has a cheat -// 1 byte represents to 8 bytes in NES, -int IsByteCheat(uint8 address); -void SetByteCheat(uint8 address, bool cheat); - #define FCEU_SEARCH_SPECIFIC_CHANGE 0 #define FCEU_SEARCH_RELATIVE_CHANGE 1 #define FCEU_SEARCH_PUERLY_RELATIVE_CHANGE 2 diff --git a/src/drivers/win/cheat.cpp b/src/drivers/win/cheat.cpp index 576737e9..7ba4779f 100644 --- a/src/drivers/win/cheat.cpp +++ b/src/drivers/win/cheat.cpp @@ -41,6 +41,7 @@ extern bool wasPausedByCheats; int CheatWindow; int CheatStyle = 1; +int CheatMapUsers = 0; // how many windows using cheatmap #define GGLISTSIZE 128 //hopefully this is enough for all cases @@ -1541,3 +1542,19 @@ void DeleteCheatFont() hNewFont = NULL; } } + +void CreateCheatMap() +{ + if (!CheatMapUsers) + FCEUI_CreateCheatMap(); + ++CheatMapUsers; +} + +void ReleaseCheatMap() +{ + --CheatMapUsers; + printf("CheatMapUsers: %d\n", CheatMapUsers); + if (!CheatMapUsers) + FCEUI_ReleaseCheatMap(); +} + diff --git a/src/drivers/win/cheat.h b/src/drivers/win/cheat.h index a10af805..7b45a5c5 100644 --- a/src/drivers/win/cheat.h +++ b/src/drivers/win/cheat.h @@ -40,6 +40,10 @@ void SetupCheatFont(HWND hDlg); void DeleteCheatFont(); extern POINT CalcSubWindowPos(HWND hDlg, POINT* conf); +void CreateCheatMap(); +void ReleaseCheatMap(); +extern int CheatMapUsers; + extern INT_PTR CALLBACK GGConvCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); extern LRESULT APIENTRY FilterEditCtrlProc(HWND hDlg, UINT msg, WPARAM wP, LPARAM lP); extern WNDPROC DefaultEditCtrlProc; diff --git a/src/drivers/win/memview.cpp b/src/drivers/win/memview.cpp index 682ba7cf..81030e70 100644 --- a/src/drivers/win/memview.cpp +++ b/src/drivers/win/memview.cpp @@ -669,37 +669,30 @@ void UpdateCaption() int GetMemViewData(uint32 i) { - if (EditingMode == MODE_NES_MEMORY) - return GetMem(i); - - if (EditingMode == MODE_NES_PPU) + switch (EditingMode) { - i &= 0x3FFF; - if(i < 0x2000)return VPage[(i)>>10][(i)]; - //NSF PPU Viewer crash here (UGETAB) (Also disabled by 'MaxSize = 0x2000') - if (GameInfo->type==GIT_NSF) - { - return (0); - } - else - { - if(i < 0x3F00) - return vnapage[(i >> 10) & 0x3][i & 0x3FF]; - return READPAL_MOTHEROFALL(i & 0x1F); - } - } - - if (EditingMode == MODE_NES_OAM) - { - return SPRAM[i & 0xFF]; - } - - if (EditingMode == MODE_NES_FILE) - { - //todo: use getfiledata() here - if(i < 16) return *((unsigned char *)&head+i); - if(i < 16+PRGsize[0])return PRGptr[0][i-16]; - if(i < 16+PRGsize[0]+CHRsize[0])return CHRptr[0][i-16-PRGsize[0]]; + case MODE_NES_MEMORY: + return GetMem(i); + case MODE_NES_PPU: + i &= 0x3FFF; + if (i < 0x2000)return VPage[(i) >> 10][(i)]; + //NSF PPU Viewer crash here (UGETAB) (Also disabled by 'MaxSize = 0x2000') + if (GameInfo->type == GIT_NSF) + return (0); + else + { + if (i < 0x3F00) + return vnapage[(i >> 10) & 0x3][i & 0x3FF]; + return READPAL_MOTHEROFALL(i & 0x1F); + } + break; + case MODE_NES_OAM: + return SPRAM[i & 0xFF]; + case MODE_NES_FILE: + //todo: use getfiledata() here + if (i < 16) return *((unsigned char *)&head + i); + if (i < 16 + PRGsize[0])return PRGptr[0][i - 16]; + if (i < 16 + PRGsize[0] + CHRsize[0])return CHRptr[0][i - 16 - PRGsize[0]]; } return 0; } @@ -729,89 +722,88 @@ void UpdateColorTable() TextColorList[hexBookmarks[j].address - CurOffset] = RGB(0,0xCC,0); // Green for Bookmarks } - //mbg merge 6/29/06 - added argument - if (EditingMode == MODE_NES_MEMORY) - FCEUI_ListCheats(UpdateCheatColorCallB, 0); - - if(EditingMode == MODE_NES_FILE) + switch (EditingMode) { - if (cdloggerdataSize) - { - for (i = 0; i < DataAmount; i++) + case MODE_NES_MEMORY: + for (uint32 a = CurOffset; a < CurOffset + DataAmount; ++a) + if (FCEUI_FindCheatMapByte(a)) + TextColorList[a - CurOffset] = RGB(HexFreezeColorR, HexFreezeColorG, HexFreezeColorB); + break; + case MODE_NES_FILE: + if (cdloggerdataSize) { - temp_offset = CurOffset + i - 16; // (minus iNES header) - if (temp_offset >= 0) + for (i = 0; i < DataAmount; i++) { - if ((unsigned int)temp_offset < cdloggerdataSize) + temp_offset = CurOffset + i - 16; // (minus iNES header) + if (temp_offset >= 0) { - // PRG - if ((cdloggerdata[temp_offset] & 3) == 3) + if ((unsigned int)temp_offset < cdloggerdataSize) { - // the byte is both Code and Data - green - TextColorList[i]=RGB(0,190,0); - } else if((cdloggerdata[temp_offset] & 3) == 1) - { - // the byte is Code - dark-yellow - TextColorList[i]=RGB(160,140,0); - } else if((cdloggerdata[temp_offset] & 3) == 2) - { - // the byte is Data - blue/cyan - if (cdloggerdata[temp_offset] & 0x40) - // PCM data - cyan - TextColorList[i]=RGB(0,130,160); - else - // non-PCM data - blue - TextColorList[i]=RGB(0,0,210); + // PRG + if ((cdloggerdata[temp_offset] & 3) == 3) + { + // the byte is both Code and Data - green + TextColorList[i] = RGB(0, 190, 0); + } + else if ((cdloggerdata[temp_offset] & 3) == 1) + { + // the byte is Code - dark-yellow + TextColorList[i] = RGB(160, 140, 0); + } + else if ((cdloggerdata[temp_offset] & 3) == 2) + { + // the byte is Data - blue/cyan + if (cdloggerdata[temp_offset] & 0x40) + // PCM data - cyan + TextColorList[i] = RGB(0, 130, 160); + else + // non-PCM data - blue + TextColorList[i] = RGB(0, 0, 210); + } } - } else - { - temp_offset -= cdloggerdataSize; - if (((unsigned int)temp_offset < cdloggerVideoDataSize)) + else { - // CHR - if ((cdloggervdata[temp_offset] & 3) == 3) + temp_offset -= cdloggerdataSize; + if (((unsigned int)temp_offset < cdloggerVideoDataSize)) { - // the byte was both rendered and read programmatically - light-green - TextColorList[i]=RGB(5,255,5); - } else if ((cdloggervdata[temp_offset] & 3) == 1) - { - // the byte was rendered - yellow - TextColorList[i]=RGB(210,190,0); - } else if ((cdloggervdata[temp_offset] & 3) == 2) - { - // the byte was read programmatically - light-blue - TextColorList[i]=RGB(15,15,255); + // CHR + if ((cdloggervdata[temp_offset] & 3) == 3) + { + // the byte was both rendered and read programmatically - light-green + TextColorList[i] = RGB(5, 255, 5); + } + else if ((cdloggervdata[temp_offset] & 3) == 1) + { + // the byte was rendered - yellow + TextColorList[i] = RGB(210, 190, 0); + } + else if ((cdloggervdata[temp_offset] & 3) == 2) + { + // the byte was read programmatically - light-blue + TextColorList[i] = RGB(15, 15, 255); + } } } } } } - } - tmp = undo_list; - while(tmp!= 0) - { - //if((tmp->addr < CurOffset+DataAmount) && (tmp->addr+tmp->size > CurOffset)) - for(i = tmp->addr;i < tmp->addr+tmp->size;i++){ - if((i > CurOffset) && (i < CurOffset+DataAmount)) - TextColorList[i-CurOffset] = RGB(RomFreezeColorR,RomFreezeColorG,RomFreezeColorB); + tmp = undo_list; + while (tmp != 0) + { + //if((tmp->addr < CurOffset+DataAmount) && (tmp->addr+tmp->size > CurOffset)) + for (i = tmp->addr; i < tmp->addr + tmp->size; i++) { + if ((i > CurOffset) && (i < CurOffset + DataAmount)) + TextColorList[i - CurOffset] = RGB(RomFreezeColorR, RomFreezeColorG, RomFreezeColorB); + } + tmp = tmp->last; } - tmp=tmp->last; - } + break; } UpdateMemoryView(1); //anytime the colors change, the memory viewer needs to be completely redrawn } -//mbg merge 6/29/06 - added argument -int UpdateCheatColorCallB(char *name, uint32 a, uint8 v, int compare,int s,int type, void *data) { - - if((a >= (uint32)CurOffset) && (a < (uint32)CurOffset+DataAmount)){ - if(s)TextColorList[a-CurOffset] = RGB(HexFreezeColorR,HexFreezeColorG,HexFreezeColorB); - } - return 1; -} - int addrtodelete; // This is a very ugly hackish method of doing this int cheatwasdeleted; // but it works and that is all that matters here. int DeleteCheatCallB(char *name, uint32 a, uint8 v, int compare,int s,int type, void *data){ //mbg merge 6/29/06 - added arg @@ -1001,29 +993,30 @@ void InputData(char *input){ if (addr >= MaxSize) continue; - if (EditingMode == MODE_NES_MEMORY) + switch(EditingMode) { - // RAM (system bus) - BWrite[addr](addr,data[i]); - } else if (EditingMode == MODE_NES_PPU) - { - // PPU - addr &= 0x3FFF; - if(addr < 0x2000) - VPage[addr>>10][addr] = data[i]; //todo: detect if this is vrom and turn it red if so - if((addr >= 0x2000) && (addr < 0x3F00)) - vnapage[(addr>>10)&0x3][addr&0x3FF] = data[i]; //todo: this causes 0x3000-0x3f00 to mirror 0x2000-0x2f00, is this correct? - if((addr >= 0x3F00) && (addr < 0x3FFF)) - PalettePoke(addr,data[i]); - } else if (EditingMode == MODE_NES_OAM) - { - addr &= 0xFF; - SPRAM[addr] = data[i]; - } else if (EditingMode == MODE_NES_FILE) - { - // ROM - ApplyPatch(addr,datasize,data); - break; + case MODE_NES_MEMORY: + // RAM (system bus) + BWrite[addr](addr, data[i]); + break; + case MODE_NES_PPU: + // PPU + addr &= 0x3FFF; + if (addr < 0x2000) + VPage[addr >> 10][addr] = data[i]; //todo: detect if this is vrom and turn it red if so + if ((addr >= 0x2000) && (addr < 0x3F00)) + vnapage[(addr >> 10) & 0x3][addr & 0x3FF] = data[i]; //todo: this causes 0x3000-0x3f00 to mirror 0x2000-0x2f00, is this correct? + if ((addr >= 0x3F00) && (addr < 0x3FFF)) + PalettePoke(addr, data[i]); + break; + case MODE_NES_OAM: + addr &= 0xFF; + SPRAM[addr] = data[i]; + break; + case MODE_NES_FILE: + // ROM + ApplyPatch(addr, datasize, data); + break; } } CursorStartAddy+=datasize; @@ -1194,6 +1187,8 @@ void KillMemView() UnregisterClass("MEMVIEW",fceu_hInstance); hMemView = 0; hMemFind = 0; + if (EditingMode == MODE_NES_MEMORY) + ReleaseCheatMap(); return; } @@ -1232,7 +1227,7 @@ LRESULT CALLBACK MemViewCallB(HWND hwnd, UINT message, WPARAM wParam, LPARAM lPa case WM_CREATE: SetWindowPos(hwnd,0,MemView_wndx,MemView_wndy,MemViewSizeX,MemViewSizeY,SWP_NOZORDER|SWP_NOOWNERZORDER); - + debuggerWasActive = 1; mDC = GetDC(hwnd); HDataDC = mDC;//deleteme @@ -1252,6 +1247,7 @@ LRESULT CALLBACK MemViewCallB(HWND hwnd, UINT message, WPARAM wParam, LPARAM lPa resetHighlightingActivityLog(); EditingText = CurOffset = 0; EditingMode = MODE_NES_MEMORY; + CreateCheatMap(); //set the default table UnloadTableFile(); @@ -1685,8 +1681,10 @@ LRESULT CALLBACK MemViewCallB(HWND hwnd, UINT message, WPARAM wParam, LPARAM lPa checkCondition(condition, numWPs); numWPs++; - { extern int myNumWPs; - myNumWPs++; } + { + extern int myNumWPs; + myNumWPs++; + } if (hDebug) AddBreakList(); else @@ -2034,24 +2032,34 @@ LRESULT CALLBACK MemViewCallB(HWND hwnd, UINT message, WPARAM wParam, LPARAM lPa case MENU_MV_VIEW_PPU: case MENU_MV_VIEW_OAM: case MENU_MV_VIEW_ROM: - EditingMode = wParam - MENU_MV_VIEW_RAM; + { + int _EditingMode = wParam - MENU_MV_VIEW_RAM; + // Leave NES Memory + if (_EditingMode == MODE_NES_MEMORY && EditingMode != MODE_NES_MEMORY) + CreateCheatMap(); + // Enter NES Memory + if (_EditingMode != MODE_NES_MEMORY && EditingMode == MODE_NES_MEMORY) + ReleaseCheatMap(); + EditingMode = _EditingMode; for (i = MODE_NES_MEMORY; i <= MODE_NES_FILE; i++) if(EditingMode == i) { CheckMenuRadioItem(GetMenu(hMemView), MENU_MV_VIEW_RAM, MENU_MV_VIEW_ROM, MENU_MV_VIEW_RAM + i, MF_BYCOMMAND); break; } - if (EditingMode == MODE_NES_MEMORY) - MaxSize = 0x10000; - if (EditingMode == MODE_NES_PPU) + + switch (EditingMode) { - if (GameInfo->type==GIT_NSF) {MaxSize = 0x2000;} //Also disabled under GetMemViewData - else {MaxSize = 0x4000;} + case MODE_NES_MEMORY: + MaxSize = 0x10000; break; + case MODE_NES_PPU: + MaxSize = (GameInfo->type == GIT_NSF ? 0x2000 : 0x4000); break; + case MODE_NES_OAM: + MaxSize = 0x100; break; + case MODE_NES_FILE: //todo: add trainer size + MaxSize = 16 + CHRsize[0] + PRGsize[0]; break; } - if (EditingMode == MODE_NES_OAM) - MaxSize = 0x100; - if (EditingMode == MODE_NES_FILE) - MaxSize = 16+CHRsize[0]+PRGsize[0]; //todo: add trainer size + if (CurOffset >= MaxSize - DataAmount) CurOffset = MaxSize - DataAmount; if (CurOffset < 0) CurOffset = 0; if(CursorEndAddy >= MaxSize) CursorEndAddy = -1; @@ -2070,7 +2078,7 @@ LRESULT CALLBACK MemViewCallB(HWND hwnd, UINT message, WPARAM wParam, LPARAM lPa UpdateColorTable(); UpdateCaption(); return 0; - + } case ID_HIGHLIGHTING_HIGHLIGHT_ACTIVITY: { MemView_HighlightActivity ^= 1; diff --git a/src/drivers/win/memwatch.cpp b/src/drivers/win/memwatch.cpp index e3b4fc16..48948ab2 100644 --- a/src/drivers/win/memwatch.cpp +++ b/src/drivers/win/memwatch.cpp @@ -318,8 +318,8 @@ void UpdateMemWatch() if (FrozenAddressCount) for (unsigned int x = 0; x < FrozenAddressCount; x++) { - extern int IsByteCheat(uint8); - if (IsByteCheat(mwrec.addr)) + extern int FCEUI_FindCheatMapByte(uint16); + if (FCEUI_FindCheatMapByte(mwrec.addr)) SetTextColor(hdc,GetSysColor(COLOR_HIGHLIGHT)); } @@ -812,6 +812,8 @@ static INT_PTR CALLBACK MemWatchCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LP editlast[x]= 0; } + CreateCheatMap(); + RamChangeInitialize = true; break; @@ -830,7 +832,9 @@ static INT_PTR CALLBACK MemWatchCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LP case WM_QUIT: CloseMemoryWatch(); break; - + case WM_DESTROY: + ReleaseCheatMap(); + break; case WM_DROPFILES: { unsigned int len; diff --git a/src/drivers/win/ram_search.cpp b/src/drivers/win/ram_search.cpp index 6a05e252..ac69a91a 100644 --- a/src/drivers/win/ram_search.cpp +++ b/src/drivers/win/ram_search.cpp @@ -1420,6 +1420,8 @@ INT_PTR CALLBACK RamSearchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPara CalcSubWindowPos(hDlg, NULL); + CreateCheatMap(); + switch(rs_o) { case '<': @@ -2105,6 +2107,7 @@ INT_PTR CALLBACK RamSearchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPara break; case WM_DESTROY: RamSearchHWnd = NULL; + ReleaseCheatMap(); // theApp.modelessCheatDialogIsOpen = false; break; } diff --git a/src/drivers/win/ramwatch.cpp b/src/drivers/win/ramwatch.cpp index 79d17ed8..e96ce86a 100644 --- a/src/drivers/win/ramwatch.cpp +++ b/src/drivers/win/ramwatch.cpp @@ -1059,6 +1059,7 @@ INT_PTR CALLBACK RamWatchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam rwrecentmenu=CreateMenu(); UpdateRW_RMenu(rwrecentmenu, RAMMENU_FILE_RECENT, RW_MENU_FIRST_RECENT_FILE); + CreateCheatMap(); const char* names[3] = {"Address","Value","Notes"}; int widths[3] = {78,64,160}; init_list_box(GetDlgItem(hDlg,IDC_WATCHLIST),names,3,widths); @@ -1506,6 +1507,8 @@ INT_PTR CALLBACK RamWatchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam // release the hdc related objects SeparatorCache::DeInit(); + // release cheatmap + ReleaseCheatMap(); break; case WM_DROPFILES: From 7a278b10a8e3915f16544b8d8a0b58d64add8973 Mon Sep 17 00:00:00 2001 From: owomomo Date: Wed, 5 Feb 2020 22:56:30 +0800 Subject: [PATCH 17/19] RAM Watch: Adding multiple watches in the dialog, when adding multiple watches from other window, the watches is also in the address edit control. I realized that the watch operation need to be decoupled from the RAM Watch list, but things seem get too complicated, hoping this is not get even worse. --- src/drivers/win/cheat.cpp | 2 +- src/drivers/win/ram_search.cpp | 24 +- src/drivers/win/ramwatch.cpp | 587 +++++++++++++++++++++------------ src/drivers/win/ramwatch.h | 22 +- src/drivers/win/res.rc | 5 +- src/drivers/win/resource.h | 9 +- src/drivers/win/window.cpp | 68 ++-- src/drivers/win/window.h | 5 +- 8 files changed, 441 insertions(+), 281 deletions(-) diff --git a/src/drivers/win/cheat.cpp b/src/drivers/win/cheat.cpp index 7ba4779f..0fdc721d 100644 --- a/src/drivers/win/cheat.cpp +++ b/src/drivers/win/cheat.cpp @@ -1553,7 +1553,7 @@ void CreateCheatMap() void ReleaseCheatMap() { --CheatMapUsers; - printf("CheatMapUsers: %d\n", CheatMapUsers); + // printf("CheatMapUsers: %d\n", CheatMapUsers); if (!CheatMapUsers) FCEUI_ReleaseCheatMap(); } diff --git a/src/drivers/win/ram_search.cpp b/src/drivers/win/ram_search.cpp index ac69a91a..ae045ce7 100644 --- a/src/drivers/win/ram_search.cpp +++ b/src/drivers/win/ram_search.cpp @@ -1982,32 +1982,30 @@ INT_PTR CALLBACK RamSearchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPara int selCount = SendMessage(ramListControl, LVM_GETSELECTEDCOUNT, 0, 0); if (selCount > 0) { - AddressWatcher tempWatch; - tempWatch.Size = rs_type_size; - tempWatch.Type = rs_t; - tempWatch.WrongEndian = 0; //Replace when I get little endian working - tempWatch.comment = NULL; + WatcherMsg msg; + msg.Size = rs_type_size; + msg.Type = rs_t; + msg.WrongEndian = 0; //Replace when I get little endian working + msg.comment = NULL; bool inserted = false; - AddressWatcher* watches = (AddressWatcher*)malloc(selCount * sizeof(AddressWatcher)); + msg.Addresses = (unsigned int*)malloc(selCount * sizeof(unsigned int)); int i = 0; int watchItemIndex = -1; while ((watchItemIndex = SendMessage(ramListControl, LVM_GETNEXTITEM, watchItemIndex, LVNI_SELECTED)) >= 0) { - tempWatch.Address = CALL_WITH_T_SIZE_TYPES_1(GetHardwareAddressFromItemIndex, rs_type_size, rs_t == 's', noMisalign, watchItemIndex); - watches[i] = tempWatch; + msg.Addresses[i] = CALL_WITH_T_SIZE_TYPES_1(GetHardwareAddressFromItemIndex, rs_type_size, rs_t == 's', noMisalign, watchItemIndex); ++i; } - + msg.count = i; // bring up the ram watch window if it's not already showing so the user knows where the watch went - if ((selCount == 1 ? - InsertWatch(watches[0], hDlg) : InsertWatches(watches, hDlg, selCount)) + if (InsertWatches(&msg, hDlg, selCount) && !RamWatchHWnd) SendMessage(hWnd, WM_COMMAND, ID_RAM_WATCH, 0); SetForegroundWindow(RamSearchHWnd); - - free(watches); + if (msg.Addresses) free(msg.Addresses); + if (msg.comment) free(msg.comment); } break; } diff --git a/src/drivers/win/ramwatch.cpp b/src/drivers/win/ramwatch.cpp index e96ce86a..9fc3e013 100644 --- a/src/drivers/win/ramwatch.cpp +++ b/src/drivers/win/ramwatch.cpp @@ -143,45 +143,37 @@ bool InsertWatch(const AddressWatcher& Watch, HWND parent) int prevWatchCount = WatchCount; - int tmpWatchIndex; - if (parent == RamWatchHWnd) - tmpWatchIndex = WatchCount; - else if (parent == RamSearchHWnd) - tmpWatchIndex = -2; - else if (parent == hCheat) - tmpWatchIndex = -3; - else - tmpWatchIndex = -4; - - rswatches[tmpWatchIndex] = Watch; - rswatches[tmpWatchIndex].CurValue = GetCurrentValue(rswatches[tmpWatchIndex]); - DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_EDITWATCH), parent, EditWatchProc, tmpWatchIndex); - rswatches.erase(tmpWatchIndex); + WatcherMsg msg = WatcherMsg::FromAddressWatches(&Watch); + if (DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_EDITWATCH), parent, EditWatchProc, (LPARAM)&msg)) + { + AddressWatcher* watcher = msg.ToAddressWatches(); + InsertWatch(*watcher); + if (watcher->comment) + free(watcher->comment); + free(watcher); + } + if (msg.Addresses) free(msg.Addresses); + if (msg.comment) free(msg.comment); return WatchCount > prevWatchCount; } -bool InsertWatches(const AddressWatcher* watches, HWND parent, const int count) +bool InsertWatches(WatcherMsg* msg, HWND parent, int count) { - if (count == 1) - return InsertWatch(watches[0], parent); - else + bool success = false; + if (DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_EDITWATCH), parent, EditWatchProc, (LPARAM)msg)) { - bool success = false; - char comment[256]; - rswatches[-1] = watches[0]; - rswatches[-1].comment = comment; - if(DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_EDITWATCH), parent, EditWatchProc, (LPARAM)-1)) - for (int i = 0; i < count; ++i) - { - AddressWatcher watcher = watches[i]; - watcher.comment = rswatches[-1].comment; - success |= InsertWatch(watcher); - } - rswatches.erase(-1); - return success; + AddressWatcher* watches = msg->ToAddressWatches(); + for (int i = 0; i < count; ++i) + { + success |= InsertWatch(watches[i]); + if (watches[i].comment) + free(watches[i].comment); + } + free(watches); } - return false; + + return success; } void Update_RAM_Watch() @@ -781,193 +773,253 @@ INT_PTR CALLBACK EditWatchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPara // since there are 3 windows can pops up the add watch dialog, we should store them separately. // 0 for ram watch, 1 for ram search, 2 for cheat dialog. - static int indexes[4]; + static WatcherMsg* msgs[4]; switch(uMsg) { case WM_INITDIALOG: + { + HWND parent = GetParent(hDlg); + WatcherMsg* msg = (WatcherMsg*)lParam; + msgs[GetDlgStoreIndex(parent)] = (WatcherMsg*)msg; + + RECT r; + GetWindowRect(hDlg, &r); + SetWindowPos(hDlg, NULL, r.left, r.top, NULL, NULL, SWP_NOSIZE | SWP_NOZORDER | SWP_SHOWWINDOW); + + char title[128]; + UINT addrCtrlID; + + switch (msg->msg) { - - HWND parent = GetParent(hDlg); - indexes[GetDlgStoreIndex(parent)] = lParam; - - RECT r; - GetWindowRect(hDlg, &r); - SetWindowPos(hDlg, NULL, r.left, r.top, NULL, NULL, SWP_NOSIZE | SWP_NOZORDER | SWP_SHOWWINDOW); - - AddressWatcher& watcher = rswatches[lParam]; - if (watcher.Type != 'S') { - char Str_Tmp[1024]; - // -1 means batch add - if (lParam != -1) - { - sprintf(Str_Tmp, "%04X", watcher.Address); - SetDlgItemText(hDlg, IDC_EDIT_COMPAREADDRESS, Str_Tmp); - } else - // Add multiple watches - SetDlgItemText(hDlg, IDC_EDIT_COMPAREADDRESS, "(multiple)"); - - switch (watcher.Size) - { - case 'b': - SendDlgItemMessage(hDlg, IDC_1_BYTE, BM_SETCHECK, BST_CHECKED, 0); - break; - case 'w': - SendDlgItemMessage(hDlg, IDC_2_BYTES, BM_SETCHECK, BST_CHECKED, 0); - break; - case 'd': - SendDlgItemMessage(hDlg, IDC_4_BYTES, BM_SETCHECK, BST_CHECKED, 0); - break; - } - switch (watcher.Type) - { - case 's': - SendDlgItemMessage(hDlg, IDC_SIGNED, BM_SETCHECK, BST_CHECKED, 0); - break; - case 'u': - SendDlgItemMessage(hDlg, IDC_UNSIGNED, BM_SETCHECK, BST_CHECKED, 0); - break; - case 'h': - SendDlgItemMessage(hDlg, IDC_HEX, BM_SETCHECK, BST_CHECKED, 0); - break; - case 'b': - SendDlgItemMessage(hDlg, IDC_BINARY, BM_SETCHECK, BST_CHECKED, 0); - break; - } - } else - SetDlgItemText(hDlg, IDC_EDIT_COMPAREADDRESS, "---------"); - - if (watcher.comment != NULL) - SetDlgItemText(hDlg, IDC_PROMPT_EDIT, watcher.comment); - - if (watcher.Type == 'S' || parent == RamSearchHWnd || parent == hCheat) - { - EnableWindow(GetDlgItem(hDlg, IDC_SPECIFICADDRESS), FALSE); - EnableWindow(GetDlgItem(hDlg, IDC_DATATYPE_GROUPBOX), FALSE); - EnableWindow(GetDlgItem(hDlg, IDC_DATASIZE_GROUPBOX), FALSE); - EnableWindow(GetDlgItem(hDlg, IDC_EDIT_COMPAREADDRESS), FALSE); - EnableWindow(GetDlgItem(hDlg, IDC_SIGNED), FALSE); - EnableWindow(GetDlgItem(hDlg, IDC_UNSIGNED), FALSE); - EnableWindow(GetDlgItem(hDlg, IDC_HEX), FALSE); - EnableWindow(GetDlgItem(hDlg, IDC_BINARY), FALSE); - EnableWindow(GetDlgItem(hDlg, IDC_1_BYTE), FALSE); - EnableWindow(GetDlgItem(hDlg, IDC_2_BYTES), FALSE); - EnableWindow(GetDlgItem(hDlg, IDC_4_BYTES), FALSE); - SetFocus(GetDlgItem(hDlg, IDC_PROMPT_EDIT)); - } - else { - SetFocus(GetDlgItem(hDlg, IDC_EDIT_COMPAREADDRESS)); - SendDlgItemMessage(hDlg, IDC_EDIT_COMPAREADDRESS, EM_SETLIMITTEXT, 4, 0); - DefaultEditCtrlProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(hDlg, IDC_EDIT_COMPAREADDRESS), GWL_WNDPROC, (LONG)FilterEditCtrlProc); - } + case WATCHER_MSG_EDIT: + // Editing multiple watch is currently not supported + addrCtrlID = IDC_EDIT_COMPAREADDRESS; + // limit the length to 4 since currently doesn't support batch editing + SendDlgItemMessage(hDlg, addrCtrlID, EM_SETLIMITTEXT, 4, 0); + strcpy(title, "Edit "); + break; + case WATCHER_MSG_ADD: + strcpy(title, "Add "); + addrCtrlID = IDC_EDIT_COMPAREADDRESSES; + break; + case WATCHER_MSG_DUP: + default: + strcpy(title, "Duplicate "); + addrCtrlID = IDC_EDIT_COMPAREADDRESSES; + break; } - return true; - break; - + // The information is needed to fill to the UI, and separetor doesn't have them + if (msg->Type != 'S') + { + strcat(title, "Watch"); + if (msg->Addresses != NULL) + { + // fill the information refers to the message provided + char str_addr[7]; + char str_addrs[1024] = { 0 }; + + // In case more than one watches to be batch added + if (msg->count > 0) + { + // Don't worry about editing a watch since currently doesn't support multiple watch editing, the msg->count would always be 1 in edit mode. + for (int i = 0; i < msg->count; ++i) + { + sprintf(str_addr, "%04X, ", msg->Addresses[i]); + strcat(str_addrs, str_addr); + } + str_addrs[strlen(str_addrs) - 2] = 0; + } + // Set address(es) to the edit control + SetDlgItemText(hDlg, addrCtrlID, str_addrs); + + switch (msg->Size) + { + case 'b': + SendDlgItemMessage(hDlg, IDC_1_BYTE, BM_SETCHECK, BST_CHECKED, 0); + break; + case 'w': + SendDlgItemMessage(hDlg, IDC_2_BYTES, BM_SETCHECK, BST_CHECKED, 0); + break; + case 'd': + SendDlgItemMessage(hDlg, IDC_4_BYTES, BM_SETCHECK, BST_CHECKED, 0); + break; + } + + switch (msg->Type) + { + case 's': + SendDlgItemMessage(hDlg, IDC_SIGNED, BM_SETCHECK, BST_CHECKED, 0); + break; + case 'u': + SendDlgItemMessage(hDlg, IDC_UNSIGNED, BM_SETCHECK, BST_CHECKED, 0); + break; + case 'h': + SendDlgItemMessage(hDlg, IDC_HEX, BM_SETCHECK, BST_CHECKED, 0); + break; + case 'b': + SendDlgItemMessage(hDlg, IDC_BINARY, BM_SETCHECK, BST_CHECKED, 0); + break; + } + } + } + else + strcat(title, "Separator"); + + // Set the comment + if (msg->comment != NULL) + SetDlgItemText(hDlg, IDC_PROMPT_EDIT, msg->comment); + + // show the proper edit control + ShowWindow(GetDlgItem(hDlg, addrCtrlID), SW_SHOW); + ShowWindow(GetDlgItem(hDlg, IDC_SPECIFICADDRESS), SW_SHOW); + + // Adjust the dialog to proper state when editing/adding separator or adding watch from windows other than RAM Watch + if (msg->Type == 'S' || parent != RamWatchHWnd) + { + // same part + EnableWindow(GetDlgItem(hDlg, IDC_DATATYPE_GROUPBOX), FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_DATASIZE_GROUPBOX), FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_SIGNED), FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_UNSIGNED), FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_HEX), FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_BINARY), FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_1_BYTE), FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_2_BYTES), FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_4_BYTES), FALSE); + + // When it is a separator, focus on the comment + if (msg->Type == 'S') + SetFocus(GetDlgItem(hDlg, IDC_PROMPT_EDIT)); + + // When it is from RAM Search or Cheat Window, all the information required was already given, make the addresses read-only + if (parent != RamWatchHWnd) + { + EnableWindow(GetDlgItem(hDlg, addrCtrlID), TRUE); + EnableWindow(GetDlgItem(hDlg, IDC_SPECIFICADDRESS), TRUE); + SetFocus(GetDlgItem(hDlg, IDC_PROMPT_EDIT)); + SendDlgItemMessage(hDlg, addrCtrlID, EM_SETREADONLY, TRUE, 0); + } + } + else + { + EnableWindow(GetDlgItem(hDlg, addrCtrlID), TRUE); + EnableWindow(GetDlgItem(hDlg, IDC_SPECIFICADDRESS), TRUE); + SetFocus(GetDlgItem(hDlg, addrCtrlID)); + } + + // limit the text + DefaultEditCtrlProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(hDlg, addrCtrlID), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + + SetWindowText(hDlg, title); + } + return false; case WM_COMMAND: switch(LOWORD(wParam)) { case IDOK: { - char Str_Tmp[256]; HWND parent = GetParent(hDlg); - int index = indexes[GetDlgStoreIndex(parent)]; + WatcherMsg* msg = msgs[GetDlgStoreIndex(parent)]; + UINT addrCtrlID; - // not a single watch editing operation - if (index != -1) + switch (msg->msg) { - // a normal watch, copy it to a temporary one - AddressWatcher watcher = rswatches[index]; - // if (watcher.comment != NULL) - // watcher.comment = strcpy((char*)malloc(strlen(watcher.comment) + 2), watcher.comment); + case WATCHER_MSG_EDIT: + addrCtrlID = IDC_EDIT_COMPAREADDRESS; + break; + case WATCHER_MSG_ADD: + case WATCHER_MSG_DUP: + addrCtrlID = IDC_EDIT_COMPAREADDRESSES; + break; + } - // It's from ram watch window, not a separator - // When it's from ram search or cheat window, all the information required is already set, - // so this is also unecessary - if (RamWatchHWnd && RamWatchHWnd == GetParent(hDlg) && watcher.Type != 'S') - { - GetDlgItemText(hDlg, IDC_PROMPT_EDIT, Str_Tmp, 256); + // The information is needed to parse from the UI, and separetor doesn't need them + if (parent == RamWatchHWnd && msg->Type != 'S') + { + // Don't worry about editing mode because it always has only 1 address in the edit control - // type - if (SendDlgItemMessage(hDlg, IDC_SIGNED, BM_GETCHECK, 0, 0) == BST_CHECKED) - watcher.Type = 's'; - else if (SendDlgItemMessage(hDlg, IDC_UNSIGNED, BM_GETCHECK, 0, 0) == BST_CHECKED) - watcher.Type = 'u'; - else if (SendDlgItemMessage(hDlg, IDC_HEX, BM_GETCHECK, 0, 0) == BST_CHECKED) - watcher.Type = 'h'; - else if (SendDlgItemMessage(hDlg, IDC_BINARY, BM_GETCHECK, 0, 0) == BST_CHECKED) - watcher.Type = 'b'; - else { - MessageBox(hDlg, "Type must be specified.", "Error", MB_OK | MB_ICONERROR); - return true; - } + // Do the always same part first. - // size - if (SendDlgItemMessage(hDlg, IDC_1_BYTE, BM_GETCHECK, 0, 0) == BST_CHECKED) - watcher.Size = 'b'; - else if (SendDlgItemMessage(hDlg, IDC_2_BYTES, BM_GETCHECK, 0, 0) == BST_CHECKED) - watcher.Size = 'w'; - else if (SendDlgItemMessage(hDlg, IDC_4_BYTES, BM_GETCHECK, 0, 0) == BST_CHECKED) - watcher.Size = 'd'; - else { - MessageBox(hDlg, "Size must be specified.", "Error", MB_OK | MB_ICONERROR); - return true; - } - - if (watcher.Type == 'b' && (watcher.Size == 'd' || watcher.Size == 'w')) - { - MessageBox(hDlg, "Only 1 byte is supported on binary format.", "Error", MB_OK | MB_ICONERROR); - return true; - } - - // address - GetDlgItemText(hDlg, IDC_EDIT_COMPAREADDRESS, Str_Tmp, 1024); - char *addrstr = Str_Tmp; - if (strlen(Str_Tmp) > 8) - addrstr = &Str_Tmp[strlen(Str_Tmp) - 9]; - for (int i = 0; addrstr[i]; ++i) - if (toupper(addrstr[i]) == 'O') - addrstr[i] = '0'; - sscanf(addrstr, "%04X", &watcher.Address); - - if ((watcher.Address & ~0xFFFFFF) == ~0xFFFFFF) - watcher.Address &= 0xFFFFFF; - - if (!IsHardwareAddressValid(watcher.Address)) - { - MessageBox(hDlg, "Invalid Address.", "Error", MB_OK | MB_ICONERROR); - return true; - } + // get the type + if (SendDlgItemMessage(hDlg, IDC_SIGNED, BM_GETCHECK, 0, 0) == BST_CHECKED) + msg->Type = 's'; + else if (SendDlgItemMessage(hDlg, IDC_UNSIGNED, BM_GETCHECK, 0, 0) == BST_CHECKED) + msg->Type = 'u'; + else if (SendDlgItemMessage(hDlg, IDC_HEX, BM_GETCHECK, 0, 0) == BST_CHECKED) + msg->Type = 'h'; + else if (SendDlgItemMessage(hDlg, IDC_BINARY, BM_GETCHECK, 0, 0) == BST_CHECKED) + msg->Type = 'b'; + else { + MessageBox(hDlg, "Type must be specified.", "Error", MB_OK | MB_ICONERROR); + return true; } - // comment - GetDlgItemText(hDlg, IDC_PROMPT_EDIT, Str_Tmp, 80); - watcher.comment = Str_Tmp; + // get the size + if (SendDlgItemMessage(hDlg, IDC_1_BYTE, BM_GETCHECK, 0, 0) == BST_CHECKED) + msg->Size = 'b'; + else if (SendDlgItemMessage(hDlg, IDC_2_BYTES, BM_GETCHECK, 0, 0) == BST_CHECKED) + msg->Size = 'w'; + else if (SendDlgItemMessage(hDlg, IDC_4_BYTES, BM_GETCHECK, 0, 0) == BST_CHECKED) + msg->Size = 'd'; + else { + MessageBox(hDlg, "Size must be specified.", "Error", MB_OK | MB_ICONERROR); + return true; + } - // finallly update the watch list - if (index >= 0 && index < WatchCount) - // it's a watch editing operation. - // Only ram watch window can edit a watch, the ram search window and cheat window only add watch. - EditWatch(index, watcher); + if (msg->Type == 'b' && (msg->Size == 'd' || msg->Size == 'w')) + { + MessageBox(hDlg, "Only 1 byte is supported on binary format.", "Error", MB_OK | MB_ICONERROR); + return true; + } + + // get the address(es) + char str_addrs[1024]; + GetDlgItemText(hDlg, addrCtrlID, str_addrs, 1024); + char* next = strtok(str_addrs, ","); + int i = 0; + unsigned int addrSize = 4; + + if (msg->Addresses) + msg->Addresses = (unsigned int*)malloc(sizeof(int) * addrSize); else - InsertWatch(watcher); - if (RamWatchHWnd) - ListView_SetItemCount(GetDlgItem(RamWatchHWnd, IDC_WATCHLIST), WatchCount); - } - else { - // a multiple watches insert operation, just asking for a comment - AddressWatcher& watcher = rswatches[index]; - // comment - GetDlgItemText(hDlg, IDC_PROMPT_EDIT, Str_Tmp, 80); - strcpy(watcher.comment, Str_Tmp); - } - EndDialog(hDlg, true); + msg->Addresses = (unsigned int*)realloc(msg->Addresses, sizeof(int) * addrSize); - RWfileChanged = true; - return true; - break; + do { + sscanf(next, "%04X", &msg->Addresses[i]); + // When an invalid address is in it + if (!IsHardwareAddressValid(msg->Addresses[i])) + { + MessageBox(hDlg, "You have entered an invalid address.", "Error", MB_ICONERROR | MB_OK); + // Comment out, leave it unfreed until next ID_OK event or close the dialog + // free(msg->Addresses); + // msg->Addresses = NULL; + + char* start = next + strspn(next, ", "); + char* end = start + strcspn(start, ", "); + SendDlgItemMessage(hDlg, addrCtrlID, EM_SETSEL, start - str_addrs, end - str_addrs); + SetFocus(GetDlgItem(hDlg, addrCtrlID)); + return true; + } + ++i; + if (i == addrSize) + msg->Addresses = (unsigned int*)realloc(msg->Addresses, sizeof(unsigned int) * (addrSize += 4)); + } while (next = strtok(NULL, ",")); + + msg->count = i; + } + + // get the new comment, every AddressWatcher would have a comment, no matter what type it is + if (msg->comment) + msg->comment = (char*)realloc(msg->comment, 1024 * sizeof(char)); + else + msg->comment = (char*)malloc(1024 * sizeof(char)); + GetDlgItemText(hDlg, IDC_PROMPT_EDIT, msg->comment, 1024); + + EndDialog(hDlg, true); + return false; } case IDCANCEL: EndDialog(hDlg, false); @@ -1308,19 +1360,43 @@ INT_PTR CALLBACK RamWatchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam watchIndex = ListView_GetSelectionMark(GetDlgItem(hDlg,IDC_WATCHLIST)); if(watchIndex != -1) { - DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_EDITWATCH), hDlg, EditWatchProc, watchIndex); - SetFocus(GetDlgItem(hDlg,IDC_WATCHLIST)); + WatcherMsg msg = WatcherMsg::FromAddressWatches(&rswatches[watchIndex]); + msg.msg = WATCHER_MSG_EDIT; + if (DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_EDITWATCH), hDlg, EditWatchProc, (LPARAM)&msg)) + { + AddressWatcher watcher = msg.ToAddressWatches()[0]; + EditWatch(watchIndex, watcher); + SetFocus(GetDlgItem(hDlg, IDC_WATCHLIST)); + if (watcher.comment) + free(watcher.comment); + } + if (msg.Addresses) + free(msg.Addresses); + if (msg.comment) + free(msg.comment); } return true; case IDC_C_WATCH: { - AddressWatcher& target = rswatches[WatchCount]; - target.Address = 0; - target.WrongEndian = 0; - target.Size = 'b'; - target.Type = 's'; - DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_EDITWATCH), hDlg, EditWatchProc, WatchCount); - SetFocus(GetDlgItem(hDlg, IDC_WATCHLIST)); + WatcherMsg msg; + msg.Addresses = (unsigned int*)calloc(1, sizeof(unsigned int)); + msg.WrongEndian = 0; + msg.Size = 'b'; + msg.Type = 's'; + if (DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_EDITWATCH), hDlg, EditWatchProc, (LPARAM)&msg)) + { + AddressWatcher* target = msg.ToAddressWatches(); + for (int i = 0; i < msg.count; ++i) + InsertWatch(target[i]); + SetFocus(GetDlgItem(hDlg, IDC_WATCHLIST)); + if (target->comment) + free(target->comment); + free(target); + } + if (msg.Addresses) + free(msg.Addresses); + if (msg.comment) + free(msg.comment); return true; } case IDC_C_WATCH_DUPLICATE: @@ -1328,27 +1404,46 @@ INT_PTR CALLBACK RamWatchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam watchIndex = ListView_GetSelectionMark(GetDlgItem(hDlg, IDC_WATCHLIST)); if (watchIndex != -1) { - char str_tmp[1024]; - AddressWatcher* target = &rswatches[WatchCount]; - AddressWatcher* source = &rswatches[watchIndex]; - memcpy(target, source, sizeof(AddressWatcher)); - target->comment = strcpy(str_tmp, source->comment); - DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_EDITWATCH), hDlg, EditWatchProc, WatchCount); - SetFocus(GetDlgItem(hDlg, IDC_WATCHLIST)); + WatcherMsg msg = WatcherMsg::FromAddressWatches(&rswatches[watchIndex]); + msg.msg = WATCHER_MSG_DUP; + if (DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_EDITWATCH), hDlg, EditWatchProc, (LPARAM)&msg)) + { + SetFocus(GetDlgItem(hDlg, IDC_WATCHLIST)); + int count; + AddressWatcher* target = msg.ToAddressWatches(&count); + for (int i = 0; i < count; ++i) + { + InsertWatch(target[i]); + if (target[i].comment) + free(target[i].comment); + } + } + if(msg.Addresses) + free(msg.Addresses); + if(msg.comment) + free(msg.comment); } return true; } case IDC_C_WATCH_SEPARATE: { - AddressWatcher* target = &rswatches[WatchCount]; - target->Address = 0; - target->WrongEndian = false; - target->Size = 'S'; - target->Type = 'S'; + WatcherMsg msg; + msg.WrongEndian = 0; + msg.Size = 'S'; + msg.Type = 'S'; + msg.msg = WATCHER_MSG_ADD; + msg.count = 1; - DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_EDITWATCH), hDlg, EditWatchProc, (LPARAM)WatchCount); + if (DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_EDITWATCH), hDlg, EditWatchProc, (LPARAM)&msg)) + { + AddressWatcher* sep = msg.ToAddressWatches(); + InsertWatch(*sep); + if (sep->comment) + free(sep->comment); + } + if (msg.comment) + free(msg.comment); - // InsertWatch(separator, "----------------------------"); SetFocus(GetDlgItem(hDlg, IDC_WATCHLIST)); return true; } @@ -1593,3 +1688,59 @@ SeparatorCache::SeparatorCache(HWND hwnd, char* text) { labelOffY = 0; } } + +AddressWatcher* WatcherMsg::ToAddressWatches(int* _count) +{ + AddressWatcher* watches = (AddressWatcher*)malloc(count * sizeof(AddressWatcher)); + int i = 0; + while(i < count) + { + AddressWatcher watcher; + watcher.Size = Size; + if (Type != 'S') + watcher.Address = Addresses[i]; + watcher.Type = Type; + watcher.WrongEndian = 0; + if (comment) + { + watcher.comment = (char*)malloc(strlen(comment) * sizeof(char) + 1); + strcpy(watcher.comment, comment); + } + else + watcher.comment = NULL; + watches[i] = watcher; + ++i; + } + + if (_count) + *_count = i; + + return watches; +} + +WatcherMsg WatcherMsg::FromAddressWatches(const AddressWatcher* watches, int count) +{ + WatcherMsg msg; + if (watches[0].comment) + { + msg.comment = (char*)malloc(strlen(watches[0].comment) + 1); + strcpy(msg.comment, watches[0].comment); + } + + msg.count = count; + msg.Size = watches->Size; + msg.Type = watches->Type; + msg.WrongEndian = watches->WrongEndian; + + // Because currently doesn't support adding multiple separators at once, + // and a separator doesn't have address values, + // so when add separator, there's only 1 item in the list + if (watches->Type != 'S') + { + msg.Addresses = (unsigned int*)malloc(count * sizeof(unsigned int)); + for (int i = 0; i < count; ++i) + msg.Addresses[i] = watches[i].Address; + } + + return msg; +} diff --git a/src/drivers/win/ramwatch.h b/src/drivers/win/ramwatch.h index 23153f39..fd625b9d 100644 --- a/src/drivers/win/ramwatch.h +++ b/src/drivers/win/ramwatch.h @@ -39,6 +39,7 @@ struct SeparatorCache }; #define MAX_WATCH_COUNT 256 + extern int WatchCount; // number of valid items in rswatches extern char Watch_Dir[1024]; @@ -58,9 +59,28 @@ struct AddressWatcher short Cheats; // how many bytes are affected by cheat }; +// the struct for communicating with add watch window +#define WATCHER_MSG_ADD 0 +#define WATCHER_MSG_EDIT 1 +#define WATCHER_MSG_DUP 2 +struct WatcherMsg { + int msg = WATCHER_MSG_ADD; + int count = 0; // how many addresses are there + unsigned int* Addresses = NULL; // Address list + char* comment = NULL; + bool WrongEndian; + char Size; + char Type; + + AddressWatcher* ToAddressWatches(int* _count = NULL); + static WatcherMsg FromAddressWatches(const AddressWatcher* watches, int count = 1); +}; + + + bool InsertWatch(const AddressWatcher& Watch); bool InsertWatch(const AddressWatcher& Watch, HWND parent); // asks user for comment -bool InsertWatches(const AddressWatcher* watches, HWND parent, const int count); +bool InsertWatches(WatcherMsg* msg, HWND parent, int count); bool InsertWatch(int watchIndex, const AddressWatcher& watcher); bool EditWatch(int watchIndex, const AddressWatcher& watcher); bool RemoveWatch(int watchIndex); diff --git a/src/drivers/win/res.rc b/src/drivers/win/res.rc index 413195a0..2218afcb 100644 --- a/src/drivers/win/res.rc +++ b/src/drivers/win/res.rc @@ -2205,8 +2205,9 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSM CAPTION " Edit Watch" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN - CTEXT "&Address:",IDC_SPECIFICADDRESS,15,12,30,8 - EDITTEXT IDC_EDIT_COMPAREADDRESS,48,10,65,12,ES_UPPERCASE | ES_AUTOHSCROLL + CTEXT "&Address:",IDC_SPECIFICADDRESS,15,12,30,8,NOT WS_VISIBLE | WS_DISABLED + EDITTEXT IDC_EDIT_COMPAREADDRESS,48,10,65,12,ES_UPPERCASE | ES_AUTOHSCROLL | NOT WS_VISIBLE | WS_DISABLED + EDITTEXT IDC_EDIT_COMPAREADDRESSES,48,10,65,12,ES_UPPERCASE | ES_AUTOHSCROLL | NOT WS_VISIBLE | WS_DISABLED CTEXT "&Notes:",IDC_PROMPT_TEXT,23,24,22,8 EDITTEXT IDC_PROMPT_EDIT,48,22,119,12,ES_AUTOHSCROLL GROUPBOX "Data Type",IDC_DATATYPE_GROUPBOX,14,37,75,53,0,WS_EX_TRANSPARENT diff --git a/src/drivers/win/resource.h b/src/drivers/win/resource.h index a7233fc7..055f8398 100644 --- a/src/drivers/win/resource.h +++ b/src/drivers/win/resource.h @@ -1,12 +1,12 @@ //{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file -// for res.rc +// Microsoft Visual C++ 生成的包含文件。 +// 供 res.rc 使用 // #define CLOSE_BUTTON 1 #define BUTTON_CLOSE 1 #define BTN_CLOSE 1 #define MENU_OPEN_FILE 100 -#define EDIT_ROM 100 +#define EDIT_ROM 100 #define LBL_LOG_TEXT 100 #define LBL_KEY_COMBO 100 #define LBL_CDLOGGER_CODECOUNT 100 @@ -216,7 +216,7 @@ #define IDD_TASEDITOR_FINDNOTE 198 #define IDD_TASEDITOR_ABOUT 199 #define MENU_RESET 200 -#define BUTTON_ROM 200 +#define BUTTON_ROM 200 #define TXT_PAD1 200 #define BTN_RESTORE_DEFAULTS 200 #define BTN_CLEAR 200 @@ -765,6 +765,7 @@ #define IDC_EDIT_COMPAREVALUE 1225 #define IDC_EDIT_COMPAREADDRESS 1226 #define IDC_EDIT_COMPARECHANGES 1227 +#define IDC_EDIT_COMPAREADDRESSES 1227 #define IDC_SIGNED 1228 #define IDC_UNSIGNED 1229 #define IDC_HEX 1230 diff --git a/src/drivers/win/window.cpp b/src/drivers/win/window.cpp index ae70b7fa..548d621d 100644 --- a/src/drivers/win/window.cpp +++ b/src/drivers/win/window.cpp @@ -3293,7 +3293,7 @@ LRESULT APIENTRY FilterEditCtrlProc(HWND hwnd, UINT msg, WPARAM wP, LPARAM lP) { through = false; // Show Edit control tip, just like the control with ES_NUMBER do - ShowLetterIllegalError(hwnd, IsLetterLegal); + ShowLetterIllegalBalloonTip(hwnd, IsLetterLegal); break; } } @@ -3309,7 +3309,7 @@ LRESULT APIENTRY FilterEditCtrlProc(HWND hwnd, UINT msg, WPARAM wP, LPARAM lP) bool(*IsLetterLegal)(char) = GetIsLetterLegal(GetDlgCtrlID(hwnd)); through = IsInputLegal(IsLetterLegal, wP); if (!through) - ShowLetterIllegalError(hwnd, IsLetterLegal); + ShowLetterIllegalBalloonTip(hwnd, IsLetterLegal); } } @@ -3353,11 +3353,14 @@ bool inline (*GetIsLetterLegal(UINT id))(char letter) case MW_ADDR12: case MW_ADDR13: case MW_ADDR14: case MW_ADDR15: case MW_ADDR16: case MW_ADDR17: case MW_ADDR18: case MW_ADDR19: case MW_ADDR20: case MW_ADDR21: case MW_ADDR22: case MW_ADDR23: + case IDC_EDIT_COMPAREADDRESS: + + return IsLetterLegalHex; // Specific Address in RAM Search - // RAM Watch / RAM Search / Cheat -> Add watch - case IDC_EDIT_COMPAREADDRESS: - return IsLetterLegalHex; + // RAM Watch / RAM Search / Cheat -> Add watch (current only in adding watch operation) + case IDC_EDIT_COMPAREADDRESSES: + return IsLetterLegalHexList; // Size multiplier and TV Aspect in Video Config case IDC_WINSIZE_MUL_X: case IDC_WINSIZE_MUL_Y: @@ -3390,63 +3393,45 @@ bool inline (*GetIsLetterLegal(UINT id))(char letter) return NULL; } -inline void ShowLetterIllegalError(HWND hwnd, bool(*IsLetterLegal)(char letter), bool balloon) -{ - (balloon ? ShowLetterIllegalBalloonTip : ShowLetterIllegalMessageBox)(hwnd, IsLetterLegal); -} - void ShowLetterIllegalBalloonTip(HWND hwnd, bool(*IsLetterLegal)(char letter)) { - char* title = "Unacceptable Character"; - int uLen = MultiByteToWideChar(CP_ACP, NULL, title, -1, NULL, 0); - wchar_t* titleW = (wchar_t*)malloc(sizeof(wchar_t) * uLen); - MultiByteToWideChar(CP_ACP, 0, title, -1, (LPWSTR)titleW, uLen); - - char* msg = GetLetterIllegalErrMsg(IsLetterLegal); - uLen = MultiByteToWideChar(CP_ACP, NULL, msg, -1, NULL, 0); - wchar_t* msgW = (wchar_t*)malloc(sizeof(wchar_t) * uLen); - MultiByteToWideChar(CP_ACP, 0, msg, -1, (LPWSTR)msgW, uLen); + wchar_t* title = L"Unacceptable Character"; + wchar_t* msg = GetLetterIllegalErrMsg(IsLetterLegal); EDITBALLOONTIP tip; tip.cbStruct = sizeof(EDITBALLOONTIP); - tip.pszText = msgW; - tip.pszTitle = titleW; + tip.pszText = msg; + tip.pszTitle = title; tip.ttiIcon = TTI_ERROR; SendMessage(hwnd, EM_SHOWBALLOONTIP, 0, (LPARAM)&tip); // make a sound MessageBeep(0xFFFFFFFF); - - free(titleW); - free(msgW); } -inline void ShowLetterIllegalMessageBox(HWND hwnd, bool(*IsLetterLegal)(char letter)) -{ - MessageBox(hwnd, GetLetterIllegalErrMsg(IsLetterLegal), _T("Unacceptable Character"), MB_OK | MB_ICONERROR); -} - -inline TCHAR* GetLetterIllegalErrMsg(bool(*IsLetterLegal)(char letter)) +inline wchar_t* GetLetterIllegalErrMsg(bool(*IsLetterLegal)(char letter)) { if (IsLetterLegal == IsLetterLegalGG) - return "You can only type Game Genie characters:\nA P Z L G I T Y E O X U K S V N"; + return L"You can only type Game Genie characters:\nA P Z L G I T Y E O X U K S V N"; if (IsLetterLegal == IsLetterLegalHex) - return "You can only type characters for hexadecimal number (0-9,A-F)."; + return L"You can only type characters for hexadecimal number (0-9,A-F)."; + if (IsLetterLegal == IsLetterLegalHexList) + return L"You can only type characters for hexademical number (0-9,A-F), each number is separated by a comma (,)"; if (IsLetterLegal == IsLetterLegalCheat) return - "The cheat code comes into the following 2 formats:\n" + L"The cheat code comes into the following 2 formats:\n" "AAAA:VV freezes the value in Address $AAAA to $VV.\n" "AAAA?CC:VV changes the value in Address $AAAA to $VV only when it's $CC.\n" "All the characters are hexadecimal number (0-9,A-F).\n"; if (IsLetterLegal == IsLetterLegalFloat) - return "You can only type decimal number (decimal point is acceptable)."; + return L"You can only type decimal number (decimal point is acceptable)."; if (IsLetterLegal == IsLetterLegalSize) - return "You can only type decimal number followed with B, KB or MB."; + return L"You can only type decimal number followed with B, KB or MB."; if (IsLetterLegal == IsLetterLegalDec) - return "You can only type decimal number (sign character is acceptable)."; + return L"You can only type decimal number (sign character is acceptable)."; if (IsLetterLegal == IsLetterLegalDecHexMixed) return - "You can only type decimal or hexademical number\n" + L"You can only type decimal or hexademical number\n" "(sign character is acceptable).\n\n" "When your number contains letter A-F,\n" "it is regarded as hexademical number,\n" @@ -3457,7 +3442,7 @@ inline TCHAR* GetLetterIllegalErrMsg(bool(*IsLetterLegal)(char letter)) "$10 means a hexademical number that is 16 in decimal."; if (IsLetterLegal == IsLetterLegalUnsignedDecHexMixed) return - "You can only type decimal or hexademical number.\n\n" + L"You can only type decimal or hexademical number.\n\n" "When your number contains letter A-F,\n" "it is regarded as hexademical number,\n" "however, if you want to express a heademical number\n" @@ -3466,7 +3451,7 @@ inline TCHAR* GetLetterIllegalErrMsg(bool(*IsLetterLegal)(char letter)) "eg. 10 is a decimal number,\n" "$10 means a hexademical number that is 16 in decimal."; - return "Your input contains invalid characters."; + return L"Your input contains invalid characters."; } inline bool IsInputLegal(bool (*IsLetterLegal)(char letter), char letter) @@ -3488,6 +3473,11 @@ inline bool IsLetterLegalHex(char letter) return letter >= '0' && letter <= '9' || letter >= 'A' && letter <= 'F' || letter >= 'a' && letter <= 'f'; } +inline bool IsLetterLegalHexList(char letter) +{ + return IsLetterLegalHex(letter) || letter == ',' || letter == ' '; +} + inline bool IsLetterLegalCheat(char letter) { return letter >= '0' && letter <= ':' || letter >= 'A' && letter <= 'F' || letter >= 'a' && letter <= 'f' || letter == '?'; diff --git a/src/drivers/win/window.h b/src/drivers/win/window.h index 0ba033ef..0127ad97 100644 --- a/src/drivers/win/window.h +++ b/src/drivers/win/window.h @@ -129,13 +129,12 @@ void UpdateMenuHotkeys(FCEUMENU_INDEX index); int GetCurrentContextIndex(); inline bool (*GetIsLetterLegal(UINT id))(char letter); -inline char* GetLetterIllegalErrMsg(bool(*IsLetterLegal)(char letter)); -inline void ShowLetterIllegalError(HWND hwnd, bool(*IsLetterLegal)(char letter), bool balloon = true); +inline wchar_t* GetLetterIllegalErrMsg(bool(*IsLetterLegal)(char letter)); void ShowLetterIllegalBalloonTip(HWND hwnd, bool(*IsLetterLegal)(char letter)); -inline void ShowLetterIllegalMessageBox(HWND hwnd, bool(*IsLetterLegal)(char letter)); inline bool IsInputLegal(bool(*IsLetterLegal)(char letter), char letter); inline bool IsLetterLegalGG(char letter); inline bool IsLetterLegalHex(char letter); +inline bool IsLetterLegalHexList(char letter); inline bool IsLetterLegalCheat(char letter); inline bool IsLetterLegalDec(char letter); inline bool IsLetterLegalSize(char letter); From e8597862f1f35b8c5d4f8570f256750395a7716b Mon Sep 17 00:00:00 2001 From: bbbradsmith Date: Sat, 2 May 2020 00:20:44 -0400 Subject: [PATCH 18/19] CHR size < 1k allows NES program to corrupt memory because VPage is 1k granularity returning 0 from iNES_Init is not ideal, error is "unsupported mapper" but at least it's an error also adding CHRmask1/2/4/8 fallback, not sure if needed but looks suspicious for <8k --- src/cart.cpp | 5 +++++ src/ines.cpp | 1 + 2 files changed, 6 insertions(+) diff --git a/src/cart.cpp b/src/cart.cpp index 4646eabd..26f7627c 100644 --- a/src/cart.cpp +++ b/src/cart.cpp @@ -132,6 +132,11 @@ void SetupCartCHRMapping(int chip, uint8 *p, uint32 size, int ram) { CHRmask4[chip] = (size >> 12) - 1; CHRmask8[chip] = (size >> 13) - 1; + if (CHRmask1[chip] >= (unsigned int)(-1)) CHRmask1[chip] = 0; + if (CHRmask2[chip] >= (unsigned int)(-1)) CHRmask2[chip] = 0; + if (CHRmask4[chip] >= (unsigned int)(-1)) CHRmask4[chip] = 0; + if (CHRmask8[chip] >= (unsigned int)(-1)) CHRmask8[chip] = 0; + CHRram[chip] = ram; } diff --git a/src/ines.cpp b/src/ines.cpp index 5111f481..70245a71 100644 --- a/src/ines.cpp +++ b/src/ines.cpp @@ -1017,6 +1017,7 @@ static int iNES_Init(int num) { { CHRRAMSize = iNESCart.battery_vram_size + iNESCart.vram_size; } + if (CHRRAMSize < 1024) return 0; // unsupported size, VPage only goes down to 1k banks, NES program can corrupt memory if used if ((VROM = (uint8*)FCEU_dmalloc(CHRRAMSize)) == NULL) return 0; FCEU_MemoryRand(VROM, CHRRAMSize); From 2cdb283a64413fc0aee283433cc02092cce4dc69 Mon Sep 17 00:00:00 2001 From: bbbradsmith Date: Sat, 2 May 2020 00:42:44 -0400 Subject: [PATCH 19/19] iNES_Init error reporting --- src/ines.cpp | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/src/ines.cpp b/src/ines.cpp index 70245a71..790c8725 100644 --- a/src/ines.cpp +++ b/src/ines.cpp @@ -892,8 +892,31 @@ int iNESLoad(const char *name, FCEUFILE *fp, int OverwriteVidMode) { iNESCart.battery = (head.ROM_type & 2) ? 1 : 0; iNESCart.mirror = Mirroring; - if (!iNES_Init(MapperNo)) + int result = iNES_Init(MapperNo); + switch(result) + { + case 0: + goto init_ok; + case 1: FCEU_PrintError("iNES mapper #%d is not supported at all.", MapperNo); + goto init_ok; // this error is still allowed to run as NROM? + case 2: + FCEU_PrintError("Unable to allocate CHR-RAM."); + break; + case 3: + FCEU_PrintError("CHR-RAM size < 1k is not supported."); + break; + } + if (ROM) free(ROM); + if (VROM) free(VROM); + if (trainerpoo) free(trainerpoo); + if (ExtraNTARAM) free(ExtraNTARAM); + ROM = NULL; + VROM = NULL; + trainerpoo = NULL; + ExtraNTARAM = NULL; + return 0; +init_ok: GameInfo->mappernum = MapperNo; FCEU_LoadGameSave(&iNESCart); @@ -1017,8 +1040,8 @@ static int iNES_Init(int num) { { CHRRAMSize = iNESCart.battery_vram_size + iNESCart.vram_size; } - if (CHRRAMSize < 1024) return 0; // unsupported size, VPage only goes down to 1k banks, NES program can corrupt memory if used - if ((VROM = (uint8*)FCEU_dmalloc(CHRRAMSize)) == NULL) return 0; + if (CHRRAMSize < 1024) return 3; // unsupported size, VPage only goes down to 1k banks, NES program can corrupt memory if used + if ((VROM = (uint8*)FCEU_dmalloc(CHRRAMSize)) == NULL) return 2; FCEU_MemoryRand(VROM, CHRRAMSize); UNIFchrrama = VROM; @@ -1038,9 +1061,9 @@ static int iNES_Init(int num) { if (head.ROM_type & 8) AddExState(ExtraNTARAM, 2048, 0, "EXNR"); tmp->init(&iNESCart); - return 1; + return 0; } tmp++; } - return 0; + return 1; }