From 85c77109c0a79fd73209861027dbdd37c1b9f1ad Mon Sep 17 00:00:00 2001 From: owomomo Date: Tue, 2 Apr 2019 23:11:46 +0800 Subject: [PATCH 1/5] 1. Use different background color for addresses affected by cheats in RAM Search. 2. Fix nothing was checked in the View menu when Hex Editor first launch. 3. Fix when Hex Editor is open, disabling all cheats in replay doesn't refresh the freezed addresses. --- src/drivers/win/cheat.cpp | 33 ++++++++++++++------------------- src/drivers/win/memview.cpp | 2 +- src/drivers/win/ram_search.cpp | 30 ++++++++++++++++++++---------- src/drivers/win/replay.cpp | 5 +++++ 4 files changed, 40 insertions(+), 30 deletions(-) diff --git a/src/drivers/win/cheat.cpp b/src/drivers/win/cheat.cpp index ef60cc3f..95d83390 100644 --- a/src/drivers/win/cheat.cpp +++ b/src/drivers/win/cheat.cpp @@ -1031,27 +1031,22 @@ CPoint test = point; void DisableAllCheats() { - if(!FCEU_DisableAllCheats() || !hCheat){ - return; - } - int selcheattemp = SendDlgItemMessage(hCheat, IDC_LIST_CHEATS, LB_GETCOUNT, 0, 0) - 1; - LRESULT sel; char str[259]; - while(selcheattemp >= 0) - { - SendDlgItemMessage(hCheat,IDC_LIST_CHEATS,LB_GETTEXT,selcheattemp, (LPARAM)(LPCTSTR)str); - if(str[0] == '*') + if(FCEU_DisableAllCheats() && hCheat){ + LRESULT sel; char str[259]; + for (int tempSelCheat = SendDlgItemMessage(hCheat, IDC_LIST_CHEATS, LB_GETCOUNT, 0, 0) - 1; tempSelCheat >= 0; --tempSelCheat) { - sel = SendDlgItemMessage(hCheat,IDC_LIST_CHEATS,LB_GETSEL,selcheattemp,0); - str[0] = ' '; - SendDlgItemMessage(hCheat,IDC_LIST_CHEATS,LB_DELETESTRING,selcheattemp,0); - SendDlgItemMessage(hCheat,IDC_LIST_CHEATS,LB_INSERTSTRING,selcheattemp, (LPARAM)(LPSTR)str); - if(sel) + SendDlgItemMessage(hCheat, IDC_LIST_CHEATS, LB_GETTEXT, tempSelCheat, (LPARAM)(LPCTSTR)str); + if (str[0] == '*') { - SendDlgItemMessage(hCheat,IDC_LIST_CHEATS,LB_SETSEL,1,selcheattemp); + str[0] = ' '; + sel = SendDlgItemMessage(hCheat, IDC_LIST_CHEATS, LB_GETSEL, tempSelCheat, 0); + SendDlgItemMessage(hCheat, IDC_LIST_CHEATS, LB_DELETESTRING, tempSelCheat, 0); + SendDlgItemMessage(hCheat, IDC_LIST_CHEATS, LB_INSERTSTRING, tempSelCheat, (LPARAM)(LPSTR)str); + if (sel) + SendDlgItemMessage(hCheat, IDC_LIST_CHEATS, LB_SETSEL, 1, tempSelCheat); } } - selcheattemp--; - } - sprintf(str, "Active Cheats %d", 0); - SetDlgItemText(hCheat, 201, str); + sprintf(str, "Active Cheats %d", 0); + SetDlgItemText(hCheat, 201, str); + } } \ No newline at end of file diff --git a/src/drivers/win/memview.cpp b/src/drivers/win/memview.cpp index 6f46e452..a6c2cc0a 100644 --- a/src/drivers/win/memview.cpp +++ b/src/drivers/win/memview.cpp @@ -1263,7 +1263,7 @@ LRESULT CALLBACK MemViewCallB(HWND hwnd, UINT message, WPARAM wParam, LPARAM lPa // update menus 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); + CheckMenuRadioItem(GetMenu(hwnd), MENU_MV_VIEW_RAM, MENU_MV_VIEW_ROM, MENU_MV_VIEW_RAM, MF_BYCOMMAND); break; } CheckMenuItem(GetMenu(hwnd), ID_HIGHLIGHTING_HIGHLIGHT_ACTIVITY, (MemView_HighlightActivity) ? MF_CHECKED: MF_UNCHECKED); diff --git a/src/drivers/win/ram_search.cpp b/src/drivers/win/ram_search.cpp index b7c73a85..5e3e9a19 100644 --- a/src/drivers/win/ram_search.cpp +++ b/src/drivers/win/ram_search.cpp @@ -85,7 +85,7 @@ struct MemoryRegion unsigned int virtualIndex; // index into s_prevValues, s_curValues, and s_numChanges, valid after being initialized in ResetMemoryRegions() unsigned int itemIndex; // index into listbox items, valid when s_itemIndicesInvalid is false - unsigned int cheatAffect; // how many bytes affected by the cheats. 0 indicates for free, max value is the size. + unsigned int cheatCount; // how many bytes affected by the cheats. 0 indicates for free, max value is the size. }; int MAX_RAM_SIZE = 0; @@ -423,10 +423,10 @@ void ItemIndexToVirtualRegion(unsigned int itemIndex, MemoryRegion& virtualRegio virtualRegion.virtualIndex = region->virtualIndex + bytesWithinRegion; virtualRegion.itemIndex = itemIndex; - virtualRegion.cheatAffect = 0; - for (int i = 0; i < numsubcheats; ++i) + virtualRegion.cheatCount = 0; + for (int i = 0; i < numsubcheats && virtualRegion.cheatCount <= virtualRegion.size; ++i) if (SubCheats[i].addr >= virtualRegion.hardwareAddress && SubCheats[i].addr < virtualRegion.hardwareAddress + virtualRegion.size) - ++virtualRegion.cheatAffect; + ++virtualRegion.cheatCount; } template @@ -494,11 +494,11 @@ unsigned int GetHardwareAddressFromItemIndex(unsigned int itemIndex) return virtualRegion.hardwareAddress; } template -unsigned int GetCheatStatusFromItemIndex(unsigned int itemIndex) +unsigned int GetNumCheatsFromIndex(unsigned int itemIndex) { MemoryRegion virtualRegion; ItemIndexToVirtualRegion(itemIndex, virtualRegion); - return virtualRegion.cheatAffect; + return virtualRegion.cheatCount; } // this one might be unreliable, haven't used it much @@ -1270,7 +1270,17 @@ LRESULT CustomDraw (LPARAM lParam) { int rv = CDRF_DODEFAULT; - if(lplvcd->nmcd.dwItemSpec % 2) + if (int cheat = CALL_WITH_T_SIZE_TYPES_1(GetNumCheatsFromIndex, rs_type_size, rs_t == 's', noMisalign, lplvcd->nmcd.dwItemSpec)) + { + switch (cheat) { + case 1: lplvcd->clrTextBk = RGB(216, 203, 253); break; + case 2: lplvcd->clrTextBk = RGB(195, 186, 253); break; + case 3: lplvcd->clrTextBk = RGB(176, 139, 252); break; + case 4: lplvcd->clrTextBk = RGB(175, 94, 253); break; + } + rv = CDRF_NEWFONT; + } + else if(lplvcd->nmcd.dwItemSpec % 2) { // alternate the background color slightly lplvcd->clrTextBk = RGB(248,248,255); @@ -1518,8 +1528,8 @@ LRESULT CALLBACK RamSearchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPara SendDlgItemMessage(hDlg,IDC_C_SEARCHROM,BM_SETCHECK,ShowROM?BST_CHECKED:BST_UNCHECKED,0); //const char* names[5] = {"Address","Value","Previous","Changes","Notes"}; //int widths[5] = {62,64,64,55,55}; - const char* names[5] = {"Addr.","Value","Previous","Changes","Cheats"}; - int widths[5] = {48,80,80,66,52}; + const char* names[5] = {"Addr.","Value","Previous","Changes"}; + int widths[5] = {68,76,76,68}; if (!ResultCount) reset_address_info(); else @@ -1627,7 +1637,7 @@ LRESULT CALLBACK RamSearchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPara } return true; case 4: { - int cheat = CALL_WITH_T_SIZE_TYPES_1(GetCheatStatusFromItemIndex, rs_type_size, rs_t=='s', noMisalign, iNum); + int cheat = CALL_WITH_T_SIZE_TYPES_1(GetNumCheatsFromIndex, rs_type_size, rs_t=='s', noMisalign, iNum); sprintf(num, "%d", cheat); Item->item.pszText = num; } diff --git a/src/drivers/win/replay.cpp b/src/drivers/win/replay.cpp index 9b5e7520..c0a3b7c7 100644 --- a/src/drivers/win/replay.cpp +++ b/src/drivers/win/replay.cpp @@ -731,6 +731,11 @@ BOOL CALLBACK ReplayDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lP case IDYES: extern void DisableAllCheats(); DisableAllCheats(); + extern HWND hMemView; + if (hMemView) { + extern void UpdateColorTable(); + UpdateColorTable(); //if the memory viewer is open then update any blue freeze locations in it as well + } } } From 3f6475c26814575e522cdac038717d9c0853163b Mon Sep 17 00:00:00 2001 From: owomomo Date: Wed, 3 Apr 2019 00:48:30 +0800 Subject: [PATCH 2/5] ... --- src/drivers/win/cheat.cpp | 21 +++++++++++++----- src/drivers/win/cheat.h | 4 +++- src/drivers/win/ram_search.cpp | 40 +++++++++++++++++----------------- src/drivers/win/replay.cpp | 7 ++---- 4 files changed, 40 insertions(+), 32 deletions(-) diff --git a/src/drivers/win/cheat.cpp b/src/drivers/win/cheat.cpp index 95d83390..59b86909 100644 --- a/src/drivers/win/cheat.cpp +++ b/src/drivers/win/cheat.cpp @@ -471,7 +471,7 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l SetDlgItemText(hwndDlg,IDC_CHEAT_COM,(LPTSTR)""); SetDlgItemText(hwndDlg,IDC_CHEAT_NAME,(LPTSTR)""); } - if (hMemView) UpdateColorTable(); //if the memory viewer is open then update any blue freeze locations in it as well + UpdateCheatWindowRelatedWindow(); UpdateCheatsAdded(); break; case ID_CHEATLISTPOPUP_DELETESELECTEDCHEATS: @@ -490,7 +490,7 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l SetDlgItemText(hwndDlg,IDC_CHEAT_VAL,(LPTSTR)""); SetDlgItemText(hwndDlg,IDC_CHEAT_COM,(LPTSTR)""); SetDlgItemText(hwndDlg,IDC_CHEAT_NAME,(LPTSTR)""); - if (hMemView) UpdateColorTable(); //if the memory viewer is open then update any blue freeze locations in it as well + UpdateCheatWindowRelatedWindow(); UpdateCheatsAdded(); } } else { @@ -503,7 +503,7 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l SetDlgItemText(hwndDlg,IDC_CHEAT_COM,(LPTSTR)""); SetDlgItemText(hwndDlg,IDC_CHEAT_NAME,(LPTSTR)""); } - if (hMemView) UpdateColorTable(); //if the memory viewer is open then update any blue freeze locations in it as well + UpdateCheatWindowRelatedWindow(); UpdateCheatsAdded(); } break; @@ -551,7 +551,7 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l SetDlgItemText(hwndDlg,IDC_CHEAT_VAL,(LPTSTR)U8ToStr(v)); if(c == -1) SetDlgItemText(hwndDlg,IDC_CHEAT_COM,(LPTSTR)""); else SetDlgItemText(hwndDlg,IDC_CHEAT_COM,(LPTSTR)U8ToStr(c)); - if(hMemView)UpdateColorTable(); //if the memory viewer is open then update any blue freeze locations in it as well + UpdateCheatWindowRelatedWindow(); break; case IDC_BTN_CHEAT_ADDFROMFILE: { @@ -577,7 +577,7 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l if (file) { FCEU_LoadGameCheats(file); - if (hMemView) UpdateColorTable(); //if the memory viewer is open then update any blue freeze locations in it as well + UpdateCheatWindowRelatedWindow(); UpdateCheatsAdded(); savecheats = 1; } @@ -670,7 +670,7 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l } } UpdateCheatsAdded(); - UpdateColorTable(); + UpdateCheatWindowRelatedWindow(); SendDlgItemMessage(hwndDlg,IDC_LIST_CHEATS,LB_SETCURSEL,selcheat,0); SendDlgItemMessage(hwndDlg,IDC_LIST_CHEATS,LB_SETSEL,(WPARAM)1,selcheat); break; @@ -1049,4 +1049,13 @@ void DisableAllCheats() sprintf(str, "Active Cheats %d", 0); SetDlgItemText(hCheat, 201, str); } +} + +void UpdateCheatWindowRelatedWindow() +{ + if (hMemView) + UpdateColorTable(); //if the memory viewer is open then update any blue freeze locations in it as well + extern HWND RamSearchHWnd; + if (RamSearchHWnd) + RedrawWindow(GetDlgItem(RamSearchHWnd, IDC_RAMLIST), NULL, NULL, RDW_INVALIDATE); // if ram search is open then update the ram list. } \ No newline at end of file diff --git a/src/drivers/win/cheat.h b/src/drivers/win/cheat.h index 8d9f5b2b..3b2ac3bc 100644 --- a/src/drivers/win/cheat.h +++ b/src/drivers/win/cheat.h @@ -15,4 +15,6 @@ extern unsigned int FrozenAddressCount; extern std::vector FrozenAddresses; //void ConfigAddCheat(HWND wnd); //bbit edited:commented out this line -void DisableAllCheats(); \ No newline at end of file +void DisableAllCheats(); + +void UpdateCheatWindowRelatedWindow(); \ No newline at end of file diff --git a/src/drivers/win/ram_search.cpp b/src/drivers/win/ram_search.cpp index 5e3e9a19..c59b00b9 100644 --- a/src/drivers/win/ram_search.cpp +++ b/src/drivers/win/ram_search.cpp @@ -1269,30 +1269,30 @@ LRESULT CustomDraw (LPARAM lParam) case CDDS_ITEMPREPAINT: { int rv = CDRF_DODEFAULT; - - if (int cheat = CALL_WITH_T_SIZE_TYPES_1(GetNumCheatsFromIndex, rs_type_size, rs_t == 's', noMisalign, lplvcd->nmcd.dwItemSpec)) - { - switch (cheat) { - case 1: lplvcd->clrTextBk = RGB(216, 203, 253); break; - case 2: lplvcd->clrTextBk = RGB(195, 186, 253); break; - case 3: lplvcd->clrTextBk = RGB(176, 139, 252); break; - case 4: lplvcd->clrTextBk = RGB(175, 94, 253); break; - } - rv = CDRF_NEWFONT; - } - else if(lplvcd->nmcd.dwItemSpec % 2) - { - // alternate the background color slightly - lplvcd->clrTextBk = RGB(248,248,255); - rv = CDRF_NEWFONT; + 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 = RGB(216, 203, 253); break; + case 2: + lplvcd->clrTextBk = RGB(195, 186, 253); break; + case 3: + lplvcd->clrTextBk = RGB(176, 139, 252); break; + case 4: + lplvcd->clrTextBk = RGB(175, 94, 253); + lplvcd->clrText = RGB(255, 255, 255); break; // use a more visual color in dark background } if(!IsSatisfied(lplvcd->nmcd.dwItemSpec)) - { // tint red any items that would be eliminated if a search were to run now - lplvcd->clrText = RGB(192,64,64); - rv = CDRF_NEWFONT; - } + // changed to a more visual color in dark background + lplvcd->clrText = cheat == 4 ? RGB(255,192,0) : RGB(192,64,64); + + rv = CDRF_NEWFONT; return rv; } break; diff --git a/src/drivers/win/replay.cpp b/src/drivers/win/replay.cpp index c0a3b7c7..6baf6221 100644 --- a/src/drivers/win/replay.cpp +++ b/src/drivers/win/replay.cpp @@ -731,11 +731,8 @@ BOOL CALLBACK ReplayDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lP case IDYES: extern void DisableAllCheats(); DisableAllCheats(); - extern HWND hMemView; - if (hMemView) { - extern void UpdateColorTable(); - UpdateColorTable(); //if the memory viewer is open then update any blue freeze locations in it as well - } + extern void UpdateCheatWindowRelatedWindow(); + UpdateCheatWindowRelatedWindow(); } } From 99636689d7b9817d506d37170e7c5bdd87a593cd Mon Sep 17 00:00:00 2001 From: owomomo Date: Sat, 6 Apr 2019 00:41:35 +0800 Subject: [PATCH 3/5] 1. Mark cheat affected address range in RAM search and RAM watch. 2. RAM Watch now can give separator a name. 3. Reconstruct watch manage logic, removed IDD_PROMPT. --- src/cheat.cpp | 8 + src/cheat.h | 11 +- src/drivers/win/cheat.cpp | 12 + src/drivers/win/cheat.h | 2 +- src/drivers/win/ram_search.cpp | 11 +- src/drivers/win/ramwatch.cpp | 356 ++++--- src/drivers/win/ramwatch.h | 6 + src/drivers/win/res.rc | 1592 ++++++++++++++++---------------- src/drivers/win/resource.h | 7 +- 9 files changed, 1036 insertions(+), 969 deletions(-) diff --git a/src/cheat.cpp b/src/cheat.cpp index d8f09421..e6ebbedd 100644 --- a/src/cheat.cpp +++ b/src/cheat.cpp @@ -136,6 +136,14 @@ void FCEU_PowerCheats() RebuildSubCheats(); } +int FCEU_CalcCheatAffectedBytes(uint32 address, uint32 size) { + int count = 0; + for (int i = 0; i < numsubcheats && count < size; ++i) + if (SubCheats[i].addr >= address && SubCheats[i].addr < address + size) + ++count; + return count; +} + static int AddCheatEntry(char *name, uint32 addr, uint8 val, int compare, int status, int type); static void CheatMemErr(void) { diff --git a/src/cheat.h b/src/cheat.h index 10e28492..d7130a37 100644 --- a/src/cheat.h +++ b/src/cheat.h @@ -5,6 +5,8 @@ void FCEU_LoadGameCheats(FILE *override); void FCEU_FlushGameCheats(FILE *override, int nosave); 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); @@ -28,4 +30,11 @@ struct CHEATF { int compare; /* -1 for no compare. */ int type; /* 0 for replace, 1 for substitute(GG). */ int status; -}; \ No newline at end of file +}; + + +#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; diff --git a/src/drivers/win/cheat.cpp b/src/drivers/win/cheat.cpp index 59b86909..b9216f73 100644 --- a/src/drivers/win/cheat.cpp +++ b/src/drivers/win/cheat.cpp @@ -1053,9 +1053,21 @@ void DisableAllCheats() void UpdateCheatWindowRelatedWindow() { + // hex editor if (hMemView) UpdateColorTable(); //if the memory viewer is open then update any blue freeze locations in it as well extern HWND RamSearchHWnd; + + // ram search if (RamSearchHWnd) RedrawWindow(GetDlgItem(RamSearchHWnd, IDC_RAMLIST), NULL, NULL, RDW_INVALIDATE); // if ram search is open then update the ram list. + + // ram watch + extern void UpdateWatchCheats(); + UpdateWatchCheats(); + extern HWND RamWatchHWnd; + if (RamWatchHWnd) + RedrawWindow(GetDlgItem(RamWatchHWnd, IDC_WATCHLIST), NULL, NULL, RDW_INVALIDATE); // update the data in watch list to the newest. + + } \ No newline at end of file diff --git a/src/drivers/win/cheat.h b/src/drivers/win/cheat.h index 3b2ac3bc..bd8a9f26 100644 --- a/src/drivers/win/cheat.h +++ b/src/drivers/win/cheat.h @@ -17,4 +17,4 @@ extern std::vector FrozenAddresses; void DisableAllCheats(); -void UpdateCheatWindowRelatedWindow(); \ No newline at end of file +void UpdateCheatWindowRelatedWindow(); diff --git a/src/drivers/win/ram_search.cpp b/src/drivers/win/ram_search.cpp index c59b00b9..387b67a7 100644 --- a/src/drivers/win/ram_search.cpp +++ b/src/drivers/win/ram_search.cpp @@ -423,10 +423,7 @@ void ItemIndexToVirtualRegion(unsigned int itemIndex, MemoryRegion& virtualRegio virtualRegion.virtualIndex = region->virtualIndex + bytesWithinRegion; virtualRegion.itemIndex = itemIndex; - virtualRegion.cheatCount = 0; - for (int i = 0; i < numsubcheats && virtualRegion.cheatCount <= virtualRegion.size; ++i) - if (SubCheats[i].addr >= virtualRegion.hardwareAddress && SubCheats[i].addr < virtualRegion.hardwareAddress + virtualRegion.size) - ++virtualRegion.cheatCount; + virtualRegion.cheatCount = FCEU_CalcCheatAffectedBytes(virtualRegion.hardwareAddress, virtualRegion.size); } template @@ -995,7 +992,6 @@ bool WriteValueAtHardwareAddress(HWAddressType address, unsigned int value, unsi int ResultCount=0; bool AutoSearch=false; bool AutoSearchAutoRetry=false; -LRESULT CALLBACK PromptWatchNameProc(HWND, UINT, WPARAM, LPARAM); void UpdatePossibilities(int rs_possible, int regions); @@ -2185,9 +2181,12 @@ void init_list_box(HWND Box, const char* Strs[], int numColumns, int *columnWidt { LVCOLUMN Col; Col.mask = LVCF_FMT | LVCF_ORDER | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH; - Col.fmt = LVCFMT_RIGHT; for (int i = 0; i < numColumns; i++) { + if (i == 1) + Col.fmt = LVCFMT_RIGHT; + else + Col.fmt = LVCFMT_LEFT; Col.iOrder = i; Col.iSubItem = i; Col.pszText = (LPSTR)(Strs[i]); diff --git a/src/drivers/win/ramwatch.cpp b/src/drivers/win/ramwatch.cpp index 0caa1d0a..aa1ac57e 100644 --- a/src/drivers/win/ramwatch.cpp +++ b/src/drivers/win/ramwatch.cpp @@ -48,7 +48,7 @@ HWND RamWatchHWnd; #define gamefilename GetRomName() #define hWnd hAppWnd #define hInst fceu_hInstance -static char Str_Tmp [1024]; +// static char Str_Tmp [1024]; void init_list_box(HWND Box, const char* Strs[], int numColumns, int *columnWidths); //initializes the ram search and/or ram watch listbox @@ -105,15 +105,22 @@ bool InsertWatch(const AddressWatcher& Watch, char *Comment) AddressWatcher& NewWatch = rswatches[i]; NewWatch = Watch; //if (NewWatch.comment) free(NewWatch.comment); - NewWatch.comment = (char *) malloc(strlen(Comment)+2); - NewWatch.CurValue = GetCurrentValue(NewWatch); + if (NewWatch.comment == NULL) + NewWatch.comment = (char *)malloc(strlen(Comment) + 2); + else + NewWatch.comment = (char *)realloc(NewWatch.comment, strlen(Comment) + 2); strcpy(NewWatch.comment, Comment); + + NewWatch.CurValue = GetCurrentValue(NewWatch); + extern int FCEU_CalcCheatAffectedBytes(uint32, uint32); + NewWatch.Cheats = FCEU_CalcCheatAffectedBytes(NewWatch.Address, WatchSizeConv(NewWatch)); ListView_SetItemCount(GetDlgItem(RamWatchHWnd,IDC_WATCHLIST),WatchCount); RWfileChanged=true; return true; } +/* LRESULT CALLBACK PromptWatchNameProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) //Gets the description of a watched address { RECT r; @@ -168,7 +175,7 @@ LRESULT CALLBACK PromptWatchNameProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM return false; } - +*/ bool InsertWatch(const AddressWatcher& Watch, HWND parent) { if(!VerifyWatchNotAlreadyAdded(Watch)) @@ -183,7 +190,7 @@ bool InsertWatch(const AddressWatcher& Watch, HWND parent) rswatches[WatchCount] = Watch; rswatches[WatchCount].CurValue = GetCurrentValue(rswatches[WatchCount]); - DialogBox(hInst, MAKEINTRESOURCE(IDD_PROMPT), parent, (DLGPROC) PromptWatchNameProc); + DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_EDITWATCH), parent, (DLGPROC) EditWatchProc, (LPARAM)WatchCount); return WatchCount > prevWatchCount; } @@ -242,7 +249,7 @@ bool AskSave() //returns false only if a save was attempted but failed or was cancelled if (RWfileChanged) { - int answer = MessageBox(MESSAGEBOXPARENT, "Save Changes?", "Ram Watch", MB_YESNOCANCEL); + int answer = MessageBox(MESSAGEBOXPARENT, "Save Changes?", "Ram Watch", MB_YESNOCANCEL | MB_ICONQUESTION); if(answer == IDYES) if(!QuickSaveWatches()) return false; @@ -402,6 +409,7 @@ void OpenRWRecentFile(int memwRFileNumber) } } + char Str_Tmp[1024]; strcpy(currentWatch,x); strcpy(Str_Tmp,currentWatch); @@ -409,7 +417,7 @@ void OpenRWRecentFile(int memwRFileNumber) FILE *WatchFile = fopen(Str_Tmp,"rb"); if (!WatchFile) { - int answer = MessageBox(MESSAGEBOXPARENT,"Error opening file.","ERROR",MB_OKCANCEL); + int answer = MessageBox(MESSAGEBOXPARENT,"Error opening file.","ERROR",MB_OKCANCEL | MB_ICONERROR); if (answer == IDOK) { rw_recent_files[rnum][0] = '\0'; //Clear file from list @@ -425,6 +433,7 @@ void OpenRWRecentFile(int memwRFileNumber) Temp.Address = 0; // default values Temp.Size = 'b'; Temp.Type = 'h'; + Temp.comment = NULL; char mode; fgets(Str_Tmp,1024,WatchFile); sscanf(Str_Tmp,"%c%*s",&mode); @@ -536,6 +545,7 @@ int Change_File_S(char *Dest, const char *Dir, const char *Titre, const char *Fi bool Save_Watches() { + char Str_Tmp[1024]; string initdir = FCEU_GetPath(FCEUMKF_MEMW); const char* slash = max(strrchr(gamefilename, '|'), max(strrchr(gamefilename, '\\'), strrchr(gamefilename, '/'))); strcpy(Str_Tmp,slash ? slash+1 : gamefilename); @@ -566,26 +576,25 @@ bool Save_Watches() bool QuickSaveWatches() { -if (RWfileChanged==false) return true; //If file has not changed, no need to save changes -if (currentWatch[0] == NULL) //If there is no currently loaded file, run to Save as and then return + if (RWfileChanged==false) return true; //If file has not changed, no need to save changes + if (currentWatch[0] == NULL) //If there is no currently loaded file, run to Save as and then return + return Save_Watches(); + + char Str_Tmp[1024]; + strcpy(Str_Tmp,currentWatch); + FILE *WatchFile = fopen(Str_Tmp,"w+b"); + fputc('\n',WatchFile); + sprintf(Str_Tmp,"%d\n",WatchCount); + fputs(Str_Tmp,WatchFile); + const char DELIM = '\t'; + for (int i = 0; i < WatchCount; i++) { - return Save_Watches(); - } - - strcpy(Str_Tmp,currentWatch); - FILE *WatchFile = fopen(Str_Tmp,"w+b"); - fputc('\n',WatchFile); - sprintf(Str_Tmp,"%d\n",WatchCount); + sprintf(Str_Tmp,"%05X%c%04X%c%c%c%c%c%d%c%s\n",i,DELIM,rswatches[i].Address,DELIM,rswatches[i].Size,DELIM,rswatches[i].Type,DELIM,rswatches[i].WrongEndian,DELIM,rswatches[i].comment); fputs(Str_Tmp,WatchFile); - const char DELIM = '\t'; - for (int i = 0; i < WatchCount; i++) - { - sprintf(Str_Tmp,"%05X%c%04X%c%c%c%c%c%d%c%s\n",i,DELIM,rswatches[i].Address,DELIM,rswatches[i].Size,DELIM,rswatches[i].Type,DELIM,rswatches[i].WrongEndian,DELIM,rswatches[i].comment); - fputs(Str_Tmp,WatchFile); - } - fclose(WatchFile); - RWfileChanged=false; - return true; + } + fclose(WatchFile); + RWfileChanged=false; + return true; } bool Load_Watches(bool clear, const char* filename) @@ -594,7 +603,7 @@ bool Load_Watches(bool clear, const char* filename) FILE* WatchFile = fopen(filename,"rb"); if (!WatchFile) { - MessageBox(MESSAGEBOXPARENT,"Error opening file.","ERROR",MB_OK); + MessageBox(MESSAGEBOXPARENT,"Error opening file.","ERROR",MB_OK | MB_ICONERROR); return false; } if(clear) @@ -612,6 +621,7 @@ bool Load_Watches(bool clear, const char* filename) Temp.Size = 'b'; Temp.Type = 'h'; char mode; + char Str_Tmp[1024]; fgets(Str_Tmp,1024,WatchFile); sscanf(Str_Tmp,"%c%*s",&mode); int WatchAdd; @@ -656,6 +666,7 @@ bool Load_Watches(bool clear, const char* filename) bool Load_Watches(bool clear) { + char Str_Tmp[1024]; string initdir = FCEU_GetPath(FCEUMKF_MEMW); const char* slash = max(strrchr(gamefilename, '|'), max(strrchr(gamefilename, '\\'), strrchr(gamefilename, '/'))); strcpy(Str_Tmp,slash ? slash+1 : gamefilename); @@ -714,133 +725,144 @@ void RefreshWatchListSelectedItemControlStatus(HWND hDlg) LRESULT CALLBACK EditWatchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) //Gets info for a RAM Watch, and then inserts it into the Watch List { - RECT r; - RECT r2; - int dx1, dy1, dx2, dy2; + static int index; - static char s,t = s = 0; switch(uMsg) { case WM_INITDIALOG: - //Clear_Sound_Buffer(); + { + RECT r; + GetWindowRect(hWnd, &r); + SetWindowPos(hDlg, NULL, r.left, r.top, NULL, NULL, SWP_NOSIZE | SWP_NOZORDER | SWP_SHOWWINDOW); + index = (int)lParam; + AddressWatcher* watcher = &rswatches[index]; + if (watcher->Type != 'S') { + char Str_Tmp[1024]; + sprintf(Str_Tmp, "%04X", watcher->Address); + SetDlgItemText(hDlg, IDC_EDIT_COMPAREADDRESS, Str_Tmp); + 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; + } + } else + SetDlgItemText(hDlg, IDC_EDIT_COMPAREADDRESS, "---------"); - GetWindowRect(hWnd, &r); - dx1 = (r.right - r.left) / 2; - dy1 = (r.bottom - r.top) / 2; + if (watcher->comment != NULL) + SetDlgItemText(hDlg, IDC_PROMPT_EDIT, watcher->comment); - GetWindowRect(hDlg, &r2); - dx2 = (r2.right - r2.left) / 2; - dy2 = (r2.bottom - r2.top) / 2; - - //SetWindowPos(hDlg, NULL, max(0, r.left + (dx1 - dx2)), max(0, r.top + (dy1 - dy2)), NULL, NULL, SWP_NOSIZE | SWP_NOZORDER | SWP_SHOWWINDOW); - SetWindowPos(hDlg, NULL, r.left, r.top, NULL, NULL, SWP_NOSIZE | SWP_NOZORDER | SWP_SHOWWINDOW); - index = (int)lParam; - sprintf(Str_Tmp,"%04X",rswatches[index].Address); - SetDlgItemText(hDlg,IDC_EDIT_COMPAREADDRESS,Str_Tmp); - if (rswatches[index].comment != NULL) - SetDlgItemText(hDlg,IDC_PROMPT_EDIT,rswatches[index].comment); - s = rswatches[index].Size; - t = rswatches[index].Type; - switch (s) - { - 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; - default: - s = 0; - break; + if (watcher->Type == 'S' || GetParent(hDlg) == RamSearchHWnd) + { + 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_1_BYTE), FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_2_BYTES), FALSE); + EnableWindow(GetDlgItem(hDlg, IDC_4_BYTES), FALSE); + SetFocus(GetDlgItem(hDlg, IDC_PROMPT_EDIT)); + } } - switch (t) - { - 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; - default: - t = 0; - break; - } - return true; break; case WM_COMMAND: switch(LOWORD(wParam)) { - case IDC_SIGNED: - t='s'; - return true; - case IDC_UNSIGNED: - t='u'; - return true; - case IDC_HEX: - t='h'; - return true; - case IDC_1_BYTE: - s = 'b'; - return true; - case IDC_2_BYTES: - s = 'w'; - return true; - case IDC_4_BYTES: - s = 'd'; - return true; case IDOK: { - if (s && t) + char Str_Tmp[1024]; + // 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); + + // It's from ram watch window, not a separator + if (RamWatchHWnd && RamWatchHWnd == GetParent(hDlg) && watcher.Type != 'S') { - AddressWatcher Temp; - Temp.Size = s; - Temp.Type = t; - Temp.WrongEndian = false; //replace this when I get little endian working properly - GetDlgItemText(hDlg,IDC_EDIT_COMPAREADDRESS,Str_Tmp,1024); + GetDlgItemText(hDlg, IDC_PROMPT_EDIT, Str_Tmp, 1024); + + // 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 { + MessageBox(hDlg, "Type must be specified.", "Error", MB_OK | MB_ICONERROR); + return true; + } + + // 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; + } + + // 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",&(Temp.Address)); + 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((Temp.Address & ~0xFFFFFF) == ~0xFFFFFF) - Temp.Address &= 0xFFFFFF; + if ((watcher.Address & ~0xFFFFFF) == ~0xFFFFFF) + watcher.Address &= 0xFFFFFF; - if(IsHardwareAddressValid(Temp.Address)) + if (!IsHardwareAddressValid(watcher.Address)) { - GetDlgItemText(hDlg,IDC_PROMPT_EDIT,Str_Tmp,80); - if (index < WatchCount) RemoveWatch(index); - InsertWatch(Temp,Str_Tmp); - if(RamWatchHWnd) - { - ListView_SetItemCount(GetDlgItem(RamWatchHWnd,IDC_WATCHLIST),WatchCount); - } - EndDialog(hDlg, true); - } - else - { - MessageBox(hDlg,"Invalid Address","ERROR",MB_OK); + MessageBox(hDlg, "Invalid Address.", "Error", MB_OK | MB_ICONERROR); + return true; } } - else - { - strcpy(Str_Tmp,"Error:"); - if (!s) - strcat(Str_Tmp," Size must be specified."); - if (!t) - strcat(Str_Tmp," Type must be specified."); - MessageBox(hDlg,Str_Tmp,"ERROR",MB_OK); - } - RWfileChanged=true; + + // comment + GetDlgItemText(hDlg, IDC_PROMPT_EDIT, Str_Tmp, 80); + + // finallly update the watch list + if (index < WatchCount) + // it's a watch editing operation, and the dialog is from Ram Watch Window, remove then insert; + RemoveWatch(index); + InsertWatch(watcher, Str_Tmp); + if (RamWatchHWnd) + ListView_SetItemCount(GetDlgItem(RamWatchHWnd, IDC_WATCHLIST), WatchCount); + EndDialog(hDlg, true); + + RWfileChanged = true; return true; break; } @@ -1037,9 +1059,13 @@ LRESULT CALLBACK RamWatchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam switch (Item->item.iSubItem) { case 0: - sprintf(num,"%04X",rswatches[iNum].Address); + { + int size = WatchSizeConv(rswatches[iNum]); + int addr = rswatches[iNum].Address; + sprintf(num, rswatches[iNum].Type == 'S' ? "------" : size > 1 ? "%04X-%04X" : "%04X", addr, addr + size - 1); Item->item.pszText = num; return true; + } case 1: { int i = rswatches[iNum].CurValue; int t = rswatches[iNum].Type; @@ -1072,6 +1098,42 @@ LRESULT CALLBACK RamWatchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam SetWindowLong(hDlg, DWL_MSGRESULT, ListView_GetSelectionMark(GetDlgItem(hDlg,IDC_WATCHLIST))); return 1; } + case NM_CUSTOMDRAW: + { + LPNMCUSTOMDRAW nmcd = (LPNMCUSTOMDRAW)lParam; + switch (nmcd->dwDrawStage) + { + case CDDS_ITEMPREPAINT: + { + LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)lParam; + if (rswatches[nmcd->dwItemSpec].Type == 'S') + lplvcd->clrTextBk = RGB(247, 187, 67); + else + switch (rswatches[nmcd->dwItemSpec].Cheats) + { + default: + case 0: + SetWindowLong(hDlg, DWL_MSGRESULT, CDRF_DODEFAULT); + return TRUE; + case 1: + lplvcd->clrTextBk = RGB(216, 203, 253); break; + case 2: + lplvcd->clrTextBk = RGB(195, 186, 253); break; + case 3: + lplvcd->clrTextBk = RGB(176, 139, 252); break; + case 4: + lplvcd->clrTextBk = RGB(175, 94, 253); + lplvcd->clrText = RGB(255, 255, 255); break; // use a more visual color in dark background + } + SetWindowLong(hDlg, DWL_MSGRESULT, CDRF_NEWFONT); + } + break; + case CDDS_PREPAINT: + SetWindowLong(hDlg, DWL_MSGRESULT, CDRF_NOTIFYITEMDRAW); + } + return TRUE; + } + } } } @@ -1114,16 +1176,16 @@ LRESULT CALLBACK RamWatchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam watchIndex = ListView_GetSelectionMark(GetDlgItem(hDlg,IDC_WATCHLIST)); if(watchIndex != -1) { - if(rswatches[watchIndex].Size == 'S') return true; - DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_EDITWATCH), hDlg, (DLGPROC) EditWatchProc,(LPARAM) watchIndex); + DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_EDITWATCH), hDlg, (DLGPROC) EditWatchProc,(LPARAM)watchIndex); SetFocus(GetDlgItem(hDlg,IDC_WATCHLIST)); } return true; case IDC_C_WATCH: - rswatches[WatchCount].Address = rswatches[WatchCount].WrongEndian = 0; + rswatches[WatchCount].Address = 0; + rswatches[WatchCount].WrongEndian = 0; rswatches[WatchCount].Size = 'b'; rswatches[WatchCount].Type = 's'; - DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_EDITWATCH), hDlg, (DLGPROC) EditWatchProc,(LPARAM) WatchCount); + DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_EDITWATCH), hDlg, (DLGPROC) EditWatchProc,(LPARAM)WatchCount); SetFocus(GetDlgItem(hDlg,IDC_WATCHLIST)); return true; case IDC_C_WATCH_DUPLICATE: @@ -1134,18 +1196,21 @@ LRESULT CALLBACK RamWatchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam rswatches[WatchCount].WrongEndian = rswatches[watchIndex].WrongEndian; rswatches[WatchCount].Size = rswatches[watchIndex].Size; rswatches[WatchCount].Type = rswatches[watchIndex].Type; - DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_EDITWATCH), hDlg, (DLGPROC) EditWatchProc,(LPARAM) WatchCount); + rswatches[WatchCount].comment = strcpy((char*)malloc(strlen(rswatches[watchIndex].comment) + 2), rswatches[watchIndex].comment); + DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_EDITWATCH), hDlg, (DLGPROC) EditWatchProc,WatchCount); SetFocus(GetDlgItem(hDlg,IDC_WATCHLIST)); } return true; case IDC_C_WATCH_SEPARATE: - AddressWatcher separator; - separator.Address = 0; - separator.WrongEndian = false; - separator.Size = 'S'; - separator.Type = 'S'; - InsertWatch(separator, "----------------------------"); + rswatches[WatchCount].Address = 0; + rswatches[WatchCount].WrongEndian = false; + rswatches[WatchCount].Size = 'S'; + rswatches[WatchCount].Type = 'S'; + + DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_EDITWATCH), hDlg, (DLGPROC)EditWatchProc, (LPARAM)WatchCount); + +// InsertWatch(separator, "----------------------------"); SetFocus(GetDlgItem(hDlg,IDC_WATCHLIST)); return true; @@ -1245,6 +1310,7 @@ LRESULT CALLBACK RamWatchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam } UpdateCheatsAdded(); + UpdateCheatWindowRelatedWindow(); } } break; @@ -1287,6 +1353,7 @@ LRESULT CALLBACK RamWatchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam case WM_DROPFILES: { + char Str_Tmp[1024]; HDROP hDrop = (HDROP)wParam; DragQueryFile(hDrop, 0, Str_Tmp, 1024); DragFinish(hDrop); @@ -1296,3 +1363,10 @@ LRESULT CALLBACK RamWatchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam return false; } + +// TODO: This function may be too slow when both cheats and watches are near the max limit. +void UpdateWatchCheats() { + extern int FCEU_CalcCheatAffectedBytes(uint32, uint32); + for (int i = 0; i < WatchCount; ++i) + rswatches[i].Cheats = FCEU_CalcCheatAffectedBytes(rswatches[i].Address, WatchSizeConv(rswatches[i])); +} \ No newline at end of file diff --git a/src/drivers/win/ramwatch.h b/src/drivers/win/ramwatch.h index 41700089..9cb29645 100644 --- a/src/drivers/win/ramwatch.h +++ b/src/drivers/win/ramwatch.h @@ -26,6 +26,7 @@ struct AddressWatcher bool WrongEndian; char Size; //'d' = 4 bytes, 'w' = 2 bytes, 'b' = 1 byte, and 'S' means it's a separator. char Type;//'s' = signed integer, 'u' = unsigned, 'h' = hex, 'S' = separator + short Cheats; // how many bytes are affected by cheat }; #define MAX_WATCH_COUNT 256 extern AddressWatcher rswatches[MAX_WATCH_COUNT]; @@ -41,8 +42,13 @@ bool InsertWatch(const AddressWatcher& Watch, HWND parent=NULL); // asks user fo void Update_RAM_Watch(); bool Load_Watches(bool clear, const char* filename); void RWAddRecentFile(const char *filename); +void UpdateWatchCheats(); LRESULT CALLBACK RamWatchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); +LRESULT CALLBACK EditWatchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); extern HWND RamWatchHWnd; +#define WatchSizeConv(watch) (watch.Type == 'S' ? 0 : watch.Size == 'd' ? 4 : watch.Size == 'w' ? 2 : watch.Size == 'b' ? 1 : 0) +#define SizeConvWatch(size) (size == 4 ? 'd' : size == 2 ? 'w' : size == 1 : 'b' : 0) + #endif diff --git a/src/drivers/win/res.rc b/src/drivers/win/res.rc index 3991bcd0..cae2d8f4 100644 --- a/src/drivers/win/res.rc +++ b/src/drivers/win/res.rc @@ -18,6 +18,655 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL #pragma code_page(936) +///////////////////////////////////////////////////////////////////////////// +// +// 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 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", ID_DEBUG_DEBUGGER + MENUITEM "1 on, 5 off", ID_DEBUG_PPUVIEWER + MENUITEM "2 on, 1 off", ID_DEBUG_NAMETABLEVIEWER + MENUITEM "2 on, 2 off", ID_DEBUG_HEXEDITOR + MENUITEM "2 on, 3 off", ID_DEBUG_TRACELOGGER + MENUITEM "2 on, 4 off", MENU_AUTOFIRE_PATTERN_9 + MENUITEM "3 on, 1 off", ID_DEBUG_GAMEGENIEDECODER + MENUITEM "3 on, 2 off", ID_DEBUG_CDLOGGER + 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 + 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\tDbl-Clk", CHEAT_CONTEXT_TOGGLECHEAT + MENUITEM "Poke Cheat Value", CHEAT_CONTEXT_POKECHEATVALUE + MENUITEM "Goto in Hex Editor", CHEAT_CONTEXT_GOTOINHEXEDITOR + MENUITEM "Delete selected Cheats", ID_CHEATLISTPOPUP_DELETESELECTEDCHEATS + 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 @@ -1449,7 +2098,7 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_ CAPTION " RAM Search" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN - CONTROL "",IDC_RAMLIST,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | LVS_OWNERDATA | WS_BORDER | WS_TABSTOP,9,9,214,151,WS_EX_CLIENTEDGE + CONTROL "",IDC_RAMLIST,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_OWNERDATA | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,9,9,214,151,WS_EX_CLIENTEDGE PUSHBUTTON "&Search",IDC_C_SEARCH,226,9,52,16 PUSHBUTTON "&Add Cheat",IDC_C_ADDCHEAT,226,130,52,14,WS_DISABLED PUSHBUTTON "&Watch",IDC_C_WATCH,226,114,52,14 @@ -1513,15 +2162,15 @@ 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,18,12,35,10 - EDITTEXT IDC_EDIT_COMPAREADDRESS,55,10,65,12,ES_UPPERCASE | ES_AUTOHSCROLL - CTEXT "Notes:",IDC_PROMPT_TEXT,18,24,45,10 - EDITTEXT IDC_PROMPT_EDIT,55,22,65,12,ES_AUTOHSCROLL - GROUPBOX "Data Type",IDC_STATIC,14,37,75,42,0,WS_EX_TRANSPARENT + CTEXT "Address:",IDC_SPECIFICADDRESS,15,12,30,8 + 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 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_STATIC,94,37,73,42,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 @@ -1529,16 +2178,6 @@ BEGIN PUSHBUTTON "&Cancel",IDCANCEL,120,80,50,14 END -IDD_PROMPT DIALOG 0, 0, 186, 68 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Input Prompt" -FONT 8, "Ms Shell Dlg 2" -BEGIN - DEFPUSHBUTTON "OK",IDOK,100,43,50,14 - PUSHBUTTON "Cancel",IDCANCEL,37,42,50,14 - EDITTEXT IDC_PROMPT_EDIT,10,15,167,14,ES_AUTOHSCROLL -END - DLG_SNESPAD DIALOGEX 4, 109, 243, 121 STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Gamepad Configuration" @@ -1560,6 +2199,59 @@ BEGIN PUSHBUTTON "R",311,198,19,32,12 END +IDD_TASEDITOR_SAVINGOPTIONS DIALOGEX 0, 0, 223, 208 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Project file saving options" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "OK",IDOK,109,187,50,14 + PUSHBUTTON "Cancel",IDCANCEL,165,187,50,14 + CONTROL " Binary format of Input",IDC_CHECK_BINARY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,17,89,10 + CONTROL " Markers",IDC_CHECK_MARKERS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,32,67,10 + CONTROL " Bookmarks",IDC_CHECK_BOOKMARKS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,47,67,10 + CONTROL " History",IDC_CHECK_HISTORY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,62,67,10 + CONTROL " Piano Roll",IDC_CHECK_PIANO_ROLL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,77,67,10 + CONTROL " Selection",IDC_CHECK_SELECTION,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,92,67,10 + GROUPBOX "File contents",IDC_STATIC,105,4,111,177 + GROUPBOX "Greenzone saving options",IDC_STATIC,112,106,97,69 + CONTROL " all frames",IDC_RADIO1,"Button",BS_AUTORADIOBUTTON,122,117,77,10 + CONTROL " every 16th frame",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON,122,131,77,10 + CONTROL " marked frames",IDC_RADIO3,"Button",BS_AUTORADIOBUTTON,122,145,77,10 + CONTROL " don't save",IDC_RADIO4,"Button",BS_AUTORADIOBUTTON,122,159,77,10 + CONTROL " Autosave project",IDC_AUTOSAVE_PROJECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,17,81,10 + CONTROL " silently",IDC_SILENT_AUTOSAVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,47,42,10 + LTEXT "every",IDC_AUTOSAVE_PERIOD_EVERY_TEXT,14,32,21,8 + EDITTEXT IDC_AUTOSAVE_PERIOD,36,30,24,14,ES_AUTOHSCROLL | ES_NUMBER + LTEXT "minutes",IDC_AUTOSAVE_PERIOD_MINUTES_TEXT,64,32,28,8 + GROUPBOX "Settings",IDC_STATIC,6,4,91,177 +END + +IDD_SYMBOLIC_DEBUG_NAMING DIALOGEX 0, 0, 245, 83 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU +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 + 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 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +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 +END + ///////////////////////////////////////////////////////////////////////////// // @@ -1736,662 +2428,43 @@ BEGIN BEGIN END + IDD_RAMSEARCH, DIALOG + BEGIN + END + + IDD_RAMWATCH, DIALOG + BEGIN + END + + IDD_EDITWATCH, DIALOG + BEGIN + BOTTOMMARGIN, 94 + END + DLG_SNESPAD, DIALOG BEGIN END + + IDD_TASEDITOR_SAVINGOPTIONS, DIALOG + BEGIN + END + + IDD_SYMBOLIC_DEBUG_NAMING, DIALOG + BEGIN + BOTTOMMARGIN, 82 + END + + "IDD_REPLAY_METADATA", DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 318 + TOPMARGIN, 7 + BOTTOMMARGIN, 243 + END 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 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", ID_DEBUG_DEBUGGER - MENUITEM "1 on, 5 off", ID_DEBUG_PPUVIEWER - MENUITEM "2 on, 1 off", ID_DEBUG_NAMETABLEVIEWER - MENUITEM "2 on, 2 off", ID_DEBUG_HEXEDITOR - MENUITEM "2 on, 3 off", ID_DEBUG_TRACELOGGER - MENUITEM "2 on, 4 off", MENU_AUTOFIRE_PATTERN_9 - MENUITEM "3 on, 1 off", ID_DEBUG_GAMEGENIEDECODER - MENUITEM "3 on, 2 off", ID_DEBUG_CDLOGGER - 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 - 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\tDbl-Clk", CHEAT_CONTEXT_TOGGLECHEAT - MENUITEM "Poke Cheat Value", CHEAT_CONTEXT_POKECHEATVALUE - MENUITEM "Goto in Hex Editor", CHEAT_CONTEXT_GOTOINHEXEDITOR - MENUITEM "Delete selected Cheats", ID_CHEATLISTPOPUP_DELETESELECTEDCHEATS - 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 - - ///////////////////////////////////////////////////////////////////////////// // // AFX_DIALOG_LAYOUT @@ -2407,166 +2480,17 @@ BEGIN 0 END -#endif // 非特定语言 resources -///////////////////////////////////////////////////////////////////////////// - - -///////////////////////////////////////////////////////////////////////////// -// 俄语(俄罗斯) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS) -LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT -#pragma code_page(1251) - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_TASEDITOR_SAVINGOPTIONS DIALOGEX 0, 0, 223, 208 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Project file saving options" -FONT 8, "MS Shell Dlg", 400, 0, 0x1 -BEGIN - DEFPUSHBUTTON "OK",IDOK,109,187,50,14 - PUSHBUTTON "Cancel",IDCANCEL,165,187,50,14 - CONTROL " Binary format of Input",IDC_CHECK_BINARY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,17,89,10 - CONTROL " Markers",IDC_CHECK_MARKERS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,32,67,10 - CONTROL " Bookmarks",IDC_CHECK_BOOKMARKS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,47,67,10 - CONTROL " History",IDC_CHECK_HISTORY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,62,67,10 - CONTROL " Piano Roll",IDC_CHECK_PIANO_ROLL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,77,67,10 - CONTROL " Selection",IDC_CHECK_SELECTION,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,92,67,10 - GROUPBOX "File contents",IDC_STATIC,105,4,111,177 - GROUPBOX "Greenzone saving options",IDC_STATIC,112,106,97,69 - CONTROL " all frames",IDC_RADIO1,"Button",BS_AUTORADIOBUTTON,122,117,77,10 - CONTROL " every 16th frame",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON,122,131,77,10 - CONTROL " marked frames",IDC_RADIO3,"Button",BS_AUTORADIOBUTTON,122,145,77,10 - CONTROL " don't save",IDC_RADIO4,"Button",BS_AUTORADIOBUTTON,122,159,77,10 - CONTROL " Autosave project",IDC_AUTOSAVE_PROJECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,17,81,10 - CONTROL " silently",IDC_SILENT_AUTOSAVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,47,42,10 - LTEXT "every",IDC_AUTOSAVE_PERIOD_EVERY_TEXT,14,32,21,8 - EDITTEXT IDC_AUTOSAVE_PERIOD,36,30,24,14,ES_AUTOHSCROLL | ES_NUMBER - LTEXT "minutes",IDC_AUTOSAVE_PERIOD_MINUTES_TEXT,64,32,28,8 - GROUPBOX "Settings",IDC_STATIC,6,4,91,177 -END - -IDD_SYMBOLIC_DEBUG_NAMING DIALOGEX 0, 0, 245, 83 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU -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 - 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 - - -///////////////////////////////////////////////////////////////////////////// -// -// DESIGNINFO -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO -BEGIN - IDD_TASEDITOR_SAVINGOPTIONS, DIALOG - BEGIN - END - - IDD_SYMBOLIC_DEBUG_NAMING, DIALOG - BEGIN - BOTTOMMARGIN, 82 - END -END -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// AFX_DIALOG_LAYOUT -// - IDD_TASEDITOR_SAVINGOPTIONS AFX_DIALOG_LAYOUT BEGIN 0 END -#endif // 俄语(俄罗斯) resources -///////////////////////////////////////////////////////////////////////////// - - -///////////////////////////////////////////////////////////////////////////// -// 英语(美国) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_REPLAY_METADATA DIALOGEX 0, 0, 325, 250 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Movie Metadata" -FONT 8, "MS Shell Dlg", 400, 0, 0x1 +IDD_EDITWATCH AFX_DIALOG_LAYOUT BEGIN - DEFPUSHBUTTON "Close",IDCANCEL,268,229,50,14 - CONTROL "",IDC_LIST1,"SysListView32",LVS_REPORT | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,7,7,311,214 + 0 END -///////////////////////////////////////////////////////////////////////////// -// -// DESIGNINFO -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO -BEGIN - "IDD_REPLAY_METADATA", DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 318 - TOPMARGIN, 7 - BOTTOMMARGIN, 243 - END -END -#endif // APSTUDIO_INVOKED - - -#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 - - ///////////////////////////////////////////////////////////////////////////// // // Accelerator @@ -2737,6 +2661,40 @@ 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 // 非特定语言 resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// 英语(美国) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) + +#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 + #endif // 英语(美国) resources ///////////////////////////////////////////////////////////////////////////// diff --git a/src/drivers/win/resource.h b/src/drivers/win/resource.h index 8c8adc06..a94b891b 100644 --- a/src/drivers/win/resource.h +++ b/src/drivers/win/resource.h @@ -195,7 +195,6 @@ #define IDD_RAMSEARCH 154 #define IDD_RAMWATCH 155 #define IDD_EDITWATCH 156 -#define IDD_PROMPT 157 #define IDR_RWACCELERATOR 158 #define IDD_LUA 159 #define IDB_BITMAP0 163 @@ -789,6 +788,8 @@ #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 MENU_NETWORK 40040 #define MENU_PALETTE 40041 #define MENU_SOUND 40042 @@ -1282,9 +1283,9 @@ // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 302 +#define _APS_NEXT_RESOURCE_VALUE 303 #define _APS_NEXT_COMMAND_VALUE 40600 -#define _APS_NEXT_CONTROL_VALUE 1310 +#define _APS_NEXT_CONTROL_VALUE 1312 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif From 8f5cfcb9b5fd1aaffa2627845d88392f01d12ca8 Mon Sep 17 00:00:00 2001 From: owomomo Date: Sat, 6 Apr 2019 02:09:05 +0800 Subject: [PATCH 4/5] Update ram_search.cpp --- src/drivers/win/ram_search.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/drivers/win/ram_search.cpp b/src/drivers/win/ram_search.cpp index 387b67a7..b3896160 100644 --- a/src/drivers/win/ram_search.cpp +++ b/src/drivers/win/ram_search.cpp @@ -1534,7 +1534,7 @@ LRESULT CALLBACK RamSearchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPara CompactAddrs(); } void init_list_box(HWND Box, const char* Strs[], int numColumns, int *columnWidths); - init_list_box(GetDlgItem(hDlg,IDC_RAMLIST),names,5,widths); + init_list_box(GetDlgItem(hDlg,IDC_RAMLIST),names,4,widths); //ListView_SetItemCount(GetDlgItem(hDlg,IDC_RAMLIST),ResultCount); if (!noMisalign) SendDlgItemMessage(hDlg, IDC_MISALIGN, BM_SETCHECK, BST_CHECKED, 0); //if (littleEndian) SendDlgItemMessage(hDlg, IDC_ENDIAN, BM_SETCHECK, BST_CHECKED, 0); @@ -2183,10 +2183,7 @@ void init_list_box(HWND Box, const char* Strs[], int numColumns, int *columnWidt Col.mask = LVCF_FMT | LVCF_ORDER | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH; for (int i = 0; i < numColumns; i++) { - if (i == 1) - Col.fmt = LVCFMT_RIGHT; - else - Col.fmt = LVCFMT_LEFT; + Col.fmt = !strcmp(Strs[i], "Value") || !strcmp(Strs[i], "Previous") || !strcmp(Strs[i], "Changes") ? LVCFMT_RIGHT : LVCFMT_LEFT; Col.iOrder = i; Col.iSubItem = i; Col.pszText = (LPSTR)(Strs[i]); @@ -2247,4 +2244,4 @@ void SetSearchType(int SearchType) { void DoRamSearchOperation() { RamSearchProc(RamSearchHWnd, WM_COMMAND, IDC_C_SEARCH, 0); return; -} \ No newline at end of file +} From 07e14fd26f916bd86c510c1569fab57cfea31f5f Mon Sep 17 00:00:00 2001 From: owomomo Date: Sat, 6 Apr 2019 02:14:52 +0800 Subject: [PATCH 5/5] Update res.rc --- src/drivers/win/res.rc | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/drivers/win/res.rc b/src/drivers/win/res.rc index cae2d8f4..e64930eb 100644 --- a/src/drivers/win/res.rc +++ b/src/drivers/win/res.rc @@ -7,16 +7,17 @@ // // Generated from the TEXTINCLUDE 2 resource. // -#include "afxres.h" +#include "afxres.h" + ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// -// 非特定语言 resources +// #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU) LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL -#pragma code_page(936) +#pragma code_page(1252) ///////////////////////////////////////////////////////////////////////////// // @@ -2146,7 +2147,7 @@ CAPTION " RAM Watch" MENU RAMWATCH_MENU FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN - CONTROL "",IDC_WATCHLIST,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_OWNERDATA | WS_BORDER | WS_TABSTOP,9,9,210,279,WS_EX_CLIENTEDGE + CONTROL "",IDC_WATCHLIST,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_OWNERDATA | WS_BORDER | WS_TABSTOP | LVS_NOSORTHEADER,9,9,210,279,WS_EX_CLIENTEDGE PUSHBUTTON "Edit",IDC_C_WATCH_EDIT,226,66,34,14 PUSHBUTTON "Remove",IDC_C_WATCH_REMOVE,226,83,34,14 PUSHBUTTON "New",IDC_C_WATCH,226,100,34,14 @@ -2661,12 +2662,12 @@ 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 // 非特定语言 resources +#endif ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// -// 英语(美国) resources +// English(U.S.) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US @@ -2695,7 +2696,7 @@ END #endif // APSTUDIO_INVOKED -#endif // 英语(美国) resources +#endif // English(U.S.) resources ///////////////////////////////////////////////////////////////////////////// @@ -2705,7 +2706,8 @@ END // // Generated from the TEXTINCLUDE 3 resource. // - + + ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED