From 1f42929f4ff6b81f0156517141cc879a2df9e28c Mon Sep 17 00:00:00 2001 From: owomomo Date: Tue, 1 Sep 2020 21:42:06 +0800 Subject: [PATCH] 1. Fix an ancient bug: .deb file doesn't store edit mode for Hex Editor, when the next time it launches, all the bookmarks are treated as RAM bookmarks. Since this bug was forgotten by developers for years, saving the missing data along with the other preferences would make the emulator backward incompatible. So I finally decided to append them to the end of the preferences. The older version of FCEUX didn't read/write the .deb file that far, they would stop earlier though the file created by the newer version has more data, because they don't have the appended code. I hope this modification doesn't break anything as I've tried my best to prevent incompatibilities. We're facing a difficult choice here, fortunately, it looks like the preferences of Hex Editor stores at last of .deb, so I can just append information in the function. However what could we do if someday someone found a bug in the middle of the deb file such as debuggers etc? As we can only append data, the functions have to be split into more parts, which is damage to the code maintainability and readability. The problems can't be easily resolved as far as I can think, although currently it is possible to make it work without too much problems. 2. Improved Bookmark Editing Dialog of Hex Editor, now it can edit almost all properties the bookmark has, you can directly change its address and even its view. 3. Changed some logic of debugger bookmark, the address can be directly changed in the dialog. 4. Decoupled Debugger and Hex Editor bookmark editing dialogs and callback functions from sharing one dialog, as they are not in the same system, the differences is worth to make them apart. 5. Disabled input barcode menu in movie recording and no game loading. 6. Detail. --- src/drivers/win/debugger.cpp | 2 +- src/drivers/win/debuggersp.cpp | 150 +++- src/drivers/win/debuggersp.h | 3 +- src/drivers/win/memview.cpp | 27 +- src/drivers/win/memview.h | 2 +- src/drivers/win/memviewsp.cpp | 178 ++-- src/drivers/win/memviewsp.h | 3 + src/drivers/win/pref.cpp | 46 +- src/drivers/win/res.rc | 1550 +++++++++++++++----------------- src/drivers/win/resource.h | 8 +- src/drivers/win/window.cpp | 1 - 11 files changed, 1021 insertions(+), 949 deletions(-) diff --git a/src/drivers/win/debugger.cpp b/src/drivers/win/debugger.cpp index b4b49fb3..e13377e4 100644 --- a/src/drivers/win/debugger.cpp +++ b/src/drivers/win/debugger.cpp @@ -2359,7 +2359,7 @@ INT_PTR CALLBACK DebuggerCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lP } case IDC_DEBUGGER_BOOKMARK_ADD: AddDebuggerBookmark(hwndDlg); break; case IDC_DEBUGGER_BOOKMARK_DEL: DeleteDebuggerBookmark(hwndDlg); break; - case IDC_DEBUGGER_BOOKMARK_NAME: NameDebuggerBookmark(hwndDlg); break; + case IDC_DEBUGGER_BOOKMARK_EDIT: EditDebuggerBookmark(hwndDlg); break; case IDC_DEBUGGER_ENABLE_SYMBOLIC: { symbDebugEnabled ^= 1; diff --git a/src/drivers/win/debuggersp.cpp b/src/drivers/win/debuggersp.cpp index 29587997..76d323b4 100644 --- a/src/drivers/win/debuggersp.cpp +++ b/src/drivers/win/debuggersp.cpp @@ -62,7 +62,9 @@ int debuggerWasActive = 0; char temp_chr[40] = {0}; char delimiterChar[2] = "#"; -extern INT_PTR CALLBACK nameBookmarkCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); +INT_PTR CALLBACK nameDebuggerBookmarkCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); +extern WNDPROC DefaultEditCtrlProc; +extern LRESULT APIENTRY FilterEditCtrlProc(HWND hDlg, UINT uMsg, WPARAM wP, LPARAM lP); MemoryMappedRegister RegNames[] = { {"$2000", "PPU_CTRL"}, @@ -768,28 +770,6 @@ unsigned int getBookmarkAddress(unsigned int index) return 0; } -/** -* Adds a debugger bookmark to the list on the debugger window. -* -* @param hwnd HWMD of the debugger window -* @param buffer Text of the debugger bookmark -**/ -void AddDebuggerBookmark2(HWND hwnd, unsigned int addr) -{ - int index = bookmarks.size(); - // try to find Symbolic name for this address - Name* node = findNode(getNamesPointerForAddress(addr), addr); - std::pair bookmark(addr, node && node->name ? node->name : ""); - bookmarks.push_back(bookmark); - - // add new item to ListBox - char buffer[256]; - sprintf(buffer, "%04X %s", bookmark.first, bookmark.second.c_str()); - SendDlgItemMessage(hwnd, LIST_DEBUGGER_BOOKMARKS, LB_ADDSTRING, 0, (LPARAM)buffer); - // select this item - SendDlgItemMessage(hwnd, LIST_DEBUGGER_BOOKMARKS, LB_SETCURSEL, index, 0); -} - /** * Takes the offset from the debugger bookmark edit field and adds a debugger * bookmark with that offset to the bookmark list if the offset is valid. @@ -798,18 +778,44 @@ void AddDebuggerBookmark2(HWND hwnd, unsigned int addr) **/ void AddDebuggerBookmark(HWND hwnd) { - int n; char buffer[5] = {0}; - GetDlgItemText(hwnd, IDC_DEBUGGER_BOOKMARK, buffer, 5); - n = offsetStringToInt(BT_C, buffer); + int address = offsetStringToInt(BT_C, buffer); // Make sure the offset is valid - if (n == -1 || n > 0xFFFF) + if (address == -1 || address > 0xFFFF) { MessageBox(hwnd, "Invalid offset", "Error", MB_OK | MB_ICONERROR); return; } - AddDebuggerBookmark2(hwnd, n); +/* + int index = 0; + for (std::vector>::iterator it = bookmarks.begin(); it != bookmarks.end(); ++it) + { + if (it->first == address) + { + // select this bookmark to notify it already have a bookmark + SendDlgItemMessage(hwnd, LIST_DEBUGGER_BOOKMARKS, LB_SETCURSEL, index, 0); + return; + } + ++index; + } + */ + + int index = bookmarks.size(); + // try to find Symbolic name for this address + Name* node = findNode(getNamesPointerForAddress(address), address); + std::pair bookmark(address, node && node->name ? node->name : ""); + if (DialogBoxParam(fceu_hInstance, "NAMEBOOKMARKDLGDEBUGGER", hwnd, nameDebuggerBookmarkCallB, (LPARAM)&bookmark)) + { + bookmarks.push_back(bookmark); + // add new item to ListBox + char buffer[256]; + sprintf(buffer, "%04X %s", bookmark.first, bookmark.second.c_str()); + SendDlgItemMessage(hwnd, LIST_DEBUGGER_BOOKMARKS, LB_ADDSTRING, 0, (LPARAM)buffer); + // select this item + SendDlgItemMessage(hwnd, LIST_DEBUGGER_BOOKMARKS, LB_SETCURSEL, index, 0); + } + } /** @@ -841,7 +847,7 @@ void DeleteDebuggerBookmark(HWND hwnd) } } -void NameDebuggerBookmark(HWND hwnd) +void EditDebuggerBookmark(HWND hwnd) { // Get the selected bookmark int selectedItem = SendDlgItemMessage(hwnd, LIST_DEBUGGER_BOOKMARKS, LB_GETCURSEL, 0, 0); @@ -865,7 +871,7 @@ void NameDebuggerBookmark(HWND hwnd) } } // Show the bookmark name dialog - if (DialogBoxParam(fceu_hInstance, "NAMEBOOKMARKDLG", hwnd, nameBookmarkCallB, (LPARAM)&bookmark)) + if (DialogBoxParam(fceu_hInstance, "NAMEBOOKMARKDLGDEBUGGER", hwnd, nameDebuggerBookmarkCallB, (LPARAM)&bookmark)) { // Rename the selected bookmark bookmarks[selectedItem] = bookmark; @@ -1159,4 +1165,88 @@ void WriteNameFileToDisk(const char* filename, Name* node) } } +INT_PTR CALLBACK nameDebuggerBookmarkCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +{ + static std::pair* debuggerBookmark; + + switch (uMsg) + { + case WM_INITDIALOG: + { + // Limit bookmark descriptions to 50 characters + SendDlgItemMessage(hwndDlg, IDC_BOOKMARK_DESCRIPTION, EM_SETLIMITTEXT, 50, 0); + + // Limit the address text + SendDlgItemMessage(hwndDlg, IDC_BOOKMARK_ADDRESS, EM_SETLIMITTEXT, 4, 0); + DefaultEditCtrlProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_BOOKMARK_ADDRESS), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); + + debuggerBookmark = (std::pair*)lParam; + char addr[8]; + sprintf(addr, "%04X", debuggerBookmark->first); + + // Set address and description + sprintf(addr, "%04X", debuggerBookmark->first); + SetDlgItemText(hwndDlg, IDC_BOOKMARK_ADDRESS, addr); + SetDlgItemText(hwndDlg, IDC_BOOKMARK_DESCRIPTION, debuggerBookmark->second.c_str()); + + // Set focus to the edit field. + SetFocus(GetDlgItem(hwndDlg, IDC_BOOKMARK_DESCRIPTION)); + SendDlgItemMessage(hwndDlg, IDC_BOOKMARK_DESCRIPTION, EM_SETSEL, 0, 52); + + break; + } + case WM_QUIT: + case WM_CLOSE: + EndDialog(hwndDlg, 0); + break; + case WM_COMMAND: + switch (HIWORD(wParam)) + { + case BN_CLICKED: + switch (LOWORD(wParam)) + { + case IDOK: + { + char addr_str[8]; + GetDlgItemText(hwndDlg, IDC_BOOKMARK_ADDRESS, addr_str, 8); + sscanf(addr_str, "%X", &debuggerBookmark->first); + + if (debuggerBookmark->first > 0xFFFE) + { + // if the address is out of range + char errmsg[64]; + sprintf(errmsg, "The address must be in range of 0-%X", 0xFFFE); + MessageBox(hwndDlg, errmsg, "Address out of range", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwndDlg, IDC_BOOKMARK_ADDRESS)); + return FALSE; + } + + /* + extern std::vector> bookmarks; + for (std::vector>::iterator it = bookmarks.begin(); it != bookmarks.end(); ++it) + { + if (it->first == debuggerBookmark->first && it->second == debuggerBookmark->second) + { + // if the address already have a bookmark + MessageBox(hwndDlg, "This address already have a bookmark", "Bookmark duplicated", MB_OK | MB_ICONASTERISK); + return FALSE; + } + } + */ + + // Update the description + char description[51]; + GetDlgItemText(hwndDlg, IDC_BOOKMARK_DESCRIPTION, description, 50); + debuggerBookmark->second = description; + EndDialog(hwndDlg, 1); + break; + } + case IDCANCEL: + EndDialog(hwndDlg, 0); + } + } + } + + return FALSE; +} diff --git a/src/drivers/win/debuggersp.h b/src/drivers/win/debuggersp.h index 41cf94f8..5556925c 100644 --- a/src/drivers/win/debuggersp.h +++ b/src/drivers/win/debuggersp.h @@ -55,9 +55,8 @@ void setNamesPointerForAddress(uint16 address, Name* newNode); void loadNameFiles(); void replaceNames(Name* list, char* str, std::vector* addressesLog = 0); void AddDebuggerBookmark(HWND hwnd); -void AddDebuggerBookmark2(HWND hwnd, unsigned int addr); void DeleteDebuggerBookmark(HWND hwnd); -void NameDebuggerBookmark(HWND hwnd); +void EditDebuggerBookmark(HWND hwnd); void DeleteAllDebuggerBookmarks(); void FillDebuggerBookmarkListbox(HWND hwnd); diff --git a/src/drivers/win/memview.cpp b/src/drivers/win/memview.cpp index 214a8683..65ca0ffe 100644 --- a/src/drivers/win/memview.cpp +++ b/src/drivers/win/memview.cpp @@ -615,7 +615,7 @@ void UpdateMemoryView(int draw_all) return; } -char EditString[4][20] = {"RAM","PPU","OAM","ROM"}; +char* EditString[4] = {"RAM","PPU","OAM","ROM"}; void UpdateCaption() { @@ -1255,6 +1255,19 @@ void KillMemView() return; } +int GetMaxSize(int EditingMode) +{ + switch (EditingMode) + { + case MODE_NES_MEMORY: return 0x10000; + case MODE_NES_PPU: return (GameInfo->type == GIT_NSF ? 0x2000 : 0x4000); + case MODE_NES_OAM: return 0x100; + case MODE_NES_FILE: return 16 + CHRsize[0] + PRGsize[0]; //todo: add trainer size + } + return 0; +} + + LRESULT CALLBACK MemViewCallB(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; @@ -2162,17 +2175,7 @@ LRESULT CALLBACK MemViewCallB(HWND hwnd, UINT message, WPARAM wParam, LPARAM lPa break; } - switch (EditingMode) - { - 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; - } + MaxSize = GetMaxSize(EditingMode); if (CurOffset >= MaxSize - DataAmount) CurOffset = MaxSize - DataAmount; if (CurOffset < 0) CurOffset = 0; diff --git a/src/drivers/win/memview.h b/src/drivers/win/memview.h index 7dc9a882..1d7b5ecb 100644 --- a/src/drivers/win/memview.h +++ b/src/drivers/win/memview.h @@ -16,4 +16,4 @@ void SetHexEditorAddress(int gotoaddress); extern HWND hMemView, hMemFind; extern int EditingMode; -extern char EditString[4][20]; \ No newline at end of file +extern char* EditString[4]; \ No newline at end of file diff --git a/src/drivers/win/memviewsp.cpp b/src/drivers/win/memviewsp.cpp index 3b2e6e44..0ff91add 100644 --- a/src/drivers/win/memviewsp.cpp +++ b/src/drivers/win/memviewsp.cpp @@ -62,15 +62,11 @@ BOOL CenterWindow(HWND hwndDlg); but different bookmark systems, either decouple their callback into separate functions or unify them to use the same bookmark system. */ -INT_PTR CALLBACK nameBookmarkCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) +INT_PTR CALLBACK nameHexBookmarkCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { // For Hex Editor static HexBookmarkMsg* hexBookmarkMsg; - static int dlgShortcutRadioCheck[10] = { IDC_RADIO_SHORTCUT0, IDC_RADIO_SHORTCUT1, IDC_RADIO_SHORTCUT2, IDC_RADIO_SHORTCUT3, IDC_RADIO_SHORTCUT4, IDC_RADIO_SHORTCUT5, IDC_RADIO_SHORTCUT6, IDC_RADIO_SHORTCUT7, IDC_RADIO_SHORTCUT8, IDC_RADIO_SHORTCUT9 }; - - // For Debugger - extern HWND hDebug; - static std::pair* debuggerBookmark; + int dlgShortcutRadioCheck[10] = { IDC_RADIO_SHORTCUT0, IDC_RADIO_SHORTCUT1, IDC_RADIO_SHORTCUT2, IDC_RADIO_SHORTCUT3, IDC_RADIO_SHORTCUT4, IDC_RADIO_SHORTCUT5, IDC_RADIO_SHORTCUT6, IDC_RADIO_SHORTCUT7, IDC_RADIO_SHORTCUT8, IDC_RADIO_SHORTCUT9 }; switch (uMsg) { @@ -79,60 +75,51 @@ INT_PTR CALLBACK nameBookmarkCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA // Limit bookmark descriptions to 50 characters SendDlgItemMessage(hwndDlg, IDC_BOOKMARK_DESCRIPTION, EM_SETLIMITTEXT, 50, 0); - // Put the current bookmark description into the edit field - HWND parent = GetParent(hwndDlg); - - char addr[5]; - const char* description; - // Called from Hex Editor - if (parent == hMemView) + // Limit the address text + SendDlgItemMessage(hwndDlg, IDC_BOOKMARK_ADDRESS, EM_SETLIMITTEXT, 6, 0); + DefaultEditCtrlProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_BOOKMARK_ADDRESS), GWLP_WNDPROC, (LONG_PTR)FilterEditCtrlProc); + + // Add View list box + for (int i = 0; i < 4; ++i) + SendDlgItemMessage(hwndDlg, IDC_BOOKMARK_COMBO_VIEW, CB_INSERTSTRING, -1, (LPARAM)EditString[i]); + + hexBookmarkMsg = (HexBookmarkMsg*)lParam; + HexBookmark* hexBookmark = hexBookmarkMsg->bookmark; + + bool shortcut_assigned = hexBookmarkMsg->shortcut_index != -1; + if (shortcut_assigned) { - hexBookmarkMsg = (HexBookmarkMsg*)lParam; - HexBookmark* hexBookmark = hexBookmarkMsg->bookmark; - sprintf(addr, "%04X", hexBookmark->address); - description = hexBookmark->description; - - bool shortcut_assigned = hexBookmarkMsg->shortcut_index != -1; - if (shortcut_assigned) - { - CheckDlgButton(hwndDlg, IDC_CHECK_SHORTCUT, BST_CHECKED); - CheckDlgButton(hwndDlg, dlgShortcutRadioCheck[hexBookmarkMsg->shortcut_index], BST_CHECKED); - } - else - EnableWindow(GetDlgItem(hwndDlg, IDC_BOOKMARK_SHORTCUT_PREFIX_TEXT), FALSE); - - for (int i = 0; i < 10; ++i) - if (!shortcut_assigned || hexBookmarkShortcut[i] != -1 && hexBookmarkShortcut[i] != hexBookmarkMsg->bookmark_index) - // the shortcut number is occupied but it doesn't belongs to this bookmark, or the bookmark doesn't have a shortcut - EnableWindow(GetDlgItem(hwndDlg, dlgShortcutRadioCheck[i]), FALSE); - - if (!shortcut_assigned && numHexBookmarkShortcut >= 10) - { - // all the shortcuts are occupied and this one doesn't have a shortcut, it's impossible to assign a new shortcut - EnableWindow(GetDlgItem(hwndDlg, IDC_CHECK_SHORTCUT), FALSE); - EnableWindow(GetDlgItem(hwndDlg, IDC_BOOKMARK_SHORTCUT_PREFIX_TEXT), FALSE); - } + CheckDlgButton(hwndDlg, IDC_CHECK_SHORTCUT, BST_CHECKED); + CheckDlgButton(hwndDlg, dlgShortcutRadioCheck[hexBookmarkMsg->shortcut_index], BST_CHECKED); } - // Called from Debugger - else if (parent == hDebug) - { - debuggerBookmark = (std::pair*)lParam; - sprintf(addr, "%04X", debuggerBookmark->first); - description = debuggerBookmark->second.c_str(); + else + EnableWindow(GetDlgItem(hwndDlg, IDC_BOOKMARK_SHORTCUT_PREFIX_TEXT), FALSE); - // Hide the shortcut panel since it doesn't support jump to address shortcut keys. - ShowWindow(GetDlgItem(hwndDlg, IDC_CHECK_SHORTCUT), SW_HIDE); - ShowWindow(GetDlgItem(hwndDlg, IDC_BOOKMARK_SHORTCUT_PREFIX_TEXT), SW_HIDE); - for (int i = 0; i < 10; ++i) - ShowWindow(GetDlgItem(hwndDlg, dlgShortcutRadioCheck[i]), SW_HIDE); + for (int i = 0; i < 10; ++i) + if (!shortcut_assigned || hexBookmarkShortcut[i] != -1 && hexBookmarkShortcut[i] != hexBookmarkMsg->bookmark_index) + // this bookmark doesn't have a shortcut, or the shortcut number is occupied but it doesn't belongs to this bookmark + EnableWindow(GetDlgItem(hwndDlg, dlgShortcutRadioCheck[i]), FALSE); + + if (!shortcut_assigned && numHexBookmarkShortcut >= 10) + { + // all the shortcuts are occupied and this one doesn't have a shortcut, it's impossible to assign a new shortcut + EnableWindow(GetDlgItem(hwndDlg, IDC_CHECK_SHORTCUT), FALSE); + EnableWindow(GetDlgItem(hwndDlg, IDC_BOOKMARK_SHORTCUT_PREFIX_TEXT), FALSE); } // Set address and description + char addr[8]; + sprintf(addr, "%04X", hexBookmark->address); SetDlgItemText(hwndDlg, IDC_BOOKMARK_ADDRESS, addr); - SetDlgItemText(hwndDlg, IDC_BOOKMARK_DESCRIPTION, description); + SetDlgItemText(hwndDlg, IDC_BOOKMARK_DESCRIPTION, hexBookmark->description); + + // Set the view of the bookmark + SendDlgItemMessage(hwndDlg, IDC_BOOKMARK_COMBO_VIEW, CB_SETCURSEL, hexBookmarkMsg->bookmark->editmode, 0); // and set focus to that edit field. SetFocus(GetDlgItem(hwndDlg, IDC_BOOKMARK_DESCRIPTION)); + SendDlgItemMessage(hwndDlg, IDC_BOOKMARK_DESCRIPTION, EM_SETSEL, 0, 52); + break; } case WM_CLOSE: @@ -156,42 +143,69 @@ INT_PTR CALLBACK nameBookmarkCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA break; case IDOK: { - HWND parent = GetParent(hwndDlg); - // Called from Hex Editor - if (parent == hMemView) - { - // Update the bookmark description - GetDlgItemText(hwndDlg, IDC_BOOKMARK_DESCRIPTION, hexBookmarkMsg->bookmark->description, 50); - - // Update the shortcut key - if (hexBookmarkMsg->shortcut_index != -1 && hexBookmarkShortcut[hexBookmarkMsg->shortcut_index] != -1) - { - hexBookmarkShortcut[hexBookmarkMsg->shortcut_index] = -1; - --numHexBookmarkShortcut; - } + int address, editmode; - if (IsDlgButtonChecked(hwndDlg, IDC_CHECK_SHORTCUT)) - for (int i = 0; i < 10; ++i) - if(IsDlgButtonChecked(hwndDlg, dlgShortcutRadioCheck[i])) - { - // Update the shortcut index - hexBookmarkShortcut[i] = hexBookmarkMsg->bookmark_index; - ++numHexBookmarkShortcut; - break; - } - } - else if (parent == hDebug) + // Get the address; + char addr_str[8]; + GetDlgItemText(hwndDlg, IDC_BOOKMARK_ADDRESS, addr_str, 8); + sscanf(addr_str, "%X", &address); + + // Get the view which the address in + editmode = SendDlgItemMessage(hwndDlg, IDC_BOOKMARK_COMBO_VIEW, CB_GETCURSEL, 0, 0); + extern int GetMaxSize(int editingMode); + int MaxSize = GetMaxSize(editmode); + + // Update the address + if (address > MaxSize - 1) { - char description[51]; - GetDlgItemText(hwndDlg, IDC_BOOKMARK_DESCRIPTION, description, 50); - debuggerBookmark->second = description; + // if the address is out of range + char errmsg[64]; + sprintf(errmsg, "The address in %s must be in range of 0-%X", EditString[editmode], MaxSize - 1); + MessageBox(hwndDlg, errmsg, "Address out of range", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwndDlg, IDC_BOOKMARK_ADDRESS)); + return FALSE; } + + int found = findBookmark(address, editmode); + if (found != -1 && found != hexBookmarkMsg->bookmark_index) + { + // if the address already have a bookmark and the bookmark is not the one we currently editing + MessageBox(hwndDlg, "This address already have a bookmark", "Bookmark duplicated", MB_OK | MB_ICONASTERISK); + SetFocus(GetDlgItem(hwndDlg, IDC_BOOKMARK_ADDRESS)); + return FALSE; + } + + hexBookmarkMsg->bookmark->address = address; + hexBookmarkMsg->bookmark->editmode = editmode; + + // Update the bookmark description + GetDlgItemText(hwndDlg, IDC_BOOKMARK_DESCRIPTION, hexBookmarkMsg->bookmark->description, 50); + + // Update the shortcut key + if (hexBookmarkMsg->shortcut_index != -1 && hexBookmarkShortcut[hexBookmarkMsg->shortcut_index] == hexBookmarkMsg->bookmark_index) + { + + hexBookmarkShortcut[hexBookmarkMsg->shortcut_index] = -1; + --numHexBookmarkShortcut; + } + + if (IsDlgButtonChecked(hwndDlg, IDC_CHECK_SHORTCUT)) + for (int i = 0; i < 10; ++i) + if (IsDlgButtonChecked(hwndDlg, dlgShortcutRadioCheck[i])) + { + // Update the shortcut index + hexBookmarkShortcut[i] = hexBookmarkMsg->bookmark_index; + ++numHexBookmarkShortcut; + break; + } + EndDialog(hwndDlg, 1); - break; } + break; + case IDCANCEL: + EndDialog(hwndDlg, 0); } } - break; } return FALSE; @@ -225,7 +239,7 @@ int addBookmark(HWND hwnd, unsigned int address, int editmode) msg.bookmark_index = nextBookmark; // Show the bookmark name dialog - if (DialogBoxParam(fceu_hInstance, "NAMEBOOKMARKDLG", hwnd, nameBookmarkCallB, (LPARAM)&msg)) + if (DialogBoxParam(fceu_hInstance, "NAMEBOOKMARKDLGMEMVIEW", hwnd, nameHexBookmarkCallB, (LPARAM)&msg)) { nextBookmark++; return 0; @@ -266,7 +280,7 @@ int editBookmark(HWND hwnd, unsigned int index) } // Show the bookmark name dialog - if (DialogBoxParam(fceu_hInstance, "NAMEBOOKMARKDLG", hwnd, nameBookmarkCallB, (LPARAM)&msg)) + if (DialogBoxParam(fceu_hInstance, "NAMEBOOKMARKDLGMEMVIEW", hwnd, nameHexBookmarkCallB, (LPARAM)&msg)) return 0; else return 1; @@ -343,7 +357,7 @@ void updateBookmarkMenus(HMENU menu) { // Get the text of the menu char buffer[0x100]; - sprintf(buffer, i < 10 ? "&%d. $%04X - %s" : "%d. $%04X - %s",i, hexBookmarks[i].address, hexBookmarks[i].description); + sprintf(buffer, i < 10 ? "&%d. %s:$%04X - %s" : "%d. $%04X - %s", i, EditString[hexBookmarks[i].editmode], hexBookmarks[i].address, hexBookmarks[i].description); AppendMenu(menu, MF_STRING, ID_FIRST_BOOKMARK + i, buffer); } diff --git a/src/drivers/win/memviewsp.h b/src/drivers/win/memviewsp.h index ee1f2f75..b4ed39d9 100644 --- a/src/drivers/win/memviewsp.h +++ b/src/drivers/win/memviewsp.h @@ -50,3 +50,6 @@ int removeBookmark(unsigned int index); void updateBookmarkMenus(HMENU menu); int handleBookmarkMenu(int bookmark); void removeAllBookmarks(HMENU menu); + +extern LRESULT APIENTRY FilterEditCtrlProc(HWND hDlg, UINT msg, WPARAM wP, LPARAM lP); +extern WNDPROC DefaultEditCtrlProc; diff --git a/src/drivers/win/pref.cpp b/src/drivers/win/pref.cpp index 5cbc26a4..2ec1c0d7 100644 --- a/src/drivers/win/pref.cpp +++ b/src/drivers/win/pref.cpp @@ -143,7 +143,7 @@ int storeHexPreferences(FILE* f) if (fwrite(hexBookmarks[i].description, 1, len, f) != len) return 1; } - // optional section: save bookmark shortcut matches + // Optional Section 1: Save bookmark shortcut matches if (numHexBookmarkShortcut) { fwrite(&numHexBookmarkShortcut, sizeof(numHexBookmarkShortcut), 1, f); @@ -155,6 +155,18 @@ int storeHexPreferences(FILE* f) } } + /* Optional Section 2: Edit mode + The Hex Editor used to have a bug, it doesn't store the edit mode to + the preferences, which make the bookmarks outside NES memory are all + treated as NES memory bookmarks. + However, for the consideration of backward compatibility of the older + version of FCEUX, we can only add the extra data to the last of the file + to fix this problem. + */ + for (int i = 0; i < nextBookmark; ++i) + if (fwrite(&hexBookmarks[i].editmode, sizeof(hexBookmarks[i].editmode), 1, f) != 1) + return 1; + return 0; } @@ -358,6 +370,10 @@ int loadHexPreferences(FILE* f) if (fread(&nextBookmark, sizeof(nextBookmark), 1, f) != 1) return 1; if (nextBookmark >= 64) return 1; + // clean the garbage values + memset(hexBookmarks, 0, sizeof(HexBookmark) * nextBookmark); + + for (i=0;i Gui to get zapper right click", FCEUX_CONTEXT_GUICONFIG - END - POPUP "Game+NoMovie" - BEGIN - MENUITEM "Play Movie...", FCEUX_CONTEXT_REPLAYMOVIE - MENUITEM "Record Movie...", FCEUX_CONTEXT_RECORDMOVIE - MENUITEM "Load Last Movie", FCEUX_CONTEXT_LOADLASTMOVIE - MENUITEM SEPARATOR - MENUITEM "Undo savestate", FCEUX_CONTEXT_UNDOSAVESTATE - MENUITEM "Undo loadstate", FCEUX_CONTEXT_UNDOLOADSTATE - MENUITEM "Rewind to last auto-save", FCEUX_CONTEXT_REWINDTOLASTAUTO - MENUITEM "Screenshot", FCEUX_CONTEXT_SCREENSHOT - MENUITEM SEPARATOR - MENUITEM "Close ROM", FCEU_CONTEXT_CLOSEROM - MENUITEM SEPARATOR - MENUITEM "Use Config > Gui to get zapper right click", FCEUX_CONTEXT_GUICONFIG - END - POPUP "Game+Movie+Playing+readonly" - BEGIN - MENUITEM "Toggle to read+write", FCEUX_CONTEXT_READONLYTOGGLE - MENUITEM "Play Movie from Beginning", FCEU_CONTEXT_PLAYMOVIEFROMBEGINNING - MENUITEM "Stop Movie Replay", FCEU_CONTEXT_STOPMOVIE - MENUITEM "View comments and subtitles", FCEUX_CONTEXT_VIEWCOMMENTSSUBTITLES - MENUITEM SEPARATOR - MENUITEM "Toggle to Recording", FCEUX_CONTEXT_TOGGLE_RECORDING - POPUP "Modify Movie" - BEGIN - MENUITEM "Insert 1 Frame", FCEUX_CONTEXT_INSERT_1_FRAME - MENUITEM "Delete 1 Frame", FCEUX_CONTEXT_DELETE_1_FRAME - MENUITEM SEPARATOR - MENUITEM "Truncate at Current Frame", FCEUX_CONTEXT_TRUNCATE_MOVIE - END - POPUP "Record Mode" - BEGIN - MENUITEM "&Truncate", FCEUX_CONTEXT_RECORDMODE_TRUNCATE - MENUITEM "&Overwrite[W]", FCEUX_CONTEXT_RECORDMODE_OVERWRITE - MENUITEM "&Insert[I]", FCEUX_CONTEXT_RECORDMODE_INSERT - END - MENUITEM SEPARATOR - MENUITEM "Undo savestate", FCEUX_CONTEXT_UNDOSAVESTATE - MENUITEM "Rewind to last auto-save", FCEUX_CONTEXT_REWINDTOLASTAUTO - MENUITEM SEPARATOR - MENUITEM "Help....", FCEU_CONTEXT_MOVIEHELP - MENUITEM SEPARATOR - MENUITEM "Use Config > Gui to get zapper right click", FCEUX_CONTEXT_GUICONFIG - END - POPUP "Game+Movie+Playing+readwrite" - BEGIN - MENUITEM "Toggle to Read-only", FCEUX_CONTEXT_READONLYTOGGLE - MENUITEM "Play Movie From Beginning", FCEU_CONTEXT_PLAYMOVIEFROMBEGINNING - MENUITEM "Stop Movie Replay", FCEU_CONTEXT_STOPMOVIE - MENUITEM "View comments and subtitles", FCEUX_CONTEXT_VIEWCOMMENTSSUBTITLES - MENUITEM "Make backup", FCEUX_CONTEXT_MAKEBACKUP - MENUITEM "Save Movie As...", FCEUX_CONTEXT_SAVEMOVIEAS - MENUITEM SEPARATOR - MENUITEM "Toggle to Recording", FCEUX_CONTEXT_TOGGLE_RECORDING - POPUP "Modify Movie" - BEGIN - MENUITEM "Insert 1 Frame", FCEUX_CONTEXT_INSERT_1_FRAME - MENUITEM "Delete 1 Frame", FCEUX_CONTEXT_DELETE_1_FRAME - MENUITEM SEPARATOR - MENUITEM "Truncate at Current Frame", FCEUX_CONTEXT_TRUNCATE_MOVIE - END - POPUP "Record Mode" - BEGIN - MENUITEM "&Truncate", FCEUX_CONTEXT_RECORDMODE_TRUNCATE - MENUITEM "&Overwrite[W]", FCEUX_CONTEXT_RECORDMODE_OVERWRITE - MENUITEM "&Insert[I]", FCEUX_CONTEXT_RECORDMODE_INSERT - END - MENUITEM SEPARATOR - MENUITEM "Undo savestate", FCEUX_CONTEXT_UNDOSAVESTATE - MENUITEM "Undo loadstate", FCEUX_CONTEXT_UNDOLOADSTATE - MENUITEM "Rewind to last auto-save", FCEUX_CONTEXT_REWINDTOLASTAUTO - MENUITEM SEPARATOR - MENUITEM "&Mode: Full state-movie loads", ID_CONTEXT_FULLSAVESTATES - MENUITEM SEPARATOR - MENUITEM "Help...", FCEU_CONTEXT_MOVIEHELP - MENUITEM SEPARATOR - MENUITEM "Use Config > Gui to get zapper right click", FCEUX_CONTEXT_GUICONFIG - END - POPUP "Game+Movie+Recording+readonly" - BEGIN - MENUITEM "Toggle to read+write", FCEUX_CONTEXT_READONLYTOGGLE - MENUITEM "Play Movie from Beginning", FCEU_CONTEXT_PLAYMOVIEFROMBEGINNING - MENUITEM "Stop Movie Recording", FCEU_CONTEXT_STOPMOVIE - MENUITEM "View comments and subtitles", FCEUX_CONTEXT_VIEWCOMMENTSSUBTITLES - MENUITEM SEPARATOR - MENUITEM "Toggle to Playing", FCEUX_CONTEXT_TOGGLE_RECORDING - POPUP "Modify Movie" - BEGIN - MENUITEM "Insert 1 Frame", FCEUX_CONTEXT_INSERT_1_FRAME - MENUITEM "Delete 1 Frame", FCEUX_CONTEXT_DELETE_1_FRAME - MENUITEM SEPARATOR - MENUITEM "Truncate at Current Frame", FCEUX_CONTEXT_TRUNCATE_MOVIE - END - POPUP "Record Mode" - BEGIN - MENUITEM "&Truncate", FCEUX_CONTEXT_RECORDMODE_TRUNCATE - MENUITEM "&Overwrite[W]", FCEUX_CONTEXT_RECORDMODE_OVERWRITE - MENUITEM "&Insert[I]", FCEUX_CONTEXT_RECORDMODE_INSERT - END - MENUITEM SEPARATOR - MENUITEM "Undo savestate", FCEUX_CONTEXT_UNDOSAVESTATE - MENUITEM "Rewind to last auto-save", FCEUX_CONTEXT_REWINDTOLASTAUTO - MENUITEM SEPARATOR - MENUITEM "Help....", FCEU_CONTEXT_MOVIEHELP - MENUITEM SEPARATOR - MENUITEM "Use Config > Gui to get zapper right click", FCEUX_CONTEXT_GUICONFIG - END - POPUP "Game+Movie+Recording+readwrite" - BEGIN - MENUITEM "Toggle to Read-only", FCEUX_CONTEXT_READONLYTOGGLE - MENUITEM "Play Movie From Beginning", FCEU_CONTEXT_PLAYMOVIEFROMBEGINNING - MENUITEM "Stop Movie Recording", FCEU_CONTEXT_STOPMOVIE - MENUITEM "View comments and subtitles", FCEUX_CONTEXT_VIEWCOMMENTSSUBTITLES - MENUITEM "Make backup", FCEUX_CONTEXT_MAKEBACKUP - MENUITEM "Save Movie As...", FCEUX_CONTEXT_SAVEMOVIEAS - MENUITEM SEPARATOR - MENUITEM "Toggle to Playing", FCEUX_CONTEXT_TOGGLE_RECORDING - POPUP "Modify Movie" - BEGIN - MENUITEM "Insert 1 Frame", FCEUX_CONTEXT_INSERT_1_FRAME - MENUITEM "Delete 1 Frame", FCEUX_CONTEXT_DELETE_1_FRAME - MENUITEM SEPARATOR - MENUITEM "Truncate at Current Frame", FCEUX_CONTEXT_TRUNCATE_MOVIE - END - POPUP "Record Mode" - BEGIN - MENUITEM "&Truncate", FCEUX_CONTEXT_RECORDMODE_TRUNCATE - MENUITEM "&Overwrite[W]", FCEUX_CONTEXT_RECORDMODE_OVERWRITE - MENUITEM "&Insert[I]", FCEUX_CONTEXT_RECORDMODE_INSERT - END - MENUITEM SEPARATOR - MENUITEM "Undo savestate", FCEUX_CONTEXT_UNDOSAVESTATE - MENUITEM "Undo loadstate", FCEUX_CONTEXT_UNDOLOADSTATE - MENUITEM "Rewind to last auto-save", FCEUX_CONTEXT_REWINDTOLASTAUTO - MENUITEM SEPARATOR - MENUITEM "&Mode: Full state-movie loads", ID_CONTEXT_FULLSAVESTATES - MENUITEM SEPARATOR - MENUITEM "Help...", FCEU_CONTEXT_MOVIEHELP - MENUITEM SEPARATOR - MENUITEM "Use Config > Gui to get zapper right click", FCEUX_CONTEXT_GUICONFIG - END -END - -RAMWATCH_MENU MENU -BEGIN - POPUP "File" - BEGIN - MENUITEM "&New list\tCtrl N", RAMMENU_FILE_NEW - MENUITEM "&Open...\tCtrl O", RAMMENU_FILE_OPEN - MENUITEM "&Save\tCtrl S", RAMMENU_FILE_SAVE - MENUITEM "Sa&ve As...\tCtrl Shift S", RAMMENU_FILE_SAVEAS - MENUITEM "&Append file...", RAMMENU_FILE_APPEND - MENUITEM "Recent", RAMMENU_FILE_RECENT - MENUITEM SEPARATOR - MENUITEM "Auto-&load", RAMMENU_FILE_AUTOLOAD - MENUITEM "Save Window Position", RAMMENU_FILE_SAVEWINDOW - MENUITEM SEPARATOR - MENUITEM "&Close\tAlt F4", IDCANCEL - END - POPUP "Watches" - BEGIN - MENUITEM "&New Watch\tN", IDC_C_WATCH - MENUITEM "&Edit Watch\tE", IDC_C_WATCH_EDIT - MENUITEM "&Remove Watch\tR", IDC_C_WATCH_REMOVE - MENUITEM "Duplicate Watch\tA", IDC_C_WATCH_DUPLICATE - MENUITEM "Add &Separator\tS", IDC_C_WATCH_SEPARATE - MENUITEM SEPARATOR - MENUITEM "Move Up\tU", IDC_C_WATCH_UP - MENUITEM "Move Down\tD", IDC_C_WATCH_DOWN - END -END - -CHEATCONTEXTMENUS MENU -BEGIN - POPUP "CheatListPopup" - BEGIN - MENUITEM "Toggle selected Cheats", CHEAT_CONTEXT_LIST_TOGGLECHEAT - MENUITEM "Poke Cheat Value", CHEAT_CONTEXT_LIST_POKECHEATVALUE - MENUITEM "Goto in Hex Editor", CHEAT_CONTEXT_LIST_GOTOINHEXEDITOR - MENUITEM "Delete selected Cheats", CHEAT_CONTEXT_LIST_DELETESELECTEDCHEATS - END - POPUP "CheatPossiPopup" - BEGIN - MENUITEM "Add to Memory Watch", CHEAT_CONTEXT_POSSI_ADDTOMEMORYWATCH - MENUITEM "Add cheat", CHEAT_CONTEXT_POSSI_ADDCHEAT - MENUITEM "Add to RAM Watch", CHEAT_CONTEXT_POSSI_ADDTORAMWATCH - MENUITEM "Go to in Hex Editor", CHEAT_CONTEXT_POSSI_GOTOINHEXEDITOR - END -END - -DEBUGCONTEXTMENUS MENU -BEGIN - POPUP "DebugListPopup" - BEGIN - MENUITEM "Toggle Breakpoint\tDbl-Clk", DEBUGGER_CONTEXT_TOGGLEBREAK - END -END - -LUAWINDOW_MENU MENU -BEGIN - POPUP "Console" - BEGIN - MENUITEM "&Font...", IDC_LUACONSOLE_CHOOSEFONT - MENUITEM "Clear", IDC_LUACONSOLE_CLEAR - END -END - -DISASMCONTEXTMENUS MENU -BEGIN - POPUP "DisasmPopup" - BEGIN - MENUITEM "Copy\tCtrl+C", DISASM_CONTEXT_COPY - MENUITEM "Select All\tCtrl+A", DISASM_CONTEXT_SELECTALL - END -END - - ///////////////////////////////////////////////////////////////////////////// // // Dialog // +NAMEBOOKMARKDLGDEBUGGER DIALOGEX 0, 0, 268, 67 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Debugger Bookmark" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + LTEXT "&Address:",IDC_BOOKMARK_ADDRESS_TEXT,8,10,30,8 + EDITTEXT IDC_BOOKMARK_ADDRESS,41,7,48,14,ES_UPPERCASE | ES_AUTOHSCROLL + LTEXT "&Name:",IDC_BOOKMARK_NAME_TEXT,8,28,23,8 + EDITTEXT IDC_BOOKMARK_DESCRIPTION,41,26,220,14,ES_AUTOHSCROLL + DEFPUSHBUTTON "OK",IDOK,82,46,50,14 + PUSHBUTTON "Cancel",IDCANCEL,136,46,50,14 +END + DIRCONFIG DIALOGEX 63, 7, 305, 255 STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Directories Configuration" @@ -1497,7 +824,7 @@ BEGIN EDITTEXT IDC_DEBUGGER_INSTRUCTIONS_EXCEED,484,215,55,12,ES_UPPERCASE | ES_NOHIDESEL | ES_WANTRETURN | ES_NUMBER GROUPBOX "",IDC_STATIC,468,241,72,75 CONTROL "ROM offsets",IDC_DEBUGGER_ROM_OFFSETS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,249,62,10 - PUSHBUTTON "Name",IDC_DEBUGGER_BOOKMARK_NAME,431,288,30,14 + PUSHBUTTON "Edit",IDC_DEBUGGER_BOOKMARK_EDIT,431,288,30,14 EDITTEXT IDC_DEBUGGER_DISASSEMBLY_LEFT_PANEL,4,5,14,317,ES_MULTILINE | ES_AUTOHSCROLL | ES_READONLY | WS_DISABLED CONTROL "Register names",IDC_DEBUGGER_PREDEFINED_REGS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,272,65,10 CONTROL "IDA font",DEBUGIDAFONT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,506,319,38,13 @@ -1906,28 +1233,31 @@ BEGIN LISTBOX IDC_ASSEMBLER_PATCH_DISASM,7,50,188,59,LBS_SORT | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | LBS_NOSEL | WS_VSCROLL | WS_TABSTOP END -NAMEBOOKMARKDLG DIALOGEX 0, 0, 269, 79 +NAMEBOOKMARKDLGMEMVIEW DIALOGEX 0, 0, 348, 63 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Bookmark name" +CAPTION "Hex Editor Bookmark" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN LTEXT "&Address:",IDC_BOOKMARK_ADDRESS_TEXT,7,10,30,8 - EDITTEXT IDC_BOOKMARK_ADDRESS,42,7,48,14,ES_UPPERCASE | ES_AUTOHSCROLL | ES_READONLY - LTEXT "&Name:",IDC_BOOKMARK_NAME_TEXT,7,27,23,8 - EDITTEXT IDC_BOOKMARK_DESCRIPTION,42,25,220,14,ES_AUTOHSCROLL - DEFPUSHBUTTON "&OK",IDOK,107,58,50,14 - CONTROL "&Shortcut:",IDC_CHECK_SHORTCUT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,44,46,10 - LTEXT "Ctrl+",IDC_BOOKMARK_SHORTCUT_PREFIX_TEXT,54,45,17,8 - CONTROL "&1",IDC_RADIO_SHORTCUT0,"Button",BS_AUTORADIOBUTTON,73,44,18,10 - CONTROL "&2",IDC_RADIO_SHORTCUT1,"Button",BS_AUTORADIOBUTTON,92,44,18,10 - CONTROL "&3",IDC_RADIO_SHORTCUT2,"Button",BS_AUTORADIOBUTTON,111,44,18,10 - CONTROL "&4",IDC_RADIO_SHORTCUT3,"Button",BS_AUTORADIOBUTTON,130,44,18,10 - CONTROL "&5",IDC_RADIO_SHORTCUT4,"Button",BS_AUTORADIOBUTTON,149,44,18,10 - CONTROL "&6",IDC_RADIO_SHORTCUT5,"Button",BS_AUTORADIOBUTTON,168,44,18,10 - CONTROL "&7",IDC_RADIO_SHORTCUT6,"Button",BS_AUTORADIOBUTTON,187,44,18,10 - CONTROL "&8",IDC_RADIO_SHORTCUT7,"Button",BS_AUTORADIOBUTTON,206,44,18,10 - CONTROL "&9",IDC_RADIO_SHORTCUT8,"Button",BS_AUTORADIOBUTTON,225,44,18,10 - CONTROL "&0",IDC_RADIO_SHORTCUT9,"Button",BS_AUTORADIOBUTTON,244,44,18,10 + EDITTEXT IDC_BOOKMARK_ADDRESS,40,7,48,14,ES_UPPERCASE | ES_AUTOHSCROLL + LTEXT "&Name:",IDC_BOOKMARK_NAME_TEXT,96,10,23,8 + EDITTEXT IDC_BOOKMARK_DESCRIPTION,121,7,220,14,ES_AUTOHSCROLL + LTEXT "&View:",IDC_BOOKMARK_VIEW_TEXT,17,27,20,8 + COMBOBOX IDC_BOOKMARK_COMBO_VIEW,40,26,36,30,CBS_DROPDOWNLIST | CBS_SORT | WS_TABSTOP + CONTROL "&Shortcut:",IDC_CHECK_SHORTCUT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,85,27,46,10 + LTEXT "Ctrl+",IDC_BOOKMARK_SHORTCUT_PREFIX_TEXT,132,28,17,8 + CONTROL "&1",IDC_RADIO_SHORTCUT0,"Button",BS_AUTORADIOBUTTON,151,27,18,10 + CONTROL "&2",IDC_RADIO_SHORTCUT1,"Button",BS_AUTORADIOBUTTON,170,27,18,10 + CONTROL "&3",IDC_RADIO_SHORTCUT2,"Button",BS_AUTORADIOBUTTON,189,27,18,10 + CONTROL "&4",IDC_RADIO_SHORTCUT3,"Button",BS_AUTORADIOBUTTON,208,27,18,10 + CONTROL "&5",IDC_RADIO_SHORTCUT4,"Button",BS_AUTORADIOBUTTON,227,27,18,10 + CONTROL "&6",IDC_RADIO_SHORTCUT5,"Button",BS_AUTORADIOBUTTON,246,27,18,10 + CONTROL "&7",IDC_RADIO_SHORTCUT6,"Button",BS_AUTORADIOBUTTON,265,27,18,10 + CONTROL "&8",IDC_RADIO_SHORTCUT7,"Button",BS_AUTORADIOBUTTON,284,27,18,10 + CONTROL "&9",IDC_RADIO_SHORTCUT8,"Button",BS_AUTORADIOBUTTON,303,27,18,10 + CONTROL "&0",IDC_RADIO_SHORTCUT9,"Button",BS_AUTORADIOBUTTON,323,27,18,10 + DEFPUSHBUTTON "OK",IDOK,119,42,50,14 + PUSHBUTTON "Cancel",IDCANCEL,178,42,50,14 END CDLOGGER DIALOGEX 0, 0, 307, 254 @@ -2419,6 +1749,14 @@ END #ifdef APSTUDIO_INVOKED GUIDELINES DESIGNINFO BEGIN + "NAMEBOOKMARKDLGDEBUGGER", DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 261 + TOPMARGIN, 7 + BOTTOMMARGIN, 60 + END + "DIRCONFIG", DIALOG BEGIN LEFTMARGIN, 10 @@ -2605,12 +1943,12 @@ BEGIN BOTTOMMARGIN, 128 END - "NAMEBOOKMARKDLG", DIALOG + "NAMEBOOKMARKDLGMEMVIEW", DIALOG BEGIN LEFTMARGIN, 7 - RIGHTMARGIN, 262 + RIGHTMARGIN, 341 TOPMARGIN, 7 - BOTTOMMARGIN, 72 + BOTTOMMARGIN, 56 END "CDLOGGER", DIALOG @@ -2701,6 +2039,11 @@ END // AFX_DIALOG_LAYOUT // +NAMEBOOKMARKDLGDEBUGGER AFX_DIALOG_LAYOUT +BEGIN + 0 +END + NTVIEW AFX_DIALOG_LAYOUT BEGIN 0 @@ -2796,6 +2139,693 @@ BEGIN 0 END +NAMEBOOKMARKDLGMEMVIEW AFX_DIALOG_LAYOUT +BEGIN + 0 +END + + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""afxres.h""\r\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// 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 +// + +FCEUMENU MENU +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&Open...", MENU_OPEN_FILE + MENUITEM "&Close", MENU_CLOSE_FILE + MENUITEM "&Recent", MENU_RECENT_FILES + MENUITEM SEPARATOR + POPUP "&Savestate" + BEGIN + MENUITEM "&Load State", MENU_LOADSTATE + MENUITEM "&Save State", MENU_SAVESTATE + MENUITEM "Load State &From...", MENU_LOAD_STATE + MENUITEM "Save State &As...", MENU_SAVE_STATE + MENUITEM SEPARATOR + MENUITEM "&Next save slot", MENU_NEXTSAVESTATE + MENUITEM "&Previous save slot", MENU_PREVIOUSSAVESTATE + MENUITEM "&View save slots", MENU_VIEWSAVESLOTS + END + POPUP "&Movie" + BEGIN + MENUITEM "Recent", MENU_MOVIE_RECENT + MENUITEM "&Record Movie...", MENU_RECORD_MOVIE + MENUITEM "&Play Movie...", MENU_REPLAY_MOVIE + MENUITEM "&Stop Movie", MENU_STOP_MOVIE + MENUITEM "Play from &Beginning", ID_FILE_PLAYMOVIEFROMBEGINNING + MENUITEM "&Toggle Recording/Playing", ID_FILE_TOGGLE_RECORDING_MOVIE + POPUP "&Quickly Modify" + BEGIN + MENUITEM "&Insert 1 Frame", ID_FILE_INSERT_1_FRAME + MENUITEM "&Delete 1 Frame", ID_FILE_DELETE_1_FRAME + MENUITEM SEPARATOR + MENUITEM "&Truncate at Current Frame", ID_FILE_TRUNCATE_MOVIE + END + MENUITEM SEPARATOR + POPUP "Record &Mode" + BEGIN + MENUITEM "&Next Record Mode", ID_FILE_NEXTRECORDMODE + MENUITEM SEPARATOR + MENUITEM "&Truncate", ID_FILE_RECORDMODE_TRUNCATE + MENUITEM "&Overwrite[W]", ID_FILE_RECORDMODE_OVERWRITE + MENUITEM "&Insert[I]", ID_FILE_RECORDMODE_INSERT + END + MENUITEM "&Read-only", ID_FILE_MOVIE_TOGGLEREAD + END + POPUP "&AVI/Wav" + BEGIN + MENUITEM "&Record AVI...", MENU_RECORD_AVI + MENUITEM "&Stop AVI", MENU_STOP_AVI + MENUITEM "&Record WAV...", MENU_RECORD_WAV + MENUITEM "&Stop WAV", MENU_STOP_WAV + MENUITEM SEPARATOR + MENUITEM "Enable HUD recording", ID_AVI_ENABLEHUDRECORDING + MENUITEM "Disable messages recording", ID_AVI_DISMOVIEMESSAGE + END + POPUP "&Lua" + BEGIN + MENUITEM "&Recent", MENU_LUA_RECENT + MENUITEM "&New Lua Script Window...", ID_FILE_OPENLUAWINDOW + MENUITEM "&Close All Script Windows", ID_FILE_CLOSELUAWINDOWS + END + MENUITEM "&Screenshot", ID_FILE_SCREENSHOT + MENUITEM "Save Screenshot As...", ID_FILE_SAVESCREENSHOTAS + MENUITEM SEPARATOR + MENUITEM "E&xit\tAlt+F4", MENU_EXIT + END + POPUP "&NES" + BEGIN + MENUITEM "&Reset", MENU_RESET + MENUITEM "&Power", MENU_POWER + MENUITEM SEPARATOR + MENUITEM "&Eject/Insert Disk", MENU_EJECT_DISK + MENUITEM "&Switch Disk Side", MENU_SWITCH_DISK + MENUITEM "&Insert Coin", MENU_INSERT_COIN + MENUITEM "Input &Barcode", MENU_INPUT_BARCODE + MENUITEM SEPARATOR + POPUP "E&mulation Speed" + BEGIN + MENUITEM "&Pause", ID_NES_PAUSE + MENUITEM "&Turbo", ID_NES_TURBO + MENUITEM SEPARATOR + MENUITEM "Speed &Up", ID_NES_SPEEDUP + MENUITEM "Slow &Down", ID_NES_SLOWDOWN + MENUITEM "&Slowest Speed", ID_NES_SLOWESTSPEED + MENUITEM "&Normal Speed", ID_NES_NORMALSPEED + MENUITEM "Set &Custom Speed", ID_EMULATIONSPEED_CUSTOMSPEED + MENUITEM SEPARATOR + MENUITEM "Set FrameAdvance Delay", ID_EMULATIONSPEED_SETFRAMEADVANCEDELAY + MENUITEM "Set custom speed for FrameAdvance", ID_EMULATIONSPEED_SETCUSTOMSPEEDFORFRAMEADVANCE + END + END + POPUP "&Config" + BEGIN + MENUITEM "&Hide Menu", MENU_HIDE_MENU + POPUP "&Enable" + BEGIN + MENUITEM "&Run in Background", MENU_RUN_IN_BACKGROUND + MENUITEM "&Background Input", MENU_BACKGROUND_INPUT + MENUITEM "&Auto-savestates", MENU_ENABLE_AUTOSAVE + MENUITEM "&Frame Adv. - Skip Lag", MENU_DISPLAY_FA_LAGSKIP + MENUITEM "Backup Savestates", ID_ENABLE_BACKUPSAVESTATES + MENUITEM "Compress Savestates", ID_ENABLE_COMPRESSSAVESTATES + MENUITEM "&Game Genie ROM", MENU_GAME_GENIE + MENUITEM "Auto-resume old play session", ID_ENABLE_AUTORESUME + END + POPUP "&Display" + BEGIN + POPUP "&Input Display" + BEGIN + MENUITEM "&Off", MENU_INPUTDISPLAY_0 + MENUITEM "&1 player", MENU_INPUTDISPLAY_1 + MENUITEM "&2 player", MENU_INPUTDISPLAY_2 + MENUITEM "&4 player", MENU_INPUTDISPLAY_4 + MENUITEM SEPARATOR + MENUITEM "old style disp.", ID_INPUTDISPLAY_OLDSTYLEDISP + END + MENUITEM "&Lag Counter", MENU_DISPLAY_LAGCOUNTER + MENUITEM "&Frame Counter", ID_DISPLAY_FRAMECOUNTER + MENUITEM "&Rerecord Counter", ID_DISPLAY_RERECORDCOUNTER + MENUITEM "&Movie status icon", ID_DISPLAY_MOVIESTATUSICON + MENUITEM "FPS", ID_DISPLAY_FPS + MENUITEM SEPARATOR + MENUITEM "Graphics: &BG", MENU_DISPLAY_BG + MENUITEM "Graphics: &OBJ", MENU_DISPLAY_OBJ + END + MENUITEM SEPARATOR + POPUP "Region" + BEGIN + MENUITEM "NTSC", MENU_NTSC + MENUITEM "&PAL", MENU_PAL + MENUITEM "Dendy", MENU_DENDY + END + POPUP "PPU" + BEGIN + MENUITEM "Old PPU", ID_OLDPPU + MENUITEM "New PPU", ID_NEWPPU + END + POPUP "RAM Init" + BEGIN + MENUITEM "&Default", MENU_RAMINIT_DEFAULT + MENUITEM "Fill $&FF", MENU_RAMINIT_FF + MENUITEM "Fill $&00", MENU_RAMINIT_00 + MENUITEM "&Random", MENU_RAMINIT_RANDOM + END + MENUITEM SEPARATOR + MENUITEM "&Directories...", MENU_DIRECTORIES + MENUITEM "&GUI...", MENU_GUI_OPTIONS + MENUITEM "&Input...", MENU_INPUT + MENUITEM "&Network Play...", MENU_NETWORK + MENUITEM "&Palette...", MENU_PALETTE + MENUITEM "&Sound...", MENU_SOUND + MENUITEM "&Timing...", MENU_TIMING + MENUITEM "&Video...", MENU_VIDEO + MENUITEM "&Movie options...", MENU_MOVIEOPTIONS + MENUITEM "&Map Hotkeys...", MENU_HOTKEYS + MENUITEM SEPARATOR + MENUITEM "Save Config File", ID_CONFIG_SAVECONFIGFILE + END + POPUP "&Tools" + BEGIN + MENUITEM "&Cheats...", MENU_CHEATS + MENUITEM "RAM Search...", ID_RAM_SEARCH + MENUITEM "RAM Watch...", ID_RAM_WATCH + MENUITEM "&Memory Watch...", MENU_MEMORY_WATCH + MENUITEM "&TAS Editor...", MENU_TASEDITOR + MENUITEM "Convert &FCM...", MENU_CONVERT_MOVIE + MENUITEM SEPARATOR + POPUP "Autofire &Pattern" + BEGIN + MENUITEM "1 on, 1 off", MENU_AUTOFIRE_PATTERN_1 + MENUITEM "1 on, 2 off", MENU_AUTOFIRE_PATTERN_2 + MENUITEM "1 on, 3 off", MENU_AUTOFIRE_PATTERN_3 + MENUITEM "1 on, 4 off", MENU_AUTOFIRE_PATTERN_4 + MENUITEM "1 on, 5 off", MENU_AUTOFIRE_PATTERN_5 + MENUITEM "2 on, 1 off", MENU_AUTOFIRE_PATTERN_6 + MENUITEM "2 on, 2 off", MENU_AUTOFIRE_PATTERN_7 + MENUITEM "2 on, 3 off", MENU_AUTOFIRE_PATTERN_8 + MENUITEM "2 on, 4 off", MENU_AUTOFIRE_PATTERN_9 + MENUITEM "3 on, 1 off", MENU_AUTOFIRE_PATTERN_10 + MENUITEM "3 on, 2 off", MENU_AUTOFIRE_PATTERN_11 + MENUITEM "3 on, 3 off", MENU_AUTOFIRE_PATTERN_12 + MENUITEM "4 on, 1 off", MENU_AUTOFIRE_PATTERN_13 + MENUITEM "4 on, 2 off", MENU_AUTOFIRE_PATTERN_14 + MENUITEM "5 on, 1 off", MENU_AUTOFIRE_PATTERN_15 + END + POPUP "Autofire &Offset" + BEGIN + MENUITEM "0 frames", MENU_AUTOFIRE_OFFSET_1 + MENUITEM "1 frame", MENU_AUTOFIRE_OFFSET_2 + MENUITEM "2 frames", MENU_AUTOFIRE_OFFSET_3 + MENUITEM "3 frames", MENU_AUTOFIRE_OFFSET_4 + MENUITEM "4 frames", MENU_AUTOFIRE_OFFSET_5 + MENUITEM "5 frames", MENU_AUTOFIRE_OFFSET_6 + END + MENUITEM "&Alternate A and B", MENU_ALTERNATE_AB + MENUITEM SEPARATOR + MENUITEM "Te&xt Hooker...", ID_TOOLS_TEXTHOOKER + END + POPUP "&Debug" + BEGIN + MENUITEM "&Debugger...", MENU_DEBUGGER + MENUITEM "&PPU Viewer...", MENU_PPUVIEWER + MENUITEM "&Name Table Viewer...", MENU_NAMETABLEVIEWER + MENUITEM "&Hex Editor...", MENU_HEXEDITOR + MENUITEM "&Trace Logger...", MENU_TRACELOGGER + MENUITEM "&Code/Data Logger...", MENU_CDLOGGER + MENUITEM "&Game Genie Decoder/Encoder...", MENU_GAMEGENIEDECODER + MENUITEM "&iNES Header Editor...", MENU_INESHEADEREDITOR + END + POPUP "&Help" + BEGIN + MENUITEM "&Help...", MENU_HELP + MENUITEM "&Message Log", MENU_MSGLOG + MENUITEM SEPARATOR + MENUITEM "&About", MENU_ABOUT + END +END + +TASEDITORMENU MENUEX +BEGIN + POPUP "File", 65535,MFT_STRING,MFS_ENABLED + BEGIN + MENUITEM "New", ID_FILE_NEW,MFT_STRING,MFS_ENABLED + MENUITEM "Open", ID_FILE_OPENPROJECT,MFT_STRING,MFS_ENABLED + MENUITEM "Save\tCtrl+S", ID_FILE_SAVEPROJECT,MFT_STRING,MFS_ENABLED + MENUITEM "Save As", ID_FILE_SAVEPROJECTAS,MFT_STRING,MFS_ENABLED + MENUITEM "Save Compact", ID_FILE_SAVECOMPACT,MFT_STRING,MFS_ENABLED + MENUITEM "Recent", ID_FILE_RECENT,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Import Input", ID_FILE_IMPORT,MFT_STRING,MFS_ENABLED + MENUITEM "Export to FM2", ID_FILE_EXPORTFM2,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Close\tAlt+F4", ID_FILE_CLOSE,MFT_STRING,MFS_ENABLED + END + POPUP "Edit", 65535,MFT_STRING,MFS_ENABLED + BEGIN + MENUITEM "Undo\tCtrl+Z", ID_EDIT_UNDO,MFT_STRING,MFS_ENABLED + MENUITEM "Redo\tCtrl+Y", ID_EDIT_REDO,MFT_STRING,MFS_ENABLED + MENUITEM "Selection Undo\tCtrl+Q", ID_EDIT_SELECTIONUNDO,MFT_STRING,MFS_ENABLED + MENUITEM "Selection Redo\tCtrl+W", ID_EDIT_SELECTIONREDO,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Deselect", ID_EDIT_DESELECT,MFT_STRING,MFS_ENABLED + MENUITEM "Select All", ID_EDIT_SELECTALL,MFT_STRING,MFS_ENABLED + MENUITEM "Select between Markers\tCtrl+A", ID_EDIT_SELECTMIDMARKERS,MFT_STRING,MFS_ENABLED + MENUITEM "Reselect Clipboard\tCtrl+B", ID_EDIT_RESELECTCLIPBOARD,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Copy\tCtrl+C", ID_EDIT_COPY,MFT_STRING,MFS_ENABLED + MENUITEM "Paste\tCtrl+V", ID_EDIT_PASTE,MFT_STRING,MFS_ENABLED + MENUITEM "PasteInsert\tCtrl+Shift+V", ID_EDIT_PASTEINSERT,MFT_STRING,MFS_ENABLED + MENUITEM "Cut\tCtrl+X", ID_EDIT_CUT,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Clear\tDel", ID_EDIT_CLEAR,MFT_STRING,MFS_ENABLED + MENUITEM "Delete\tCtrl+Del", ID_EDIT_DELETE,MFT_STRING,MFS_ENABLED + MENUITEM "Clone\tCtrl+Ins", ID_EDIT_CLONEFRAMES,MFT_STRING,MFS_ENABLED + MENUITEM "Insert\tCtrl+Shift+Ins", ID_EDIT_INSERTFRAMES,MFT_STRING,MFS_ENABLED + MENUITEM "Insert # of Frames\tIns", ID_EDIT_INSERT,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Truncate movie", ID_EDIT_TRUNCATE,MFT_STRING,MFS_ENABLED + END + POPUP "View", 65535,MFT_STRING,MFS_ENABLED + BEGIN + MENUITEM "Find Note window\tCtrl+F", ID_VIEW_FINDNOTE,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Display Branch Screenshots", ID_VIEW_SHOWBRANCHSCREENSHOTS,MFT_STRING,MFS_ENABLED + MENUITEM "Display Branch Descriptions", ID_VIEW_SHOWBRANCHTOOLTIPS,MFT_STRING,MFS_ENABLED + MENUITEM "Enable Hot Changes", ID_VIEW_ENABLEHOTCHANGES,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Follow Undo context", ID_VIEW_JUMPWHENMAKINGUNDO,MFT_STRING,MFS_ENABLED + MENUITEM "Follow Marker Note context", ID_VIEW_FOLLOWMARKERNOTECONTEXT,MFT_STRING,MFS_ENABLED + END + POPUP "Config", 65535,MFT_STRING,MFS_ENABLED + BEGIN + MENUITEM "Project file saving options", ID_CONFIG_SAVING_OPTIONS,MFT_STRING,MFS_ENABLED + MENUITEM "Set max Undo levels", ID_CONFIG_SETMAXUNDOLEVELS,MFT_STRING,MFS_ENABLED + MENUITEM "Set Greenzone capacity", ID_CONFIG_SETGREENZONECAPACITY,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Enable Greenzoning", ID_CONFIG_ENABLEGREENZONING,MFT_STRING,MFS_ENABLED + MENUITEM "Autofire Pattern skips Lag", ID_CONFIG_PATTERNSKIPSLAG,MFT_STRING,MFS_ENABLED + MENUITEM "Auto-adjust Input according to Lag", ID_CONFIG_ADJUSTLAG,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Draw Input by dragging", ID_CONFIG_DRAWINPUTBYDRAGGING,MFT_STRING,MFS_ENABLED + MENUITEM "Combine consecutive Recordings/Draws", ID_CONFIG_COMBINECONSECUTIVERECORDINGS,MFT_STRING,MFS_ENABLED + MENUITEM "Use 1P keys for all single Recordings", ID_CONFIG_USE1PFORRECORDING,MFT_STRING,MFS_ENABLED + MENUITEM "Use Input keys for Column Set", ID_CONFIG_USEINPUTKEYSFORCOLUMNSET,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Bind Markers to Input", ID_CONFIG_BINDMARKERSTOINPUT,MFT_STRING,MFS_ENABLED + MENUITEM "Empty new Marker Notes", ID_CONFIG_EMPTYNEWMARKERNOTES,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Old control scheme for Branching", ID_CONFIG_OLDBRANCHINGCONTROLS,MFT_STRING,MFS_ENABLED + MENUITEM "Branches restore entire Movie", ID_CONFIG_BRANCHESRESTOREFULLMOVIE,MFT_STRING,MFS_ENABLED + MENUITEM "HUD in Branch screenshots", ID_CONFIG_HUDINBRANCHSCREENSHOTS,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Autopause at the end of Movie", ID_CONFIG_AUTOPAUSEATTHEENDOFMOVIE,MFT_STRING,MFS_ENABLED + END + POPUP "Help", 65535,MFT_STRING,MFS_ENABLED + BEGIN + MENUITEM "Open TAS Editor Manual", ID_HELP_OPEN_MANUAL,MFT_STRING,MFS_ENABLED + MENUITEM "Enable Tooltips", ID_HELP_TOOLTIPS,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "About", ID_HELP_ABOUT,MFT_STRING,MFS_ENABLED + END + POPUP "Pattern", 65535,MFT_STRING | MFT_RIGHTJUSTIFY,MFS_ENABLED + BEGIN + MENUITEM "Dummy", ID_PATTERN_TEST,MFT_STRING,MFS_ENABLED + END +END + +MEMVIEWMENU MENU +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&Save Rom", MENU_MV_FILE_SAVE + MENUITEM "S&ave Rom As...", MENU_MV_FILE_SAVE_AS + MENUITEM "&Load *.TBL File", MENU_MV_FILE_LOAD_TBL + MENUITEM "&Unload *.TBL file", MENU_MV_FILE_UNLOAD_TBL + POPUP "&Dump to file" + BEGIN + MENUITEM "&Ram", MENU_MV_FILE_DUMP_RAM + MENUITEM "&PPU Memory", MENU_MV_FILE_DUMP_PPU + MENUITEM "&OAM Memory", MENU_MV_FILE_DUMP_OAM + MENUITEM "6502 64K", MENU_MV_FILE_DUMP_64K + END + POPUP "Load from &file" + BEGIN + MENUITEM "&Ram", MENU_MV_FILE_LOAD_RAM + MENUITEM "&PPU Memory", MENU_MV_FILE_LOAD_PPU + MENUITEM "&OAM Memory", MENU_MV_FILE_LOAD_OAM + END + MENUITEM "&Goto Address\tCtrl+A", MENU_MV_FILE_GOTO_ADDRESS + MENUITEM SEPARATOR + MENUITEM "&Close\tAlt+F4", ID_MEMWVIEW_FILE_CLOSE + END + POPUP "&Edit" + BEGIN + MENUITEM "&Undo\tCtrl+Z", MENU_MV_EDIT_UNDO + MENUITEM SEPARATOR + MENUITEM "&Copy", MENU_MV_EDIT_COPY + MENUITEM "&Paste", MENU_MV_EDIT_PASTE + MENUITEM SEPARATOR + MENUITEM "&Find...", MENU_MV_EDIT_FIND + END + POPUP "&View" + BEGIN + MENUITEM "&NES Memory", MENU_MV_VIEW_RAM + MENUITEM "&PPU Memory", MENU_MV_VIEW_PPU + MENUITEM "&OAM Memory", MENU_MV_VIEW_OAM + MENUITEM "&ROM File", MENU_MV_VIEW_ROM + END + POPUP "Highlighting" + BEGIN + MENUITEM "Highlight Activity", ID_HIGHLIGHTING_HIGHLIGHT_ACTIVITY + MENUITEM "Set fading period...", ID_HIGHLIGHTING_SETFADINGPERIOD + MENUITEM "Fade when paused", ID_HIGHLIGHTING_FADEWHENPAUSED + END + POPUP "&Bookmarks" + BEGIN + MENUITEM "&Remove all bookmarks", MENU_MV_BOOKMARKS_RM_ALL + END + POPUP "Help" + BEGIN + MENUITEM "&Help...", MENU_MV_HELP + END +END + +MEMWATCHMENU MENU +BEGIN + POPUP "&File " + BEGIN + MENUITEM "&New...\tCtrl+N", MEMW_FILE_NEW + MENUITEM "&Open...\tCtrl+O", MEMW_FILE_OPEN + MENUITEM "&Save\tCtrl+S", MEMW_FILE_SAVE + MENUITEM "S&ave As..\tCtrl+Shift+S", MEMW_FILE_SAVEAS + MENUITEM "&Recent", ID_FILE_RECENT + MENUITEM SEPARATOR + MENUITEM "&Close\tAlt+F4", MEMW_FILE_CLOSE + END + POPUP "&Options" + BEGIN + MENUITEM "&Load on Startup", MEMW_OPTIONS_LOADSTART + MENUITEM "Load Last &File on Startup", MEMW_OPTIONS_LOADLASTFILE + MENUITEM SEPARATOR + MENUITEM "&Collapse to 1 column", MEMW_OPTIONS_EXPANDCOLLAPSE + MENUITEM SEPARATOR + MENUITEM "Bind to Main Window", ID_OPTIONS_BINDTOMAINWINDOW + END + POPUP "&Help" + BEGIN + MENUITEM "&MemWatch Commands", MEMW_HELP_WCOMMANDS + END +END + +TASEDITORCONTEXTMENUS MENU +BEGIN + POPUP "Selected" + BEGIN + MENUITEM "Set Markers\tDbl-Clk", ID_SELECTED_SETMARKERS + MENUITEM "Remove Markers", ID_SELECTED_REMOVEMARKERS + MENUITEM SEPARATOR + MENUITEM "Deselect", ID_SELECTED_DESELECT + MENUITEM "Select between Markers\tCtrl+A", ID_SELECTED_SELECTMIDMARKERS + MENUITEM SEPARATOR + MENUITEM "Ungreenzone", ID_SELECTED_UNGREENZONE + MENUITEM SEPARATOR + MENUITEM "Clear\tDel", ID_CONTEXT_SELECTED_CLEARFRAMES + MENUITEM "Delete\tCtrl+Del", ID_CONTEXT_SELECTED_DELETEFRAMES + MENUITEM "Clone\tCtrl+Ins", ID_SELECTED_CLONE + MENUITEM "Insert\tCtrl+Shift+Ins", ID_CONTEXT_SELECTED_INSERTFRAMES + MENUITEM "Insert # of Frames\tIns", ID_CONTEXT_SELECTED_INSERTFRAMES2 + MENUITEM SEPARATOR + MENUITEM "Truncate movie", ID_CONTEXT_SELECTED_TRUNCATE + END +END + +FCEUCONTEXTMENUS MENU +BEGIN + POPUP "NoGame" + BEGIN + MENUITEM "Open ROM", FCEU_CONTEXT_OPENROM + MENUITEM "Last ROM used", FCEUX_CONTEXT_RECENTROM1 + MENUITEM SEPARATOR + MENUITEM "Help...", FCEU_CONTEXT_FCEUHELP + MENUITEM SEPARATOR + MENUITEM "Use Config > Gui to get zapper right click", FCEUX_CONTEXT_GUICONFIG + END + POPUP "Game+NoMovie" + BEGIN + MENUITEM "Play Movie...", FCEUX_CONTEXT_REPLAYMOVIE + MENUITEM "Record Movie...", FCEUX_CONTEXT_RECORDMOVIE + MENUITEM "Load Last Movie", FCEUX_CONTEXT_LOADLASTMOVIE + MENUITEM SEPARATOR + MENUITEM "Undo savestate", FCEUX_CONTEXT_UNDOSAVESTATE + MENUITEM "Undo loadstate", FCEUX_CONTEXT_UNDOLOADSTATE + MENUITEM "Rewind to last auto-save", FCEUX_CONTEXT_REWINDTOLASTAUTO + MENUITEM "Screenshot", FCEUX_CONTEXT_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "Close ROM", FCEU_CONTEXT_CLOSEROM + MENUITEM SEPARATOR + MENUITEM "Use Config > Gui to get zapper right click", FCEUX_CONTEXT_GUICONFIG + END + POPUP "Game+Movie+Playing+readonly" + BEGIN + MENUITEM "Toggle to read+write", FCEUX_CONTEXT_READONLYTOGGLE + MENUITEM "Play Movie from Beginning", FCEU_CONTEXT_PLAYMOVIEFROMBEGINNING + MENUITEM "Stop Movie Replay", FCEU_CONTEXT_STOPMOVIE + MENUITEM "View comments and subtitles", FCEUX_CONTEXT_VIEWCOMMENTSSUBTITLES + MENUITEM SEPARATOR + MENUITEM "Toggle to Recording", FCEUX_CONTEXT_TOGGLE_RECORDING + POPUP "Modify Movie" + BEGIN + MENUITEM "Insert 1 Frame", FCEUX_CONTEXT_INSERT_1_FRAME + MENUITEM "Delete 1 Frame", FCEUX_CONTEXT_DELETE_1_FRAME + MENUITEM SEPARATOR + MENUITEM "Truncate at Current Frame", FCEUX_CONTEXT_TRUNCATE_MOVIE + END + POPUP "Record Mode" + BEGIN + MENUITEM "&Truncate", FCEUX_CONTEXT_RECORDMODE_TRUNCATE + MENUITEM "&Overwrite[W]", FCEUX_CONTEXT_RECORDMODE_OVERWRITE + MENUITEM "&Insert[I]", FCEUX_CONTEXT_RECORDMODE_INSERT + END + MENUITEM SEPARATOR + MENUITEM "Undo savestate", FCEUX_CONTEXT_UNDOSAVESTATE + MENUITEM "Rewind to last auto-save", FCEUX_CONTEXT_REWINDTOLASTAUTO + MENUITEM SEPARATOR + MENUITEM "Help....", FCEU_CONTEXT_MOVIEHELP + MENUITEM SEPARATOR + MENUITEM "Use Config > Gui to get zapper right click", FCEUX_CONTEXT_GUICONFIG + END + POPUP "Game+Movie+Playing+readwrite" + BEGIN + MENUITEM "Toggle to Read-only", FCEUX_CONTEXT_READONLYTOGGLE + MENUITEM "Play Movie From Beginning", FCEU_CONTEXT_PLAYMOVIEFROMBEGINNING + MENUITEM "Stop Movie Replay", FCEU_CONTEXT_STOPMOVIE + MENUITEM "View comments and subtitles", FCEUX_CONTEXT_VIEWCOMMENTSSUBTITLES + MENUITEM "Make backup", FCEUX_CONTEXT_MAKEBACKUP + MENUITEM "Save Movie As...", FCEUX_CONTEXT_SAVEMOVIEAS + MENUITEM SEPARATOR + MENUITEM "Toggle to Recording", FCEUX_CONTEXT_TOGGLE_RECORDING + POPUP "Modify Movie" + BEGIN + MENUITEM "Insert 1 Frame", FCEUX_CONTEXT_INSERT_1_FRAME + MENUITEM "Delete 1 Frame", FCEUX_CONTEXT_DELETE_1_FRAME + MENUITEM SEPARATOR + MENUITEM "Truncate at Current Frame", FCEUX_CONTEXT_TRUNCATE_MOVIE + END + POPUP "Record Mode" + BEGIN + MENUITEM "&Truncate", FCEUX_CONTEXT_RECORDMODE_TRUNCATE + MENUITEM "&Overwrite[W]", FCEUX_CONTEXT_RECORDMODE_OVERWRITE + MENUITEM "&Insert[I]", FCEUX_CONTEXT_RECORDMODE_INSERT + END + MENUITEM SEPARATOR + MENUITEM "Undo savestate", FCEUX_CONTEXT_UNDOSAVESTATE + MENUITEM "Undo loadstate", FCEUX_CONTEXT_UNDOLOADSTATE + MENUITEM "Rewind to last auto-save", FCEUX_CONTEXT_REWINDTOLASTAUTO + MENUITEM SEPARATOR + MENUITEM "&Mode: Full state-movie loads", ID_CONTEXT_FULLSAVESTATES + MENUITEM SEPARATOR + MENUITEM "Help...", FCEU_CONTEXT_MOVIEHELP + MENUITEM SEPARATOR + MENUITEM "Use Config > Gui to get zapper right click", FCEUX_CONTEXT_GUICONFIG + END + POPUP "Game+Movie+Recording+readonly" + BEGIN + MENUITEM "Toggle to read+write", FCEUX_CONTEXT_READONLYTOGGLE + MENUITEM "Play Movie from Beginning", FCEU_CONTEXT_PLAYMOVIEFROMBEGINNING + MENUITEM "Stop Movie Recording", FCEU_CONTEXT_STOPMOVIE + MENUITEM "View comments and subtitles", FCEUX_CONTEXT_VIEWCOMMENTSSUBTITLES + MENUITEM SEPARATOR + MENUITEM "Toggle to Playing", FCEUX_CONTEXT_TOGGLE_RECORDING + POPUP "Modify Movie" + BEGIN + MENUITEM "Insert 1 Frame", FCEUX_CONTEXT_INSERT_1_FRAME + MENUITEM "Delete 1 Frame", FCEUX_CONTEXT_DELETE_1_FRAME + MENUITEM SEPARATOR + MENUITEM "Truncate at Current Frame", FCEUX_CONTEXT_TRUNCATE_MOVIE + END + POPUP "Record Mode" + BEGIN + MENUITEM "&Truncate", FCEUX_CONTEXT_RECORDMODE_TRUNCATE + MENUITEM "&Overwrite[W]", FCEUX_CONTEXT_RECORDMODE_OVERWRITE + MENUITEM "&Insert[I]", FCEUX_CONTEXT_RECORDMODE_INSERT + END + MENUITEM SEPARATOR + MENUITEM "Undo savestate", FCEUX_CONTEXT_UNDOSAVESTATE + MENUITEM "Rewind to last auto-save", FCEUX_CONTEXT_REWINDTOLASTAUTO + MENUITEM SEPARATOR + MENUITEM "Help....", FCEU_CONTEXT_MOVIEHELP + MENUITEM SEPARATOR + MENUITEM "Use Config > Gui to get zapper right click", FCEUX_CONTEXT_GUICONFIG + END + POPUP "Game+Movie+Recording+readwrite" + BEGIN + MENUITEM "Toggle to Read-only", FCEUX_CONTEXT_READONLYTOGGLE + MENUITEM "Play Movie From Beginning", FCEU_CONTEXT_PLAYMOVIEFROMBEGINNING + MENUITEM "Stop Movie Recording", FCEU_CONTEXT_STOPMOVIE + MENUITEM "View comments and subtitles", FCEUX_CONTEXT_VIEWCOMMENTSSUBTITLES + MENUITEM "Make backup", FCEUX_CONTEXT_MAKEBACKUP + MENUITEM "Save Movie As...", FCEUX_CONTEXT_SAVEMOVIEAS + MENUITEM SEPARATOR + MENUITEM "Toggle to Playing", FCEUX_CONTEXT_TOGGLE_RECORDING + POPUP "Modify Movie" + BEGIN + MENUITEM "Insert 1 Frame", FCEUX_CONTEXT_INSERT_1_FRAME + MENUITEM "Delete 1 Frame", FCEUX_CONTEXT_DELETE_1_FRAME + MENUITEM SEPARATOR + MENUITEM "Truncate at Current Frame", FCEUX_CONTEXT_TRUNCATE_MOVIE + END + POPUP "Record Mode" + BEGIN + MENUITEM "&Truncate", FCEUX_CONTEXT_RECORDMODE_TRUNCATE + MENUITEM "&Overwrite[W]", FCEUX_CONTEXT_RECORDMODE_OVERWRITE + MENUITEM "&Insert[I]", FCEUX_CONTEXT_RECORDMODE_INSERT + END + MENUITEM SEPARATOR + MENUITEM "Undo savestate", FCEUX_CONTEXT_UNDOSAVESTATE + MENUITEM "Undo loadstate", FCEUX_CONTEXT_UNDOLOADSTATE + MENUITEM "Rewind to last auto-save", FCEUX_CONTEXT_REWINDTOLASTAUTO + MENUITEM SEPARATOR + MENUITEM "&Mode: Full state-movie loads", ID_CONTEXT_FULLSAVESTATES + MENUITEM SEPARATOR + MENUITEM "Help...", FCEU_CONTEXT_MOVIEHELP + MENUITEM SEPARATOR + MENUITEM "Use Config > Gui to get zapper right click", FCEUX_CONTEXT_GUICONFIG + END +END + +RAMWATCH_MENU MENU +BEGIN + POPUP "File" + BEGIN + MENUITEM "&New list\tCtrl N", RAMMENU_FILE_NEW + MENUITEM "&Open...\tCtrl O", RAMMENU_FILE_OPEN + MENUITEM "&Save\tCtrl S", RAMMENU_FILE_SAVE + MENUITEM "Sa&ve As...\tCtrl Shift S", RAMMENU_FILE_SAVEAS + MENUITEM "&Append file...", RAMMENU_FILE_APPEND + MENUITEM "Recent", RAMMENU_FILE_RECENT + MENUITEM SEPARATOR + MENUITEM "Auto-&load", RAMMENU_FILE_AUTOLOAD + MENUITEM "Save Window Position", RAMMENU_FILE_SAVEWINDOW + MENUITEM SEPARATOR + MENUITEM "&Close\tAlt F4", IDCANCEL + END + POPUP "Watches" + BEGIN + MENUITEM "&New Watch\tN", IDC_C_WATCH + MENUITEM "&Edit Watch\tE", IDC_C_WATCH_EDIT + MENUITEM "&Remove Watch\tR", IDC_C_WATCH_REMOVE + MENUITEM "Duplicate Watch\tA", IDC_C_WATCH_DUPLICATE + MENUITEM "Add &Separator\tS", IDC_C_WATCH_SEPARATE + MENUITEM SEPARATOR + MENUITEM "Move Up\tU", IDC_C_WATCH_UP + MENUITEM "Move Down\tD", IDC_C_WATCH_DOWN + END +END + +CHEATCONTEXTMENUS MENU +BEGIN + POPUP "CheatListPopup" + BEGIN + MENUITEM "Toggle selected Cheats", CHEAT_CONTEXT_LIST_TOGGLECHEAT + MENUITEM "Poke Cheat Value", CHEAT_CONTEXT_LIST_POKECHEATVALUE + MENUITEM "Goto in Hex Editor", CHEAT_CONTEXT_LIST_GOTOINHEXEDITOR + MENUITEM "Delete selected Cheats", CHEAT_CONTEXT_LIST_DELETESELECTEDCHEATS + END + POPUP "CheatPossiPopup" + BEGIN + MENUITEM "Add to Memory Watch", CHEAT_CONTEXT_POSSI_ADDTOMEMORYWATCH + MENUITEM "Add cheat", CHEAT_CONTEXT_POSSI_ADDCHEAT + MENUITEM "Add to RAM Watch", CHEAT_CONTEXT_POSSI_ADDTORAMWATCH + MENUITEM "Go to in Hex Editor", CHEAT_CONTEXT_POSSI_GOTOINHEXEDITOR + END +END + +DEBUGCONTEXTMENUS MENU +BEGIN + POPUP "DebugListPopup" + BEGIN + MENUITEM "Toggle Breakpoint\tDbl-Clk", DEBUGGER_CONTEXT_TOGGLEBREAK + END +END + +LUAWINDOW_MENU MENU +BEGIN + POPUP "Console" + BEGIN + MENUITEM "&Font...", IDC_LUACONSOLE_CHOOSEFONT + MENUITEM "Clear", IDC_LUACONSOLE_CLEAR + END +END + +DISASMCONTEXTMENUS MENU +BEGIN + POPUP "DisasmPopup" + BEGIN + MENUITEM "Copy\tCtrl+C", DISASM_CONTEXT_COPY + MENUITEM "Select All\tCtrl+A", DISASM_CONTEXT_SELECTALL + END +END + ///////////////////////////////////////////////////////////////////////////// // @@ -2864,213 +2894,109 @@ 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 ///////////////////////////////////////////////////////////////////////////// diff --git a/src/drivers/win/resource.h b/src/drivers/win/resource.h index 57fbea09..4a960f12 100644 --- a/src/drivers/win/resource.h +++ b/src/drivers/win/resource.h @@ -161,7 +161,7 @@ #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 IDC_DEBUGGER_BOOKMARK_EDIT 118 #define CHEAT_CONTEXT_LIST_GOTOINHEXEDITOR 119 #define IDC_DEBUGGER_BREAK_ON_INSTRUCTIONS 119 #define IDC_CHECK_LOG_FRAMES_COUNT 119 @@ -641,6 +641,8 @@ #define IDC_RADIO_SHORTCUT8 1107 #define IDC_RADIO_SHORTCUT9 1108 #define IDC_RADIO_SHORTCUT0 1109 +#define IDC_BOOKMARK_VIEW_TEXT 1110 +#define IDC_BOOKMARK_COMBO_VIEW 1112 #define BTN_ALLOW_LRUD 1117 #define IDC_PRGROM_EDIT 1118 #define IDC_CHRROM_EDIT 1119 @@ -1163,9 +1165,9 @@ // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 306 +#define _APS_NEXT_RESOURCE_VALUE 309 #define _APS_NEXT_COMMAND_VALUE 40005 -#define _APS_NEXT_CONTROL_VALUE 1101 +#define _APS_NEXT_CONTROL_VALUE 1112 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif diff --git a/src/drivers/win/window.cpp b/src/drivers/win/window.cpp index 27fbb095..30497bdc 100644 --- a/src/drivers/win/window.cpp +++ b/src/drivers/win/window.cpp @@ -3374,7 +3374,6 @@ bool inline (*GetIsLetterLegal(UINT id))(char letter) 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