diff --git a/src/cart.h b/src/cart.h index 249e0c56..e94ee17b 100644 --- a/src/cart.h +++ b/src/cart.h @@ -1,3 +1,6 @@ +#ifndef CART_H +#define CART_H + typedef struct { // Set by mapper/board code: void (*Power)(void); @@ -100,3 +103,5 @@ void FCEU_GeniePower(void); bool FCEU_OpenGenie(void); void FCEU_CloseGenie(void); void FCEU_KillGenie(void); + +#endif#endif \ No newline at end of file diff --git a/src/cheat.cpp b/src/cheat.cpp index 031f0c04..0ac5955c 100644 --- a/src/cheat.cpp +++ b/src/cheat.cpp @@ -62,6 +62,8 @@ void FCEU_CheatAddRAM(int s, uint32 A, uint8 *p) CHEATF_SUBFAST SubCheats[256] = { 0 }; uint32 numsubcheats = 0; +int globalCheatDisabled = 0; +int disableAutoLSCheats = 0; struct CHEATF *cheats = 0, *cheatsl = 0; @@ -104,11 +106,10 @@ void RebuildSubCheats(void) SetReadHandler(SubCheats[x].addr, SubCheats[x].addr, SubCheats[x].PrevRead); numsubcheats = 0; - while(c) - { - if(c->type == 1 && c->status) + if (!globalCheatDisabled) + while(c) { - if(GetReadHandler(c->addr) != SubCheatsRead) + if(c->type == 1 && c->status && GetReadHandler(c->addr) != SubCheatsRead) { SubCheats[numsubcheats].PrevRead = GetReadHandler(c->addr); SubCheats[numsubcheats].addr = c->addr; @@ -117,9 +118,9 @@ void RebuildSubCheats(void) SetReadHandler(c->addr, c->addr, SubCheatsRead); numsubcheats++; } + c = c->next; } - c = c->next; - } + FrozenAddressCount = numsubcheats; //Update the frozen address list UpdateFrozenList(); @@ -243,7 +244,6 @@ void FCEU_LoadGameCheats(FILE *override, int override_existing) char *neo = &tbuf[4+2+2+1+1+1]; if(sscanf(tbuf, "%04x%*[:]%02x%*[:]%02x", &addr, &val, &compare) != 3) continue; - char namebuf[128]; strcpy(namebuf, neo); } else @@ -277,6 +277,31 @@ void FCEU_LoadGameCheats(FILE *override, int override_existing) fclose(fp); } +void FCEU_SaveGameCheats(FILE* fp, int release) +{ + struct CHEATF *next = cheats; + while (next) + { + if (next->type) + fputc('S', fp); + if (next->compare >= 0) + fputc('C', fp); + + if (!next->status) + fputc(':', fp); + + if (next->compare >= 0) + fprintf(fp, "%04x:%02x:%02x:%s\n", next->addr, next->val, next->compare, next->name); + else + fprintf(fp, "%04x:%02x:%s\n", next->addr, next->val, next->name); + + if (release) free(next->name); + struct CHEATF *t = next; + next = next->next; + if (release) free(t); + } +} + void FCEU_FlushGameCheats(FILE *override, int nosave) { if(CheatComp) @@ -309,7 +334,6 @@ void FCEU_FlushGameCheats(FILE *override, int nosave) if(cheats) { - struct CHEATF *next=cheats; FILE *fp; if(override) @@ -319,28 +343,7 @@ void FCEU_FlushGameCheats(FILE *override, int nosave) if(fp) { - for(;;) - { - struct CHEATF *t; - if(next->type) - fputc('S',fp); - if(next->compare>=0) - fputc('C',fp); - - if(!next->status) - fputc(':',fp); - - if(next->compare>=0) - fprintf(fp,"%04x:%02x:%02x:%s\n",next->addr,next->val,next->compare,next->name); - else - fprintf(fp,"%04x:%02x:%s\n",next->addr,next->val,next->name); - - free(next->name); - t=next; - next=next->next; - free(t); - if(!next) break; - } + FCEU_SaveGameCheats(fp, 1); if(!override) fclose(fp); } @@ -642,6 +645,14 @@ int FCEUI_ToggleCheat(uint32 which) return(-1); } +int FCEUI_GlobalToggleCheat(int global_enabled) +{ + int _numsubcheats = numsubcheats; + globalCheatDisabled = !global_enabled; + RebuildSubCheats(); + return _numsubcheats != numsubcheats; +} + static int InitCheatComp(void) { uint32 x; diff --git a/src/cheat.h b/src/cheat.h index e2cbae9f..84e75ef7 100644 --- a/src/cheat.h +++ b/src/cheat.h @@ -1,8 +1,12 @@ +#ifndef CHEAT_H +#define CHEAT_H void FCEU_CheatResetRAM(void); void FCEU_CheatAddRAM(int s, uint32 A, uint8 *p); void FCEU_LoadGameCheats(FILE *override, int override_existing = 1); void FCEU_FlushGameCheats(FILE *override, int nosave); +void FCEU_SaveGameCheats(FILE *fp, int release = 0); +int FCEUI_GlobalToggleCheat(int global_enabled); void FCEU_ApplyPeriodicCheats(void); void FCEU_PowerCheats(void); int FCEU_CalcCheatAffectedBytes(uint32 address, uint32 size); @@ -12,6 +16,8 @@ int FCEU_CheatGetByte(uint32 A); void FCEU_CheatSetByte(uint32 A, uint8 V); extern int savecheats; +extern int globalCheatDisabled; +extern int disableAutoLSCheats; int FCEU_DisableAllCheats(); @@ -55,3 +61,4 @@ struct SEARCHPOSSIBLE { for (int i = 0; i < numsubcheats && count < size; ++i) \ if (SubCheats[i].addr >= address && SubCheats[i].addr < address + size) \ ++count +#endif \ No newline at end of file diff --git a/src/driver.h b/src/driver.h index 372d9944..496ab636 100644 --- a/src/driver.h +++ b/src/driver.h @@ -191,6 +191,7 @@ int FCEUI_DecodeGG(const char *str, int *a, int *v, int *c); int FCEUI_AddCheat(const char *name, uint32 addr, uint8 val, int compare, int type); int FCEUI_DelCheat(uint32 which); int FCEUI_ToggleCheat(uint32 which); +int FCEUI_GlobalToggleCheat(int global_enable); int32 FCEUI_CheatSearchGetCount(void); void FCEUI_CheatSearchGetRange(uint32 first, uint32 last, int (*callb)(uint32 a, uint8 last, uint8 current)); diff --git a/src/drivers/common/cheat.h b/src/drivers/common/cheat.h index 77619fe3..d8dc8f60 100644 --- a/src/drivers/common/cheat.h +++ b/src/drivers/common/cheat.h @@ -17,5 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ - +#ifndef COMMON_CHEAT_H +#define COMMON_CHEAT_H void DoConsoleCheatConfig(void); +#endif \ No newline at end of file diff --git a/src/drivers/win/cdlogger.cpp b/src/drivers/win/cdlogger.cpp index fb3d174c..a07de140 100644 --- a/src/drivers/win/cdlogger.cpp +++ b/src/drivers/win/cdlogger.cpp @@ -135,7 +135,7 @@ BOOL CALLBACK CDLoggerCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPara FreeCDLog(); RenameCDLog(""); hCDLogger = 0; - EndDialog(hwndDlg, 0); + DestroyWindow(hwndDlg); } break; case WM_COMMAND: diff --git a/src/drivers/win/cheat.cpp b/src/drivers/win/cheat.cpp index d8e8d121..530a12ea 100644 --- a/src/drivers/win/cheat.cpp +++ b/src/drivers/win/cheat.cpp @@ -29,11 +29,13 @@ #include "../../cheat.h" // For FCEU_LoadGameCheats() #include -static HWND pwindow = 0; //Handle to Cheats dialog -HWND hCheat = 0; //mbg merge 7/19/06 had to add +// static HWND pwindow = 0; // owomomo: removed pwindow because ambiguous, perhaps it is some obseleted early future plan from half developed old FCEUX? +HWND hCheat = 0; //Handle to Cheats dialog HMENU hCheatcontext = 0; //Handle to cheat context menu bool pauseWhileActive = false; //For checkbox "Pause while active" +extern int globalCheatDisabled; +extern int disableAutoLSCheats; extern bool wasPausedByCheats; int CheatWindow; @@ -62,17 +64,18 @@ int lbfocus = 0; int searchdone; static int knownvalue = 0; -int GGaddr, GGcomp, GGval; -char GGcode[10]; +// int GGaddr, GGcomp, GGval; +// char GGcode[10]; int GGlist[GGLISTSIZE]; static int dontupdateGG; //this eliminates recursive crashing +char* GameGenieLetters = "APZLGITYEOXUKSVN"; // bool dodecode; HWND hGGConv; void EncodeGG(char *str, int a, int v, int c); -void ListGGAddresses(); +void ListGGAddresses(HWND hwndDlg); uint16 StrToU16(char *s) { @@ -292,18 +295,28 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l { case WM_INITDIALOG: { - if (ChtPosX == -32000) ChtPosX = 0; //Just in case - if (ChtPosY == -32000) ChtPosY = 0; - SetWindowPos(hwndDlg, 0, ChtPosX, ChtPosY, 0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOOWNERZORDER); + POINT pt; + if (ChtPosX != 0 && ChtPosY != 0) + { + pt.x = ChtPosX; + pt.y = ChtPosY; + pt = CalcSubWindowPos(hwndDlg, &pt); + } + else + pt = CalcSubWindowPos(hwndDlg, NULL); - CheckDlgButton(hwndDlg, IDC_CHEAT_PAUSEWHENACTIVE, pauseWhileActive ? MF_CHECKED : MF_UNCHECKED); + ChtPosX = pt.x; + ChtPosY = pt.y; + + + // SetWindowPos(hwndDlg, 0, ChtPosX, ChtPosY, 0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOOWNERZORDER); + + CheckDlgButton(hwndDlg, IDC_CHEAT_PAUSEWHENACTIVE, pauseWhileActive ? BST_CHECKED : BST_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_CHEAT_GLOBAL_SWITCH, globalCheatDisabled ? BST_UNCHECKED : BST_CHECKED); + CheckDlgButton(hwndDlg, IDC_CHEAT_AUTOLOADSAVE, disableAutoLSCheats == 2 ? BST_UNCHECKED : disableAutoLSCheats == 1 ? BST_INDETERMINATE : BST_CHECKED); //setup font - hFont = (HFONT)SendMessage(hwndDlg, WM_GETFONT, 0, 0); - LOGFONT lf; - GetObject(hFont, sizeof(LOGFONT), &lf); - strcpy(lf.lfFaceName, "Courier New"); - hNewFont = CreateFontIndirect(&lf); + SetupCheatFont(hwndDlg); SendDlgItemMessage(hwndDlg, IDC_CHEAT_ADDR, WM_SETFONT, (WPARAM)hNewFont, FALSE); SendDlgItemMessage(hwndDlg, IDC_CHEAT_VAL, WM_SETFONT, (WPARAM)hNewFont, FALSE); @@ -325,6 +338,21 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l SendDlgItemMessage(hwndDlg, IDC_CHEAT_VAL_GT_BY, EM_SETLIMITTEXT, 2, 0); SendDlgItemMessage(hwndDlg, IDC_CHEAT_VAL_LT_BY, EM_SETLIMITTEXT, 2, 0); SendDlgItemMessage(hwndDlg, IDC_CHEAT_TEXT, EM_SETLIMITTEXT, 10, 0); + SendDlgItemMessage(hwndDlg, IDC_CHEAT_GAME_GENIE_TEXT, EM_SETLIMITTEXT, 8, 0); + + // limit their characters + DefaultEditCtrlProc = (WNDPROC)SetWindowLong(GetDlgItem(hwndDlg, IDC_CHEAT_ADDR), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLong(GetDlgItem(hwndDlg, IDC_CHEAT_ADDR), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLong(GetDlgItem(hwndDlg, IDC_CHEAT_VAL), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLong(GetDlgItem(hwndDlg, IDC_CHEAT_COM), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLong(GetDlgItem(hwndDlg, IDC_CHEAT_VAL_KNOWN), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLong(GetDlgItem(hwndDlg, IDC_CHEAT_VAL_NE_BY), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLong(GetDlgItem(hwndDlg, IDC_CHEAT_VAL_GT_BY), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLong(GetDlgItem(hwndDlg, IDC_CHEAT_VAL_LT_BY), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLong(GetDlgItem(hwndDlg, IDC_CHEAT_TEXT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLong(GetDlgItem(hwndDlg, IDC_CHEAT_GAME_GENIE_TEXT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + + possiTotalCount = 0; possiItemCount = SendDlgItemMessage(hwndDlg, IDC_CHEAT_LIST_POSSIBILITIES, LVM_GETCOUNTPERPAGE, 0, 0); @@ -338,7 +366,7 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l //misc setup searchdone = 0; - SetDlgItemText(hwndDlg, IDC_CHEAT_VAL_KNOWN, (LPTSTR)U8ToStr(knownvalue)); + SetDlgItemText(hwndDlg, IDC_CHEAT_VAL_KNOWN, (LPCSTR)U8ToStr(knownvalue)); // Enable Context Sub-Menus hCheatcontext = LoadMenu(fceu_hInstance, "CHEATCONTEXTMENUS"); @@ -356,7 +384,6 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l wasPausedByCheats = true; FCEU_printf("Emulation paused: %d\n", EmulationPaused); } - } if (CheatStyle && possiTotalCount) { if ((!wParam) && searchdone) { @@ -366,6 +393,7 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l ShowResults(hwndDlg); } break; + case WM_QUIT: case WM_CLOSE: if (CheatStyle) DestroyWindow(hwndDlg); @@ -375,8 +403,7 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l case WM_DESTROY: CheatWindow = 0; hCheat = NULL; - DeleteObject(hFont); - DeleteObject(hNewFont); + DeleteCheatFont(); if (searchdone) FCEUI_CheatSearchSetCurrentAsOriginal(); possiList.clear(); @@ -620,12 +647,12 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l RedoCheatsCallB(name, a, v, c, s, 1, &selcheat); SendDlgItemMessage(hwndDlg, IDC_LIST_CHEATS, LVM_SETSELECTIONMARK, 0, selcheat); - SetDlgItemText(hwndDlg, IDC_CHEAT_ADDR, (LPTSTR)U16ToStr(a)); - SetDlgItemText(hwndDlg, IDC_CHEAT_VAL, (LPTSTR)U8ToStr(v)); + SetDlgItemText(hwndDlg, IDC_CHEAT_ADDR, (LPCSTR)U16ToStr(a)); + SetDlgItemText(hwndDlg, IDC_CHEAT_VAL, (LPCSTR)U8ToStr(v)); if (c == -1) - SetDlgItemText(hwndDlg, IDC_CHEAT_COM, (LPTSTR)""); + SetDlgItemText(hwndDlg, IDC_CHEAT_COM, (LPCSTR)""); else - SetDlgItemText(hwndDlg, IDC_CHEAT_COM, (LPTSTR)U8ToStr(c)); + SetDlgItemText(hwndDlg, IDC_CHEAT_COM, (LPCSTR)U8ToStr(c)); UpdateCheatRelatedWindow(); UpdateCheatListGroupBoxUI(); // UpdateCheatAdded(); @@ -633,25 +660,10 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l } case IDC_BTN_CHEAT_ADDFROMFILE: { - OPENFILENAME ofn; - memset(&ofn, 0, sizeof(ofn)); - ofn.lStructSize = sizeof(ofn); - ofn.hwndOwner = hwndDlg; - ofn.hInstance = fceu_hInstance; - ofn.lpstrTitle = "Open Cheats file"; - const char filter[] = "Cheat files (*.cht)\0*.cht\0All Files (*.*)\0*.*\0\0"; - ofn.lpstrFilter = filter; - - char nameo[2048] = { 0 }; - ofn.lpstrFile = nameo; - ofn.nMaxFile = 2048; - ofn.Flags = OFN_EXPLORER | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_FILEMUSTEXIST; - std::string initdir = FCEU_GetPath(FCEUMKF_CHEAT); - ofn.lpstrInitialDir = initdir.c_str(); - - if (GetOpenFileName(&ofn)) + char filename[2048]; + if (ShowCheatFileBox(hwndDlg, filename, false)) { - FILE* file = FCEUD_UTF8fopen(nameo, "rb"); + FILE* file = FCEUD_UTF8fopen(filename, "rb"); if (file) { FCEU_LoadGameCheats(file, 0); @@ -662,6 +674,9 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l } } break; + case IDC_BTN_CHEAT_EXPORTTOFILE: + SaveCheatAs(hwndDlg); + break; case IDC_BTN_CHEAT_RESET: FCEUI_CheatSearchBegin(); ShowResults(hwndDlg); @@ -718,6 +733,27 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l ShowResults(hwndDlg); } break; + case IDC_CHEAT_GLOBAL_SWITCH: + if (FCEUI_GlobalToggleCheat(IsDlgButtonChecked(hwndDlg, IDC_CHEAT_GLOBAL_SWITCH))) + { + UpdateCheatRelatedWindow(); + UpdateCheatListGroupBoxUI(); + } + break; + case IDC_CHEAT_AUTOLOADSAVE: + switch (IsDlgButtonChecked(hwndDlg, IDC_CHEAT_AUTOLOADSAVE)) + { + case BST_CHECKED: disableAutoLSCheats = 0; break; + case BST_INDETERMINATE: disableAutoLSCheats = 1; break; + case BST_UNCHECKED: + if(MessageBox(hwndDlg, "If this option is unchecked, you must manually save the cheats by yourself, or all the changed you made to the cheat list would be discarded silently without any asking once you close the game!\nDo you really want to do it in this way?", "Cheat warning", MB_YESNO | MB_ICONWARNING) == IDYES) + disableAutoLSCheats = 2; + else + { + disableAutoLSCheats = 0; + CheckDlgButton(hwndDlg, IDC_CHEAT_AUTOLOADSAVE, BST_CHECKED); + } + } } break; case EN_SETFOCUS: @@ -727,6 +763,7 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l case IDC_CHEAT_VAL: case IDC_CHEAT_COM: editMode = 0; break; case IDC_CHEAT_TEXT: editMode = 1; break; + case IDC_CHEAT_GAME_GENIE_TEXT: editMode = 2; break; } break; case EN_UPDATE: @@ -740,8 +777,13 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l { char buf[16]; uint32 a; uint8 v; int c; GetUICheatInfo(hwndDlg, NULL, &a, &v, &c); - GetCheatStr(buf, a, v, c); + buf[0] = 0; + GetCheatCodeStr(buf, a, v, c); SetDlgItemText(hwndDlg, IDC_CHEAT_TEXT, buf); + buf[0] = 0; + if (a > 0x7FFF && v != -1) + EncodeGG(buf, a, v, c); + SetDlgItemText(hwndDlg, IDC_CHEAT_GAME_GENIE_TEXT, buf); } } break; @@ -751,7 +793,7 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l { char buf[16]; GetDlgItemText(hwndDlg, IDC_CHEAT_TEXT, buf, 16); - int a = -1, v = -1; int c = -1; + int a = -1, v = -1, c = -1; if (strchr(buf, ':')) { if (strchr(buf, '?')) @@ -759,12 +801,35 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l else sscanf(buf, "%X:%X", &a, &v); } - else if (strlen(buf) == 6 || strlen(buf) == 8) + + SetDlgItemText(hwndDlg, IDC_CHEAT_ADDR, (LPCSTR)(a == -1 ? "" : U16ToStr(a))); + SetDlgItemText(hwndDlg, IDC_CHEAT_VAL, (LPCSTR)(v == -1 ? "" : U8ToStr(v))); + SetDlgItemText(hwndDlg, IDC_CHEAT_COM, (LPCSTR)(c == -1 ? "" : U8ToStr(c))); + buf[0] = 0; + if (a > 0x7FFF && v != -1) + EncodeGG(buf, a, v, c); + SetDlgItemText(hwndDlg, IDC_CHEAT_GAME_GENIE_TEXT, buf); + } + } + break; + case IDC_CHEAT_GAME_GENIE_TEXT: + { + if (editMode == 2) + { + char buf[16]; + GetDlgItemText(hwndDlg, IDC_CHEAT_GAME_GENIE_TEXT, buf, 16); + int a = -1, v = -1, c = -1; + if (strlen(buf) == 6 || strlen(buf) == 8) FCEUI_DecodeGG(buf, &a, &v, &c); - SetDlgItemText(hwndDlg, IDC_CHEAT_ADDR, (LPTSTR)(a == -1 ? "" : U16ToStr(a))); - SetDlgItemText(hwndDlg, IDC_CHEAT_VAL, (LPTSTR)(v == -1 ? "" : U8ToStr(v))); - SetDlgItemText(hwndDlg, IDC_CHEAT_COM, (LPTSTR)(c == -1 ? "" : U8ToStr(c))); + SetDlgItemText(hwndDlg, IDC_CHEAT_ADDR, (LPCSTR)(a == -1 ? "" : U16ToStr(a))); + SetDlgItemText(hwndDlg, IDC_CHEAT_VAL, (LPCSTR)(v == -1 ? "" : U8ToStr(v))); + SetDlgItemText(hwndDlg, IDC_CHEAT_COM, (LPCSTR)(c == -1 ? "" : U8ToStr(c))); + + buf[0] = 0; + if (a != -1 && v != -1) + GetCheatCodeStr(buf, a, v, c); + SetDlgItemText(hwndDlg, IDC_CHEAT_TEXT, buf); } } } @@ -793,15 +858,20 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l { char* name = ""; uint32 a; uint8 v; int s; int c; FCEUI_GetCheat(selcheat, &name, &a, &v, &c, &s, NULL); - SetDlgItemText(hwndDlg, IDC_CHEAT_NAME, (LPTSTR)name); - SetDlgItemText(hwndDlg, IDC_CHEAT_ADDR, (LPTSTR)U16ToStr(a)); - SetDlgItemText(hwndDlg, IDC_CHEAT_VAL, (LPTSTR)U8ToStr(v)); - SetDlgItemText(hwndDlg, IDC_CHEAT_COM, (LPTSTR)(c == -1 ? "" : U8ToStr(c))); + SetDlgItemText(hwndDlg, IDC_CHEAT_NAME, (LPCSTR)name); + SetDlgItemText(hwndDlg, IDC_CHEAT_ADDR, (LPCSTR)U16ToStr(a)); + SetDlgItemText(hwndDlg, IDC_CHEAT_VAL, (LPCSTR)U8ToStr(v)); + SetDlgItemText(hwndDlg, IDC_CHEAT_COM, (LPCSTR)(c == -1 ? "" : U8ToStr(c))); char code[32]; - GetCheatStr(code, a, v, c); - + code[0] = 0; + GetCheatCodeStr(code, a, v, c); SetDlgItemText(hwndDlg, IDC_CHEAT_TEXT, code); + code[0] = 0; + if (a > 0x7FFF && v != -1) + EncodeGG(code, a, v, c); + SetDlgItemText(hwndDlg, IDC_CHEAT_GAME_GENIE_TEXT, code); + } EnableWindow(GetDlgItem(hwndDlg, IDC_BTN_CHEAT_DEL), selcheatcount > 0); @@ -819,7 +889,6 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l if (!s) { FCEUI_SetCheat(tmpsel, name, -1, -1, -2, s ^= 1, 1); - UpdateCheatRelatedWindow(); UpdateCheatListGroupBoxUI(); } @@ -858,10 +927,10 @@ BOOL CALLBACK CheatConsoleCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM l SEARCHPOSSIBLE& possible = possiList[pNMListView->iItem]; char str[16]; sprintf(str, "%04X", possible.addr); - SetDlgItemText(hwndDlg, IDC_CHEAT_ADDR, (LPCTSTR)str); + SetDlgItemText(hwndDlg, IDC_CHEAT_ADDR, (LPCSTR)str); sprintf(str, "%02X", possible.current); - SetDlgItemText(hwndDlg, IDC_CHEAT_VAL, (LPCTSTR)str); - SetDlgItemText(hwndDlg, IDC_CHEAT_COM, (LPTSTR)""); + SetDlgItemText(hwndDlg, IDC_CHEAT_VAL, (LPCSTR)str); + SetDlgItemText(hwndDlg, IDC_CHEAT_COM, (LPCSTR)""); } } break; @@ -922,7 +991,7 @@ void ConfigCheats(HWND hParent) selcheat = -1; CheatWindow = 1; if (CheatStyle) - pwindow = hCheat = CreateDialog(fceu_hInstance, "CHEATCONSOLE", hParent, CheatConsoleCallB); + hCheat = CreateDialog(fceu_hInstance, "CHEATCONSOLE", hParent, CheatConsoleCallB); else DialogBox(fceu_hInstance, "CHEATCONSOLE", hParent, CheatConsoleCallB); UpdateCheatsAdded(); @@ -936,10 +1005,10 @@ void ConfigCheats(HWND hParent) void UpdateCheatList() { - if (!pwindow) + if (!hCheat) return; else - ShowResults(pwindow); + ShowResults(hCheat); } void UpdateCheatListGroupBoxUI() @@ -963,8 +1032,9 @@ void UpdateCheatListGroupBoxUI() EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_ADD), FALSE); EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_ADDFROMFILE), FALSE); } - SetDlgItemText(hCheat, IDC_GROUPBOX_CHEATLIST, temp); + + EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_EXPORTTOFILE), cheats != 0); } //Used by cheats and external dialogs such as hex editor to update items in the cheat search dialog @@ -976,8 +1046,8 @@ void UpdateCheatsAdded() BOOL CALLBACK GGConvCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { - char str[100]; - int i; +// int i; + extern void GetUIGGInfo(HWND hwndDlg, uint32* a, uint8* v, int* c); switch(uMsg) { case WM_MOVE: { @@ -994,67 +1064,85 @@ BOOL CALLBACK GGConvCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) break; }; case WM_INITDIALOG: - //todo: set text limits - if (GGConv_wndx == -32000) - GGConv_wndx = 0; //Just in case - if (GGConv_wndy == -32000) - GGConv_wndy = 0; - SetWindowPos(hwndDlg, 0, GGConv_wndx, GGConv_wndy, 0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOOWNERZORDER); + { + POINT pt; + if (GGConv_wndx != 0 && GGConv_wndy != 0) + { + pt.x = GGConv_wndx; + pt.y = GGConv_wndy; + pt = CalcSubWindowPos(hwndDlg, &pt); + } + else + pt = CalcSubWindowPos(hwndDlg, NULL); + + GGConv_wndx = pt.x; + GGConv_wndy = pt.y; + + // text limits; SendDlgItemMessage(hwndDlg, IDC_GAME_GENIE_CODE, EM_SETLIMITTEXT, 8, 0); - break; + SendDlgItemMessage(hwndDlg, IDC_GAME_GENIE_ADDR, EM_SETLIMITTEXT, 4, 0); + SendDlgItemMessage(hwndDlg, IDC_GAME_GENIE_COMP, EM_SETLIMITTEXT, 2, 0); + SendDlgItemMessage(hwndDlg, IDC_GAME_GENIE_VAL, EM_SETLIMITTEXT, 2, 0); + + // setup font + SetupCheatFont(hwndDlg); + + SendDlgItemMessage(hwndDlg, IDC_GAME_GENIE_ADDR, WM_SETFONT, (WPARAM)hNewFont, FALSE); + SendDlgItemMessage(hwndDlg, IDC_GAME_GENIE_COMP, WM_SETFONT, (WPARAM)hNewFont, FALSE); + SendDlgItemMessage(hwndDlg, IDC_GAME_GENIE_VAL, WM_SETFONT, (WPARAM)hNewFont, FALSE); + + // limit their characters + DefaultEditCtrlProc = (WNDPROC)SetWindowLong(GetDlgItem(hwndDlg, IDC_GAME_GENIE_CODE), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLong(GetDlgItem(hwndDlg, IDC_GAME_GENIE_ADDR), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLong(GetDlgItem(hwndDlg, IDC_GAME_GENIE_COMP), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLong(GetDlgItem(hwndDlg, IDC_GAME_GENIE_VAL), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + } + break; case WM_CLOSE: case WM_QUIT: DestroyWindow(hGGConv); - hGGConv = 0; break; + case WM_DESTROY: + hGGConv = NULL; + DeleteCheatFont(); case WM_COMMAND: switch(HIWORD(wParam)) { case EN_UPDATE: if(dontupdateGG)break; dontupdateGG = 1; - switch(LOWORD(wParam)){ //lets find out what edit control got changed + switch(LOWORD(wParam)) + { + //lets find out what edit control got changed case IDC_GAME_GENIE_CODE: //The Game Genie Code - in this case decode it. - GetDlgItemText(hGGConv,IDC_GAME_GENIE_CODE,GGcode,9); - if((strlen(GGcode) != 8) && (strlen(GGcode) != 6))break; + { + char buf[9]; + GetDlgItemText(hGGConv, IDC_GAME_GENIE_CODE, buf, 9); - FCEUI_DecodeGG(GGcode, &GGaddr, &GGval, &GGcomp); + int a = -1, v = -1, c = -1; + if (strlen(buf) == 6 || strlen(buf) == 8) + FCEUI_DecodeGG(buf, &a, &v, &c); - sprintf(str,"%04X",GGaddr); - SetDlgItemText(hGGConv,IDC_GAME_GENIE_ADDR,str); - - if(GGcomp != -1) - sprintf(str,"%02X",GGcomp); - else str[0] = 0; - SetDlgItemText(hGGConv,IDC_GAME_GENIE_COMP,str); - - sprintf(str,"%02X",GGval); - SetDlgItemText(hGGConv,IDC_GAME_GENIE_VAL,str); - //ListGGAddresses(); + SetDlgItemText(hwndDlg, IDC_GAME_GENIE_ADDR, a == -1 ? "" : U16ToStr(a)); + SetDlgItemText(hwndDlg, IDC_GAME_GENIE_COMP, c == -1 ? "" : U8ToStr(c)); + SetDlgItemText(hwndDlg, IDC_GAME_GENIE_VAL, v == -1 ? "" : U8ToStr(v)); + } break; case IDC_GAME_GENIE_ADDR: case IDC_GAME_GENIE_COMP: case IDC_GAME_GENIE_VAL: - GetDlgItemText(hGGConv,IDC_GAME_GENIE_ADDR,str,5); - if(strlen(str) != 4) break; - - GetDlgItemText(hGGConv,IDC_GAME_GENIE_VAL,str,5); - if(strlen(str) != 2) {GGval = -1; break;} - - GGaddr = GetEditHex(hGGConv,IDC_GAME_GENIE_ADDR); - GGval = GetEditHex(hGGConv,IDC_GAME_GENIE_VAL); - - GetDlgItemText(hGGConv,IDC_GAME_GENIE_COMP,str,5); - if(strlen(str) != 2) GGcomp = -1; - else GGcomp = GetEditHex(hGGConv,IDC_GAME_GENIE_COMP); - - EncodeGG(GGcode, GGaddr, GGval, GGcomp); - SetDlgItemText(hGGConv,IDC_GAME_GENIE_CODE,GGcode); + uint32 a = -1; uint8 v = -1; int c = -1; + GetUIGGInfo(hwndDlg, &a, &v, &c); + + char buf[9] = { 0 }; + if (a > 0x7FFF && v != -1) + EncodeGG(buf, a, v, c); + SetDlgItemText(hwndDlg, IDC_GAME_GENIE_CODE, buf); //ListGGAddresses(); break; } - ListGGAddresses(); + ListGGAddresses(hwndDlg); dontupdateGG = 0; break; case BN_CLICKED: @@ -1062,20 +1150,22 @@ BOOL CALLBACK GGConvCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) case IDC_BTN_ADD_TO_CHEATS: //ConfigCheats(fceu_hInstance); - if(GGaddr < 0x8000)GGaddr += 0x8000; + char buf[9]; + uint32 a = -1; uint8 v = -1; int c = -1; + GetUIGGInfo(hwndDlg, &a, &v, &c); + GetDlgItemText(hwndDlg, IDC_GAME_GENIE_CODE, buf, 9); - if (FCEUI_AddCheat(GGcode, GGaddr, GGval, GGcomp, 1) && hCheat) { - RedoCheatsCallB(GGcode, GGaddr, GGval, GGcomp, 1, 1, NULL); + if(a < 0x8000) a += 0x8000; + + if (FCEUI_AddCheat(buf, a, v, c, 1) && hCheat) { + RedoCheatsCallB(buf, a, v, c, 1, 1, NULL); int newselcheat = SendDlgItemMessage(hCheat, IDC_LIST_CHEATS, LVM_GETITEMCOUNT, 0, 0) - 1; ListView_MoveSelectionMark(GetDlgItem(hCheat, IDC_LIST_CHEATS), selcheat, newselcheat); selcheat = newselcheat; - SetDlgItemText(hCheat, IDC_CHEAT_ADDR, (LPTSTR)U16ToStr(GGaddr)); - SetDlgItemText(hCheat, IDC_CHEAT_VAL, (LPTSTR)U8ToStr(GGval)); - if(GGcomp == -1) - SetDlgItemText(hwndDlg, IDC_CHEAT_COM, (LPTSTR)""); - else - SetDlgItemText(hwndDlg, IDC_CHEAT_COM, (LPTSTR)U8ToStr(GGcomp)); + SetDlgItemText(hCheat, IDC_CHEAT_ADDR, (LPCSTR)U16ToStr(a)); + SetDlgItemText(hCheat, IDC_CHEAT_VAL, (LPCSTR)U8ToStr(v)); + SetDlgItemText(hCheat, IDC_CHEAT_COM, (LPCSTR)(c == -1 ? "" : U8ToStr(c))); EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_DEL), TRUE); EnableWindow(GetDlgItem(hCheat, IDC_BTN_CHEAT_UPD), TRUE); @@ -1088,27 +1178,22 @@ BOOL CALLBACK GGConvCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) case LBN_DBLCLK: switch (LOWORD(wParam)) { case IDC_LIST_GGADDRESSES: - i = SendDlgItemMessage(hwndDlg,IDC_LIST_GGADDRESSES,LB_GETCURSEL,0,0); - ChangeMemViewFocus(3,GGlist[i],-1); + ChangeMemViewFocus(3,GGlist[SendDlgItemMessage(hwndDlg, IDC_LIST_GGADDRESSES, LB_GETCURSEL, 0, 0)],-1); break; } break; } break; - case WM_MOUSEMOVE: - break; - case WM_HSCROLL: - break; } return FALSE; } + //The code in this function is a modified version //of Chris Covell's work - I'd just like to point that out void EncodeGG(char *str, int a, int v, int c) { uint8 num[8]; - static char lets[16]={'A','P','Z','L','G','I','T','Y','E','O','X','U','K','S','V','N'}; int i; a&=0x7fff; @@ -1122,69 +1207,78 @@ void EncodeGG(char *str, int a, int v, int c) if (c == -1){ num[5]+=v&8; - for(i = 0;i < 6;i++)str[i] = lets[num[i]]; + for(i = 0;i < 6;i++)str[i] = GameGenieLetters[num[i]]; str[6] = 0; } else { num[2]+=8; num[5]+=c&8; num[6]=(c&7)+((c>>4)&8); num[7]=((c>>4)&7)+(v&8); - for(i = 0;i < 8;i++)str[i] = lets[num[i]]; + for(i = 0;i < 8;i++)str[i] = GameGenieLetters[num[i]]; str[8] = 0; } return; } -void ListGGAddresses() +void ListGGAddresses(HWND hwndDlg) { uint32 i, j = 0; //mbg merge 7/18/06 changed from int - char str[20]; - SendDlgItemMessage(hGGConv,IDC_LIST_GGADDRESSES,LB_RESETCONTENT,0,0); + char str[20], code[9]; + SendDlgItemMessage(hwndDlg, IDC_LIST_GGADDRESSES, LB_RESETCONTENT,0,0); - //also enable/disable the add GG button here - GetDlgItemText(hGGConv,IDC_GAME_GENIE_CODE,GGcode,9); + uint32 a = -1; uint8 v = -1; int c = -1; + extern void GetUIGGInfo(HWND hwnd, uint32* a, uint8* v, int* c); + GetUIGGInfo(hwndDlg, &a, &v, &c); - if((GGaddr < 0) || ((strlen(GGcode) != 8) && (strlen(GGcode) != 6)))EnableWindow(GetDlgItem(hGGConv,IDC_BTN_ADD_TO_CHEATS),FALSE); - else EnableWindow(GetDlgItem(hGGConv,IDC_BTN_ADD_TO_CHEATS),TRUE); + // also enable/disable the add GG button here + GetDlgItemText(hwndDlg, IDC_GAME_GENIE_CODE, code, 9); + EnableWindow(GetDlgItem(hwndDlg, IDC_BTN_ADD_TO_CHEATS), a >= 0 && (strlen(code) == 6 || strlen(code) == 8)); - for(i = 0;i < PRGsize[0];i+=0x2000){ - if((PRGptr[0][i+(GGaddr&0x1FFF)] == GGcomp) || (GGcomp == -1)){ - GGlist[j] = i+(GGaddr&0x1FFF)+0x10; - if(++j > GGLISTSIZE)return; - sprintf(str,"%06X",i+(GGaddr&0x1FFF)+0x10); - SendDlgItemMessage(hGGConv,IDC_LIST_GGADDRESSES,LB_ADDSTRING,0,(LPARAM)(LPSTR)str); - } - } + if (a != -1 && v != -1) + for(i = 0; i < PRGsize[0]; i += 0x2000) + if(c == -1 || PRGptr[0][i + (a & 0x1FFF)] == c){ + GGlist[j] = i + (a & 0x1FFF) + 0x10; + if(++j > GGLISTSIZE) + return; + sprintf(str, "%06X", i + (a & 0x1FFF) + 0x10); + SendDlgItemMessage(hwndDlg, IDC_LIST_GGADDRESSES, LB_ADDSTRING, 0, (LPARAM)str); + } } //A different model for this could be to have everything //set in the INITDIALOG message based on the internal //variables, and have this simply call that. -void SetGGConvFocus(int address,int compare) +void SetGGConvFocus(int address, int compare) { char str[10]; - if(!hGGConv)DoGGConv(); - GGaddr = address; - GGcomp = compare; + if(!hGGConv) + DoGGConv(); + // GGaddr = address; + // GGcomp = compare; dontupdateGG = 1; //little hack to fix a nasty bug - sprintf(str,"%04X",address); - SetDlgItemText(hGGConv,IDC_GAME_GENIE_ADDR,str); + sprintf(str, "%04X", address); + SetDlgItemText(hGGConv, IDC_GAME_GENIE_ADDR, str); dontupdateGG = 0; - sprintf(str,"%02X",GGcomp); - SetDlgItemText(hGGConv,IDC_GAME_GENIE_COMP,str); + sprintf(str, "%02X", compare); + SetDlgItemText(hGGConv, IDC_GAME_GENIE_COMP, str); + GetDlgItemText(hGGConv, IDC_GAME_GENIE_VAL, str, 3); + uint8 val = StrToU8(str); - if(GGval < 0)SetDlgItemText(hGGConv,IDC_GAME_GENIE_CODE,""); + if(val < 0) + SetDlgItemText(hGGConv, IDC_GAME_GENIE_CODE, ""); else { - EncodeGG(GGcode, GGaddr, GGval, GGcomp); - SetDlgItemText(hGGConv,IDC_GAME_GENIE_CODE,GGcode); + str[0] = 0; + if (val > 0x7FFF) + EncodeGG(str, address, val, compare); + SetDlgItemText(hGGConv, IDC_GAME_GENIE_CODE, str); } - SetFocus(GetDlgItem(hGGConv,IDC_GAME_GENIE_VAL)); + SetFocus(GetDlgItem(hGGConv, IDC_GAME_GENIE_VAL)); return; } @@ -1196,23 +1290,24 @@ void DoGGConv() ShowWindow(hGGConv, SW_SHOWNORMAL); SetForegroundWindow(hGGConv); } else - { - hGGConv = CreateDialog(fceu_hInstance,"GGCONV",NULL,GGConvCallB); - } - return; + hGGConv = CreateDialog(fceu_hInstance,"GGCONV", hAppWnd, GGConvCallB); } inline void GetCheatStr(char* buf, int a, int v, int c) { - if (a >= 0x8000) + if (a > 0x7FFF) EncodeGG(buf, a, v, c); else { - if (c == -1) - sprintf(buf, "%04X:%02X", (int)a, (int)v); - else - sprintf(buf, "%04X?%02X:%02X", (int)a, (int)c, (int)v); + GetCheatCodeStr(buf, a, v, c); } +} +inline void GetCheatCodeStr(char* buf, int a, int v, int c) +{ + if (c == -1) + sprintf(buf, "%04X:%02X", a, v); + else + sprintf(buf, "%04X?%02X:%02X", a, c, v); } void GetUICheatInfo(HWND hwndDlg, char* name, uint32* a, uint8* v, int* c) @@ -1228,6 +1323,17 @@ void GetUICheatInfo(HWND hwndDlg, char* name, uint32* a, uint8* v, int* c) GetDlgItemText(hwndDlg, IDC_CHEAT_NAME, name, 256); } +void GetUIGGInfo(HWND hwndDlg, uint32* a, uint8* v, int* c) +{ + char buf[16]; + GetDlgItemText(hwndDlg, IDC_GAME_GENIE_ADDR, buf, 5); + *a = StrToU16(buf); + GetDlgItemText(hwndDlg, IDC_GAME_GENIE_VAL, buf, 3); + *v = StrToU8(buf); + GetDlgItemText(hwndDlg, IDC_GAME_GENIE_COMP, buf, 3); + *c = (buf[0] == 0 ? -1 : StrToU8(buf)); +} + void DisableAllCheats() { if(FCEU_DisableAllCheats() && hCheat){ @@ -1269,4 +1375,112 @@ void UpdateCheatRelatedWindow() SendDlgItemMessage(RamWatchHWnd, IDC_WATCHLIST, LVM_GETCOUNTPERPAGE, 0, 0) + 1); } +} + +bool ShowCheatFileBox(HWND hwnd, char* buf, bool save) +{ + if (!buf) + return false; + + char filename[2048] = { 0 }; + + OPENFILENAME ofn; + memset(&ofn, 0, sizeof(OPENFILENAME)); + ofn.lStructSize = sizeof(OPENFILENAME); + ofn.hInstance = fceu_hInstance; + ofn.hwndOwner = hwnd; + ofn.lpstrTitle = save ? "Save cheats file" : "Open cheats file"; + ofn.lpstrFilter = "Cheat files (*.cht)\0*.cht\0All Files (*.*)\0*.*\0\0"; + + // I gave up setting the default filename for import cheat dialog, since the filename display contains a bug. + if (save) + { + if (GameInfo) + { + char* _filename; + if ((_filename = strrchr(GameInfo->filename, '\\')) || (_filename = strrchr(GameInfo->filename, '/'))) + strcpy(filename, _filename + 1); + else + strcpy(filename, GameInfo->filename); + + _filename = strrchr(filename, '.'); + if (_filename) + strcpy(_filename, ".cht"); + else + strcat(filename, ".cht"); + } + } + + ofn.lpstrFile = filename; + ofn.nMaxFile = sizeof(filename); + ofn.lpstrDefExt = "cht"; + ofn.Flags = OFN_EXPLORER | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_FILEMUSTEXIST; + ofn.lpstrInitialDir = FCEU_GetPath(FCEUMKF_CHEAT).c_str(); + + if (save ? GetSaveFileName(&ofn) : GetOpenFileName(&ofn)) + { + strcpy(buf, filename); + return true; + } + + return false; +} + +void AskSaveCheat() +{ + if (cheats) + { + HWND hwnd = hCheat ? hCheat : hAppWnd; + if (MessageBox(hwnd, "Save cheats?", "Cheat Console", MB_YESNO | MB_ICONASTERISK) == IDYES) + SaveCheatAs(hwnd, true); + } +} + + +void SaveCheatAs(HWND hwnd, bool flush) +{ + if (cheats) + { + char filename[2048]; + if (ShowCheatFileBox(hwnd, filename, true)) + { + FILE* file = FCEUD_UTF8fopen(filename, "wb"); + if (file) + { + if (flush) + { + savecheats = 1; + FCEU_FlushGameCheats(file, 0); + } + else + FCEU_SaveGameCheats(file); + fclose(file); + } + else + MessageBox(hwnd, "Error saving cheats!", "Cheat Console", MB_OK | MB_ICONERROR); + } + } +} + +void SetupCheatFont(HWND hwnd) +{ + if (!hCheat && !hGGConv) + { + hFont = (HFONT)SendMessage(hwnd, WM_GETFONT, 0, 0); + LOGFONT lf; + GetObject(hFont, sizeof(LOGFONT), &lf); + strcpy(lf.lfFaceName, "Courier New"); + hNewFont = CreateFontIndirect(&lf); + } +} + +void DeleteCheatFont() +{ + if (!hCheat && !hGGConv) + { + DeleteObject(hFont); + DeleteObject(hNewFont); + hFont = NULL; + hNewFont = NULL; + } } \ No newline at end of file diff --git a/src/drivers/win/cheat.h b/src/drivers/win/cheat.h index 99939705..28acc9e2 100644 --- a/src/drivers/win/cheat.h +++ b/src/drivers/win/cheat.h @@ -1,5 +1,7 @@ //-- //mbg merge 7/18/06 had to make these extern +#ifndef WIN_CHEAT_H +#define WIN_CHEAT_H extern int CheatWindow,CheatStyle; //bbit edited: this line added extern HWND hCheat; @@ -11,21 +13,35 @@ typedef unsigned int HWAddressType; void ConfigCheats(HWND hParent); void DoGGConv(); -void SetGGConvFocus(int address,int compare); +void SetGGConvFocus(int address, int compare); void UpdateCheatList(); void UpdateCheatListGroupBoxUI(); void UpdateCheatsAdded(); void ToggleCheatInputMode(HWND hwndDlg, int modeId); void GetUICheatInfo(HWND hwndDlg, char* name, uint32* a, uint8* v, int* c); inline void GetCheatStr(char* buf, int a, int v, int c); +inline void GetCheatCodeStr(char* buf, int a, int v, int c); extern unsigned int FrozenAddressCount; extern std::vector FrozenAddresses; //void ConfigAddCheat(HWND wnd); //bbit edited:commented out this line +extern struct CHEATF* cheats; +extern char* GameGenieLetters; void DisableAllCheats(); +bool ShowCheatFileBox(HWND hwnd, char* buf, bool save = false); +void AskSaveCheat(); +void SaveCheatAs(HWND hwnd, bool flush = false); void UpdateCheatRelatedWindow(); +void SetupCheatFont(HWND hDlg); +void DeleteCheatFont(); +extern POINT CalcSubWindowPos(HWND hDlg, POINT* conf); + +extern BOOL CALLBACK GGConvCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); +extern LRESULT APIENTRY FilterEditCtrlProc(HWND hDlg, UINT msg, WPARAM wP, LPARAM lP); +extern WNDPROC DefaultEditCtrlProc; + // deselect the old one and select the new one #define ListView_MoveSelectionMark(hwnd, prevIndex, newIndex) \ @@ -35,9 +51,11 @@ SendMessage(hwnd, LVM_SETITEMSTATE, newIndex, (LPARAM)&(lvi.state = LVIS_SELECTE SendMessage(hwnd, LVM_SETSELECTIONMARK, 0, newIndex) #define ClearCheatListText(hwnd) \ -(SetDlgItemText(hwnd, IDC_CHEAT_ADDR, (LPTSTR)"") & \ -SetDlgItemText(hwnd, IDC_CHEAT_VAL, (LPTSTR)"") & \ -SetDlgItemText(hwnd, IDC_CHEAT_COM, (LPTSTR)"") & \ -SetDlgItemText(hwnd, IDC_CHEAT_NAME, (LPTSTR)"") & \ -SetDlgItemText(hwnd, IDC_CHEAT_TEXT, (LPTSTR)"")) +(SetDlgItemText(hwnd, IDC_CHEAT_ADDR, (LPCSTR)"") & \ +SetDlgItemText(hwnd, IDC_CHEAT_VAL, (LPCSTR)"") & \ +SetDlgItemText(hwnd, IDC_CHEAT_COM, (LPCSTR)"") & \ +SetDlgItemText(hwnd, IDC_CHEAT_NAME, (LPCSTR)"") & \ +SetDlgItemText(hwnd, IDC_CHEAT_TEXT, (LPCSTR)"") & \ +SetDlgItemText(hwnd, IDC_CHEAT_GAME_GENIE_TEXT, (LPCSTR)"")) +#endif \ No newline at end of file diff --git a/src/drivers/win/config.cpp b/src/drivers/win/config.cpp index 8f798956..006e58c3 100644 --- a/src/drivers/win/config.cpp +++ b/src/drivers/win/config.cpp @@ -56,6 +56,8 @@ extern bool rightClickEnabled; extern bool fullscreenByDoubleclick; extern int CurrentState; extern bool pauseWhileActive; //adelikat: Cheats dialog +extern int globalCheatDisabled; +extern int disableAutoLSCheats; extern bool enableHUDrecording; extern bool disableMovieMessages; extern bool replaceP2StartWithMicrophone; @@ -466,6 +468,8 @@ static CFGSTRUCT fceuconfig[] = AC(backupSavestates), AC(compressSavestates), AC(pauseWhileActive), + AC(disableAutoLSCheats), + AC(globalCheatDisabled), AC(enableHUDrecording), AC(disableMovieMessages), AC(replaceP2StartWithMicrophone), diff --git a/src/drivers/win/debugger.cpp b/src/drivers/win/debugger.cpp index 1e9c5846..c38feaed 100644 --- a/src/drivers/win/debugger.cpp +++ b/src/drivers/win/debugger.cpp @@ -70,7 +70,7 @@ static HMENU hDisasmcontext; //Handle to context menu static HMENU hDisasmcontextsub; //Handle to context sub menu WNDPROC IDC_DEBUGGER_DISASSEMBLY_oldWndProc = 0; -static HFONT hFont; +// static HFONT hFont; static SCROLLINFO si; bool debuggerAutoload = false; @@ -276,8 +276,12 @@ BOOL CALLBACK AddbpCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { case WM_INITDIALOG: CenterWindow(hwndDlg); - SendDlgItemMessage(hwndDlg,IDC_ADDBP_ADDR_START,EM_SETLIMITTEXT,4,0); - SendDlgItemMessage(hwndDlg,IDC_ADDBP_ADDR_END,EM_SETLIMITTEXT,4,0); + SendDlgItemMessage(hwndDlg, IDC_ADDBP_ADDR_START, EM_SETLIMITTEXT, 4, 0); + SendDlgItemMessage(hwndDlg, IDC_ADDBP_ADDR_END, EM_SETLIMITTEXT, 4, 0); + + DefaultEditCtrlProc = (WNDPROC)SetWindowLong(GetDlgItem(hwndDlg, IDC_ADDBP_ADDR_START), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLong(GetDlgItem(hwndDlg, IDC_ADDBP_ADDR_END), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + if (WP_edit >= 0) { SetWindowText(hwndDlg,"Edit Breakpoint..."); @@ -359,7 +363,7 @@ BOOL CALLBACK AddbpCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) int tmp = NewBreakWindows(hwndDlg,WP_edit,(BOOL)(watchpoint[WP_edit].flags&WP_E)); if (tmp == 2 || tmp == INVALID_BREAKPOINT_CONDITION) { - MessageBox(hwndDlg, "Invalid breakpoint condition", "Error", MB_OK); + MessageBox(hwndDlg, "Invalid breakpoint condition", "Error", MB_OK | MB_ICONERROR); break; } EndDialog(hwndDlg,1); @@ -1820,6 +1824,14 @@ BOOL CALLBACK DebuggerCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPara SendDlgItemMessage(hwndDlg,IDC_DEBUGGER_VAL_PPU,EM_SETLIMITTEXT,4,0); SendDlgItemMessage(hwndDlg,IDC_DEBUGGER_VAL_SPR,EM_SETLIMITTEXT,2,0); + // limit input + DefaultEditCtrlProc = (WNDPROC)SetWindowLong(GetDlgItem(hwndDlg, IDC_DEBUGGER_VAL_PCSEEK), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLong(GetDlgItem(hwndDlg, IDC_DEBUGGER_VAL_PC), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLong(GetDlgItem(hwndDlg, IDC_DEBUGGER_VAL_A), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLong(GetDlgItem(hwndDlg, IDC_DEBUGGER_VAL_X), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLong(GetDlgItem(hwndDlg, IDC_DEBUGGER_VAL_Y), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLong(GetDlgItem(hwndDlg, IDC_DEBUGGER_BOOKMARK), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + //I'm lazy, disable the controls which I can't mess with right now SendDlgItemMessage(hwndDlg,IDC_DEBUGGER_VAL_PPU,EM_SETREADONLY,TRUE,0); SendDlgItemMessage(hwndDlg,IDC_DEBUGGER_VAL_SPR,EM_SETREADONLY,TRUE,0); @@ -2475,11 +2487,11 @@ void UpdatePatcher(HWND hwndDlg){ /// Updates debugger controls that should be enabled/disabled if a game is loaded. /// @param enable Flag that indicates whether the menus should be enabled (1) or disabled (0). -void updateGameDependentMenusDebugger(unsigned int enable) { +void updateGameDependentMenusDebugger() { if (!hDebug) return; - //EnableWindow(GetDlgItem(hDebug,DEBUGLOADDEB),(enable ? 0 : 1)); + // EnableWindow(GetDlgItem(hDebug,DEBUGLOADDEB), GameInfo != 0 ? FALSE : TRUE); } void DoDebug(uint8 halt) @@ -2496,7 +2508,7 @@ void DoDebug(uint8 halt) ShowWindow(hDebug, SW_SHOWNORMAL); SetForegroundWindow(hDebug); - updateGameDependentMenusDebugger(GameInfo != 0); + updateGameDependentMenusDebugger(); if (GameInfo) UpdateDebugger(true); diff --git a/src/drivers/win/debugger.h b/src/drivers/win/debugger.h index befd1cff..63e9722d 100644 --- a/src/drivers/win/debugger.h +++ b/src/drivers/win/debugger.h @@ -43,7 +43,7 @@ void Disassemble(HWND hWnd, int id, int scrollid, unsigned int addr); void PrintOffsetToSeekAndBookmarkFields(int offset); void LoadGameDebuggerData(HWND hwndDlg); -void updateGameDependentMenusDebugger(unsigned int enable); +void updateGameDependentMenusDebugger(); extern bool inDebugger; @@ -69,5 +69,7 @@ public: } *debugSystem; +// extern WNDPROC DefaultEditCtrlProc; +// extern LRESULT APIENTRY FilterEditCtrlProc(HWND hwnd, UINT msg, WPARAM wP, LPARAM lP); #endif diff --git a/src/drivers/win/header_editor.cpp b/src/drivers/win/header_editor.cpp new file mode 100644 index 00000000..14c95733 --- /dev/null +++ b/src/drivers/win/header_editor.cpp @@ -0,0 +1,1691 @@ + +#include +#include "common.h" +#include "fceu.h" +#include "types.h" +#include "x6502.h" +#include "cart.h" +#include "ines.h" + +#include "resource.h" +#include "header_editor.h" + + +// VS System type +char* vsSysList[] = { + "Normal", + "RBI Baseball", + "TKO Boxing", + "Super Xevious", + "Ice Climber", + "Dual Normal", + "Dual Raid on Bungeling Bay", + 0 +}; + +// VS PPU type +char* vsPPUList[] = { + "RP2C03B", + "RP2C03G", + "RP2C04-0001", + "RP2C04-0002", + "RP2C04-0003", + "RP2C04-0004", + "RC2C03B", + "RC2C03C", + "RC2C05-01 ($2002 AND $??=$1B)", + "RC2C05-02 ($2002 AND $3F=$3D)", + "RC2C05-03 ($2002 AND $1F=$1C)", + "RC2C05-04 ($2002 AND $1F=$1B)", + "RC2C05-05 ($2002 AND $1F=$??)", + "Reserved", + "Reserved", + "Reserved", + 0 +}; + +// Extend console type +char* extConsoleList[] = { + "Normal", + "VS. System", + "Playchoice 10", + "Bit Corp. Creator", + "V.R. Tech. VT01 monochrome", + "V.R. Tech. VT01 red / cyan", + "V.R. Tech. VT02", + "V.R. Tech. VT03", + "V.R. Tech. VT09", + "V.R. Tech. VT32", + "V.R. Tech. VT369", + "Reserved", + "Reserved", + "Reserved", + "Reserved", + "Reserved", + 0 +}; + +// Default input device list +char* inputDevList[] = { + "Unspecified", + "Standard NES / Famicom Controllers", + "Four-score (NES)", + "Four-score (Famicom)", + "VS. System", + "VS. System (controllers swapped)", + "VS. Pinball (J)", + "VS. Zapper", + "Zapper", + "Double Zappers", + "Bandai Hyper Shot", + "Power Pad Side A", + "Power Pad Side B", + "Family Trainer Side A", + "Family Trainer Side B", + "Arkanoid Paddle (NES)", + "Arkanoid Paddle (Famicom)", + "Double Arkanoid Paddle", + "Konami Hyper Shot", + "Pachinko", + "Exciting Boxing Punching Bag", + "Jissen Mahjong", + "Party Tap", + "Oeka Kids Tablet", + "Barcode Reader", + "Miracle Piano", + "Pokkun Moguraa", + "Top Rider", + "Double-Fisted", + "Famicom 3D", + "Doremikko Keyboard", + "R.O.B. Gyro Set", + "Famicom Data Recorder", + "ASCII Turbo File", + "IGS Storage Battle Box", + "Family BASIC Keyboard", + "PEC-586 Keyboard", + "Bit Corp. Keyboard", + "Subor Keyboard", + "Subor Keyboard + Mouse A", + "Subor Keyboard + Mouse B", + "SNES Mouse", + "Multicart", + "Double SNES controllers", + "RacerMate Bicycle", + "U-Force", + "R.O.B. Stack-Up", + 0 +}; + +char** dropDownList[] = { + vsSysList, vsPPUList, extConsoleList, inputDevList, 0 +}; + +int dropDownIdList[] = { + IDC_VS_SYSTEM_COMBO, + IDC_VS_PPU_COMBO, + IDC_SYSTEM_EXTEND_COMBO, + IDC_INPUT_DEVICE_COMBO, + 0 +}; + +HWND hHeadEditor = NULL; + +bool LoadHeader(HWND parent, iNES_HEADER* header) +{ + int error = 0; + enum errors { + OK, + OPEN_FAILED, + INVALID_HEADER, + FDS_HEADER, + UNIF_HEADER, + NSF_HEADER//, +// NSFE_HEADER, +// NSF2_HEADER + }; + + FCEUFILE* fp = FCEU_fopen(LoadedRomFName, NULL, "rb", NULL); + if (!GameInfo) + strcpy(LoadedRomFName, fp->fullFilename.c_str()); + + if (fp) + { + if (FCEU_fread(header, 1, sizeof(iNES_HEADER), fp) == sizeof(iNES_HEADER) && !memcmp(header, "NES\x1A", 4)) + header->cleanup(); + else if (!memcmp(header, "FDS\x1A", 4)) + error = errors::FDS_HEADER; + else if (!memcmp(header, "UNIF", 4)) + error = errors::UNIF_HEADER; + else if (!memcmp(header, "NESM", 4)) + error = errors::NSF_HEADER; +/* else if (!memcmp(header, "NSFE", 4)) + error = errors::NSFE_HEADER; + else if (!memcmp(header, "NESM\2", 4)) + error = errors::NSF2_HEADER; +*/ else + error = errors::INVALID_HEADER; + FCEU_fclose(fp); + } + else + error = errors::OPEN_FAILED; + + if (error) + { + switch (error) + { + case errors::OPEN_FAILED: + { + char buf[1024]; + sprintf(buf, "Error opening %s!", LoadedRomFName); + MessageBox(parent, buf, "iNES Header Editor", MB_OK | MB_ICONERROR); + break; + } + case errors::INVALID_HEADER: + MessageBox(parent, "Invalid iNES header.", "iNES Header Editor", MB_OK | MB_ICONERROR); + break; + case errors::FDS_HEADER: + MessageBox(parent, "Editing header of an FDS file is not supported.", "iNES Header Editor", MB_OK | MB_ICONERROR); + break; + case errors::UNIF_HEADER: + MessageBox(parent, "Editing header of a UNIF file is not supported.", "iNES Header Editor", MB_OK | MB_ICONERROR); + break; + case errors::NSF_HEADER: +// case errors::NSF2_HEADER: +// case errors::NSFE_HEADER: + MessageBox(parent, "Editing header of an NSF file is not supported.", "iNES Header Editor", MB_OK | MB_ICONERROR); + break; + } + return false; + } + + return true; +} + +HWND InitHeaderEditDialog(HWND hwnd, iNES_HEADER* header) +{ + hHeadEditor = hwnd; + + + // these contols don't bother the standard + EnableWindow(GetDlgItem(hwnd, IDC_INESHEADER_GROUP), TRUE); + + // Resotore button + EnableWindow(GetDlgItem(hwnd, IDC_RESTORE_BUTTON), TRUE); + // Save as... button + EnableWindow(GetDlgItem(hwnd, IDSAVE), TRUE); + + // Version groupbox + EnableWindow(GetDlgItem(hwnd, IDC_VERSION_GROUP), TRUE); + // Standard + EnableWindow(GetDlgItem(hwnd, IDC_RADIO_VERSION_STANDARD), TRUE); + // iNES 2.0 + EnableWindow(GetDlgItem(hwnd, IDC_RADIO_VERSION_INES20), TRUE); + + // Mapper groupbox + EnableWindow(GetDlgItem(hwnd, IDC_MAPPER_GROUP), TRUE); + // Mapper# + EnableWindow(GetDlgItem(hwnd, IDC_MAPPER_TEXT), TRUE); + EnableWindow(GetDlgItem(hwnd, IDC_MAPPER_COMBO), TRUE); + + // PRG groupbox + EnableWindow(GetDlgItem(hwnd, IDC_PRG_GROUP), TRUE); + // PRG ROM + EnableWindow(GetDlgItem(hwnd, IDC_PRGROM_TEXT), TRUE); + EnableWindow(GetDlgItem(hwnd, IDC_PRGROM_COMBO), TRUE); + // PRG RAM will be finally determined in ToggleUnofficialPrgRamPresent() + // EnableWindow(GetDlgItem(hwnd, IDC_PRGRAM_TEXT), TRUE); + // EnableWindow(GetDlgItem(hwnd, IDC_PRGRAM_COMBO), TRUE); + // CHR ROM + EnableWindow(GetDlgItem(hwnd, IDC_CHR_GROUP), TRUE); + EnableWindow(GetDlgItem(hwnd, IDC_CHRROM_TEXT), TRUE); + EnableWindow(GetDlgItem(hwnd, IDC_CHRROM_COMBO), TRUE); + + // Mirroring groupbox + EnableWindow(GetDlgItem(hwnd, IDC_MIRRORING_GROUP), TRUE); + // Horizontal + EnableWindow(GetDlgItem(hwnd, IDC_RADIO_MIRR_HORIZONTAL), TRUE); + // Vertical + EnableWindow(GetDlgItem(hwnd, IDC_RADIO_MIRR_VERTICAL), TRUE); + // Four-screen + EnableWindow(GetDlgItem(hwnd, IDC_RADIO_MIRR_4SCREEN), TRUE); + + // Region Groupbox + EnableWindow(GetDlgItem(hwnd, IDC_REGION_GROUP), TRUE); + // NTSC + EnableWindow(GetDlgItem(hwnd, IDC_RADIO_REGION_NTSC), TRUE); + // PAL + EnableWindow(GetDlgItem(hwnd, IDC_RADIO_REGION_PAL), TRUE); + // Multiple will be finally determined in ToggleUnofficialPrgRamPresent() + // EnableWindow(GetDlgItem(hwnd, IDC_RADIO_REGION_DUAL), TRUE); + + // Trainer + EnableWindow(GetDlgItem(hwnd, IDC_CHECK_TRAINER), TRUE); + + // System Groupbox + EnableWindow(GetDlgItem(hwnd, IDC_SYSTEM_GROUP), TRUE); + // Normal + EnableWindow(GetDlgItem(hwnd, IDC_RADIO_SYSTEM_NORMAL), TRUE); + // VS + EnableWindow(GetDlgItem(hwnd, IDC_RADIO_SYSTEM_VS), TRUE); + // Playchoice-10 will be finally determined in ToggleUnofficialPropertiesEnabled() + // EnableWindow(GetDlgItem(hwnd, IDC_RADIO_SYSTEM_PLAYCHOICE10), TRUE); + + + + // Limit text + // Sub Mapper# + SendDlgItemMessage(hwnd, IDC_SUBMAPPER_EDIT, EM_SETLIMITTEXT, 2, 0); + // Misc. ROM(s) + SendDlgItemMessage(hwnd, IDC_MISCELLANEOUS_ROMS_EDIT, EM_SETLIMITTEXT, 1, 0); + + // Assign ID to the sub edit control in these comboboxes + // PRG ROM + SetWindowLong(GetWindow(GetDlgItem(hwnd, IDC_PRGROM_COMBO), GW_CHILD), GWL_ID, IDC_PRGROM_EDIT); + // PRG RAM + SetWindowLong(GetWindow(GetDlgItem(hwnd, IDC_PRGRAM_COMBO), GW_CHILD), GWL_ID, IDC_PRGRAM_EDIT); + // PRG NVRAM + SetWindowLong(GetWindow(GetDlgItem(hwnd, IDC_PRGNVRAM_COMBO), GW_CHILD), GWL_ID, IDC_PRGNVRAM_EDIT); + // CHR ROM + SetWindowLong(GetWindow(GetDlgItem(hwnd, IDC_CHRROM_COMBO), GW_CHILD), GWL_ID, IDC_CHRROM_EDIT); + // CHR RAM + SetWindowLong(GetWindow(GetDlgItem(hwnd, IDC_CHRRAM_COMBO), GW_CHILD), GWL_ID, IDC_CHRRAM_EDIT); + // CHR NVRAM + SetWindowLong(GetWindow(GetDlgItem(hwnd, IDC_CHRNVRAM_COMBO), GW_CHILD), GWL_ID, IDC_CHRNVRAM_EDIT); + + + // Change the default wndproc of these control to limit their text + // PRG ROM + DefaultEditCtrlProc = (WNDPROC)SetWindowLong(GetDlgItem(GetDlgItem(hwnd, IDC_PRGROM_COMBO), IDC_PRGROM_EDIT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + // PRG RAM + SetWindowLong(GetDlgItem(GetDlgItem(hwnd, IDC_PRGRAM_COMBO), IDC_PRGRAM_EDIT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + // PRG NVRAM + SetWindowLong(GetDlgItem(GetDlgItem(hwnd, IDC_PRGNVRAM_COMBO), IDC_PRGNVRAM_EDIT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + // CHR ROM + SetWindowLong(GetDlgItem(GetDlgItem(hwnd, IDC_CHRROM_COMBO), IDC_CHRROM_EDIT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + // CHR RAM + SetWindowLong(GetDlgItem(GetDlgItem(hwnd, IDC_CHRRAM_COMBO), IDC_CHRRAM_EDIT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + // CHR NVRAM + SetWindowLong(GetDlgItem(GetDlgItem(hwnd, IDC_CHRNVRAM_COMBO), IDC_CHRNVRAM_EDIT), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + + + ToggleINES20(hwnd, IsDlgButtonChecked(hwnd, IDC_RADIO_VERSION_INES20) == BST_CHECKED); + + char buf[256]; + for (int i = 0; dropDownIdList[i]; ++i) + for (int j = 0; dropDownList[i][j]; ++j) + { + sprintf(buf, dropDownList[i] == inputDevList ? "$%02X %s" : "$%X %s", j, dropDownList[i][j]); + SendDlgItemMessage(hwnd, IDC_MAPPER_COMBO, CB_SETITEMDATA, SendDlgItemMessage(hwnd, dropDownIdList[i], CB_ADDSTRING, 0, (LPARAM)buf), j); + } + + // Mapper# + extern BMAPPINGLocal bmap[]; + for (int i = 0; bmap[i].init; ++i) + { + sprintf(buf, "%d %s", bmap[i].number, bmap[i].name); + SendDlgItemMessage(hwnd, IDC_MAPPER_COMBO, CB_SETITEMDATA, SendDlgItemMessage(hwnd, IDC_MAPPER_COMBO, CB_ADDSTRING, 0, (LPARAM)buf), bmap[i].number); + } + + // add usually used size strings + strcpy(buf, "0B"); + SendDlgItemMessage(hwnd, IDC_PRGROM_COMBO, CB_SETITEMDATA, SendDlgItemMessage(hwnd, IDC_PRGROM_COMBO, CB_ADDSTRING, 0, (LPARAM)buf), 0); + SendDlgItemMessage(hwnd, IDC_CHRROM_COMBO, CB_SETITEMDATA, SendDlgItemMessage(hwnd, IDC_CHRROM_COMBO, CB_ADDSTRING, 0, (LPARAM)buf), 0); + SendDlgItemMessage(hwnd, IDC_PRGRAM_COMBO, CB_SETITEMDATA, SendDlgItemMessage(hwnd, IDC_PRGRAM_COMBO, CB_ADDSTRING, 0, (LPARAM)buf), 0); + SendDlgItemMessage(hwnd, IDC_CHRRAM_COMBO, CB_SETITEMDATA, SendDlgItemMessage(hwnd, IDC_CHRRAM_COMBO, CB_ADDSTRING, 0, (LPARAM)buf), 0); + SendDlgItemMessage(hwnd, IDC_PRGNVRAM_COMBO, CB_SETITEMDATA, SendDlgItemMessage(hwnd, IDC_PRGNVRAM_COMBO, CB_ADDSTRING, 0, (LPARAM)buf), 0); + SendDlgItemMessage(hwnd, IDC_CHRNVRAM_COMBO, CB_SETITEMDATA, SendDlgItemMessage(hwnd, IDC_CHRNVRAM_COMBO, CB_ADDSTRING, 0, (LPARAM)buf), 0); + + int size = 128; + while (size <= 2048 * 1024) + { + if (size >= 1024 << 3) + { + // The size of CHR ROM must be multiple of 8KB + sprintf(buf, "%dKB", size / 1024); + SendDlgItemMessage(hwnd, IDC_CHRROM_COMBO, CB_SETITEMDATA, SendDlgItemMessage(hwnd, IDC_CHRROM_COMBO, CB_ADDSTRING, 0, (LPARAM)buf), size); + + // The size of PRG ROM must be multiple of 16KB + if (size >= 1024 * 16) + { + // PRG ROM + sprintf(buf, "%dKB", size / 1024); + SendDlgItemMessage(hwnd, IDC_PRGROM_COMBO, CB_SETITEMDATA, SendDlgItemMessage(hwnd, IDC_PRGROM_COMBO, CB_ADDSTRING, 0, (LPARAM)buf), size); + } + } + + if (size >= 1024) + sprintf(buf, "%dKB", size / 1024); + else + sprintf(buf, "%dB", size); + + SendDlgItemMessage(hwnd, IDC_PRGRAM_COMBO, CB_SETITEMDATA, SendDlgItemMessage(hwnd, IDC_PRGRAM_COMBO, CB_ADDSTRING, 0, (LPARAM)buf), size); + SendDlgItemMessage(hwnd, IDC_CHRRAM_COMBO, CB_SETITEMDATA, SendDlgItemMessage(hwnd, IDC_CHRRAM_COMBO, CB_ADDSTRING, 0, (LPARAM)buf), size); + SendDlgItemMessage(hwnd, IDC_PRGNVRAM_COMBO, CB_SETITEMDATA, SendDlgItemMessage(hwnd, IDC_PRGNVRAM_COMBO, CB_ADDSTRING, 0, (LPARAM)buf), size); + SendDlgItemMessage(hwnd, IDC_CHRNVRAM_COMBO, CB_SETITEMDATA, SendDlgItemMessage(hwnd, IDC_CHRNVRAM_COMBO, CB_ADDSTRING, 0, (LPARAM)buf), size); + + size <<= 1; + } + + + SetHeaderData(hwnd, header); + + return hwnd; + +} + +void ToggleINES20(HWND hwnd, bool ines20) +{ + // only ines 2.0 has these values + // these are always have when in 2.0 + // Submapper# + EnableWindow(GetDlgItem(hwnd, IDC_SUBMAPPER_TEXT), ines20); + EnableWindow(GetDlgItem(hwnd, IDC_SUBMAPPER_EDIT), ines20); + // PRG NVRAM + EnableWindow(GetDlgItem(hwnd, IDC_PRGNVRAM_COMBO), ines20); + EnableWindow(GetDlgItem(hwnd, IDC_PRGNVRAM_TEXT), ines20); + // CHR RAM + EnableWindow(GetDlgItem(hwnd, IDC_CHRRAM_COMBO), ines20); + EnableWindow(GetDlgItem(hwnd, IDC_CHRRAM_TEXT), ines20); + // CHR NVRAM + EnableWindow(GetDlgItem(hwnd, IDC_CHRNVRAM_COMBO), ines20); + EnableWindow(GetDlgItem(hwnd, IDC_CHRNVRAM_TEXT), ines20); + // Dendy in Region Groupbox + EnableWindow(GetDlgItem(hwnd, IDC_RADIO_REGION_DENDY), ines20); + // Multiple in Regtion Groupbox + EnableWindow(GetDlgItem(hwnd, IDC_RADIO_REGION_DUAL), ines20); + // Extend in System Groupbox + EnableWindow(GetDlgItem(hwnd, IDC_RADIO_SYSTEM_EXTEND), ines20); + // Input Device + EnableWindow(GetDlgItem(hwnd, IDC_INPUT_DEVICE_COMBO), ines20); + EnableWindow(GetDlgItem(hwnd, IDC_INPUT_DEVICE_TEXT), ines20); + // Miscellaneous ROMs + EnableWindow(GetDlgItem(hwnd, IDC_MISCELLANEOUS_ROMS_EDIT), ines20); + EnableWindow(GetDlgItem(hwnd, IDC_MISCELLANEOUS_ROMS_TEXT), ines20); + + // enable extend dialog only when ines 2.0 and extend button is checked + ToggleExtendSystemList(hwnd, ines20 && IsDlgButtonChecked(hwnd, IDC_RADIO_SYSTEM_EXTEND) == BST_CHECKED); + // enable vs dialog only when ines 2.0 and vs button is checked + ToggleVSSystemGroup(hwnd, ines20 && IsDlgButtonChecked(hwnd, IDC_RADIO_SYSTEM_VS) == BST_CHECKED); + + + // hide "Battery / PRG-NVRAM" checkbox in ines 2.0 and show PRG NVRAM combo box, negative on the contary, because ines 1.0 has nowhere to set actural size, it can only determin it exists or not. + ShowWindow(GetDlgItem(hwnd, IDC_CHECK_BATTERYNVRAM), ines20 ? SW_HIDE : SW_SHOW); + ShowWindow(GetDlgItem(hwnd, IDC_PRGNVRAM_COMBO), ines20 ? SW_SHOW : SW_HIDE); + ShowWindow(GetDlgItem(hwnd, IDC_PRGNVRAM_TEXT), ines20 ? SW_SHOW : SW_HIDE); + + EnableWindow(GetDlgItem(hwnd, IDC_CHECK_BATTERYNVRAM), TRUE); + EnableWindow(GetDlgItem(hwnd, IDC_PRGNVRAM_COMBO), TRUE); + EnableWindow(GetDlgItem(hwnd, IDC_PRGNVRAM_TEXT), TRUE); + + + // 10th byte for the unofficial ines properties + // Unofficial Properties + EnableWindow(GetDlgItem(hwnd, IDC_CHECK_UNOFFICIAL), !ines20); + ToggleUnofficialPropertiesEnabled(hwnd, ines20, IsDlgButtonChecked(hwnd, IDC_CHECK_UNOFFICIAL) == BST_CHECKED); + + // ines 1.0 doesn't support Dendy region, switch it to PAL + if (!ines20 && IsDlgButtonChecked(hwnd, IDC_RADIO_REGION_DENDY) == BST_CHECKED) + CheckRadioButton(hwnd, IDC_RADIO_REGION_NTSC, IDC_RADIO_REGION_DENDY, IDC_RADIO_REGION_PAL); + // ines 1.0 doesn't support extend system, switch it to normal + if (!ines20 && IsDlgButtonChecked(hwnd, IDC_RADIO_SYSTEM_EXTEND) == BST_CHECKED) + CheckRadioButton(hwnd, IDC_RADIO_SYSTEM_NORMAL, IDC_RADIO_SYSTEM_EXTEND, IDC_RADIO_SYSTEM_NORMAL); + +} + +void ToggleExtendSystemList(HWND hwnd, bool enable) +{ + // Extend combo box only enabled when in iNES 2.0 and Extend System was chosen + // Extend combo box + EnableWindow(GetDlgItem(hwnd, IDC_EXTEND_SYSTEM_GROUP), enable); + EnableWindow(GetDlgItem(hwnd, IDC_SYSTEM_EXTEND_COMBO), enable); + EnableWindow(GetDlgItem(hwnd, IDC_EXTEND_SYSTEM_TEXT), enable); +} + +void ToggleVSSystemGroup(HWND hwnd, bool enable) +{ + // VS System Groupbox only enabled when in iNES 2.0 and VS System in System groupbox is chosen + // VS System Groupbox + EnableWindow(GetDlgItem(hwnd, IDC_VS_SYSTEM_GROUP), enable); + // System + EnableWindow(GetDlgItem(hwnd, IDC_VS_SYSTEM_COMBO), enable); + EnableWindow(GetDlgItem(hwnd, IDC_VS_SYSTEM_TEXT), enable); + // PPU + EnableWindow(GetDlgItem(hwnd, IDC_VS_PPU_COMBO), enable); + EnableWindow(GetDlgItem(hwnd, IDC_VS_PPU_TEXT), enable); +} + +void ToggleUnofficialPropertiesEnabled(HWND hwnd, bool ines20, bool check) +{ + bool sub_enable = !ines20 && check; + + // Unofficial Properties only available in ines 1.0 + EnableWindow(GetDlgItem(hwnd, IDC_UNOFFICIAL_GROUP), sub_enable); + EnableWindow(GetDlgItem(hwnd, IDC_CHECK_UNOFFICIAL_PRGRAM), sub_enable); + EnableWindow(GetDlgItem(hwnd, IDC_CHECK_UNOFFICIAL_EXTRA_REGION), sub_enable); + EnableWindow(GetDlgItem(hwnd, IDC_CHECK_UNOFFICIAL_BUS_CONFLICT), sub_enable); + // when unofficial properties is enabled or in ines 2.0 standard, Playchoice-10 in System groupbox is available + EnableWindow(GetDlgItem(hwnd, IDC_RADIO_SYSTEM_PLAYCHOICE10), ines20 || sub_enable); + + ToggleUnofficialPrgRamPresent(hwnd, ines20, check, IsDlgButtonChecked(hwnd, IDC_CHECK_UNOFFICIAL_PRGRAM) == BST_CHECKED); + ToggleUnofficialExtraRegionCode(hwnd, ines20, check, IsDlgButtonChecked(hwnd, IDC_CHECK_UNOFFICIAL_EXTRA_REGION) == BST_CHECKED); + + // Playchoice-10 is not available in ines 1.0 and unofficial is not checked, switch back to normal + if (!ines20 && !check && IsDlgButtonChecked(hwnd, IDC_RADIO_SYSTEM_PLAYCHOICE10) == BST_CHECKED) + CheckRadioButton(hwnd, IDC_RADIO_SYSTEM_NORMAL, IDC_RADIO_SYSTEM_EXTEND, IDC_RADIO_SYSTEM_NORMAL); +} + +void ToggleUnofficialExtraRegionCode(HWND hwnd, bool ines20, bool unofficial_check, bool check) +{ + // The unofficial byte to determine whether multiple region is valid + + // Multiple in Region Groupbox + EnableWindow(GetDlgItem(hwnd, IDC_RADIO_REGION_DUAL), ines20 || unofficial_check && check); + + // Dual region is not avalable when in ines 1.0 and extra region in unofficial is not checked, switch it back to NTSC + if (!ines20 && (!unofficial_check || !check) && IsDlgButtonChecked(hwnd, IDC_RADIO_REGION_DUAL) == BST_CHECKED) + CheckRadioButton(hwnd, IDC_RADIO_REGION_NTSC, IDC_RADIO_REGION_DENDY, IDC_RADIO_REGION_NTSC); +} + +void ToggleUnofficialPrgRamPresent(HWND hwnd, bool ines20, bool unofficial_check, bool check) { + // The unofficial byte to determine wheter PRGRAM exists + // PRG RAM + bool enable = ines20 || !unofficial_check || check; + // When unofficial 10th byte was not set, the PRG RAM is defaultly enabled + EnableWindow(GetDlgItem(hwnd, IDC_PRGRAM_TEXT), enable); + EnableWindow(GetDlgItem(hwnd, IDC_PRGRAM_COMBO), enable); +} + +LRESULT CALLBACK HeaderEditorProc(HWND hDlg, UINT uMsg, WPARAM wP, LPARAM lP) +{ + + static iNES_HEADER* header; + + switch (uMsg) { + case WM_INITDIALOG: + { + header = (iNES_HEADER*)lP; + if (!header) + goto wm_close; + else + InitHeaderEditDialog(hDlg, header); + + // Put the window aside the main window when in game. + if (GameInfo) + CalcSubWindowPos(hDlg, NULL); + + } + break; + case WM_COMMAND: + switch (HIWORD(wP)) + { + case BN_CLICKED: + { + int id = LOWORD(wP); + switch (id) + { + case IDC_RADIO_VERSION_STANDARD: + ToggleINES20(hDlg, false); + break; + case IDC_RADIO_VERSION_INES20: + ToggleINES20(hDlg, true); + break; + case IDC_RADIO_SYSTEM_NORMAL: + case IDC_RADIO_SYSTEM_PLAYCHOICE10: + case IDC_RADIO_SYSTEM_EXTEND: + ToggleExtendSystemList(hDlg, IsDlgButtonChecked(hDlg, IDC_RADIO_SYSTEM_EXTEND) == BST_CHECKED); + case IDC_RADIO_SYSTEM_VS: + // Both ines 1.0 and 2.0 can trigger VS System, but only 2.0 enables the extra detailed properties + ToggleVSSystemGroup(hDlg, IsDlgButtonChecked(hDlg, IDC_RADIO_VERSION_INES20) == BST_CHECKED && IsDlgButtonChecked(hDlg, IDC_RADIO_SYSTEM_VS) == BST_CHECKED); + break; + case IDC_CHECK_UNOFFICIAL: + ToggleUnofficialPropertiesEnabled(hDlg, false, IsDlgButtonChecked(hDlg, IDC_CHECK_UNOFFICIAL) == BST_CHECKED); + break; + case IDC_CHECK_UNOFFICIAL_PRGRAM: + ToggleUnofficialPrgRamPresent(hDlg, false, true, IsDlgButtonChecked(hDlg, IDC_CHECK_UNOFFICIAL_PRGRAM) == BST_CHECKED); + break; + case IDC_CHECK_UNOFFICIAL_EXTRA_REGION: + ToggleUnofficialExtraRegionCode(hDlg, false, true, IsDlgButtonChecked(hDlg, IDC_CHECK_UNOFFICIAL_EXTRA_REGION) == BST_CHECKED); + break; + case IDC_RESTORE_BUTTON: + SetHeaderData(hDlg, header); + break; + case IDSAVE: + { + iNES_HEADER newHeader; + if (WriteHeaderData(hDlg, &newHeader)) + { + char path[4096] = { 0 }; + if (ShowINESFileBox(hDlg, path, true)) + SaveINESFile(hDlg, path, &newHeader); + } + } + break; + case IDCLOSE: + goto wm_close; + } + } + } + break; + case WM_CLOSE: + case WM_QUIT: +wm_close: + if (GameInfo) + DestroyWindow(hDlg); + else + { + EndDialog(hDlg, 0); + LoadedRomFName[0] = 0; + } + break; + case WM_DESTROY: + hHeadEditor = NULL; + free(header); + break; + } + return false; +} + +void DoHeadEdit() +{ + if (hHeadEditor) + { + ShowWindow(hHeadEditor, SW_SHOWNORMAL); + SetForegroundWindow(hHeadEditor); + } + else + { + iNES_HEADER* header = (iNES_HEADER*)calloc(1, sizeof(iNES_HEADER)); + if (GameInfo) + { + if (LoadHeader(hAppWnd, header)) + CreateDialogParam(fceu_hInstance, MAKEINTRESOURCE(IDD_EDIT_HEADER), hAppWnd, (DLGPROC)HeaderEditorProc, (LPARAM)header); + else + free(header); + } + else { + // temporarily borrow LoadedRomFName, when no game is loaded, it is unused. + LoadedRomFName[0] = 0; + if (ShowINESFileBox(hAppWnd) && LoadHeader(hAppWnd, header)) + DialogBoxParam(fceu_hInstance, MAKEINTRESOURCE(IDD_EDIT_HEADER), hAppWnd, (DLGPROC)HeaderEditorProc, (LPARAM)header); + else + free(header); + } + } +} + +void SetHeaderData(HWND hwnd, iNES_HEADER* header) { + + // Temporary buffers + char buf[256]; + + bool ines20 = (header->ROM_type2 & 0xC) == 8; + bool unofficial = false; + + // Check iNES 2.0 + CheckRadioButton(hwnd, IDC_RADIO_VERSION_STANDARD, IDC_RADIO_VERSION_INES20, ines20 ? IDC_RADIO_VERSION_INES20 : IDC_RADIO_VERSION_STANDARD); + + // Mapper# + int mapper = header->ROM_type >> 4 | header->ROM_type2 & 0xF0; + if (ines20) + mapper |= (header->ROM_type3 & 0xF0) << 4; + sprintf(buf, "%d ", mapper); + if (SendDlgItemMessage(hwnd, IDC_MAPPER_COMBO, CB_SELECTSTRING, 0, (LPARAM)buf) == CB_ERR) + SetDlgItemText(hwnd, IDC_MAPPER_COMBO, buf); + + // Sub Mapper + sprintf(buf, "%d", ines20 ? header->ROM_type3 >> 4 : 0); + SetDlgItemText(hwnd, IDC_SUBMAPPER_EDIT, buf); + + // PRG ROM + strcpy(buf, "0B"); + int prg_rom = header->ROM_size; + if (ines20) { + if ((header->Upper_ROM_VROM_size & 0xF) == 0xF) + prg_rom = pow(2, header->ROM_size >> 2) * ((header->ROM_size & 3) * 2 + 1); + else { + prg_rom |= (header->Upper_ROM_VROM_size & 0xF) << 8; + prg_rom *= 1024 * 16; + } + } + else + prg_rom *= 1024 * 16; + + if (prg_rom < 1024 || prg_rom % 1024 != 0) + sprintf(buf, "%dB", prg_rom); + else + sprintf(buf, "%dKB", prg_rom / 1024); + + if (SendDlgItemMessage(hwnd, IDC_PRGROM_COMBO, CB_SELECTSTRING, 0, (LPARAM)buf) == CB_ERR) + SetDlgItemText(hwnd, IDC_PRGROM_COMBO, buf); + + // PRG RAM + strcpy(buf, "0B"); + if (ines20) + { + int shift = header->RAM_size & 0xF; + if (shift) + { + int prg_ram = 64 << shift; + if (prg_ram >= 1024) + sprintf(buf, "%dKB", prg_ram / 1024); + else sprintf(buf, "%dB", prg_ram); + } + + } else + { + if (!(header->RAM_size & 0x10) && header->ROM_type3) + sprintf(buf, "%dKB", header->ROM_type3 ? 1 : header->ROM_type3 * 8); + } + if (SendDlgItemMessage(hwnd, IDC_PRGRAM_COMBO, CB_SELECTSTRING, 0, (LPARAM)buf) == CB_ERR) + SetDlgItemText(hwnd, IDC_PRGRAM_COMBO, buf); + + // PRG NVRAM + strcpy(buf, "0B"); + if (ines20) + { + int shift = header->RAM_size >> 4; + if (shift) + { + int prg_nvram = 64 << shift; + if (prg_nvram >= 1024) + sprintf(buf, "%dKB", prg_nvram / 1024); + else sprintf(buf, "%dB", prg_nvram); + } + } else + CheckDlgButton(hwnd, IDC_CHECK_BATTERYNVRAM, header->ROM_type & 0x2 ? BST_CHECKED : BST_UNCHECKED); + + if (SendDlgItemMessage(hwnd, IDC_PRGNVRAM_COMBO, CB_SELECTSTRING, 0, (LPARAM)buf) == CB_ERR) + SetDlgItemText(hwnd, IDC_PRGNVRAM_COMBO, buf); + + + + // CHR ROM + strcpy(buf, "0B"); + int chr_rom = header->VROM_size; + if (ines20) + { + if ((header->Upper_ROM_VROM_size & 0xF0) == 0xF0) + chr_rom = pow(2, header->VROM_size >> 2) * (((header->VROM_size & 3) * 2) + 1); + else + { + chr_rom |= (header->Upper_ROM_VROM_size & 0xF0) << 4; + chr_rom *= 8 * 1024; + } + } + else + chr_rom *= 8 * 1024; + + if (chr_rom < 1024 || chr_rom % 1024 != 0) + sprintf(buf, "%dB", chr_rom); + else + sprintf(buf, "%dKB", chr_rom / 1024); + if (SendDlgItemMessage(hwnd, IDC_CHRROM_COMBO, CB_SELECTSTRING, 0, (LPARAM)buf) == CB_ERR) + SetDlgItemText(hwnd, IDC_CHRROM_COMBO, buf); + + // CHR RAM + sprintf(buf, "0B"); + if (ines20) + { + int shift = header->VRAM_size & 0xF; + if (shift) + { + int chr_ram = 64 << shift; + if (chr_ram >= 1024) + sprintf(buf, "%dKB", chr_ram / 1024); + else sprintf(buf, "%dB", chr_ram); + } + } + if (SendDlgItemMessage(hwnd, IDC_CHRRAM_COMBO, CB_SELECTSTRING, 0, (LPARAM)buf) == CB_ERR) + SetDlgItemText(hwnd, IDC_CHRRAM_COMBO, buf); + + // CHR NVRAM + sprintf(buf, "0B"); + if (ines20) + { + int shift = header->VRAM_size >> 4; + if (shift) + { + int chr_nvram = 64 << shift; + if (chr_nvram >= 1024) + sprintf(buf, "%dKB", chr_nvram / 1024); + else sprintf(buf, "%dB", chr_nvram); + } + } + if (SendDlgItemMessage(hwnd, IDC_CHRNVRAM_COMBO, CB_SELECTSTRING, 0, (LPARAM)buf) == CB_ERR) + SetDlgItemText(hwnd, IDC_CHRNVRAM_COMBO, buf); + + // Mirroring + CheckRadioButton(hwnd, IDC_RADIO_MIRR_HORIZONTAL, IDC_RADIO_MIRR_4SCREEN, header->ROM_type & 8 ? IDC_RADIO_MIRR_4SCREEN : header->ROM_type & 1 ? IDC_RADIO_MIRR_VERTICAL : IDC_RADIO_MIRR_HORIZONTAL); + + // Region + if (ines20) + { + int region = header->TV_system & 3; + switch (region) { + case 0: + // NTSC + CheckRadioButton(hwnd, IDC_RADIO_REGION_NTSC, IDC_RADIO_REGION_DENDY, IDC_RADIO_REGION_NTSC); + break; + case 1: + // PAL + CheckRadioButton(hwnd, IDC_RADIO_REGION_NTSC, IDC_RADIO_REGION_DENDY, IDC_RADIO_REGION_PAL); + break; + case 2: + // Dual + CheckRadioButton(hwnd, IDC_RADIO_REGION_NTSC, IDC_RADIO_REGION_DENDY, IDC_RADIO_REGION_DUAL); + break; + case 3: + // Dendy + CheckRadioButton(hwnd, IDC_RADIO_REGION_NTSC, IDC_RADIO_REGION_DENDY, IDC_RADIO_REGION_DENDY); + } + } + else { + // Only the unofficial 10th byte has a dual region, we must check it first. + int region = header->RAM_size & 3; + if (region == 3 || region == 1) + { + // Check the unofficial checkmark and the region code + CheckRadioButton(hwnd, IDC_RADIO_REGION_NTSC, IDC_RADIO_REGION_DENDY, IDC_RADIO_REGION_DUAL); + unofficial = true; + } + else + // When the region in unofficial byte is inconsistent with the official byte, based on the official byte + CheckRadioButton(hwnd, IDC_RADIO_REGION_NTSC, IDC_RADIO_REGION_DENDY, header->Upper_ROM_VROM_size & 1 ? IDC_RADIO_REGION_PAL : IDC_RADIO_REGION_NTSC); + } + + // System + int system = header->ROM_type2 & 3; + switch (system) + { + default: + // Normal + case 0: + CheckRadioButton(hwnd, IDC_RADIO_SYSTEM_NORMAL, IDC_RADIO_SYSTEM_EXTEND, IDC_RADIO_SYSTEM_NORMAL); + break; + // VS. System + case 1: + CheckRadioButton(hwnd, IDC_RADIO_SYSTEM_NORMAL, IDC_RADIO_SYSTEM_EXTEND, IDC_RADIO_SYSTEM_VS); + break; + // PlayChoice-10 + case 2: + CheckRadioButton(hwnd, IDC_RADIO_SYSTEM_NORMAL, IDC_RADIO_SYSTEM_EXTEND, IDC_RADIO_SYSTEM_PLAYCHOICE10); + // PlayChoice-10 is an unofficial setting for ines 1.0 + unofficial = !ines20; + break; + // Extend + case 3: + // The 7th byte is different between ines 1.0 and 2.0, so we need to check it + if (ines20) CheckRadioButton(hwnd, IDC_RADIO_SYSTEM_NORMAL, IDC_RADIO_SYSTEM_EXTEND, IDC_RADIO_SYSTEM_EXTEND); + } + + // it's quite ambiguous to put them here, but it's better to have a default selection than leave the dropdown blank, because user might switch to ines 2.0 anytime + // Hardware type + int hardware = header->VS_hardware >> 4; + if (SendDlgItemMessage(hwnd, IDC_VS_SYSTEM_COMBO, CB_SETCURSEL, hardware, 0) == CB_ERR) + { + sprintf(buf, "$%X", hardware); + SetDlgItemText(hwnd, IDC_VS_SYSTEM_COMBO, buf); + } + // PPU type + int ppu = header->VS_hardware & 0xF; + if (SendDlgItemMessage(hwnd, IDC_VS_PPU_COMBO, CB_SETCURSEL, ppu, 0) == CB_ERR) + { + sprintf(buf, "$%X", ppu); + SetDlgItemText(hwnd, IDC_VS_SYSTEM_COMBO, buf); + } + // Extend Console + if (SendDlgItemMessage(hwnd, IDC_SYSTEM_EXTEND_COMBO, CB_SETCURSEL, ppu, 0) == CB_ERR) + { + sprintf(buf, "$%X", ppu); + SetDlgItemText(hwnd, IDC_VS_SYSTEM_COMBO, buf); + } + + // Input Device: + int input = header->reserved[1] & 0x1F; + if (SendDlgItemMessage(hwnd, IDC_INPUT_DEVICE_COMBO, CB_SETCURSEL, input, 0) == CB_ERR) + { + sprintf(buf, "$%02X", input); + SetDlgItemText(hwnd, IDC_INPUT_DEVICE_COMBO, buf); + } + + // Miscellaneous ROM Area(s) + sprintf(buf, "%d", header->reserved[0] & 3); + SetDlgItemText(hwnd, IDC_MISCELLANEOUS_ROMS_EDIT, buf); + + // Trainer + CheckDlgButton(hwnd, IDC_CHECK_TRAINER, header->ROM_type & 4 ? BST_CHECKED : BST_UNCHECKED); + + // Unofficial Properties Checkmark + CheckDlgButton(hwnd, IDC_CHECK_UNOFFICIAL, unofficial ? BST_CHECKED : BST_UNCHECKED); + + // Switch the UI to the proper version + ToggleINES20(hwnd, ines20); +} + +bool WriteHeaderData(HWND hwnd, iNES_HEADER* header) +{ + // Temporary buffers + char buf[256]; + + iNES_HEADER _header; + memset(&_header, 0, sizeof(iNES_HEADER)); + + // Check iNES 2.0 + bool ines20 = IsDlgButtonChecked(hwnd, IDC_RADIO_VERSION_INES20) == BST_CHECKED; + // iNES 1.0 unofficial byte available + bool unofficial = !ines20 && IsDlgButtonChecked(hwnd, IDC_CHECK_UNOFFICIAL) == BST_CHECKED; + + // iNES 2.0 signature + if (ines20) + _header.ROM_type2 |= 8; + + // Mapper + int mapper; + if (!GetComboBoxListItemData(hwnd, IDC_MAPPER_COMBO, &mapper, buf)) + { + MessageBox(hwnd, "The mapper# you have entered is invalid. Please enter a decimal number or select an item from the dropdown list.", "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_MAPPER_COMBO)); + return false; + } + printf("mapper: %d\n", mapper); + + if (mapper < 4096) + { + if (mapper < 256) + { + _header.ROM_type |= (mapper & 0xF) << 4; + _header.ROM_type2 |= (mapper & 0xF0); + } else + { + if (ines20) + _header.ROM_type3 |= mapper >> 8; + else + { + sprintf(buf, "Mapper# should be less than %d in iNES %d.0 format.", 256, 1); + MessageBox(hwnd, buf, "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_MAPPER_COMBO)); + return false; + } + } + } + else { + sprintf(buf, "Mapper# should be less than %d in iNES %d.0 format.", 4096, 2); + MessageBox(hwnd, buf, "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_MAPPER_COMBO)); + return false; + } + + // Sub mapper + if (ines20) { + GetDlgItemText(hwnd, IDC_SUBMAPPER_EDIT, buf, 256); + int submapper; + if (sscanf(buf, "%d", &submapper) > 0) + { + if (submapper < 16) + _header.ROM_type3 |= submapper << 4; + else + { + MessageBox(hwnd, "The sub mapper# should less than 16 in iNES 2.0 format.", "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_SUBMAPPER_EDIT)); + return false; + } + } else + { + MessageBox(hwnd, "The sub mapper# you have entered is invalid. Please enter a decimal number.", "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_SUBMAPPER_EDIT)); + return false; + } + } + + // PRG ROM + int prg_rom; + if (GetComboBoxByteSize(hwnd, IDC_PRGROM_COMBO, &prg_rom) == 0) + { + // max value which a iNES 2.0 header can hold + if (prg_rom < 16 * 1024 * 0xEFF) + { + // try to fit the irregular value with the alternative way + if (prg_rom % (16 * 1024) != 0) + { + if (ines20) + { + // try to calculate the nearest value + bool fit = false; + int result = 0x7FFFFFFF; + for (int multiplier = 0; multiplier < 4; ++multiplier) + { + for (int exponent = 0; exponent < 64; ++exponent) + { + int new_result = pow(2, exponent) * (multiplier * 2 + 1); + if (new_result == prg_rom) + { + _header.Upper_ROM_VROM_size |= 0xF; + _header.ROM_size |= exponent << 2; + _header.ROM_size |= multiplier & 3; + fit = true; + break; + } + if (new_result > prg_rom && result > new_result) + result = new_result; + } + if (fit) break; + } + + if (!fit) + { + int result10 = (prg_rom / 16 / 1024 + 1) * 16 * 1024; + if (result10 < result) + result = result10; + char buf2[64]; + if (result % 1024 != 0) + sprintf(buf2, "%dB", result); + else + sprintf(buf2, "%dKB", result / 1024); + sprintf(buf, "PRG ROM size you entered is invalid in iNES 2.0, do you want to set to its nearest value %s?", buf2); + if (MessageBox(hwnd, buf, "Error", MB_YESNO | MB_ICONERROR) == IDYES) + SetDlgItemText(hwnd, IDC_PRGROM_COMBO, buf2); + SetFocus(GetDlgItem(hwnd, IDC_PRGROM_COMBO)); + return false; + } + } + else { + // ines 1.0 can't handle this kind of value + MessageBox(hwnd, "PRG ROM size must be multiple of 16KB in iNES 1.0", "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_PRGROM_COMBO)); + return false; + } + } + // it's multiple size of 16KB + else { + // it can be fitted in iNES 1.0 + if (prg_rom < 16 * 1024 * 0xFF) + _header.ROM_size |= prg_rom / 16 / 1024 & 0xFF; + else + { + if (ines20) + _header.Upper_ROM_VROM_size |= prg_rom / 16 / 1024 >> 8 & 0xF; + else { + MessageBox(hwnd, "PRG ROM size exceeded the limit of iNES 1.0 (4080KB).", "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_PRGROM_COMBO)); + return false; + } + } + } + } + // A too large size + else { + MessageBox(hwnd, "PRG ROM size you entered is too large to fit into a cartridge, by the way this is an NES emulator, not for XBOX360 or PlayStation2.", "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_PRGROM_COMBO)); + return false; + } + } else + return false; + + // PRG RAM + if (ines20 || IsDlgButtonChecked(hwnd, IDC_CHECK_UNOFFICIAL) == BST_UNCHECKED || IsDlgButtonChecked(hwnd, IDC_CHECK_UNOFFICIAL_PRGRAM) == BST_CHECKED) + { + int prg_ram; + if (GetComboBoxByteSize(hwnd, IDC_PRGRAM_COMBO, &prg_ram) == 0) + { + if (ines20) + { + if (prg_ram < 64 << 0xF) + { + if (prg_ram % 64 == 0) + _header.RAM_size |= (int)log2(prg_ram / 64); + else + { + MessageBox(hwnd, "Invalid PRG RAM size", "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_PRGRAM_COMBO)); + return false; + } + } + else { + MessageBox(hwnd, "PRG RAM size exceeded the limit (4096KB)", "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_PRGRAM_COMBO)); + return false; + } + } + else { + if (prg_ram < 8 * 1024 * 255) + { + if (prg_ram % (8 * 1024) == 0) + _header.ROM_type3 |= prg_ram / 8 / 1024; + else { + MessageBox(hwnd, "PRG RAM size must be multiple of 8KB in iNES 1.0", "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_PRGRAM_COMBO)); + return false; + } + } + else { + MessageBox(hwnd, "PRG RAM size exceeded the limit (2040KB)", "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_PRGRAM_COMBO)); + return false; + } + } + } + else + return false; + } + + + // PRG NVRAM + if (ines20) + { + // only iNES 2.0 has value for PRG VMRAM + int prg_nvram; + if (GetComboBoxByteSize(hwnd, IDC_PRGNVRAM_COMBO, &prg_nvram) == 0) + { + if (prg_nvram < 64 << 0xF) + { + if (prg_nvram % 64 == 0) + _header.RAM_size |= (int)log2(prg_nvram / 64) << 4; + else + { + MessageBox(hwnd, "Invalid PRG NVRAM size", "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_PRGNVRAM_COMBO)); + return false; + } + } + else { + MessageBox(hwnd, "PRG NVRAM size exceeded the limit (4096KB)", "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_PRGNVRAM_COMBO)); + return false; + } + + if (prg_nvram != 0) + _header.ROM_type |= 2; + + } + else + return false; + } + else { + // iNES 1.0 is much simpler, it has only 1 bit for check + if (IsDlgButtonChecked(hwnd, IDC_CHECK_BATTERYNVRAM) == BST_CHECKED) + _header.ROM_type |= 2; + } + + // CHR ROM + int chr_rom; + if (GetComboBoxByteSize(hwnd, IDC_CHRROM_COMBO, &chr_rom) == 0) + { + // max value which a iNES 2.0 header can hold + if (chr_rom < 8 * 1024 * 0xEFF) + { + // try to fit the irregular value with the alternative way + if (chr_rom % (8 * 1024) != 0) + { + if (ines20) + { + // try to calculate the nearest value + bool fit = false; + int result = 0; + for (int multiplier = 0; multiplier < 4; ++multiplier) + { + for (int exponent = 0; exponent < 64; ++exponent) + { + int new_result = pow(2, exponent) * (multiplier * 2 + 1); + if (new_result == chr_rom) + { + _header.Upper_ROM_VROM_size |= 0xF0; + _header.VROM_size |= exponent << 2; + _header.VROM_size |= multiplier & 3; + fit = true; + break; + } + if (result > new_result && new_result > chr_rom) + result = new_result; + } + if (fit) break; + } + + if (!fit) + { + int result10 = (chr_rom / 1024 / 8 + 1) * 8 * 1024; + if (result10 < result) + result = result10; + char buf2[64]; + if (result % 1024 != 0) + sprintf(buf2, "%dB", result); + else + sprintf(buf2, "%dKB", result / 1024); + sprintf(buf, "CHR ROM size you entered is invalid in iNES 2.0, do you want to set to its nearest value %s?", buf2); + if (MessageBox(hwnd, buf, "Error", MB_YESNO | MB_ICONERROR) == IDYES) + SetDlgItemText(hwnd, IDC_CHRROM_COMBO, buf2); + SetFocus(GetDlgItem(hwnd, IDC_CHRROM_COMBO)); + return false; + } + } + else { + // ines 1.0 can't handle this kind of value + MessageBox(hwnd, "CHR ROM size must be multiple of 8KB in iNES 1.0", "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_CHRROM_COMBO)); + return false; + } + } + // it's multiple size of 8KB + else { + // it can be fitted in iNES 1.0 + if (chr_rom < 8 * 1024 * 0xFF) + _header.VROM_size |= chr_rom / 8 / 1024 & 0xFF; + else + { + if (ines20) + _header.Upper_ROM_VROM_size |= chr_rom / 8 / 1024 >> 4 & 0xF0; + else + { + MessageBox(hwnd, "CHR ROM size exceeded the limit of iNES 1.0 (2040KB).", "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_PRGROM_COMBO)); + return false; + } + } + } + } + // A too large size + else { + MessageBox(hwnd, "CHR ROM size you entered cannot be fitted in iNES 2.0.", "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_CHRROM_COMBO)); + return false; + } + } + else + return false; + + // CHR RAM + if (ines20) + { + // only iNES 2.0 has value for CHR RAM + int chr_ram; + if (GetComboBoxByteSize(hwnd, IDC_CHRRAM_COMBO, &chr_ram) == 0) + { + if (chr_ram < 64 << 0xF) + { + if (chr_ram % 64 == 0) + _header.VRAM_size |= (int)log2(chr_ram / 64); + else + { + MessageBox(hwnd, "Invalid CHR RAM size", "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_CHRRAM_COMBO)); + return false; + } + } + else { + MessageBox(hwnd, "CHR RAM size exceeded the limit (4096KB)", "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_CHRRAM_COMBO)); + return false; + } + } + else + return false; + } + + // CHR NVRAM + if (ines20) + { + // only iNES 2.0 has value for CHR NVRAM + int chr_nvram; + if (GetComboBoxByteSize(hwnd, IDC_CHRNVRAM_COMBO, &chr_nvram) == 0) + { + if (chr_nvram < 64 << 0xF) + { + if (chr_nvram % 64 == 0) + _header.VRAM_size |= (int)log2(chr_nvram / 64) << 4; + else { + MessageBox(hwnd, "Invalid CHR NVRAM size", "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_CHRNVRAM_COMBO)); + return false; + } + } + else { + MessageBox(hwnd, "CHR NVRAM size exceeded the limit (4096KB)", "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_CHRNVRAM_COMBO)); + return false; + } + + if (chr_nvram != 0) + _header.ROM_type |= 2; + } + else + return false; + } + + // Mirroring + if (IsDlgButtonChecked(hwnd, IDC_RADIO_MIRR_4SCREEN) == BST_CHECKED) + _header.ROM_type |= 8; + else if (IsDlgButtonChecked(hwnd, IDC_RADIO_MIRR_VERTICAL) == BST_CHECKED) + _header.ROM_type |= 1; + + // Region + if (IsDlgButtonChecked(hwnd, IDC_RADIO_REGION_PAL) == BST_CHECKED) + { + if (ines20) + _header.TV_system |= 1; + else { + _header.Upper_ROM_VROM_size |= 1; + if (IsDlgButtonChecked(hwnd, IDC_CHECK_UNOFFICIAL) == BST_CHECKED && IsDlgButtonChecked(hwnd, IDC_CHECK_UNOFFICIAL_EXTRA_REGION) == BST_CHECKED) + _header.RAM_size |= 2; + } + } + else if (IsDlgButtonChecked(hwnd, IDC_RADIO_REGION_DUAL) == BST_CHECKED) + { + if (ines20) + _header.TV_system |= 2; + else + _header.RAM_size |= 3; + } + else if (IsDlgButtonChecked(hwnd, IDC_RADIO_REGION_DENDY) == BST_CHECKED) + _header.TV_system |= 3; + + + // System + if (IsDlgButtonChecked(hwnd, IDC_RADIO_SYSTEM_VS) == BST_CHECKED) + { + _header.ROM_type2 |= 1; + if (ines20) { + // VS System type + int system; + if (GetComboBoxListItemData(hwnd, IDC_VS_SYSTEM_COMBO, &system, buf) && system <= 0xF) + _header.VS_hardware |= (system & 0xF) << 4; + else + { + MessageBox(hwnd, "Invalid VS System hardware type.", "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_VS_SYSTEM_COMBO)); + return false; + } + // VS PPU type + int ppu; + if (GetComboBoxListItemData(hwnd, IDC_VS_PPU_COMBO, &ppu, buf) && system <= 0xF) + _header.VS_hardware |= ppu & 0xF; + else + { + MessageBox(hwnd, "Invalid VS System PPU type.", "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_VS_PPU_COMBO)); + return false; + } + } + } + else if (IsDlgButtonChecked(hwnd, IDC_RADIO_SYSTEM_PLAYCHOICE10) == BST_CHECKED) + _header.ROM_type2 |= 2; + else if (IsDlgButtonChecked(hwnd, IDC_RADIO_SYSTEM_EXTEND) == BST_CHECKED) + { + // Extend System + _header.ROM_type2 |= 3; + int extend; + if (GetComboBoxListItemData(hwnd, IDC_SYSTEM_EXTEND_COMBO, &extend, buf) && extend <= 0x3F) + _header.VS_hardware |= extend & 0x3F; + else + { + MessageBox(hwnd, "Invalid extend system type", "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_SYSTEM_EXTEND_COMBO)); + return false; + } + } + + // Input device + if (ines20) + { + int input; + if (GetComboBoxListItemData(hwnd, IDC_INPUT_DEVICE_COMBO, &input, buf, true) && input <= 0x3F) + _header.reserved[1] |= input & 0x3F; + else + { + MessageBox(hwnd, "Invalid input device.", "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_INPUT_DEVICE_COMBO)); + return false; + } + } + + // Miscellanous ROM(s) + if (ines20) + { + GetDlgItemText(hwnd, IDC_MISCELLANEOUS_ROMS_EDIT, buf, 256); + int misc_roms = 0; + if (sscanf(buf, "%d", &misc_roms) < 1) + { + MessageBox(hwnd, "Invalid miscellanous ROM(s) count. If you don't know what value should be, we recommend to set it to 0.", "ERROR", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_MISCELLANEOUS_ROMS_TEXT)); + return false; + } + if (misc_roms > 3) + { + MessageBox(hwnd, "Miscellanous ROM(s) count has exceeded the limit of iNES 2.0 (3)", "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, IDC_MISCELLANEOUS_ROMS_TEXT)); + return false; + } + _header.reserved[0] |= misc_roms & 3; + } + + // iNES 1.0 unofficial properties + if (!ines20 && IsDlgButtonChecked(hwnd, IDC_CHECK_UNOFFICIAL) == BST_CHECKED) + { + // bus conflict configure in unoffcial bit of iNES 1.0 + if (IsDlgButtonChecked(hwnd, IDC_CHECK_UNOFFICIAL_BUS_CONFLICT) == BST_CHECKED) + _header.RAM_size |= 0x20; + // PRG RAM non exist bit flag + if (IsDlgButtonChecked(hwnd, IDC_CHECK_UNOFFICIAL_PRGRAM) == BST_UNCHECKED) + _header.RAM_size |= 0x10; + } + + // Trainer + if (IsDlgButtonChecked(hwnd, IDC_CHECK_TRAINER) == BST_CHECKED) + _header.ROM_type |= 4; + + extern BMAPPINGLocal bmap[]; + bool fceux_support = false; + for (int i = 0; bmap[i].init; ++i) + { + if (mapper == bmap[i].number) + { + fceux_support = true; + break; + } + } + + if (!fceux_support) + { + sprintf(buf, "FCEUX doesn't support iNES Mapper# %d, this is not a serious problem, but the ROM will not be run in FCEUX properly.\nDo you want to continue?", mapper); + if (MessageBox(hwnd, buf, "Error", MB_YESNO | MB_ICONWARNING) == IDNO) + { + SetFocus(GetDlgItem(hwnd, IDC_MAPPER_COMBO)); + return false; + } + } + + memcpy(_header.ID, "NES\x1A", 4); + + if (header) + memcpy(header, &_header, sizeof(iNES_HEADER)); + +#ifdef _DEBUG + printf("header: "); + printf("%02X ", _header.ID[0]); + printf("%02X ", _header.ID[1]); + printf("%02X ", _header.ID[2]); + printf("%02X ", _header.ID[3]); + printf("%02X ", _header.ROM_size); + printf("%02X ", _header.VROM_size); + printf("%02X ", _header.ROM_type); + printf("%02X ", _header.ROM_type2); + printf("%02X ", _header.ROM_type3); + printf("%02X ", _header.Upper_ROM_VROM_size); + printf("%02X ", _header.RAM_size); + printf("%02X ", _header.VRAM_size); + printf("%02X ", _header.TV_system); + printf("%02X ", _header.VS_hardware); + printf("%02X ", _header.reserved[0]); + printf("%02X\n", _header.reserved[1]); +#endif + +return true; +} + +int GetComboBoxByteSize(HWND hwnd, UINT id, int* value) +{ + char* name = ""; + char buf[256]; + + enum errors { + OK = 0, + FORMAT_ERR, + MINUS_ERR, + UNIT_ERR + }; + + int err = errors::OK; + + switch (id) + { + case IDC_PRGROM_COMBO: name = "PRG ROM"; break; + case IDC_PRGRAM_COMBO: name = "PRG RAM"; break; + case IDC_PRGNVRAM_COMBO: name = "PRG NVRAM"; break; + case IDC_CHRROM_COMBO: name = "CHR ROM"; break; + case IDC_CHRRAM_COMBO: name = "CHR RAM"; break; + case IDC_CHRNVRAM_COMBO: name = "CHR NVRAM"; break; + } + + if (!GetComboBoxListItemData(hwnd, id, value, buf, true)) + { + char buf2[4]; + if (sscanf(buf, "%d%[KMB]", value, buf2) < 2 || !strcmp(buf2, "")) + err = errors::FORMAT_ERR; + else + { + if (*value < 0) + err = errors::MINUS_ERR; + else if (!strcmp(buf2, "KB") || !strcmp(buf2, "K")) + *value *= 1024; + else if (!strcmp(buf2, "MB") || !strcmp(buf2, "M")) + *value *= 1024 * 1024; + else if (strcmp(buf2, "B")) + err = errors::UNIT_ERR; + } + } + + switch (err) + { + case errors::FORMAT_ERR: + sprintf(buf, "%s size you entered is invalid, it should be positive decimal integer followed with unit, e.g. 1024B, 128KB, 4MB", name); + break; + case errors::UNIT_ERR: + sprintf(buf, "The unit of %s size you entered is invalid, it must be B, KB or MB", name); + break; + case errors::MINUS_ERR: + sprintf(buf, "Negative value of %s is not supported by iNES header.", name); + break; + } + + if (err) + { + MessageBox(hwnd, buf, "Error", MB_OK | MB_ICONERROR); + SetFocus(GetDlgItem(hwnd, id)); + } + + return err; +} + +bool GetComboBoxListItemData(HWND hwnd, UINT id, int* value, char* buf, bool exact) +{ + + bool success = true; + *value = SendDlgItemMessage(hwnd, id, CB_GETCURSEL, 0, 0); + if (*value != CB_ERR) + *value = SendDlgItemMessage(hwnd, id, CB_GETITEMDATA, *value, 0); + else { + GetDlgItemText(hwnd, id, buf, 256); + + if (exact) + *value = SendDlgItemMessage(hwnd, id, CB_FINDSTRINGEXACT, 0, (LPARAM)buf); + else + *value = SendDlgItemMessage(hwnd, id, CB_SELECTSTRING, 0, (LPARAM)buf); + + if (*value != CB_ERR) + *value = SendDlgItemMessage(hwnd, id, CB_GETITEMDATA, *value, 0); + else + { + switch (id) + { + default: + success = false; + break; + case IDC_MAPPER_COMBO: + if (!(success = sscanf(buf, "%d", value) > 0)) + success = SearchByString(hwnd, id, value, buf); + else + SetDlgItemText(hwnd, id, buf); + break; + case IDC_VS_SYSTEM_COMBO: + case IDC_VS_PPU_COMBO: + case IDC_SYSTEM_EXTEND_COMBO: + if (!(success = sscanf(buf, "$%X", value) > 0)) + success = SearchByString(hwnd, id, value, buf); + else + SetDlgItemText(hwnd, id, buf); + break; + case IDC_INPUT_DEVICE_COMBO: + if (success = sscanf(buf, "$%X", value) > 0) + { + char buf2[3]; + sprintf(buf2, "$%02X", *value); + if (SendDlgItemMessage(hwnd, id, CB_SELECTSTRING, 0, (LPARAM)buf2) == CB_ERR) + SetDlgItemText(hwnd, id, buf); + } else + success = SearchByString(hwnd, id, value, buf); + break; + } + + if (!success) + SetDlgItemText(hwnd, id, buf); + } + } + + return success; +} + +// Warning: when in save mode, the content of buf might be overwritten by the save filename which user changed. +bool ShowINESFileBox(HWND parent, char* buf, bool save) +{ + char *filename = NULL, *path = NULL; + bool success = true; + + if (save) + { + // When open this dialog for saving prpose, the buf must be a separate buf. + if (buf && buf != LoadedRomFName) + { + extern char* GetRomName(bool force = false); + extern char* GetRomPath(bool force = false); + filename = GetRomName(true); + char* second = strchr(filename, '|'); + if (second) + { + char* _filename = (char*)calloc(1, 2048); + strcpy(_filename, second + 1); + char* third = strrchr(filename, '\\'); + if (third) + strcpy(_filename, third + 1); + free(filename); + filename = _filename; + } + strcat(filename, " [header modified].nes"); + path = GetRomPath(true); + } + else + success = false; + } + else { + if (!buf) + buf = LoadedRomFName; + filename = (char*)calloc(1, 2048); + path = (char*)calloc(1, 2048); + } + + if (success) + { + OPENFILENAME ofn; + memset(&ofn, 0, sizeof(OPENFILENAME)); + ofn.lStructSize = sizeof(OPENFILENAME); + ofn.lpstrTitle = save ? "Save NES file" : "Open NES file"; + ofn.lpstrFilter = "NES ROM file (*.nes)\0*.nes\0All files (*.*)\0*.*\0\0"; + ofn.hInstance = fceu_hInstance; + ofn.hwndOwner = parent; + ofn.lpstrFile = filename; + ofn.nMaxFile = 2048; + ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY; + ofn.lpstrInitialDir = path; + ofn.lpstrDefExt = "nes"; + + if (save ? GetSaveFileName(&ofn) : GetOpenFileName(&ofn)) + strcpy(buf, filename); + else + success = false; + } + + if (filename) free(filename); + if (path) free(path); + + return success; +} + +bool SaveINESFile(HWND hwnd, char* path, iNES_HEADER* header) +{ + char buf[4096]; + const char* ext[] = { "nes", 0 }; + + // Source file + FCEUFILE* source = FCEU_fopen(LoadedRomFName, NULL, "rb", 0, -1, ext); + if (!source) + { + sprintf(buf, "Opening source file %s failed.", LoadedRomFName); + MessageBox(hwnd, buf, "iNES Header Editor", MB_OK | MB_ICONERROR); + return false; + } + + // Destination file + FILE* target = FCEUD_UTF8fopen(path, "wb"); + if (!target) + { + sprintf(buf, "Creating target file %s failed.", path); + MessageBox(hwnd, buf, "iNES Header Editor", MB_OK | MB_ICONERROR); + return false; + } + + memset(buf, 0, sizeof(buf)); + + // Write the header first + fwrite(header, 1, sizeof(iNES_HEADER), target); + // Skip the original header + FCEU_fseek(source, sizeof(iNES_HEADER), SEEK_SET); + int len; + while (len = FCEU_fread(buf, 1, sizeof(buf), source)) + fwrite(buf, len, 1, target); + + FCEU_fclose(source); + fclose(target); + + return true; + +} + +bool SearchByString(HWND hwnd, UINT id, int* value, char* buf) +{ + if (buf[0] != ' ' && buf[0] != 0) + { + if (id == IDC_MAPPER_COMBO) + { + extern BMAPPINGLocal bmap[]; + for (int i = 0; bmap[i].init; ++i) + { + if (!stricmp(buf, bmap[i].name)) + { + SendDlgItemMessage(hwnd, id, CB_SETCURSEL, i, 0); + *value = SendDlgItemMessage(hwnd, id, CB_GETITEMDATA, i, 0); + return true; + } + } + } + else + { + for (int i = 0; dropDownIdList[i]; ++i) + { + if (dropDownIdList[i] == id) + { + char** checkList = dropDownList[i]; + for (int j = 0; checkList[j]; ++j) + { + if (!stricmp(buf, checkList[j])) + { + SendDlgItemMessage(hwnd, id, CB_SETCURSEL, j, 0); + *value = SendDlgItemMessage(hwnd, id, CB_GETITEMDATA, j, 0); + return true; + } + } + break; + } + } + } + } + + return false; +} \ No newline at end of file diff --git a/src/drivers/win/header_editor.h b/src/drivers/win/header_editor.h new file mode 100644 index 00000000..6548f35a --- /dev/null +++ b/src/drivers/win/header_editor.h @@ -0,0 +1,31 @@ +#ifndef HEADEREDITOR_H +#define HEADEREDITOR_H + +struct iNES_HEADER; + +extern HWND hHeadEditor; +void DoHeadEdit(); + +HWND InitHeaderEditDialog(HWND hwnd, iNES_HEADER* header); +bool ShowINESFileBox(HWND parent, char* buf = NULL, bool save = false); +void ToggleINES20(HWND hwnd, bool ines20); +void ToggleExtendSystemList(HWND hwnd, bool enable); +void ToggleVSSystemGroup(HWND hwnd, bool enable); +void ToggleUnofficialPropertiesEnabled(HWND hwnd, bool ines20, bool check); +void ToggleUnofficialExtraRegionCode(HWND hwnd, bool ines20, bool unofficial_check, bool check); +void ToggleUnofficialPrgRamPresent(HWND hwnd, bool ines20, bool unofficial_check, bool check); +void SetHeaderData(HWND hwnd, iNES_HEADER* header); +bool LoadHeader(HWND parent, iNES_HEADER* header); +bool WriteHeaderData(HWND hwnd, iNES_HEADER* header); +int GetComboBoxByteSize(HWND hwnd, UINT id, int* value); +bool SearchByString(HWND hwnd, UINT id, int* value, char* buf); +bool GetComboBoxListItemData(HWND hwnd, UINT id, int* value, char* buf, bool exact = false); +bool SaveINESFile(HWND hwnd, char* path, iNES_HEADER* header); + + +LRESULT CALLBACK HeaderEditorProc(HWND hDlg, UINT uMsg, WPARAM wP, LPARAM lP); +extern WNDPROC DefaultEditCtrlProc; +extern LRESULT APIENTRY FilterEditCtrlProc(HWND hwnd, UINT msg, WPARAM wP, LPARAM lP); + +extern POINT CalcSubWindowPos(HWND hDlg, POINT* conf); +#endif diff --git a/src/drivers/win/luaconsole.cpp b/src/drivers/win/luaconsole.cpp index eb9d3a10..6d36df34 100644 --- a/src/drivers/win/luaconsole.cpp +++ b/src/drivers/win/luaconsole.cpp @@ -102,9 +102,9 @@ void WinLuaOnStop(int hDlgAsInt) INT_PTR CALLBACK DlgLuaScriptDialog(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam) { - RECT r; - RECT r2; - int dx1, dy1, dx2, dy2; +// RECT r; +// RECT r2; +// int dx1, dy1, dx2, dy2; switch (msg) { @@ -113,43 +113,10 @@ INT_PTR CALLBACK DlgLuaScriptDialog(HWND hDlg, UINT msg, WPARAM wParam, LPARAM l // remove the 30000 character limit from the console control SendMessage(GetDlgItem(hDlg, IDC_LUACONSOLE),EM_LIMITTEXT,0,0); - GetWindowRect(hAppWnd, &r); - dx1 = (r.right - r.left) / 2; - dy1 = (r.bottom - r.top) / 2; - - GetWindowRect(hDlg, &r2); - dx2 = (r2.right - r2.left) / 2; - dy2 = (r2.bottom - r2.top) / 2; - - //int windowIndex = 0;//std::find(LuaScriptHWnds.begin(), LuaScriptHWnds.end(), hDlg) - LuaScriptHWnds.begin(); - //int staggerOffset = windowIndex * 24; - //r.left += staggerOffset; - //r.right += staggerOffset; - //r.top += staggerOffset; - //r.bottom += staggerOffset; - - // push it away from the main window if we can - const int width = (r.right-r.left); - const int width2 = (r2.right-r2.left); - const int rspace = GetSystemMetrics(SM_CXSCREEN)- (r.left+width2+width); - if(rspace > r.left && r.left+width2 + width < GetSystemMetrics(SM_CXSCREEN)) - { - r.right += width; - r.left += width; - } - else if((int)r.left - (int)width2 > 0) - { - r.right -= width2; - r.left -= width2; - } - else if(r.left+width2 + width < GetSystemMetrics(SM_CXSCREEN)) - { - r.right += width; - r.left += width; - } - - SetWindowPos(hDlg, NULL, r.left, r.top, NULL, NULL, SWP_NOSIZE | SWP_NOZORDER | SWP_SHOWWINDOW); + extern POINT CalcSubWindowPos(HWND hDlg, POINT* conf); + CalcSubWindowPos(hDlg, NULL); + RECT r3; GetClientRect(hDlg, &r3); windowInfo.width = r3.right - r3.left; diff --git a/src/drivers/win/main.cpp b/src/drivers/win/main.cpp index 1ba2fdf9..32e9a005 100644 --- a/src/drivers/win/main.cpp +++ b/src/drivers/win/main.cpp @@ -316,89 +316,118 @@ int BlockingCheck() MSG msg; moocow = 1; - while( PeekMessage( &msg, 0, 0, 0, PM_NOREMOVE ) ) + while(PeekMessage(&msg, 0, 0, 0, PM_NOREMOVE)) { - if( GetMessage( &msg, 0, 0, 0)>0 ) + if(GetMessage(&msg, 0, 0, 0) > 0) { //other accelerator capable dialogs could be added here - extern HWND hwndMemWatch; - int handled = 0; - if(hCheat) - if(IsChild(hCheat, msg.hwnd)) - handled = IsDialogMessage(hCheat, &msg); - if(!handled && hMemFind) - { - if(IsChild(hMemFind, msg.hwnd)) - handled = IsDialogMessage(hMemFind, &msg); - } + // Cheat console + if(hCheat && IsChild(hCheat, msg.hwnd)) + handled = IsDialogMessage(hCheat, &msg); + + // Hex Editor -> Find + if(!handled && hMemFind && IsChild(hMemFind, msg.hwnd)) + handled = IsDialogMessage(hMemFind, &msg); + + // Memory Watch + extern HWND hwndMemWatch; if(!handled && hwndMemWatch) { - if(IsChild(hwndMemWatch,msg.hwnd)) - handled = TranslateAccelerator(hwndMemWatch,fceu_hAccel,&msg); + if(IsChild(hwndMemWatch, msg.hwnd)) + handled = TranslateAccelerator(hwndMemWatch, fceu_hAccel, &msg); if(!handled) handled = IsDialogMessage(hwndMemWatch,&msg); } - if(!handled && RamSearchHWnd) - { + + // RAM Search + if(!handled && RamSearchHWnd && IsChild(RamSearchHWnd, msg.hwnd)) handled = IsDialogMessage(RamSearchHWnd, &msg); - } + + // RAM_Watch if(!handled && RamWatchHWnd) - { - if(IsDialogMessage(RamWatchHWnd, &msg)) - { + if(handled = IsDialogMessage(RamWatchHWnd, &msg)) if(msg.message == WM_KEYDOWN) // send keydown messages to the dialog (for accelerators, and also needed for the Alt key to work) SendMessage(RamWatchHWnd, msg.message, msg.wParam, msg.lParam); - handled = true; - } - } + // TAS Editor if(!handled && taseditorWindow.hwndTASEditor) { if(taseditorEnableAcceleratorKeys) if(IsChild(taseditorWindow.hwndTASEditor, msg.hwnd)) handled = TranslateAccelerator(taseditorWindow.hwndTASEditor, fceu_hAccel, &msg); - if(!handled && taseditorWindow.hwndTASEditor){ + if(!handled){ handled = IsDialogMessage(taseditorWindow.hwndTASEditor, &msg); } } - if(!handled && taseditorWindow.hwndFindNote) - { - if(IsChild(taseditorWindow.hwndFindNote, msg.hwnd)) - handled = IsDialogMessage(taseditorWindow.hwndFindNote, &msg); - } + // TAS Editor -> Find Node + if(!handled && taseditorWindow.hwndFindNote && IsChild(taseditorWindow.hwndFindNote, msg.hwnd)) + handled = IsDialogMessage(taseditorWindow.hwndFindNote, &msg); + + // Sound Config extern HWND uug; if(!handled && uug && IsChild(uug, msg.hwnd)) handled = IsDialogMessage(uug, &msg); - if(!handled && pwindow && IsChild(pwindow, msg.hwnd)) - handled = IsDialogMessage(pwindow, &msg); + + // Palette Config + extern HWND hWndPal; + if(!handled && hWndPal && IsChild(hWndPal, msg.hwnd)) + handled = IsDialogMessage(hWndPal, &msg); + + // Code/Data Logger if(!handled && hCDLogger && IsChild(hCDLogger, msg.hwnd)) handled = IsDialogMessage(hCDLogger, &msg); + + // Trace Logger if(!handled && hTracer && IsChild(hTracer, msg.hwnd)) handled = IsDialogMessage(hTracer, &msg); + + // Game Genie Encoder/Decoder extern HWND hGGConv; if(!handled && hGGConv && IsChild(hGGConv, msg.hwnd)) handled = IsDialogMessage(hGGConv, &msg); + + // Debugger if(!handled && hDebug && IsChild(hDebug, msg.hwnd)) handled = IsDialogMessage(hDebug, &msg); + + // PPU Viewer extern HWND hPPUView; if(!handled && hPPUView && IsChild(hPPUView, msg.hwnd)) handled = IsDialogMessage(hPPUView, &msg); + + // Nametable Viewer extern HWND hNTView; if(!handled && hNTView && IsChild(hNTView, msg.hwnd)) handled = IsDialogMessage(hNTView, &msg); + + // Text Hooker extern HWND hTextHooker; if(!handled && hTextHooker && IsChild(hTextHooker, msg.hwnd)) handled = IsDialogMessage(hTextHooker, &msg); + + // Lua Scripts extern HWND LuaConsoleHWnd; if(!handled && LuaConsoleHWnd && IsChild(LuaConsoleHWnd, msg.hwnd)) handled = IsDialogMessage(LuaConsoleHWnd, &msg); + + // Logs extern HWND logwin; if(!handled && logwin && IsChild(logwin, msg.hwnd)) handled = IsDialogMessage(logwin, &msg); + // Header Editor + extern HWND hHeadEditor; + if (!handled && hHeadEditor && IsChild(hHeadEditor, msg.hwnd)) + handled = IsDialogMessage(hHeadEditor, &msg); + + // Netplay (Though it's quite dummy and nearly forgotten) + extern HWND netwin; + if (!handled && netwin && IsChild(netwin, msg.hwnd)) + handled = IsDialogMessage(netwin, &msg); + /* //adelikat - Currently no accel keys are used in the main window. Uncomment this block to activate them. if(!handled) if(msg.hwnd == hAppWnd) @@ -410,6 +439,7 @@ int BlockingCheck() } } */ + if(!handled) { TranslateMessage(&msg); @@ -467,7 +497,7 @@ void DoFCEUExit() if (FCEUMOV_Mode(MOVIEMODE_TASEDITOR) && !exitTASEditor()) return; - if (CloseMemoryWatch() && AskSave()) //If user was asked to save changes in the memory watch dialog or ram watch, and chose cancel, don't close FCEUX! + if (CloseMemoryWatch() && AskSaveRamWatch()) //If user was asked to save changes in the memory watch dialog or ram watch, and chose cancel, don't close FCEUX! { if(goptions & GOO_CONFIRMEXIT) { @@ -1124,14 +1154,14 @@ void FCEUD_ToggleStatusIcon(void) UpdateCheckedMenuItems(); } -char *GetRomName() +char *GetRomName(bool force) { //The purpose of this function is to format the ROM name stored in LoadedRomFName //And return a char array with just the name with path or extension //The purpose of this function is to populate a save as dialog with the ROM name as a default filename extern char LoadedRomFName[2048]; //Contains full path of ROM std::string Rom; //Will contain the formatted path - if(GameInfo) //If ROM is loaded + if(GameInfo || force) //If ROM is loaded { char drv[PATH_MAX], dir[PATH_MAX], name[PATH_MAX], ext[PATH_MAX]; splitpath(LoadedRomFName,drv,dir,name,ext); //Extract components of the ROM path @@ -1145,14 +1175,14 @@ char *GetRomName() return mystring; } -char *GetRomPath() +char *GetRomPath(bool force) { //The purpose of this function is to format the ROM name stored in LoadedRomFName //And return a char array with just the name with path or extension //The purpose of this function is to populate a save as dialog with the ROM name as a default filename extern char LoadedRomFName[2048]; //Contains full path of ROM std::string Rom; //Will contain the formatted path - if(GameInfo) //If ROM is loaded + if(GameInfo || force) //If ROM is loaded { char drv[PATH_MAX], dir[PATH_MAX], name[PATH_MAX], ext[PATH_MAX]; splitpath(LoadedRomFName,drv,dir,name,ext); //Extract components of the ROM path diff --git a/src/drivers/win/main.h b/src/drivers/win/main.h index b7d7305e..b26b123b 100644 --- a/src/drivers/win/main.h +++ b/src/drivers/win/main.h @@ -65,8 +65,8 @@ extern int vmod; extern char* directory_names[14]; -char *GetRomName(); //Checks if rom is loaded, if so, outputs the Rom name with no directory path or file extension -char *GetRomPath(); //Checks if rom is loaded, if so, outputs the Rom path only +char *GetRomName(bool force = false); //Checks if rom is loaded, if so, outputs the Rom name with no directory path or file extension +char *GetRomPath(bool force = false); //Checks if rom is loaded, if so, outputs the Rom path only ///Contains the names of the default directories. static const char *default_directory_names[13] = { diff --git a/src/drivers/win/memview.cpp b/src/drivers/win/memview.cpp index fedd28b1..3a41a495 100644 --- a/src/drivers/win/memview.cpp +++ b/src/drivers/win/memview.cpp @@ -316,7 +316,7 @@ static int GetFileData(uint32 offset){ } static int WriteFileData(uint32 addr,int data){ - if (addr < 16)MessageBox(hMemView,"Sorry", "Go bug bbit if you really want to edit the header.", MB_OK); + if (addr < 16) MessageBox(hMemView, "You can't edit ROM header here, however you can use iNES Header Editor to edit the header if it's an iNES format file.", "Sorry", MB_OK | MB_ICONERROR); if((addr >= 16) && (addr < PRGsize[0]+16)) *(uint8 *)(GetNesPRGPointer(addr-16)) = data; if((addr >= PRGsize[0]+16) && (addr < CHRsize[0]+PRGsize[0]+16)) *(uint8 *)(GetNesCHRPointer(addr-16-PRGsize[0])) = data; diff --git a/src/drivers/win/memwatch.cpp b/src/drivers/win/memwatch.cpp index 9f3af8a2..34f0216b 100644 --- a/src/drivers/win/memwatch.cpp +++ b/src/drivers/win/memwatch.cpp @@ -201,19 +201,50 @@ void MemwAddRecentFile(const char *filename) UpdateMemwRecentArray(filename, memw_recent_files, MEMW_MAX_NUMBER_OF_RECENT_FILES, memwrecentmenu, ID_FILE_RECENT, MEMW_MENU_FIRST_RECENT_FILE); } -static const int MW_ADDR_Lookup[] = { - MW_ADDR00,MW_ADDR01,MW_ADDR02,MW_ADDR03, - MW_ADDR04,MW_ADDR05,MW_ADDR06,MW_ADDR07, - MW_ADDR08,MW_ADDR09,MW_ADDR10,MW_ADDR11, - MW_ADDR12,MW_ADDR13,MW_ADDR14,MW_ADDR15, - MW_ADDR16,MW_ADDR17,MW_ADDR18,MW_ADDR19, - MW_ADDR20,MW_ADDR21,MW_ADDR22,MW_ADDR23 +static const int MW_ADDR[] = { + MW_ADDR00, MW_ADDR01, MW_ADDR02, MW_ADDR03, + MW_ADDR04, MW_ADDR05, MW_ADDR06, MW_ADDR07, + MW_ADDR08, MW_ADDR09, MW_ADDR10, MW_ADDR11, + MW_ADDR12, MW_ADDR13, MW_ADDR14, MW_ADDR15, + MW_ADDR16, MW_ADDR17, MW_ADDR18, MW_ADDR19, + MW_ADDR20, MW_ADDR21, MW_ADDR22, MW_ADDR23 +}; +static const int MW_NAME[] = +{ + MW_NAME00, MW_NAME01, MW_NAME02, MW_NAME03, + MW_NAME04, MW_NAME05, MW_NAME06, MW_NAME07, + MW_NAME08, MW_NAME09, MW_NAME10, MW_NAME11, + MW_NAME12, MW_NAME13, MW_NAME14, MW_NAME15, + MW_NAME16, MW_NAME17, MW_NAME18, MW_NAME19, + MW_NAME20, MW_NAME21, MW_NAME22, MW_NAME23 +}; +static const int MW_VAL[] = { + MW_VAL00, MW_VAL01, MW_VAL02, MW_VAL03, + MW_VAL04, MW_VAL05, MW_VAL06, MW_VAL07, + MW_VAL08, MW_VAL09, MW_VAL10, MW_VAL11, + MW_VAL12, MW_VAL13, MW_VAL14, MW_VAL15, + MW_VAL16, MW_VAL17, MW_VAL18, MW_VAL19, + MW_VAL20, MW_VAL21, MW_VAL22, MW_VAL23 +}; +static const int MW_RESET[] = { + MEMW_EDIT00RESET, MEMW_EDIT01RESET, + MEMW_EDIT02RESET, MEMW_EDIT03RESET +}; +static const int MW_RESULT[] = { + EDIT00_RESULTS, EDIT01_RESULTS, + EDIT02_RESULTS, EDIT03_RESULTS +}; +static const int MW_RMADDR[] = { + MEMW_EDIT00RMADDRESS, MEMW_EDIT01RMADDRESS, + MEMW_EDIT02RMADDRESS, MEMW_EDIT03RMADDRESS +}; +static const int MW_EDITFORMULA[] = { + MEMW_EDIT00FORMULA, MEMW_EDIT01FORMULA, + MEMW_EDIT02FORMULA, MEMW_EDIT03FORMULA }; -inline int MW_ADDR(int i) { return MW_ADDR_Lookup[i] ; } -inline int MW_NAME(int i) { return MW_ADDR_Lookup[i]-1; } -inline int MW_VAL (int i) { return MW_ADDR_Lookup[i]+1; } -static const int MWNUM = ARRAY_SIZE(MW_ADDR_Lookup); + +static const int MWNUM = ARRAY_SIZE(MW_ADDR); static int yPositions[MWNUM]; static int xPositions[MWNUM]; @@ -223,7 +254,7 @@ static struct MWRec static int findIndex(WORD ctl) { for(int i=0;i than", "> by 1", "< than", "< by 1", "equal", "!equal"}; - const int kLabelControls[] = {MW_VALUELABEL1,MW_VALUELABEL2}; + const int kLabelControls[] = {MW_VALUELABEL1, MW_VALUELABEL2}; switch(uMsg) { case WM_ENTERMENULOOP: - EnableMenuItem(memwmenu,MEMW_FILE_SAVE,MF_BYCOMMAND | (fileChanged ? MF_ENABLED : MF_GRAYED)); + EnableMenuItem(memwmenu, MEMW_FILE_SAVE, MF_BYCOMMAND | fileChanged ? MF_ENABLED : MF_GRAYED); break; case WM_MOVE: { if (!IsIconic(hwndDlg)) { - RECT wrect; - GetWindowRect(hwndDlg,&wrect); - MemWatch_wndx = wrect.left; - MemWatch_wndy = wrect.top; + RECT wrect; + GetWindowRect(hwndDlg,&wrect); + MemWatch_wndx = wrect.left; + MemWatch_wndy = wrect.top; - #ifdef WIN32 - WindowBoundsCheckNoResize(MemWatch_wndx,MemWatch_wndy,wrect.right); - #endif + #ifdef WIN32 + WindowBoundsCheckNoResize(MemWatch_wndx,MemWatch_wndy,wrect.right); + #endif } break; }; case WM_INITDIALOG: - if (MemWatch_wndx==-32000) MemWatch_wndx=0; //Just in case - if (MemWatch_wndy==-32000) MemWatch_wndy=0; //-32000 bugs can happen as it is a special windows value - SetWindowPos(hwndDlg,0,MemWatch_wndx,MemWatch_wndy,0,0,SWP_NOSIZE|SWP_NOZORDER|SWP_NOOWNERZORDER); + POINT pt; + if (MemWatch_wndx != 0 && MemWatch_wndy != 0) + { + pt.x = MemWatch_wndx; + pt.y = MemWatch_wndy; + pt = CalcSubWindowPos(hwndDlg, &pt); + } + else + pt = CalcSubWindowPos(hwndDlg, NULL); + MemWatch_wndx = pt.x; + MemWatch_wndy = pt.y; + hdc = GetDC(hwndDlg); SelectObject (hdc, debugSystem->hFixedFont); SetTextAlign(hdc,TA_UPDATECP | TA_TOP | TA_LEFT); @@ -739,19 +779,23 @@ static BOOL CALLBACK MemWatchCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA } //find the positions where we should draw string values - for(int i=0;i=MWNUM/2) - col=1; + for(int i = 0; i < MWNUM; i++) { + int col = 0; + if(i >= MWNUM / 2) + col = 1; RECT r; - GetWindowRect(GetDlgItem(hwndDlg,MW_ADDR(i)),&r); - ScreenToClient(hwndDlg,(LPPOINT)&r); - ScreenToClient(hwndDlg,(LPPOINT)&r.right); + GetWindowRect(GetDlgItem(hwndDlg, MW_ADDR[i]), &r); + ScreenToClient(hwndDlg, (LPPOINT)&r); + ScreenToClient(hwndDlg, (LPPOINT)&r.right); yPositions[i] = r.top; - yPositions[i] += ((r.bottom-r.top)-debugSystem->fixedFontHeight)/2; //vertically center - GetWindowRect(GetDlgItem(hwndDlg,kLabelControls[col]),&r); - ScreenToClient(hwndDlg,(LPPOINT)&r); + yPositions[i] += (r.bottom - r.top - debugSystem->fixedFontHeight) / 2; //vertically center + GetWindowRect(GetDlgItem(hwndDlg, kLabelControls[col]), &r); + ScreenToClient(hwndDlg, (LPPOINT)&r); xPositions[i] = r.left; + + // experimental: limit the text length and input to hex values + SendDlgItemMessage(hwndDlg, MW_ADDR[i], EM_SETLIMITTEXT, 4, 0); + DefaultEditCtrlProc = (WNDPROC)SetWindowLong(GetDlgItem(hwndDlg, MW_ADDR[i]), GWL_WNDPROC, (LONG)FilterEditCtrlProc); } //Populate Formula pulldown menus @@ -759,9 +803,9 @@ static BOOL CALLBACK MemWatchCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA { for (int y = 0; y < FMAX; y++) { - SendDlgItemMessage(hwndDlg, MEMW_EDIT00FORMULA+x,(UINT) CB_ADDSTRING, 0,(LPARAM) formula[y].c_str() ); + SendDlgItemMessage(hwndDlg, MW_EDITFORMULA[x], (UINT)CB_ADDSTRING, 0, (LPARAM)formula[y].c_str()); } - SendDlgItemMessage(hwndDlg, MEMW_EDIT00FORMULA+x, CB_SETCURSEL, 0, 0); + SendDlgItemMessage(hwndDlg, MW_EDITFORMULA[x], CB_SETCURSEL, 0, 0); } @@ -771,6 +815,7 @@ static BOOL CALLBACK MemWatchCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA editnow[x] = 0; editlast[x]= 0; } + RamChangeInitialize = true; break; @@ -870,7 +915,6 @@ static BOOL CALLBACK MemWatchCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA case MEMW_EXPANDCOLLAPSE: CollapseWindow(); break; - case MEMW_EDIT00RESET: RamChangeReset(0); break; @@ -892,7 +936,7 @@ static BOOL CALLBACK MemWatchCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA switch(HIWORD(wParam)) { - case EN_CHANGE: + case EN_CHANGE: { fileChanged = iftextchanged(); //the contents of an address box changed. re-parse it. @@ -904,44 +948,44 @@ static BOOL CALLBACK MemWatchCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARA } #if 0 - case BN_CLICKED: + case BN_CLICKED: - switch(LOWORD(wParam)) - { - case 101: //Save button clicked - //StopSound(); //mbg 5/7/08 - //SaveMemWatch(); //5/13/08 Buttons removed (I didn't remove the code so it would be easy to add them back one day) - break; - case 102: //Load button clicked - //StopSound(); //mbg 5/7/08 - //LoadMemWatch(); //5/13/08 Buttons removed - break; - case 103: //Clear button clicked - //ClearAllText(); //5/13/08 Buttons removed - break; - default: - break; - } + switch(LOWORD(wParam)) + { + case 101: //Save button clicked + //StopSound(); //mbg 5/7/08 + //SaveMemWatch(); //5/13/08 Buttons removed (I didn't remove the code so it would be easy to add them back one day) + break; + case 102: //Load button clicked + //StopSound(); //mbg 5/7/08 + //LoadMemWatch(); //5/13/08 Buttons removed + break; + case 103: //Clear button clicked + //ClearAllText(); //5/13/08 Buttons removed + break; + default: + break; + } #endif - } + } #if 0 - if(!(wParam>>16)) //Close button clicked - { - switch(wParam&0xFFFF) + if(!(wParam>>16)) //Close button clicked { - case 1: - //CloseMemoryWatch(); //5/13/08 Buttons removed - break; + switch(wParam&0xFFFF) + { + case 1: + //CloseMemoryWatch(); //5/13/08 Buttons removed + break; + } } - } #endif - break; - default: - break; + break; + default: + break; - } + } return 0; } @@ -993,9 +1037,9 @@ void CreateMemWatch() int i; for(i = 0; i < MWNUM; i++) { - SetDlgItemText(hwndMemWatch,MW_VAL (i),(LPTSTR) "---"); - SetDlgItemText(hwndMemWatch,MW_ADDR(i),(LPTSTR) addresses[i]); - SetDlgItemText(hwndMemWatch,MW_NAME(i),(LPTSTR) labels[i]); + SetDlgItemText(hwndMemWatch,MW_VAL [i],(LPTSTR) "---"); + SetDlgItemText(hwndMemWatch,MW_ADDR[i],(LPTSTR) addresses[i]); + SetDlgItemText(hwndMemWatch,MW_NAME[i],(LPTSTR) labels[i]); } } if (MemWatchLoadFileOnStart) OpenMemwatchRecentFile(0); @@ -1014,10 +1058,10 @@ void AddMemWatch(char memaddress[32]) CreateMemWatch(); for(i = 0; i < MWNUM; i++) { - GetDlgItemText(hwndMemWatch,MW_ADDR(i),TempArray,32); + GetDlgItemText(hwndMemWatch,MW_ADDR[i],TempArray,32); if (TempArray[0] == 0) { - SetDlgItemText(hwndMemWatch,MW_ADDR(i),memaddress); + SetDlgItemText(hwndMemWatch,MW_ADDR[i],memaddress); break; } } @@ -1039,23 +1083,19 @@ void RamChange() //Get proper Addr edit box switch (x) { - case 0: - whichADDR = 0; break; //Addr 1 - case 1: - whichADDR = 3; break; //Addr 2 - case 2: - whichADDR = 36; break; //Addr 12 - case 3: - whichADDR = 39; break; //Addr 13 + case 0: whichADDR = 0; break; //Addr 1 + case 1: whichADDR = 1; break; //Addr 2 + case 2: whichADDR = 11; break; //Addr 12 + case 3: whichADDR = 12; break; //Addr 13 } - GetDlgItemText(hwndMemWatch, MW_ADDR00+(whichADDR), editboxnow[x], 6); //Get Address value of edit00 - SetDlgItemText(hwndMemWatch, MEMW_EDIT00RMADDRESS+x, editboxnow[x]); //Put Address value + GetDlgItemText(hwndMemWatch, MW_ADDR[whichADDR], editboxnow[x], 6); //Get Address value of edit00 + SetDlgItemText(hwndMemWatch, MW_RMADDR[x], editboxnow[x]); //Put Address value editlast[x] = editnow[x]; //Update last value editnow[x] = GetMem(mwrec.addr); //Update now value //Calculate Ram Change - int z = SendDlgItemMessage(hwndMemWatch, MEMW_EDIT00FORMULA+x,(UINT) CB_GETTOPINDEX, 0,0); + int z = SendDlgItemMessage(hwndMemWatch, MW_EDITFORMULA[x],(UINT) CB_GETTOPINDEX, 0,0); switch (z) { //Greater than------------------------------------ @@ -1102,7 +1142,7 @@ void RamChangeReset(int x) { editcount[x] = 0; sprintf(editchangem[x], "%d", editcount[x]); //Convert counter to text - SetDlgItemText(hwndMemWatch, EDIT00_RESULTS+x, editchangem[x]); //Display text in results box + SetDlgItemText(hwndMemWatch, MW_RESULT[x], editchangem[x]); //Display text in results box } void ChangeMemwMenuItemText(int menuitem, string text) diff --git a/src/drivers/win/netplay.cpp b/src/drivers/win/netplay.cpp index 9afbdb8d..15f84f10 100644 --- a/src/drivers/win/netplay.cpp +++ b/src/drivers/win/netplay.cpp @@ -25,7 +25,7 @@ static int recv_tcpwrap(uint8 *buf, int len); static void NetStatAdd(char *text); -static HWND netwin=0; +HWND netwin=0; static char *netstatt[64]; static int netstattcount=0; diff --git a/src/drivers/win/palette.cpp b/src/drivers/win/palette.cpp index bed79087..6b3e3095 100644 --- a/src/drivers/win/palette.cpp +++ b/src/drivers/win/palette.cpp @@ -12,6 +12,7 @@ extern int palsharpness; extern int palcontrast; extern int palbrightness; extern bool paldeemphswap; +HWND hWndPal = NULL; bool SetPalette(const char* nameo) { @@ -226,7 +227,7 @@ BOOL CALLBACK PaletteConCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPa case BUTTON_CLOSE: gornk: DestroyWindow(hwndDlg); - pwindow = 0; // Yay for user race conditions. + hWndPal = 0; // Yay for user race conditions. break; } } @@ -240,13 +241,9 @@ gornk: **/ void ConfigPalette() { - if(!pwindow) - { - pwindow=CreateDialog(fceu_hInstance, "PALCONFIG" ,0 , PaletteConCallB); - } + if(!hWndPal) + hWndPal = CreateDialog(fceu_hInstance, "PALCONFIG", hAppWnd, PaletteConCallB); else - { - SetFocus(pwindow); - } + SetFocus(hWndPal); } diff --git a/src/drivers/win/ram_search.cpp b/src/drivers/win/ram_search.cpp index a2e38a0c..a9fd503d 100644 --- a/src/drivers/win/ram_search.cpp +++ b/src/drivers/win/ram_search.cpp @@ -1245,7 +1245,6 @@ LRESULT CustomDraw (LPARAM lParam) { case CDDS_PREPAINT : return CDRF_NOTIFYITEMDRAW; - case CDDS_ITEMPREPAINT: { int rv = CDRF_DODEFAULT; @@ -1398,38 +1397,15 @@ static BOOL SelectingByKeyboard() LRESULT CALLBACK RamSearchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { - RECT r; - RECT r2; - int dx1, dy1, dx2, dy2; + static int watchIndex=0; switch(uMsg) { case WM_INITDIALOG: { RamSearchHWnd = hDlg; - GetWindowRect(hWnd, &r); - dx1 = (r.right - r.left) / 2; - dy1 = (r.bottom - r.top) / 2; + CalcSubWindowPos(hDlg, NULL); - GetWindowRect(hDlg, &r2); - dx2 = (r2.right - r2.left) / 2; - dy2 = (r2.bottom - r2.top) / 2; - - // push it away from the main window if we can - const int width = (r.right-r.left); - const int width2 = (r2.right-r2.left); - if(r.left+width2 + width < GetSystemMetrics(SM_CXSCREEN)) - { - r.right += width; - r.left += width; - } - else if((int)r.left - (int)width2 > 0) - { - r.right -= width2; - r.left -= width2; - } - - SetWindowPos(hDlg, NULL, r.left, r.top, NULL, NULL, SWP_NOSIZE | SWP_NOZORDER | SWP_SHOWWINDOW); switch(rs_o) { case '<': diff --git a/src/drivers/win/ram_search.h b/src/drivers/win/ram_search.h index 122fa82c..dad324fa 100644 --- a/src/drivers/win/ram_search.h +++ b/src/drivers/win/ram_search.h @@ -30,6 +30,7 @@ void DoRamSearchOperation(); //Perform a search extern HWND RamSearchHWnd; extern LRESULT CALLBACK RamSearchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); +extern POINT CalcSubWindowPos(HWND hDlg, POINT* conf); // Too much work to do for resorting the values, and finding the biggest number // by sorting in ram list doesn't help too much in usually use, so I gave it up. diff --git a/src/drivers/win/ramwatch.cpp b/src/drivers/win/ramwatch.cpp index 10853afe..dddb113a 100644 --- a/src/drivers/win/ramwatch.cpp +++ b/src/drivers/win/ramwatch.cpp @@ -235,7 +235,7 @@ void Update_RAM_Watch() } } -bool AskSave() +bool AskSaveRamWatch() { //This function asks to save changes if the watch file contents have changed //returns false only if a save was attempted but failed or was cancelled @@ -678,7 +678,7 @@ bool Load_Watches(bool clear) bool ResetWatches() { - if(!AskSave()) + if(!AskSaveRamWatch()) return false; for (;WatchCount >= 0; WatchCount--) { @@ -1039,47 +1039,16 @@ LRESULT CALLBACK RamWatchProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam case WM_INITDIALOG: { - RECT r, r2; - int dx1, dy1, dx2, dy2; - - GetWindowRect(hWnd, &r); //Ramwatch window - dx1 = (r.right - r.left) / 2; - dy1 = (r.bottom - r.top) / 2; - - GetWindowRect(hDlg, &r2); // TASer window - dx2 = (r2.right - r2.left) / 2; - dy2 = (r2.bottom - r2.top) / 2; - - - // push it away from the main window if we can - const int width = (r.right-r.left); - const int height = (r.bottom - r.top); - const int width2 = (r2.right-r2.left); - if(r.left+width2 + width < GetSystemMetrics(SM_CXSCREEN)) + if (RWSaveWindowPos) { - r.right += width; - r.left += width; + POINT pt = { ramw_x, ramw_y }; + pt = CalcSubWindowPos(hDlg, &pt); + ramw_x = pt.x; + ramw_y = pt.y; } - else if((int)r.left - (int)width2 > 0) - { - r.right -= width2; - r.left -= width2; - } - - //----------------------------------------------------------------------------------- - //If user has Save Window Pos selected, override default positioning - if (RWSaveWindowPos) - { - //If ramwindow is for some reason completely off screen, use default instead - if (ramw_x > (-width*2) || ramw_x < (width*2 + GetSystemMetrics(SM_CYSCREEN)) ) - r.left = ramw_x; //This also ignores cases of windows -32000 error codes - //If ramwindow is for some reason completely off screen, use default instead - if (ramw_y > (0-height*2) ||ramw_y < (height*2 + GetSystemMetrics(SM_CYSCREEN)) ) - r.top = ramw_y; //This also ignores cases of windows -32000 error codes - } - //------------------------------------------------------------------------------------- - SetWindowPos(hDlg, NULL, r.left, r.top, NULL, NULL, SWP_NOSIZE | SWP_NOZORDER | SWP_SHOWWINDOW); - + else + CalcSubWindowPos(hDlg, NULL); + ramwatchmenu=GetMenu(hDlg); rwrecentmenu=CreateMenu(); UpdateRW_RMenu(rwrecentmenu, RAMMENU_FILE_RECENT, RW_MENU_FIRST_RECENT_FILE); diff --git a/src/drivers/win/ramwatch.h b/src/drivers/win/ramwatch.h index 1366ae1c..f1feb395 100644 --- a/src/drivers/win/ramwatch.h +++ b/src/drivers/win/ramwatch.h @@ -6,7 +6,7 @@ extern bool AutoRWLoad; extern bool RWSaveWindowPos; #define MAX_RECENT_WATCHES 5 extern char rw_recent_files[MAX_RECENT_WATCHES][1024]; -extern bool AskSave(); +extern bool AskSaveRamWatch(); extern int ramw_x; extern int ramw_y; extern bool RWfileChanged; diff --git a/src/drivers/win/res.rc b/src/drivers/win/res.rc index edf9f298..618d4517 100644 --- a/src/drivers/win/res.rc +++ b/src/drivers/win/res.rc @@ -1,2734 +1,2883 @@ -// Microsoft Visual C++ generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "afxres.h" -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// Neutral resources -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU) -LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL -#pragma code_page(1252) - -///////////////////////////////////////////////////////////////////////////// -// -// 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", MENU_AUTOFIRE_PATTERN_4 - MENUITEM "1 on, 5 off", MENU_AUTOFIRE_PATTERN_5 - MENUITEM "2 on, 1 off", MENU_AUTOFIRE_PATTERN_6 - MENUITEM "2 on, 2 off", MENU_AUTOFIRE_PATTERN_7 - MENUITEM "2 on, 3 off", MENU_AUTOFIRE_PATTERN_8 - MENUITEM "2 on, 4 off", MENU_AUTOFIRE_PATTERN_9 - MENUITEM "3 on, 1 off", MENU_AUTOFIRE_PATTERN_10 - MENUITEM "3 on, 2 off", MENU_AUTOFIRE_PATTERN_11 - MENUITEM "3 on, 3 off", MENU_AUTOFIRE_PATTERN_12 - MENUITEM "4 on, 1 off", MENU_AUTOFIRE_PATTERN_13 - MENUITEM "4 on, 2 off", MENU_AUTOFIRE_PATTERN_14 - MENUITEM "5 on, 1 off", MENU_AUTOFIRE_PATTERN_15 - END - POPUP "Autofire &Offset" - BEGIN - MENUITEM "0 frames", MENU_AUTOFIRE_OFFSET_1 - MENUITEM "1 frame", MENU_AUTOFIRE_OFFSET_2 - MENUITEM "2 frames", MENU_AUTOFIRE_OFFSET_3 - MENUITEM "3 frames", MENU_AUTOFIRE_OFFSET_4 - MENUITEM "4 frames", MENU_AUTOFIRE_OFFSET_5 - MENUITEM "5 frames", MENU_AUTOFIRE_OFFSET_6 - END - MENUITEM "&Alternate A and B", MENU_ALTERNATE_AB - MENUITEM SEPARATOR - MENUITEM "Te&xt Hooker...", ID_TOOLS_TEXTHOOKER - END - POPUP "&Debug" - BEGIN - MENUITEM "&Debugger...", MENU_DEBUGGER - MENUITEM "&PPU Viewer...", MENU_PPUVIEWER - MENUITEM "&Name Table Viewer...", MENU_NAMETABLEVIEWER - MENUITEM "&Hex Editor...", MENU_HEXEDITOR - MENUITEM "&Trace Logger...", MENU_TRACELOGGER - MENUITEM "&Code/Data Logger...", MENU_CDLOGGER - MENUITEM "&Game Genie Decoder/Encoder...", MENU_GAMEGENIEDECODER - END - POPUP "&Help" - BEGIN - MENUITEM "&Help...", MENU_HELP - MENUITEM "&Message Log", MENU_MSGLOG - MENUITEM SEPARATOR - MENUITEM "&About", MENU_ABOUT - END -END - -TASEDITORMENU MENUEX -BEGIN - POPUP "File", 65535,MFT_STRING,MFS_ENABLED - BEGIN - MENUITEM "New", ID_FILE_NEW,MFT_STRING,MFS_ENABLED - MENUITEM "Open", ID_FILE_OPENPROJECT,MFT_STRING,MFS_ENABLED - MENUITEM "Save\tCtrl+S", ID_FILE_SAVEPROJECT,MFT_STRING,MFS_ENABLED - MENUITEM "Save As", ID_FILE_SAVEPROJECTAS,MFT_STRING,MFS_ENABLED - MENUITEM "Save Compact", ID_FILE_SAVECOMPACT,MFT_STRING,MFS_ENABLED - MENUITEM "Recent", ID_FILE_RECENT,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "Import Input", ID_FILE_IMPORT,MFT_STRING,MFS_ENABLED - MENUITEM "Export to FM2", ID_FILE_EXPORTFM2,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "Close\tAlt+F4", ID_FILE_CLOSE,MFT_STRING,MFS_ENABLED - END - POPUP "Edit", 65535,MFT_STRING,MFS_ENABLED - BEGIN - MENUITEM "Undo\tCtrl+Z", ID_EDIT_UNDO,MFT_STRING,MFS_ENABLED - MENUITEM "Redo\tCtrl+Y", ID_EDIT_REDO,MFT_STRING,MFS_ENABLED - MENUITEM "Selection Undo\tCtrl+Q", ID_EDIT_SELECTIONUNDO,MFT_STRING,MFS_ENABLED - MENUITEM "Selection Redo\tCtrl+W", ID_EDIT_SELECTIONREDO,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "Deselect", ID_EDIT_DESELECT,MFT_STRING,MFS_ENABLED - MENUITEM "Select All", ID_EDIT_SELECTALL,MFT_STRING,MFS_ENABLED - MENUITEM "Select between Markers\tCtrl+A", ID_EDIT_SELECTMIDMARKERS,MFT_STRING,MFS_ENABLED - MENUITEM "Reselect Clipboard\tCtrl+B", ID_EDIT_RESELECTCLIPBOARD,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "Copy\tCtrl+C", ID_EDIT_COPY,MFT_STRING,MFS_ENABLED - MENUITEM "Paste\tCtrl+V", ID_EDIT_PASTE,MFT_STRING,MFS_ENABLED - MENUITEM "PasteInsert\tCtrl+Shift+V", ID_EDIT_PASTEINSERT,MFT_STRING,MFS_ENABLED - MENUITEM "Cut\tCtrl+X", ID_EDIT_CUT,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "Clear\tDel", ID_EDIT_CLEAR,MFT_STRING,MFS_ENABLED - MENUITEM "Delete\tCtrl+Del", ID_EDIT_DELETE,MFT_STRING,MFS_ENABLED - MENUITEM "Clone\tCtrl+Ins", ID_EDIT_CLONEFRAMES,MFT_STRING,MFS_ENABLED - MENUITEM "Insert\tCtrl+Shift+Ins", ID_EDIT_INSERTFRAMES,MFT_STRING,MFS_ENABLED - MENUITEM "Insert # of Frames\tIns", ID_EDIT_INSERT,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "Truncate movie", ID_EDIT_TRUNCATE,MFT_STRING,MFS_ENABLED - END - POPUP "View", 65535,MFT_STRING,MFS_ENABLED - BEGIN - MENUITEM "Find Note window\tCtrl+F", ID_VIEW_FINDNOTE,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "Display Branch Screenshots", ID_VIEW_SHOWBRANCHSCREENSHOTS,MFT_STRING,MFS_ENABLED - MENUITEM "Display Branch Descriptions", ID_VIEW_SHOWBRANCHTOOLTIPS,MFT_STRING,MFS_ENABLED - MENUITEM "Enable Hot Changes", ID_VIEW_ENABLEHOTCHANGES,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "Follow Undo context", ID_VIEW_JUMPWHENMAKINGUNDO,MFT_STRING,MFS_ENABLED - MENUITEM "Follow Marker Note context", ID_VIEW_FOLLOWMARKERNOTECONTEXT,MFT_STRING,MFS_ENABLED - END - POPUP "Config", 65535,MFT_STRING,MFS_ENABLED - BEGIN - MENUITEM "Project file saving options", ID_CONFIG_SAVING_OPTIONS,MFT_STRING,MFS_ENABLED - MENUITEM "Set max Undo levels", ID_CONFIG_SETMAXUNDOLEVELS,MFT_STRING,MFS_ENABLED - MENUITEM "Set Greenzone capacity", ID_CONFIG_SETGREENZONECAPACITY,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "Enable Greenzoning", ID_CONFIG_ENABLEGREENZONING,MFT_STRING,MFS_ENABLED - MENUITEM "Autofire Pattern skips Lag", ID_CONFIG_PATTERNSKIPSLAG,MFT_STRING,MFS_ENABLED - MENUITEM "Auto-adjust Input according to Lag", ID_CONFIG_ADJUSTLAG,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "Draw Input by dragging", ID_CONFIG_DRAWINPUTBYDRAGGING,MFT_STRING,MFS_ENABLED - MENUITEM "Combine consecutive Recordings/Draws", ID_CONFIG_COMBINECONSECUTIVERECORDINGS,MFT_STRING,MFS_ENABLED - MENUITEM "Use 1P keys for all single Recordings", ID_CONFIG_USE1PFORRECORDING,MFT_STRING,MFS_ENABLED - MENUITEM "Use Input keys for Column Set", ID_CONFIG_USEINPUTKEYSFORCOLUMNSET,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "Bind Markers to Input", ID_CONFIG_BINDMARKERSTOINPUT,MFT_STRING,MFS_ENABLED - MENUITEM "Empty new Marker Notes", ID_CONFIG_EMPTYNEWMARKERNOTES,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "Old control scheme for Branching", ID_CONFIG_OLDBRANCHINGCONTROLS,MFT_STRING,MFS_ENABLED - MENUITEM "Branches restore entire Movie", ID_CONFIG_BRANCHESRESTOREFULLMOVIE,MFT_STRING,MFS_ENABLED - MENUITEM "HUD in Branch screenshots", ID_CONFIG_HUDINBRANCHSCREENSHOTS,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "Autopause at the end of Movie", ID_CONFIG_AUTOPAUSEATTHEENDOFMOVIE,MFT_STRING,MFS_ENABLED - END - POPUP "Help", 65535,MFT_STRING,MFS_ENABLED - BEGIN - MENUITEM "Open TAS Editor Manual", ID_HELP_OPEN_MANUAL,MFT_STRING,MFS_ENABLED - MENUITEM "Enable Tooltips", ID_HELP_TOOLTIPS,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "About", ID_HELP_ABOUT,MFT_STRING,MFS_ENABLED - END - POPUP "Pattern", 65535,MFT_STRING | MFT_RIGHTJUSTIFY,MFS_ENABLED - BEGIN - MENUITEM "Dummy", ID_PATTERN_TEST,MFT_STRING,MFS_ENABLED - END -END - -MEMVIEWMENU MENU -BEGIN - POPUP "&File" - BEGIN - MENUITEM "&Save Rom", MENU_MV_FILE_SAVE - MENUITEM "S&ave Rom As...", MENU_MV_FILE_SAVE_AS - MENUITEM "&Load *.TBL File", MENU_MV_FILE_LOAD_TBL - MENUITEM "&Unload *.TBL file", MENU_MV_FILE_UNLOAD_TBL - POPUP "&Dump to file" - BEGIN - MENUITEM "&Ram", MENU_MV_FILE_DUMP_RAM - MENUITEM "&PPU Memory", MENU_MV_FILE_DUMP_PPU - MENUITEM "&OAM Memory", MENU_MV_FILE_DUMP_OAM - MENUITEM "6502 64K", MENU_MV_FILE_DUMP_64K - END - POPUP "Load from &file" - BEGIN - MENUITEM "&Ram", MENU_MV_FILE_LOAD_RAM - MENUITEM "&PPU Memory", MENU_MV_FILE_LOAD_PPU - MENUITEM "&OAM Memory", MENU_MV_FILE_LOAD_OAM - END - MENUITEM "&Goto Address\tCtrl+A", MENU_MV_FILE_GOTO_ADDRESS - MENUITEM SEPARATOR - MENUITEM "&Close\tAlt+F4", ID_MEMWVIEW_FILE_CLOSE - END - POPUP "&Edit" - BEGIN - MENUITEM "&Undo\tCtrl+Z", MENU_MV_EDIT_UNDO - MENUITEM SEPARATOR - MENUITEM "&Copy", MENU_MV_EDIT_COPY - MENUITEM "&Paste", MENU_MV_EDIT_PASTE - MENUITEM SEPARATOR - MENUITEM "&Find...", MENU_MV_EDIT_FIND - END - POPUP "&View" - BEGIN - MENUITEM "&NES Memory", MENU_MV_VIEW_RAM - MENUITEM "&PPU Memory", MENU_MV_VIEW_PPU - MENUITEM "&OAM Memory", MENU_MV_VIEW_OAM - MENUITEM "&ROM File", MENU_MV_VIEW_ROM - END - POPUP "Highlighting" - BEGIN - MENUITEM "Highlight Activity", ID_HIGHLIGHTING_HIGHLIGHT_ACTIVITY - MENUITEM "Set fading period...", ID_HIGHLIGHTING_SETFADINGPERIOD - MENUITEM "Fade when paused", ID_HIGHLIGHTING_FADEWHENPAUSED - END - POPUP "&Bookmarks" - BEGIN - MENUITEM "&Remove all bookmarks", MENU_MV_BOOKMARKS_RM_ALL - END - POPUP "Help" - BEGIN - MENUITEM "&Help...", MENU_MV_HELP - END -END - -MEMWATCHMENU MENU -BEGIN - POPUP "&File " - BEGIN - MENUITEM "&New...\tCtrl+N", MEMW_FILE_NEW - MENUITEM "&Open...\tCtrl+O", MEMW_FILE_OPEN - MENUITEM "&Save\tCtrl+S", MEMW_FILE_SAVE - MENUITEM "S&ave As..\tCtrl+Shift+S", MEMW_FILE_SAVEAS - MENUITEM "&Recent", ID_FILE_RECENT - MENUITEM SEPARATOR - MENUITEM "&Close\tAlt+F4", MEMW_FILE_CLOSE - END - POPUP "&Options" - BEGIN - MENUITEM "&Load on Startup", MEMW_OPTIONS_LOADSTART - MENUITEM "Load Last &File on Startup", MEMW_OPTIONS_LOADLASTFILE - MENUITEM SEPARATOR - MENUITEM "&Collapse to 1 column", MEMW_OPTIONS_EXPANDCOLLAPSE - MENUITEM SEPARATOR - MENUITEM "Bind to Main Window", ID_OPTIONS_BINDTOMAINWINDOW - END - POPUP "&Help" - BEGIN - MENUITEM "&MemWatch Commands", MEMW_HELP_WCOMMANDS - END -END - -TASEDITORCONTEXTMENUS MENU -BEGIN - POPUP "Selected" - BEGIN - MENUITEM "Set Markers\tDbl-Clk", ID_SELECTED_SETMARKERS - MENUITEM "Remove Markers", ID_SELECTED_REMOVEMARKERS - MENUITEM SEPARATOR - MENUITEM "Deselect", ID_SELECTED_DESELECT - MENUITEM "Select between Markers\tCtrl+A", ID_SELECTED_SELECTMIDMARKERS - MENUITEM SEPARATOR - MENUITEM "Ungreenzone", ID_SELECTED_UNGREENZONE - MENUITEM SEPARATOR - MENUITEM "Clear\tDel", ID_CONTEXT_SELECTED_CLEARFRAMES - MENUITEM "Delete\tCtrl+Del", ID_CONTEXT_SELECTED_DELETEFRAMES - MENUITEM "Clone\tCtrl+Ins", ID_SELECTED_CLONE - MENUITEM "Insert\tCtrl+Shift+Ins", ID_CONTEXT_SELECTED_INSERTFRAMES - MENUITEM "Insert # of Frames\tIns", ID_CONTEXT_SELECTED_INSERTFRAMES2 - MENUITEM SEPARATOR - MENUITEM "Truncate movie", ID_CONTEXT_SELECTED_TRUNCATE - END -END - -FCEUCONTEXTMENUS MENU -BEGIN - POPUP "NoGame" - BEGIN - MENUITEM "Open ROM", FCEU_CONTEXT_OPENROM - MENUITEM "Last ROM used", FCEUX_CONTEXT_RECENTROM1 - MENUITEM SEPARATOR - MENUITEM "Help...", FCEU_CONTEXT_FCEUHELP - MENUITEM SEPARATOR - MENUITEM "Use Config > Gui to get zapper right click", FCEUX_CONTEXT_GUICONFIG - END - POPUP "Game+NoMovie" - BEGIN - MENUITEM "Play Movie...", FCEUX_CONTEXT_REPLAYMOVIE - MENUITEM "Record Movie...", FCEUX_CONTEXT_RECORDMOVIE - MENUITEM "Load Last Movie", FCEUX_CONTEXT_LOADLASTMOVIE - MENUITEM SEPARATOR - MENUITEM "Undo savestate", FCEUX_CONTEXT_UNDOSAVESTATE - MENUITEM "Undo loadstate", FCEUX_CONTEXT_UNDOLOADSTATE - MENUITEM "Rewind to last auto-save", FCEUX_CONTEXT_REWINDTOLASTAUTO - MENUITEM "Screenshot", FCEUX_CONTEXT_SCREENSHOT - MENUITEM SEPARATOR - MENUITEM "Close ROM", FCEU_CONTEXT_CLOSEROM - MENUITEM SEPARATOR - MENUITEM "Use Config > Gui to get zapper right click", FCEUX_CONTEXT_GUICONFIG - END - POPUP "Game+Movie+Playing+readonly" - BEGIN - MENUITEM "Toggle to read+write", FCEUX_CONTEXT_READONLYTOGGLE - MENUITEM "Play Movie from Beginning", FCEU_CONTEXT_PLAYMOVIEFROMBEGINNING - MENUITEM "Stop Movie Replay", FCEU_CONTEXT_STOPMOVIE - MENUITEM "View comments and subtitles", FCEUX_CONTEXT_VIEWCOMMENTSSUBTITLES - MENUITEM SEPARATOR - MENUITEM "Toggle to Recording", FCEUX_CONTEXT_TOGGLE_RECORDING - POPUP "Modify Movie" - BEGIN - MENUITEM "Insert 1 Frame", FCEUX_CONTEXT_INSERT_1_FRAME - MENUITEM "Delete 1 Frame", FCEUX_CONTEXT_DELETE_1_FRAME - MENUITEM SEPARATOR - MENUITEM "Truncate at Current Frame", FCEUX_CONTEXT_TRUNCATE_MOVIE - END - POPUP "Record Mode" - BEGIN - MENUITEM "&Truncate", FCEUX_CONTEXT_RECORDMODE_TRUNCATE - MENUITEM "&Overwrite[W]", FCEUX_CONTEXT_RECORDMODE_OVERWRITE - MENUITEM "&Insert[I]", FCEUX_CONTEXT_RECORDMODE_INSERT - END - MENUITEM SEPARATOR - MENUITEM "Undo savestate", FCEUX_CONTEXT_UNDOSAVESTATE - MENUITEM "Rewind to last auto-save", FCEUX_CONTEXT_REWINDTOLASTAUTO - MENUITEM SEPARATOR - MENUITEM "Help....", FCEU_CONTEXT_MOVIEHELP - MENUITEM SEPARATOR - MENUITEM "Use Config > Gui to get zapper right click", FCEUX_CONTEXT_GUICONFIG - END - POPUP "Game+Movie+Playing+readwrite" - BEGIN - MENUITEM "Toggle to Read-only", FCEUX_CONTEXT_READONLYTOGGLE - MENUITEM "Play Movie From Beginning", FCEU_CONTEXT_PLAYMOVIEFROMBEGINNING - MENUITEM "Stop Movie Replay", FCEU_CONTEXT_STOPMOVIE - MENUITEM "View comments and subtitles", FCEUX_CONTEXT_VIEWCOMMENTSSUBTITLES - MENUITEM "Make backup", FCEUX_CONTEXT_MAKEBACKUP - MENUITEM "Save Movie As...", FCEUX_CONTEXT_SAVEMOVIEAS - MENUITEM SEPARATOR - MENUITEM "Toggle to Recording", FCEUX_CONTEXT_TOGGLE_RECORDING - POPUP "Modify Movie" - BEGIN - MENUITEM "Insert 1 Frame", FCEUX_CONTEXT_INSERT_1_FRAME - MENUITEM "Delete 1 Frame", FCEUX_CONTEXT_DELETE_1_FRAME - MENUITEM SEPARATOR - MENUITEM "Truncate at Current Frame", FCEUX_CONTEXT_TRUNCATE_MOVIE - END - POPUP "Record Mode" - BEGIN - MENUITEM "&Truncate", FCEUX_CONTEXT_RECORDMODE_TRUNCATE - MENUITEM "&Overwrite[W]", FCEUX_CONTEXT_RECORDMODE_OVERWRITE - MENUITEM "&Insert[I]", FCEUX_CONTEXT_RECORDMODE_INSERT - END - MENUITEM SEPARATOR - MENUITEM "Undo savestate", FCEUX_CONTEXT_UNDOSAVESTATE - MENUITEM "Undo loadstate", FCEUX_CONTEXT_UNDOLOADSTATE - MENUITEM "Rewind to last auto-save", FCEUX_CONTEXT_REWINDTOLASTAUTO - MENUITEM SEPARATOR - MENUITEM "&Mode: Full state-movie loads", ID_CONTEXT_FULLSAVESTATES - MENUITEM SEPARATOR - MENUITEM "Help...", FCEU_CONTEXT_MOVIEHELP - MENUITEM SEPARATOR - MENUITEM "Use Config > Gui to get zapper right click", FCEUX_CONTEXT_GUICONFIG - END - POPUP "Game+Movie+Recording+readonly" - BEGIN - MENUITEM "Toggle to read+write", FCEUX_CONTEXT_READONLYTOGGLE - MENUITEM "Play Movie from Beginning", FCEU_CONTEXT_PLAYMOVIEFROMBEGINNING - MENUITEM "Stop Movie Recording", FCEU_CONTEXT_STOPMOVIE - MENUITEM "View comments and subtitles", FCEUX_CONTEXT_VIEWCOMMENTSSUBTITLES - MENUITEM SEPARATOR - MENUITEM "Toggle to Playing", FCEUX_CONTEXT_TOGGLE_RECORDING - POPUP "Modify Movie" - BEGIN - MENUITEM "Insert 1 Frame", FCEUX_CONTEXT_INSERT_1_FRAME - MENUITEM "Delete 1 Frame", FCEUX_CONTEXT_DELETE_1_FRAME - MENUITEM SEPARATOR - MENUITEM "Truncate at Current Frame", FCEUX_CONTEXT_TRUNCATE_MOVIE - END - POPUP "Record Mode" - BEGIN - MENUITEM "&Truncate", FCEUX_CONTEXT_RECORDMODE_TRUNCATE - MENUITEM "&Overwrite[W]", FCEUX_CONTEXT_RECORDMODE_OVERWRITE - MENUITEM "&Insert[I]", FCEUX_CONTEXT_RECORDMODE_INSERT - END - MENUITEM SEPARATOR - MENUITEM "Undo savestate", FCEUX_CONTEXT_UNDOSAVESTATE - MENUITEM "Rewind to last auto-save", FCEUX_CONTEXT_REWINDTOLASTAUTO - MENUITEM SEPARATOR - MENUITEM "Help....", FCEU_CONTEXT_MOVIEHELP - MENUITEM SEPARATOR - MENUITEM "Use Config > Gui to get zapper right click", FCEUX_CONTEXT_GUICONFIG - END - POPUP "Game+Movie+Recording+readwrite" - BEGIN - MENUITEM "Toggle to Read-only", FCEUX_CONTEXT_READONLYTOGGLE - MENUITEM "Play Movie From Beginning", FCEU_CONTEXT_PLAYMOVIEFROMBEGINNING - MENUITEM "Stop Movie Recording", FCEU_CONTEXT_STOPMOVIE - MENUITEM "View comments and subtitles", FCEUX_CONTEXT_VIEWCOMMENTSSUBTITLES - MENUITEM "Make backup", FCEUX_CONTEXT_MAKEBACKUP - MENUITEM "Save Movie As...", FCEUX_CONTEXT_SAVEMOVIEAS - MENUITEM SEPARATOR - MENUITEM "Toggle to Playing", FCEUX_CONTEXT_TOGGLE_RECORDING - POPUP "Modify Movie" - BEGIN - MENUITEM "Insert 1 Frame", FCEUX_CONTEXT_INSERT_1_FRAME - MENUITEM "Delete 1 Frame", FCEUX_CONTEXT_DELETE_1_FRAME - MENUITEM SEPARATOR - MENUITEM "Truncate at Current Frame", FCEUX_CONTEXT_TRUNCATE_MOVIE - END - POPUP "Record Mode" - BEGIN - MENUITEM "&Truncate", FCEUX_CONTEXT_RECORDMODE_TRUNCATE - MENUITEM "&Overwrite[W]", FCEUX_CONTEXT_RECORDMODE_OVERWRITE - MENUITEM "&Insert[I]", FCEUX_CONTEXT_RECORDMODE_INSERT - END - MENUITEM SEPARATOR - MENUITEM "Undo savestate", FCEUX_CONTEXT_UNDOSAVESTATE - MENUITEM "Undo loadstate", FCEUX_CONTEXT_UNDOLOADSTATE - MENUITEM "Rewind to last auto-save", FCEUX_CONTEXT_REWINDTOLASTAUTO - MENUITEM SEPARATOR - MENUITEM "&Mode: Full state-movie loads", ID_CONTEXT_FULLSAVESTATES - MENUITEM SEPARATOR - MENUITEM "Help...", FCEU_CONTEXT_MOVIEHELP - MENUITEM SEPARATOR - MENUITEM "Use Config > Gui to get zapper right click", FCEUX_CONTEXT_GUICONFIG - END -END - -RAMWATCH_MENU MENU -BEGIN - POPUP "File" - BEGIN - MENUITEM "&New list\tCtrl N", RAMMENU_FILE_NEW - MENUITEM "&Open...\tCtrl O", RAMMENU_FILE_OPEN - MENUITEM "&Save\tCtrl S", RAMMENU_FILE_SAVE - MENUITEM "Sa&ve As...\tCtrl Shift S", RAMMENU_FILE_SAVEAS - MENUITEM "&Append file...", RAMMENU_FILE_APPEND - MENUITEM "Recent", RAMMENU_FILE_RECENT - MENUITEM SEPARATOR - MENUITEM "Auto-&load", RAMMENU_FILE_AUTOLOAD - MENUITEM "Save Window Position", RAMMENU_FILE_SAVEWINDOW - MENUITEM SEPARATOR - MENUITEM "&Close\tAlt F4", IDCANCEL - END - POPUP "Watches" - BEGIN - MENUITEM "&New Watch\tN", IDC_C_WATCH - MENUITEM "&Edit Watch\tE", IDC_C_WATCH_EDIT - MENUITEM "&Remove Watch\tR", IDC_C_WATCH_REMOVE - MENUITEM "Duplicate Watch\tA", IDC_C_WATCH_DUPLICATE - MENUITEM "Add &Separator\tS", IDC_C_WATCH_SEPARATE - MENUITEM SEPARATOR - MENUITEM "Move Up\tU", IDC_C_WATCH_UP - MENUITEM "Move Down\tD", IDC_C_WATCH_DOWN - END -END - -CHEATCONTEXTMENUS MENU -BEGIN - POPUP "CheatListPopup" - BEGIN - MENUITEM "Toggle selected Cheats", CHEAT_CONTEXT_LIST_TOGGLECHEAT - MENUITEM "Poke Cheat Value", CHEAT_CONTEXT_LIST_POKECHEATVALUE - MENUITEM "Goto in Hex Editor", CHEAT_CONTEXT_LIST_GOTOINHEXEDITOR - MENUITEM "Delete selected Cheats", CHEAT_CONTEXT_LIST_DELETESELECTEDCHEATS - END - POPUP "CheatPossiPopup" - BEGIN - MENUITEM "Add to Memory Watch", CHEAT_CONTEXT_POSSI_ADDTOMEMORYWATCH - MENUITEM "Add cheat", CHEAT_CONTEXT_POSSI_ADDCHEAT - MENUITEM "Add to RAM Watch", CHEAT_CONTEXT_POSSI_ADDTORAMWATCH - MENUITEM "Go to in Hex Editor", CHEAT_CONTEXT_POSSI_GOTOINHEXEDITOR - END -END - -DEBUGCONTEXTMENUS MENU -BEGIN - POPUP "DebugListPopup" - BEGIN - MENUITEM "Toggle Breakpoint\tDbl-Clk", DEBUGGER_CONTEXT_TOGGLEBREAK - END -END - -LUAWINDOW_MENU MENU -BEGIN - POPUP "Console" - BEGIN - MENUITEM "&Font...", IDC_LUACONSOLE_CHOOSEFONT - MENUITEM "Clear", IDC_LUACONSOLE_CLEAR - END -END - -DISASMCONTEXTMENUS MENU -BEGIN - POPUP "DisasmPopup" - BEGIN - MENUITEM "Copy\tCtrl+C", DISASM_CONTEXT_COPY - MENUITEM "Select All\tCtrl+A", DISASM_CONTEXT_SELECTALL - END -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -DIRCONFIG DIALOGEX 63, 7, 305, 255 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Directories Configuration" -FONT 8, "Tahoma", 0, 0, 0x0 -BEGIN - DEFPUSHBUTTON "OK",CLOSE_BUTTON,175,230,56,14 - PUSHBUTTON "Cancel",BTN_CANCEL,239,230,56,14 - EDITTEXT 113,71,9,158,12,ES_AUTOHSCROLL - EDITTEXT EDIT_ROMS,71,27,158,12,ES_AUTOHSCROLL - EDITTEXT 101,71,45,158,12,ES_AUTOHSCROLL - EDITTEXT 102,71,63,158,12,ES_AUTOHSCROLL - EDITTEXT 103,71,81,158,12,ES_AUTOHSCROLL - EDITTEXT 104,71,99,158,12,ES_AUTOHSCROLL - EDITTEXT 105,71,117,158,12,ES_AUTOHSCROLL - EDITTEXT 106,71,135,158,12,ES_AUTOHSCROLL - EDITTEXT 107,71,153,158,12,ES_AUTOHSCROLL - EDITTEXT 110,71,171,158,12,ES_AUTOHSCROLL - EDITTEXT 111,71,189,158,12,ES_AUTOHSCROLL - EDITTEXT 112,71,207,158,12,ES_AUTOHSCROLL - PUSHBUTTON "Browse...",213,239,8,56,14 - PUSHBUTTON "Browse...",BUTTON_ROMS,239,26,56,14 - PUSHBUTTON "Browse...",201,239,44,56,14 - PUSHBUTTON "Browse...",202,239,62,56,14 - PUSHBUTTON "Browse...",203,239,80,56,14 - PUSHBUTTON "Browse...",204,239,98,56,14 - PUSHBUTTON "Browse...",205,239,116,56,14 - PUSHBUTTON "Browse...",206,239,134,56,14 - PUSHBUTTON "Browse...",207,239,152,56,14 - PUSHBUTTON "Browse...",210,239,170,56,14 - PUSHBUTTON "Browse...",211,239,188,56,14 - PUSHBUTTON "Browse...",212,239,206,56,14 - LTEXT "Base Directory",IDC_STATIC,10,10,47,8 - LTEXT "Roms",IDC_STATIC,10,28,19,8 - LTEXT "Battery Saves",IDC_STATIC,10,46,45,8 - LTEXT "Save States",IDC_STATIC,10,64,41,9 - LTEXT "FDS Bios Rom",IDC_STATIC,10,82,47,8 - LTEXT "Screenshots",IDC_STATIC,10,100,40,8 - LTEXT "Cheats",IDC_STATIC,10,118,23,8 - LTEXT "Movies",IDC_STATIC,10,136,24,8 - LTEXT "Memory Watch",IDC_STATIC,10,154,52,9 - LTEXT "Input Presets",IDC_STATIC,10,172,42,8 - LTEXT "Lua Scripts",IDC_STATIC,10,190,36,8 - LTEXT "Avi Output",IDC_STATIC,10,208,34,8 -END - -DWBDIALOG DIALOG 33, 99, 250, 56 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "DWB!" -FONT 8, "Tahoma" -BEGIN - LTEXT "Text",LBL_DWBDIALOG_TEXT,7,9,237,8 - PUSHBUTTON "Clear",BTN_CLEAR,64,32,50,14 - PUSHBUTTON "Close",BTN_CLOSE,188,33,50,14 -END - -FKBDIALOG DIALOG 13, 72, 402, 194 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Family Keyboard Configuration" -FONT 8, "Tahoma" -BEGIN - DEFPUSHBUTTON "Close",BTN_CLOSE,320,170,56,14 - LTEXT "Remember to push the ""Scroll Lock"" key during emulation to enable Family Keyboard input.",65503,18,6,370,12 - GROUPBOX "",65502,11,22,380,133,WS_GROUP - PUSHBUTTON "F1",300,22,43,32,12 - PUSHBUTTON "1",308,30,59,16,12 - PUSHBUTTON "F2",301,60,43,32,12 - PUSHBUTTON "F3",302,98,43,32,12 - PUSHBUTTON "F4",303,136,43,32,12 - PUSHBUTTON "F5",304,174,43,32,12 - PUSHBUTTON "F6",305,212,43,32,12 - PUSHBUTTON "F7",306,250,43,32,12 - PUSHBUTTON "F8",307,288,43,32,12 - PUSHBUTTON "2",309,49,59,16,12 - PUSHBUTTON "3",310,68,59,16,12 - PUSHBUTTON "4",311,87,59,16,12 - PUSHBUTTON "5",312,106,59,16,12 - PUSHBUTTON "6",313,125,59,16,12 - PUSHBUTTON "7",314,144,59,16,12 - PUSHBUTTON "8",315,163,59,16,12 - PUSHBUTTON "9",316,182,59,16,12 - PUSHBUTTON "0",317,201,59,16,12 - PUSHBUTTON "-",318,220,59,16,12 - PUSHBUTTON "^",319,239,59,16,12 - PUSHBUTTON "\\",320,258,59,16,12 - PUSHBUTTON "STP",321,277,59,16,12 - PUSHBUTTON "ESC",322,22,75,16,12 - PUSHBUTTON "Q",323,41,75,16,12 - PUSHBUTTON "W",324,60,75,16,12 - PUSHBUTTON "E",325,79,75,16,12 - PUSHBUTTON "R",326,98,75,16,12 - PUSHBUTTON "T",327,117,75,16,12 - PUSHBUTTON "Y",328,136,75,16,12 - PUSHBUTTON "U",329,155,75,16,12 - PUSHBUTTON "I",330,174,75,16,12 - PUSHBUTTON "O",331,193,75,16,12 - PUSHBUTTON "P",332,212,75,16,12 - PUSHBUTTON "@",333,231,75,16,12 - PUSHBUTTON "[",334,250,75,16,12 - PUSHBUTTON "RETURN",335,272,75,32,12 - PUSHBUTTON "CTR",336,26,91,16,12 - PUSHBUTTON "A",337,45,91,16,12 - PUSHBUTTON "S",338,64,91,16,12 - PUSHBUTTON "D",339,83,91,16,12 - PUSHBUTTON "F",340,102,91,16,12 - PUSHBUTTON "G",341,121,91,16,12 - PUSHBUTTON "H",342,140,91,16,12 - PUSHBUTTON "J",343,159,91,16,12 - PUSHBUTTON "K",344,178,91,16,12 - PUSHBUTTON "L",345,197,91,16,12 - PUSHBUTTON ";",346,216,91,16,12 - PUSHBUTTON ":",347,235,91,16,12 - PUSHBUTTON "]",348,254,91,16,12 - PUSHBUTTON "KANA",349,273,91,16,12 - PUSHBUTTON "Z",351,55,107,16,12 - PUSHBUTTON "X",352,74,107,16,12 - PUSHBUTTON "C",353,93,107,16,12 - PUSHBUTTON "V",354,112,107,16,12 - PUSHBUTTON "B",355,131,107,16,12 - PUSHBUTTON "N",356,150,107,16,12 - PUSHBUTTON "M",357,169,107,16,12 - PUSHBUTTON ",",358,188,107,16,12 - PUSHBUTTON ".",359,207,107,16,12 - PUSHBUTTON "/",360,226,107,16,12 - PUSHBUTTON "",361,245,107,16,12 - PUSHBUTTON "SHIFT",350,19,107,32,12 - PUSHBUTTON "SHIFT",362,265,107,32,12 - PUSHBUTTON "GRPH",363,74,123,16,12 - PUSHBUTTON "SPACE",364,93,123,149,12 - PUSHBUTTON "CLR",365,316,67,16,12 - PUSHBUTTON "INS",366,335,67,16,12 - PUSHBUTTON "DEL",367,354,67,16,12 - PUSHBUTTON "UP",368,327,83,32,12 - PUSHBUTTON "LEFT",369,310,99,32,12 - PUSHBUTTON "RIGHT",370,346,99,32,12 - PUSHBUTTON "DOWN",371,327,115,32,12 -END - -GAMEPADDIALOG DIALOGEX 4, 109, 243, 220 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Gamepad Configuration" -FONT 8, "Tahoma", 0, 0, 0x0 -BEGIN - DEFPUSHBUTTON "Close",BTN_CLOSE,173,196,56,14 - GROUPBOX "",GRP_GAMEPAD1,4,8,232,82,WS_GROUP - PUSHBUTTON "Up",304,35,27,24,12 - PUSHBUTTON "Left",306,9,45,25,12 - PUSHBUTTON "Right",307,60,45,24,12 - PUSHBUTTON "Down",305,35,64,24,12 - PUSHBUTTON "Select",302,91,45,26,12 - PUSHBUTTON "Start",303,126,45,26,12 - PUSHBUTTON "B",301,169,45,16,12 - PUSHBUTTON "A",300,195,45,16,12 - PUSHBUTTON "Turbo B",309,154,29,32,12 - PUSHBUTTON "Turbo A",308,195,29,32,12 - GROUPBOX "",GRP_GAMEPAD2,4,101,232,82,WS_GROUP - PUSHBUTTON "Up",316,35,120,24,12 - PUSHBUTTON "Left",318,9,138,25,12 - PUSHBUTTON "Right",319,60,138,24,12 - PUSHBUTTON "Down",317,35,157,24,12 - PUSHBUTTON "Select",314,91,138,26,12 - PUSHBUTTON "Start",315,126,138,26,12 - PUSHBUTTON "B",313,169,138,16,12 - PUSHBUTTON "A",312,195,138,16,12 - PUSHBUTTON "Turbo B",321,154,122,32,12 - PUSHBUTTON "Turbo A",320,195,122,32,12 -END - -GUICONFIG DIALOGEX 16, 123, 184, 158 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "GUI Configuration" -FONT 8, "Tahoma", 0, 0, 0x0 -BEGIN - DEFPUSHBUTTON "Close",BUTTON_CLOSE,65,136,56,14 - CONTROL "Load ""File Open"" dialog when FCEUX starts.",CB_LOAD_FILE_OPEN, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,8,168,12 - CONTROL "Automatically hide menu on game load.",CB_AUTO_HIDE_MENU, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,23,168,12 - CONTROL "Ask confirmation on exit attempt.",CB_ASK_EXIT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,38,168,12 - CONTROL "Disable screen saver while game is loaded.",CB_DISABLE_SCREEN_SAVER, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,53,168,12 - CONTROL "Enable right-click context menu",CB_ENABLECONTEXTMENU, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,68,168,12 - CONTROL "Switch fullscreen by double-click",CB_FS_BY_DOUBLECLICK, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,84,168,12 - CONTROL "Partially disable Visual Themes (Requires restart)",CB_PARTIALVISUALTHEME, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,100,168,12 - CONTROL "Single Instance Mode",IDC_SINGLEINSTANCE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,117,167,10 -END - -INPUTCONFIG DIALOGEX 122, 105, 349, 199 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Input Configuration" -FONT 8, "Tahoma", 0, 0, 0x0 -BEGIN - GROUPBOX "Port 1:",102,20,31,152,50 - COMBOBOX COMBO_PAD1,27,57,71,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - DEFPUSHBUTTON "Configure",BTN_PORT1,109,43,56,14 - GROUPBOX "Port 2:",103,176,31,152,50 - COMBOBOX COMBO_PAD2,183,57,71,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - DEFPUSHBUTTON "Configure",BTN_PORT2,265,41,56,14 - GROUPBOX "NES-style Input Ports",108,10,8,328,83 - GROUPBOX "Famicom Expansion Port:",109,176,93,162,50 - COMBOBOX COMBO_FAM,183,122,84,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - DEFPUSHBUTTON "Configure",BTN_FAM,275,105,56,14 - CONTROL "",65487,"Static",SS_BLACKFRAME,27,41,71,12 - CONTROL "",65486,"Static",SS_BLACKFRAME,183,41,71,12 - CONTROL "",65485,"Static",SS_BLACKFRAME,183,106,84,12 - CTEXT "",TXT_PAD1,30,42,65,10 - CTEXT "",TXT_PAD2,186,42,65,10 - CTEXT "",TXT_FAM,186,107,78,10 - PUSHBUTTON "Set",BTN_AUTO_HOLD,19,157,45,13 - LTEXT "not assigned",LBL_AUTO_HOLD,71,159,87,8 - PUSHBUTTON "Clear",BTN_CLEAR_AH,19,172,45,13 - LTEXT "not assigned",LBL_CLEAR_AH,71,174,87,8 - DEFPUSHBUTTON "Close",BTN_CLOSE,282,177,56,14 - GROUPBOX "Input Presets",113,10,93,162,50 - CONTROL "Allow Left+Right / Up+Down",BTN_ALLOW_LRUD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,183,157,107,10 - PUSHBUTTON "Set",BTN_PRESET_SET1,34,103,37,11 - PUSHBUTTON "Set",BTN_PRESET_SET2,34,115,37,11 - PUSHBUTTON "Set",BTN_PRESET_SET3,34,127,37,11 - PUSHBUTTON "Import",BTN_PRESET_IMPORT1,84,103,37,11 - PUSHBUTTON "Import",BTN_PRESET_IMPORT2,84,115,37,11 - PUSHBUTTON "Import",BTN_PRESET_IMPORT3,84,127,37,11 - PUSHBUTTON "Export",BTN_PRESET_EXPORT1,123,103,37,11 - PUSHBUTTON "Export",BTN_PRESET_EXPORT2,123,115,37,11 - PUSHBUTTON "Export",BTN_PRESET_EXPORT3,123,127,37,11 - GROUPBOX "Auto-Hold",118,10,146,162,44 - GROUPBOX "Emulation",119,176,146,162,25 - CTEXT "1",IDC_STATIC,18,105,8,8 - CTEXT "2",IDC_STATIC,18,116,8,8 - CTEXT "3",IDC_STATIC,18,128,8,8 - CONTROL "Attach four-score (implies four gamepads)",CHECK_ENABLE_FOURSCORE, - "Button",BS_AUTOCHECKBOX,18,18,142,12 - CONTROL "Replace Port 2 Start With Microphone",CHECK_ENABLE_MICROPHONE, - "Button",BS_AUTOCHECKBOX,174,18,142,12 -END - -MAHJONGDIALOG DIALOG 65510, 106, 340, 110 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "mahjong" -FONT 8, "Tahoma" -BEGIN - DEFPUSHBUTTON "Close",BTN_CLOSE,277,91,56,14 - GROUPBOX "",321,8,8,324,73,WS_GROUP - PUSHBUTTON "A",300,14,42,16,12 - PUSHBUTTON "B",301,36,42,16,12 - PUSHBUTTON "C",302,58,42,16,12 - PUSHBUTTON "D",303,80,42,16,12 - PUSHBUTTON "E",304,102,42,16,12 - PUSHBUTTON "F",305,124,42,16,12 - PUSHBUTTON "G",306,146,42,16,12 - PUSHBUTTON "H",307,168,42,16,12 - PUSHBUTTON "I",308,190,42,16,12 - PUSHBUTTON "J",309,212,42,16,12 - PUSHBUTTON "K",310,234,42,16,12 - PUSHBUTTON "L",311,256,42,16,12 - PUSHBUTTON "M",312,278,42,16,12 - PUSHBUTTON " ",313,302,40,20,15 - PUSHBUTTON "SEL",314,124,58,16,12 - PUSHBUTTON "ST",315,146,58,16,12 - PUSHBUTTON " ",316,168,58,16,12 - PUSHBUTTON " ",317,190,58,16,12 - PUSHBUTTON " ",318,212,58,16,12 - PUSHBUTTON " ",319,234,58,16,12 - PUSHBUTTON " ",320,256,58,16,12 -END - -MAPINPUT DIALOGEX 0, 0, 318, 294 -STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Hotkeys" -FONT 8, "Tahoma", 0, 0, 0x0 -BEGIN - DEFPUSHBUTTON "OK",IDOK,261,274,50,14 - PUSHBUTTON "Cancel",BTN_CANCEL,205,274,50,14 - CONTROL "List2",LV_MAPPING,"SysListView32",LVS_REPORT | WS_BORDER | WS_TABSTOP,7,7,304,243 - PUSHBUTTON "Restore Defaults",BTN_RESTORE_DEFAULTS,7,274,75,14 - COMBOBOX COMBO_FILTER,32,255,279,193,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - RTEXT "Filter:",65484,6,255,21,12,SS_CENTERIMAGE | NOT WS_GROUP -END - -MESSAGELOG DIALOGEX 33, 38, 197, 229 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Message Log" -FONT 9, "MS Shell Dlg", 0, 0, 0x0 -BEGIN - EDITTEXT LBL_LOG_TEXT,1,1,194,208,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL - PUSHBUTTON "Clear",CLEAR_LOG,94,211,47,14 - PUSHBUTTON "Close",CLOSE_LOG,146,211,47,14 -END - -NETMOO DIALOGEX 44, 59, 365, 209 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Network Play" -FONT 8, "Tahoma", 0, 0, 0x0 -BEGIN - EDITTEXT IDC_NETMOO_CMD_INPUT,10,137,347,12,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_OEMCONVERT | ES_WANTRETURN - EDITTEXT IDC_NETMOO_STATUS,10,8,347,130,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL - RTEXT "Remote Host:",65481,13,167,44,8 - EDITTEXT IDC_NETMOO_HOST,60,165,90,12 - EDITTEXT IDC_NETMOO_PORT,151,165,27,12 - GROUPBOX "Settings",100,10,154,347,47,WS_GROUP - DEFPUSHBUTTON "Connect",BTN_NETMOO_CONNECT,296,163,56,14 - EDITTEXT IDC_NETMOO_NICK,282,182,70,12,ES_AUTOHSCROLL - RTEXT "Local Players:",65480,187,167,46,8 - RTEXT "Nickname:",65479,238,184,40,8 - COMBOBOX COMBO_NETMOO_LOCAL_PLAYERS,238,165,28,51,CBS_DROPDOWNLIST | WS_TABSTOP - RTEXT "Game Key:",65478,127,184,39,8 - EDITTEXT IDC_NETMOO_KEY,169,182,67,12 - RTEXT "Password:",65477,19,184,37,8 - EDITTEXT IDC_NETMOO_PASS,60,182,67,12,ES_PASSWORD -END - -NEWINPUT DIALOGEX 0, 0, 186, 66 -STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Enter New Input" -FONT 8, "Tahoma", 0, 0, 0x0 -BEGIN - CTEXT "Press a key",LBL_KEY_COMBO,31,14,122,20 - PUSHBUTTON "Clear",BTN_CLEAR,95,45,50,14 - PUSHBUTTON "OK",BTN_OK,40,45,50,14 -END - -PALCONFIG DIALOGEX 16, 81, 228, 217 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Palette Configuration" -FONT 8, "Tahoma", 0, 0, 0x0 -BEGIN - DEFPUSHBUTTON "Close",BUTTON_CLOSE,162,195,56,14 - GROUPBOX "NES Palette",302,10,8,102,81,WS_GROUP - DEFPUSHBUTTON "&Load Palette...",BTN_PALETTE_LOAD,18,39,58,14 - CONTROL "Enabled",CHECK_PALETTE_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,22,87,12 - CONTROL "Tint",CTL_TINT_TRACKBAR,"msctls_trackbar32",WS_DISABLED | WS_TABSTOP,121,44,91,11 - GROUPBOX "NTSC Color Emulation",101,115,8,103,81,WS_GROUP - CONTROL "Hue",CTL_HUE_TRACKBAR,"msctls_trackbar32",WS_DISABLED | WS_TABSTOP,121,69,91,11 - CTEXT "Hue",64395,124,59,85,8,WS_DISABLED - CTEXT "Tint",65463,123,34,85,8,WS_DISABLED - CONTROL "Force Grayscale",CHECK_PALETTE_GRAYSCALE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,57,85,12 - CONTROL "Use Custom Palette",CHECK_PALETTE_CUSTOM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,22,85,12 - GROUPBOX "PAL Emulation",IDC_STATIC,10,89,208,66,WS_DISABLED - CONTROL "",CTL_PALSAT_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,78,110,70,15 - LTEXT "Saturation:",STATIC_SATVALUE,83,100,58,8,WS_DISABLED - PUSHBUTTON "Reset",BTN_PALETTE_RESET,161,132,50,14,WS_DISABLED - CONTROL "",CTL_PALNOTCH_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,11,110,68,15 - LTEXT "Notch:",STATIC_NOTCHVALUE,16,100,46,8,WS_DISABLED - CONTROL "",CTL_PALSHARP_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,156,109,61,15 - LTEXT "Sharpness:",STATIC_SHARPVALUE,161,99,50,8,WS_DISABLED - LTEXT "NTSC Color Emulation overrides Internal default Palette.\nIndividual Game Palette overrides Internal+NTSC Palettes.\nCustom Palette overrides all of the above.\nPAL Emulation overrides other choices when PAL filter is selected",IDC_STATIC,10,159,208,33 - CONTROL "",CTL_PALCONTRAST_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,11,134,67,15 - LTEXT "Contrast: ",STATIC_CONTRASTVALUE,16,126,55,8,WS_DISABLED - CONTROL "",CTL_PALBRIGHT_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,78,133,70,15 - LTEXT "Brightness: ",STATIC_BRIGHTVALUE,83,125,61,8,WS_DISABLED - CONTROL "De-emphasis bit swap",CHECK_DEEMPH_SWAP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,73,83,10 -END - -POWERPADDIALOG DIALOG 30, 123, 131, 119 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Power Pad Configuration" -FONT 8, "Tahoma" -BEGIN - DEFPUSHBUTTON "Close",BTN_CLOSE,34,95,56,14 - GROUPBOX "",312,8,10,114,74,WS_GROUP - PUSHBUTTON "1",300,21,23,16,12 - PUSHBUTTON "2",301,43,23,16,12 - PUSHBUTTON "3",302,70,23,16,12 - PUSHBUTTON "4",303,91,23,16,12 - PUSHBUTTON "5",304,21,41,16,12 - PUSHBUTTON "6",305,43,41,16,12 - PUSHBUTTON "7",306,70,41,16,12 - PUSHBUTTON "8",307,91,41,16,12 - PUSHBUTTON "9",308,21,59,16,12 - PUSHBUTTON "10",309,43,59,16,12 - PUSHBUTTON "11",310,70,59,16,12 - PUSHBUTTON "12",311,91,59,16,12 -END - -QUIZKINGDIALOG DIALOG 30, 123, 160, 74 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "quiz king" -FONT 8, "Tahoma" -BEGIN - DEFPUSHBUTTON "Close",BTN_CLOSE,54,56,56,14 - GROUPBOX "Buzzers",312,8,7,144,39,WS_GROUP - PUSHBUTTON "1",300,16,23,16,12 - PUSHBUTTON "2",301,38,23,16,12 - PUSHBUTTON "3",302,60,23,16,12 - PUSHBUTTON "4",303,82,23,16,12 - PUSHBUTTON "5",304,104,23,16,12 - PUSHBUTTON "6",305,126,23,16,12 -END - -SOUNDCONFIG DIALOGEX 8, 95, 334, 282 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Sound Configuration" -FONT 8, "Tahoma", 0, 0, 0x0 -BEGIN - DEFPUSHBUTTON "Close",BTN_CLOSE,280,260,44,14 - GROUPBOX "Output/Output Format:",302,10,9,131,93,WS_GROUP - CONTROL "Sound enabled.",CHECK_SOUND_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,22,117,12 - GROUPBOX "Buffering:",127,150,9,131,93,WS_GROUP - CONTROL "Use Global Focus",CHECK_SOUND_GLOBAL_FOCUS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,157,22,100,12 - CTEXT "Sound Latency",65459,162,50,107,8 - CONTROL "",CTL_LATENCY_TRACKBAR,"msctls_trackbar32",WS_TABSTOP,162,70,107,13 - GROUPBOX "Master",125,19,142,44,93,WS_GROUP - CONTROL "",CTL_VOLUME_TRACKBAR,"msctls_trackbar32",TBS_AUTOTICKS | TBS_VERT | TBS_BOTH | WS_TABSTOP,27,150,28,83 - LTEXT "15 ms",65458,160,87,20,8 - LTEXT "200 ms",65457,250,87,25,8 - LTEXT "ms",65456,211,60,19,8 - LTEXT "Quality:",65455,17,43,27,10 - COMBOBOX COMBO_SOUND_QUALITY,50,40,67,46,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - LTEXT "Rate:",65461,17,64,22,10 - COMBOBOX COMBO_SOUND_RATE,50,61,53,46,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - LTEXT "Hz",65460,108,64,15,9 - LTEXT "Depth:",65462,17,85,27,10 - COMBOBOX COMBO_SOUND_8BIT,50,82,67,45,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - CONTROL "Mute frame advance",CHECK_SOUND_MUTEFA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,110,87,11 - CONTROL "Mute Turbo",CHECK_SOUND_MUTETURBO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,138,111,53,10 - GROUPBOX "Triangle",131,70,142,44,93,WS_GROUP - CONTROL "",CTL_VOLUME_TRACKBAR_TRIANGLE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_VERT | TBS_BOTH | WS_TABSTOP,78,150,28,83 - GROUPBOX "Square1",132,121,142,44,93,WS_GROUP - CONTROL "",CTL_VOLUME_TRACKBAR_SQUARE1,"msctls_trackbar32",TBS_AUTOTICKS | TBS_VERT | TBS_BOTH | WS_TABSTOP,129,150,28,83 - GROUPBOX "Square2",133,170,142,44,93,WS_GROUP - CONTROL "",CTL_VOLUME_TRACKBAR_SQUARE2,"msctls_trackbar32",TBS_AUTOTICKS | TBS_VERT | TBS_BOTH | WS_TABSTOP,178,150,28,83 - GROUPBOX "Noise",134,221,142,44,93,WS_GROUP - CONTROL "",CTL_VOLUME_TRACKBAR_NOISE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_VERT | TBS_BOTH | WS_TABSTOP,229,150,28,83 - GROUPBOX "PCM",135,271,142,44,93,WS_GROUP - CONTROL "",CTL_VOLUME_TRACKBAR_PCM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_VERT | TBS_BOTH | WS_TABSTOP,279,150,28,83 - GROUPBOX "Volume Control",IDC_VOLUMEGROUP,10,127,314,127 - PUSHBUTTON "Restore defaults",IDC_SOUND_RESTOREDEFAULTVOL,19,238,56,11 - LTEXT "",ID_SOUND_TRITOP,76,135,38,8 - LTEXT "",ID_SOUND_QUALITYNOTIFY,170,133,144,8 - CONTROL "Swap Duty Cycles",CHECK_SOUND_SWAPDUTY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,239,110,74,10 -END - -SUBORKBDIALOG DIALOGEX 13, 72, 478, 171 -STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Subor Keyboard Configuration" -FONT 8, "Tahoma", 0, 0, 0x0 -BEGIN - DEFPUSHBUTTON "Close",1,405,151,56,14 - LTEXT "Remember to push the ""Scroll Lock"" key during emulation to enable Keyboard input.",-1,18,6,370,12 - GROUPBOX "",-1,9,22,461,123,WS_GROUP - PUSHBUTTON "Esc",300,20,36,16,12 - PUSHBUTTON "F1",301,58,37,16,12 - PUSHBUTTON "F2",302,78,37,16,12 - PUSHBUTTON "F3",303,98,37,16,12 - PUSHBUTTON "F4",304,118,37,16,12 - PUSHBUTTON "F5",305,143,37,16,12 - PUSHBUTTON "F6",306,163,37,16,12 - PUSHBUTTON "F7",307,183,37,16,12 - PUSHBUTTON "F8",308,203,37,16,12 - PUSHBUTTON "F9",309,229,37,16,12 - PUSHBUTTON "F10",310,249,37,16,12 - PUSHBUTTON "F11",311,268,37,16,12 - PUSHBUTTON "F12",312,288,37,16,12 - PUSHBUTTON "Pause",313,318,36,16,12 - PUSHBUTTON "`",314,20,60,16,12 - PUSHBUTTON "1",315,39,60,16,12 - PUSHBUTTON "2",316,58,60,16,12 - PUSHBUTTON "3",317,77,60,16,12 - PUSHBUTTON "4",318,96,60,16,12 - PUSHBUTTON "5",319,115,60,16,12 - PUSHBUTTON "6",320,134,60,16,12 - PUSHBUTTON "7",321,153,60,16,12 - PUSHBUTTON "8",322,172,60,16,12 - PUSHBUTTON "9",323,191,60,16,12 - PUSHBUTTON "0",324,210,60,16,12 - PUSHBUTTON "-",325,229,60,16,12 - PUSHBUTTON "=",326,248,60,16,12 - PUSHBUTTON "BS",327,286,60,16,12 - PUSHBUTTON "Ins",328,318,59,16,12 - PUSHBUTTON "Home",329,337,59,16,12 - PUSHBUTTON "NL",330,385,59,16,12 - PUSHBUTTON "/",331,405,59,16,12 - PUSHBUTTON "*",332,425,59,16,12 - PUSHBUTTON "-",333,444,59,16,12 - PUSHBUTTON "PUp",334,357,59,16,12 - PUSHBUTTON "TAB",335,20,76,24,12 - PUSHBUTTON "Q",336,47,76,16,12 - PUSHBUTTON "W",337,66,76,16,12 - PUSHBUTTON "E",338,85,76,16,12 - PUSHBUTTON "R",339,104,76,16,12 - PUSHBUTTON "T",340,123,76,16,12 - PUSHBUTTON "Y",341,142,76,16,12 - PUSHBUTTON "U",342,161,76,16,12 - PUSHBUTTON "I",343,180,76,16,12 - PUSHBUTTON "O",344,199,76,16,12 - PUSHBUTTON "P",345,218,76,16,12 - PUSHBUTTON "[",346,237,76,16,12 - PUSHBUTTON "]",347,256,76,16,12 - PUSHBUTTON "Enter",348,274,76,28,29 - PUSHBUTTON "Del",349,318,75,16,12 - PUSHBUTTON "End",350,338,75,16,12 - PUSHBUTTON "PDn",351,357,75,16,12 - PUSHBUTTON "7",352,385,75,16,12 - PUSHBUTTON "8",353,405,75,16,12 - PUSHBUTTON "9",354,425,75,16,12 - PUSHBUTTON "+",355,444,75,16,28 - PUSHBUTTON "CL",356,20,92,27,12 - PUSHBUTTON "A",357,52,92,16,12 - PUSHBUTTON "S",358,71,92,16,12 - PUSHBUTTON "D",359,90,92,16,12 - PUSHBUTTON "F",360,109,92,16,12 - PUSHBUTTON "G",361,128,92,16,12 - PUSHBUTTON "H",362,147,92,16,12 - PUSHBUTTON "J",363,166,92,16,12 - PUSHBUTTON "K",364,185,92,16,12 - PUSHBUTTON "L",365,204,92,16,12 - PUSHBUTTON ";",366,223,92,16,12 - PUSHBUTTON "'",367,242,92,16,12 - PUSHBUTTON "4",368,385,91,16,12 - PUSHBUTTON "5",369,405,91,16,12 - PUSHBUTTON "6",370,425,91,16,12 - PUSHBUTTON "SHIFT",371,20,108,37,12 - PUSHBUTTON "Z",372,62,108,16,12 - PUSHBUTTON "X",373,81,108,16,12 - PUSHBUTTON "C",374,100,108,16,12 - PUSHBUTTON "V",375,119,108,16,12 - PUSHBUTTON "B",376,138,108,16,12 - PUSHBUTTON "N",377,157,108,16,12 - PUSHBUTTON "M",378,176,108,16,12 - PUSHBUTTON ",",379,195,108,16,12 - PUSHBUTTON ".",380,214,108,16,12 - PUSHBUTTON "/",381,233,108,16,12 - PUSHBUTTON "\\",382,267,60,16,12 - PUSHBUTTON "Up",383,337,108,16,12 - PUSHBUTTON "1",384,385,107,16,12 - PUSHBUTTON "2",385,405,107,16,12 - PUSHBUTTON "3",386,425,107,16,12 - PUSHBUTTON "CTRL",387,20,123,28,12 - PUSHBUTTON "ALT",388,66,123,27,12 - PUSHBUTTON "SPACE",389,96,123,130,12 - PUSHBUTTON "Left",390,318,123,16,12 - PUSHBUTTON "Dn",391,337,123,16,12 - PUSHBUTTON "Right",392,357,123,16,12 - PUSHBUTTON "0",393,386,123,35,12 - PUSHBUTTON ".",394,425,123,16,12 - PUSHBUTTON "SHIFT",395,254,108,48,12 - PUSHBUTTON "ALT",396,229,123,29,12 - PUSHBUTTON "CTRL",397,274,123,28,12 - PUSHBUTTON "Break",398,337,36,16,12 - PUSHBUTTON "Reset",399,357,36,16,12 - PUSHBUTTON "Enter",400,444,107,16,28 -END - -TIMINGCONFIG DIALOGEX 23, 157, 203, 110 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Timing Configuration" -FONT 8, "Tahoma", 0, 0, 0x0 -BEGIN - DEFPUSHBUTTON "Close",1,137,87,56,14 - CONTROL "Disable speed throttling used when sound is disabled.",CB_DISABLE_SPEED_THROTTLING, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,8,183,12 - CONTROL "Set high-priority thread.",CB_SET_HIGH_PRIORITY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,24,102,12 - CONTROL "Overclocking (old PPU only).",CB_OVERCLOCKING,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,41,101,10 - EDITTEXT IDC_EXTRA_SCANLINES,104,55,84,14,ES_AUTOHSCROLL | WS_DISABLED - LTEXT "Post-render scanlines:",IDC_EXTRA_SCANLINES_TEXT,21,57,74,8,WS_DISABLED - CONTROL "Don't overclock 7-bit samples.",CB_SKIP_7BIT,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,10,87,111,10 - EDITTEXT IDC_VBLANK_SCANLINES,104,68,84,14,ES_AUTOHSCROLL | WS_DISABLED - LTEXT "VBlank scanlines:",IDC_VBLANK_SCANLINES_TEXT,21,71,76,8,WS_DISABLED -END - -MOVIEOPTIONS DIALOGEX 65520, 76, 147, 222 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Movie Options" -FONT 8, "Tahoma", 0, 0, 0x0 -BEGIN - DEFPUSHBUTTON "Close",IDC_MOVIE_CLOSE,48,200,49,14,BS_CENTER - CONTROL "Pause after playback",IDC_MOVIE_PAUSEAFTERPLAYBACK, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,26,110,10 - CONTROL "Bind savestates to movies",IDC_MOVIE_BINDSAVESTATES, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,64,111,10 - CONTROL "Display movie subtitles",IDC_MOVIE_DISPLAYSUBTITLES, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,83,102,10 - CONTROL "Put movie subtitles in AVI",IDC_MOVIE_SUBTITLESINAVI, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,33,101,102,10 - CONTROL "Automatically backup movies",IDC_MOVIE_AUTOBACKUP, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,122,114,10 - CONTROL "Load full savestate-movies:",IDC_FULLSAVESTATES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,141,110,10 - LTEXT "Loading states in record mode",IDC_STATIC,25,153,106,8 - LTEXT "will not immediately truncate",IDC_STATIC,25,163,107,8 - LTEXT "movie, next frame input will.",IDC_STATIC,25,173,108,8 - CONTROL "Close after playback",IDC_MOVIE_CLOSEAFTERPLAYBACK, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,45,89,10 - CONTROL "Always suggest Read-Only replay",IDC_MOVIE_SUGGEST_READONLY, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,8,125,10 - LTEXT "(VBA-rr and SNES9x style)",IDC_STATIC,25,184,93,8 -END - -DWBDIALOGSIMPLE DIALOGEX 33, 99, 250, 39 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "DWBS!" -FONT 8, "Tahoma", 0, 0, 0x0 -BEGIN - LTEXT "Type a key, or press Escape to disable.",65429,53,14,125,8 -END - -MEMWATCH DIALOGEX 0, 0, 261, 270 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -EXSTYLE WS_EX_ACCEPTFILES -CAPTION "Memory Watch" -MENU MEMWATCHMENU -FONT 8, "Tahoma", 0, 0, 0x0 -BEGIN - GROUPBOX "",IDC_STATIC,3,0,126,200 - GROUPBOX "",IDC_STATIC,131,0,128,200 - EDITTEXT MW_ADDR00,6,17,30,14 - EDITTEXT 1000,41,17,55,14,ES_AUTOHSCROLL - EDITTEXT MW_ADDR01,6,32,30,14 - EDITTEXT 1003,41,32,55,14,ES_AUTOHSCROLL - EDITTEXT MW_ADDR02,6,47,30,14 - EDITTEXT 1006,41,47,55,14,ES_AUTOHSCROLL - EDITTEXT MW_ADDR03,6,62,30,14 - EDITTEXT 1009,41,62,55,14,ES_AUTOHSCROLL - EDITTEXT MW_ADDR04,6,77,30,14 - EDITTEXT 1012,41,77,55,14,ES_AUTOHSCROLL - EDITTEXT MW_ADDR05,6,92,30,14 - EDITTEXT 1015,41,92,55,14,ES_AUTOHSCROLL - EDITTEXT MW_ADDR06,6,107,30,14 - EDITTEXT 1018,41,107,55,14,ES_AUTOHSCROLL - EDITTEXT MW_ADDR07,6,122,30,14 - EDITTEXT 1021,41,122,55,14,ES_AUTOHSCROLL - EDITTEXT MW_ADDR08,6,137,30,14 - EDITTEXT 1024,41,137,55,14,ES_AUTOHSCROLL - EDITTEXT MW_ADDR09,6,152,30,14 - EDITTEXT 1027,41,152,55,14,ES_AUTOHSCROLL - EDITTEXT MW_ADDR10,6,167,30,14 - EDITTEXT 1030,41,167,55,14,ES_AUTOHSCROLL - EDITTEXT MW_ADDR11,6,182,30,14 - EDITTEXT 1033,41,182,55,14,ES_AUTOHSCROLL - EDITTEXT MW_ADDR12,135,17,30,14 - EDITTEXT 1036,171,17,55,14,ES_AUTOHSCROLL - EDITTEXT MW_ADDR13,135,32,30,14 - EDITTEXT 1039,171,32,55,14,ES_AUTOHSCROLL - EDITTEXT MW_ADDR14,135,47,30,14 - EDITTEXT 1042,171,47,55,14,ES_AUTOHSCROLL - EDITTEXT MW_ADDR15,135,62,30,14 - EDITTEXT 1045,171,62,55,14,ES_AUTOHSCROLL - EDITTEXT MW_ADDR16,135,77,30,14 - EDITTEXT 1048,171,77,55,14,ES_AUTOHSCROLL - EDITTEXT MW_ADDR17,135,92,30,14 - EDITTEXT 1051,171,92,55,14,ES_AUTOHSCROLL - EDITTEXT MW_ADDR18,135,107,30,14 - EDITTEXT 1054,171,107,55,14,ES_AUTOHSCROLL - EDITTEXT MW_ADDR19,135,122,30,14 - EDITTEXT 1057,171,122,55,14,ES_AUTOHSCROLL - EDITTEXT MW_ADDR20,135,137,30,14 - EDITTEXT 1060,171,137,55,14,ES_AUTOHSCROLL - EDITTEXT MW_ADDR21,135,152,30,14 - EDITTEXT 1063,171,152,55,14,ES_AUTOHSCROLL - EDITTEXT MW_ADDR22,135,167,30,14 - EDITTEXT 1066,171,167,55,14,ES_AUTOHSCROLL - EDITTEXT MW_ADDR23,135,182,30,14 - EDITTEXT 1069,171,182,55,14,ES_AUTOHSCROLL - LTEXT "Name",65428,41,7,20,8 - LTEXT "Address",65427,6,7,26,8 - LTEXT "Value",MW_VALUELABEL1,101,7,19,8 - LTEXT "Name",65425,171,7,20,8 - LTEXT "Address",65424,135,7,26,8 - LTEXT "Value",MW_VALUELABEL2,231,7,19,8 - LTEXT " ",EDIT00_RESULTS,89,225,26,8 - GROUPBOX "Memory Change Monitoring",IDC_STATIC,0,202,129,57,BS_CENTER - LTEXT "Address",IDC_STATIC,6,213,26,8 - LTEXT "Count",IDC_STATIC,90,213,20,8 - LTEXT "Formula",IDC_STATIC,47,213,26,8 - LTEXT " ",MEMW_EDIT00RMADDRESS,7,225,24,8 - PUSHBUTTON " ",MEMW_EDIT00RESET,115,225,11,7 - LTEXT "reset",IDC_STATIC,112,213,16,8 - COMBOBOX MEMW_EDIT00FORMULA,37,223,48,30,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP - LTEXT " ",MEMW_EDIT01RMADDRESS,7,241,24,8 - COMBOBOX MEMW_EDIT01FORMULA,37,241,48,30,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP - LTEXT " ",EDIT01_RESULTS,89,241,25,8 - PUSHBUTTON " ",MEMW_EDIT01RESET,115,241,11,7 - LTEXT " ",EDIT02_RESULTS,217,225,26,8 - LTEXT "Address",IDC_STATIC,133,213,26,8 - LTEXT "Formula",IDC_STATIC,173,213,26,8 - LTEXT " ",MEMW_EDIT02RMADDRESS,135,225,24,8 - PUSHBUTTON " ",MEMW_EDIT02RESET,242,225,11,7 - LTEXT "reset",IDC_STATIC,239,213,16,8 - COMBOBOX MEMW_EDIT02FORMULA,165,223,48,30,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP - LTEXT " ",MEMW_EDIT03RMADDRESS,135,241,24,8 - COMBOBOX MEMW_EDIT03FORMULA,165,241,48,30,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP - LTEXT " ",EDIT03_RESULTS,217,241,28,8 - PUSHBUTTON " ",MEMW_EDIT03RESET,242,241,11,7 - GROUPBOX "Memory Change Monitoring",IDC_STATIC,131,202,129,57,BS_CENTER - LTEXT "Count",IDC_STATIC,217,213,20,8 - PUSHBUTTON "<",MEMW_EXPANDCOLLAPSE,1,259,11,10 -END - -DEBUGGER DIALOGEX 54, 74, 546, 334 -STYLE DS_SETFONT | DS_3DLOOK | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME -CAPTION "6502 Debugger" -FONT 8, "Tahoma", 0, 0, 0x0 -BEGIN - CONTROL "",IDC_DEBUGGER_DISASSEMBLY,"RichEdit20A",ES_MULTILINE | ES_NOHIDESEL | ES_READONLY | WS_BORDER | WS_HSCROLL,18,5,316,317 - SCROLLBAR IDC_DEBUGGER_DISASSEMBLY_VSCR,334,5,11,317,SBS_VERT - GROUPBOX "Status Flags",401,434,140,106,35,WS_TABSTOP - CONTROL "N",IDC_DEBUGGER_FLAG_N,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,440,149,18,12 - CONTROL "V",IDC_DEBUGGER_FLAG_V,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,466,149,18,12 - CONTROL "U",IDC_DEBUGGER_FLAG_U,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,491,149,18,12 - CONTROL "B",IDC_DEBUGGER_FLAG_B,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,516,149,18,12 - CONTROL "D",IDC_DEBUGGER_FLAG_D,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,440,161,18,12 - CONTROL "I",IDC_DEBUGGER_FLAG_I,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,466,161,18,12 - CONTROL "Z",IDC_DEBUGGER_FLAG_Z,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,491,161,18,12 - CONTROL "C",IDC_DEBUGGER_FLAG_C,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,516,161,18,12 - GROUPBOX "Breakpoints",IDC_DEBUGGER_BREAKPOINTS,434,2,106,138,WS_TABSTOP - LISTBOX IDC_DEBUGGER_BP_LIST,438,11,98,96,LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL - PUSHBUTTON "Add",IDC_DEBUGGER_BP_ADD,438,109,31,15 - PUSHBUTTON "Delete",IDC_DEBUGGER_BP_DEL,472,109,31,15,WS_DISABLED - PUSHBUTTON "Edit",IDC_DEBUGGER_BP_EDIT,505,109,31,15,WS_DISABLED - PUSHBUTTON "Run",IDC_DEBUGGER_RUN,351,5,38,14 - PUSHBUTTON "Step Into",IDC_DEBUGGER_STEP_IN,392,5,39,14 - PUSHBUTTON "Step Out",IDC_DEBUGGER_STEP_OUT,351,21,38,14 - PUSHBUTTON "Step Over",IDC_DEBUGGER_STEP_OVER,392,21,39,14 - LTEXT "A:",IDC_STATIC,351,92,9,8 - LTEXT "X:",65534,378,92,9,8 - LTEXT "Y:",65533,406,92,9,8 - LTEXT "PC:",65532,349,74,13,8 - EDITTEXT IDC_DEBUGGER_VAL_A,359,90,15,12,ES_UPPERCASE | ES_WANTRETURN - EDITTEXT IDC_DEBUGGER_VAL_X,387,90,15,12,ES_UPPERCASE | ES_WANTRETURN - EDITTEXT IDC_DEBUGGER_VAL_Y,415,90,15,12,ES_UPPERCASE | ES_WANTRETURN - EDITTEXT IDC_DEBUGGER_VAL_PC,361,72,27,12,ES_UPPERCASE | ES_WANTRETURN - GROUPBOX "Stack",IDC_DEBUGGER_VAL_S,349,104,81,71,WS_TABSTOP - EDITTEXT IDC_DEBUGGER_STACK_CONTENTS,353,113,73,58,ES_MULTILINE | ES_UPPERCASE | ES_NOHIDESEL | ES_READONLY | WS_VSCROLL - PUSHBUTTON "Seek PC",IDC_DEBUGGER_SEEK_PC,392,71,39,14 - PUSHBUTTON "Seek To:",IDC_DEBUGGER_SEEK_TO,351,54,38,14 - EDITTEXT IDC_DEBUGGER_VAL_PCSEEK,392,55,38,12,ES_UPPERCASE | ES_WANTRETURN - LTEXT "PPU:",65531,353,179,17,10 - LTEXT "Sprite:",65530,353,191,20,10 - LTEXT "Scanline:",IDC_STATIC,353,203,31,8 - LTEXT "Pixel:",IDC_STATIC,353,216,17,8 - EDITTEXT IDC_DEBUGGER_VAL_PPU,372,179,25,12,ES_UPPERCASE | ES_READONLY | ES_WANTRETURN | NOT WS_BORDER,WS_EX_TRANSPARENT - EDITTEXT IDC_DEBUGGER_VAL_SPR,375,191,15,12,ES_UPPERCASE | ES_READONLY | ES_WANTRETURN | NOT WS_BORDER,WS_EX_TRANSPARENT - EDITTEXT IDC_DEBUGGER_VAL_SLINE,384,203,14,12,ES_UPPERCASE | ES_READONLY | ES_WANTRETURN | NOT WS_BORDER,WS_EX_TRANSPARENT - EDITTEXT IDC_DEBUGGER_VAL_PPUPIXEL,373,216,14,12,ES_UPPERCASE | ES_READONLY | ES_WANTRETURN | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_TRANSPARENT - GROUPBOX "",IDC_DEBUGGER_VAL_S2,349,174,51,53,WS_TABSTOP - EDITTEXT IDC_DEBUGGER_VAL_CYCLES_COUNT,443,179,47,12,ES_NOHIDESEL | ES_READONLY | ES_WANTRETURN | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_TRANSPARENT - EDITTEXT IDC_DEBUGGER_VAL_CYCLES_COUNT2,492,179,54,12,ES_READONLY | ES_WANTRETURN | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_TRANSPARENT - EDITTEXT IDC_DEBUGGER_VAL_INSTRUCTIONS_COUNT,442,204,47,12,ES_NOHIDESEL | ES_READONLY | ES_WANTRETURN | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_TRANSPARENT - EDITTEXT IDC_DEBUGGER_VAL_INSTRUCTIONS_COUNT2,491,204,55,12,ES_READONLY | ES_WANTRETURN | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_TRANSPARENT - CONTROL "",IDC_DEBUGGER_ADDR_LINE,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,4,323,341,11 - CONTROL "Break on Bad Opcodes",IDC_DEBUGGER_BREAK_ON_BAD_OP, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,440,126,94,10 - CONTROL "Symbolic debug",IDC_DEBUGGER_ENABLE_SYMBOLIC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,261,62,10 - PUSHBUTTON "Reload Symbols",IDC_DEBUGGER_RELOAD_SYMS,472,283,64,14 - GROUPBOX "Address Bookmarks",45535,349,228,115,88 - LISTBOX LIST_DEBUGGER_BOOKMARKS,353,238,76,73,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP - EDITTEXT IDC_DEBUGGER_BOOKMARK,432,238,28,14,ES_AUTOHSCROLL - PUSHBUTTON "Add",IDC_DEBUGGER_BOOKMARK_ADD,431,256,30,14 - PUSHBUTTON "Delete",IDC_DEBUGGER_BOOKMARK_DEL,431,272,30,14 - PUSHBUTTON "Rom Patcher",IDC_DEBUGGER_ROM_PATCHER,472,299,64,14 - PUSHBUTTON "Default window size",IDC_DEBUGGER_RESTORESIZE,348,318,68,14 - PUSHBUTTON "Run Line",IDC_DEBUGGER_RUN_LINE,351,37,38,14 - PUSHBUTTON "128 Lines",IDC_DEBUGGER_RUN_FRAME2,392,37,39,14 - CONTROL ".DEB files",DEBUGLOADDEB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,463,319,42,13 - CONTROL "Auto-open",DEBUGAUTOLOAD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,417,319,45,13 - LTEXT "CPU cycles:",IDC_STATIC,403,179,39,8 - PUSHBUTTON "Reset counters",IDC_DEBUGGER_RESET_COUNTERS,470,229,68,14 - CONTROL "Break when exceed",IDC_DEBUGGER_BREAK_ON_CYCLES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,405,191,78,10 - EDITTEXT IDC_DEBUGGER_CYCLES_EXCEED,484,190,55,12,ES_UPPERCASE | ES_NOHIDESEL | ES_WANTRETURN | ES_NUMBER - LTEXT "Instructions:",IDC_STATIC,403,204,39,8 - CONTROL "Break when exceed",IDC_DEBUGGER_BREAK_ON_INSTRUCTIONS, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,405,216,78,10 - EDITTEXT IDC_DEBUGGER_INSTRUCTIONS_EXCEED,484,215,55,12,ES_UPPERCASE | ES_NOHIDESEL | ES_WANTRETURN | ES_NUMBER - GROUPBOX "",IDC_STATIC,468,241,72,75 - CONTROL "ROM offsets",IDC_DEBUGGER_ROM_OFFSETS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,249,62,10 - PUSHBUTTON "Name",IDC_DEBUGGER_BOOKMARK_NAME,431,288,30,14 - EDITTEXT IDC_DEBUGGER_DISASSEMBLY_LEFT_PANEL,4,5,14,317,ES_MULTILINE | ES_AUTOHSCROLL | ES_READONLY | WS_DISABLED - CONTROL "Register names",IDC_DEBUGGER_PREDEFINED_REGS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,272,65,10 - CONTROL "IDA font",DEBUGIDAFONT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,506,319,38,13 -END - -TRACER DIALOGEX 0, 0, 317, 181 -STYLE DS_SETFONT | DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME -CAPTION "Trace Logger" -FONT 8, "Tahoma", 400, 0, 0x0 -BEGIN - EDITTEXT IDC_TRACER_LOG,3,3,300,44,ES_MULTILINE | ES_NOHIDESEL | ES_READONLY | WS_HSCROLL - SCROLLBAR IDC_SCRL_TRACER_LOG,303,3,11,44,SBS_VERT - CONTROL "Log last",IDC_RADIO_LOG_LAST,"Button",BS_AUTORADIOBUTTON | BS_LEFT,9,53,38,10 - COMBOBOX IDC_TRACER_LOG_SIZE,49,52,46,13,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - LTEXT "lines",IDC_TEXT_LINES_TO_THIS_WINDOW,97,54,20,10 - DEFPUSHBUTTON "Start Logging",IDC_BTN_START_STOP_LOGGING,126,51,65,15,BS_CENTER | BS_VCENTER - CONTROL "Log to File",IDC_RADIO_LOG_TO_FILE,"Button",BS_AUTORADIOBUTTON | BS_LEFT,9,70,46,10 - PUSHBUTTON "Browse...",IDC_BTN_LOG_BROWSE,56,68,39,14,BS_CENTER | BS_VCENTER - CONTROL "Automatically update this window while logging",IDC_CHECK_LOG_UPDATE_WINDOW, - "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,113,70,156,10 - GROUPBOX "Log Options",IDC_GROUP_LOG_OPTIONS,3,85,311,65 - CONTROL "Log state of registers",IDC_CHECK_LOG_REGISTERS,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,8,96,99,10 - CONTROL "Log Processor status flags",IDC_CHECK_LOG_PROCESSOR_STATUS, - "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,113,96,96,10 - CONTROL "To the left from disassembly",IDC_CHECK_LOG_STATUSES_TO_THE_LEFT, - "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,211,96,100,10 - CONTROL "Log Frames count",IDC_CHECK_LOG_FRAMES_COUNT,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,8,109,98,10 - CONTROL "Log Cycles count",IDC_CHECK_LOG_CYCLES_COUNT,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,113,109,94,10 - CONTROL "Log Instructions count",IDC_CHECK_LOG_INSTRUCTIONS_COUNT, - "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,211,109,100,10 - CONTROL "Log emulator messages",IDC_CHECK_LOG_MESSAGES,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,8,122,97,10 - CONTROL "Log breakpoint hits",IDC_CHECK_LOG_BREAKPOINTS,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,113,122,91,10 - CONTROL "Symbolic trace",IDC_CHECK_SYMBOLIC_TRACING,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,8,135,96,10 - CONTROL "Use Stack Pointer for code tabbing (nesting visualization)",IDC_CHECK_CODE_TABBING, - "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,113,135,196,10 - GROUPBOX "Extra Log Options that work with the Code/Data Logger",IDC_EXTRA_LOG_OPTIONS,3,151,311,26 - CONTROL "Only log newly mapped code",IDC_CHECK_LOG_NEW_INSTRUCTIONS, - "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,8,162,102,10 - CONTROL "Only log code that accesses newly mapped data",IDC_CHECK_LOG_NEW_DATA, - "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,112,162,171,10 - CONTROL "Log Bank number",IDC_CHECK_LOG_BANK_NUMBER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,211,121,100,10 -END - -ADDBP DIALOGEX 66, 83, 196, 130 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Add Breakpoint..." -FONT 8, "Tahoma", 0, 0, 0x0 -BEGIN - LTEXT "Address:",-1,14,5,30,10 - CTEXT "-",65534,78,5,8,8 - EDITTEXT IDC_ADDBP_ADDR_START,48,4,30,12,ES_UPPERCASE | ES_WANTRETURN - EDITTEXT IDC_ADDBP_ADDR_END,83,4,30,12,ES_UPPERCASE | ES_WANTRETURN - CONTROL "Read",IDC_ADDBP_MODE_R,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,25,35,12 - CONTROL "Write",IDC_ADDBP_MODE_W,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,49,25,35,12 - CONTROL "Execute",IDC_ADDBP_MODE_X,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,86,25,40,12 - DEFPUSHBUTTON "&OK",IDOK,99,113,42,13 - PUSHBUTTON "&Cancel",IDCANCEL,147,114,42,13 - GROUPBOX "Memory",108,9,39,174,24,WS_TABSTOP - CONTROL "CPU Mem",IDC_ADDBP_MEM_CPU,"Button",BS_AUTORADIOBUTTON | WS_GROUP,13,49,50,10 - CONTROL "PPU Mem",IDC_ADDBP_MEM_PPU,"Button",BS_AUTORADIOBUTTON,68,49,50,10 - CONTROL "Sprite Mem",IDC_ADDBP_MEM_SPR,"Button",BS_AUTORADIOBUTTON,124,49,50,10 - EDITTEXT IDC_ADDBP_CONDITION,43,72,136,14,ES_AUTOHSCROLL - LTEXT "Condition",65533,7,74,30,8 - LTEXT "Name",65532,8,92,20,8 - EDITTEXT IDC_ADDBP_NAME,43,89,136,14,ES_AUTOHSCROLL - CONTROL "Forbid",IDC_ADDBP_MODE_F,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,145,6,40,12 - GROUPBOX "",112,3,18,185,50,WS_TABSTOP -END - -NTVIEW DIALOGEX 44, 38, 352, 350 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Name Table Viewer" -FONT 8, "Tahoma", 0, 0, 0x0 -BEGIN - GROUPBOX "Name Tables",IDC_NTVIEW_TABLE_BOX,2,0,347,251,WS_TABSTOP - LTEXT "Refresh: More",IDC_STATIC,225,254,50,9 - CONTROL "",IDC_NTVIEW_REFRESH_TRACKBAR,"msctls_trackbar32",WS_TABSTOP,275,254,50,11 - LTEXT "Less",IDC_STATIC,325,254,18,10 - LTEXT "Display on scanline:",IDC_NTVIEW_SCANLINE_TEXT,253,269,65,9 - EDITTEXT IDC_NTVIEW_SCANLINE,315,267,27,12 - CONTROL "Show Scroll Lines",IDC_NTVIEW_SHOW_SCROLL_LINES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,254,69,10 - CONTROL "Show Attributes",IDC_NTVIEW_SHOW_ATTRIBUTES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,265,69,10 - CONTROL "Ignore Palettes",IDC_NTVIEW_HIDE_PALETTES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,276,69,10 - GROUPBOX "Current Mirroring",IDC_STATIC,2,289,170,59 - CONTROL "Horizontal",IDC_NTVIEW_MIRROR_HORIZONTAL,"Button",BS_AUTORADIOBUTTON,6,300,47,10 - CONTROL "Vertical",IDC_NTVIEW_MIRROR_VERTICAL,"Button",BS_AUTORADIOBUTTON,6,311,39,10 - CONTROL "Four Screen",IDC_NTVIEW_MIRROR_FOUR_SCREEN,"Button",BS_AUTORADIOBUTTON,6,322,55,10 - CONTROL "Single Screen 0",IDC_NTVIEW_MIRROR_SS_TABLE_0,"Button",BS_AUTORADIOBUTTON,85,300,75,10 - CONTROL "Single Screen 1",IDC_NTVIEW_MIRROR_SS_TABLE_1,"Button",BS_AUTORADIOBUTTON,85,311,75,10 - CONTROL "Single Screen 2",IDC_NTVIEW_MIRROR_SS_TABLE_2,"Button",BS_AUTORADIOBUTTON,85,322,75,10 - CONTROL "Single Screen 3",IDC_NTVIEW_MIRROR_SS_TABLE_3,"Button",BS_AUTORADIOBUTTON,85,333,75,10 - GROUPBOX "Properties",IDC_STATIC,174,289,175,59 - LTEXT "Tile ID:",IDC_NTVIEW_PROPERTIES_LINE_1,184,300,150,10 - LTEXT "X / Y:",IDC_NTVIEW_PROPERTIES_LINE_2,184,311,150,10 - LTEXT "PPU Address:",IDC_NTVIEW_PROPERTIES_LINE_3,184,322,150,10 - LTEXT "Attribute:",IDC_NTVIEW_PROPERTIES_LINE_4,184,333,150,10 -END - -ROMPATCHER DIALOGEX 84, 67, 304, 135 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Rom Data Editor" -FONT 8, "Tahoma", 0, 0, 0x0 -BEGIN - EDITTEXT IDC_ROMPATCHER_CURRENT_DATA,7,47,282,12,ES_READONLY - PUSHBUTTON "Apply",IDC_ROMPATCHER_BTN_APPLY,185,92,54,14 - PUSHBUTTON "Save Rom File...",IDC_ROMPATCHER_BTN_SAVE,4,114,65,14,WS_DISABLED - EDITTEXT IDC_ROMPATCHER_PATCH_DATA,7,93,172,13,ES_AUTOHSCROLL - GROUPBOX "Current Data At Offset",IDC_ROMPATCHER_CURRENT_DATA_BOX,3,36,292,43 - GROUPBOX "Offset",IDC_ROMPATCHER_OFFSET_BOX,4,4,291,27 - EDITTEXT IDC_ROMPATCHER_OFFSET,83,12,47,14,ES_AUTOHSCROLL - CONTROL ".Nes File Address",IDC_ROMPATCHER_DOTNES_OFFSET,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,14,71,10 - PUSHBUTTON "Edit This Offset",IDC_ROMPATCHER_BTN_EDIT,135,12,65,14 - LTEXT "Disassembled: ",106,7,63,45,12 - EDITTEXT IDC_ROMPATCHER_DISASSEMBLY,56,62,234,14,ES_AUTOHSCROLL | ES_READONLY - GROUPBOX "Patch Data",108,3,81,292,30 -END - -GGCONV DIALOGEX 84, 67, 186, 146 -STYLE DS_SYSMODAL | DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Game Genie Encoder/Decoder Tool" -FONT 8, "Tahoma", 0, 0, 0x0 -BEGIN - EDITTEXT IDC_GAME_GENIE_CODE,115,22,53,14,ES_UPPERCASE | ES_AUTOHSCROLL - GROUPBOX "Game Genie Code",-1,107,5,69,42 - GROUPBOX "Address/Compare/Value",65534,9,5,91,75 - LTEXT "Address:",65533,18,24,35,8 - EDITTEXT IDC_GAME_GENIE_ADDR,50,21,36,14,ES_AUTOHSCROLL - EDITTEXT IDC_GAME_GENIE_COMP,64,38,22,14,ES_AUTOHSCROLL - EDITTEXT IDC_GAME_GENIE_VAL,64,56,22,14,ES_AUTOHSCROLL - LTEXT "Compare:",65532,17,41,37,8 - LTEXT "Value:",65531,18,58,32,8 - GROUPBOX "Possible Affected Rom File Addresses",65530,8,83,169,58 - LISTBOX IDC_LIST_GGADDRESSES,67,95,54,40,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Add To Cheat List",IDC_BTN_ADD_TO_CHEATS,108,58,68,14,WS_DISABLED -END - -MONITOR DIALOGEX 0, 0, 316, 343 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "RAM Filter" -FONT 8, "MS Shell Dlg", 400, 0, 0x1 -BEGIN - GROUPBOX "Rules",-1,7,7,295,182 - GROUPBOX "Results",-1,10,193,292,135 - LTEXT "1st rule",-1,16,20,40,8 - LTEXT "2nd rule",-1,16,36,40,8 - LTEXT "3rd rule",-1,16,55,40,8 - LTEXT "4th rule",-1,16,71,40,8 - LTEXT "5th rule",-1,16,89,40,8 - COMBOBOX 3000,66,17,135,85,CBS_DROPDOWNLIST | WS_TABSTOP - COMBOBOX 3001,66,34,135,90,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - COMBOBOX 3002,66,50,135,97,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - COMBOBOX 3003,66,68,135,101,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - COMBOBOX 3004,66,84,135,122,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - EDITTEXT 3010,208,18,26,12,ES_AUTOHSCROLL - EDITTEXT 3011,208,34,26,13,ES_AUTOHSCROLL - EDITTEXT 3012,208,50,26,12,ES_AUTOHSCROLL - EDITTEXT 3013,208,68,26,13,ES_AUTOHSCROLL - EDITTEXT 3014,208,84,26,12,ES_AUTOHSCROLL - PUSHBUTTON "Apply rule",3021,240,34,50,13 - PUSHBUTTON "Apply rule",3022,240,50,50,14 - PUSHBUTTON "Apply rule",3023,240,68,50,14 - PUSHBUTTON "Apply rule",3024,240,84,50,14 - LISTBOX 3100,18,206,272,102,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Apply rule",3020,240,17,50,14 - LTEXT "6th rule",-1,16,105,40,8 - COMBOBOX 3005,66,102,135,122,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - EDITTEXT 3015,208,102,26,12,ES_AUTOHSCROLL - PUSHBUTTON "Apply rule",3025,240,102,50,14 - LTEXT "7th rule",-1,16,121,40,8 - COMBOBOX 3006,66,119,135,122,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - EDITTEXT 3016,208,119,26,12,ES_AUTOHSCROLL - PUSHBUTTON "Apply rule",3026,240,119,50,14 - LTEXT "9th rule",-1,16,156,40,8 - COMBOBOX 3008,66,153,135,122,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - EDITTEXT 3018,208,153,26,12,ES_AUTOHSCROLL - PUSHBUTTON "Apply rule",3028,240,153,50,14 - LTEXT "8th rule",-1,16,140,40,8 - COMBOBOX 3007,66,135,135,122,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - EDITTEXT 3017,208,135,26,12,ES_AUTOHSCROLL - PUSHBUTTON "Apply rule",3027,240,135,50,14 - LTEXT "10th rule",-1,16,172,40,8 - COMBOBOX 3009,66,169,135,85,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - EDITTEXT 3019,208,170,26,12,ES_AUTOHSCROLL - PUSHBUTTON "Apply rule",3029,240,169,50,14 - LTEXT "Number of results:",-1,19,313,60,8 - LTEXT "",3101,90,313,60,8 -END - -MEMVIEWFIND DIALOGEX 0, 0, 282, 81 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Find" -FONT 8, "MS Shell Dlg", 400, 0, 0x1 -BEGIN - EDITTEXT IDC_MEMVIEWFIND_WHAT,47,7,171,14,ES_AUTOHSCROLL - LTEXT "Find What:",-1,7,9,38,8 - GROUPBOX "Type",-1,83,29,187,45 - CONTROL "Hex",IDC_MEMVIEWFIND_TYPE_HEX,"Button",BS_AUTORADIOBUTTON | WS_GROUP,93,43,29,10 - CONTROL "Text (Uses Currently Loaded Table as Reference)",IDC_MEMVIEWFIND_TYPE_TEXT, - "Button",BS_AUTORADIOBUTTON,93,56,172,10 - GROUPBOX "Direction",-1,9,29,65,44 - CONTROL "Up",IDC_MEMVIEWFIND_DIR_UP,"Button",BS_AUTORADIOBUTTON | WS_GROUP,18,43,25,10 - CONTROL "Down",IDC_MEMVIEWFIND_DIR_DOWN,"Button",BS_AUTORADIOBUTTON,18,56,35,10 - DEFPUSHBUTTON "Find Next",IDC_MEMVIEWFIND_NEXT,225,7,50,14 -END - -IDD_RECORDINP DIALOGEX 0, 0, 276, 86 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Record input" -FONT 8, "MS Shell Dlg", 0, 0, 0x0 -BEGIN - DEFPUSHBUTTON "OK",1,167,66,50,14 - GROUPBOX "",65501,3,0,269,60 - RTEXT "File:",65500,28,11,24,10,SS_CENTERIMAGE | NOT WS_GROUP,WS_EX_RIGHT - PUSHBUTTON "Cancel",2,221,66,50,14 - EDITTEXT IDC_EDIT_FILENAME,55,10,189,12,ES_AUTOHSCROLL - PUSHBUTTON "...",IDC_BUTTON_BROWSEFILE,249,10,18,14 - COMBOBOX IDC_COMBO_RECORDFROM,55,25,189,154,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - RTEXT "Record From:",65498,9,27,43,8,0,WS_EX_RIGHT - EDITTEXT IDC_EDIT_AUTHOR,55,41,189,14,ES_AUTOHSCROLL - RTEXT "Author:",65502,18,43,34,10,SS_CENTERIMAGE | NOT WS_GROUP,WS_EX_RIGHT -END - -IDD_REPLAYINP DIALOGEX 0, 0, 300, 202 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Play Movie" -FONT 8, "MS Shell Dlg", 0, 0, 0x0 -BEGIN - DEFPUSHBUTTON "OK",1,189,183,50,14 - GROUPBOX "",65497,3,0,293,179 - RTEXT "File:",65498,8,11,24,10,SS_CENTERIMAGE | NOT WS_GROUP - COMBOBOX IDC_COMBO_FILENAME,35,10,257,128,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Cancel",2,243,183,50,14 - RTEXT "Length:",64397,10,67,59,8 - RTEXT "Frames:",65496,10,78,59,8 - RTEXT "Record Count:",65495,10,89,59,8 - RTEXT "ROM Used:",65493,10,111,59,8 - RTEXT "ROM Checksum:",65492,10,122,59,8 - RTEXT "Recorded From:",65491,10,100,59,8 - RTEXT "Emulator Used:",65490,10,144,59,8 - RTEXT "Current ROM Sum:",65489,8,133,61,8 - CONTROL "Pause movie at frame",IDC_CHECK_STOPMOVIE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,49,83,10 - EDITTEXT IDC_EDIT_STOPFRAME,103,47,39,12,ES_AUTOHSCROLL | ES_NUMBER - GROUPBOX "Parameters",IDC_STATIC,13,25,278,40 - PUSHBUTTON "Metadata...",IDC_BUTTON_METADATA,239,71,50,14 - EDITTEXT IDC_LABEL_EMULATORUSED,76,144,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP - EDITTEXT IDC_LABEL_CURRCHECKSUM,76,133,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP - EDITTEXT IDC_LABEL_ROMCHECKSUM,76,122,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP - EDITTEXT IDC_LABEL_ROMUSED,76,111,187,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP - EDITTEXT IDC_LABEL_RECORDEDFROM,76,100,123,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP - CONTROL "Open &Read-Only",IDC_CHECK_READONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,36,69,10 - EDITTEXT IDC_LABEL_UNDOCOUNT,76,89,59,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP - EDITTEXT IDC_LABEL_FRAMES,76,78,59,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP - EDITTEXT IDC_LABEL_LENGTH,76,67,59,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP - RTEXT "Pal:",65494,10,155,59,8 - EDITTEXT IDC_LABEL_PALUSED,76,155,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP - RTEXT "New PPU:",65499,10,166,59,8 - EDITTEXT IDC_LABEL_NEWPPUUSED,76,166,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP -END - -TASEDITOR DIALOGEX 0, 0, 326, 348 -STYLE DS_SETFONT | DS_SETFOREGROUND | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME -CAPTION "TAS Editor" -MENU TASEDITORMENU -FONT 8, "MS Shell Dlg", 400, 0, 0x1 -BEGIN - CONTROL "",IDC_PROGRESS_BUTTON,"Button",BS_OWNERDRAW,200,36,116,12 - CONTROL "",IDC_BRANCHES_BUTTON,"Button",BS_OWNERDRAW,207,167,104,10 - CONTROL "",IDC_LIST1,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_OWNERDATA | LVS_NOSORTHEADER | WS_BORDER,5,13,187,316 - GROUPBOX " Playback ",IDC_PLAYBACK_BOX,197,0,123,62,BS_CENTER,WS_EX_RIGHT - GROUPBOX " Recorder ",IDC_RECORDER_BOX,197,63,123,46,BS_CENTER,WS_EX_RIGHT - GROUPBOX " Splicer ",IDC_SPLICER_BOX,197,110,123,30,BS_CENTER,WS_EX_RIGHT - GROUPBOX " Lua ",IDC_LUA_BOX,197,141,123,26,BS_CENTER,WS_EX_RIGHT - GROUPBOX " Bookmarks ",IDC_BOOKMARKS_BOX,197,168,123,102,BS_CENTER,WS_EX_RIGHT - GROUPBOX " History ",IDC_HISTORY_BOX,197,271,123,53,BS_CENTER,WS_EX_RIGHT - PUSHBUTTON "<<",TASEDITOR_REWIND_FULL,201,9,23,14,NOT WS_TABSTOP - PUSHBUTTON "<",TASEDITOR_REWIND,224,9,23,14,NOT WS_TABSTOP - PUSHBUTTON "||",TASEDITOR_PLAYSTOP,247,9,23,14,NOT WS_TABSTOP - PUSHBUTTON ">",TASEDITOR_FORWARD,270,9,23,14,NOT WS_TABSTOP - PUSHBUTTON ">>",TASEDITOR_FORWARD_FULL,293,9,23,14,NOT WS_TABSTOP - CONTROL "",IDC_PROGRESS1,"msctls_progress32",PBS_SMOOTH | WS_BORDER,201,39,115,6 - CONTROL " Follow cursor",CHECK_FOLLOW_CURSOR,"Button",BS_AUTOCHECKBOX,203,25,56,12 - CONTROL " Auto-restore last position",CHECK_AUTORESTORE_PLAYBACK, - "Button",BS_AUTOCHECKBOX,203,48,109,12 - CONTROL "",IDC_BOOKMARKSLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_ALIGNLEFT | LVS_OWNERDATA | LVS_NOSCROLL | LVS_NOCOLUMNHEADER | LVS_NOSORTHEADER | NOT WS_VISIBLE | WS_BORDER,202,177,113,89 - CONTROL "",IDC_HISTORYLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOLABELWRAP | LVS_ALIGNLEFT | LVS_OWNERDATA | LVS_NOCOLUMNHEADER | LVS_NOSORTHEADER | WS_BORDER,202,280,113,40 - CONTROL " All",IDC_RADIO_ALL,"Button",BS_AUTORADIOBUTTON,291,71,24,10 - CONTROL " 1P",IDC_RADIO_1P,"Button",BS_AUTORADIOBUTTON,203,83,25,10 - CONTROL " 2P",IDC_RADIO_2P,"Button",BS_AUTORADIOBUTTON,232,83,25,10 - CONTROL " 3P",IDC_RADIO_3P,"Button",BS_AUTORADIOBUTTON,262,83,24,10 - CONTROL " 4P",IDC_RADIO_4P,"Button",BS_AUTORADIOBUTTON,291,83,24,10 - CONTROL " Superimpose",IDC_SUPERIMPOSE,"Button",BS_AUTO3STATE,203,96,55,10 - PUSHBUTTON "<<",TASEDITOR_PREV_MARKER,202,328,23,14,NOT WS_TABSTOP - PUSHBUTTON "Similar",TASEDITOR_FIND_BEST_SIMILAR_MARKER,225,328,34,14,NOT WS_TABSTOP - PUSHBUTTON "More",TASEDITOR_FIND_NEXT_SIMILAR_MARKER,259,328,34,14,NOT WS_TABSTOP - PUSHBUTTON ">>",TASEDITOR_NEXT_MARKER,292,328,23,14,NOT WS_TABSTOP - EDITTEXT IDC_PLAYBACK_MARKER_EDIT,65,0,127,13,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP - RTEXT "Marker 0",IDC_PLAYBACK_MARKER,3,2,60,10,SS_NOTIFY,WS_EX_RIGHT - EDITTEXT IDC_SELECTION_MARKER_EDIT,65,329,127,13,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP - RTEXT "Marker 99999",IDC_SELECTION_MARKER,3,331,60,10,SS_NOTIFY,WS_EX_RIGHT - CONTROL "",IDC_BRANCHES_BITMAP,"Static",SS_OWNERDRAW | SS_NOTIFY | SS_REALSIZEIMAGE | NOT WS_VISIBLE,202,177,113,89 - CONTROL " Turbo seek",CHECK_TURBO_SEEK,"Button",BS_AUTOCHECKBOX,263,25,50,12 - LTEXT "Selection: 0 rows, 16 columns",IDC_TEXT_SELECTION,204,118,112,10,SS_NOTIFY - LTEXT "Clipboard: 0 rows, 16 columns",IDC_TEXT_CLIPBOARD,203,128,114,10,SS_NOTIFY - CONTROL " Recording",IDC_RECORDING,"Button",BS_AUTO3STATE,203,71,81,10 - PUSHBUTTON "Run function",TASEDITOR_RUN_MANUAL,202,150,54,14,WS_DISABLED | NOT WS_TABSTOP - CONTROL "Auto function",IDC_RUN_AUTO,"Button",BS_AUTOCHECKBOX,261,152,55,10 - CONTROL " Use pattern",IDC_USEPATTERN,"Button",BS_AUTOCHECKBOX,262,96,53,10 -END - -IDD_TASEDITOR_ABOUT DIALOGEX 0, 0, 238, 78 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "About" -FONT 8, "MS Shell Dlg", 400, 0, 0x1 -BEGIN - DEFPUSHBUTTON "OK",IDCANCEL,94,55,50,14 - ICON IDI_ICON4,IDC_STATIC,11,11,20,20 - LTEXT "TAS Editor",IDC_TASEDITOR_NAME,43,8,84,13 - LTEXT "Version 1.01",IDC_STATIC,60,25,45,8 - LTEXT "Created by AnS",IDC_STATIC,138,12,58,8 - LTEXT "Originated from TASEdit",IDC_STATIC,138,25,85,9,SS_NOPREFIX - LTEXT "made by zeromus & adelikat",IDC_STATIC,138,35,96,9,SS_NOPREFIX -END - -IDD_TASEDITOR_NEWPROJECT DIALOGEX 0, 0, 171, 100 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Create New Project" -FONT 8, "MS Shell Dlg", 400, 0, 0x1 -BEGIN - DEFPUSHBUTTON "OK",IDOK,7,80,50,14 - PUSHBUTTON "Cancel",IDCANCEL,114,80,50,14 - CONTROL " Copy current Input",IDC_COPY_INPUT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,80,14,75,10 - CONTROL " 1 player",IDC_RADIO_1PLAYER,"Button",BS_AUTORADIOBUTTON,16,14,45,10 - CONTROL " 2 players",IDC_RADIO_2PLAYERS,"Button",BS_AUTORADIOBUTTON,16,27,45,10 - CONTROL " Fourscore",IDC_RADIO_FOURSCORE,"Button",BS_AUTORADIOBUTTON,16,40,45,10 - CONTROL " Copy current Markers",IDC_COPY_MARKERS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,80,27,83,10 - GROUPBOX "Input type",IDC_STATIC,5,3,67,52,BS_CENTER - EDITTEXT IDC_EDIT_AUTHOR,36,61,127,13,ES_AUTOHSCROLL - LTEXT "Author:",IDC_STATIC,8,63,26,9 -END - -IDD_TASEDITOR_EXPORT DIALOGEX 0, 0, 158, 86 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Export to FM2" -FONT 8, "MS Shell Dlg", 400, 0, 0x1 -BEGIN - DEFPUSHBUTTON "Export",IDOK,7,66,50,14 - PUSHBUTTON "Cancel",IDCANCEL,100,66,50,14 - CONTROL " 1 player",IDC_RADIO_1PLAYER,"Button",BS_AUTORADIOBUTTON | WS_GROUP,8,8,47,10 - CONTROL " 2 players",IDC_RADIO_2PLAYERS,"Button",BS_AUTORADIOBUTTON,8,21,47,10 - CONTROL " Fourscore",IDC_RADIO_FOURSCORE,"Button",BS_AUTORADIOBUTTON,8,35,47,10 - CONTROL " Convert Marker Notes to Movie Subtitles",IDC_NOTES_TO_SUBTITLES, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,50,146,10 -END - -IDD_TASEDITOR_FINDNOTE DIALOGEX 0, 0, 228, 49 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Find Note" -FONT 8, "MS Shell Dlg", 400, 0, 0x1 -BEGIN - DEFPUSHBUTTON "Find next",IDOK,171,5,51,14 - PUSHBUTTON "Close",IDCANCEL,171,23,51,14 - EDITTEXT IDC_NOTE_TO_FIND,6,6,160,12,ES_AUTOHSCROLL - CONTROL " Match case",IDC_MATCH_CASE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,23,53,10 - GROUPBOX "Direction",IDC_STATIC,82,20,83,24,BS_CENTER - CONTROL " Up",IDC_RADIO_UP,"Button",BS_AUTORADIOBUTTON | WS_GROUP,90,30,29,10 - CONTROL " Down",IDC_RADIO_DOWN,"Button",BS_AUTORADIOBUTTON,125,30,32,10 -END - -IDD_TASEDITOR_SAVECOMPACT DIALOGEX 0, 0, 123, 197 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Save Compact" -FONT 8, "MS Shell Dlg", 400, 0, 0x1 -BEGIN - DEFPUSHBUTTON "Save",IDOK,8,176,50,14 - PUSHBUTTON "Cancel",IDCANCEL,66,176,50,14 - CONTROL " Binary format of Input",IDC_CHECK_BINARY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,23,8,89,10 - CONTROL " Markers",IDC_CHECK_MARKERS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,23,23,67,10 - CONTROL " Bookmarks",IDC_CHECK_BOOKMARKS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,23,38,67,10 - CONTROL " History",IDC_CHECK_HISTORY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,23,53,67,10 - CONTROL " Piano Roll",IDC_CHECK_PIANO_ROLL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,23,68,67,10 - CONTROL " Selection",IDC_CHECK_SELECTION,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,23,83,67,10 - GROUPBOX "Greenzone saving options",IDC_STATIC,13,98,97,72 - CONTROL " all frames",IDC_RADIO_GREENZONE_SAVINGMODE_ALLFRAMES,"Button",BS_AUTORADIOBUTTON,23,109,77,10 - CONTROL " every 16th frame",IDC_RADIO_GREENZONE_SAVINGMODE_EVERY16FRAME,"Button",BS_AUTORADIOBUTTON,23,124,77,10 - CONTROL " marked frames",IDC_RADIO_GREENZONE_SAVINGMODE_MARKEDFRAMES,"Button",BS_AUTORADIOBUTTON,23,139,77,10 - CONTROL " don't save",IDC_RADIO_GREENZONE_SAVINGMODE_DONTSAVE,"Button",BS_AUTORADIOBUTTON,23,154,77,10 -END - -ASSEMBLER DIALOGEX 0, 0, 202, 135 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Inline Assembler" -FONT 8, "MS Shell Dlg", 400, 0, 0x1 -BEGIN - EDITTEXT IDC_ASSEMBLER_DISASSEMBLY,27,9,167,12,ES_READONLY - COMBOBOX IDC_ASSEMBLER_HISTORY,15,25,180,54,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "Apply",IDC_ASSEMBLER_APPLY,159,114,36,14 - LTEXT "PC:",-1,15,10,12,10 - LTEXT "Patch:",-1,15,41,26,9 - PUSHBUTTON "Save...",IDC_ASSEMBLER_SAVE,117,114,36,14 - PUSHBUTTON "Undo",IDC_ASSEMBLER_UNDO,15,114,35,14 - DEFPUSHBUTTON "Def",IDC_ASSEMBLER_DEFPUSHBUTTON,55,116,16,12,NOT WS_VISIBLE - LISTBOX IDC_ASSEMBLER_PATCH_DISASM,15,50,180,59,LBS_SORT | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | LBS_NOSEL | WS_VSCROLL | WS_TABSTOP -END - -NAMEBOOKMARKDLG DIALOGEX 0, 0, 186, 73 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Bookmark name" -FONT 8, "MS Shell Dlg", 400, 0, 0x1 -BEGIN - LTEXT "Bookmark name",IDC_BOOKMARK_NAME_TEXT,68,14,58,8 - EDITTEXT IDC_BOOKMARK_DESCRIPTION,7,28,172,14,ES_AUTOHSCROLL - DEFPUSHBUTTON "&OK",IDOK,67,52,50,14 -END - -CDLOGGER DIALOGEX 0, 0, 307, 254 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -EXSTYLE WS_EX_ACCEPTFILES -CAPTION "Code Data Logger" -FONT 8, "MS Shell Dlg", 400, 0, 0x1 -BEGIN - PUSHBUTTON "Load...",BTN_CDLOGGER_LOAD,7,122,50,14 - PUSHBUTTON "Save",BTN_CDLOGGER_SAVE,249,105,50,14 - GROUPBOX "Code/Data Log Status",-1,3,5,300,195,BS_CENTER - DEFPUSHBUTTON "Start",BTN_CDLOGGER_START_PAUSE,127,105,50,14 - GROUPBOX "Address Label Logger",65534,3,201,300,49,BS_CENTER - PUSHBUTTON "Load...",111,7,231,50,14,WS_DISABLED - PUSHBUTTON "Start",112,127,231,50,14,WS_DISABLED - PUSHBUTTON "Save...",113,249,231,50,14,WS_DISABLED - LTEXT "4067 - 29.5%",LBL_CDLOGGER_CODECOUNT,34,27,72,11 - GROUPBOX "PRG Logged as Code",65533,25,16,84,27 - GROUPBOX "PRG Logged as Data",65532,113,16,84,27 - LTEXT "7092 - 37.2%",LBL_CDLOGGER_DATACOUNT,122,27,71,9 - GROUPBOX "PRG not Logged",65531,201,16,79,27 - LTEXT "6072 - 32.7%",LBL_CDLOGGER_UNDEFCOUNT,210,27,66,8 - LTEXT "Itsa me, the Code/Data Logger! Press Start to play!",65530,67,78,172,11 - PUSHBUTTON "Reset Log",BTN_CDLOGGER_RESET,7,105,50,14 - PUSHBUTTON "Save as...",BTN_CDLOGGER_SAVE_AS,250,122,50,14 - PUSHBUTTON "Save Stripped Data...",BTN_CDLOGGER_SAVE_STRIPPED,196,155,90,14 - PUSHBUTTON "Save Unused Data...",BTN_CDLOGGER_SAVE_UNUSED,196,172,90,14 - LTEXT "4067 - 29.5%",LBL_CDLOGGER_RENDERCOUNT,34,56,72,11 - GROUPBOX "CHR Rendered",ID_CHR1,25,45,84,27 - GROUPBOX "CHR Logged as Data",ID_CHR2,113,45,84,27 - LTEXT "7092 - 37.2%",LBL_CDLOGGER_VROMREADCOUNT,122,56,71,9 - GROUPBOX "CHR not Logged",ID_CHR3,201,45,79,27 - LTEXT "6072 - 32.7%",LBL_CDLOGGER_UNDEFVROMCOUNT,210,56,66,9 - LTEXT "CDL file:",ID_STATIC,12,92,29,11 - LTEXT "",ID_CDLFILENAME,43,92,252,11,SS_PATHELLIPSIS - CONTROL " Auto-resume logging when loading ROMs",IDC_AUTORESUMECDLOGGING, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,179,153,11 - CONTROL " Auto-save .CDL when closing ROMs",IDC_AUTOSAVECDL, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,153,143,11 - CONTROL " Auto-load .CDL when opening this window",IDC_AUTOLOADCDL, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,166,154,11 - GROUPBOX "Generate ROM",65529,183,142,116,52 - GROUPBOX "Logging workflow options",65528,8,142,171,52 -END - -PPUVIEW DIALOGEX 44, 38, 353, 234 -STYLE DS_SETFONT | DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "PPU Viewer" -FONT 8, "Tahoma", 0, 0, 0x0 -BEGIN - GROUPBOX "Pattern Tables",GRP_PPUVIEW_TABLES,2,-1,348,185,WS_TABSTOP - LTEXT "Tile:",LBL_PPUVIEW_TILE1,6,138,50,9 - LTEXT "Tile:",LBL_PPUVIEW_TILE2,178,138,50,9 - LTEXT "Refresh: More",-1,230,151,50,9 - CONTROL "",CTL_PPUVIEW_TRACKBAR,"msctls_trackbar32",WS_TABSTOP,280,151,50,11 - LTEXT "Less",-1,330,151,18,10 - LTEXT "Display on scanline:",-1,253,166,65,9 - EDITTEXT IDC_PPUVIEW_SCANLINE,315,164,27,12 - CONTROL "Sprites 8x16 mode",IDC_SPRITE16_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,151,160,10 - CONTROL "Mask unused graphics (Code/Data Logger)",IDC_MASK_UNUSED_GRAPHICS, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,162,160,10 - CONTROL "Invert the mask (Code/Data Logger)",IDC_INVERT_THE_MASK, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,173,160,10 - GROUPBOX "Palettes",LBL_PPUVIEW_PALETTES,2,185,348,46,WS_TABSTOP -END - -ARCHIVECHOOSERDIALOG DIALOGEX 0, 0, 265, 159 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Choose File From Archive" -FONT 8, "MS Shell Dlg", 400, 0, 0x1 -BEGIN - DEFPUSHBUTTON "OK",IDOK,146,138,50,14 - PUSHBUTTON "Cancel",IDCANCEL,208,138,50,14 - LISTBOX IDC_LIST1,7,7,251,120,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP -END - -TEXTHOOKER DIALOGEX 0, 0, 456, 327 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -EXSTYLE WS_EX_ACCEPTFILES -CAPTION "Text Hooker" -FONT 8, "MS Shell Dlg", 400, 0, 0x1 -BEGIN - GROUPBOX "Selection Window",1,0,0,183,164,0,WS_EX_NOPARENTNOTIFY - EDITTEXT 102,207,13,216,94,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | NOT WS_BORDER | WS_VSCROLL,WS_EX_NOPARENTNOTIFY | WS_EX_CLIENTEDGE - GROUPBOX "Hooked Text",103,200,0,229,131,0,WS_EX_NOPARENTNOTIFY - PUSHBUTTON "Load Table",104,3,169,60,14,0,WS_EX_NOPARENTNOTIFY - PUSHBUTTON "Clear Selection",105,67,169,60,14,0,WS_EX_NOPARENTNOTIFY - PUSHBUTTON "Pause",106,67,190,60,14,0,WS_EX_NOPARENTNOTIFY - PUSHBUTTON "Snap",107,130,169,60,35,0,WS_EX_NOPARENTNOTIFY - PUSHBUTTON "Clear Buffer",108,208,111,60,14,0,WS_EX_NOPARENTNOTIFY - EDITTEXT 111,5,249,115,14,ES_AUTOHSCROLL | NOT WS_BORDER,WS_EX_NOPARENTNOTIFY | WS_EX_CLIENTEDGE - PUSHBUTTON "Save Selection",112,130,249,60,14,0,WS_EX_NOPARENTNOTIFY - PUSHBUTTON "Save Table",113,3,190,60,14,0,WS_EX_NOPARENTNOTIFY - PUSHBUTTON "Load Selection",114,130,268,60,14,0,WS_EX_NOPARENTNOTIFY - GROUPBOX "Translated Text",115,200,140,229,117,0,WS_EX_NOPARENTNOTIFY - EDITTEXT 116,207,156,214,95,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | NOT WS_BORDER | WS_VSCROLL,WS_EX_NOPARENTNOTIFY | WS_EX_CLIENTEDGE - PUSHBUTTON "Excite.co.jp",117,281,111,60,14,0,WS_EX_NOPARENTNOTIFY - LTEXT "Scanline:",118,5,210,50,8,0,WS_EX_NOPARENTNOTIFY - LTEXT "Update every x frames:",119,68,210,79,8,0,WS_EX_NOPARENTNOTIFY - EDITTEXT 120,5,220,52,14,ES_AUTOHSCROLL | NOT WS_BORDER,WS_EX_NOPARENTNOTIFY | WS_EX_CLIENTEDGE - EDITTEXT 121,68,220,52,14,ES_AUTOHSCROLL | NOT WS_BORDER,WS_EX_NOPARENTNOTIFY | WS_EX_CLIENTEDGE - PUSHBUTTON "Trim",122,351,111,60,14 - COMBOBOX 109,5,269,115,100,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - LTEXT "Japanese:",-1,5,283,47,9 - EDITTEXT 131,5,292,115,14,ES_AUTOHSCROLL - LTEXT "English:",-1,130,283,47,9 - EDITTEXT 132,130,292,115,14,ES_AUTOHSCROLL - PUSHBUTTON "Add Definition",133,253,292,60,14 - CONTROL "Selection Window",341,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,324,261,80,9 - CONTROL "Word Substitution",342,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,324,274,80,9 - LTEXT "(han)dakuten mark position:",-1,324,286,92,8 - CONTROL "Above",343,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,324,297,37,10 - CONTROL "Right",344,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,363,297,33,10 - LTEXT "New Selection Name:",-1,5,240,68,8 -END - -CHEATCONSOLE DIALOGEX 0, 0, 386, 217 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Cheat Search" -FONT 8, "MS Shell Dlg", 400, 0, 0x1 -BEGIN - GROUPBOX "Active Cheats",IDC_GROUPBOX_CHEATLIST,5,2,169,209,WS_TABSTOP - GROUPBOX "Cheat Search",IDC_GROUPBOX_CHEATSEARCH,179,2,201,209,WS_TABSTOP - CONTROL "",IDC_LIST_CHEATS,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,11,11,157,133 - LTEXT "Name:",IDC_STATIC,12,149,22,10 - LTEXT "Value:",IDC_CHEAT_VAL_LABEL,73,163,22,8 - LTEXT "Compare:",IDC_CHEAT_COM_LABEL,117,163,34,8 - EDITTEXT IDC_CHEAT_NAME,37,147,131,12,ES_AUTOHSCROLL | ES_WANTRETURN - EDITTEXT IDC_CHEAT_ADDR,44,161,25,12,ES_UPPERCASE | ES_WANTRETURN - EDITTEXT IDC_CHEAT_VAL,97,161,16,12,ES_UPPERCASE | ES_WANTRETURN - EDITTEXT IDC_CHEAT_COM,152,161,16,12,ES_UPPERCASE | ES_WANTRETURN - DEFPUSHBUTTON "Add",IDC_BTN_CHEAT_ADD,9,192,36,16 - PUSHBUTTON "Delete",IDC_BTN_CHEAT_DEL,45,192,36,16 - PUSHBUTTON "Update",IDC_BTN_CHEAT_UPD,81,192,36,16 - PUSHBUTTON "Reset",IDC_BTN_CHEAT_RESET,191,12,55,15 - PUSHBUTTON "Known Value:",IDC_BTN_CHEAT_KNOWN,191,32,55,15 - LTEXT "0x",IDC_CHEAT_LABEL_KNOWN,216,51,9,8 - EDITTEXT IDC_CHEAT_VAL_KNOWN,227,49,18,12,ES_UPPERCASE - GROUPBOX "Previous Compare",IDC_GROUP_PREV_COM,184,63,69,132 - PUSHBUTTON "Equal",IDC_BTN_CHEAT_EQ,191,75,55,15,WS_GROUP - PUSHBUTTON "Not Equal",IDC_BTN_CHEAT_NE,191,96,55,15 - CONTROL "By:",IDC_CHEAT_CHECK_NE_BY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,203,114,22,10 - EDITTEXT IDC_CHEAT_VAL_NE_BY,227,113,18,12,ES_UPPERCASE | ES_WANTRETURN - PUSHBUTTON "Greater Than",IDC_BTN_CHEAT_GT,191,129,55,15 - CONTROL "By:",IDC_CHEAT_CHECK_GT_BY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,203,147,22,10 - EDITTEXT IDC_CHEAT_VAL_GT_BY,227,146,18,12,ES_UPPERCASE | ES_WANTRETURN - PUSHBUTTON "Less Than",IDC_BTN_CHEAT_LT,191,162,55,15 - CONTROL "By:",IDC_CHEAT_CHECK_LT_BY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,203,180,22,10 - EDITTEXT IDC_CHEAT_VAL_LT_BY,227,179,18,12,ES_UPPERCASE | ES_WANTRETURN - GROUPBOX "Possibilities",IDC_CHEAT_BOX_POSSIBILITIES,257,8,117,187,WS_TABSTOP - CONTROL "",IDC_CHEAT_LIST_POSSIBILITIES,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_OWNERDATA | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,263,18,106,172 - CONTROL " Pause emulation when this window is active",IDC_CHEAT_PAUSEWHENACTIVE, - "Button",BS_AUTOCHECKBOX,185,198,157,10 - PUSHBUTTON "Import...",IDC_BTN_CHEAT_ADDFROMFILE,126,192,43,16 - EDITTEXT IDC_CHEAT_TEXT,105,175,63,12,ES_UPPERCASE | ES_AUTOHSCROLL - LTEXT "Address:",IDC_CHEAT_ADDRESS_LABEL,12,163,30,8 - LTEXT "Cheat code / Game Genie:",IDC_CHEAT_CODE_GG_LABEL,12,177,87,8 -END - -IDD_LUA DIALOGEX 0, 0, 270, 150 -STYLE DS_SETFONT | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME -EXSTYLE WS_EX_APPWINDOW -CAPTION "Lua Script" -MENU LUAWINDOW_MENU -FONT 8, "MS Shell Dlg", 400, 0, 0x1 -BEGIN - PUSHBUTTON "&Browse...",IDC_BUTTON_LUABROWSE,7,31,48,16 - PUSHBUTTON "&Run",IDC_BUTTON_LUARUN,213,31,50,16 - PUSHBUTTON "&Stop",IDC_BUTTON_LUASTOP,160,31,50,16 - EDITTEXT IDC_EDIT_LUAPATH,7,16,256,14,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_LUAARGS,47,50,216,14,ES_AUTOHSCROLL - EDITTEXT IDC_LUACONSOLE,7,80,256,60,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL - LTEXT "Output Console:",IDC_STATIC,7,70,56,8 - LTEXT "Script File:",IDC_STATIC,7,7,36,8 - LTEXT "Arguments:",IDC_STATIC,7,52,40,8 - PUSHBUTTON "Edit",IDC_BUTTON_LUAEDIT,58,31,46,16 -END - -VIDEOCONFIG DIALOGEX 65520, 76, 511, 170 -STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -CAPTION "Video Configuration" -FONT 8, "Tahoma", 0, 0, 0x0 -BEGIN - GROUPBOX "Full Screen Settings",65453,5,3,171,141,WS_GROUP - CONTROL "Full Screen (Alt + Enter or double-click)",IDC_VIDEOCONFIG_FS, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,15,157,12 - CONTROL "Enter full screen mode after game is loaded",IDC_VIDEOCONFIG_AUTO_FS, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,29,154,12 - LTEXT "Sync method:",65452,11,108,46,10 - COMBOBOX IDC_VIDEOCONFIG_SYNC_METHOD_FS,59,106,105,50,CBS_DROPDOWNLIST | WS_TABSTOP - LTEXT "Mode:",13,11,67,23,9 - EDITTEXT IDC_VIDEOCONFIG_XRES,36,65,27,13,ES_RIGHT - LTEXT "by",12,67,67,11,9 - EDITTEXT IDC_VIDEOCONFIG_YRES,79,65,27,13,ES_RIGHT - LTEXT "@",11,110,67,11,9 - COMBOBOX IDC_VIDEOCONFIG_BPP,122,65,32,12,CBS_DROPDOWNLIST | WS_TABSTOP - LTEXT "bpp",10,157,67,14,9 - LTEXT "Special Filter:",65444,11,91,46,9 - COMBOBOX IDC_VIDEOCONFIG_SCALER_FS,59,89,105,46,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Windowed Settings",65441,182,3,164,141,WS_GROUP - LTEXT "Size Multiplier:",65440,190,22,50,8 - CTEXT "X:",65439,253,10,26,8 - CTEXT "Y:",65438,304,10,26,8 - EDITTEXT IDC_WINSIZE_MUL_X,244,20,44,12,ES_AUTOHSCROLL - EDITTEXT IDC_WINSIZE_MUL_Y,295,20,44,12,ES_AUTOHSCROLL - CONTROL "Force integral scaling factors",IDC_FORCE_INT_VIDEO_SCALARS, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,195,50,136,12 - CONTROL "Force aspect ratio correction",IDC_FORCE_ASPECT_CORRECTION, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,195,64,136,12 - LTEXT "Special Filter:",65429,188,91,46,9 - COMBOBOX IDC_VIDEOCONFIG_SCALER_WIN,236,89,103,47,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - LTEXT "Sync method:",65437,188,108,46,9 - COMBOBOX IDC_VIDEOCONFIG_SYNC_METHOD_WIN,236,106,103,47,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Drawing Area",65494,351,50,154,65,WS_GROUP - LTEXT "First line:",65436,367,68,40,9 - LTEXT "Last line:",65435,367,84,40,9 - CTEXT "NTSC",65434,413,57,27,8 - CTEXT "PAL/Dendy",65433,455,57,48,8 - EDITTEXT IDC_SCANLINE_FIRST_NTSC,414,66,27,12,ES_RIGHT - EDITTEXT IDC_SCANLINE_LAST_NTSC,414,83,27,12,ES_RIGHT - EDITTEXT IDC_SCANLINE_FIRST_PAL,465,66,27,12,ES_RIGHT - EDITTEXT IDC_SCANLINE_LAST_PAL,465,83,27,12,ES_RIGHT - CONTROL "Clip left and right sides (8 px on each)",IDC_VIDEOCONFIG_CLIPSIDES, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,357,98,140,12 - DEFPUSHBUTTON "Close",ID_CANCEL,449,150,56,14 - CONTROL "Allow more than 8 sprites per scanline",IDC_VIDEOCONFIG_NO8LIM, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,357,128,138,11 - GROUPBOX "Emulation",65430,351,117,154,27,WS_GROUP - CONTROL "Best Fit",IDC_VIDEOCONFIG_BESTFIT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,357,14,41,12 - CONTROL "Hide mouse cursor",IDC_VIDEOCONFIG_HIDEMOUSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,43,87,12 - GROUPBOX "Aspect ratio",65495,351,3,154,45,WS_GROUP - CONTROL "BG color",IDC_VIDEOCONFIG_CONSOLE_BGCOLOR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,401,14,44,12 - CONTROL "TV Aspect",IDC_VIDEOCONFIG_TVASPECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,357,29,48,12 - GROUPBOX "When resizing the window",65431,188,38,152,43,WS_GROUP - CONTROL "Square pixels",IDC_VIDEOCONFIG_SQUARE_PIXELS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,448,14,55,12 - EDITTEXT IDC_TVASPECT_X,407,28,41,12,ES_AUTOHSCROLL | WS_DISABLED - EDITTEXT IDC_TVASPECT_Y,458,28,41,12,ES_AUTOHSCROLL | WS_DISABLED - CTEXT "/",IDC_STATIC_SLASHTEXT,449,31,8,8,WS_DISABLED - LTEXT "DirectDraw:",65454,11,126,46,10 - LTEXT "DirectDraw:",65455,188,125,46,10 - COMBOBOX IDC_VIDEOCONFIG_DIRECTDRAW_FS,59,123,105,50,CBS_DROPDOWNLIST | WS_TABSTOP - COMBOBOX IDC_VIDEOCONFIG_DIRECTDRAW_WIN,236,123,103,47,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP -END - -IDD_RAMSEARCH DIALOGEX 0, 0, 287, 292 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION " RAM Search" -FONT 8, "MS Shell Dlg", 400, 0, 0x1 -BEGIN - 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 - PUSHBUTTON "&Reset",IDC_C_RESET,226,27,52,16 - PUSHBUTTON "&Eliminate",IDC_C_ELIMINATE,226,98,52,14 - GROUPBOX "Comparison Operator",IDC_STATIC,10,166,102,120,0,WS_EX_TRANSPARENT - CONTROL "Less Than",IDC_LESSTHAN,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,14,178,95,11 - CONTROL "Greater Than",IDC_MORETHAN,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,191,95,11 - CONTROL "Less Than or Equal To",IDC_NOMORETHAN,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,204,95,11 - CONTROL "Greater Than or Equal To",IDC_NOLESSTHAN,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,217,95,11 - CONTROL "Equal To",IDC_EQUALTO,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,230,95,11 - CONTROL "Not Equal To",IDC_DIFFERENTFROM,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,243,95,11 - CONTROL "Different By:",IDC_DIFFERENTBY,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,256,52,11 - CONTROL "Modulo",IDC_MODULO,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,269,35,11 - EDITTEXT IDC_EDIT_DIFFBY,69,255,38,12,ES_UPPERCASE | ES_AUTOHSCROLL | WS_DISABLED - EDITTEXT IDC_EDIT_MODBY,51,267,38,12,ES_UPPERCASE | ES_AUTOHSCROLL | WS_DISABLED - GROUPBOX "Compare To / By",IDC_STATIC,118,166,153,60,0,WS_EX_TRANSPARENT - CONTROL "Previous Value",IDC_PREVIOUSVALUE,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,121,176,67,10 - CONTROL "Specific Value:",IDC_SPECIFICVALUE,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,121,188,67,10 - CONTROL "Specific Address:",IDC_SPECIFICADDRESS,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,121,200,67,10 - CONTROL "Number of Changes:",IDC_NUMBEROFCHANGES,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,121,212,76,10 - EDITTEXT IDC_EDIT_COMPAREVALUE,203,187,63,12,ES_UPPERCASE | ES_AUTOHSCROLL | WS_DISABLED - EDITTEXT IDC_EDIT_COMPAREADDRESS,203,199,63,12,ES_UPPERCASE | ES_AUTOHSCROLL | WS_DISABLED - EDITTEXT IDC_EDIT_COMPARECHANGES,203,211,63,12,ES_UPPERCASE | ES_AUTOHSCROLL | WS_DISABLED - GROUPBOX "Data Type / Display",IDC_STATIC,196,228,75,45,0,WS_EX_TRANSPARENT - CONTROL "Signed",IDC_SIGNED,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,200,238,67,9 - CONTROL "Unsigned",IDC_UNSIGNED,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,200,249,67,9 - CONTROL "Hexadecimal",IDC_HEX,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,200,260,67,9 - CONTROL "Autosearch",IDC_C_AUTOSEARCH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,200,275,57,11 - GROUPBOX "Data Size",IDC_STATIC,117,228,73,58,0,WS_EX_TRANSPARENT - CONTROL "1 byte",IDC_1_BYTE,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,121,238,61,11 - CONTROL "2 bytes",IDC_2_BYTES,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,121,249,61,11 - CONTROL "4 bytes",IDC_4_BYTES,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,121,260,61,11 - CONTROL "Check Misaligned",IDC_MISALIGN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,121,273,65,8 - PUSHBUTTON "&Clear Change Counts",IDC_C_RESET_CHANGES,226,45,52,20,BS_MULTILINE - PUSHBUTTON "&Undo",IDC_C_UNDO,226,67,52,16,WS_DISABLED - LTEXT "Is",IDC_STATIC,92,270,12,8 - CONTROL "Search ROM",IDC_C_SEARCHROM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,227,85,54,11 - PUSHBUTTON "&Hex Editor",IDC_C_HEXEDITOR,226,146,52,14 -END - -IDD_RAMWATCH DIALOGEX 0, 0, 269, 298 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU -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 | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,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 - PUSHBUTTON "Duplicate",IDC_C_WATCH_DUPLICATE,226,117,34,14 - PUSHBUTTON "Add Cheat",IDC_C_ADDCHEAT,223,168,42,16,WS_DISABLED - GROUPBOX "Watches",IDC_STATIC,222,11,42,145 - CONTROL "",ID_WATCHES_UPDOWN,"msctls_updown32",WS_TABSTOP,232,23,19,36 - PUSHBUTTON "Separator",IDC_C_WATCH_SEPARATE,225,137,36,14 -END - -IDD_EDITWATCH DIALOGEX 0, 0, 181, 125 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION " Edit Watch" -FONT 8, "MS Shell Dlg", 400, 0, 0x1 -BEGIN - CTEXT "Address:",IDC_SPECIFICADDRESS,15,12,30,8 - EDITTEXT IDC_EDIT_COMPAREADDRESS,48,10,65,12,ES_UPPERCASE | ES_AUTOHSCROLL - CTEXT "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,51,0,WS_EX_TRANSPARENT - CONTROL "&Signed",IDC_SIGNED,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,18,47,67,9 - CONTROL "&Unsigned",IDC_UNSIGNED,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,18,57,67,9 - CONTROL "&Hexadecimal",IDC_HEX,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,18,67,67,9 - CONTROL "&Binary", IDC_BINARY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 18, 77, 67, 9 - GROUPBOX "Data Size",IDC_DATASIZE_GROUPBOX,94,37,73,42,0,WS_EX_TRANSPARENT - CONTROL "&1 byte",IDC_1_BYTE,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,98,47,61,11 - CONTROL "&2 bytes",IDC_2_BYTES,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,98,57,61,11 - CONTROL "&4 bytes",IDC_4_BYTES,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,98,67,61,11 - DEFPUSHBUTTON "&OK",IDOK,66,90,50,14 - PUSHBUTTON "&Cancel",IDCANCEL,120,90,50,14 -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" -FONT 8, "Tahoma", 0, 0, 0x0 -BEGIN - DEFPUSHBUTTON "Close",BTN_CLOSE,177,97,56,14 - GROUPBOX "",GRP_GAMEPAD1,4,8,232,82,WS_GROUP - PUSHBUTTON "Up",304,35,36,24,12 - PUSHBUTTON "Left",306,9,54,25,12 - PUSHBUTTON "Right",307,60,54,24,12 - PUSHBUTTON "Down",305,35,73,24,12 - PUSHBUTTON "Select",302,91,54,26,12 - PUSHBUTTON "Start",303,126,54,26,12 - PUSHBUTTON "Y",301,164,53,16,12 - PUSHBUTTON "B",300,181,66,16,12 - PUSHBUTTON "A",308,199,53,16,12 - PUSHBUTTON "X",309,181,40,16,12 - PUSHBUTTON "L",310,10,19,32,12 - 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_RADIO_GREENZONE_SAVINGMODE_ALLFRAMES,"Button",BS_AUTORADIOBUTTON,122,117,77,10 - CONTROL " every 16th frame", IDC_RADIO_GREENZONE_SAVINGMODE_EVERY16FRAME,"Button",BS_AUTORADIOBUTTON,122,131,77,10 - CONTROL " marked frames", IDC_RADIO_GREENZONE_SAVINGMODE_MARKEDFRAMES,"Button",BS_AUTORADIOBUTTON,122,145,77,10 - CONTROL " don't save", IDC_RADIO_GREENZONE_SAVINGMODE_DONTSAVE,"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 - - -///////////////////////////////////////////////////////////////////////////// -// -// DESIGNINFO -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO -BEGIN - "DIRCONFIG", DIALOG - BEGIN - LEFTMARGIN, 10 - RIGHTMARGIN, 295 - TOPMARGIN, 8 - END - - "GAMEPADDIALOG", DIALOG - BEGIN - END - - "GUICONFIG", DIALOG - BEGIN - END - - "INPUTCONFIG", DIALOG - BEGIN - LEFTMARGIN, 10 - RIGHTMARGIN, 338 - TOPMARGIN, 8 - BOTTOMMARGIN, 191 - END - - "NETMOO", DIALOG - BEGIN - LEFTMARGIN, 10 - RIGHTMARGIN, 357 - TOPMARGIN, 8 - BOTTOMMARGIN, 201 - END - - "PALCONFIG", DIALOG - BEGIN - LEFTMARGIN, 10 - RIGHTMARGIN, 218 - TOPMARGIN, 8 - BOTTOMMARGIN, 209 - END - - "SOUNDCONFIG", DIALOG - BEGIN - LEFTMARGIN, 10 - RIGHTMARGIN, 324 - TOPMARGIN, 8 - BOTTOMMARGIN, 274 - END - - "TIMINGCONFIG", DIALOG - BEGIN - LEFTMARGIN, 10 - RIGHTMARGIN, 193 - TOPMARGIN, 8 - BOTTOMMARGIN, 101 - END - - "MOVIEOPTIONS", DIALOG - BEGIN - LEFTMARGIN, 4 - RIGHTMARGIN, 138 - TOPMARGIN, 8 - BOTTOMMARGIN, 217 - END - - "MEMWATCH", DIALOG - BEGIN - RIGHTMARGIN, 260 - BOTTOMMARGIN, 269 - END - - "DEBUGGER", DIALOG - BEGIN - BOTTOMMARGIN, 332 - END - - "TRACER", DIALOG - BEGIN - END - - "ADDBP", DIALOG - BEGIN - RIGHTMARGIN, 185 - BOTTOMMARGIN, 121 - END - - "NTVIEW", DIALOG - BEGIN - END - - "GGCONV", DIALOG - BEGIN - END - - "MONITOR", DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 312 - TOPMARGIN, 7 - BOTTOMMARGIN, 336 - END - - "MEMVIEWFIND", DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 275 - TOPMARGIN, 7 - BOTTOMMARGIN, 74 - END - - "IDD_RECORDINP", DIALOG - BEGIN - BOTTOMMARGIN, 66 - END - - "IDD_REPLAYINP", DIALOG - BEGIN - BOTTOMMARGIN, 198 - END - - "TASEDITOR", DIALOG - BEGIN - END - - "ASSEMBLER", DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 195 - TOPMARGIN, 7 - BOTTOMMARGIN, 128 - END - - "NAMEBOOKMARKDLG", DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 179 - TOPMARGIN, 7 - BOTTOMMARGIN, 66 - END - - "CDLOGGER", DIALOG - BEGIN - END - - "PPUVIEW", DIALOG - BEGIN - END - - "ARCHIVECHOOSERDIALOG", DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 258 - TOPMARGIN, 7 - BOTTOMMARGIN, 152 - END - - "TEXTHOOKER", DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 449 - TOPMARGIN, 7 - BOTTOMMARGIN, 320 - END - - "CHEATCONSOLE", DIALOG - BEGIN - RIGHTMARGIN, 385 - BOTTOMMARGIN, 216 - END - - "VIDEOCONFIG", DIALOG - 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 - - -///////////////////////////////////////////////////////////////////////////// -// -// AFX_DIALOG_LAYOUT -// - -NTVIEW AFX_DIALOG_LAYOUT -BEGIN - 0 -END - -TIMINGCONFIG AFX_DIALOG_LAYOUT -BEGIN - 0 -END - -IDD_TASEDITOR_SAVINGOPTIONS AFX_DIALOG_LAYOUT -BEGIN - 0 -END - -IDD_EDITWATCH AFX_DIALOG_LAYOUT -BEGIN - 0 -END - -GGCONV AFX_DIALOG_LAYOUT -BEGIN - 0 -END - -CHEATCONSOLE AFX_DIALOG_LAYOUT -BEGIN - 0 -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Accelerator -// - -IDR_TASEDITOR_ACCELERATORS ACCELERATORS -BEGIN - "A", ACCEL_CTRL_A, VIRTKEY, CONTROL, NOINVERT - "B", ACCEL_CTRL_B, VIRTKEY, CONTROL, NOINVERT - "C", ACCEL_CTRL_C, VIRTKEY, CONTROL, NOINVERT - VK_DELETE, ACCEL_CTRL_DELETE, VIRTKEY, CONTROL, NOINVERT - VK_DOWN, ACCEL_CTRL_DOWN, VIRTKEY, CONTROL, NOINVERT - VK_END, ACCEL_CTRL_END, VIRTKEY, CONTROL, NOINVERT - "F", ACCEL_CTRL_F, VIRTKEY, CONTROL, NOINVERT - VK_HOME, ACCEL_CTRL_HOME, VIRTKEY, CONTROL, NOINVERT - VK_INSERT, ACCEL_CTRL_INSERT, VIRTKEY, CONTROL, NOINVERT - VK_LEFT, ACCEL_CTRL_LEFT, VIRTKEY, CONTROL, NOINVERT - VK_NEXT, ACCEL_CTRL_PGDN, VIRTKEY, CONTROL, NOINVERT - VK_PRIOR, ACCEL_CTRL_PGUP, VIRTKEY, CONTROL, NOINVERT - "Q", ACCEL_CTRL_Q, VIRTKEY, CONTROL, NOINVERT - VK_RIGHT, ACCEL_CTRL_RIGHT, VIRTKEY, CONTROL, NOINVERT - "S", ACCEL_CTRL_S, VIRTKEY, CONTROL, NOINVERT - VK_INSERT, ACCEL_CTRL_SHIFT_INS, VIRTKEY, SHIFT, CONTROL, NOINVERT - "V", ACCEL_CTRL_SHIFT_V, VIRTKEY, SHIFT, CONTROL, NOINVERT - VK_UP, ACCEL_CTRL_UP, VIRTKEY, CONTROL, NOINVERT - "V", ACCEL_CTRL_V, VIRTKEY, CONTROL, NOINVERT - "W", ACCEL_CTRL_W, VIRTKEY, CONTROL, NOINVERT - "X", ACCEL_CTRL_X, VIRTKEY, CONTROL, NOINVERT - "Y", ACCEL_CTRL_Y, VIRTKEY, CONTROL, NOINVERT - "Z", ACCEL_CTRL_Z, VIRTKEY, CONTROL, NOINVERT - VK_DELETE, ACCEL_DEL, VIRTKEY, NOINVERT - VK_END, ACCEL_END, VIRTKEY, NOINVERT - VK_HOME, ACCEL_HOME, VIRTKEY, NOINVERT - VK_INSERT, ACCEL_INS, VIRTKEY, NOINVERT - VK_NEXT, ACCEL_PGDN, VIRTKEY, NOINVERT - VK_PRIOR, ACCEL_PGUP, VIRTKEY, NOINVERT - VK_DOWN, ACCEL_SHIFT_DOWN, VIRTKEY, SHIFT, NOINVERT - VK_END, ACCEL_SHIFT_END, VIRTKEY, SHIFT, NOINVERT - VK_HOME, ACCEL_SHIFT_HOME, VIRTKEY, SHIFT, NOINVERT - VK_LEFT, ACCEL_SHIFT_LEFT, VIRTKEY, SHIFT, NOINVERT - VK_NEXT, ACCEL_SHIFT_PGDN, VIRTKEY, SHIFT, NOINVERT - VK_PRIOR, ACCEL_SHIFT_PGUP, VIRTKEY, SHIFT, NOINVERT - VK_RIGHT, ACCEL_SHIFT_RIGHT, VIRTKEY, SHIFT, NOINVERT - VK_UP, ACCEL_SHIFT_UP, VIRTKEY, SHIFT, NOINVERT -END - -IDR_RWACCELERATOR ACCELERATORS -BEGIN - "N", RAMMENU_FILE_NEW, VIRTKEY, CONTROL - "O", RAMMENU_FILE_OPEN, VIRTKEY, CONTROL - "S", RAMMENU_FILE_SAVE, VIRTKEY, CONTROL - "S", RAMMENU_FILE_SAVEAS, VIRTKEY, SHIFT, CONTROL - "A", IDC_C_WATCH_DUPLICATE, VIRTKEY - "E", IDC_C_WATCH_EDIT, VIRTKEY - "D", IDC_C_WATCH_DOWN, VIRTKEY - "U", IDC_C_WATCH_UP, VIRTKEY - "N", IDC_C_WATCH, VIRTKEY - "R", IDC_C_WATCH_REMOVE, VIRTKEY -END - - -///////////////////////////////////////////////////////////////////////////// -// -// Bitmap -// - -IDB_BITMAP0 BITMAP "res\\te_0.bmp" -IDB_BITMAP1 BITMAP "res\\te_1.bmp" -IDB_BITMAP2 BITMAP "res\\te_2.bmp" -IDB_BITMAP3 BITMAP "res\\te_3.bmp" -IDB_BITMAP4 BITMAP "res\\te_4.bmp" -IDB_BITMAP5 BITMAP "res\\te_5.bmp" -IDB_BITMAP6 BITMAP "res\\te_6.bmp" -IDB_BITMAP7 BITMAP "res\\te_7.bmp" -IDB_BITMAP8 BITMAP "res\\te_8.bmp" -IDB_BITMAP9 BITMAP "res\\te_9.bmp" -IDB_BITMAP10 BITMAP "res\\te_10.bmp" -IDB_BITMAP11 BITMAP "res\\te_11.bmp" -IDB_BITMAP12 BITMAP "res\\te_12.bmp" -IDB_BITMAP13 BITMAP "res\\te_13.bmp" -IDB_BITMAP14 BITMAP "res\\te_14.bmp" -IDB_BITMAP15 BITMAP "res\\te_15.bmp" -IDB_BITMAP16 BITMAP "res\\te_16.bmp" -IDB_BITMAP17 BITMAP "res\\te_17.bmp" -IDB_BITMAP18 BITMAP "res\\te_18.bmp" -IDB_BITMAP19 BITMAP "res\\te_19.bmp" -IDB_TE_ARROW BITMAP "res\\te_arrow.bmp" -IDB_TE_GREEN_ARROW BITMAP "res\\te_green_arrow.bmp" -IDB_TE_GREEN_BLUE_ARROW BITMAP "res\\te_green_blue_arrow.bmp" -IDB_PIANO_0 BITMAP "res\\te_piano_0.bmp" -IDB_PIANO_1 BITMAP "res\\te_piano_1.bmp" -IDB_PIANO_2 BITMAP "res\\te_piano_2.bmp" -IDB_PIANO_3 BITMAP "res\\te_piano_3.bmp" -IDB_PIANO_4 BITMAP "res\\te_piano_4.bmp" -IDB_PIANO_5 BITMAP "res\\te_piano_5.bmp" -IDB_PIANO_6 BITMAP "res\\te_piano_6.bmp" -IDB_PIANO_7 BITMAP "res\\te_piano_7.bmp" -IDB_PIANO_8 BITMAP "res\\te_piano_8.bmp" -IDB_PIANO_9 BITMAP "res\\te_piano_9.bmp" -IDB_PIANO_10 BITMAP "res\\te_piano_10.bmp" -IDB_PIANO_11 BITMAP "res\\te_piano_11.bmp" -IDB_PIANO_12 BITMAP "res\\te_piano_12.bmp" -IDB_PIANO_13 BITMAP "res\\te_piano_13.bmp" -IDB_PIANO_14 BITMAP "res\\te_piano_14.bmp" -IDB_PIANO_15 BITMAP "res\\te_piano_15.bmp" -IDB_PIANO_16 BITMAP "res\\te_piano_16.bmp" -IDB_PIANO_17 BITMAP "res\\te_piano_17.bmp" -IDB_PIANO_18 BITMAP "res\\te_piano_18.bmp" -IDB_PIANO_19 BITMAP "res\\te_piano_19.bmp" -IDB_PIANO_PLAYBACK_0 BITMAP "res\\te_piano_0_playback.bmp" -IDB_PIANO_PLAYBACK_1 BITMAP "res\\te_piano_1_playback.bmp" -IDB_PIANO_PLAYBACK_2 BITMAP "res\\te_piano_2_playback.bmp" -IDB_PIANO_PLAYBACK_3 BITMAP "res\\te_piano_3_playback.bmp" -IDB_PIANO_PLAYBACK_4 BITMAP "res\\te_piano_4_playback.bmp" -IDB_PIANO_PLAYBACK_5 BITMAP "res\\te_piano_5_playback.bmp" -IDB_PIANO_PLAYBACK_6 BITMAP "res\\te_piano_6_playback.bmp" -IDB_PIANO_PLAYBACK_7 BITMAP "res\\te_piano_7_playback.bmp" -IDB_PIANO_PLAYBACK_8 BITMAP "res\\te_piano_8_playback.bmp" -IDB_PIANO_PLAYBACK_9 BITMAP "res\\te_piano_9_playback.bmp" -IDB_PIANO_PLAYBACK_10 BITMAP "res\\te_piano_10_playback.bmp" -IDB_PIANO_PLAYBACK_11 BITMAP "res\\te_piano_11_playback.bmp" -IDB_PIANO_PLAYBACK_12 BITMAP "res\\te_piano_12_playback.bmp" -IDB_PIANO_PLAYBACK_13 BITMAP "res\\te_piano_13_playback.bmp" -IDB_PIANO_PLAYBACK_14 BITMAP "res\\te_piano_14_playback.bmp" -IDB_PIANO_PLAYBACK_15 BITMAP "res\\te_piano_15_playback.bmp" -IDB_PIANO_PLAYBACK_16 BITMAP "res\\te_piano_16_playback.bmp" -IDB_PIANO_PLAYBACK_17 BITMAP "res\\te_piano_17_playback.bmp" -IDB_PIANO_PLAYBACK_18 BITMAP "res\\te_piano_18_playback.bmp" -IDB_PIANO_PLAYBACK_19 BITMAP "res\\te_piano_19_playback.bmp" -IDB_PIANO_LOSTPOS_0 BITMAP "res\\te_piano_0_lostpos.bmp" -IDB_PIANO_LOSTPOS_1 BITMAP "res\\te_piano_1_lostpos.bmp" -IDB_PIANO_LOSTPOS_2 BITMAP "res\\te_piano_2_lostpos.bmp" -IDB_PIANO_LOSTPOS_3 BITMAP "res\\te_piano_3_lostpos.bmp" -IDB_PIANO_LOSTPOS_4 BITMAP "res\\te_piano_4_lostpos.bmp" -IDB_PIANO_LOSTPOS_5 BITMAP "res\\te_piano_5_lostpos.bmp" -IDB_PIANO_LOSTPOS_6 BITMAP "res\\te_piano_6_lostpos.bmp" -IDB_PIANO_LOSTPOS_7 BITMAP "res\\te_piano_7_lostpos.bmp" -IDB_PIANO_LOSTPOS_8 BITMAP "res\\te_piano_8_lostpos.bmp" -IDB_PIANO_LOSTPOS_9 BITMAP "res\\te_piano_9_lostpos.bmp" -IDB_PIANO_LOSTPOS_10 BITMAP "res\\te_piano_10_lostpos.bmp" -IDB_PIANO_LOSTPOS_11 BITMAP "res\\te_piano_11_lostpos.bmp" -IDB_PIANO_LOSTPOS_12 BITMAP "res\\te_piano_12_lostpos.bmp" -IDB_PIANO_LOSTPOS_13 BITMAP "res\\te_piano_13_lostpos.bmp" -IDB_PIANO_LOSTPOS_14 BITMAP "res\\te_piano_14_lostpos.bmp" -IDB_PIANO_LOSTPOS_15 BITMAP "res\\te_piano_15_lostpos.bmp" -IDB_PIANO_LOSTPOS_16 BITMAP "res\\te_piano_16_lostpos.bmp" -IDB_PIANO_LOSTPOS_17 BITMAP "res\\te_piano_17_lostpos.bmp" -IDB_PIANO_LOSTPOS_18 BITMAP "res\\te_piano_18_lostpos.bmp" -IDB_PIANO_LOSTPOS_19 BITMAP "res\\te_piano_19_lostpos.bmp" -IDB_BITMAP_SELECTED0 BITMAP "res\\te_0_selected.bmp" -IDB_BITMAP_SELECTED1 BITMAP "res\\te_1_selected.bmp" -IDB_BITMAP_SELECTED2 BITMAP "res\\te_2_selected.bmp" -IDB_BITMAP_SELECTED3 BITMAP "res\\te_3_selected.bmp" -IDB_BITMAP_SELECTED4 BITMAP "res\\te_4_selected.bmp" -IDB_BITMAP_SELECTED5 BITMAP "res\\te_5_selected.bmp" -IDB_BITMAP_SELECTED6 BITMAP "res\\te_6_selected.bmp" -IDB_BITMAP_SELECTED7 BITMAP "res\\te_7_selected.bmp" -IDB_BITMAP_SELECTED8 BITMAP "res\\te_8_selected.bmp" -IDB_BITMAP_SELECTED9 BITMAP "res\\te_9_selected.bmp" -IDB_BITMAP_SELECTED10 BITMAP "res\\te_10_selected.bmp" -IDB_BITMAP_SELECTED11 BITMAP "res\\te_11_selected.bmp" -IDB_BITMAP_SELECTED12 BITMAP "res\\te_12_selected.bmp" -IDB_BITMAP_SELECTED13 BITMAP "res\\te_13_selected.bmp" -IDB_BITMAP_SELECTED14 BITMAP "res\\te_14_selected.bmp" -IDB_BITMAP_SELECTED15 BITMAP "res\\te_15_selected.bmp" -IDB_BITMAP_SELECTED16 BITMAP "res\\te_16_selected.bmp" -IDB_BITMAP_SELECTED17 BITMAP "res\\te_17_selected.bmp" -IDB_BITMAP_SELECTED18 BITMAP "res\\te_18_selected.bmp" -IDB_BITMAP_SELECTED19 BITMAP "res\\te_19_selected.bmp" -IDB_BRANCH_SPRITESHEET BITMAP "res\\branch_spritesheet.bmp" -#endif // Neutral resources -///////////////////////////////////////////////////////////////////////////// - - -///////////////////////////////////////////////////////////////////////////// -// English (U.S) 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 // English (U.S) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - +// Microsoft Visual C++ generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "afxres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English(U.S.) 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 + + +///////////////////////////////////////////////////////////////////////////// +// +// 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", MENU_AUTOFIRE_PATTERN_4 + MENUITEM "1 on, 5 off", MENU_AUTOFIRE_PATTERN_5 + MENUITEM "2 on, 1 off", MENU_AUTOFIRE_PATTERN_6 + MENUITEM "2 on, 2 off", MENU_AUTOFIRE_PATTERN_7 + MENUITEM "2 on, 3 off", MENU_AUTOFIRE_PATTERN_8 + MENUITEM "2 on, 4 off", MENU_AUTOFIRE_PATTERN_9 + MENUITEM "3 on, 1 off", MENU_AUTOFIRE_PATTERN_10 + MENUITEM "3 on, 2 off", MENU_AUTOFIRE_PATTERN_11 + MENUITEM "3 on, 3 off", MENU_AUTOFIRE_PATTERN_12 + MENUITEM "4 on, 1 off", MENU_AUTOFIRE_PATTERN_13 + MENUITEM "4 on, 2 off", MENU_AUTOFIRE_PATTERN_14 + MENUITEM "5 on, 1 off", MENU_AUTOFIRE_PATTERN_15 + END + POPUP "Autofire &Offset" + BEGIN + MENUITEM "0 frames", MENU_AUTOFIRE_OFFSET_1 + MENUITEM "1 frame", MENU_AUTOFIRE_OFFSET_2 + MENUITEM "2 frames", MENU_AUTOFIRE_OFFSET_3 + MENUITEM "3 frames", MENU_AUTOFIRE_OFFSET_4 + MENUITEM "4 frames", MENU_AUTOFIRE_OFFSET_5 + MENUITEM "5 frames", MENU_AUTOFIRE_OFFSET_6 + END + MENUITEM "&Alternate A and B", MENU_ALTERNATE_AB + MENUITEM SEPARATOR + MENUITEM "Te&xt Hooker...", ID_TOOLS_TEXTHOOKER + END + POPUP "&Debug" + BEGIN + MENUITEM "&Debugger...", MENU_DEBUGGER + MENUITEM "&PPU Viewer...", MENU_PPUVIEWER + MENUITEM "&Name Table Viewer...", MENU_NAMETABLEVIEWER + MENUITEM "&Hex Editor...", MENU_HEXEDITOR + MENUITEM "&Trace Logger...", MENU_TRACELOGGER + MENUITEM "&Code/Data Logger...", MENU_CDLOGGER + MENUITEM "&Game Genie Decoder/Encoder...", MENU_GAMEGENIEDECODER + MENUITEM "&iNES Header Editor...", MENU_INESHEADEREDITOR + END + POPUP "&Help" + BEGIN + MENUITEM "&Help...", MENU_HELP + MENUITEM "&Message Log", MENU_MSGLOG + MENUITEM SEPARATOR + MENUITEM "&About", MENU_ABOUT + END +END + +TASEDITORMENU MENUEX +BEGIN + POPUP "File", 65535,MFT_STRING,MFS_ENABLED + BEGIN + MENUITEM "New", ID_FILE_NEW,MFT_STRING,MFS_ENABLED + MENUITEM "Open", ID_FILE_OPENPROJECT,MFT_STRING,MFS_ENABLED + MENUITEM "Save\tCtrl+S", ID_FILE_SAVEPROJECT,MFT_STRING,MFS_ENABLED + MENUITEM "Save As", ID_FILE_SAVEPROJECTAS,MFT_STRING,MFS_ENABLED + MENUITEM "Save Compact", ID_FILE_SAVECOMPACT,MFT_STRING,MFS_ENABLED + MENUITEM "Recent", ID_FILE_RECENT,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Import Input", ID_FILE_IMPORT,MFT_STRING,MFS_ENABLED + MENUITEM "Export to FM2", ID_FILE_EXPORTFM2,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Close\tAlt+F4", ID_FILE_CLOSE,MFT_STRING,MFS_ENABLED + END + POPUP "Edit", 65535,MFT_STRING,MFS_ENABLED + BEGIN + MENUITEM "Undo\tCtrl+Z", ID_EDIT_UNDO,MFT_STRING,MFS_ENABLED + MENUITEM "Redo\tCtrl+Y", ID_EDIT_REDO,MFT_STRING,MFS_ENABLED + MENUITEM "Selection Undo\tCtrl+Q", ID_EDIT_SELECTIONUNDO,MFT_STRING,MFS_ENABLED + MENUITEM "Selection Redo\tCtrl+W", ID_EDIT_SELECTIONREDO,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Deselect", ID_EDIT_DESELECT,MFT_STRING,MFS_ENABLED + MENUITEM "Select All", ID_EDIT_SELECTALL,MFT_STRING,MFS_ENABLED + MENUITEM "Select between Markers\tCtrl+A", ID_EDIT_SELECTMIDMARKERS,MFT_STRING,MFS_ENABLED + MENUITEM "Reselect Clipboard\tCtrl+B", ID_EDIT_RESELECTCLIPBOARD,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Copy\tCtrl+C", ID_EDIT_COPY,MFT_STRING,MFS_ENABLED + MENUITEM "Paste\tCtrl+V", ID_EDIT_PASTE,MFT_STRING,MFS_ENABLED + MENUITEM "PasteInsert\tCtrl+Shift+V", ID_EDIT_PASTEINSERT,MFT_STRING,MFS_ENABLED + MENUITEM "Cut\tCtrl+X", ID_EDIT_CUT,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Clear\tDel", ID_EDIT_CLEAR,MFT_STRING,MFS_ENABLED + MENUITEM "Delete\tCtrl+Del", ID_EDIT_DELETE,MFT_STRING,MFS_ENABLED + MENUITEM "Clone\tCtrl+Ins", ID_EDIT_CLONEFRAMES,MFT_STRING,MFS_ENABLED + MENUITEM "Insert\tCtrl+Shift+Ins", ID_EDIT_INSERTFRAMES,MFT_STRING,MFS_ENABLED + MENUITEM "Insert # of Frames\tIns", ID_EDIT_INSERT,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Truncate movie", ID_EDIT_TRUNCATE,MFT_STRING,MFS_ENABLED + END + POPUP "View", 65535,MFT_STRING,MFS_ENABLED + BEGIN + MENUITEM "Find Note window\tCtrl+F", ID_VIEW_FINDNOTE,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Display Branch Screenshots", ID_VIEW_SHOWBRANCHSCREENSHOTS,MFT_STRING,MFS_ENABLED + MENUITEM "Display Branch Descriptions", ID_VIEW_SHOWBRANCHTOOLTIPS,MFT_STRING,MFS_ENABLED + MENUITEM "Enable Hot Changes", ID_VIEW_ENABLEHOTCHANGES,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Follow Undo context", ID_VIEW_JUMPWHENMAKINGUNDO,MFT_STRING,MFS_ENABLED + MENUITEM "Follow Marker Note context", ID_VIEW_FOLLOWMARKERNOTECONTEXT,MFT_STRING,MFS_ENABLED + END + POPUP "Config", 65535,MFT_STRING,MFS_ENABLED + BEGIN + MENUITEM "Project file saving options", ID_CONFIG_SAVING_OPTIONS,MFT_STRING,MFS_ENABLED + MENUITEM "Set max Undo levels", ID_CONFIG_SETMAXUNDOLEVELS,MFT_STRING,MFS_ENABLED + MENUITEM "Set Greenzone capacity", ID_CONFIG_SETGREENZONECAPACITY,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Enable Greenzoning", ID_CONFIG_ENABLEGREENZONING,MFT_STRING,MFS_ENABLED + MENUITEM "Autofire Pattern skips Lag", ID_CONFIG_PATTERNSKIPSLAG,MFT_STRING,MFS_ENABLED + MENUITEM "Auto-adjust Input according to Lag", ID_CONFIG_ADJUSTLAG,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Draw Input by dragging", ID_CONFIG_DRAWINPUTBYDRAGGING,MFT_STRING,MFS_ENABLED + MENUITEM "Combine consecutive Recordings/Draws", ID_CONFIG_COMBINECONSECUTIVERECORDINGS,MFT_STRING,MFS_ENABLED + MENUITEM "Use 1P keys for all single Recordings", ID_CONFIG_USE1PFORRECORDING,MFT_STRING,MFS_ENABLED + MENUITEM "Use Input keys for Column Set", ID_CONFIG_USEINPUTKEYSFORCOLUMNSET,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Bind Markers to Input", ID_CONFIG_BINDMARKERSTOINPUT,MFT_STRING,MFS_ENABLED + MENUITEM "Empty new Marker Notes", ID_CONFIG_EMPTYNEWMARKERNOTES,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Old control scheme for Branching", ID_CONFIG_OLDBRANCHINGCONTROLS,MFT_STRING,MFS_ENABLED + MENUITEM "Branches restore entire Movie", ID_CONFIG_BRANCHESRESTOREFULLMOVIE,MFT_STRING,MFS_ENABLED + MENUITEM "HUD in Branch screenshots", ID_CONFIG_HUDINBRANCHSCREENSHOTS,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Autopause at the end of Movie", ID_CONFIG_AUTOPAUSEATTHEENDOFMOVIE,MFT_STRING,MFS_ENABLED + END + POPUP "Help", 65535,MFT_STRING,MFS_ENABLED + BEGIN + MENUITEM "Open TAS Editor Manual", ID_HELP_OPEN_MANUAL,MFT_STRING,MFS_ENABLED + MENUITEM "Enable Tooltips", ID_HELP_TOOLTIPS,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "About", ID_HELP_ABOUT,MFT_STRING,MFS_ENABLED + END + POPUP "Pattern", 65535,MFT_STRING | MFT_RIGHTJUSTIFY,MFS_ENABLED + BEGIN + MENUITEM "Dummy", ID_PATTERN_TEST,MFT_STRING,MFS_ENABLED + END +END + +MEMVIEWMENU MENU +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&Save Rom", MENU_MV_FILE_SAVE + MENUITEM "S&ave Rom As...", MENU_MV_FILE_SAVE_AS + MENUITEM "&Load *.TBL File", MENU_MV_FILE_LOAD_TBL + MENUITEM "&Unload *.TBL file", MENU_MV_FILE_UNLOAD_TBL + POPUP "&Dump to file" + BEGIN + MENUITEM "&Ram", MENU_MV_FILE_DUMP_RAM + MENUITEM "&PPU Memory", MENU_MV_FILE_DUMP_PPU + MENUITEM "&OAM Memory", MENU_MV_FILE_DUMP_OAM + MENUITEM "6502 64K", MENU_MV_FILE_DUMP_64K + END + POPUP "Load from &file" + BEGIN + MENUITEM "&Ram", MENU_MV_FILE_LOAD_RAM + MENUITEM "&PPU Memory", MENU_MV_FILE_LOAD_PPU + MENUITEM "&OAM Memory", MENU_MV_FILE_LOAD_OAM + END + MENUITEM "&Goto Address\tCtrl+A", MENU_MV_FILE_GOTO_ADDRESS + MENUITEM SEPARATOR + MENUITEM "&Close\tAlt+F4", ID_MEMWVIEW_FILE_CLOSE + END + POPUP "&Edit" + BEGIN + MENUITEM "&Undo\tCtrl+Z", MENU_MV_EDIT_UNDO + MENUITEM SEPARATOR + MENUITEM "&Copy", MENU_MV_EDIT_COPY + MENUITEM "&Paste", MENU_MV_EDIT_PASTE + MENUITEM SEPARATOR + MENUITEM "&Find...", MENU_MV_EDIT_FIND + END + POPUP "&View" + BEGIN + MENUITEM "&NES Memory", MENU_MV_VIEW_RAM + MENUITEM "&PPU Memory", MENU_MV_VIEW_PPU + MENUITEM "&OAM Memory", MENU_MV_VIEW_OAM + MENUITEM "&ROM File", MENU_MV_VIEW_ROM + END + POPUP "Highlighting" + BEGIN + MENUITEM "Highlight Activity", ID_HIGHLIGHTING_HIGHLIGHT_ACTIVITY + MENUITEM "Set fading period...", ID_HIGHLIGHTING_SETFADINGPERIOD + MENUITEM "Fade when paused", ID_HIGHLIGHTING_FADEWHENPAUSED + END + POPUP "&Bookmarks" + BEGIN + MENUITEM "&Remove all bookmarks", MENU_MV_BOOKMARKS_RM_ALL + END + POPUP "Help" + BEGIN + MENUITEM "&Help...", MENU_MV_HELP + END +END + +MEMWATCHMENU MENU +BEGIN + POPUP "&File " + BEGIN + MENUITEM "&New...\tCtrl+N", MEMW_FILE_NEW + MENUITEM "&Open...\tCtrl+O", MEMW_FILE_OPEN + MENUITEM "&Save\tCtrl+S", MEMW_FILE_SAVE + MENUITEM "S&ave As..\tCtrl+Shift+S", MEMW_FILE_SAVEAS + MENUITEM "&Recent", ID_FILE_RECENT + MENUITEM SEPARATOR + MENUITEM "&Close\tAlt+F4", MEMW_FILE_CLOSE + END + POPUP "&Options" + BEGIN + MENUITEM "&Load on Startup", MEMW_OPTIONS_LOADSTART + MENUITEM "Load Last &File on Startup", MEMW_OPTIONS_LOADLASTFILE + MENUITEM SEPARATOR + MENUITEM "&Collapse to 1 column", MEMW_OPTIONS_EXPANDCOLLAPSE + MENUITEM SEPARATOR + MENUITEM "Bind to Main Window", ID_OPTIONS_BINDTOMAINWINDOW + END + POPUP "&Help" + BEGIN + MENUITEM "&MemWatch Commands", MEMW_HELP_WCOMMANDS + END +END + +TASEDITORCONTEXTMENUS MENU +BEGIN + POPUP "Selected" + BEGIN + MENUITEM "Set Markers\tDbl-Clk", ID_SELECTED_SETMARKERS + MENUITEM "Remove Markers", ID_SELECTED_REMOVEMARKERS + MENUITEM SEPARATOR + MENUITEM "Deselect", ID_SELECTED_DESELECT + MENUITEM "Select between Markers\tCtrl+A", ID_SELECTED_SELECTMIDMARKERS + MENUITEM SEPARATOR + MENUITEM "Ungreenzone", ID_SELECTED_UNGREENZONE + MENUITEM SEPARATOR + MENUITEM "Clear\tDel", ID_CONTEXT_SELECTED_CLEARFRAMES + MENUITEM "Delete\tCtrl+Del", ID_CONTEXT_SELECTED_DELETEFRAMES + MENUITEM "Clone\tCtrl+Ins", ID_SELECTED_CLONE + MENUITEM "Insert\tCtrl+Shift+Ins", ID_CONTEXT_SELECTED_INSERTFRAMES + MENUITEM "Insert # of Frames\tIns", ID_CONTEXT_SELECTED_INSERTFRAMES2 + MENUITEM SEPARATOR + MENUITEM "Truncate movie", ID_CONTEXT_SELECTED_TRUNCATE + END +END + +FCEUCONTEXTMENUS MENU +BEGIN + POPUP "NoGame" + BEGIN + MENUITEM "Open ROM", FCEU_CONTEXT_OPENROM + MENUITEM "Last ROM used", FCEUX_CONTEXT_RECENTROM1 + MENUITEM SEPARATOR + MENUITEM "Help...", FCEU_CONTEXT_FCEUHELP + MENUITEM SEPARATOR + MENUITEM "Use Config > Gui to get zapper right click", FCEUX_CONTEXT_GUICONFIG + END + POPUP "Game+NoMovie" + BEGIN + MENUITEM "Play Movie...", FCEUX_CONTEXT_REPLAYMOVIE + MENUITEM "Record Movie...", FCEUX_CONTEXT_RECORDMOVIE + MENUITEM "Load Last Movie", FCEUX_CONTEXT_LOADLASTMOVIE + MENUITEM SEPARATOR + MENUITEM "Undo savestate", FCEUX_CONTEXT_UNDOSAVESTATE + MENUITEM "Undo loadstate", FCEUX_CONTEXT_UNDOLOADSTATE + MENUITEM "Rewind to last auto-save", FCEUX_CONTEXT_REWINDTOLASTAUTO + MENUITEM "Screenshot", FCEUX_CONTEXT_SCREENSHOT + MENUITEM SEPARATOR + MENUITEM "Close ROM", FCEU_CONTEXT_CLOSEROM + MENUITEM SEPARATOR + MENUITEM "Use Config > Gui to get zapper right click", FCEUX_CONTEXT_GUICONFIG + END + POPUP "Game+Movie+Playing+readonly" + BEGIN + MENUITEM "Toggle to read+write", FCEUX_CONTEXT_READONLYTOGGLE + MENUITEM "Play Movie from Beginning", FCEU_CONTEXT_PLAYMOVIEFROMBEGINNING + MENUITEM "Stop Movie Replay", FCEU_CONTEXT_STOPMOVIE + MENUITEM "View comments and subtitles", FCEUX_CONTEXT_VIEWCOMMENTSSUBTITLES + MENUITEM SEPARATOR + MENUITEM "Toggle to Recording", FCEUX_CONTEXT_TOGGLE_RECORDING + POPUP "Modify Movie" + BEGIN + MENUITEM "Insert 1 Frame", FCEUX_CONTEXT_INSERT_1_FRAME + MENUITEM "Delete 1 Frame", FCEUX_CONTEXT_DELETE_1_FRAME + MENUITEM SEPARATOR + MENUITEM "Truncate at Current Frame", FCEUX_CONTEXT_TRUNCATE_MOVIE + END + POPUP "Record Mode" + BEGIN + MENUITEM "&Truncate", FCEUX_CONTEXT_RECORDMODE_TRUNCATE + MENUITEM "&Overwrite[W]", FCEUX_CONTEXT_RECORDMODE_OVERWRITE + MENUITEM "&Insert[I]", FCEUX_CONTEXT_RECORDMODE_INSERT + END + MENUITEM SEPARATOR + MENUITEM "Undo savestate", FCEUX_CONTEXT_UNDOSAVESTATE + MENUITEM "Rewind to last auto-save", FCEUX_CONTEXT_REWINDTOLASTAUTO + MENUITEM SEPARATOR + MENUITEM "Help....", FCEU_CONTEXT_MOVIEHELP + MENUITEM SEPARATOR + MENUITEM "Use Config > Gui to get zapper right click", FCEUX_CONTEXT_GUICONFIG + END + POPUP "Game+Movie+Playing+readwrite" + BEGIN + MENUITEM "Toggle to Read-only", FCEUX_CONTEXT_READONLYTOGGLE + MENUITEM "Play Movie From Beginning", FCEU_CONTEXT_PLAYMOVIEFROMBEGINNING + MENUITEM "Stop Movie Replay", FCEU_CONTEXT_STOPMOVIE + MENUITEM "View comments and subtitles", FCEUX_CONTEXT_VIEWCOMMENTSSUBTITLES + MENUITEM "Make backup", FCEUX_CONTEXT_MAKEBACKUP + MENUITEM "Save Movie As...", FCEUX_CONTEXT_SAVEMOVIEAS + MENUITEM SEPARATOR + MENUITEM "Toggle to Recording", FCEUX_CONTEXT_TOGGLE_RECORDING + POPUP "Modify Movie" + BEGIN + MENUITEM "Insert 1 Frame", FCEUX_CONTEXT_INSERT_1_FRAME + MENUITEM "Delete 1 Frame", FCEUX_CONTEXT_DELETE_1_FRAME + MENUITEM SEPARATOR + MENUITEM "Truncate at Current Frame", FCEUX_CONTEXT_TRUNCATE_MOVIE + END + POPUP "Record Mode" + BEGIN + MENUITEM "&Truncate", FCEUX_CONTEXT_RECORDMODE_TRUNCATE + MENUITEM "&Overwrite[W]", FCEUX_CONTEXT_RECORDMODE_OVERWRITE + MENUITEM "&Insert[I]", FCEUX_CONTEXT_RECORDMODE_INSERT + END + MENUITEM SEPARATOR + MENUITEM "Undo savestate", FCEUX_CONTEXT_UNDOSAVESTATE + MENUITEM "Undo loadstate", FCEUX_CONTEXT_UNDOLOADSTATE + MENUITEM "Rewind to last auto-save", FCEUX_CONTEXT_REWINDTOLASTAUTO + MENUITEM SEPARATOR + MENUITEM "&Mode: Full state-movie loads", ID_CONTEXT_FULLSAVESTATES + MENUITEM SEPARATOR + MENUITEM "Help...", FCEU_CONTEXT_MOVIEHELP + MENUITEM SEPARATOR + MENUITEM "Use Config > Gui to get zapper right click", FCEUX_CONTEXT_GUICONFIG + END + POPUP "Game+Movie+Recording+readonly" + BEGIN + MENUITEM "Toggle to read+write", FCEUX_CONTEXT_READONLYTOGGLE + MENUITEM "Play Movie from Beginning", FCEU_CONTEXT_PLAYMOVIEFROMBEGINNING + MENUITEM "Stop Movie Recording", FCEU_CONTEXT_STOPMOVIE + MENUITEM "View comments and subtitles", FCEUX_CONTEXT_VIEWCOMMENTSSUBTITLES + MENUITEM SEPARATOR + MENUITEM "Toggle to Playing", FCEUX_CONTEXT_TOGGLE_RECORDING + POPUP "Modify Movie" + BEGIN + MENUITEM "Insert 1 Frame", FCEUX_CONTEXT_INSERT_1_FRAME + MENUITEM "Delete 1 Frame", FCEUX_CONTEXT_DELETE_1_FRAME + MENUITEM SEPARATOR + MENUITEM "Truncate at Current Frame", FCEUX_CONTEXT_TRUNCATE_MOVIE + END + POPUP "Record Mode" + BEGIN + MENUITEM "&Truncate", FCEUX_CONTEXT_RECORDMODE_TRUNCATE + MENUITEM "&Overwrite[W]", FCEUX_CONTEXT_RECORDMODE_OVERWRITE + MENUITEM "&Insert[I]", FCEUX_CONTEXT_RECORDMODE_INSERT + END + MENUITEM SEPARATOR + MENUITEM "Undo savestate", FCEUX_CONTEXT_UNDOSAVESTATE + MENUITEM "Rewind to last auto-save", FCEUX_CONTEXT_REWINDTOLASTAUTO + MENUITEM SEPARATOR + MENUITEM "Help....", FCEU_CONTEXT_MOVIEHELP + MENUITEM SEPARATOR + MENUITEM "Use Config > Gui to get zapper right click", FCEUX_CONTEXT_GUICONFIG + END + POPUP "Game+Movie+Recording+readwrite" + BEGIN + MENUITEM "Toggle to Read-only", FCEUX_CONTEXT_READONLYTOGGLE + MENUITEM "Play Movie From Beginning", FCEU_CONTEXT_PLAYMOVIEFROMBEGINNING + MENUITEM "Stop Movie Recording", FCEU_CONTEXT_STOPMOVIE + MENUITEM "View comments and subtitles", FCEUX_CONTEXT_VIEWCOMMENTSSUBTITLES + MENUITEM "Make backup", FCEUX_CONTEXT_MAKEBACKUP + MENUITEM "Save Movie As...", FCEUX_CONTEXT_SAVEMOVIEAS + MENUITEM SEPARATOR + MENUITEM "Toggle to Playing", FCEUX_CONTEXT_TOGGLE_RECORDING + POPUP "Modify Movie" + BEGIN + MENUITEM "Insert 1 Frame", FCEUX_CONTEXT_INSERT_1_FRAME + MENUITEM "Delete 1 Frame", FCEUX_CONTEXT_DELETE_1_FRAME + MENUITEM SEPARATOR + MENUITEM "Truncate at Current Frame", FCEUX_CONTEXT_TRUNCATE_MOVIE + END + POPUP "Record Mode" + BEGIN + MENUITEM "&Truncate", FCEUX_CONTEXT_RECORDMODE_TRUNCATE + MENUITEM "&Overwrite[W]", FCEUX_CONTEXT_RECORDMODE_OVERWRITE + MENUITEM "&Insert[I]", FCEUX_CONTEXT_RECORDMODE_INSERT + END + MENUITEM SEPARATOR + MENUITEM "Undo savestate", FCEUX_CONTEXT_UNDOSAVESTATE + MENUITEM "Undo loadstate", FCEUX_CONTEXT_UNDOLOADSTATE + MENUITEM "Rewind to last auto-save", FCEUX_CONTEXT_REWINDTOLASTAUTO + MENUITEM SEPARATOR + MENUITEM "&Mode: Full state-movie loads", ID_CONTEXT_FULLSAVESTATES + MENUITEM SEPARATOR + MENUITEM "Help...", FCEU_CONTEXT_MOVIEHELP + MENUITEM SEPARATOR + MENUITEM "Use Config > Gui to get zapper right click", FCEUX_CONTEXT_GUICONFIG + END +END + +RAMWATCH_MENU MENU +BEGIN + POPUP "File" + BEGIN + MENUITEM "&New list\tCtrl N", RAMMENU_FILE_NEW + MENUITEM "&Open...\tCtrl O", RAMMENU_FILE_OPEN + MENUITEM "&Save\tCtrl S", RAMMENU_FILE_SAVE + MENUITEM "Sa&ve As...\tCtrl Shift S", RAMMENU_FILE_SAVEAS + MENUITEM "&Append file...", RAMMENU_FILE_APPEND + MENUITEM "Recent", RAMMENU_FILE_RECENT + MENUITEM SEPARATOR + MENUITEM "Auto-&load", RAMMENU_FILE_AUTOLOAD + MENUITEM "Save Window Position", RAMMENU_FILE_SAVEWINDOW + MENUITEM SEPARATOR + MENUITEM "&Close\tAlt F4", IDCANCEL + END + POPUP "Watches" + BEGIN + MENUITEM "&New Watch\tN", IDC_C_WATCH + MENUITEM "&Edit Watch\tE", IDC_C_WATCH_EDIT + MENUITEM "&Remove Watch\tR", IDC_C_WATCH_REMOVE + MENUITEM "Duplicate Watch\tA", IDC_C_WATCH_DUPLICATE + MENUITEM "Add &Separator\tS", IDC_C_WATCH_SEPARATE + MENUITEM SEPARATOR + MENUITEM "Move Up\tU", IDC_C_WATCH_UP + MENUITEM "Move Down\tD", IDC_C_WATCH_DOWN + END +END + +CHEATCONTEXTMENUS MENU +BEGIN + POPUP "CheatListPopup" + BEGIN + MENUITEM "Toggle selected Cheats", CHEAT_CONTEXT_LIST_TOGGLECHEAT + MENUITEM "Poke Cheat Value", CHEAT_CONTEXT_LIST_POKECHEATVALUE + MENUITEM "Goto in Hex Editor", CHEAT_CONTEXT_LIST_GOTOINHEXEDITOR + MENUITEM "Delete selected Cheats", CHEAT_CONTEXT_LIST_DELETESELECTEDCHEATS + END + POPUP "CheatPossiPopup" + BEGIN + MENUITEM "Add to Memory Watch", CHEAT_CONTEXT_POSSI_ADDTOMEMORYWATCH + MENUITEM "Add cheat", CHEAT_CONTEXT_POSSI_ADDCHEAT + MENUITEM "Add to RAM Watch", CHEAT_CONTEXT_POSSI_ADDTORAMWATCH + MENUITEM "Go to in Hex Editor", CHEAT_CONTEXT_POSSI_GOTOINHEXEDITOR + END +END + +DEBUGCONTEXTMENUS MENU +BEGIN + POPUP "DebugListPopup" + BEGIN + MENUITEM "Toggle Breakpoint\tDbl-Clk", DEBUGGER_CONTEXT_TOGGLEBREAK + END +END + +LUAWINDOW_MENU MENU +BEGIN + POPUP "Console" + BEGIN + MENUITEM "&Font...", IDC_LUACONSOLE_CHOOSEFONT + MENUITEM "Clear", IDC_LUACONSOLE_CLEAR + END +END + +DISASMCONTEXTMENUS MENU +BEGIN + POPUP "DisasmPopup" + BEGIN + MENUITEM "Copy\tCtrl+C", DISASM_CONTEXT_COPY + MENUITEM "Select All\tCtrl+A", DISASM_CONTEXT_SELECTALL + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +DIRCONFIG DIALOGEX 63, 7, 305, 255 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Directories Configuration" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + DEFPUSHBUTTON "OK",CLOSE_BUTTON,175,230,56,14 + PUSHBUTTON "Cancel",BTN_CANCEL,239,230,56,14 + EDITTEXT 113,71,9,158,12,ES_AUTOHSCROLL + EDITTEXT EDIT_ROMS,71,27,158,12,ES_AUTOHSCROLL + EDITTEXT 101,71,45,158,12,ES_AUTOHSCROLL + EDITTEXT 102,71,63,158,12,ES_AUTOHSCROLL + EDITTEXT 103,71,81,158,12,ES_AUTOHSCROLL + EDITTEXT 104,71,99,158,12,ES_AUTOHSCROLL + EDITTEXT 105,71,117,158,12,ES_AUTOHSCROLL + EDITTEXT 106,71,135,158,12,ES_AUTOHSCROLL + EDITTEXT 107,71,153,158,12,ES_AUTOHSCROLL + EDITTEXT 110,71,171,158,12,ES_AUTOHSCROLL + EDITTEXT 111,71,189,158,12,ES_AUTOHSCROLL + EDITTEXT 112,71,207,158,12,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",213,239,8,56,14 + PUSHBUTTON "Browse...",BUTTON_ROMS,239,26,56,14 + PUSHBUTTON "Browse...",201,239,44,56,14 + PUSHBUTTON "Browse...",202,239,62,56,14 + PUSHBUTTON "Browse...",203,239,80,56,14 + PUSHBUTTON "Browse...",204,239,98,56,14 + PUSHBUTTON "Browse...",205,239,116,56,14 + PUSHBUTTON "Browse...",206,239,134,56,14 + PUSHBUTTON "Browse...",207,239,152,56,14 + PUSHBUTTON "Browse...",210,239,170,56,14 + PUSHBUTTON "Browse...",211,239,188,56,14 + PUSHBUTTON "Browse...",212,239,206,56,14 + LTEXT "Base Directory",IDC_STATIC,10,10,47,8 + LTEXT "Roms",IDC_STATIC,10,28,19,8 + LTEXT "Battery Saves",IDC_STATIC,10,46,45,8 + LTEXT "Save States",IDC_STATIC,10,64,41,9 + LTEXT "FDS Bios Rom",IDC_STATIC,10,82,47,8 + LTEXT "Screenshots",IDC_STATIC,10,100,40,8 + LTEXT "Cheats",IDC_STATIC,10,118,23,8 + LTEXT "Movies",IDC_STATIC,10,136,24,8 + LTEXT "Memory Watch",IDC_STATIC,10,154,52,9 + LTEXT "Input Presets",IDC_STATIC,10,172,42,8 + LTEXT "Lua Scripts",IDC_STATIC,10,190,36,8 + LTEXT "Avi Output",IDC_STATIC,10,208,34,8 +END + +DWBDIALOG DIALOG 33, 99, 250, 56 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "DWB!" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Text",LBL_DWBDIALOG_TEXT,7,9,237,8 + PUSHBUTTON "Clear",BTN_CLEAR,64,32,50,14 + PUSHBUTTON "Close",BTN_CLOSE,188,33,50,14 +END + +FKBDIALOG DIALOG 13, 72, 402, 194 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Family Keyboard Configuration" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "Close",BTN_CLOSE,320,170,56,14 + LTEXT "Remember to push the ""Scroll Lock"" key during emulation to enable Family Keyboard input.",65503,18,6,370,12 + GROUPBOX "",65502,11,22,380,133,WS_GROUP + PUSHBUTTON "F1",300,22,43,32,12 + PUSHBUTTON "1",308,30,59,16,12 + PUSHBUTTON "F2",301,60,43,32,12 + PUSHBUTTON "F3",302,98,43,32,12 + PUSHBUTTON "F4",303,136,43,32,12 + PUSHBUTTON "F5",304,174,43,32,12 + PUSHBUTTON "F6",305,212,43,32,12 + PUSHBUTTON "F7",306,250,43,32,12 + PUSHBUTTON "F8",307,288,43,32,12 + PUSHBUTTON "2",309,49,59,16,12 + PUSHBUTTON "3",310,68,59,16,12 + PUSHBUTTON "4",311,87,59,16,12 + PUSHBUTTON "5",312,106,59,16,12 + PUSHBUTTON "6",313,125,59,16,12 + PUSHBUTTON "7",314,144,59,16,12 + PUSHBUTTON "8",315,163,59,16,12 + PUSHBUTTON "9",316,182,59,16,12 + PUSHBUTTON "0",317,201,59,16,12 + PUSHBUTTON "-",318,220,59,16,12 + PUSHBUTTON "^",319,239,59,16,12 + PUSHBUTTON "\\",320,258,59,16,12 + PUSHBUTTON "STP",321,277,59,16,12 + PUSHBUTTON "ESC",322,22,75,16,12 + PUSHBUTTON "Q",323,41,75,16,12 + PUSHBUTTON "W",324,60,75,16,12 + PUSHBUTTON "E",325,79,75,16,12 + PUSHBUTTON "R",326,98,75,16,12 + PUSHBUTTON "T",327,117,75,16,12 + PUSHBUTTON "Y",328,136,75,16,12 + PUSHBUTTON "U",329,155,75,16,12 + PUSHBUTTON "I",330,174,75,16,12 + PUSHBUTTON "O",331,193,75,16,12 + PUSHBUTTON "P",332,212,75,16,12 + PUSHBUTTON "@",333,231,75,16,12 + PUSHBUTTON "[",334,250,75,16,12 + PUSHBUTTON "RETURN",335,272,75,32,12 + PUSHBUTTON "CTR",336,26,91,16,12 + PUSHBUTTON "A",337,45,91,16,12 + PUSHBUTTON "S",338,64,91,16,12 + PUSHBUTTON "D",339,83,91,16,12 + PUSHBUTTON "F",340,102,91,16,12 + PUSHBUTTON "G",341,121,91,16,12 + PUSHBUTTON "H",342,140,91,16,12 + PUSHBUTTON "J",343,159,91,16,12 + PUSHBUTTON "K",344,178,91,16,12 + PUSHBUTTON "L",345,197,91,16,12 + PUSHBUTTON ";",346,216,91,16,12 + PUSHBUTTON ":",347,235,91,16,12 + PUSHBUTTON "]",348,254,91,16,12 + PUSHBUTTON "KANA",349,273,91,16,12 + PUSHBUTTON "Z",351,55,107,16,12 + PUSHBUTTON "X",352,74,107,16,12 + PUSHBUTTON "C",353,93,107,16,12 + PUSHBUTTON "V",354,112,107,16,12 + PUSHBUTTON "B",355,131,107,16,12 + PUSHBUTTON "N",356,150,107,16,12 + PUSHBUTTON "M",357,169,107,16,12 + PUSHBUTTON ",",358,188,107,16,12 + PUSHBUTTON ".",359,207,107,16,12 + PUSHBUTTON "/",360,226,107,16,12 + PUSHBUTTON "",361,245,107,16,12 + PUSHBUTTON "SHIFT",350,19,107,32,12 + PUSHBUTTON "SHIFT",362,265,107,32,12 + PUSHBUTTON "GRPH",363,74,123,16,12 + PUSHBUTTON "SPACE",364,93,123,149,12 + PUSHBUTTON "CLR",365,316,67,16,12 + PUSHBUTTON "INS",366,335,67,16,12 + PUSHBUTTON "DEL",367,354,67,16,12 + PUSHBUTTON "UP",368,327,83,32,12 + PUSHBUTTON "LEFT",369,310,99,32,12 + PUSHBUTTON "RIGHT",370,346,99,32,12 + PUSHBUTTON "DOWN",371,327,115,32,12 +END + +GAMEPADDIALOG DIALOGEX 4, 109, 243, 220 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Gamepad Configuration" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + DEFPUSHBUTTON "Close",BTN_CLOSE,173,196,56,14 + GROUPBOX "",GRP_GAMEPAD1,4,8,232,82,WS_GROUP + PUSHBUTTON "Up",304,35,27,24,12 + PUSHBUTTON "Left",306,9,45,25,12 + PUSHBUTTON "Right",307,60,45,24,12 + PUSHBUTTON "Down",305,35,64,24,12 + PUSHBUTTON "Select",302,91,45,26,12 + PUSHBUTTON "Start",303,126,45,26,12 + PUSHBUTTON "B",301,169,45,16,12 + PUSHBUTTON "A",300,195,45,16,12 + PUSHBUTTON "Turbo B",309,154,29,32,12 + PUSHBUTTON "Turbo A",308,195,29,32,12 + GROUPBOX "",GRP_GAMEPAD2,4,101,232,82,WS_GROUP + PUSHBUTTON "Up",316,35,120,24,12 + PUSHBUTTON "Left",318,9,138,25,12 + PUSHBUTTON "Right",319,60,138,24,12 + PUSHBUTTON "Down",317,35,157,24,12 + PUSHBUTTON "Select",314,91,138,26,12 + PUSHBUTTON "Start",315,126,138,26,12 + PUSHBUTTON "B",313,169,138,16,12 + PUSHBUTTON "A",312,195,138,16,12 + PUSHBUTTON "Turbo B",321,154,122,32,12 + PUSHBUTTON "Turbo A",320,195,122,32,12 +END + +GUICONFIG DIALOGEX 16, 123, 184, 158 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "GUI Configuration" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + DEFPUSHBUTTON "Close",BTN_CLOSE,65,136,56,14 + CONTROL "Load ""File Open"" dialog when FCEUX starts.",CB_LOAD_FILE_OPEN, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,8,168,12 + CONTROL "Automatically hide menu on game load.",CB_AUTO_HIDE_MENU, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,23,168,12 + CONTROL "Ask confirmation on exit attempt.",CB_ASK_EXIT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,38,168,12 + CONTROL "Disable screen saver while game is loaded.",CB_DISABLE_SCREEN_SAVER, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,53,168,12 + CONTROL "Enable right-click context menu",CB_ENABLECONTEXTMENU, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,68,168,12 + CONTROL "Switch fullscreen by double-click",CB_FS_BY_DOUBLECLICK, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,84,168,12 + CONTROL "Partially disable Visual Themes (Requires restart)",CB_PARTIALVISUALTHEME, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,100,168,12 + CONTROL "Single Instance Mode",IDC_SINGLEINSTANCE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,117,167,10 +END + +INPUTCONFIG DIALOGEX 122, 105, 349, 199 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Input Configuration" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + GROUPBOX "Port 1:",102,20,31,152,50 + COMBOBOX COMBO_PAD1,27,57,71,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "Configure",BTN_PORT1,109,43,56,14 + GROUPBOX "Port 2:",103,176,31,152,50 + COMBOBOX COMBO_PAD2,183,57,71,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "Configure",BTN_PORT2,265,41,56,14 + GROUPBOX "NES-style Input Ports",108,10,8,328,83 + GROUPBOX "Famicom Expansion Port:",109,176,93,162,50 + COMBOBOX COMBO_FAM,183,122,84,60,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "Configure",BTN_FAM,275,105,56,14 + CONTROL "",65487,"Static",SS_BLACKFRAME,27,41,71,12 + CONTROL "",65486,"Static",SS_BLACKFRAME,183,41,71,12 + CONTROL "",65485,"Static",SS_BLACKFRAME,183,106,84,12 + CTEXT "",TXT_PAD1,30,42,65,10 + CTEXT "",TXT_PAD2,186,42,65,10 + CTEXT "",TXT_FAM,186,107,78,10 + PUSHBUTTON "Set",BTN_AUTO_HOLD,19,157,45,13 + LTEXT "not assigned",LBL_AUTO_HOLD,71,159,87,8 + PUSHBUTTON "Clear",BTN_CLEAR_AH,19,172,45,13 + LTEXT "not assigned",LBL_CLEAR_AH,71,174,87,8 + DEFPUSHBUTTON "Close",BTN_CLOSE,282,177,56,14 + GROUPBOX "Input Presets",113,10,93,162,50 + CONTROL "Allow Left+Right / Up+Down",BTN_ALLOW_LRUD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,183,157,107,10 + PUSHBUTTON "Set",BTN_PRESET_SET1,34,103,37,11 + PUSHBUTTON "Set",BTN_PRESET_SET2,34,115,37,11 + PUSHBUTTON "Set",BTN_PRESET_SET3,34,127,37,11 + PUSHBUTTON "Import",BTN_PRESET_IMPORT1,84,103,37,11 + PUSHBUTTON "Import",BTN_PRESET_IMPORT2,84,115,37,11 + PUSHBUTTON "Import",BTN_PRESET_IMPORT3,84,127,37,11 + PUSHBUTTON "Export",BTN_PRESET_EXPORT1,123,103,37,11 + PUSHBUTTON "Export",BTN_PRESET_EXPORT2,123,115,37,11 + PUSHBUTTON "Export",BTN_PRESET_EXPORT3,123,127,37,11 + GROUPBOX "Auto-Hold",118,10,146,162,44 + GROUPBOX "Emulation",119,176,146,162,25 + CTEXT "1",IDC_STATIC,18,105,8,8 + CTEXT "2",IDC_STATIC,18,116,8,8 + CTEXT "3",IDC_STATIC,18,128,8,8 + CONTROL "Attach four-score (implies four gamepads)",CHECK_ENABLE_FOURSCORE, + "Button",BS_AUTOCHECKBOX,18,18,142,12 + CONTROL "Replace Port 2 Start With Microphone",CHECK_ENABLE_MICROPHONE, + "Button",BS_AUTOCHECKBOX,174,18,142,12 +END + +MAHJONGDIALOG DIALOG 65510, 106, 340, 110 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "mahjong" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "Close",BTN_CLOSE,277,91,56,14 + GROUPBOX "",321,8,8,324,73,WS_GROUP + PUSHBUTTON "A",300,14,42,16,12 + PUSHBUTTON "B",301,36,42,16,12 + PUSHBUTTON "C",302,58,42,16,12 + PUSHBUTTON "D",303,80,42,16,12 + PUSHBUTTON "E",304,102,42,16,12 + PUSHBUTTON "F",305,124,42,16,12 + PUSHBUTTON "G",306,146,42,16,12 + PUSHBUTTON "H",307,168,42,16,12 + PUSHBUTTON "I",308,190,42,16,12 + PUSHBUTTON "J",309,212,42,16,12 + PUSHBUTTON "K",310,234,42,16,12 + PUSHBUTTON "L",311,256,42,16,12 + PUSHBUTTON "M",312,278,42,16,12 + PUSHBUTTON " ",313,302,40,20,15 + PUSHBUTTON "SEL",314,124,58,16,12 + PUSHBUTTON "ST",315,146,58,16,12 + PUSHBUTTON " ",316,168,58,16,12 + PUSHBUTTON " ",317,190,58,16,12 + PUSHBUTTON " ",318,212,58,16,12 + PUSHBUTTON " ",319,234,58,16,12 + PUSHBUTTON " ",320,256,58,16,12 +END + +MAPINPUT DIALOGEX 0, 0, 318, 294 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Hotkeys" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + DEFPUSHBUTTON "OK",IDOK,261,274,50,14 + PUSHBUTTON "Cancel",BTN_CANCEL,205,274,50,14 + CONTROL "List2",LV_MAPPING,"SysListView32",LVS_REPORT | WS_BORDER | WS_TABSTOP,7,7,304,243 + PUSHBUTTON "Restore Defaults",BTN_RESTORE_DEFAULTS,7,274,75,14 + COMBOBOX COMBO_FILTER,32,255,279,193,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + RTEXT "Filter:",65484,6,255,21,12,SS_CENTERIMAGE | NOT WS_GROUP +END + +MESSAGELOG DIALOGEX 33, 38, 197, 229 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Message Log" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + EDITTEXT LBL_LOG_TEXT,1,1,194,208,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL + PUSHBUTTON "Clear",CLEAR_LOG,94,211,47,14 + PUSHBUTTON "Close",CLOSE_LOG,146,211,47,14 +END + +NETMOO DIALOGEX 44, 59, 365, 209 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Network Play" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + EDITTEXT IDC_NETMOO_CMD_INPUT,10,137,347,12,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_OEMCONVERT | ES_WANTRETURN + EDITTEXT IDC_NETMOO_STATUS,10,8,347,130,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL + RTEXT "Remote Host:",65481,13,167,44,8 + EDITTEXT IDC_NETMOO_HOST,60,165,90,12 + EDITTEXT IDC_NETMOO_PORT,151,165,27,12 + GROUPBOX "Settings",100,10,154,347,47,WS_GROUP + DEFPUSHBUTTON "Connect",BTN_NETMOO_CONNECT,296,163,56,14 + EDITTEXT IDC_NETMOO_NICK,282,182,70,12,ES_AUTOHSCROLL + RTEXT "Local Players:",65480,187,167,46,8 + RTEXT "Nickname:",65479,238,184,40,8 + COMBOBOX COMBO_NETMOO_LOCAL_PLAYERS,238,165,28,51,CBS_DROPDOWNLIST | WS_TABSTOP + RTEXT "Game Key:",65478,127,184,39,8 + EDITTEXT IDC_NETMOO_KEY,169,182,67,12 + RTEXT "Password:",65477,19,184,37,8 + EDITTEXT IDC_NETMOO_PASS,60,182,67,12,ES_PASSWORD +END + +NEWINPUT DIALOGEX 0, 0, 186, 66 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Enter New Input" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + CTEXT "Press a key",LBL_KEY_COMBO,31,14,122,20 + PUSHBUTTON "Clear",BTN_CLEAR,95,45,50,14 + PUSHBUTTON "OK",BTN_OK,40,45,50,14 +END + +PALCONFIG DIALOGEX 16, 81, 228, 217 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Palette Configuration" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + DEFPUSHBUTTON "Close",BUTTON_CLOSE,162,195,56,14 + GROUPBOX "NES Palette",302,10,8,102,81,WS_GROUP + DEFPUSHBUTTON "&Load Palette...",BTN_PALETTE_LOAD,18,39,58,14 + CONTROL "Enabled",CHECK_PALETTE_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,22,87,12 + CONTROL "Tint",CTL_TINT_TRACKBAR,"msctls_trackbar32",WS_DISABLED | WS_TABSTOP,121,44,91,11 + GROUPBOX "NTSC Color Emulation",101,115,8,103,81,WS_GROUP + CONTROL "Hue",CTL_HUE_TRACKBAR,"msctls_trackbar32",WS_DISABLED | WS_TABSTOP,121,69,91,11 + CTEXT "Hue",64395,124,59,85,8,WS_DISABLED + CTEXT "Tint",65463,123,34,85,8,WS_DISABLED + CONTROL "Force Grayscale",CHECK_PALETTE_GRAYSCALE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,57,85,12 + CONTROL "Use Custom Palette",CHECK_PALETTE_CUSTOM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,22,85,12 + GROUPBOX "PAL Emulation",IDC_STATIC,10,89,208,66,WS_DISABLED + CONTROL "",CTL_PALSAT_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,78,110,70,15 + LTEXT "Saturation:",STATIC_SATVALUE,83,100,58,8,WS_DISABLED + PUSHBUTTON "Reset",BTN_PALETTE_RESET,161,132,50,14,WS_DISABLED + CONTROL "",CTL_PALNOTCH_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,11,110,68,15 + LTEXT "Notch:",STATIC_NOTCHVALUE,16,100,46,8,WS_DISABLED + CONTROL "",CTL_PALSHARP_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,156,109,61,15 + LTEXT "Sharpness:",STATIC_SHARPVALUE,161,99,50,8,WS_DISABLED + LTEXT "NTSC Color Emulation overrides Internal default Palette.\nIndividual Game Palette overrides Internal+NTSC Palettes.\nCustom Palette overrides all of the above.\nPAL Emulation overrides other choices when PAL filter is selected",IDC_STATIC,10,159,208,33 + CONTROL "",CTL_PALCONTRAST_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,11,134,67,15 + LTEXT "Contrast: ",STATIC_CONTRASTVALUE,16,126,55,8,WS_DISABLED + CONTROL "",CTL_PALBRIGHT_TRACKBAR,"msctls_trackbar32",TBS_NOTICKS | WS_DISABLED | WS_TABSTOP,78,133,70,15 + LTEXT "Brightness: ",STATIC_BRIGHTVALUE,83,125,61,8,WS_DISABLED + CONTROL "De-emphasis bit swap",CHECK_DEEMPH_SWAP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,73,83,10 +END + +POWERPADDIALOG DIALOG 30, 123, 131, 119 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Power Pad Configuration" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "Close",BTN_CLOSE,34,95,56,14 + GROUPBOX "",312,8,10,114,74,WS_GROUP + PUSHBUTTON "1",300,21,23,16,12 + PUSHBUTTON "2",301,43,23,16,12 + PUSHBUTTON "3",302,70,23,16,12 + PUSHBUTTON "4",303,91,23,16,12 + PUSHBUTTON "5",304,21,41,16,12 + PUSHBUTTON "6",305,43,41,16,12 + PUSHBUTTON "7",306,70,41,16,12 + PUSHBUTTON "8",307,91,41,16,12 + PUSHBUTTON "9",308,21,59,16,12 + PUSHBUTTON "10",309,43,59,16,12 + PUSHBUTTON "11",310,70,59,16,12 + PUSHBUTTON "12",311,91,59,16,12 +END + +QUIZKINGDIALOG DIALOG 30, 123, 160, 74 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "quiz king" +FONT 8, "MS Shell Dlg" +BEGIN + DEFPUSHBUTTON "Close",BTN_CLOSE,54,56,56,14 + GROUPBOX "Buzzers",312,8,7,144,39,WS_GROUP + PUSHBUTTON "1",300,16,23,16,12 + PUSHBUTTON "2",301,38,23,16,12 + PUSHBUTTON "3",302,60,23,16,12 + PUSHBUTTON "4",303,82,23,16,12 + PUSHBUTTON "5",304,104,23,16,12 + PUSHBUTTON "6",305,126,23,16,12 +END + +SOUNDCONFIG DIALOGEX 8, 95, 334, 282 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Sound Configuration" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + DEFPUSHBUTTON "Close",BTN_CLOSE,280,260,44,14 + GROUPBOX "Output/Output Format:",302,10,9,131,93,WS_GROUP + CONTROL "Sound enabled.",CHECK_SOUND_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,22,117,12 + GROUPBOX "Buffering:",127,150,9,131,93,WS_GROUP + CONTROL "Use Global Focus",CHECK_SOUND_GLOBAL_FOCUS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,157,22,100,12 + CTEXT "Sound Latency",65459,162,50,107,8 + CONTROL "",CTL_LATENCY_TRACKBAR,"msctls_trackbar32",WS_TABSTOP,162,70,107,13 + GROUPBOX "Master",125,19,142,44,93,WS_GROUP + CONTROL "",CTL_VOLUME_TRACKBAR,"msctls_trackbar32",TBS_AUTOTICKS | TBS_VERT | TBS_BOTH | WS_TABSTOP,27,150,28,83 + LTEXT "15 ms",65458,160,87,20,8 + LTEXT "200 ms",65457,250,87,25,8 + LTEXT "ms",65456,211,60,19,8 + LTEXT "Quality:",65455,17,43,27,10 + COMBOBOX COMBO_SOUND_QUALITY,50,40,67,46,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "Rate:",65461,17,64,22,10 + COMBOBOX COMBO_SOUND_RATE,50,61,53,46,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "Hz",65460,108,64,15,9 + LTEXT "Depth:",65462,17,85,27,10 + COMBOBOX COMBO_SOUND_8BIT,50,82,67,45,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + CONTROL "Mute frame advance",CHECK_SOUND_MUTEFA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,110,87,11 + CONTROL "Mute Turbo",CHECK_SOUND_MUTETURBO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,138,111,53,10 + GROUPBOX "Triangle",131,70,142,44,93,WS_GROUP + CONTROL "",CTL_VOLUME_TRACKBAR_TRIANGLE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_VERT | TBS_BOTH | WS_TABSTOP,78,150,28,83 + GROUPBOX "Square1",132,121,142,44,93,WS_GROUP + CONTROL "",CTL_VOLUME_TRACKBAR_SQUARE1,"msctls_trackbar32",TBS_AUTOTICKS | TBS_VERT | TBS_BOTH | WS_TABSTOP,129,150,28,83 + GROUPBOX "Square2",133,170,142,44,93,WS_GROUP + CONTROL "",CTL_VOLUME_TRACKBAR_SQUARE2,"msctls_trackbar32",TBS_AUTOTICKS | TBS_VERT | TBS_BOTH | WS_TABSTOP,178,150,28,83 + GROUPBOX "Noise",134,221,142,44,93,WS_GROUP + CONTROL "",CTL_VOLUME_TRACKBAR_NOISE,"msctls_trackbar32",TBS_AUTOTICKS | TBS_VERT | TBS_BOTH | WS_TABSTOP,229,150,28,83 + GROUPBOX "PCM",135,271,142,44,93,WS_GROUP + CONTROL "",CTL_VOLUME_TRACKBAR_PCM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_VERT | TBS_BOTH | WS_TABSTOP,279,150,28,83 + GROUPBOX "Volume Control",IDC_VOLUMEGROUP,10,127,314,127 + PUSHBUTTON "Restore defaults",IDC_SOUND_RESTOREDEFAULTVOL,19,238,56,11 + LTEXT "",ID_SOUND_TRITOP,76,135,38,8 + LTEXT "",ID_SOUND_QUALITYNOTIFY,170,133,144,8 + CONTROL "Swap Duty Cycles",CHECK_SOUND_SWAPDUTY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,239,110,74,10 +END + +SUBORKBDIALOG DIALOGEX 13, 72, 478, 171 +STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Subor Keyboard Configuration" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + DEFPUSHBUTTON "Close",1,405,151,56,14 + LTEXT "Remember to push the ""Scroll Lock"" key during emulation to enable Keyboard input.",-1,18,6,370,12 + GROUPBOX "",-1,9,22,461,123,WS_GROUP + PUSHBUTTON "Esc",300,20,36,16,12 + PUSHBUTTON "F1",301,58,37,16,12 + PUSHBUTTON "F2",302,78,37,16,12 + PUSHBUTTON "F3",303,98,37,16,12 + PUSHBUTTON "F4",304,118,37,16,12 + PUSHBUTTON "F5",305,143,37,16,12 + PUSHBUTTON "F6",306,163,37,16,12 + PUSHBUTTON "F7",307,183,37,16,12 + PUSHBUTTON "F8",308,203,37,16,12 + PUSHBUTTON "F9",309,229,37,16,12 + PUSHBUTTON "F10",310,249,37,16,12 + PUSHBUTTON "F11",311,268,37,16,12 + PUSHBUTTON "F12",312,288,37,16,12 + PUSHBUTTON "Pause",313,318,36,16,12 + PUSHBUTTON "`",314,20,60,16,12 + PUSHBUTTON "1",315,39,60,16,12 + PUSHBUTTON "2",316,58,60,16,12 + PUSHBUTTON "3",317,77,60,16,12 + PUSHBUTTON "4",318,96,60,16,12 + PUSHBUTTON "5",319,115,60,16,12 + PUSHBUTTON "6",320,134,60,16,12 + PUSHBUTTON "7",321,153,60,16,12 + PUSHBUTTON "8",322,172,60,16,12 + PUSHBUTTON "9",323,191,60,16,12 + PUSHBUTTON "0",324,210,60,16,12 + PUSHBUTTON "-",325,229,60,16,12 + PUSHBUTTON "=",326,248,60,16,12 + PUSHBUTTON "BS",327,286,60,16,12 + PUSHBUTTON "Ins",328,318,59,16,12 + PUSHBUTTON "Home",329,337,59,16,12 + PUSHBUTTON "NL",330,385,59,16,12 + PUSHBUTTON "/",331,405,59,16,12 + PUSHBUTTON "*",332,425,59,16,12 + PUSHBUTTON "-",333,444,59,16,12 + PUSHBUTTON "PUp",334,357,59,16,12 + PUSHBUTTON "TAB",335,20,76,24,12 + PUSHBUTTON "Q",336,47,76,16,12 + PUSHBUTTON "W",337,66,76,16,12 + PUSHBUTTON "E",338,85,76,16,12 + PUSHBUTTON "R",339,104,76,16,12 + PUSHBUTTON "T",340,123,76,16,12 + PUSHBUTTON "Y",341,142,76,16,12 + PUSHBUTTON "U",342,161,76,16,12 + PUSHBUTTON "I",343,180,76,16,12 + PUSHBUTTON "O",344,199,76,16,12 + PUSHBUTTON "P",345,218,76,16,12 + PUSHBUTTON "[",346,237,76,16,12 + PUSHBUTTON "]",347,256,76,16,12 + PUSHBUTTON "Enter",348,274,76,28,29 + PUSHBUTTON "Del",349,318,75,16,12 + PUSHBUTTON "End",350,338,75,16,12 + PUSHBUTTON "PDn",351,357,75,16,12 + PUSHBUTTON "7",352,385,75,16,12 + PUSHBUTTON "8",353,405,75,16,12 + PUSHBUTTON "9",354,425,75,16,12 + PUSHBUTTON "+",355,444,75,16,28 + PUSHBUTTON "CL",356,20,92,27,12 + PUSHBUTTON "A",357,52,92,16,12 + PUSHBUTTON "S",358,71,92,16,12 + PUSHBUTTON "D",359,90,92,16,12 + PUSHBUTTON "F",360,109,92,16,12 + PUSHBUTTON "G",361,128,92,16,12 + PUSHBUTTON "H",362,147,92,16,12 + PUSHBUTTON "J",363,166,92,16,12 + PUSHBUTTON "K",364,185,92,16,12 + PUSHBUTTON "L",365,204,92,16,12 + PUSHBUTTON ";",366,223,92,16,12 + PUSHBUTTON "'",367,242,92,16,12 + PUSHBUTTON "4",368,385,91,16,12 + PUSHBUTTON "5",369,405,91,16,12 + PUSHBUTTON "6",370,425,91,16,12 + PUSHBUTTON "SHIFT",371,20,108,37,12 + PUSHBUTTON "Z",372,62,108,16,12 + PUSHBUTTON "X",373,81,108,16,12 + PUSHBUTTON "C",374,100,108,16,12 + PUSHBUTTON "V",375,119,108,16,12 + PUSHBUTTON "B",376,138,108,16,12 + PUSHBUTTON "N",377,157,108,16,12 + PUSHBUTTON "M",378,176,108,16,12 + PUSHBUTTON ",",379,195,108,16,12 + PUSHBUTTON ".",380,214,108,16,12 + PUSHBUTTON "/",381,233,108,16,12 + PUSHBUTTON "\\",382,267,60,16,12 + PUSHBUTTON "Up",383,337,108,16,12 + PUSHBUTTON "1",384,385,107,16,12 + PUSHBUTTON "2",385,405,107,16,12 + PUSHBUTTON "3",386,425,107,16,12 + PUSHBUTTON "CTRL",387,20,123,28,12 + PUSHBUTTON "ALT",388,66,123,27,12 + PUSHBUTTON "SPACE",389,96,123,130,12 + PUSHBUTTON "Left",390,318,123,16,12 + PUSHBUTTON "Dn",391,337,123,16,12 + PUSHBUTTON "Right",392,357,123,16,12 + PUSHBUTTON "0",393,386,123,35,12 + PUSHBUTTON ".",394,425,123,16,12 + PUSHBUTTON "SHIFT",395,254,108,48,12 + PUSHBUTTON "ALT",396,229,123,29,12 + PUSHBUTTON "CTRL",397,274,123,28,12 + PUSHBUTTON "Break",398,337,36,16,12 + PUSHBUTTON "Reset",399,357,36,16,12 + PUSHBUTTON "Enter",400,444,107,16,28 +END + +TIMINGCONFIG DIALOGEX 23, 157, 203, 110 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Timing Configuration" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + DEFPUSHBUTTON "Close",1,137,87,56,14 + CONTROL "Disable speed throttling used when sound is disabled.",CB_DISABLE_SPEED_THROTTLING, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,8,183,12 + CONTROL "Set high-priority thread.",CB_SET_HIGH_PRIORITY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,24,102,12 + CONTROL "Overclocking (old PPU only).",CB_OVERCLOCKING,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,41,101,10 + EDITTEXT IDC_EXTRA_SCANLINES,104,55,84,14,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED + LTEXT "Post-render scanlines:",IDC_EXTRA_SCANLINES_TEXT,21,57,74,8,WS_DISABLED + CONTROL "Don't overclock 7-bit samples.",CB_SKIP_7BIT,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,10,87,111,10 + EDITTEXT IDC_VBLANK_SCANLINES,104,68,84,14,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED + LTEXT "VBlank scanlines:",IDC_VBLANK_SCANLINES_TEXT,21,71,76,8,WS_DISABLED +END + +MOVIEOPTIONS DIALOGEX 65520, 76, 147, 222 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Movie Options" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + DEFPUSHBUTTON "Close",IDC_MOVIE_CLOSE,48,200,49,14,BS_CENTER + CONTROL "Pause after playback",IDC_MOVIE_PAUSEAFTERPLAYBACK, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,26,110,10 + CONTROL "Bind savestates to movies",IDC_MOVIE_BINDSAVESTATES, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,64,111,10 + CONTROL "Display movie subtitles",IDC_MOVIE_DISPLAYSUBTITLES, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,83,102,10 + CONTROL "Put movie subtitles in AVI",IDC_MOVIE_SUBTITLESINAVI, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,33,101,102,10 + CONTROL "Automatically backup movies",IDC_MOVIE_AUTOBACKUP, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,122,114,10 + CONTROL "Load full savestate-movies:",IDC_FULLSAVESTATES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,141,110,10 + LTEXT "Loading states in record mode",IDC_STATIC,25,153,106,8 + LTEXT "will not immediately truncate",IDC_STATIC,25,163,107,8 + LTEXT "movie, next frame input will.",IDC_STATIC,25,173,108,8 + CONTROL "Close after playback",IDC_MOVIE_CLOSEAFTERPLAYBACK, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,45,89,10 + CONTROL "Always suggest Read-Only replay",IDC_MOVIE_SUGGEST_READONLY, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,8,125,10 + LTEXT "(VBA-rr and SNES9x style)",IDC_STATIC,25,184,93,8 +END + +DWBDIALOGSIMPLE DIALOGEX 33, 99, 250, 39 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "DWBS!" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + LTEXT "Type a key, or press Escape to disable.",65429,53,14,125,8 +END + +MEMWATCH DIALOGEX 0, 0, 261, 270 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +EXSTYLE WS_EX_ACCEPTFILES +CAPTION "Memory Watch" +MENU MEMWATCHMENU +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + GROUPBOX "",IDC_STATIC,3,0,126,200 + GROUPBOX "",IDC_STATIC,131,0,128,200 + EDITTEXT MW_ADDR00,6,17,30,14,ES_UPPERCASE + EDITTEXT MW_NAME00,41,17,55,14,ES_AUTOHSCROLL + EDITTEXT MW_ADDR01,6,32,30,14,ES_UPPERCASE + EDITTEXT MW_NAME01,41,32,55,14,ES_AUTOHSCROLL + EDITTEXT MW_ADDR02,6,47,30,14,ES_UPPERCASE + EDITTEXT MW_NAME02,41,47,55,14,ES_AUTOHSCROLL + EDITTEXT MW_ADDR03,6,62,30,14,ES_UPPERCASE + EDITTEXT MW_NAME03,41,62,55,14,ES_AUTOHSCROLL + EDITTEXT MW_ADDR04,6,77,30,14,ES_UPPERCASE + EDITTEXT MW_NAME04,41,77,55,14,ES_AUTOHSCROLL + EDITTEXT MW_ADDR05,6,92,30,14,ES_UPPERCASE + EDITTEXT MW_NAME05,41,92,55,14,ES_AUTOHSCROLL + EDITTEXT MW_ADDR06,6,107,30,14,ES_UPPERCASE + EDITTEXT MW_NAME06,41,107,55,14,ES_AUTOHSCROLL + EDITTEXT MW_ADDR07,6,122,30,14,ES_UPPERCASE + EDITTEXT MW_NAME07,41,122,55,14,ES_AUTOHSCROLL + EDITTEXT MW_ADDR08,6,137,30,14,ES_UPPERCASE + EDITTEXT MW_NAME08,41,137,55,14,ES_AUTOHSCROLL + EDITTEXT MW_ADDR09,6,152,30,14,ES_UPPERCASE + EDITTEXT MW_NAME09,41,152,55,14,ES_AUTOHSCROLL + EDITTEXT MW_ADDR10,6,167,30,14,ES_UPPERCASE + EDITTEXT MW_NAME10,41,167,55,14,ES_AUTOHSCROLL + EDITTEXT MW_ADDR11,6,182,30,14,ES_UPPERCASE + EDITTEXT MW_NAME11,41,182,55,14,ES_AUTOHSCROLL + EDITTEXT MW_ADDR12,135,17,30,14,ES_UPPERCASE + EDITTEXT MW_NAME12,171,17,55,14,ES_AUTOHSCROLL + EDITTEXT MW_ADDR13,135,32,30,14,ES_UPPERCASE + EDITTEXT MW_NAME13,171,32,55,14,ES_AUTOHSCROLL + EDITTEXT MW_ADDR14,135,47,30,14,ES_UPPERCASE + EDITTEXT MW_NAME14,171,47,55,14,ES_AUTOHSCROLL + EDITTEXT MW_ADDR15,135,62,30,14,ES_UPPERCASE + EDITTEXT MW_NAME15,171,62,55,14,ES_AUTOHSCROLL + EDITTEXT MW_ADDR16,135,77,30,14,ES_UPPERCASE + EDITTEXT MW_NAME16,171,77,55,14,ES_AUTOHSCROLL + EDITTEXT MW_ADDR17,135,92,30,14,ES_UPPERCASE + EDITTEXT MW_NAME17,171,92,55,14,ES_AUTOHSCROLL + EDITTEXT MW_ADDR18,135,107,30,14,ES_UPPERCASE + EDITTEXT MW_NAME18,171,107,55,14,ES_AUTOHSCROLL + EDITTEXT MW_ADDR19,135,122,30,14,ES_UPPERCASE + EDITTEXT MW_NAME19,171,122,55,14,ES_AUTOHSCROLL + EDITTEXT MW_ADDR20,135,137,30,14,ES_UPPERCASE + EDITTEXT MW_NAME20,171,137,55,14,ES_AUTOHSCROLL + EDITTEXT MW_ADDR21,135,152,30,14,ES_UPPERCASE + EDITTEXT MW_NAME21,171,152,55,14,ES_AUTOHSCROLL + EDITTEXT MW_ADDR22,135,167,30,14,ES_UPPERCASE + EDITTEXT MW_NAME22,171,167,55,14,ES_AUTOHSCROLL + EDITTEXT MW_ADDR23,135,182,30,14,ES_UPPERCASE + EDITTEXT MW_NAME23,171,182,55,14,ES_AUTOHSCROLL + LTEXT "Name",IDC_STATIC,41,7,20,8 + LTEXT "Address",IDC_STATIC,6,7,26,8 + LTEXT "Value",MW_VALUELABEL1,101,7,19,8 + LTEXT "Name",IDC_STATIC,171,7,20,8 + LTEXT "Address",IDC_STATIC,135,7,26,8 + LTEXT "Value",MW_VALUELABEL2,231,7,19,8 + LTEXT " ",EDIT00_RESULTS,89,225,26,8 + GROUPBOX "Memory Change Monitoring",IDC_STATIC,0,202,129,57,BS_CENTER + LTEXT "Address",IDC_STATIC,6,213,26,8 + LTEXT "Count",IDC_STATIC,90,213,20,8 + LTEXT "Formula",IDC_STATIC,47,213,26,8 + LTEXT " ",MEMW_EDIT00RMADDRESS,7,225,24,8 + PUSHBUTTON " ",MEMW_EDIT00RESET,115,225,11,7 + LTEXT "reset",IDC_STATIC,112,213,16,8 + COMBOBOX MEMW_EDIT00FORMULA,37,223,48,30,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + LTEXT " ",MEMW_EDIT01RMADDRESS,7,241,24,8 + COMBOBOX MEMW_EDIT01FORMULA,37,241,48,30,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + LTEXT " ",EDIT01_RESULTS,89,241,25,8 + PUSHBUTTON " ",MEMW_EDIT01RESET,115,241,11,7 + LTEXT " ",EDIT02_RESULTS,217,225,26,8 + LTEXT "Address",IDC_STATIC,133,213,26,8 + LTEXT "Formula",IDC_STATIC,173,213,26,8 + LTEXT " ",MEMW_EDIT02RMADDRESS,135,225,24,8 + PUSHBUTTON " ",MEMW_EDIT02RESET,242,225,11,7 + LTEXT "reset",IDC_STATIC,239,213,16,8 + COMBOBOX MEMW_EDIT02FORMULA,165,223,48,30,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + LTEXT " ",MEMW_EDIT03RMADDRESS,135,241,24,8 + COMBOBOX MEMW_EDIT03FORMULA,165,241,48,30,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + LTEXT " ",EDIT03_RESULTS,217,241,28,8 + PUSHBUTTON " ",MEMW_EDIT03RESET,242,241,11,7 + GROUPBOX "Memory Change Monitoring",IDC_STATIC,131,202,129,57,BS_CENTER + LTEXT "Count",IDC_STATIC,217,213,20,8 + PUSHBUTTON "<",MEMW_EXPANDCOLLAPSE,1,259,11,10 +END + +DEBUGGER DIALOGEX 54, 74, 546, 334 +STYLE DS_SETFONT | DS_3DLOOK | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME +CAPTION "6502 Debugger" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + CONTROL "",IDC_DEBUGGER_DISASSEMBLY,"RichEdit20A",ES_MULTILINE | ES_NOHIDESEL | ES_READONLY | WS_BORDER | WS_HSCROLL,18,5,316,317 + SCROLLBAR IDC_DEBUGGER_DISASSEMBLY_VSCR,334,5,11,317,SBS_VERT + GROUPBOX "Status Flags",401,434,140,106,35,WS_TABSTOP + CONTROL "N",IDC_DEBUGGER_FLAG_N,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,440,149,18,12 + CONTROL "V",IDC_DEBUGGER_FLAG_V,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,466,149,18,12 + CONTROL "U",IDC_DEBUGGER_FLAG_U,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,491,149,18,12 + CONTROL "B",IDC_DEBUGGER_FLAG_B,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,516,149,18,12 + CONTROL "D",IDC_DEBUGGER_FLAG_D,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,440,161,18,12 + CONTROL "I",IDC_DEBUGGER_FLAG_I,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,466,161,18,12 + CONTROL "Z",IDC_DEBUGGER_FLAG_Z,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,491,161,18,12 + CONTROL "C",IDC_DEBUGGER_FLAG_C,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,516,161,18,12 + GROUPBOX "Breakpoints",IDC_DEBUGGER_BREAKPOINTS,434,2,106,138,WS_TABSTOP + LISTBOX IDC_DEBUGGER_BP_LIST,438,11,98,96,LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL + PUSHBUTTON "Add",IDC_DEBUGGER_BP_ADD,438,109,31,15 + PUSHBUTTON "Delete",IDC_DEBUGGER_BP_DEL,472,109,31,15,WS_DISABLED + PUSHBUTTON "Edit",IDC_DEBUGGER_BP_EDIT,505,109,31,15,WS_DISABLED + PUSHBUTTON "Run",IDC_DEBUGGER_RUN,351,5,38,14 + PUSHBUTTON "Step Into",IDC_DEBUGGER_STEP_IN,392,5,39,14 + PUSHBUTTON "Step Out",IDC_DEBUGGER_STEP_OUT,351,21,38,14 + PUSHBUTTON "Step Over",IDC_DEBUGGER_STEP_OVER,392,21,39,14 + LTEXT "A:",IDC_STATIC,351,92,9,8 + LTEXT "X:",65534,378,92,9,8 + LTEXT "Y:",65533,406,92,9,8 + LTEXT "PC:",65532,349,74,13,8 + EDITTEXT IDC_DEBUGGER_VAL_A,359,90,15,12,ES_UPPERCASE | ES_WANTRETURN + EDITTEXT IDC_DEBUGGER_VAL_X,387,90,15,12,ES_UPPERCASE | ES_WANTRETURN + EDITTEXT IDC_DEBUGGER_VAL_Y,415,90,15,12,ES_UPPERCASE | ES_WANTRETURN + EDITTEXT IDC_DEBUGGER_VAL_PC,361,72,27,12,ES_UPPERCASE | ES_WANTRETURN + GROUPBOX "Stack",IDC_DEBUGGER_VAL_S,349,104,81,71,WS_TABSTOP + EDITTEXT IDC_DEBUGGER_STACK_CONTENTS,353,113,73,58,ES_MULTILINE | ES_UPPERCASE | ES_NOHIDESEL | ES_READONLY | WS_VSCROLL + PUSHBUTTON "Seek PC",IDC_DEBUGGER_SEEK_PC,392,71,39,14 + PUSHBUTTON "Seek To:",IDC_DEBUGGER_SEEK_TO,351,54,38,14 + EDITTEXT IDC_DEBUGGER_VAL_PCSEEK,392,55,38,12,ES_UPPERCASE | ES_WANTRETURN + LTEXT "PPU:",65531,353,179,17,10 + LTEXT "Sprite:",65530,353,191,20,10 + LTEXT "Scanline:",IDC_STATIC,353,203,31,8 + LTEXT "Pixel:",IDC_STATIC,353,216,17,8 + EDITTEXT IDC_DEBUGGER_VAL_PPU,372,179,25,12,ES_UPPERCASE | ES_READONLY | ES_WANTRETURN | NOT WS_BORDER,WS_EX_TRANSPARENT + EDITTEXT IDC_DEBUGGER_VAL_SPR,375,191,15,12,ES_UPPERCASE | ES_READONLY | ES_WANTRETURN | NOT WS_BORDER,WS_EX_TRANSPARENT + EDITTEXT IDC_DEBUGGER_VAL_SLINE,384,203,14,12,ES_UPPERCASE | ES_READONLY | ES_WANTRETURN | NOT WS_BORDER,WS_EX_TRANSPARENT + EDITTEXT IDC_DEBUGGER_VAL_PPUPIXEL,373,216,14,12,ES_UPPERCASE | ES_READONLY | ES_WANTRETURN | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_TRANSPARENT + GROUPBOX "",IDC_DEBUGGER_VAL_S2,349,174,51,53,WS_TABSTOP + EDITTEXT IDC_DEBUGGER_VAL_CYCLES_COUNT,443,179,47,12,ES_NOHIDESEL | ES_READONLY | ES_WANTRETURN | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_TRANSPARENT + EDITTEXT IDC_DEBUGGER_VAL_CYCLES_COUNT2,492,179,54,12,ES_READONLY | ES_WANTRETURN | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_TRANSPARENT + EDITTEXT IDC_DEBUGGER_VAL_INSTRUCTIONS_COUNT,442,204,47,12,ES_NOHIDESEL | ES_READONLY | ES_WANTRETURN | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_TRANSPARENT + EDITTEXT IDC_DEBUGGER_VAL_INSTRUCTIONS_COUNT2,491,204,55,12,ES_READONLY | ES_WANTRETURN | NOT WS_BORDER | NOT WS_TABSTOP,WS_EX_TRANSPARENT + CONTROL "",IDC_DEBUGGER_ADDR_LINE,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,4,323,341,11 + CONTROL "Break on Bad Opcodes",IDC_DEBUGGER_BREAK_ON_BAD_OP, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,440,126,94,10 + CONTROL "Symbolic debug",IDC_DEBUGGER_ENABLE_SYMBOLIC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,261,62,10 + PUSHBUTTON "Reload Symbols",IDC_DEBUGGER_RELOAD_SYMS,472,283,64,14 + GROUPBOX "Address Bookmarks",45535,349,228,115,88 + LISTBOX LIST_DEBUGGER_BOOKMARKS,353,238,76,73,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_DEBUGGER_BOOKMARK,432,238,28,14,ES_AUTOHSCROLL + PUSHBUTTON "Add",IDC_DEBUGGER_BOOKMARK_ADD,431,256,30,14 + PUSHBUTTON "Delete",IDC_DEBUGGER_BOOKMARK_DEL,431,272,30,14 + PUSHBUTTON "Rom Patcher",IDC_DEBUGGER_ROM_PATCHER,472,299,64,14 + PUSHBUTTON "Default window size",IDC_DEBUGGER_RESTORESIZE,348,318,68,14 + PUSHBUTTON "Run Line",IDC_DEBUGGER_RUN_LINE,351,37,38,14 + PUSHBUTTON "128 Lines",IDC_DEBUGGER_RUN_FRAME2,392,37,39,14 + CONTROL ".DEB files",DEBUGLOADDEB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,463,319,42,13 + CONTROL "Auto-open",DEBUGAUTOLOAD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,417,319,45,13 + LTEXT "CPU cycles:",IDC_STATIC,403,179,39,8 + PUSHBUTTON "Reset counters",IDC_DEBUGGER_RESET_COUNTERS,470,229,68,14 + CONTROL "Break when exceed",IDC_DEBUGGER_BREAK_ON_CYCLES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,405,191,78,10 + EDITTEXT IDC_DEBUGGER_CYCLES_EXCEED,484,190,55,12,ES_UPPERCASE | ES_NOHIDESEL | ES_WANTRETURN | ES_NUMBER + LTEXT "Instructions:",IDC_STATIC,403,204,39,8 + CONTROL "Break when exceed",IDC_DEBUGGER_BREAK_ON_INSTRUCTIONS, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,405,216,78,10 + EDITTEXT IDC_DEBUGGER_INSTRUCTIONS_EXCEED,484,215,55,12,ES_UPPERCASE | ES_NOHIDESEL | ES_WANTRETURN | ES_NUMBER + GROUPBOX "",IDC_STATIC,468,241,72,75 + CONTROL "ROM offsets",IDC_DEBUGGER_ROM_OFFSETS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,249,62,10 + PUSHBUTTON "Name",IDC_DEBUGGER_BOOKMARK_NAME,431,288,30,14 + EDITTEXT IDC_DEBUGGER_DISASSEMBLY_LEFT_PANEL,4,5,14,317,ES_MULTILINE | ES_AUTOHSCROLL | ES_READONLY | WS_DISABLED + CONTROL "Register names",IDC_DEBUGGER_PREDEFINED_REGS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,272,65,10 + CONTROL "IDA font",DEBUGIDAFONT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,506,319,38,13 +END + +TRACER DIALOGEX 0, 0, 317, 181 +STYLE DS_SETFONT | DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME +CAPTION "Trace Logger" +FONT 8, "MS Shell Dlg", 400, 0, 0x0 +BEGIN + EDITTEXT IDC_TRACER_LOG,3,3,300,44,ES_MULTILINE | ES_NOHIDESEL | ES_READONLY | WS_HSCROLL + SCROLLBAR IDC_SCRL_TRACER_LOG,303,3,11,44,SBS_VERT + CONTROL "Log last",IDC_RADIO_LOG_LAST,"Button",BS_AUTORADIOBUTTON | BS_LEFT,9,53,38,10 + COMBOBOX IDC_TRACER_LOG_SIZE,49,52,46,13,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "lines",IDC_TEXT_LINES_TO_THIS_WINDOW,97,54,20,10 + DEFPUSHBUTTON "Start Logging",IDC_BTN_START_STOP_LOGGING,126,51,65,15,BS_CENTER | BS_VCENTER + CONTROL "Log to File",IDC_RADIO_LOG_TO_FILE,"Button",BS_AUTORADIOBUTTON | BS_LEFT,9,70,46,10 + PUSHBUTTON "Browse...",IDC_BTN_LOG_BROWSE,56,68,39,14,BS_CENTER | BS_VCENTER + CONTROL "Automatically update this window while logging",IDC_CHECK_LOG_UPDATE_WINDOW, + "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,113,70,156,10 + GROUPBOX "Log Options",IDC_GROUP_LOG_OPTIONS,3,85,311,65 + CONTROL "Log state of registers",IDC_CHECK_LOG_REGISTERS,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,8,96,99,10 + CONTROL "Log Processor status flags",IDC_CHECK_LOG_PROCESSOR_STATUS, + "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,113,96,96,10 + CONTROL "To the left from disassembly",IDC_CHECK_LOG_STATUSES_TO_THE_LEFT, + "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,211,96,100,10 + CONTROL "Log Frames count",IDC_CHECK_LOG_FRAMES_COUNT,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,8,109,98,10 + CONTROL "Log Cycles count",IDC_CHECK_LOG_CYCLES_COUNT,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,113,109,94,10 + CONTROL "Log Instructions count",IDC_CHECK_LOG_INSTRUCTIONS_COUNT, + "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,211,109,100,10 + CONTROL "Log emulator messages",IDC_CHECK_LOG_MESSAGES,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,8,122,97,10 + CONTROL "Log breakpoint hits",IDC_CHECK_LOG_BREAKPOINTS,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,113,122,91,10 + CONTROL "Symbolic trace",IDC_CHECK_SYMBOLIC_TRACING,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,8,135,96,10 + CONTROL "Use Stack Pointer for code tabbing (nesting visualization)",IDC_CHECK_CODE_TABBING, + "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,113,135,196,10 + GROUPBOX "Extra Log Options that work with the Code/Data Logger",IDC_EXTRA_LOG_OPTIONS,3,151,311,26 + CONTROL "Only log newly mapped code",IDC_CHECK_LOG_NEW_INSTRUCTIONS, + "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,8,162,102,10 + CONTROL "Only log code that accesses newly mapped data",IDC_CHECK_LOG_NEW_DATA, + "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,112,162,171,10 + CONTROL "Log Bank number",IDC_CHECK_LOG_BANK_NUMBER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,211,121,100,10 +END + +ADDBP DIALOGEX 66, 83, 197, 125 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Add Breakpoint..." +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + LTEXT "&Address:",-1,14,6,30,10 + EDITTEXT IDC_ADDBP_ADDR_START,48,4,30,12,ES_UPPERCASE | ES_WANTRETURN + CTEXT "-",65534,78,6,8,8 + EDITTEXT IDC_ADDBP_ADDR_END,87,4,30,12,ES_UPPERCASE | ES_WANTRETURN + CONTROL "&Forbid",IDC_ADDBP_MODE_F,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,154,6,33,12 + GROUPBOX "",112,3,18,185,50,WS_TABSTOP + CONTROL "&Read",IDC_ADDBP_MODE_R,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,25,35,12 + CONTROL "&Write",IDC_ADDBP_MODE_W,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,49,25,35,12 + CONTROL "&Execute",IDC_ADDBP_MODE_X,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,86,25,40,12 + GROUPBOX "Memory",108,9,39,174,24,WS_TABSTOP + CONTROL "&CPU Mem",IDC_ADDBP_MEM_CPU,"Button",BS_AUTORADIOBUTTON | WS_GROUP,13,49,50,10 + CONTROL "&PPU Mem",IDC_ADDBP_MEM_PPU,"Button",BS_AUTORADIOBUTTON,68,49,50,10 + CONTROL "&Sprite Mem",IDC_ADDBP_MEM_SPR,"Button",BS_AUTORADIOBUTTON,124,49,50,10 + LTEXT "C&ondition:",65533,7,74,34,8 + EDITTEXT IDC_ADDBP_CONDITION,43,72,136,14,ES_AUTOHSCROLL + LTEXT "&Name:",65532,8,92,20,8 + EDITTEXT IDC_ADDBP_NAME,43,89,136,14,ES_AUTOHSCROLL + DEFPUSHBUTTON "OK",IDOK,99,110,42,13 + PUSHBUTTON "Cancel",IDCANCEL,147,110,42,13 +END + +NTVIEW DIALOGEX 44, 38, 352, 350 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Name Table Viewer" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + GROUPBOX "Name Tables",IDC_NTVIEW_TABLE_BOX,2,0,347,251,WS_TABSTOP + LTEXT "Refresh: More",IDC_STATIC,225,254,50,9 + CONTROL "",IDC_NTVIEW_REFRESH_TRACKBAR,"msctls_trackbar32",WS_TABSTOP,275,254,50,11 + LTEXT "Less",IDC_STATIC,325,254,18,10 + LTEXT "Display on scanline:",IDC_NTVIEW_SCANLINE_TEXT,249,269,65,9 + EDITTEXT IDC_NTVIEW_SCANLINE,315,267,27,12,ES_NUMBER + CONTROL "Show Scroll Lines",IDC_NTVIEW_SHOW_SCROLL_LINES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,254,69,10 + CONTROL "Show Attributes",IDC_NTVIEW_SHOW_ATTRIBUTES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,265,69,10 + CONTROL "Ignore Palettes",IDC_NTVIEW_HIDE_PALETTES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,276,69,10 + GROUPBOX "Current Mirroring",IDC_STATIC,2,289,170,59 + CONTROL "Horizontal",IDC_NTVIEW_MIRROR_HORIZONTAL,"Button",BS_AUTORADIOBUTTON,6,300,47,10 + CONTROL "Vertical",IDC_NTVIEW_MIRROR_VERTICAL,"Button",BS_AUTORADIOBUTTON,6,311,39,10 + CONTROL "Four Screen",IDC_NTVIEW_MIRROR_FOUR_SCREEN,"Button",BS_AUTORADIOBUTTON,6,322,55,10 + CONTROL "Single Screen 0",IDC_NTVIEW_MIRROR_SS_TABLE_0,"Button",BS_AUTORADIOBUTTON,85,300,75,10 + CONTROL "Single Screen 1",IDC_NTVIEW_MIRROR_SS_TABLE_1,"Button",BS_AUTORADIOBUTTON,85,311,75,10 + CONTROL "Single Screen 2",IDC_NTVIEW_MIRROR_SS_TABLE_2,"Button",BS_AUTORADIOBUTTON,85,322,75,10 + CONTROL "Single Screen 3",IDC_NTVIEW_MIRROR_SS_TABLE_3,"Button",BS_AUTORADIOBUTTON,85,333,75,10 + GROUPBOX "Properties",IDC_STATIC,174,289,175,59 + LTEXT "Tile ID:",IDC_NTVIEW_PROPERTIES_LINE_1,184,300,150,10 + LTEXT "X / Y:",IDC_NTVIEW_PROPERTIES_LINE_2,184,311,150,10 + LTEXT "PPU Address:",IDC_NTVIEW_PROPERTIES_LINE_3,184,322,150,10 + LTEXT "Attribute:",IDC_NTVIEW_PROPERTIES_LINE_4,184,333,150,10 +END + +ROMPATCHER DIALOGEX 84, 67, 304, 135 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Rom Data Editor" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + EDITTEXT IDC_ROMPATCHER_CURRENT_DATA,7,47,282,12,ES_READONLY + PUSHBUTTON "Apply",IDC_ROMPATCHER_BTN_APPLY,185,92,54,14 + PUSHBUTTON "Save Rom File...",IDC_ROMPATCHER_BTN_SAVE,4,114,65,14,WS_DISABLED + EDITTEXT IDC_ROMPATCHER_PATCH_DATA,7,93,172,13,ES_AUTOHSCROLL + GROUPBOX "Current Data At Offset",IDC_ROMPATCHER_CURRENT_DATA_BOX,3,36,292,43 + GROUPBOX "Offset",IDC_ROMPATCHER_OFFSET_BOX,4,4,291,27 + EDITTEXT IDC_ROMPATCHER_OFFSET,83,12,47,14,ES_AUTOHSCROLL + CONTROL ".Nes File Address",IDC_ROMPATCHER_DOTNES_OFFSET,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,14,71,10 + PUSHBUTTON "Edit This Offset",IDC_ROMPATCHER_BTN_EDIT,135,12,65,14 + LTEXT "Disassembled: ",106,7,63,45,12 + EDITTEXT IDC_ROMPATCHER_DISASSEMBLY,56,62,234,14,ES_AUTOHSCROLL | ES_READONLY + GROUPBOX "Patch Data",108,3,81,292,30 +END + +GGCONV DIALOGEX 84, 67, 186, 146 +STYLE DS_SYSMODAL | DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Game Genie Encoder/Decoder Tool" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + GROUPBOX "Game Genie Code",-1,107,5,69,42 + EDITTEXT IDC_GAME_GENIE_CODE,115,22,53,14,ES_UPPERCASE | ES_AUTOHSCROLL + PUSHBUTTON "Add To Cheat List",IDC_BTN_ADD_TO_CHEATS,108,58,68,14,WS_DISABLED + GROUPBOX "Address/Compare/Value",65534,9,5,91,75 + LTEXT "Address:",65533,18,24,35,8 + EDITTEXT IDC_GAME_GENIE_ADDR,50,21,36,14,ES_UPPERCASE | ES_AUTOHSCROLL + LTEXT "Compare:",65532,17,41,37,8 + EDITTEXT IDC_GAME_GENIE_COMP,64,38,22,14,ES_UPPERCASE | ES_AUTOHSCROLL + LTEXT "Value:",65531,18,58,32,8 + EDITTEXT IDC_GAME_GENIE_VAL,64,56,22,14,ES_UPPERCASE | ES_AUTOHSCROLL + GROUPBOX "Possible Affected Rom File Addresses",65530,8,83,169,58 + LISTBOX IDC_LIST_GGADDRESSES,67,95,54,40,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP +END + +MONITOR DIALOGEX 0, 0, 316, 343 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "RAM Filter" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + GROUPBOX "Rules",-1,7,7,295,182 + GROUPBOX "Results",-1,10,193,292,135 + LTEXT "1st rule",-1,16,20,40,8 + LTEXT "2nd rule",-1,16,36,40,8 + LTEXT "3rd rule",-1,16,55,40,8 + LTEXT "4th rule",-1,16,71,40,8 + LTEXT "5th rule",-1,16,89,40,8 + COMBOBOX 3000,66,17,135,85,CBS_DROPDOWNLIST | WS_TABSTOP + COMBOBOX 3001,66,34,135,90,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + COMBOBOX 3002,66,50,135,97,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + COMBOBOX 3003,66,68,135,101,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + COMBOBOX 3004,66,84,135,122,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + EDITTEXT 3010,208,18,26,12,ES_AUTOHSCROLL + EDITTEXT 3011,208,34,26,13,ES_AUTOHSCROLL + EDITTEXT 3012,208,50,26,12,ES_AUTOHSCROLL + EDITTEXT 3013,208,68,26,13,ES_AUTOHSCROLL + EDITTEXT 3014,208,84,26,12,ES_AUTOHSCROLL + PUSHBUTTON "Apply rule",3021,240,34,50,13 + PUSHBUTTON "Apply rule",3022,240,50,50,14 + PUSHBUTTON "Apply rule",3023,240,68,50,14 + PUSHBUTTON "Apply rule",3024,240,84,50,14 + LISTBOX 3100,18,206,272,102,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Apply rule",3020,240,17,50,14 + LTEXT "6th rule",-1,16,105,40,8 + COMBOBOX 3005,66,102,135,122,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + EDITTEXT 3015,208,102,26,12,ES_AUTOHSCROLL + PUSHBUTTON "Apply rule",3025,240,102,50,14 + LTEXT "7th rule",-1,16,121,40,8 + COMBOBOX 3006,66,119,135,122,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + EDITTEXT 3016,208,119,26,12,ES_AUTOHSCROLL + PUSHBUTTON "Apply rule",3026,240,119,50,14 + LTEXT "9th rule",-1,16,156,40,8 + COMBOBOX 3008,66,153,135,122,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + EDITTEXT 3018,208,153,26,12,ES_AUTOHSCROLL + PUSHBUTTON "Apply rule",3028,240,153,50,14 + LTEXT "8th rule",-1,16,140,40,8 + COMBOBOX 3007,66,135,135,122,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + EDITTEXT 3017,208,135,26,12,ES_AUTOHSCROLL + PUSHBUTTON "Apply rule",3027,240,135,50,14 + LTEXT "10th rule",-1,16,172,40,8 + COMBOBOX 3009,66,169,135,85,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + EDITTEXT 3019,208,170,26,12,ES_AUTOHSCROLL + PUSHBUTTON "Apply rule",3029,240,169,50,14 + LTEXT "Number of results:",-1,19,313,60,8 + LTEXT "",3101,90,313,60,8 +END + +MEMVIEWFIND DIALOGEX 0, 0, 282, 81 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Find" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + EDITTEXT IDC_MEMVIEWFIND_WHAT,47,7,171,14,ES_AUTOHSCROLL + LTEXT "Find What:",-1,7,9,38,8 + GROUPBOX "Type",-1,83,29,187,45 + CONTROL "Hex",IDC_MEMVIEWFIND_TYPE_HEX,"Button",BS_AUTORADIOBUTTON | WS_GROUP,93,43,29,10 + CONTROL "Text (Uses Currently Loaded Table as Reference)",IDC_MEMVIEWFIND_TYPE_TEXT, + "Button",BS_AUTORADIOBUTTON,93,56,172,10 + GROUPBOX "Direction",-1,9,29,65,44 + CONTROL "Up",IDC_MEMVIEWFIND_DIR_UP,"Button",BS_AUTORADIOBUTTON | WS_GROUP,18,43,25,10 + CONTROL "Down",IDC_MEMVIEWFIND_DIR_DOWN,"Button",BS_AUTORADIOBUTTON,18,56,35,10 + DEFPUSHBUTTON "Find Next",IDC_MEMVIEWFIND_NEXT,225,7,50,14 +END + +IDD_RECORDINP DIALOGEX 0, 0, 276, 86 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Record input" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + DEFPUSHBUTTON "OK",1,167,66,50,14 + GROUPBOX "",65501,3,0,269,60 + RTEXT "File:",65500,28,11,24,10,SS_CENTERIMAGE | NOT WS_GROUP,WS_EX_RIGHT + PUSHBUTTON "Cancel",2,221,66,50,14 + EDITTEXT IDC_EDIT_FILENAME,55,10,189,12,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_BUTTON_BROWSEFILE,249,10,18,14 + COMBOBOX IDC_COMBO_RECORDFROM,55,25,189,154,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + RTEXT "Record From:",65498,9,27,43,8,0,WS_EX_RIGHT + EDITTEXT IDC_EDIT_AUTHOR,55,41,189,14,ES_AUTOHSCROLL + RTEXT "Author:",65502,18,43,34,10,SS_CENTERIMAGE | NOT WS_GROUP,WS_EX_RIGHT +END + +IDD_REPLAYINP DIALOGEX 0, 0, 300, 202 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Play Movie" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + DEFPUSHBUTTON "OK",1,189,183,50,14 + GROUPBOX "",65497,3,0,293,179 + RTEXT "File:",65498,8,11,24,10,SS_CENTERIMAGE | NOT WS_GROUP + COMBOBOX IDC_COMBO_FILENAME,35,10,257,128,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Cancel",2,243,183,50,14 + RTEXT "Length:",64397,10,67,59,8 + RTEXT "Frames:",65496,10,78,59,8 + RTEXT "Record Count:",65495,10,89,59,8 + RTEXT "ROM Used:",65493,10,111,59,8 + RTEXT "ROM Checksum:",65492,10,122,59,8 + RTEXT "Recorded From:",65491,10,100,59,8 + RTEXT "Emulator Used:",65490,10,144,59,8 + RTEXT "Current ROM Sum:",65489,8,133,61,8 + CONTROL "Pause movie at frame",IDC_CHECK_STOPMOVIE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,49,83,10 + EDITTEXT IDC_EDIT_STOPFRAME,103,47,39,12,ES_AUTOHSCROLL | ES_NUMBER + GROUPBOX "Parameters",IDC_STATIC,13,25,278,40 + PUSHBUTTON "Metadata...",IDC_BUTTON_METADATA,239,71,50,14 + EDITTEXT IDC_LABEL_EMULATORUSED,76,144,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP + EDITTEXT IDC_LABEL_CURRCHECKSUM,76,133,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP + EDITTEXT IDC_LABEL_ROMCHECKSUM,76,122,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP + EDITTEXT IDC_LABEL_ROMUSED,76,111,187,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP + EDITTEXT IDC_LABEL_RECORDEDFROM,76,100,123,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP + CONTROL "Open &Read-Only",IDC_CHECK_READONLY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,36,69,10 + EDITTEXT IDC_LABEL_UNDOCOUNT,76,89,59,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP + EDITTEXT IDC_LABEL_FRAMES,76,78,59,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP + EDITTEXT IDC_LABEL_LENGTH,76,67,59,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP + RTEXT "Pal:",65494,10,155,59,8 + EDITTEXT IDC_LABEL_PALUSED,76,155,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP + RTEXT "New PPU:",65499,10,166,59,8 + EDITTEXT IDC_LABEL_NEWPPUUSED,76,166,155,12,ES_READONLY | NOT WS_BORDER | NOT WS_TABSTOP +END + +TASEDITOR DIALOGEX 0, 0, 326, 348 +STYLE DS_SETFONT | DS_SETFOREGROUND | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME +CAPTION "TAS Editor" +MENU TASEDITORMENU +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + CONTROL "",IDC_PROGRESS_BUTTON,"Button",BS_OWNERDRAW,200,36,116,12 + CONTROL "",IDC_BRANCHES_BUTTON,"Button",BS_OWNERDRAW,207,167,104,10 + CONTROL "",IDC_LIST1,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT | LVS_OWNERDATA | LVS_NOSORTHEADER | WS_BORDER,5,13,187,316 + GROUPBOX " Playback ",IDC_PLAYBACK_BOX,197,0,123,62,BS_CENTER,WS_EX_RIGHT + GROUPBOX " Recorder ",IDC_RECORDER_BOX,197,63,123,46,BS_CENTER,WS_EX_RIGHT + GROUPBOX " Splicer ",IDC_SPLICER_BOX,197,110,123,30,BS_CENTER,WS_EX_RIGHT + GROUPBOX " Lua ",IDC_LUA_BOX,197,141,123,26,BS_CENTER,WS_EX_RIGHT + GROUPBOX " Bookmarks ",IDC_BOOKMARKS_BOX,197,168,123,102,BS_CENTER,WS_EX_RIGHT + GROUPBOX " History ",IDC_HISTORY_BOX,197,271,123,53,BS_CENTER,WS_EX_RIGHT + PUSHBUTTON "<<",TASEDITOR_REWIND_FULL,201,9,23,14,NOT WS_TABSTOP + PUSHBUTTON "<",TASEDITOR_REWIND,224,9,23,14,NOT WS_TABSTOP + PUSHBUTTON "||",TASEDITOR_PLAYSTOP,247,9,23,14,NOT WS_TABSTOP + PUSHBUTTON ">",TASEDITOR_FORWARD,270,9,23,14,NOT WS_TABSTOP + PUSHBUTTON ">>",TASEDITOR_FORWARD_FULL,293,9,23,14,NOT WS_TABSTOP + CONTROL "",IDC_PROGRESS1,"msctls_progress32",PBS_SMOOTH | WS_BORDER,201,39,115,6 + CONTROL " Follow cursor",CHECK_FOLLOW_CURSOR,"Button",BS_AUTOCHECKBOX,203,25,56,12 + CONTROL " Auto-restore last position",CHECK_AUTORESTORE_PLAYBACK, + "Button",BS_AUTOCHECKBOX,203,48,109,12 + CONTROL "",IDC_BOOKMARKSLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_ALIGNLEFT | LVS_OWNERDATA | LVS_NOSCROLL | LVS_NOCOLUMNHEADER | LVS_NOSORTHEADER | NOT WS_VISIBLE | WS_BORDER,202,177,113,89 + CONTROL "",IDC_HISTORYLIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOLABELWRAP | LVS_ALIGNLEFT | LVS_OWNERDATA | LVS_NOCOLUMNHEADER | LVS_NOSORTHEADER | WS_BORDER,202,280,113,40 + CONTROL " All",IDC_RADIO_ALL,"Button",BS_AUTORADIOBUTTON,291,71,24,10 + CONTROL " 1P",IDC_RADIO_1P,"Button",BS_AUTORADIOBUTTON,203,83,25,10 + CONTROL " 2P",IDC_RADIO_2P,"Button",BS_AUTORADIOBUTTON,232,83,25,10 + CONTROL " 3P",IDC_RADIO_3P,"Button",BS_AUTORADIOBUTTON,262,83,24,10 + CONTROL " 4P",IDC_RADIO_4P,"Button",BS_AUTORADIOBUTTON,291,83,24,10 + CONTROL " Superimpose",IDC_SUPERIMPOSE,"Button",BS_AUTO3STATE,203,96,55,10 + PUSHBUTTON "<<",TASEDITOR_PREV_MARKER,202,328,23,14,NOT WS_TABSTOP + PUSHBUTTON "Similar",TASEDITOR_FIND_BEST_SIMILAR_MARKER,225,328,34,14,NOT WS_TABSTOP + PUSHBUTTON "More",TASEDITOR_FIND_NEXT_SIMILAR_MARKER,259,328,34,14,NOT WS_TABSTOP + PUSHBUTTON ">>",TASEDITOR_NEXT_MARKER,292,328,23,14,NOT WS_TABSTOP + EDITTEXT IDC_PLAYBACK_MARKER_EDIT,65,0,127,13,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP + RTEXT "Marker 0",IDC_PLAYBACK_MARKER,3,2,60,10,SS_NOTIFY,WS_EX_RIGHT + EDITTEXT IDC_SELECTION_MARKER_EDIT,65,329,127,13,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP + RTEXT "Marker 99999",IDC_SELECTION_MARKER,3,331,60,10,SS_NOTIFY,WS_EX_RIGHT + CONTROL "",IDC_BRANCHES_BITMAP,"Static",SS_OWNERDRAW | SS_NOTIFY | SS_REALSIZEIMAGE | NOT WS_VISIBLE,202,177,113,89 + CONTROL " Turbo seek",CHECK_TURBO_SEEK,"Button",BS_AUTOCHECKBOX,263,25,50,12 + LTEXT "Selection: 0 rows, 16 columns",IDC_TEXT_SELECTION,204,118,112,10,SS_NOTIFY + LTEXT "Clipboard: 0 rows, 16 columns",IDC_TEXT_CLIPBOARD,203,128,114,10,SS_NOTIFY + CONTROL " Recording",IDC_RECORDING,"Button",BS_AUTO3STATE,203,71,81,10 + PUSHBUTTON "Run function",TASEDITOR_RUN_MANUAL,202,150,54,14,WS_DISABLED | NOT WS_TABSTOP + CONTROL "Auto function",IDC_RUN_AUTO,"Button",BS_AUTOCHECKBOX,261,152,55,10 + CONTROL " Use pattern",IDC_USEPATTERN,"Button",BS_AUTOCHECKBOX,262,96,53,10 +END + +IDD_TASEDITOR_ABOUT DIALOGEX 0, 0, 238, 78 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "About" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "OK",IDCANCEL,94,55,50,14 + ICON IDI_ICON4,IDC_STATIC,11,11,20,20 + LTEXT "TAS Editor",IDC_TASEDITOR_NAME,43,8,84,13 + LTEXT "Version 1.01",IDC_STATIC,60,25,45,8 + LTEXT "Created by AnS",IDC_STATIC,138,12,58,8 + LTEXT "Originated from TASEdit",IDC_STATIC,138,25,85,9,SS_NOPREFIX + LTEXT "made by zeromus & adelikat",IDC_STATIC,138,35,96,9,SS_NOPREFIX +END + +IDD_TASEDITOR_NEWPROJECT DIALOGEX 0, 0, 171, 100 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Create New Project" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "OK",IDOK,7,80,50,14 + PUSHBUTTON "Cancel",IDCANCEL,114,80,50,14 + CONTROL " Copy current Input",IDC_COPY_INPUT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,80,14,75,10 + CONTROL " 1 player",IDC_RADIO_1PLAYER,"Button",BS_AUTORADIOBUTTON,16,14,45,10 + CONTROL " 2 players",IDC_RADIO_2PLAYERS,"Button",BS_AUTORADIOBUTTON,16,27,45,10 + CONTROL " Fourscore",IDC_RADIO_FOURSCORE,"Button",BS_AUTORADIOBUTTON,16,40,45,10 + CONTROL " Copy current Markers",IDC_COPY_MARKERS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,80,27,83,10 + GROUPBOX "Input type",IDC_STATIC,5,3,67,52,BS_CENTER + EDITTEXT IDC_EDIT_AUTHOR,36,61,127,13,ES_AUTOHSCROLL + LTEXT "Author:",IDC_STATIC,8,63,26,9 +END + +IDD_TASEDITOR_EXPORT DIALOGEX 0, 0, 158, 86 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Export to FM2" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "Export",IDOK,7,66,50,14 + PUSHBUTTON "Cancel",IDCANCEL,100,66,50,14 + CONTROL " 1 player",IDC_RADIO_1PLAYER,"Button",BS_AUTORADIOBUTTON | WS_GROUP,8,8,47,10 + CONTROL " 2 players",IDC_RADIO_2PLAYERS,"Button",BS_AUTORADIOBUTTON,8,21,47,10 + CONTROL " Fourscore",IDC_RADIO_FOURSCORE,"Button",BS_AUTORADIOBUTTON,8,35,47,10 + CONTROL " Convert Marker Notes to Movie Subtitles",IDC_NOTES_TO_SUBTITLES, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,50,146,10 +END + +IDD_TASEDITOR_FINDNOTE DIALOGEX 0, 0, 228, 49 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Find Note" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "Find next",IDOK,171,5,51,14 + PUSHBUTTON "Close",IDCANCEL,171,23,51,14 + EDITTEXT IDC_NOTE_TO_FIND,6,6,160,12,ES_AUTOHSCROLL + CONTROL " Match case",IDC_MATCH_CASE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,23,53,10 + GROUPBOX "Direction",IDC_STATIC,82,20,83,24,BS_CENTER + CONTROL " Up",IDC_RADIO_UP,"Button",BS_AUTORADIOBUTTON | WS_GROUP,90,30,29,10 + CONTROL " Down",IDC_RADIO_DOWN,"Button",BS_AUTORADIOBUTTON,125,30,32,10 +END + +IDD_TASEDITOR_SAVECOMPACT DIALOGEX 0, 0, 123, 197 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Save Compact" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "Save",IDOK,8,176,50,14 + PUSHBUTTON "Cancel",IDCANCEL,66,176,50,14 + CONTROL " Binary format of Input",IDC_CHECK_BINARY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,23,8,89,10 + CONTROL " Markers",IDC_CHECK_MARKERS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,23,23,67,10 + CONTROL " Bookmarks",IDC_CHECK_BOOKMARKS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,23,38,67,10 + CONTROL " History",IDC_CHECK_HISTORY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,23,53,67,10 + CONTROL " Piano Roll",IDC_CHECK_PIANO_ROLL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,23,68,67,10 + CONTROL " Selection",IDC_CHECK_SELECTION,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,23,83,67,10 + GROUPBOX "Greenzone saving options",IDC_STATIC,13,98,97,72 + CONTROL " all frames",IDC_RADIO_GREENZONE_SAVINGMODE_ALLFRAMES, + "Button",BS_AUTORADIOBUTTON,23,109,77,10 + CONTROL " every 16th frame",IDC_RADIO_GREENZONE_SAVINGMODE_EVERY16FRAME, + "Button",BS_AUTORADIOBUTTON,23,124,77,10 + CONTROL " marked frames",IDC_RADIO_GREENZONE_SAVINGMODE_MARKEDFRAMES, + "Button",BS_AUTORADIOBUTTON,23,139,77,10 + CONTROL " don't save",IDC_RADIO_GREENZONE_SAVINGMODE_DONTSAVE, + "Button",BS_AUTORADIOBUTTON,23,154,77,10 +END + +ASSEMBLER DIALOGEX 0, 0, 202, 135 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Inline Assembler" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + EDITTEXT IDC_ASSEMBLER_DISASSEMBLY,23,9,171,12,ES_READONLY + COMBOBOX IDC_ASSEMBLER_HISTORY,7,25,188,54,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Apply",IDC_ASSEMBLER_APPLY,159,114,36,14 + LTEXT "PC:",-1,8,11,12,8 + LTEXT "Patch:",-1,8,41,22,8 + PUSHBUTTON "Save...",IDC_ASSEMBLER_SAVE,117,114,36,14 + PUSHBUTTON "Undo",IDC_ASSEMBLER_UNDO,6,114,36,14 + DEFPUSHBUTTON "Define",IDC_ASSEMBLER_DEFPUSHBUTTON,46,114,36,14,NOT WS_VISIBLE + LISTBOX IDC_ASSEMBLER_PATCH_DISASM,7,50,188,59,LBS_SORT | LBS_NOINTEGRALHEIGHT | LBS_DISABLENOSCROLL | LBS_NOSEL | WS_VSCROLL | WS_TABSTOP +END + +NAMEBOOKMARKDLG DIALOGEX 0, 0, 186, 73 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Bookmark name" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + LTEXT "Bookmark name",IDC_BOOKMARK_NAME_TEXT,68,14,58,8 + EDITTEXT IDC_BOOKMARK_DESCRIPTION,7,28,172,14,ES_AUTOHSCROLL + DEFPUSHBUTTON "&OK",IDOK,67,52,50,14 +END + +CDLOGGER DIALOGEX 0, 0, 307, 254 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +EXSTYLE WS_EX_ACCEPTFILES +CAPTION "Code Data Logger" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + PUSHBUTTON "Load...",BTN_CDLOGGER_LOAD,7,122,50,14 + PUSHBUTTON "Save",BTN_CDLOGGER_SAVE,249,105,50,14 + GROUPBOX "Code/Data Log Status",-1,3,5,300,195,BS_CENTER + DEFPUSHBUTTON "Start",BTN_CDLOGGER_START_PAUSE,127,105,50,14 + GROUPBOX "Address Label Logger",65534,3,201,300,49,BS_CENTER + PUSHBUTTON "Load...",111,7,231,50,14,WS_DISABLED + PUSHBUTTON "Start",112,127,231,50,14,WS_DISABLED + PUSHBUTTON "Save...",113,249,231,50,14,WS_DISABLED + LTEXT "4067 - 29.5%",LBL_CDLOGGER_CODECOUNT,34,27,72,11 + GROUPBOX "PRG Logged as Code",65533,25,16,84,27 + GROUPBOX "PRG Logged as Data",65532,113,16,84,27 + LTEXT "7092 - 37.2%",LBL_CDLOGGER_DATACOUNT,122,27,71,9 + GROUPBOX "PRG not Logged",65531,201,16,79,27 + LTEXT "6072 - 32.7%",LBL_CDLOGGER_UNDEFCOUNT,210,27,66,8 + LTEXT "Itsa me, the Code/Data Logger! Press Start to play!",65530,67,78,172,11 + PUSHBUTTON "Reset Log",BTN_CDLOGGER_RESET,7,105,50,14 + PUSHBUTTON "Save as...",BTN_CDLOGGER_SAVE_AS,250,122,50,14 + PUSHBUTTON "Save Stripped Data...",BTN_CDLOGGER_SAVE_STRIPPED,196,155,90,14 + PUSHBUTTON "Save Unused Data...",BTN_CDLOGGER_SAVE_UNUSED,196,172,90,14 + LTEXT "4067 - 29.5%",LBL_CDLOGGER_RENDERCOUNT,34,56,72,11 + GROUPBOX "CHR Rendered",ID_CHR1,25,45,84,27 + GROUPBOX "CHR Logged as Data",ID_CHR2,113,45,84,27 + LTEXT "7092 - 37.2%",LBL_CDLOGGER_VROMREADCOUNT,122,56,71,9 + GROUPBOX "CHR not Logged",ID_CHR3,201,45,79,27 + LTEXT "6072 - 32.7%",LBL_CDLOGGER_UNDEFVROMCOUNT,210,56,66,9 + LTEXT "CDL file:",ID_STATIC,12,92,29,11 + LTEXT "",ID_CDLFILENAME,43,92,252,11,SS_PATHELLIPSIS + CONTROL " Auto-resume logging when loading ROMs",IDC_AUTORESUMECDLOGGING, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,179,153,11 + CONTROL " Auto-save .CDL when closing ROMs",IDC_AUTOSAVECDL, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,153,143,11 + CONTROL " Auto-load .CDL when opening this window",IDC_AUTOLOADCDL, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,166,154,11 + GROUPBOX "Generate ROM",65529,183,142,116,52 + GROUPBOX "Logging workflow options",65528,8,142,171,52 +END + +PPUVIEW DIALOGEX 44, 38, 353, 234 +STYLE DS_SETFONT | DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "PPU Viewer" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + GROUPBOX "Pattern Tables",GRP_PPUVIEW_TABLES,2,-1,348,185,WS_TABSTOP + LTEXT "Tile:",LBL_PPUVIEW_TILE1,6,138,50,9 + LTEXT "Tile:",LBL_PPUVIEW_TILE2,178,138,50,9 + LTEXT "Refresh: More",-1,230,151,50,9 + CONTROL "",CTL_PPUVIEW_TRACKBAR,"msctls_trackbar32",WS_TABSTOP,280,151,50,11 + LTEXT "Less",-1,330,151,18,10 + LTEXT "Display on scanline:",-1,253,166,65,9 + EDITTEXT IDC_PPUVIEW_SCANLINE,315,164,27,12,ES_NUMBER + CONTROL "Sprites 8x16 mode",IDC_SPRITE16_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,151,160,10 + CONTROL "Mask unused graphics (Code/Data Logger)",IDC_MASK_UNUSED_GRAPHICS, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,162,160,10 + CONTROL "Invert the mask (Code/Data Logger)",IDC_INVERT_THE_MASK, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,173,160,10 + GROUPBOX "Palettes",LBL_PPUVIEW_PALETTES,2,185,348,46,WS_TABSTOP +END + +ARCHIVECHOOSERDIALOG DIALOGEX 0, 0, 265, 159 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Choose File From Archive" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "OK",IDOK,146,138,50,14 + PUSHBUTTON "Cancel",IDCANCEL,208,138,50,14 + LISTBOX IDC_LIST1,7,7,251,120,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP +END + +TEXTHOOKER DIALOGEX 0, 0, 456, 327 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +EXSTYLE WS_EX_ACCEPTFILES +CAPTION "Text Hooker" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + GROUPBOX "Selection Window",1,0,0,183,164,0,WS_EX_NOPARENTNOTIFY + EDITTEXT 102,207,13,216,94,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | NOT WS_BORDER | WS_VSCROLL,WS_EX_NOPARENTNOTIFY | WS_EX_CLIENTEDGE + GROUPBOX "Hooked Text",103,200,0,229,131,0,WS_EX_NOPARENTNOTIFY + PUSHBUTTON "Load Table",104,3,169,60,14,0,WS_EX_NOPARENTNOTIFY + PUSHBUTTON "Clear Selection",105,67,169,60,14,0,WS_EX_NOPARENTNOTIFY + PUSHBUTTON "Pause",106,67,190,60,14,0,WS_EX_NOPARENTNOTIFY + PUSHBUTTON "Snap",107,130,169,60,35,0,WS_EX_NOPARENTNOTIFY + PUSHBUTTON "Clear Buffer",108,208,111,60,14,0,WS_EX_NOPARENTNOTIFY + EDITTEXT 111,5,249,115,14,ES_AUTOHSCROLL | NOT WS_BORDER,WS_EX_NOPARENTNOTIFY | WS_EX_CLIENTEDGE + PUSHBUTTON "Save Selection",112,130,249,60,14,0,WS_EX_NOPARENTNOTIFY + PUSHBUTTON "Save Table",113,3,190,60,14,0,WS_EX_NOPARENTNOTIFY + PUSHBUTTON "Load Selection",114,130,268,60,14,0,WS_EX_NOPARENTNOTIFY + GROUPBOX "Translated Text",115,200,140,229,117,0,WS_EX_NOPARENTNOTIFY + EDITTEXT 116,207,156,214,95,ES_MULTILINE | ES_AUTOVSCROLL | ES_WANTRETURN | NOT WS_BORDER | WS_VSCROLL,WS_EX_NOPARENTNOTIFY | WS_EX_CLIENTEDGE + PUSHBUTTON "Excite.co.jp",117,281,111,60,14,0,WS_EX_NOPARENTNOTIFY + LTEXT "Scanline:",118,5,210,50,8,0,WS_EX_NOPARENTNOTIFY + LTEXT "Update every x frames:",119,68,210,79,8,0,WS_EX_NOPARENTNOTIFY + EDITTEXT 120,5,220,52,14,ES_AUTOHSCROLL | NOT WS_BORDER,WS_EX_NOPARENTNOTIFY | WS_EX_CLIENTEDGE + EDITTEXT 121,68,220,52,14,ES_AUTOHSCROLL | NOT WS_BORDER,WS_EX_NOPARENTNOTIFY | WS_EX_CLIENTEDGE + PUSHBUTTON "Trim",122,351,111,60,14 + COMBOBOX 109,5,269,115,100,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "Japanese:",-1,5,283,47,9 + EDITTEXT 131,5,292,115,14,ES_AUTOHSCROLL + LTEXT "English:",-1,130,283,47,9 + EDITTEXT 132,130,292,115,14,ES_AUTOHSCROLL + PUSHBUTTON "Add Definition",133,253,292,60,14 + CONTROL "Selection Window",341,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,324,261,80,9 + CONTROL "Word Substitution",342,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,324,274,80,9 + LTEXT "(han)dakuten mark position:",-1,324,286,92,8 + CONTROL "Above",343,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,324,297,37,10 + CONTROL "Right",344,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,363,297,33,10 + LTEXT "New Selection Name:",-1,5,240,68,8 +END + +CHEATCONSOLE DIALOGEX 0, 0, 387, 226 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Cheat Search" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + GROUPBOX "Active Cheats",IDC_GROUPBOX_CHEATLIST,5,2,169,219,WS_TABSTOP + CONTROL "Enable cheats",IDC_CHEAT_GLOBAL_SWITCH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,12,58,10 + CONTROL "Auto load / save with game",IDC_CHEAT_AUTOLOADSAVE, + "Button",BS_AUTO3STATE | WS_TABSTOP,71,12,100,10 + CONTROL "",IDC_LIST_CHEATS,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,11,24,157,133 + LTEXT "Name:",IDC_STATIC,12,162,22,10 + EDITTEXT IDC_CHEAT_NAME,37,160,131,12,ES_AUTOHSCROLL | ES_WANTRETURN + LTEXT "Address:",IDC_CHEAT_ADDRESS_LABEL,12,176,30,8 + EDITTEXT IDC_CHEAT_ADDR,44,174,25,12,ES_UPPERCASE | ES_WANTRETURN + LTEXT "Value:",IDC_CHEAT_VAL_LABEL,73,176,22,8 + EDITTEXT IDC_CHEAT_VAL,97,174,16,12,ES_UPPERCASE | ES_WANTRETURN + LTEXT "Compare:",IDC_CHEAT_COM_LABEL,117,176,34,8 + EDITTEXT IDC_CHEAT_COM,152,174,16,12,ES_UPPERCASE | ES_WANTRETURN + LTEXT "Cheat Code:",IDC_CHEAT_CODE_LABEL,12,190,42,8 + EDITTEXT IDC_CHEAT_TEXT,55,188,47,12,ES_UPPERCASE | ES_AUTOHSCROLL + LTEXT "GG:",IDC_GAME_GENIE_LABEL,106,191,13,8 + EDITTEXT IDC_CHEAT_GAME_GENIE_TEXT,120,188,47,12,ES_UPPERCASE | ES_AUTOHSCROLL + DEFPUSHBUTTON "Add",IDC_BTN_CHEAT_ADD,7,202,30,16 + PUSHBUTTON "Delete",IDC_BTN_CHEAT_DEL,37,202,30,16 + PUSHBUTTON "Update",IDC_BTN_CHEAT_UPD,67,202,30,16 + PUSHBUTTON "Import...",IDC_BTN_CHEAT_ADDFROMFILE,100,202,36,16 + PUSHBUTTON "Export...",IDC_BTN_CHEAT_EXPORTTOFILE,136,202,36,16 + GROUPBOX "Cheat Search",IDC_GROUPBOX_CHEATSEARCH,180,2,201,206,WS_TABSTOP + PUSHBUTTON "Reset",IDC_BTN_CHEAT_RESET,192,12,55,15 + PUSHBUTTON "Known Value:",IDC_BTN_CHEAT_KNOWN,192,36,55,15 + LTEXT "0x",IDC_CHEAT_LABEL_KNOWN,217,55,9,8 + EDITTEXT IDC_CHEAT_VAL_KNOWN,228,53,18,12,ES_UPPERCASE + GROUPBOX "Previous Compare",IDC_GROUP_PREV_COM,185,68,69,135 + PUSHBUTTON "Equal",IDC_BTN_CHEAT_EQ,192,79,55,15,WS_GROUP + PUSHBUTTON "Not Equal",IDC_BTN_CHEAT_NE,192,99,55,15 + CONTROL "By:",IDC_CHEAT_CHECK_NE_BY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,204,117,22,10 + EDITTEXT IDC_CHEAT_VAL_NE_BY,228,116,18,12,ES_UPPERCASE | ES_WANTRETURN + PUSHBUTTON "Greater Than",IDC_BTN_CHEAT_GT,192,134,55,15 + CONTROL "By:",IDC_CHEAT_CHECK_GT_BY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,204,152,22,10 + EDITTEXT IDC_CHEAT_VAL_GT_BY,228,151,18,12,ES_UPPERCASE | ES_WANTRETURN + PUSHBUTTON "Less Than",IDC_BTN_CHEAT_LT,192,169,55,15 + CONTROL "By:",IDC_CHEAT_CHECK_LT_BY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,204,187,22,10 + EDITTEXT IDC_CHEAT_VAL_LT_BY,228,186,18,12,ES_UPPERCASE | ES_WANTRETURN + GROUPBOX "Possibilities",IDC_CHEAT_BOX_POSSIBILITIES,258,8,117,195,WS_TABSTOP + CONTROL "",IDC_CHEAT_LIST_POSSIBILITIES,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_OWNERDATA | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,264,18,106,179 + CONTROL "Pause emulation when this window is active",IDC_CHEAT_PAUSEWHENACTIVE, + "Button",BS_AUTOCHECKBOX,180,211,157,10 +END + +IDD_LUA DIALOGEX 0, 0, 270, 150 +STYLE DS_SETFONT | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME +EXSTYLE WS_EX_APPWINDOW +CAPTION "Lua Script" +MENU LUAWINDOW_MENU +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + PUSHBUTTON "&Browse...",IDC_BUTTON_LUABROWSE,7,31,48,16 + PUSHBUTTON "&Run",IDC_BUTTON_LUARUN,213,31,50,16 + PUSHBUTTON "&Stop",IDC_BUTTON_LUASTOP,160,31,50,16 + EDITTEXT IDC_EDIT_LUAPATH,7,16,256,14,ES_AUTOHSCROLL + EDITTEXT IDC_EDIT_LUAARGS,47,50,216,14,ES_AUTOHSCROLL + EDITTEXT IDC_LUACONSOLE,7,80,256,60,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL + LTEXT "Output Console:",IDC_STATIC,7,70,56,8 + LTEXT "Script File:",IDC_STATIC,7,7,36,8 + LTEXT "Arguments:",IDC_STATIC,7,52,40,8 + PUSHBUTTON "Edit",IDC_BUTTON_LUAEDIT,58,31,46,16 +END + +VIDEOCONFIG DIALOGEX 65520, 76, 511, 170 +STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Video Configuration" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + GROUPBOX "Full Screen Settings",65453,5,3,171,141,WS_GROUP + CONTROL "Full Screen (Alt + Enter or double-click)",IDC_VIDEOCONFIG_FS, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,15,157,12 + CONTROL "Enter full screen mode after game is loaded",IDC_VIDEOCONFIG_AUTO_FS, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,29,154,12 + LTEXT "Sync method:",65452,11,108,46,10 + COMBOBOX IDC_VIDEOCONFIG_SYNC_METHOD_FS,59,106,105,50,CBS_DROPDOWNLIST | WS_TABSTOP + LTEXT "Mode:",13,11,67,23,9 + EDITTEXT IDC_VIDEOCONFIG_XRES,36,65,27,13,ES_RIGHT | ES_NUMBER + LTEXT "by",12,67,67,11,9 + EDITTEXT IDC_VIDEOCONFIG_YRES,79,65,27,13,ES_RIGHT | ES_NUMBER + LTEXT "@",11,110,67,11,9 + COMBOBOX IDC_VIDEOCONFIG_BPP,122,65,32,12,CBS_DROPDOWNLIST | WS_TABSTOP + LTEXT "bpp",10,157,67,14,9 + LTEXT "Special Filter:",65444,11,91,46,9 + COMBOBOX IDC_VIDEOCONFIG_SCALER_FS,59,89,105,46,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Windowed Settings",65441,182,3,164,141,WS_GROUP + LTEXT "Size Multiplier:",65440,190,22,50,8 + CTEXT "X:",65439,253,10,26,8 + CTEXT "Y:",65438,304,10,26,8 + EDITTEXT IDC_WINSIZE_MUL_X,244,20,44,12,ES_AUTOHSCROLL + EDITTEXT IDC_WINSIZE_MUL_Y,295,20,44,12,ES_AUTOHSCROLL + CONTROL "Force integral scaling factors",IDC_FORCE_INT_VIDEO_SCALARS, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,195,50,136,12 + CONTROL "Force aspect ratio correction",IDC_FORCE_ASPECT_CORRECTION, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,195,64,136,12 + LTEXT "Special Filter:",65429,188,91,46,9 + COMBOBOX IDC_VIDEOCONFIG_SCALER_WIN,236,89,103,47,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "Sync method:",65437,188,108,46,9 + COMBOBOX IDC_VIDEOCONFIG_SYNC_METHOD_WIN,236,106,103,47,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Drawing Area",65494,351,50,154,65,WS_GROUP + LTEXT "First line:",65436,367,68,40,9 + LTEXT "Last line:",65435,367,84,40,9 + CTEXT "NTSC",65434,413,57,27,8 + CTEXT "PAL/Dendy",65433,455,57,48,8 + EDITTEXT IDC_SCANLINE_FIRST_NTSC,414,66,27,12,ES_RIGHT | ES_NUMBER + EDITTEXT IDC_SCANLINE_LAST_NTSC,414,83,27,12,ES_RIGHT | ES_NUMBER + EDITTEXT IDC_SCANLINE_FIRST_PAL,465,66,27,12,ES_RIGHT | ES_NUMBER + EDITTEXT IDC_SCANLINE_LAST_PAL,465,83,27,12,ES_RIGHT | ES_NUMBER + CONTROL "Clip left and right sides (8 px on each)",IDC_VIDEOCONFIG_CLIPSIDES, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,357,98,140,12 + DEFPUSHBUTTON "Close",ID_CANCEL,449,150,56,14 + CONTROL "Allow more than 8 sprites per scanline",IDC_VIDEOCONFIG_NO8LIM, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,357,128,138,11 + GROUPBOX "Emulation",65430,351,117,154,27,WS_GROUP + CONTROL "Best Fit",IDC_VIDEOCONFIG_BESTFIT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,357,14,41,12 + CONTROL "Hide mouse cursor",IDC_VIDEOCONFIG_HIDEMOUSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,43,87,12 + GROUPBOX "Aspect ratio",65495,351,3,154,45,WS_GROUP + CONTROL "BG color",IDC_VIDEOCONFIG_CONSOLE_BGCOLOR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,401,14,44,12 + CONTROL "TV Aspect",IDC_VIDEOCONFIG_TVASPECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,357,29,48,12 + GROUPBOX "When resizing the window",65431,188,38,152,43,WS_GROUP + CONTROL "Square pixels",IDC_VIDEOCONFIG_SQUARE_PIXELS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,448,14,55,12 + EDITTEXT IDC_TVASPECT_X,407,28,41,12,ES_AUTOHSCROLL | WS_DISABLED + EDITTEXT IDC_TVASPECT_Y,458,28,41,12,ES_AUTOHSCROLL | WS_DISABLED + CTEXT "/",IDC_STATIC_SLASHTEXT,449,31,8,8,WS_DISABLED + LTEXT "DirectDraw:",65454,11,126,46,10 + LTEXT "DirectDraw:",65455,188,125,46,10 + COMBOBOX IDC_VIDEOCONFIG_DIRECTDRAW_FS,59,123,105,50,CBS_DROPDOWNLIST | WS_TABSTOP + COMBOBOX IDC_VIDEOCONFIG_DIRECTDRAW_WIN,236,123,103,47,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP +END + +IDD_RAMSEARCH DIALOGEX 0, 0, 287, 292 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION " RAM Search" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + 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 + PUSHBUTTON "&Reset",IDC_C_RESET,226,27,52,16 + PUSHBUTTON "&Eliminate",IDC_C_ELIMINATE,226,98,52,14 + GROUPBOX "Comparison Operator",IDC_STATIC,10,166,102,120,0,WS_EX_TRANSPARENT + CONTROL "Less Than",IDC_LESSTHAN,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,14,178,95,11 + CONTROL "Greater Than",IDC_MORETHAN,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,191,95,11 + CONTROL "Less Than or Equal To",IDC_NOMORETHAN,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,204,95,11 + CONTROL "Greater Than or Equal To",IDC_NOLESSTHAN,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,217,95,11 + CONTROL "Equal To",IDC_EQUALTO,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,230,95,11 + CONTROL "Not Equal To",IDC_DIFFERENTFROM,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,243,95,11 + CONTROL "Different By:",IDC_DIFFERENTBY,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,256,52,11 + CONTROL "Modulo",IDC_MODULO,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,14,269,35,11 + EDITTEXT IDC_EDIT_DIFFBY,69,255,38,12,ES_UPPERCASE | ES_AUTOHSCROLL | WS_DISABLED + EDITTEXT IDC_EDIT_MODBY,51,267,38,12,ES_UPPERCASE | ES_AUTOHSCROLL | WS_DISABLED + GROUPBOX "Compare To / By",IDC_STATIC,118,166,153,60,0,WS_EX_TRANSPARENT + CONTROL "Previous Value",IDC_PREVIOUSVALUE,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,121,176,67,10 + CONTROL "Specific Value:",IDC_SPECIFICVALUE,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,121,188,67,10 + CONTROL "Specific Address:",IDC_SPECIFICADDRESS,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,121,200,67,10 + CONTROL "Number of Changes:",IDC_NUMBEROFCHANGES,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,121,212,76,10 + EDITTEXT IDC_EDIT_COMPAREVALUE,203,187,63,12,ES_UPPERCASE | ES_AUTOHSCROLL | WS_DISABLED + EDITTEXT IDC_EDIT_COMPAREADDRESS,203,199,63,12,ES_UPPERCASE | ES_AUTOHSCROLL | WS_DISABLED + EDITTEXT IDC_EDIT_COMPARECHANGES,203,211,63,12,ES_UPPERCASE | ES_AUTOHSCROLL | WS_DISABLED + GROUPBOX "Data Type / Display",IDC_STATIC,196,228,75,45,0,WS_EX_TRANSPARENT + CONTROL "Signed",IDC_SIGNED,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,200,238,67,9 + CONTROL "Unsigned",IDC_UNSIGNED,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,200,249,67,9 + CONTROL "Hexadecimal",IDC_HEX,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,200,260,67,9 + CONTROL "Autosearch",IDC_C_AUTOSEARCH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,200,275,57,11 + GROUPBOX "Data Size",IDC_STATIC,117,228,73,58,0,WS_EX_TRANSPARENT + CONTROL "1 byte",IDC_1_BYTE,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,121,238,61,11 + CONTROL "2 bytes",IDC_2_BYTES,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,121,249,61,11 + CONTROL "4 bytes",IDC_4_BYTES,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,121,260,61,11 + CONTROL "Check Misaligned",IDC_MISALIGN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,121,273,65,8 + PUSHBUTTON "&Clear Change Counts",IDC_C_RESET_CHANGES,226,45,52,20,BS_MULTILINE + PUSHBUTTON "&Undo",IDC_C_UNDO,226,67,52,16,WS_DISABLED + LTEXT "Is",IDC_STATIC,92,270,12,8 + CONTROL "Search ROM",IDC_C_SEARCHROM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,227,85,54,11 + PUSHBUTTON "&Hex Editor",IDC_C_HEXEDITOR,226,146,52,14 +END + +IDD_RAMWATCH DIALOGEX 0, 0, 269, 298 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU +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 | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP,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 + PUSHBUTTON "Duplicate",IDC_C_WATCH_DUPLICATE,226,117,34,14 + PUSHBUTTON "Add Cheat",IDC_C_ADDCHEAT,223,168,42,16,WS_DISABLED + GROUPBOX "Watches",IDC_STATIC,222,11,42,145 + CONTROL "",ID_WATCHES_UPDOWN,"msctls_updown32",WS_TABSTOP,232,23,19,36 + PUSHBUTTON "Separator",IDC_C_WATCH_SEPARATE,225,137,36,14 +END + +IDD_EDITWATCH DIALOGEX 0, 0, 181, 125 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION " Edit Watch" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + CTEXT "&Address:",IDC_SPECIFICADDRESS,15,12,30,8 + EDITTEXT IDC_EDIT_COMPAREADDRESS,48,10,65,12,ES_UPPERCASE | ES_AUTOHSCROLL + CTEXT "&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,51,0,WS_EX_TRANSPARENT + CONTROL "&Signed",IDC_SIGNED,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,18,47,67,9 + CONTROL "&Unsigned",IDC_UNSIGNED,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,18,57,67,9 + CONTROL "&Hexadecimal",IDC_HEX,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,18,67,67,9 + CONTROL "&Binary", IDC_BINARY, "Button", BS_AUTORADIOBUTTON | WS_TABSTOP, 18, 77, 67, 9 + GROUPBOX "Data Size",IDC_DATASIZE_GROUPBOX,94,37,73,42,0,WS_EX_TRANSPARENT + CONTROL "&1 byte",IDC_1_BYTE,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,98,47,61,11 + CONTROL "&2 bytes",IDC_2_BYTES,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,98,57,61,11 + CONTROL "&4 bytes",IDC_4_BYTES,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,98,67,61,11 + DEFPUSHBUTTON "&OK",IDOK,66,90,50,14 + PUSHBUTTON "&Cancel",IDCANCEL,120,90,50,147 +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" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + DEFPUSHBUTTON "Close",BTN_CLOSE,177,97,56,14 + GROUPBOX "",GRP_GAMEPAD1,4,8,232,82,WS_GROUP + PUSHBUTTON "Up",304,35,36,24,12 + PUSHBUTTON "Left",306,9,54,25,12 + PUSHBUTTON "Right",307,60,54,24,12 + PUSHBUTTON "Down",305,35,73,24,12 + PUSHBUTTON "Select",302,91,54,26,12 + PUSHBUTTON "Start",303,126,54,26,12 + PUSHBUTTON "Y",301,164,53,16,12 + PUSHBUTTON "B",300,181,66,16,12 + PUSHBUTTON "A",308,199,53,16,12 + PUSHBUTTON "X",309,181,40,16,12 + PUSHBUTTON "L",310,10,19,32,12 + 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_RADIO_GREENZONE_SAVINGMODE_ALLFRAMES, + "Button",BS_AUTORADIOBUTTON,122,117,77,10 + CONTROL " every 16th frame",IDC_RADIO_GREENZONE_SAVINGMODE_EVERY16FRAME, + "Button",BS_AUTORADIOBUTTON,122,131,77,10 + CONTROL " marked frames",IDC_RADIO_GREENZONE_SAVINGMODE_MARKEDFRAMES, + "Button",BS_AUTORADIOBUTTON,122,145,77,10 + CONTROL " don't save",IDC_RADIO_GREENZONE_SAVINGMODE_DONTSAVE, + "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 + +IDD_EDIT_HEADER DIALOGEX 0, 0, 321, 258 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "iNES Header Editor" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + GROUPBOX "iNES Header",IDC_INESHEADER_GROUP,6,3,309,231,WS_DISABLED + GROUPBOX "Version",IDC_VERSION_GROUP,14,13,79,27,WS_DISABLED + CONTROL "iNES",IDC_RADIO_VERSION_STANDARD,"Button",BS_AUTORADIOBUTTON | WS_DISABLED | WS_GROUP | WS_TABSTOP,20,24,27,10 + CONTROL "NES 2.0",IDC_RADIO_VERSION_INES20,"Button",BS_AUTORADIOBUTTON | WS_DISABLED,51,24,38,10 + GROUPBOX "Mapper",IDC_MAPPER_GROUP,98,13,210,27,WS_DISABLED + LTEXT "Mapper#:",IDC_MAPPER_TEXT,104,24,33,8,WS_DISABLED + COMBOBOX IDC_MAPPER_COMBO,139,22,115,30,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + LTEXT "Sub#:",IDC_SUBMAPPER_TEXT,261,24,21,8,WS_DISABLED + EDITTEXT IDC_SUBMAPPER_EDIT,284,21,15,14,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED + GROUPBOX "PRG",IDC_PRG_GROUP,14,42,294,27,WS_DISABLED + LTEXT "PRG ROM:",IDC_PRGROM_TEXT,20,53,34,8,WS_DISABLED + COMBOBOX IDC_PRGROM_COMBO,57,51,46,30,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_UPPERCASE | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + LTEXT "PRG RAM:",IDC_PRGRAM_TEXT,115,53,34,8,WS_DISABLED + COMBOBOX IDC_PRGRAM_COMBO,151,51,46,30,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_UPPERCASE | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + CONTROL "Battery-backed NVRAM",IDC_CHECK_BATTERYNVRAM,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,211,53,86,10 + LTEXT "PRG NVRAM:",IDC_PRGNVRAM_TEXT,208,53,42,8,WS_DISABLED + COMBOBOX IDC_PRGNVRAM_COMBO,253,51,46,30,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_UPPERCASE | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + GROUPBOX "CHR",IDC_CHR_GROUP,14,71,294,27,WS_DISABLED + LTEXT "CHR ROM:",IDC_CHRROM_TEXT,20,82,35,8,WS_DISABLED + COMBOBOX IDC_CHRROM_COMBO,57,80,46,30,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_UPPERCASE | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + LTEXT "CHR RAM:",IDC_CHRRAM_TEXT,115,82,34,8,WS_DISABLED + COMBOBOX IDC_CHRRAM_COMBO,151,80,46,30,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_UPPERCASE | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + LTEXT "CHR NVRAM:",IDC_CHRNVRAM_TEXT,207,82,43,8,WS_DISABLED + COMBOBOX IDC_CHRNVRAM_COMBO,253,80,46,30,CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_UPPERCASE | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Mirroring",IDC_MIRRORING_GROUP,14,102,59,46,WS_DISABLED + CONTROL "Horizontal",IDC_RADIO_MIRR_HORIZONTAL,"Button",BS_AUTORADIOBUTTON | WS_DISABLED | WS_GROUP | WS_TABSTOP,19,112,48,10 + CONTROL "Vertical",IDC_RADIO_MIRR_VERTICAL,"Button",BS_AUTORADIOBUTTON | WS_DISABLED,19,123,39,10 + CONTROL "Four-screen",IDC_RADIO_MIRR_4SCREEN,"Button",BS_AUTORADIOBUTTON | WS_DISABLED,19,134,51,10 + CONTROL "Trainer",IDC_CHECK_TRAINER,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,14,152,55,10 + GROUPBOX "Region",IDC_REGION_GROUP,78,102,40,58,WS_DISABLED + CONTROL "NTSC",IDC_RADIO_REGION_NTSC,"Button",BS_AUTORADIOBUTTON | WS_DISABLED | WS_GROUP | WS_TABSTOP,83,112,29,10 + CONTROL "PAL",IDC_RADIO_REGION_PAL,"Button",BS_AUTORADIOBUTTON | WS_DISABLED,83,123,28,10 + CONTROL "Dual",IDC_RADIO_REGION_DUAL,"Button",BS_AUTORADIOBUTTON | WS_DISABLED,83,146,30,10 + CONTROL "Dendy",IDC_RADIO_REGION_DENDY,"Button",BS_AUTORADIOBUTTON | WS_DISABLED,83,134,33,10 + GROUPBOX "System",IDC_SYSTEM_GROUP,123,102,184,109,WS_DISABLED + CONTROL "Normal",IDC_RADIO_SYSTEM_NORMAL,"Button",BS_AUTORADIOBUTTON | WS_DISABLED | WS_GROUP | WS_TABSTOP,129,114,34,10 + CONTROL "VS. Sys",IDC_RADIO_SYSTEM_VS,"Button",BS_AUTORADIOBUTTON | WS_DISABLED,167,114,37,10 + CONTROL "Playchoice-10",IDC_RADIO_SYSTEM_PLAYCHOICE10,"Button",BS_AUTORADIOBUTTON | WS_DISABLED,208,114,56,10 + CONTROL "Extend",IDC_RADIO_SYSTEM_EXTEND,"Button",BS_AUTORADIOBUTTON | WS_DISABLED,268,114,35,10 + GROUPBOX "Extend System",IDC_EXTEND_SYSTEM_GROUP,130,176,171,29,WS_DISABLED + LTEXT "Console:",IDC_EXTEND_SYSTEM_TEXT,136,189,29,8,WS_DISABLED + COMBOBOX IDC_SYSTEM_EXTEND_COMBO,168,186,127,30,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + GROUPBOX "VS. System",IDC_VS_SYSTEM_GROUP,130,126,171,46,WS_DISABLED + LTEXT "Hardware:",IDC_VS_SYSTEM_TEXT,136,138,35,8,WS_DISABLED + COMBOBOX IDC_VS_SYSTEM_COMBO,174,136,121,30,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + LTEXT "PPU:",IDC_VS_PPU_TEXT,136,155,16,8,WS_DISABLED + COMBOBOX IDC_VS_PPU_COMBO,155,154,140,30,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + CONTROL "iNES 1.0 Unofficial Properties",IDC_CHECK_UNOFFICIAL, + "Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_DISABLED | WS_TABSTOP,14,164,103,10 + GROUPBOX "iNES 1.0 Unofficial Properties",IDC_UNOFFICIAL_GROUP,13,176,104,35,WS_DISABLED + CONTROL "Dual region",IDC_CHECK_UNOFFICIAL_EXTRA_REGION,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_DISABLED | WS_TABSTOP,19,186,48,10 + CONTROL "PRG RAM exists",IDC_CHECK_UNOFFICIAL_PRGRAM,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_DISABLED | WS_TABSTOP,70,188,43,17 + CONTROL "Bus conflict",IDC_CHECK_UNOFFICIAL_BUS_CONFLICT,"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_DISABLED | WS_TABSTOP,19,198,49,10 + LTEXT "Input device:",IDC_INPUT_DEVICE_TEXT,106,218,44,8,WS_DISABLED + COMBOBOX IDC_INPUT_DEVICE_COMBO,153,216,154,30,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_DISABLED | WS_VSCROLL | WS_TABSTOP + LTEXT "Misc. ROM(s)",IDC_MISCELLANEOUS_ROMS_TEXT,29,218,48,8,WS_DISABLED + EDITTEXT IDC_MISCELLANEOUS_ROMS_EDIT,14,215,12,14,ES_AUTOHSCROLL | ES_NUMBER | WS_DISABLED + PUSHBUTTON "Restore",IDC_RESTORE_BUTTON,6,237,44,14,WS_DISABLED + PUSHBUTTON "Save as...",IDSAVE,223,237,44,14,WS_DISABLED + DEFPUSHBUTTON "Close",IDCLOSE,270,237,44,14 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + "DIRCONFIG", DIALOG + BEGIN + LEFTMARGIN, 10 + RIGHTMARGIN, 295 + TOPMARGIN, 8 + END + + "DWBDIALOG", DIALOG + BEGIN + END + + "FKBDIALOG", DIALOG + BEGIN + END + + "GAMEPADDIALOG", DIALOG + BEGIN + END + + "GUICONFIG", DIALOG + BEGIN + END + + "INPUTCONFIG", DIALOG + BEGIN + LEFTMARGIN, 10 + RIGHTMARGIN, 338 + TOPMARGIN, 8 + BOTTOMMARGIN, 191 + END + + "MAHJONGDIALOG", DIALOG + BEGIN + END + + "NETMOO", DIALOG + BEGIN + LEFTMARGIN, 10 + RIGHTMARGIN, 357 + TOPMARGIN, 8 + BOTTOMMARGIN, 201 + END + + "PALCONFIG", DIALOG + BEGIN + LEFTMARGIN, 10 + RIGHTMARGIN, 218 + TOPMARGIN, 8 + BOTTOMMARGIN, 209 + END + + "SOUNDCONFIG", DIALOG + BEGIN + LEFTMARGIN, 10 + RIGHTMARGIN, 324 + TOPMARGIN, 8 + BOTTOMMARGIN, 274 + END + + "TIMINGCONFIG", DIALOG + BEGIN + LEFTMARGIN, 10 + RIGHTMARGIN, 193 + TOPMARGIN, 8 + BOTTOMMARGIN, 101 + END + + "MOVIEOPTIONS", DIALOG + BEGIN + LEFTMARGIN, 4 + RIGHTMARGIN, 138 + TOPMARGIN, 8 + BOTTOMMARGIN, 217 + END + + "DWBDIALOGSIMPLE", DIALOG + BEGIN + END + + "MEMWATCH", DIALOG + BEGIN + RIGHTMARGIN, 260 + BOTTOMMARGIN, 269 + END + + "DEBUGGER", DIALOG + BEGIN + BOTTOMMARGIN, 332 + END + + "TRACER", DIALOG + BEGIN + END + + "ADDBP", DIALOG + BEGIN + RIGHTMARGIN, 195 + BOTTOMMARGIN, 123 + END + + "NTVIEW", DIALOG + BEGIN + END + + "GGCONV", DIALOG + BEGIN + END + + "MONITOR", DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 312 + TOPMARGIN, 7 + BOTTOMMARGIN, 336 + END + + "MEMVIEWFIND", DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 275 + TOPMARGIN, 7 + BOTTOMMARGIN, 74 + END + + "IDD_RECORDINP", DIALOG + BEGIN + BOTTOMMARGIN, 66 + END + + "IDD_REPLAYINP", DIALOG + BEGIN + BOTTOMMARGIN, 198 + END + + "TASEDITOR", DIALOG + BEGIN + END + + IDD_TASEDITOR_ABOUT, DIALOG + BEGIN + END + + IDD_TASEDITOR_NEWPROJECT, DIALOG + BEGIN + END + + IDD_TASEDITOR_EXPORT, DIALOG + BEGIN + END + + IDD_TASEDITOR_FINDNOTE, DIALOG + BEGIN + END + + IDD_TASEDITOR_SAVECOMPACT, DIALOG + BEGIN + END + + "ASSEMBLER", DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 195 + TOPMARGIN, 7 + BOTTOMMARGIN, 128 + END + + "NAMEBOOKMARKDLG", DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 179 + TOPMARGIN, 7 + BOTTOMMARGIN, 66 + END + + "CDLOGGER", DIALOG + BEGIN + END + + "PPUVIEW", DIALOG + BEGIN + END + + "ARCHIVECHOOSERDIALOG", DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 258 + TOPMARGIN, 7 + BOTTOMMARGIN, 152 + END + + "TEXTHOOKER", DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 449 + TOPMARGIN, 7 + BOTTOMMARGIN, 320 + END + + "CHEATCONSOLE", DIALOG + BEGIN + RIGHTMARGIN, 386 + BOTTOMMARGIN, 225 + END + + "VIDEOCONFIG", DIALOG + 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 + + IDD_EDIT_HEADER, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 314 + TOPMARGIN, 7 + BOTTOMMARGIN, 251 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// AFX_DIALOG_LAYOUT +// + +NTVIEW AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +TIMINGCONFIG AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +IDD_TASEDITOR_SAVINGOPTIONS AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +IDD_EDITWATCH AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +GGCONV AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +CHEATCONSOLE AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +IDD_EDIT_HEADER AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +ADDBP AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +MEMWATCH AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +ASSEMBLER AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +MEMVIEWFIND AFX_DIALOG_LAYOUT +BEGIN + 0 +END + +VIDEOCONFIG AFX_DIALOG_LAYOUT +BEGIN + 0 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Accelerator +// + +IDR_TASEDITOR_ACCELERATORS ACCELERATORS +BEGIN + "A", ACCEL_CTRL_A, VIRTKEY, CONTROL, NOINVERT + "B", ACCEL_CTRL_B, VIRTKEY, CONTROL, NOINVERT + "C", ACCEL_CTRL_C, VIRTKEY, CONTROL, NOINVERT + VK_DELETE, ACCEL_CTRL_DELETE, VIRTKEY, CONTROL, NOINVERT + VK_DOWN, ACCEL_CTRL_DOWN, VIRTKEY, CONTROL, NOINVERT + VK_END, ACCEL_CTRL_END, VIRTKEY, CONTROL, NOINVERT + "F", ACCEL_CTRL_F, VIRTKEY, CONTROL, NOINVERT + VK_HOME, ACCEL_CTRL_HOME, VIRTKEY, CONTROL, NOINVERT + VK_INSERT, ACCEL_CTRL_INSERT, VIRTKEY, CONTROL, NOINVERT + VK_LEFT, ACCEL_CTRL_LEFT, VIRTKEY, CONTROL, NOINVERT + VK_NEXT, ACCEL_CTRL_PGDN, VIRTKEY, CONTROL, NOINVERT + VK_PRIOR, ACCEL_CTRL_PGUP, VIRTKEY, CONTROL, NOINVERT + "Q", ACCEL_CTRL_Q, VIRTKEY, CONTROL, NOINVERT + VK_RIGHT, ACCEL_CTRL_RIGHT, VIRTKEY, CONTROL, NOINVERT + "S", ACCEL_CTRL_S, VIRTKEY, CONTROL, NOINVERT + VK_INSERT, ACCEL_CTRL_SHIFT_INS, VIRTKEY, SHIFT, CONTROL, NOINVERT + "V", ACCEL_CTRL_SHIFT_V, VIRTKEY, SHIFT, CONTROL, NOINVERT + VK_UP, ACCEL_CTRL_UP, VIRTKEY, CONTROL, NOINVERT + "V", ACCEL_CTRL_V, VIRTKEY, CONTROL, NOINVERT + "W", ACCEL_CTRL_W, VIRTKEY, CONTROL, NOINVERT + "X", ACCEL_CTRL_X, VIRTKEY, CONTROL, NOINVERT + "Y", ACCEL_CTRL_Y, VIRTKEY, CONTROL, NOINVERT + "Z", ACCEL_CTRL_Z, VIRTKEY, CONTROL, NOINVERT + VK_DELETE, ACCEL_DEL, VIRTKEY, NOINVERT + VK_END, ACCEL_END, VIRTKEY, NOINVERT + VK_HOME, ACCEL_HOME, VIRTKEY, NOINVERT + VK_INSERT, ACCEL_INS, VIRTKEY, NOINVERT + VK_NEXT, ACCEL_PGDN, VIRTKEY, NOINVERT + VK_PRIOR, ACCEL_PGUP, VIRTKEY, NOINVERT + VK_DOWN, ACCEL_SHIFT_DOWN, VIRTKEY, SHIFT, NOINVERT + VK_END, ACCEL_SHIFT_END, VIRTKEY, SHIFT, NOINVERT + VK_HOME, ACCEL_SHIFT_HOME, VIRTKEY, SHIFT, NOINVERT + VK_LEFT, ACCEL_SHIFT_LEFT, VIRTKEY, SHIFT, NOINVERT + VK_NEXT, ACCEL_SHIFT_PGDN, VIRTKEY, SHIFT, NOINVERT + VK_PRIOR, ACCEL_SHIFT_PGUP, VIRTKEY, SHIFT, NOINVERT + VK_RIGHT, ACCEL_SHIFT_RIGHT, VIRTKEY, SHIFT, NOINVERT + VK_UP, ACCEL_SHIFT_UP, VIRTKEY, SHIFT, NOINVERT +END + +IDR_RWACCELERATOR ACCELERATORS +BEGIN + "N", RAMMENU_FILE_NEW, VIRTKEY, CONTROL + "O", RAMMENU_FILE_OPEN, VIRTKEY, CONTROL + "S", RAMMENU_FILE_SAVE, VIRTKEY, CONTROL + "S", RAMMENU_FILE_SAVEAS, VIRTKEY, SHIFT, CONTROL + "A", IDC_C_WATCH_DUPLICATE, VIRTKEY + "E", IDC_C_WATCH_EDIT, VIRTKEY + "D", IDC_C_WATCH_DOWN, VIRTKEY + "U", IDC_C_WATCH_UP, VIRTKEY + "N", IDC_C_WATCH, VIRTKEY + "R", IDC_C_WATCH_REMOVE, VIRTKEY +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +IDB_BITMAP0 BITMAP "res\\te_0.bmp" +IDB_BITMAP1 BITMAP "res\\te_1.bmp" +IDB_BITMAP2 BITMAP "res\\te_2.bmp" +IDB_BITMAP3 BITMAP "res\\te_3.bmp" +IDB_BITMAP4 BITMAP "res\\te_4.bmp" +IDB_BITMAP5 BITMAP "res\\te_5.bmp" +IDB_BITMAP6 BITMAP "res\\te_6.bmp" +IDB_BITMAP7 BITMAP "res\\te_7.bmp" +IDB_BITMAP8 BITMAP "res\\te_8.bmp" +IDB_BITMAP9 BITMAP "res\\te_9.bmp" +IDB_BITMAP10 BITMAP "res\\te_10.bmp" +IDB_BITMAP11 BITMAP "res\\te_11.bmp" +IDB_BITMAP12 BITMAP "res\\te_12.bmp" +IDB_BITMAP13 BITMAP "res\\te_13.bmp" +IDB_BITMAP14 BITMAP "res\\te_14.bmp" +IDB_BITMAP15 BITMAP "res\\te_15.bmp" +IDB_BITMAP16 BITMAP "res\\te_16.bmp" +IDB_BITMAP17 BITMAP "res\\te_17.bmp" +IDB_BITMAP18 BITMAP "res\\te_18.bmp" +IDB_BITMAP19 BITMAP "res\\te_19.bmp" +IDB_TE_ARROW BITMAP "res\\te_arrow.bmp" +IDB_TE_GREEN_ARROW BITMAP "res\\te_green_arrow.bmp" +IDB_TE_GREEN_BLUE_ARROW BITMAP "res\\te_green_blue_arrow.bmp" +IDB_PIANO_0 BITMAP "res\\te_piano_0.bmp" +IDB_PIANO_1 BITMAP "res\\te_piano_1.bmp" +IDB_PIANO_2 BITMAP "res\\te_piano_2.bmp" +IDB_PIANO_3 BITMAP "res\\te_piano_3.bmp" +IDB_PIANO_4 BITMAP "res\\te_piano_4.bmp" +IDB_PIANO_5 BITMAP "res\\te_piano_5.bmp" +IDB_PIANO_6 BITMAP "res\\te_piano_6.bmp" +IDB_PIANO_7 BITMAP "res\\te_piano_7.bmp" +IDB_PIANO_8 BITMAP "res\\te_piano_8.bmp" +IDB_PIANO_9 BITMAP "res\\te_piano_9.bmp" +IDB_PIANO_10 BITMAP "res\\te_piano_10.bmp" +IDB_PIANO_11 BITMAP "res\\te_piano_11.bmp" +IDB_PIANO_12 BITMAP "res\\te_piano_12.bmp" +IDB_PIANO_13 BITMAP "res\\te_piano_13.bmp" +IDB_PIANO_14 BITMAP "res\\te_piano_14.bmp" +IDB_PIANO_15 BITMAP "res\\te_piano_15.bmp" +IDB_PIANO_16 BITMAP "res\\te_piano_16.bmp" +IDB_PIANO_17 BITMAP "res\\te_piano_17.bmp" +IDB_PIANO_18 BITMAP "res\\te_piano_18.bmp" +IDB_PIANO_19 BITMAP "res\\te_piano_19.bmp" +IDB_PIANO_PLAYBACK_0 BITMAP "res\\te_piano_0_playback.bmp" +IDB_PIANO_PLAYBACK_1 BITMAP "res\\te_piano_1_playback.bmp" +IDB_PIANO_PLAYBACK_2 BITMAP "res\\te_piano_2_playback.bmp" +IDB_PIANO_PLAYBACK_3 BITMAP "res\\te_piano_3_playback.bmp" +IDB_PIANO_PLAYBACK_4 BITMAP "res\\te_piano_4_playback.bmp" +IDB_PIANO_PLAYBACK_5 BITMAP "res\\te_piano_5_playback.bmp" +IDB_PIANO_PLAYBACK_6 BITMAP "res\\te_piano_6_playback.bmp" +IDB_PIANO_PLAYBACK_7 BITMAP "res\\te_piano_7_playback.bmp" +IDB_PIANO_PLAYBACK_8 BITMAP "res\\te_piano_8_playback.bmp" +IDB_PIANO_PLAYBACK_9 BITMAP "res\\te_piano_9_playback.bmp" +IDB_PIANO_PLAYBACK_10 BITMAP "res\\te_piano_10_playback.bmp" +IDB_PIANO_PLAYBACK_11 BITMAP "res\\te_piano_11_playback.bmp" +IDB_PIANO_PLAYBACK_12 BITMAP "res\\te_piano_12_playback.bmp" +IDB_PIANO_PLAYBACK_13 BITMAP "res\\te_piano_13_playback.bmp" +IDB_PIANO_PLAYBACK_14 BITMAP "res\\te_piano_14_playback.bmp" +IDB_PIANO_PLAYBACK_15 BITMAP "res\\te_piano_15_playback.bmp" +IDB_PIANO_PLAYBACK_16 BITMAP "res\\te_piano_16_playback.bmp" +IDB_PIANO_PLAYBACK_17 BITMAP "res\\te_piano_17_playback.bmp" +IDB_PIANO_PLAYBACK_18 BITMAP "res\\te_piano_18_playback.bmp" +IDB_PIANO_PLAYBACK_19 BITMAP "res\\te_piano_19_playback.bmp" +IDB_PIANO_LOSTPOS_0 BITMAP "res\\te_piano_0_lostpos.bmp" +IDB_PIANO_LOSTPOS_1 BITMAP "res\\te_piano_1_lostpos.bmp" +IDB_PIANO_LOSTPOS_2 BITMAP "res\\te_piano_2_lostpos.bmp" +IDB_PIANO_LOSTPOS_3 BITMAP "res\\te_piano_3_lostpos.bmp" +IDB_PIANO_LOSTPOS_4 BITMAP "res\\te_piano_4_lostpos.bmp" +IDB_PIANO_LOSTPOS_5 BITMAP "res\\te_piano_5_lostpos.bmp" +IDB_PIANO_LOSTPOS_6 BITMAP "res\\te_piano_6_lostpos.bmp" +IDB_PIANO_LOSTPOS_7 BITMAP "res\\te_piano_7_lostpos.bmp" +IDB_PIANO_LOSTPOS_8 BITMAP "res\\te_piano_8_lostpos.bmp" +IDB_PIANO_LOSTPOS_9 BITMAP "res\\te_piano_9_lostpos.bmp" +IDB_PIANO_LOSTPOS_10 BITMAP "res\\te_piano_10_lostpos.bmp" +IDB_PIANO_LOSTPOS_11 BITMAP "res\\te_piano_11_lostpos.bmp" +IDB_PIANO_LOSTPOS_12 BITMAP "res\\te_piano_12_lostpos.bmp" +IDB_PIANO_LOSTPOS_13 BITMAP "res\\te_piano_13_lostpos.bmp" +IDB_PIANO_LOSTPOS_14 BITMAP "res\\te_piano_14_lostpos.bmp" +IDB_PIANO_LOSTPOS_15 BITMAP "res\\te_piano_15_lostpos.bmp" +IDB_PIANO_LOSTPOS_16 BITMAP "res\\te_piano_16_lostpos.bmp" +IDB_PIANO_LOSTPOS_17 BITMAP "res\\te_piano_17_lostpos.bmp" +IDB_PIANO_LOSTPOS_18 BITMAP "res\\te_piano_18_lostpos.bmp" +IDB_PIANO_LOSTPOS_19 BITMAP "res\\te_piano_19_lostpos.bmp" +IDB_BITMAP_SELECTED0 BITMAP "res\\te_0_selected.bmp" +IDB_BITMAP_SELECTED1 BITMAP "res\\te_1_selected.bmp" +IDB_BITMAP_SELECTED2 BITMAP "res\\te_2_selected.bmp" +IDB_BITMAP_SELECTED3 BITMAP "res\\te_3_selected.bmp" +IDB_BITMAP_SELECTED4 BITMAP "res\\te_4_selected.bmp" +IDB_BITMAP_SELECTED5 BITMAP "res\\te_5_selected.bmp" +IDB_BITMAP_SELECTED6 BITMAP "res\\te_6_selected.bmp" +IDB_BITMAP_SELECTED7 BITMAP "res\\te_7_selected.bmp" +IDB_BITMAP_SELECTED8 BITMAP "res\\te_8_selected.bmp" +IDB_BITMAP_SELECTED9 BITMAP "res\\te_9_selected.bmp" +IDB_BITMAP_SELECTED10 BITMAP "res\\te_10_selected.bmp" +IDB_BITMAP_SELECTED11 BITMAP "res\\te_11_selected.bmp" +IDB_BITMAP_SELECTED12 BITMAP "res\\te_12_selected.bmp" +IDB_BITMAP_SELECTED13 BITMAP "res\\te_13_selected.bmp" +IDB_BITMAP_SELECTED14 BITMAP "res\\te_14_selected.bmp" +IDB_BITMAP_SELECTED15 BITMAP "res\\te_15_selected.bmp" +IDB_BITMAP_SELECTED16 BITMAP "res\\te_16_selected.bmp" +IDB_BITMAP_SELECTED17 BITMAP "res\\te_17_selected.bmp" +IDB_BITMAP_SELECTED18 BITMAP "res\\te_18_selected.bmp" +IDB_BITMAP_SELECTED19 BITMAP "res\\te_19_selected.bmp" +IDB_BRANCH_SPRITESHEET BITMAP "res\\branch_spritesheet.bmp" +#endif // English(U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/src/drivers/win/resource.h b/src/drivers/win/resource.h index badd2def..50d1f1c3 100644 --- a/src/drivers/win/resource.h +++ b/src/drivers/win/resource.h @@ -1,1006 +1,1129 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated file -// for res.rc -// -#define CLOSE_BUTTON 1 -#define BUTTON_CLOSE 1 -#define BTN_CLOSE 1 -#define MENU_OPEN_FILE 100 -#define EDIT_ROMS 100 -#define LBL_LOG_TEXT 100 -#define LBL_KEY_COMBO 100 -#define LBL_CDLOGGER_CODECOUNT 100 -#define CHECK_PALETTE_ENABLED 100 -#define LBL_DWBDIALOG_TEXT 100 -#define GRP_GAMEPAD1 100 -#define IDC_TRACER_LOG 100 -#define MENU_MV_FILE_SAVE 100 -#define IDC_ROMPATCHER_OFFSET_BOX 100 -#define IDC_ASSEMBLER_HISTORY 100 -#define MENU_CLOSE_FILE 101 -#define CB_DISABLE_SPEED_THROTTLING 101 -#define LBL_CDLOGGER_DATACOUNT 101 -#define GRP_PPUVIEW_TABLES 101 -#define IDC_NETMOO_STATUS 101 -#define GRP_GAMEPAD2 101 -#define IDC_LIST_CHEATS 101 -#define IDC_SCRL_TRACER_LOG 101 -#define MENU_MV_FILE_SAVE_AS 101 -#define IDC_VIDEOCONFIG_FS 101 -#define IDC_DEBUGGER_BP_ADD 101 -#define IDC_ROMPATCHER_DOTNES_OFFSET 101 -#define IDC_NTVIEW_TABLE_BOX 101 -#define IDC_ASSEMBLER_DISASSEMBLY 101 -#define MENU_RECENT_FILES 102 -#define CB_LOAD_FILE_OPEN 102 -#define LBL_CDLOGGER_UNDEFCOUNT 102 -#define IDC_PPUVIEW_SCANLINE 102 -#define IDC_NETMOO_CMD_INPUT 102 -#define IDC_CHEAT_ADDR 102 -#define IDC_BTN_START_STOP_LOGGING 102 -#define MENU_MV_FILE_LOAD_TBL 102 -#define IDC_VIDEOCONFIG_AUTO_FS 102 -#define IDC_DEBUGGER_BP_DEL 102 -#define IDC_ADDBP_MODE_R 102 -#define IDC_ROMPATCHER_OFFSET 102 -#define IDC_NTVIEW_SCANLINE 102 -#define IDC_ASSEMBLER_PATCH_DISASM 102 -#define CHECK_PALETTE_GRAYSCALE 102 -#define BTN_CDLOGGER_RESET 103 -#define LBL_PPUVIEW_TILE1 103 -#define IDC_CHEAT_VAL 103 -#define IDC_RADIO_LOG_LAST 103 -#define MENU_MV_FILE_UNLOAD_TBL 103 -#define IDC_DEBUGGER_BP_EDIT 103 -#define IDC_ADDBP_MODE_W 103 -#define IDC_ROMPATCHER_BTN_EDIT 103 -#define IDC_NTVIEW_PROPERTIES_LINE_1 103 -#define IDC_VIDEOCONFIG_HIDEMOUSE 103 -#define CB_AUTO_HIDE_MENU 104 -#define COMBO_PAD1 104 -#define BTN_CDLOGGER_LOAD 104 -#define LBL_PPUVIEW_TILE2 104 -#define IDC_CHEAT_NAME 104 -#define IDC_RADIO_LOG_TO_FILE 104 -#define MENU_MV_FILE_DUMP_RAM 104 -#define IDC_VIDEOCONFIG_SYNC_METHOD_WIN 104 -#define IDC_DEBUGGER_RUN 104 -#define IDC_ADDBP_MODE_X 104 -#define IDC_ROMPATCHER_CURRENT_DATA_BOX 104 -#define IDC_NTVIEW_PROPERTIES_LINE_2 104 -#define CHECK_PALETTE_CUSTOM 104 -#define COMBO_PAD2 105 -#define CB_SET_HIGH_PRIORITY 105 -#define BTN_CDLOGGER_START_PAUSE 105 -#define LBL_PPUVIEW_PALETTES 105 -#define IDC_CHEAT_VAL_KNOWN 105 -#define MENU_MV_FILE_DUMP_PPU 105 -#define IDC_VIDEOCONFIG_SYNC_METHOD_FS 105 -#define IDC_DEBUGGER_STEP_IN 105 -#define IDC_TRACER_LOG_SIZE 105 -#define IDC_ADDBP_MEM_CPU 105 -#define IDC_ROMPATCHER_CURRENT_DATA 105 -#define IDC_NTVIEW_PROPERTIES_LINE_3 105 -#define BTN_PORT1 106 -#define BTN_CDLOGGER_SAVE_AS 106 -#define IDC_CHEAT_LIST_POSSIBILITIES 106 -#define IDC_VIDEOCONFIG_CLIPSIDES 106 -#define IDC_DEBUGGER_STEP_OUT 106 -#define IDC_ADDBP_MEM_PPU 106 -#define IDC_NTVIEW_PROPERTIES_LINE_4 106 -#define IDC_TEXT_LINES_TO_THIS_WINDOW 106 -#define BTN_PORT2 107 -#define BTN_CDLOGGER_SAVE 107 -#define IDC_DEBUGGER_STEP_OVER 107 -#define IDC_ADDBP_MEM_SPR 107 -#define IDC_ROMPATCHER_DISASSEMBLY 107 -#define IDC_VIDEOCONFIG_BESTFIT 107 -#define IDR_ACCELERATOR1 108 -#define BTN_CDLOGGER_SAVE_STRIPPED 108 -#define IDC_CHEAT_VAL_NE_BY 108 -#define IDC_DEBUGGER_SEEK_PC 108 -#define IDR_TASEDITOR_ACCELERATORS 108 -#define IDC_VIDEOCONFIG_CONSOLE_BGCOLOR 108 -#define IDC_CHEAT_VAL_GT_BY 109 -#define IDC_DEBUGGER_SEEK_TO 109 -#define IDC_ROMPATCHER_PATCH_DATA 109 -#define IDC_ADDBP_MODE_F 109 -#define BTN_CDLOGGER_SAVE_UNUSED 109 -#define IDC_VIDEOCONFIG_TVASPECT 109 -#define IDC_GROUP_LOG_OPTIONS 109 -#define IDC_CHEAT_VAL_LT_BY 110 -#define MENU_SAVE_STATE 110 -#define CB_ASK_EXIT 110 -#define COMBO_FAM 110 -#define IDB_TE_ARROW 110 -#define IDC_CHECK_LOG_REGISTERS 110 -#define IDC_DEBUGGER_BREAK_ON_BAD_OP 110 -#define IDC_ROMPATCHER_BTN_APPLY 110 -#define LBL_CDLOGGER_RENDERCOUNT 110 -#define IDC_VIDEOCONFIG_SQUARE_PIXELS 110 -#define MENU_LOAD_STATE 111 -#define CB_DISABLE_SCREEN_SAVER 111 -#define BTN_FAM 111 -#define IDC_CHECK_LOG_PROCESSOR_STATUS 111 -#define IDC_DEBUGGER_RELOAD_SYMS 111 -#define IDC_ROMPATCHER_BTN_SAVE 111 -#define IDC_CHEAT_COM 111 -#define IDC_VIDEOCONFIG_DIRECTDRAW_FS 111 -#define BTN_AUTO_HOLD 112 -#define IDC_BTN_LOG_BROWSE 112 -#define IDC_DEBUGGER_BOOKMARK_ADD 112 -#define IDC_VIDEOCONFIG_DIRECTDRAW_WIN 112 -#define IDC_DEBUGGER_BOOKMARK_DEL 113 -#define IDC_EXTRA_LOG_OPTIONS 113 -#define BTN_CLEAR_AH 114 -#define IDC_CHECK_LOG_NEW_INSTRUCTIONS 114 -#define IDC_DEBUGGER_RUN_LINE 114 -#define LBL_CDLOGGER_VROMREADCOUNT 114 -#define LBL_AUTO_HOLD 115 -#define IDC_CHECK_LOG_NEW_DATA 115 -#define IDC_DEBUGGER_RUN_FRAME2 115 -#define LBL_CDLOGGER_UNDEFVROMCOUNT 115 -#define LBL_CLEAR_AH 116 -#define IDC_CHECK_LOG_UPDATE_WINDOW 116 -#define IDC_DEBUGGER_RESET_COUNTERS 116 -#define CHEAT_CONTEXT_LIST_TOGGLECHEAT 117 -#define IDC_DEBUGGER_BREAK_ON_CYCLES 117 -#define IDC_CHECK_CODE_TABBING 117 -#define CHEAT_CONTEXT_LIST_POKECHEATVALUE 118 -#define IDC_CHECK_LOG_STATUSES_TO_THE_LEFT 118 -#define IDC_DEBUGGER_BOOKMARK_NAME 118 -#define CHEAT_CONTEXT_LIST_GOTOINHEXEDITOR 119 -#define IDC_DEBUGGER_BREAK_ON_INSTRUCTIONS 119 -#define IDC_CHECK_LOG_FRAMES_COUNT 119 -#define IDC_CHECK_LOG_CYCLES_COUNT 120 -#define CHEAT_CONTEXT_LIST_DELETESELECTEDCHEATS 120 -#define IDC_CHECK_LOG_INSTRUCTIONS_COUNT 121 -#define COMBO_SOUND_8BIT 122 -#define IDC_CHECK_SYMBOLIC_TRACING 123 -#define CHECK_SOUND_GLOBAL_FOCUS 124 -#define IDC_CHECK_LOG_MESSAGES 124 -#define IDC_CHECK_LOG_BREAKPOINTS 125 -#define CHECK_SOUND_ENABLED 126 -#define CTL_LATENCY_TRACKBAR 128 -#define COMBO_SOUND_QUALITY 129 -#define CHECK_SOUND_MUTEFA 130 -#define DEBUGGER_CONTEXT_TOGGLEBREAK 132 -#define MENU_RECORD_MOVIE 141 -#define MENU_REPLAY_MOVIE 142 -#define MENU_STOP_MOVIE 143 -#define MENU_RECORD_AVI 151 -#define MENU_STOP_AVI 152 -#define MENU_EXIT 153 -#define IDD_RAMSEARCH 154 -#define IDD_RAMWATCH 155 -#define IDD_EDITWATCH 156 -#define IDR_RWACCELERATOR 158 -#define IDD_LUA 159 -#define IDB_BITMAP0 163 -#define IDB_BITMAP1 164 -#define IDB_BITMAP2 165 -#define IDB_BITMAP3 166 -#define IDB_BITMAP4 167 -#define IDB_BITMAP5 168 -#define IDB_BITMAP6 169 -#define IDB_BITMAP7 170 -#define IDB_BITMAP8 171 -#define IDB_BITMAP9 172 -#define IDB_BITMAP10 173 -#define IDB_BITMAP11 174 -#define IDB_BITMAP12 175 -#define IDB_BITMAP13 176 -#define IDB_BITMAP14 177 -#define IDB_BITMAP15 178 -#define IDB_BITMAP16 179 -#define IDB_BITMAP17 180 -#define IDB_BITMAP18 181 -#define IDB_BITMAP19 182 -#define IDB_BRANCH_SPRITESHEET 184 -#define IDD_TASEDITOR_SAVECOMPACT 195 -#define IDD_TASEDITOR_EXPORT 196 -#define IDI_ICON3 197 -#define IDD_TASEDITOR_FINDNOTE 198 -#define IDD_TASEDITOR_ABOUT 199 -#define MENU_RESET 200 -#define BUTTON_ROMS 200 -#define TXT_PAD1 200 -#define BTN_RESTORE_DEFAULTS 200 -#define BTN_CLEAR 200 -#define IDC_EDIT_FILENAME 200 -#define IDC_COMBO_FILENAME 200 -#define BTN_PALETTE_LOAD 200 -#define IDC_NETMOO_HOST 200 -#define COMBO_SOUND_RATE 200 -#define MENU_MV_EDIT_UNDO 200 -#define IDC_VIDEOCONFIG_XRES 200 -#define IDC_DEBUGGER_FLAG_N 200 -#define IDC_ADDBP_ADDR_START 200 -#define MENU_POWER 201 -#define IDC_GROUPBOX_CHEATLIST 201 -#define TXT_PAD2 201 -#define IDC_BUTTON_BROWSEFILE 201 -#define IDC_CHECK_READONLY 201 -#define BTN_PALETTE_RESET 201 -#define CTL_PPUVIEW_TRACKBAR 201 -#define IDC_NETMOO_PORT 201 -#define MENU_MV_EDIT_COPY 201 -#define IDC_VIDEOCONFIG_YRES 201 -#define IDC_DEBUGGER_FLAG_V 201 -#define IDC_ADDBP_ADDR_END 201 -#define IDC_NTVIEW_REFRESH_TRACKBAR 201 -#define IDC_ASSEMBLER_APPLY 201 -#define IDI_ICON4 201 -#define BTN_OK 201 -#define MENU_EJECT_DISK 202 -#define TXT_FAM 202 -#define MENU_MV_EDIT_PASTE 202 -#define IDC_VIDEOCONFIG_BPP 202 -#define IDC_DEBUGGER_FLAG_U 202 -#define IDC_ADDBP_CONDITION 202 -#define IDC_ASSEMBLER_SAVE 202 -#define IDD_TASEDITOR_NEWPROJECT 202 -#define IDC_GROUPBOX_CHEATSEARCH 202 -#define MENU_SWITCH_DISK 203 -#define IDC_NETMOO_NICK 203 -#define IDC_CHEAT_BOX_POSSIBILITIES 203 -#define MENU_MV_EDIT_FIND 203 -#define IDC_DEBUGGER_FLAG_B 203 -#define IDC_ADDBP_NAME 203 -#define IDC_ASSEMBLER_UNDO 203 -#define MENU_INSERT_COIN 204 -#define COMBO_NETMOO_LOCAL_PLAYERS 204 -#define IDC_DEBUGGER_FLAG_D 204 -#define IDC_GROUP_PREV_COM 204 -#define IDC_NETMOO_KEY 205 -#define IDC_DEBUGGER_FLAG_I 205 -#define IDB_TE_GREEN_ARROW 205 -#define IDC_NETMOO_PASS 206 -#define IDC_DEBUGGER_FLAG_Z 206 -#define IDC_DEBUGGER_FLAG_C 207 -#define IDC_DEBUGGER_ENABLE_SYMBOLIC 208 -#define IDB_TE_GREEN_BLUE_ARROW 208 -#define IDB_PIANO_0 209 -#define IDC_DEBUGGER_ROM_OFFSETS 209 -#define IDB_PIANO_1 210 -#define IDB_PIANO_2 211 -#define IDB_PIANO_3 212 -#define IDB_PIANO_4 213 -#define IDB_PIANO_5 214 -#define IDB_PIANO_6 215 -#define IDB_PIANO_7 216 -#define IDB_PIANO_8 217 -#define IDB_PIANO_9 218 -#define IDB_PIANO_10 219 -#define IDB_PIANO_11 220 -#define IDB_PIANO_12 221 -#define IDB_PIANO_13 222 -#define IDB_PIANO_14 223 -#define IDB_PIANO_15 224 -#define IDB_PIANO_16 225 -#define IDB_PIANO_17 226 -#define IDB_PIANO_18 227 -#define IDB_PIANO_19 228 -#define IDB_PIANO_PLAYBACK_0 229 -#define IDB_PIANO_PLAYBACK_1 230 -#define IDB_PIANO_PLAYBACK_2 231 -#define IDB_PIANO_PLAYBACK_3 232 -#define IDB_PIANO_PLAYBACK_4 233 -#define IDB_PIANO_PLAYBACK_5 234 -#define IDB_PIANO_PLAYBACK_6 235 -#define IDB_PIANO_PLAYBACK_7 236 -#define IDB_PIANO_PLAYBACK_8 237 -#define IDB_PIANO_PLAYBACK_9 238 -#define IDB_PIANO_PLAYBACK_10 239 -#define IDB_PIANO_PLAYBACK_11 240 -#define IDB_PIANO_PLAYBACK_12 241 -#define IDB_PIANO_PLAYBACK_13 242 -#define IDB_PIANO_PLAYBACK_14 243 -#define IDB_PIANO_PLAYBACK_15 244 -#define IDB_PIANO_PLAYBACK_16 245 -#define IDB_PIANO_PLAYBACK_17 246 -#define IDB_PIANO_PLAYBACK_18 247 -#define IDB_PIANO_PLAYBACK_19 248 -#define IDB_PIANO_LOSTPOS_0 249 -#define IDB_PIANO_LOSTPOS_1 250 -#define BTN_NETMOO_CONNECT 250 -#define IDB_PIANO_LOSTPOS_2 251 -#define IDB_PIANO_LOSTPOS_3 252 -#define IDB_PIANO_LOSTPOS_4 253 -#define IDB_PIANO_LOSTPOS_5 254 -#define IDB_PIANO_LOSTPOS_6 255 -#define IDB_PIANO_LOSTPOS_7 256 -#define IDB_PIANO_LOSTPOS_8 257 -#define IDB_PIANO_LOSTPOS_9 258 -#define IDB_PIANO_LOSTPOS_10 259 -#define IDB_PIANO_LOSTPOS_11 260 -#define IDB_PIANO_LOSTPOS_12 261 -#define IDB_PIANO_LOSTPOS_13 262 -#define IDB_PIANO_LOSTPOS_14 263 -#define IDB_PIANO_LOSTPOS_15 264 -#define IDB_PIANO_LOSTPOS_16 265 -#define IDB_PIANO_LOSTPOS_17 266 -#define IDB_PIANO_LOSTPOS_18 267 -#define IDB_PIANO_LOSTPOS_19 268 -#define IDB_BITMAP_SELECTED0 269 -#define IDB_BITMAP_SELECTED1 270 -#define IDB_BITMAP_SELECTED2 271 -#define IDB_BITMAP_SELECTED3 272 -#define IDB_BITMAP_SELECTED4 273 -#define IDB_BITMAP_SELECTED5 274 -#define IDB_BITMAP_SELECTED6 275 -#define IDB_BITMAP_SELECTED7 276 -#define IDB_BITMAP_SELECTED8 277 -#define IDB_BITMAP_SELECTED9 278 -#define IDB_BITMAP_SELECTED10 279 -#define IDB_BITMAP_SELECTED11 280 -#define IDB_BITMAP_SELECTED12 281 -#define IDB_BITMAP_SELECTED13 282 -#define IDB_BITMAP_SELECTED14 283 -#define IDB_BITMAP_SELECTED15 284 -#define IDB_BITMAP_SELECTED16 285 -#define IDB_BITMAP_SELECTED17 286 -#define IDB_BITMAP_SELECTED18 287 -#define IDB_BITMAP_SELECTED19 288 -#define IDD_TASEDITOR_SAVINGOPTIONS 289 -#define IDD_SYMBOLIC_DEBUG_NAMING 290 -#define DLG_SNESPAD 291 -#define MENU_HIDE_MENU 300 -#define COMBO_FILTER 300 -#define IDC_LABEL_LENGTH 300 -#define MENU_MV_VIEW_RAM 300 -#define IDC_DEBUGGER_DISASSEMBLY 300 -#define IDC_ASSEMBLER_DEFPUSHBUTTON 300 -#define MENU_RUN_IN_BACKGROUND 301 -#define IDC_COMBO_RECORDFROM 301 -#define IDC_LABEL_FRAMES 301 -#define IDC_BTN_CHEAT_ADD 301 -#define MENU_MV_VIEW_PPU 301 -#define IDC_DEBUGGER_DISASSEMBLY_VSCR 301 -#define MENU_BACKGROUND_INPUT 302 -#define IDC_LABEL_UNDOCOUNT 302 -#define IDC_BTN_CHEAT_DEL 302 -#define IDC_DEBUGGER_BP_LIST 302 -#define MENU_MV_VIEW_OAM 302 -#define MENU_MV_VIEW_ROM 303 -#define IDC_BTN_CHEAT_UPD 303 -#define IDC_DEBUGGER_DISASSEMBLY_LEFT_PANEL 303 -#define MENU_ENABLE_AUTOSAVE 304 -#define IDC_LABEL_ROMUSED 304 -#define IDC_BTN_CHEAT_RESET 304 -#define IDC_VIDEOCONFIG_SCALER_FS 304 -#define IDC_DEBUGGER_VAL_A 304 -#define IDC_LABEL_ROMCHECKSUM 305 -#define IDC_BTN_CHEAT_KNOWN 305 -#define IDC_DEBUGGER_VAL_X 305 -#define IDC_LABEL_RECORDEDFROM 306 -#define IDC_BTN_CHEAT_EQ 306 -#define IDC_DEBUGGER_VAL_Y 306 -#define IDC_LABEL_EMULATORUSED 307 -#define IDC_BTN_CHEAT_NE 307 -#define IDC_DEBUGGER_VAL_PC 307 -#define IDC_LABEL_CURRCHECKSUM 308 -#define IDC_BTN_CHEAT_GT 308 -#define IDC_DEBUGGER_STACK_CONTENTS 308 -#define IDC_BTN_CHEAT_LT 309 -#define IDC_DEBUGGER_VAL_PCSEEK 309 -#define IDC_LABEL_PALUSED 309 -#define MENU_GAME_GENIE 310 -#define IDC_DEBUGGER_VAL_PPU 310 -#define IDC_LABEL_NEWPPUUSED 310 -#define IDC_DEBUGGER_VAL_SPR 311 -#define IDC_BTN_CHEAT_ADDFROMFILE 311 -#define IDC_DEBUGGER_BOOKMARK 312 -#define IDC_DEBUGGER_CYCLES_EXCEED 313 -#define IDC_DEBUGGER_INSTRUCTIONS_EXCEED 314 -#define MENU_DIRECTORIES 320 -#define MENU_INPUT 321 -#define MENU_GUI_OPTIONS 327 -#define MENU_NTSC 330 -#define MENU_PAL 331 -#define MENU_DENDY 332 -#define MENU_MV_BOOKMARKS_RM_ALL 400 -#define IDC_WINSIZE_MUL_X 400 -#define IDC_CHEAT_CHECK_NE_BY 401 -#define IDC_WINSIZE_MUL_Y 401 -#define CHECK_ENABLE_FOURSCORE 401 -#define IDC_CHEAT_CHECK_GT_BY 402 -#define IDC_FORCE_INT_VIDEO_SCALARS 402 -#define IDC_DEBUGGER_BREAKPOINTS 402 -#define IDC_CHEAT_CHECK_LT_BY 403 -#define IDC_FORCE_ASPECT_CORRECTION 403 -#define IDC_DEBUGGER_VAL_S 403 -#define IDC_TVASPECT_X 404 -#define IDC_DEBUGGER_VAL_S2 405 -#define IDC_TVASPECT_Y 405 -#define IDC_VIDEOCONFIG_SCALER_WIN 406 -#define CHECK_ENABLE_MICROPHONE 407 -#define CTL_TINT_TRACKBAR 500 -#define CTL_VOLUME_TRACKBAR 500 -#define IDC_SCANLINE_FIRST_NTSC 500 -#define IDC_SCANLINE_LAST_NTSC 501 -#define CTL_HUE_TRACKBAR 501 -#define IDC_DEBUGGER_VAL_SLINE 501 -#define CTL_VOLUME_TRACKBAR_TRIANGLE 501 -#define IDC_SCANLINE_FIRST_PAL 502 -#define IDC_DEBUGGER_ADDR_LINE 502 -#define CTL_VOLUME_TRACKBAR_SQUARE1 502 -#define IDC_SCANLINE_LAST_PAL 503 -#define CTL_VOLUME_TRACKBAR_SQUARE2 503 -#define IDC_DEBUGGER_VAL_CYCLES_COUNT 503 -#define CTL_VOLUME_TRACKBAR_NOISE 504 -#define IDC_DEBUGGER_VAL_PPUPIXEL 504 -#define CTL_VOLUME_TRACKBAR_PCM 505 -#define IDC_DEBUGGER_VAL_CYCLES_COUNT2 505 -#define IDC_DEBUGGER_VAL_INSTRUCTIONS_COUNT 506 -#define IDC_DEBUGGER_VAL_INSTRUCTIONS_COUNT2 507 -#define IDC_VIDEOCONFIG_NO8LIM 600 -#define IDC_DEBUGGER_ROM_PATCHER 602 -#define LIST_DEBUGGER_BOOKMARKS 701 -#define BTN_CANCEL 800 -#define IDC_GAME_GENIE_CODE 1000 -#define IDC_MEMVIEWFIND_WHAT 1000 -#define IDC_BOOKMARK_DESCRIPTION 1000 -#define MW_ADDR00 1001 -#define IDC_GAME_GENIE_ADDR 1001 -#define IDC_MEMVIEWFIND_TYPE_HEX 1001 -#define IDC_NTVIEW_MIRROR_HORIZONTAL 1001 -#define IDC_CHECK_STOPMOVIE 1002 -#define IDC_GAME_GENIE_COMP 1002 -#define IDC_MEMVIEWFIND_TYPE_TEXT 1002 -#define IDC_NTVIEW_MIRROR_VERTICAL 1002 -#define LV_MAPPING 1003 -#define IDC_EDIT_STOPFRAME 1003 -#define IDC_GAME_GENIE_VAL 1003 -#define IDC_MEMVIEWFIND_DIR_UP 1003 -#define IDC_NTVIEW_MIRROR_FOUR_SCREEN 1003 -#define MW_ADDR01 1004 -#define IDC_LIST_GGADDRESSES 1004 -#define IDC_MEMVIEWFIND_DIR_DOWN 1004 -#define IDC_NTVIEW_MIRROR_SS_TABLE_0 1004 -#define IDC_BTN_ADD_TO_CHEATS 1005 -#define IDC_MEMVIEWFIND_NEXT 1005 -#define IDC_NTVIEW_MIRROR_SS_TABLE_1 1005 -#define IDC_NTVIEW_MIRROR_SS_TABLE_2 1006 -#define MW_ADDR02 1007 -#define IDC_NTVIEW_MIRROR_SS_TABLE_3 1007 -#define IDC_NTVIEW_SHOW_SCROLL_LINES 1008 -#define IDC_NTVIEW_SHOW_ATTRIBUTES 1009 -#define IDC_NTVIEW_HIDE_PALETTES 1010 -#define MW_ADDR03 1010 -#define MW_ADDR04 1013 -#define MW_ADDR05 1016 -#define MW_ADDR06 1019 -#define MW_ADDR07 1022 -#define MW_ADDR08 1025 -#define MW_ADDR09 1028 -#define MW_ADDR10 1031 -#define MW_ADDR11 1034 -#define MW_ADDR12 1037 -#define MW_ADDR13 1040 -#define MW_ADDR14 1043 -#define MW_ADDR15 1046 -#define MW_ADDR16 1049 -#define MW_ADDR17 1052 -#define MW_ADDR18 1055 -#define MW_ADDR19 1058 -#define MW_ADDR20 1061 -#define MW_ADDR21 1064 -#define MW_ADDR22 1067 -#define MW_ADDR23 1070 -#define BTN_ALLOW_LRUD 1117 -#define BTN_PRESET_SET1 1119 -#define BTN_PRESET_SET2 1120 -#define BTN_PRESET_SET3 1121 -#define BTN_PRESET_IMPORT1 1122 -#define BTN_PRESET_IMPORT2 1123 -#define BTN_PRESET_IMPORT3 1124 -#define BTN_PRESET_EXPORT1 1125 -#define BTN_PRESET_EXPORT2 1126 -#define BTN_PRESET_EXPORT3 1127 -#define IDC_LIST1 1130 -#define IDC_BUTTON_METADATA 1132 -#define MEMW_EXPANDCOLLAPSE 1133 -#define IDC_SOUND_RESTOREDEFAULTVOL 1133 -#define TASEDITOR_REWIND 1133 -#define TASEDITOR_FORWARD 1134 -#define TASEDITOR_REWIND_FULL 1135 -#define TASEDITOR_FORWARD_FULL 1136 -#define TASEDITOR_PLAYSTOP 1137 -#define IDC_RADIO_GREENZONE_SAVINGMODE_ALLFRAMES 1138 -#define IDC_RADIO_UP 1138 -#define IDC_RADIO_ALL 1139 -#define IDC_RADIO_GREENZONE_SAVINGMODE_EVERY16FRAME 1139 -#define IDC_RADIO_1P 1140 -#define IDC_RADIO_GREENZONE_SAVINGMODE_MARKEDFRAMES 1140 -#define IDC_RADIO_2P 1141 -#define IDC_RADIO_GREENZONE_SAVINGMODE_DONTSAVE 1141 -#define MEMW_EDIT00FORMULA 1142 -#define IDC_RADIO_3P 1142 -#define MEMW_EDIT01FORMULA 1143 -#define IDC_RADIO_4P 1143 -#define IDC_PROGRESS_BUTTON 1144 -#define MEMW_EDIT02FORMULA 1144 -#define MEMW_EDIT03FORMULA 1145 -#define TASEDITOR_PREV_MARKER 1145 -#define TASEDITOR_FIND_BEST_SIMILAR_MARKER 1146 -#define IDC_SELECTION_MARKER_EDIT 1147 -#define IDC_NOTE_TO_FIND 1147 -#define IDC_AUTOSAVE_PERIOD 1147 -#define IDC_EXTRA_SCANLINES 1147 -#define IDC_CHEAT_TEXT 1147 -#define TASEDITOR_FIND_NEXT_SIMILAR_MARKER 1148 -#define IDC_SYMBOLIC_ADDRESS 1148 -#define IDC_VBLANK_SCANLINES 1148 -#define IDC_HISTORYLIST 1149 -#define IDC_SYMBOLIC_NAME 1149 -#define IDC_BOOKMARKSLIST 1150 -#define IDC_SYMBOLIC_FILENAME 1150 -#define TASEDITOR_NEXT_MARKER 1151 -#define IDC_SYMBOLIC_COMMENT 1151 -#define IDC_BRANCHES_BUTTON 1152 -#define IDC_PLAYBACK_MARKER_EDIT 1154 -#define TASEDITOR_RUN_MANUAL 1156 -#define CHECK_SOUND_MUTETURBO 1179 -#define IDC_EDIT_AUTHOR 1180 -#define MEMW_EDIT00RESET 1184 -#define MEMW_EDIT01RESET 1185 -#define MEMW_EDIT02RESET 1186 -#define MEMW_EDIT03RESET 1187 -#define MEMW_EDIT00RMADDRESS 1188 -#define MEMW_EDIT01RMADDRESS 1189 -#define MEMW_EDIT02RMADDRESS 1190 -#define MEMW_EDIT03RMADDRESS 1191 -#define IDC_DEBUGGER_RESTORESIZE 1191 -#define IDC_MOVIE_CLOSE 1192 -#define EDIT00_RESULTS 1193 -#define IDC_MOVIE_PAUSEAFTERPLAYBACK 1193 -#define EDIT01_RESULTS 1194 -#define IDC_MOVIE_BINDSAVESTATES 1194 -#define EDIT02_RESULTS 1195 -#define EDIT03_RESULTS 1196 -#define IDC_MOVIE_DISPLAYSUBTITLES 1196 -#define IDC_MOVIE_SUBTITLESINAVI 1197 -#define IDC_MOVIE_AUTOBACKUP 1198 -#define ID_SOUND_TRITOP 1201 -#define IDC_MOVIE_SUGGEST_READONLY 1201 -#define ID_SOUND_QUALITYNOTIFY 1202 -#define CB_ENABLECONTEXTMENU 1203 -#define DEBUGAUTOLOAD 1203 -#define IDC_CHEAT_PAUSEWHENACTIVE 1203 -#define IDC_FULLSAVESTATES 1203 -#define IDC_SUPERIMPOSE 1203 -#define IDC_CHECK_BINARY 1203 -#define IDC_NOTES_TO_SUBTITLES 1203 -#define IDC_MATCH_CASE 1203 -#define IDC_COPY_INPUT 1203 -#define IDC_AUTORESUMECDLOGGING 1203 -#define IDC_MASK_UNUSED_GRAPHICS 1203 -#define CHECK_SOUND_SWAPDUTY 1203 -#define CB_OVERCLOCKING 1203 -#define CHECK_DEEMPH_SWAP 1203 -#define IDC_CHECK_LOG_BANK_NUMBER 1203 -#define IDC_VOLUMEGROUP 1204 -#define IDC_CHECK_MARKERS 1204 -#define IDC_RECORDING 1204 -#define IDC_COPY_MARKERS 1204 -#define IDC_AUTOSAVECDL 1204 -#define IDC_INVERT_THE_MASK 1204 -#define IDC_DEBUGGER_PREDEFINED_REGS 1204 -#define IDC_RAMLIST 1205 -#define IDC_CHECK_BOOKMARKS 1205 -#define IDC_RUN_AUTO 1205 -#define IDC_AUTOLOADCDL 1205 -#define IDC_SPRITE16_MODE 1205 -#define IDC_C_SEARCH 1206 -#define IDC_USEPATTERN 1206 -#define IDC_C_ADDCHEAT 1207 -#define IDC_CHECK_HISTORY 1207 -#define IDC_C_WATCH 1208 -#define IDC_CHECK_SELECTION 1208 -#define IDC_C_RESET 1209 -#define IDC_CHECK_PIANO_ROLL 1209 -#define IDC_C_ELIMINATE 1210 -#define IDC_LESSTHAN 1211 -#define IDC_MORETHAN 1212 -#define IDC_NOMORETHAN 1213 -#define IDC_NOLESSTHAN 1214 -#define IDC_EQUALTO 1215 -#define IDC_DIFFERENTFROM 1216 -#define IDC_DIFFERENTBY 1217 -#define IDC_MODULO 1218 -#define IDC_EDIT_DIFFBY 1219 -#define IDC_EDIT_MODBY 1220 -#define IDC_PREVIOUSVALUE 1221 -#define IDC_SPECIFICVALUE 1222 -#define IDC_SPECIFICADDRESS 1223 -#define IDC_NUMBEROFCHANGES 1224 -#define IDC_EDIT_COMPAREVALUE 1225 -#define IDC_EDIT_COMPAREADDRESS 1226 -#define IDC_EDIT_COMPARECHANGES 1227 -#define IDC_SIGNED 1228 -#define IDC_UNSIGNED 1229 -#define IDC_HEX 1230 -#define IDC_C_AUTOSEARCH 1231 -#define IDC_1_BYTE 1232 -#define IDC_2_BYTES 1233 -#define IDC_4_BYTES 1234 -#define IDC_MISALIGN 1235 -#define IDC_C_RESET_CHANGES 1236 -#define IDC_C_UNDO 1237 -#define IDC_WATCHLIST 1238 -#define IDC_C_HEXEDITOR 1238 -#define IDC_C_WATCH_EDIT 1239 -#define IDC_C_WATCH_REMOVE 1240 -#define IDC_C_WATCH_DUPLICATE 1241 -#define ID_WATCHES_UPDOWN 1242 -#define IDC_C_WATCH_UP 1243 -#define IDC_C_WATCH_DOWN 1244 -#define IDC_PROMPT_TEXT 1245 -#define IDC_PROMPT_EDIT 1247 -#define IDC_BUTTON_LUABROWSE 1248 -#define IDC_BUTTON_LUARUN 1249 -#define IDC_BUTTON_LUASTOP 1250 -#define IDC_EDIT_LUAPATH 1251 -#define IDC_LUACONSOLE 1252 -#define IDC_BUTTON_LUAEDIT 1253 -#define IDC_LUACONSOLE_CLEAR 1254 -#define IDC_LUACONSOLE_CHOOSEFONT 1255 -#define IDC_EDIT_LUAARGS 1256 -#define CB_PARTIALVISUALTHEME 1257 -#define DEBUGLOADDEB 1258 -#define IDC_C_SEARCHROM 1258 -#define IDC_SINGLEINSTANCE 1258 -#define IDC_MOVIE_CLOSEAFTERPLAYBACK 1258 -#define IDC_C_WATCH_SEPARATE 1259 -#define CHECK_AUTORESTORE_PLAYBACK 1261 -#define CB_FS_BY_DOUBLECLICK 1261 -#define IDC_PROGRESS1 1262 -#define CHECK_FOLLOW_CURSOR 1263 -#define IDC_BOOKMARKS_BOX 1264 -#define IDC_BRANCHES_BITMAP 1265 -#define CHECK_TURBO_SEEK 1266 -#define IDC_TEXT_SELECTION 1267 -#define IDC_TEXT_CLIPBOARD 1268 -#define IDC_RADIO_1PLAYER 1269 -#define IDC_RADIO_2PLAYERS 1270 -#define IDC_PLAYBACK_MARKER 1270 -#define IDC_RADIO_FOURSCORE 1271 -#define IDC_SELECTION_MARKER 1271 -#define IDC_RADIO_DOWN 1273 -#define IDC_PLAYBACK_BOX 1275 -#define IDC_RECORDER_BOX 1276 -#define IDC_SPLICER_BOX 1277 -#define IDC_LUA_BOX 1278 -#define IDC_HISTORY_BOX 1279 -#define IDC_TASEDITOR_NAME 1280 -#define ID_CANCEL 1281 -#define IDC_AUTOSAVE_PROJECT 1282 -#define IDC_SILENT_AUTOSAVE 1283 -#define ID_CHR1 1283 -#define ID_CHR2 1284 -#define ID_CHR3 1285 -#define ID_STATIC 1286 -#define CTL_PALSAT_TRACKBAR 1291 -#define CB_SKIP_7BIT 1293 -#define STATIC_SATVALUE 1294 -#define CTL_PALNOTCH_TRACKBAR 1295 -#define STATIC_NOTCHVALUE 1296 -#define CTL_PALSHARP_TRACKBAR 1297 -#define STATIC_SHARPVALUE 1298 -#define CTL_PALCONTRAST_TRACKBAR 1299 -#define STATIC_CONTRASTVALUE 1300 -#define CTL_PALBRIGHT_TRACKBAR 1301 -#define STATIC_BRIGHTVALUE 1302 -#define DEBUGIDAFONT 1305 -#define IDC_AUTOSAVE_PERIOD_EVERY_TEXT 1306 -#define IDC_AUTOSAVE_PERIOD_MINUTES_TEXT 1307 -#define IDC_VBLANK_SCANLINES_TEXT 1308 -#define IDC_EXTRA_SCANLINES_TEXT 1309 -#define IDC_DATASIZE_GROUPBOX 1310 -#define IDC_DATATYPE_GROUPBOX 1311 -#define IDC_CHEAT_CODE_GG_LABEL 1312 -#define IDC_CHEAT_ADDRESS_LABEL 1313 -#define IDC_CHEAT_VAL_LABEL 1314 -#define IDC_CHEAT_COM_LABEL 1315 -#define IDC_CHEAT_LABEL_KNOWN 1316 -#define IDC_BINARY 1317 -#define MENU_NETWORK 40040 -#define MENU_PALETTE 40041 -#define MENU_SOUND 40042 -#define MENU_TIMING 40043 -#define MENU_VIDEO 40044 -#define MENU_HOTKEYS 40045 -#define MENU_ABOUT 40046 -#define MENU_MSGLOG 40047 -#define MENU_CHEATS 40048 -#define MENU_AUTOFIRE_PATTERN_1 40050 -#define MENU_AUTOFIRE_PATTERN_2 40051 -#define MENU_AUTOFIRE_PATTERN_3 40052 -#define ID_DEBUG_DEBUGGER 40053 -#define MENU_AUTOFIRE_PATTERN_4 40053 -#define ID_DEBUG_PPUVIEWER 40054 -#define MENU_AUTOFIRE_PATTERN_5 40054 -#define ID_DEBUG_NAMETABLEVIEWER 40055 -#define MENU_AUTOFIRE_PATTERN_6 40055 -#define ID_DEBUG_HEXEDITOR 40056 -#define MENU_AUTOFIRE_PATTERN_7 40056 -#define ID_DEBUG_TRACELOGGER 40057 -#define MENU_AUTOFIRE_PATTERN_8 40057 -#define MENU_AUTOFIRE_PATTERN_9 40058 -#define ID_DEBUG_GAMEGENIEDECODER 40059 -#define MENU_AUTOFIRE_PATTERN_10 40059 -#define ID_DEBUG_CDLOGGER 40060 -#define MENU_AUTOFIRE_PATTERN_11 40060 -#define MENU_AUTOFIRE_PATTERN_12 40061 -#define MENU_AUTOFIRE_PATTERN_13 40062 -#define MENU_AUTOFIRE_PATTERN_14 40063 -#define MENU_AUTOFIRE_PATTERN_15 40064 -#define MENU_AUTOFIRE_OFFSET_1 40065 -#define MENU_AUTOFIRE_OFFSET_2 40066 -#define MENU_AUTOFIRE_OFFSET_3 40067 -#define MENU_AUTOFIRE_OFFSET_4 40068 -#define MENU_AUTOFIRE_OFFSET_5 40069 -#define MENU_AUTOFIRE_OFFSET_6 40070 -#define MENU_ALTERNATE_AB 40071 -#define MENU_PPUVIEWER 40074 -#define MENU_NAMETABLEVIEWER 40075 -#define MENU_HEXEDITOR 40076 -#define MENU_TRACELOGGER 40077 -#define MENU_CDLOGGER 40078 -#define MENU_GAMEGENIEDECODER 40079 -#define MENU_DEBUGGER 40080 -#define MENU_MEMORY_WATCH 40081 -#define ID_FILE_RECENT 40100 -#define MEMW_HELP_WCOMMANDS 40101 -#define MEMW_OPTIONS_LOADLASTFILE 40102 -#define MEMW_FILE_NEW 40103 -#define MEMW_FILE_OPEN 40104 -#define MEMW_FILE_SAVE 40105 -#define MEMW_FILE_SAVEAS 40106 -#define MEMW_FILE_CLOSE 40108 -#define MEMW_OPTIONS_LOADSTART 40109 -#define ID_FILE_RECORDMODE_TRUNCATE 40110 -#define ID_FILE_RECORDMODE_OVERWRITE 40111 -#define ID_FILE_RECORDMODE_INSERT 40112 -#define FCEUX_CONTEXT_RECORDMODE_TRUNCATE 40115 -#define FCEUX_CONTEXT_RECORDMODE_OVERWRITE 40116 -#define FCEUX_CONTEXT_RECORDMODE_INSERT 40117 -#define MENU_RECORD_WAV 40120 -#define MENU_STOP_WAV 40121 -#define ID_FILE_NEXTRECORDMODE 40127 -#define ID_FILE_PREVRECORDMODE 40128 -#define ACCEL_CTRL_O 40130 -#define ACCEL_CTRL_W 40132 -#define ACCEL_CTRL_S 40134 -#define ACCEL_CTRL_SHIFT_S 40135 -#define ACCEL_CTRL_N 40136 -#define ACCEL_CTRL_C 40138 -#define MENU_HELP 40140 -#define MENU_DISPLAY_BG 40147 -#define MENU_DISPLAY_OBJ 40148 -#define MENU_CONVERT_MOVIE 40150 -#define ID_TOOLS_TEXTHOOKER 40158 -#define ID_EDIT_DELETE 40169 -#define ID_FILE_SAVEPROJECT 40172 -#define ID_EDIT_TRUNCATE 40177 -#define ID_FILE_IMPORT 40178 -#define ID_FILE_OPENPROJECT 40181 -#define ID_FILE_SAVEPROJECTAS 40182 -#define ID_FILE_EXPORTFM2 40183 -#define ACCEL_CTRL_X 40184 -#define ACCEL_CTRL_V 40195 -#define ACCEL_CTRL_SHIFT_V 40196 -#define ACCEL_CTRL_DELETE 40197 -#define ACCEL_CTRL_B 40199 -#define ID_CONTEXT_SELECTED_TRUNCATE 40200 -#define ID_CONTEXT_SELECTED_INSERTFRAMES 40204 -#define ID_CONTEXT_SELECTED_DELETEFRAMES 40205 -#define ID_EDIT_SELECTALL 40214 -#define ID_MEMWVIEW_FILE_CLOSE 40217 -#define MENU_MV_FILE_GOTO_ADDRESS 40219 -#define ID_FILE_TRUNCATE_MOVIE 40221 -#define FCEUX_CONTEXT_TRUNCATE_MOVIE 40222 -#define ID_FILE_INSERT_1_FRAME 40223 -#define FCEUX_CONTEXT_INSERT_1_FRAME 40224 -#define ID_FILE_DELETE_1_FRAME 40225 -#define FCEUX_CONTEXT_DELETE_1_FRAME 40226 -#define ID_FILE_OPENLUAWINDOW 40229 -#define ID_FILE_CLOSELUAWINDOWS 40230 -#define MENU_DISPLAY_LAGCOUNTER 40237 -#define MENU_DISPLAY_FA_LAGSKIP 40239 -#define MENU_INPUTDISPLAY_0 40250 -#define MENU_INPUTDISPLAY_1 40251 -#define MENU_INPUTDISPLAY_2 40252 -#define MENU_INPUTDISPLAY_4 40253 -#define ID_DISPLAY_FRAMECOUNTER 40254 -#define MENU_CONFIG_BINDSAVES 40256 -#define MENU_MV_HELP 40258 -#define ID_NES_PAUSE 40263 -#define ID_NES_SPEEDUP 40265 -#define ID_NES_SLOWDOWN 40266 -#define ID_NES_NORMALSPEED 40268 -#define ID_NES_TURBO 40269 -#define ID_NES_SLOWESTSPEED 40270 -#define ID_FILE_SCREENSHOT 40272 -#define ID_FILE_PLAYMOVIEFROMBEGINNING 40274 -#define FCEU_CONTEXT_MOVIEHELP 40281 -#define FCEUX_CONTEXT_REPLAYMOVIE 40282 -#define FCEU_CONTEXT_OPENROM 40286 -#define FCEU_CONTEXT_FCEUHELP 40287 -#define FCEU_CONTEXT_PLAYMOVIEFROMBEGINNING 40295 -#define FCEU_CONTEXT_STOPMOVIE 40296 -#define FCEU_CONTEXT_CLOSEROM 40298 -#define FCEUX_CONTEXT_RECORDMOVIE 40303 -#define FCEUX_CONTEXT_SCREENSHOT 40305 -#define FCEUX_CONTEXT_REWINDTOLASTAUTO 40307 -#define FCEUX_CONTEXT_VIEWCOMMENTSSUBTITLES 40311 -#define MEMW_OPTIONS_EXPANDCOLLAPSE 40314 -#define FCEUX_CONTEXT_UNDOLOADSTATE 40316 -#define FCEUX_CONTEXT_MAKEBACKUP 40320 -#define MENU_MOVIEOPTIONS 40322 -#define FCEUX_CONTEXT_UNDOSAVESTATE 40324 -#define FCEUX_CONTEXT_RECENTROM1 40328 -#define ID_FILE_MOVIE_TOGGLEREAD 40331 -#define FCEUX_CONTEXT_READONLYTOGGLE 40335 -#define MENU_LOADSTATE 40343 -#define MENU_SAVESTATE 40344 -#define MENU_NEXTSAVESTATE 40347 -#define MENU_PREVIOUSSAVESTATE 40348 -#define MENU_VIEWSAVESLOTS 40350 -#define MENU_LUA_RECENT 40352 -#define MENU_MOVIE_RECENT 40354 -#define FCEUX_CONTEXT_LOADLASTMOVIE 40356 -#define FCEUX_CONTEXT_SAVEMOVIEAS 40358 -#define ID_FILE_TOGGLE_RECORDING_MOVIE 40359 -#define FCEUX_CONTEXT_TOGGLE_RECORDING 40360 -#define ID_OPTIONS_BINDTOMAINWINDOW 40361 -#define ID_NEWPPU 40365 -#define ID_OLDPPU 40366 -#define ID_CONFIG_SAVECONFIGFILE 40367 -#define RAMMENU_FILE_AUTOLOAD 40368 -#define RAMMENU_FILE_SAVEWINDOW 40369 -#define RAMMENU_FILE_SAVE 40370 -#define RAMMENU_FILE_SAVEAS 40371 -#define RAMMENU_FILE_OPEN 40372 -#define RAMMENU_FILE_APPEND 40373 -#define RAMMENU_FILE_NEW 40374 -#define RAMMENU_FILE_RECENT 40375 -#define ID_RAM_SEARCH 40376 -#define ID_RAM_WATCH 40377 -#define RW_MENU_FIRST_RECENT_FILE 40380 -#define RW_MENU_LAST_RECENT_FILE 40400 -#define ID_ENABLE_BACKUPSAVESTATES 40401 -#define ID_ENABLE_COMPRESSSAVESTATES 40402 -#define ID_AVI_DISMOVIEMESSAGE 40405 -#define ID_INPUTDISPLAY_OLDSTYLEDISP 40406 -#define ID_CONTEXT_FULLSAVESTATES 40409 -#define ID_FILE_SAVESCREENSHOTAS 40411 -#define FCEUX_CONTEXT_GUICONFIG 40418 -#define ID_CONTEXT_SELECTED_INSERTFRAMES2 40425 -#define ACCEL_CTRL_F 40429 -#define ID_CONFIG_SETGREENZONECAPACITY 40432 -#define ACCEL_CTRL_INSERT 40433 -#define ID_DISPLAY_RERECORDCOUNTER 40436 -#define ID_DISPLAY_MOVIESTATUSICON 40437 -#define ID_AVI_ENABLEHUDRECORDING 40440 -#define ACCEL_INS 40442 -#define ACCEL_DEL 40443 -#define ID_CONTEXT_SELECTED_CLEARFRAMES 40447 -#define ID_EDIT_CLEAR 40450 -#define ID_EDIT_INSERTFRAMES 40451 -#define ID_EDIT_INSERT 40452 -#define ID_CONFIG_BINDMARKERSTOINPUT 40454 -#define ACCEL_CTRL_A 40455 -#define ID_EDIT_SELECTMIDMARKERS 40457 -#define ID_SELECTED_SELECTMIDMARKERS 40458 -#define ID_EDIT_CLONEFRAMES 40460 -#define ACCEL_CTRL_SHIFT_INS 40461 -#define ID_SELECTED_CLONE 40463 -#define ACCEL_CTRL_Z 40465 -#define ACCEL_CTRL_Y 40466 -#define ID_EDIT_UNDO 40468 -#define ID_EDIT_REDO 40469 -#define ID_CONFIG_SETMAXUNDOLEVELS 40470 -#define ID_VIEW_JUMPWHENMAKINGUNDO 40472 -#define ID_CONFIG_BRANCHESRESTOREFULLMOVIE 40473 -#define ID_CONFIG_OLDBRANCHINGCONTROLS 40474 -#define ID_CONFIG_HUDINBRANCHSCREENSHOTS 40475 -#define ACCEL_CTRL_Q 40478 -#define ID_EDIT_SELECTIONUNDO 40481 -#define ID_EDIT_SELECTIONREDO 40482 -#define ID_EDIT_RESELECTCLIPBOARD 40483 -#define ID_FILE_SAVECOMPACT 40484 -#define ID_HELP_ABOUT 40485 -#define ID_VIEW_ENABLEHOTCHANGES 40488 -#define ID_VIEW_SHOWBRANCHSCREENSHOTS 40489 -#define ID_CONFIG_USE1PFORRECORDING 40491 -#define ID_CONFIG_COMBINECONSECUTIVERECORDINGS 40492 -#define ID_EDIT_PASTEINSERT 40495 -#define ACCEL_CTRL_PGUP 40502 -#define ACCEL_CTRL_PGDN 40503 -#define ACCEL_SHIFT_PGUP 40504 -#define ACCEL_SHIFT_PGDN 40505 -#define ID_VIEW_FOLLOWMARKERNOTECONTEXT 40507 -#define ID_VIEW_SHOWBRANCHTOOLTIPS 40508 -#define ID_CONFIG_USEINPUTKEYSFORCOLUMNSET 40509 -#define ID_CONFIG_EMPTYNEWMARKERNOTES 40510 -#define ID_VIEW_FINDNOTE 40515 -#define ID_FILE_CLOSE 40517 -#define ID_EDIT_PASTE 40520 -#define ID_EDIT_COPY 40521 -#define ID_EDIT_CUT 40522 -#define MENU_TASEDITOR 40524 -#define ID_FILE_NEW 40525 -#define ID_HELP_TOOLTIPS 40527 -#define ID_PATTERN_TEST 40534 -#define ID_EDIT_DESELECT 40536 -#define ID_SELECTED_DESELECT 40537 -#define ID_CONFIG_DRAWINPUTBYDRAGGING 40539 -#define ACCEL_CTRL_UP 40541 -#define ACCEL_CTRL_DOWN 40542 -#define ACCEL_CTRL_LEFT 40543 -#define ACCEL_CTRL_RIGHT 40544 -#define ACCEL_HOME 40545 -#define ACCEL_END 40546 -#define ACCEL_PGUP 40547 -#define ACCEL_PGDN 40548 -#define ACCEL_CTRL_HOME 40550 -#define ACCEL_CTRL_END 40551 -#define ACCEL_SHIFT_HOME 40552 -#define ACCEL_SHIFT_END 40553 -#define ACCEL_SHIFT_UP 40554 -#define ACCEL_SHIFT_DOWN 40555 -#define ACCEL_SHIFT_LEFT 40556 -#define ACCEL_SHIFT_RIGHT 40557 -#define ID_CONFIG_AUTOPAUSEATTHEENDOFMOVIE 40559 -#define ID_SELECTED_SETMARKERS 40560 -#define ID_SELECTED_REMOVEMARKERS 40561 -#define ID_HELP_OPEN_MANUAL 40564 -#define ID_DISPLAY_FPS 40565 -#define ID_CONFIG_ADJUSTLAG 40567 -#define ID_CONFIG_PATTERNSKIPSLAG 40568 -#define CLEAR_LOG 40569 -#define CLOSE_LOG 40570 -#define ID_SELECTED_UNGREENZONE 40571 -#define CHEAT_CONTEXT_POSSI_GOTOINHEXEDITOR 40572 -#define ID_CONFIG_ENABLEGREENZONING 40573 -#define ID_EMULATIONSPEED_SETFRAMEADVANCEDELAY 40574 -#define ID_EMULATIONSPEED_SETCUSTOMSPEEDFORFRAMEADVANCE 40576 -#define ID_EMULATIONSPEED_CUSTOMSPEED 40577 -#define ID_ENABLE_AUTORESUME 40579 -#define ID_CONFIG_SAVING_OPTIONS 40581 -#define ID_CDLFILENAME 40582 -#define ID_HIGHLIGHTING_FADEWHENPAUSED 40586 -#define ID_HIGHLIGHTING_SETFADINGPERIOD 40587 -#define ID_HIGHLIGHTING_HIGHLIGHT_ACTIVITY 40588 -#define MENU_MV_FILE_DUMP_64K 40590 -#define MENU_MV_FILE_DUMP_OAM 40592 -#define MENU_RAMINIT_DEFAULT 40593 -#define MENU_RAMINIT_FF 40594 -#define MENU_RAMINIT_00 40595 -#define MENU_RAMINIT_RANDOM 40596 -#define MENU_MV_FILE_LOAD_RAM 40597 -#define MENU_MV_FILE_LOAD_PPU 40598 -#define DISASM_CONTEXT_COPY 40598 -#define MENU_MV_FILE_LOAD_OAM 40599 -#define DISASM_CONTEXT_SELECTALL 40599 -#define CHEAT_CONTEXT_POSSI_ADDTOMEMORYWATCH 40600 -#define CHEAT_CONTEXT_POSSI_ADDCHEAT 40601 -#define CHEAT_CONTEXT_POSSI_ADDTORAMWATCH 40603 -#define MW_VALUELABEL2 65423 -#define MW_VALUELABEL1 65426 -#define IDC_STATIC_SLASHTEXT 65442 -#define IDC_BOOKMARK_NAME_TEXT 65532 -#define IDC_NTVIEW_SCANLINE_TEXT 65534 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 303 -#define _APS_NEXT_COMMAND_VALUE 40000 -#define _APS_NEXT_CONTROL_VALUE 1011 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file +// for res.rc +// +#define CLOSE_BUTTON 1 +#define BUTTON_CLOSE 1 +#define BTN_CLOSE 1 +#define MENU_OPEN_FILE 100 +#define EDIT_ROMS 100 +#define LBL_LOG_TEXT 100 +#define LBL_KEY_COMBO 100 +#define LBL_CDLOGGER_CODECOUNT 100 +#define CHECK_PALETTE_ENABLED 100 +#define LBL_DWBDIALOG_TEXT 100 +#define GRP_GAMEPAD1 100 +#define IDC_TRACER_LOG 100 +#define MENU_MV_FILE_SAVE 100 +#define IDC_ROMPATCHER_OFFSET_BOX 100 +#define IDC_ASSEMBLER_HISTORY 100 +#define MENU_CLOSE_FILE 101 +#define CB_DISABLE_SPEED_THROTTLING 101 +#define LBL_CDLOGGER_DATACOUNT 101 +#define GRP_PPUVIEW_TABLES 101 +#define IDC_NETMOO_STATUS 101 +#define GRP_GAMEPAD2 101 +#define IDC_LIST_CHEATS 101 +#define IDC_SCRL_TRACER_LOG 101 +#define MENU_MV_FILE_SAVE_AS 101 +#define IDC_VIDEOCONFIG_FS 101 +#define IDC_DEBUGGER_BP_ADD 101 +#define IDC_ROMPATCHER_DOTNES_OFFSET 101 +#define IDC_NTVIEW_TABLE_BOX 101 +#define IDC_ASSEMBLER_DISASSEMBLY 101 +#define MENU_RECENT_FILES 102 +#define CB_LOAD_FILE_OPEN 102 +#define LBL_CDLOGGER_UNDEFCOUNT 102 +#define IDC_PPUVIEW_SCANLINE 102 +#define IDC_NETMOO_CMD_INPUT 102 +#define IDC_CHEAT_ADDR 102 +#define IDC_BTN_START_STOP_LOGGING 102 +#define MENU_MV_FILE_LOAD_TBL 102 +#define IDC_VIDEOCONFIG_AUTO_FS 102 +#define IDC_DEBUGGER_BP_DEL 102 +#define IDC_ADDBP_MODE_R 102 +#define IDC_ROMPATCHER_OFFSET 102 +#define IDC_NTVIEW_SCANLINE 102 +#define IDC_ASSEMBLER_PATCH_DISASM 102 +#define CHECK_PALETTE_GRAYSCALE 102 +#define BTN_CDLOGGER_RESET 103 +#define LBL_PPUVIEW_TILE1 103 +#define IDC_CHEAT_VAL 103 +#define IDC_RADIO_LOG_LAST 103 +#define MENU_MV_FILE_UNLOAD_TBL 103 +#define IDC_DEBUGGER_BP_EDIT 103 +#define IDC_ADDBP_MODE_W 103 +#define IDC_ROMPATCHER_BTN_EDIT 103 +#define IDC_NTVIEW_PROPERTIES_LINE_1 103 +#define IDC_VIDEOCONFIG_HIDEMOUSE 103 +#define CB_AUTO_HIDE_MENU 104 +#define COMBO_PAD1 104 +#define BTN_CDLOGGER_LOAD 104 +#define LBL_PPUVIEW_TILE2 104 +#define IDC_CHEAT_NAME 104 +#define IDC_RADIO_LOG_TO_FILE 104 +#define MENU_MV_FILE_DUMP_RAM 104 +#define IDC_VIDEOCONFIG_SYNC_METHOD_WIN 104 +#define IDC_DEBUGGER_RUN 104 +#define IDC_ADDBP_MODE_X 104 +#define IDC_ROMPATCHER_CURRENT_DATA_BOX 104 +#define IDC_NTVIEW_PROPERTIES_LINE_2 104 +#define CHECK_PALETTE_CUSTOM 104 +#define COMBO_PAD2 105 +#define CB_SET_HIGH_PRIORITY 105 +#define BTN_CDLOGGER_START_PAUSE 105 +#define LBL_PPUVIEW_PALETTES 105 +#define IDC_CHEAT_VAL_KNOWN 105 +#define MENU_MV_FILE_DUMP_PPU 105 +#define IDC_VIDEOCONFIG_SYNC_METHOD_FS 105 +#define IDC_DEBUGGER_STEP_IN 105 +#define IDC_TRACER_LOG_SIZE 105 +#define IDC_ADDBP_MEM_CPU 105 +#define IDC_ROMPATCHER_CURRENT_DATA 105 +#define IDC_NTVIEW_PROPERTIES_LINE_3 105 +#define BTN_PORT1 106 +#define BTN_CDLOGGER_SAVE_AS 106 +#define IDC_CHEAT_LIST_POSSIBILITIES 106 +#define IDC_VIDEOCONFIG_CLIPSIDES 106 +#define IDC_DEBUGGER_STEP_OUT 106 +#define IDC_ADDBP_MEM_PPU 106 +#define IDC_NTVIEW_PROPERTIES_LINE_4 106 +#define IDC_TEXT_LINES_TO_THIS_WINDOW 106 +#define BTN_PORT2 107 +#define BTN_CDLOGGER_SAVE 107 +#define IDC_DEBUGGER_STEP_OVER 107 +#define IDC_ADDBP_MEM_SPR 107 +#define IDC_ROMPATCHER_DISASSEMBLY 107 +#define IDC_VIDEOCONFIG_BESTFIT 107 +#define IDR_ACCELERATOR1 108 +#define BTN_CDLOGGER_SAVE_STRIPPED 108 +#define IDC_CHEAT_VAL_NE_BY 108 +#define IDC_DEBUGGER_SEEK_PC 108 +#define IDR_TASEDITOR_ACCELERATORS 108 +#define IDC_VIDEOCONFIG_CONSOLE_BGCOLOR 108 +#define IDC_CHEAT_VAL_GT_BY 109 +#define IDC_DEBUGGER_SEEK_TO 109 +#define IDC_ROMPATCHER_PATCH_DATA 109 +#define IDC_ADDBP_MODE_F 109 +#define BTN_CDLOGGER_SAVE_UNUSED 109 +#define IDC_VIDEOCONFIG_TVASPECT 109 +#define IDC_GROUP_LOG_OPTIONS 109 +#define IDC_CHEAT_VAL_LT_BY 110 +#define MENU_SAVE_STATE 110 +#define CB_ASK_EXIT 110 +#define COMBO_FAM 110 +#define IDB_TE_ARROW 110 +#define IDC_CHECK_LOG_REGISTERS 110 +#define IDC_DEBUGGER_BREAK_ON_BAD_OP 110 +#define IDC_ROMPATCHER_BTN_APPLY 110 +#define LBL_CDLOGGER_RENDERCOUNT 110 +#define IDC_VIDEOCONFIG_SQUARE_PIXELS 110 +#define MENU_LOAD_STATE 111 +#define CB_DISABLE_SCREEN_SAVER 111 +#define BTN_FAM 111 +#define IDC_CHECK_LOG_PROCESSOR_STATUS 111 +#define IDC_DEBUGGER_RELOAD_SYMS 111 +#define IDC_ROMPATCHER_BTN_SAVE 111 +#define IDC_CHEAT_COM 111 +#define IDC_VIDEOCONFIG_DIRECTDRAW_FS 111 +#define BTN_AUTO_HOLD 112 +#define IDC_BTN_LOG_BROWSE 112 +#define IDC_DEBUGGER_BOOKMARK_ADD 112 +#define IDC_VIDEOCONFIG_DIRECTDRAW_WIN 112 +#define IDC_DEBUGGER_BOOKMARK_DEL 113 +#define IDC_EXTRA_LOG_OPTIONS 113 +#define BTN_CLEAR_AH 114 +#define IDC_CHECK_LOG_NEW_INSTRUCTIONS 114 +#define IDC_DEBUGGER_RUN_LINE 114 +#define LBL_CDLOGGER_VROMREADCOUNT 114 +#define LBL_AUTO_HOLD 115 +#define IDC_CHECK_LOG_NEW_DATA 115 +#define IDC_DEBUGGER_RUN_FRAME2 115 +#define LBL_CDLOGGER_UNDEFVROMCOUNT 115 +#define LBL_CLEAR_AH 116 +#define IDC_CHECK_LOG_UPDATE_WINDOW 116 +#define IDC_DEBUGGER_RESET_COUNTERS 116 +#define CHEAT_CONTEXT_LIST_TOGGLECHEAT 117 +#define IDC_DEBUGGER_BREAK_ON_CYCLES 117 +#define IDC_CHECK_CODE_TABBING 117 +#define CHEAT_CONTEXT_LIST_POKECHEATVALUE 118 +#define IDC_CHECK_LOG_STATUSES_TO_THE_LEFT 118 +#define IDC_DEBUGGER_BOOKMARK_NAME 118 +#define CHEAT_CONTEXT_LIST_GOTOINHEXEDITOR 119 +#define IDC_DEBUGGER_BREAK_ON_INSTRUCTIONS 119 +#define IDC_CHECK_LOG_FRAMES_COUNT 119 +#define IDC_CHECK_LOG_CYCLES_COUNT 120 +#define CHEAT_CONTEXT_LIST_DELETESELECTEDCHEATS 120 +#define IDC_CHECK_LOG_INSTRUCTIONS_COUNT 121 +#define COMBO_SOUND_8BIT 122 +#define IDC_CHECK_SYMBOLIC_TRACING 123 +#define CHECK_SOUND_GLOBAL_FOCUS 124 +#define IDC_CHECK_LOG_MESSAGES 124 +#define IDC_CHECK_LOG_BREAKPOINTS 125 +#define CHECK_SOUND_ENABLED 126 +#define CTL_LATENCY_TRACKBAR 128 +#define COMBO_SOUND_QUALITY 129 +#define CHECK_SOUND_MUTEFA 130 +#define DEBUGGER_CONTEXT_TOGGLEBREAK 132 +#define MENU_RECORD_MOVIE 141 +#define MENU_REPLAY_MOVIE 142 +#define MENU_STOP_MOVIE 143 +#define MENU_RECORD_AVI 151 +#define MENU_STOP_AVI 152 +#define MENU_EXIT 153 +#define IDD_RAMSEARCH 154 +#define IDD_RAMWATCH 155 +#define IDD_EDITWATCH 156 +#define IDR_RWACCELERATOR 158 +#define IDD_LUA 159 +#define IDB_BITMAP0 163 +#define IDB_BITMAP1 164 +#define IDB_BITMAP2 165 +#define IDB_BITMAP3 166 +#define IDB_BITMAP4 167 +#define IDB_BITMAP5 168 +#define IDB_BITMAP6 169 +#define IDB_BITMAP7 170 +#define IDB_BITMAP8 171 +#define IDB_BITMAP9 172 +#define IDB_BITMAP10 173 +#define IDB_BITMAP11 174 +#define IDB_BITMAP12 175 +#define IDB_BITMAP13 176 +#define IDB_BITMAP14 177 +#define IDB_BITMAP15 178 +#define IDB_BITMAP16 179 +#define IDB_BITMAP17 180 +#define IDB_BITMAP18 181 +#define IDB_BITMAP19 182 +#define IDB_BRANCH_SPRITESHEET 184 +#define IDD_TASEDITOR_SAVECOMPACT 195 +#define IDD_TASEDITOR_EXPORT 196 +#define IDI_ICON3 197 +#define IDD_TASEDITOR_FINDNOTE 198 +#define IDD_TASEDITOR_ABOUT 199 +#define MENU_RESET 200 +#define BUTTON_ROMS 200 +#define TXT_PAD1 200 +#define BTN_RESTORE_DEFAULTS 200 +#define BTN_CLEAR 200 +#define IDC_EDIT_FILENAME 200 +#define IDC_COMBO_FILENAME 200 +#define BTN_PALETTE_LOAD 200 +#define IDC_NETMOO_HOST 200 +#define COMBO_SOUND_RATE 200 +#define MENU_MV_EDIT_UNDO 200 +#define IDC_VIDEOCONFIG_XRES 200 +#define IDC_DEBUGGER_FLAG_N 200 +#define IDC_ADDBP_ADDR_START 200 +#define MENU_POWER 201 +#define IDC_GROUPBOX_CHEATLIST 201 +#define TXT_PAD2 201 +#define IDC_BUTTON_BROWSEFILE 201 +#define IDC_CHECK_READONLY 201 +#define BTN_PALETTE_RESET 201 +#define CTL_PPUVIEW_TRACKBAR 201 +#define IDC_NETMOO_PORT 201 +#define MENU_MV_EDIT_COPY 201 +#define IDC_VIDEOCONFIG_YRES 201 +#define IDC_DEBUGGER_FLAG_V 201 +#define IDC_ADDBP_ADDR_END 201 +#define IDC_NTVIEW_REFRESH_TRACKBAR 201 +#define IDC_ASSEMBLER_APPLY 201 +#define IDI_ICON4 201 +#define BTN_OK 201 +#define MENU_EJECT_DISK 202 +#define TXT_FAM 202 +#define MENU_MV_EDIT_PASTE 202 +#define IDC_VIDEOCONFIG_BPP 202 +#define IDC_DEBUGGER_FLAG_U 202 +#define IDC_ADDBP_CONDITION 202 +#define IDC_ASSEMBLER_SAVE 202 +#define IDD_TASEDITOR_NEWPROJECT 202 +#define IDC_GROUPBOX_CHEATSEARCH 202 +#define MENU_SWITCH_DISK 203 +#define IDC_NETMOO_NICK 203 +#define IDC_CHEAT_BOX_POSSIBILITIES 203 +#define MENU_MV_EDIT_FIND 203 +#define IDC_DEBUGGER_FLAG_B 203 +#define IDC_ADDBP_NAME 203 +#define IDC_ASSEMBLER_UNDO 203 +#define MENU_INSERT_COIN 204 +#define COMBO_NETMOO_LOCAL_PLAYERS 204 +#define IDC_DEBUGGER_FLAG_D 204 +#define IDC_GROUP_PREV_COM 204 +#define IDC_NETMOO_KEY 205 +#define IDC_DEBUGGER_FLAG_I 205 +#define IDB_TE_GREEN_ARROW 205 +#define IDC_NETMOO_PASS 206 +#define IDC_DEBUGGER_FLAG_Z 206 +#define IDC_DEBUGGER_FLAG_C 207 +#define IDC_DEBUGGER_ENABLE_SYMBOLIC 208 +#define IDB_TE_GREEN_BLUE_ARROW 208 +#define IDB_PIANO_0 209 +#define IDC_DEBUGGER_ROM_OFFSETS 209 +#define IDB_PIANO_1 210 +#define IDB_PIANO_2 211 +#define IDB_PIANO_3 212 +#define IDB_PIANO_4 213 +#define IDB_PIANO_5 214 +#define IDB_PIANO_6 215 +#define IDB_PIANO_7 216 +#define IDB_PIANO_8 217 +#define IDB_PIANO_9 218 +#define IDB_PIANO_10 219 +#define IDB_PIANO_11 220 +#define IDB_PIANO_12 221 +#define IDB_PIANO_13 222 +#define IDB_PIANO_14 223 +#define IDB_PIANO_15 224 +#define IDB_PIANO_16 225 +#define IDB_PIANO_17 226 +#define IDB_PIANO_18 227 +#define IDB_PIANO_19 228 +#define IDB_PIANO_PLAYBACK_0 229 +#define IDB_PIANO_PLAYBACK_1 230 +#define IDB_PIANO_PLAYBACK_2 231 +#define IDB_PIANO_PLAYBACK_3 232 +#define IDB_PIANO_PLAYBACK_4 233 +#define IDB_PIANO_PLAYBACK_5 234 +#define IDB_PIANO_PLAYBACK_6 235 +#define IDB_PIANO_PLAYBACK_7 236 +#define IDB_PIANO_PLAYBACK_8 237 +#define IDB_PIANO_PLAYBACK_9 238 +#define IDB_PIANO_PLAYBACK_10 239 +#define IDB_PIANO_PLAYBACK_11 240 +#define IDB_PIANO_PLAYBACK_12 241 +#define IDB_PIANO_PLAYBACK_13 242 +#define IDB_PIANO_PLAYBACK_14 243 +#define IDB_PIANO_PLAYBACK_15 244 +#define IDB_PIANO_PLAYBACK_16 245 +#define IDB_PIANO_PLAYBACK_17 246 +#define IDB_PIANO_PLAYBACK_18 247 +#define IDB_PIANO_PLAYBACK_19 248 +#define IDB_PIANO_LOSTPOS_0 249 +#define IDB_PIANO_LOSTPOS_1 250 +#define BTN_NETMOO_CONNECT 250 +#define IDB_PIANO_LOSTPOS_2 251 +#define IDB_PIANO_LOSTPOS_3 252 +#define IDB_PIANO_LOSTPOS_4 253 +#define IDB_PIANO_LOSTPOS_5 254 +#define IDB_PIANO_LOSTPOS_6 255 +#define IDB_PIANO_LOSTPOS_7 256 +#define IDB_PIANO_LOSTPOS_8 257 +#define IDB_PIANO_LOSTPOS_9 258 +#define IDB_PIANO_LOSTPOS_10 259 +#define IDB_PIANO_LOSTPOS_11 260 +#define IDB_PIANO_LOSTPOS_12 261 +#define IDB_PIANO_LOSTPOS_13 262 +#define IDB_PIANO_LOSTPOS_14 263 +#define IDB_PIANO_LOSTPOS_15 264 +#define IDB_PIANO_LOSTPOS_16 265 +#define IDB_PIANO_LOSTPOS_17 266 +#define IDB_PIANO_LOSTPOS_18 267 +#define IDB_PIANO_LOSTPOS_19 268 +#define IDB_BITMAP_SELECTED0 269 +#define IDB_BITMAP_SELECTED1 270 +#define IDB_BITMAP_SELECTED2 271 +#define IDB_BITMAP_SELECTED3 272 +#define IDB_BITMAP_SELECTED4 273 +#define IDB_BITMAP_SELECTED5 274 +#define IDB_BITMAP_SELECTED6 275 +#define IDB_BITMAP_SELECTED7 276 +#define IDB_BITMAP_SELECTED8 277 +#define IDB_BITMAP_SELECTED9 278 +#define IDB_BITMAP_SELECTED10 279 +#define IDB_BITMAP_SELECTED11 280 +#define IDB_BITMAP_SELECTED12 281 +#define IDB_BITMAP_SELECTED13 282 +#define IDB_BITMAP_SELECTED14 283 +#define IDB_BITMAP_SELECTED15 284 +#define IDB_BITMAP_SELECTED16 285 +#define IDB_BITMAP_SELECTED17 286 +#define IDB_BITMAP_SELECTED18 287 +#define IDB_BITMAP_SELECTED19 288 +#define IDD_TASEDITOR_SAVINGOPTIONS 289 +#define IDD_SYMBOLIC_DEBUG_NAMING 290 +#define DLG_SNESPAD 291 +#define MENU_HIDE_MENU 300 +#define COMBO_FILTER 300 +#define IDC_LABEL_LENGTH 300 +#define MENU_MV_VIEW_RAM 300 +#define IDC_DEBUGGER_DISASSEMBLY 300 +#define IDC_ASSEMBLER_DEFPUSHBUTTON 300 +#define MENU_RUN_IN_BACKGROUND 301 +#define IDC_COMBO_RECORDFROM 301 +#define IDC_LABEL_FRAMES 301 +#define IDC_BTN_CHEAT_ADD 301 +#define MENU_MV_VIEW_PPU 301 +#define IDC_DEBUGGER_DISASSEMBLY_VSCR 301 +#define MENU_BACKGROUND_INPUT 302 +#define IDC_LABEL_UNDOCOUNT 302 +#define IDC_BTN_CHEAT_DEL 302 +#define IDC_DEBUGGER_BP_LIST 302 +#define MENU_MV_VIEW_OAM 302 +#define MENU_MV_VIEW_ROM 303 +#define IDC_BTN_CHEAT_UPD 303 +#define IDC_DEBUGGER_DISASSEMBLY_LEFT_PANEL 303 +#define IDD_EDIT_HEADER 303 +#define MENU_ENABLE_AUTOSAVE 304 +#define IDC_LABEL_ROMUSED 304 +#define IDC_BTN_CHEAT_RESET 304 +#define IDC_VIDEOCONFIG_SCALER_FS 304 +#define IDC_DEBUGGER_VAL_A 304 +#define IDC_LABEL_ROMCHECKSUM 305 +#define IDC_BTN_CHEAT_KNOWN 305 +#define IDC_DEBUGGER_VAL_X 305 +#define IDC_LABEL_RECORDEDFROM 306 +#define IDC_BTN_CHEAT_EQ 306 +#define IDC_DEBUGGER_VAL_Y 306 +#define IDC_LABEL_EMULATORUSED 307 +#define IDC_BTN_CHEAT_NE 307 +#define IDC_DEBUGGER_VAL_PC 307 +#define IDC_LABEL_CURRCHECKSUM 308 +#define IDC_BTN_CHEAT_GT 308 +#define IDC_DEBUGGER_STACK_CONTENTS 308 +#define IDC_BTN_CHEAT_LT 309 +#define IDC_DEBUGGER_VAL_PCSEEK 309 +#define IDC_LABEL_PALUSED 309 +#define MENU_GAME_GENIE 310 +#define IDC_DEBUGGER_VAL_PPU 310 +#define IDC_LABEL_NEWPPUUSED 310 +#define IDC_DEBUGGER_VAL_SPR 311 +#define IDC_BTN_CHEAT_ADDFROMFILE 311 +#define IDC_DEBUGGER_BOOKMARK 312 +#define IDC_DEBUGGER_CYCLES_EXCEED 313 +#define IDC_DEBUGGER_INSTRUCTIONS_EXCEED 314 +#define MENU_DIRECTORIES 320 +#define MENU_INPUT 321 +#define MENU_GUI_OPTIONS 327 +#define MENU_NTSC 330 +#define MENU_PAL 331 +#define MENU_DENDY 332 +#define MENU_MV_BOOKMARKS_RM_ALL 400 +#define IDC_WINSIZE_MUL_X 400 +#define IDC_CHEAT_CHECK_NE_BY 401 +#define IDC_WINSIZE_MUL_Y 401 +#define CHECK_ENABLE_FOURSCORE 401 +#define IDC_CHEAT_CHECK_GT_BY 402 +#define IDC_FORCE_INT_VIDEO_SCALARS 402 +#define IDC_DEBUGGER_BREAKPOINTS 402 +#define IDC_CHEAT_CHECK_LT_BY 403 +#define IDC_FORCE_ASPECT_CORRECTION 403 +#define IDC_DEBUGGER_VAL_S 403 +#define IDC_TVASPECT_X 404 +#define IDC_DEBUGGER_VAL_S2 405 +#define IDC_TVASPECT_Y 405 +#define IDC_VIDEOCONFIG_SCALER_WIN 406 +#define CHECK_ENABLE_MICROPHONE 407 +#define CTL_TINT_TRACKBAR 500 +#define CTL_VOLUME_TRACKBAR 500 +#define IDC_SCANLINE_FIRST_NTSC 500 +#define IDC_SCANLINE_LAST_NTSC 501 +#define CTL_HUE_TRACKBAR 501 +#define IDC_DEBUGGER_VAL_SLINE 501 +#define CTL_VOLUME_TRACKBAR_TRIANGLE 501 +#define IDC_SCANLINE_FIRST_PAL 502 +#define IDC_DEBUGGER_ADDR_LINE 502 +#define CTL_VOLUME_TRACKBAR_SQUARE1 502 +#define IDC_SCANLINE_LAST_PAL 503 +#define CTL_VOLUME_TRACKBAR_SQUARE2 503 +#define IDC_DEBUGGER_VAL_CYCLES_COUNT 503 +#define CTL_VOLUME_TRACKBAR_NOISE 504 +#define IDC_DEBUGGER_VAL_PPUPIXEL 504 +#define CTL_VOLUME_TRACKBAR_PCM 505 +#define IDC_DEBUGGER_VAL_CYCLES_COUNT2 505 +#define IDC_DEBUGGER_VAL_INSTRUCTIONS_COUNT 506 +#define IDC_DEBUGGER_VAL_INSTRUCTIONS_COUNT2 507 +#define IDC_VIDEOCONFIG_NO8LIM 600 +#define IDC_DEBUGGER_ROM_PATCHER 602 +#define LIST_DEBUGGER_BOOKMARKS 701 +#define BTN_CANCEL 800 +#define IDC_GAME_GENIE_CODE 1000 +#define IDC_MEMVIEWFIND_WHAT 1000 +#define IDC_BOOKMARK_DESCRIPTION 1000 +#define MW_NAME00 1000 +#define MW_ADDR00 1001 +#define IDC_MEMVIEWFIND_TYPE_HEX 1001 +#define IDC_NTVIEW_MIRROR_HORIZONTAL 1001 +#define IDC_CHECK_STOPMOVIE 1002 +#define IDC_GAME_GENIE_COMP 1002 +#define IDC_MEMVIEWFIND_TYPE_TEXT 1002 +#define IDC_NTVIEW_MIRROR_VERTICAL 1002 +#define MW_VAL00 1002 +#define LV_MAPPING 1003 +#define IDC_EDIT_STOPFRAME 1003 +#define IDC_GAME_GENIE_VAL 1003 +#define IDC_MEMVIEWFIND_DIR_UP 1003 +#define IDC_NTVIEW_MIRROR_FOUR_SCREEN 1003 +#define MW_NAME01 1003 +#define MW_ADDR01 1004 +#define IDC_LIST_GGADDRESSES 1004 +#define IDC_MEMVIEWFIND_DIR_DOWN 1004 +#define IDC_NTVIEW_MIRROR_SS_TABLE_0 1004 +#define IDC_BTN_ADD_TO_CHEATS 1005 +#define IDC_MEMVIEWFIND_NEXT 1005 +#define IDC_NTVIEW_MIRROR_SS_TABLE_1 1005 +#define MW_VAL01 1005 +#define IDC_NTVIEW_MIRROR_SS_TABLE_2 1006 +#define MW_NAME02 1006 +#define MW_ADDR02 1007 +#define IDC_NTVIEW_MIRROR_SS_TABLE_3 1007 +#define IDC_NTVIEW_SHOW_SCROLL_LINES 1008 +#define MW_VAL02 1008 +#define IDC_NTVIEW_SHOW_ATTRIBUTES 1009 +#define MW_NAME03 1009 +#define IDC_NTVIEW_HIDE_PALETTES 1010 +#define MW_ADDR03 1010 +#define IDC_BTN_CHEAT_EXPORTTOFILE 1011 +#define MW_VAL03 1011 +#define IDSAVE 1012 +#define MW_NAME04 1012 +#define MW_ADDR04 1013 +#define IDC_CHECK1 1013 +#define IDC_CHEAT_AUTOLOADSAVE 1013 +#define IDC_RESTORE_BUTTON 1014 +#define MW_VAL04 1014 +#define MW_NAME05 1015 +#define MW_ADDR05 1016 +#define MW_VAL05 1017 +#define IDC_PRGROM_COMBO 1018 +#define MW_NAME06 1018 +#define MW_ADDR06 1019 +#define IDC_CHRROM_COMBO 1019 +#define IDC_RADIO_MIRR_HORIZONTAL 1020 +#define MW_VAL06 1020 +#define IDC_RADIO_MIRR_VERTICAL 1021 +#define MW_NAME07 1021 +#define MW_ADDR07 1022 +#define IDC_RADIO_MIRR_4SCREEN 1022 +#define MW_VAL07 1023 +#define IDC_CHECK_TRAINER 1024 +#define MW_NAME08 1024 +#define MW_ADDR08 1025 +#define IDC_PRGRAM_COMBO 1025 +#define IDC_MAPPER_COMBO 1026 +#define MW_VAL08 1026 +#define IDC_SUBMAPPER_EDIT 1027 +#define MW_NAME09 1027 +#define MW_ADDR09 1028 +#define IDC_CHRRAM_COMBO 1028 +#define IDC_PRGNVRAM_COMBO 1029 +#define MW_VAL09 1029 +#define IDC_CHRNVRAM_COMBO 1030 +#define MW_NAME10 1030 +#define MW_ADDR10 1031 +#define IDC_RADIO_REGION_NTSC 1031 +#define IDC_RADIO_REGION_PAL 1032 +#define MW_VAL10 1032 +#define IDC_RADIO_REGION_DUAL 1033 +#define MW_NAME11 1033 +#define MW_ADDR11 1034 +#define MW_VAL11 1035 +#define IDC_INPUT_DEVICE_COMBO 1036 +#define MW_NAME12 1036 +#define MW_ADDR12 1037 +#define IDC_RADIO_REGION_DENDY 1037 +#define IDC_RADIO_SYSTEM_NORMAL 1038 +#define MW_VAL12 1038 +#define IDC_RADIO_SYSTEM_VS 1039 +#define MW_NAME13 1039 +#define MW_ADDR13 1040 +#define IDC_RADIO_SYSTEM_PLAYCHOICE10 1040 +#define IDC_RADIO_SYSTEM_EXTEND 1041 +#define MW_VAL13 1041 +#define MW_NAME14 1042 +#define MW_ADDR14 1043 +#define IDC_SYSTEM_EXTEND_COMBO 1043 +#define MW_VAL14 1044 +#define MW_NAME15 1045 +#define MW_ADDR15 1046 +#define IDC_VS_SYSTEM_COMBO 1046 +#define IDC_VS_PPU_COMBO 1047 +#define MW_VAL15 1047 +#define MW_NAME16 1048 +#define MW_ADDR16 1049 +#define IDC_MAPPER_TEXT 1049 +#define IDC_SUBMAPPER_TEXT 1050 +#define MW_VAL16 1050 +#define IDC_PRGROM_TEXT 1051 +#define MW_NAME17 1051 +#define MW_ADDR17 1052 +#define IDC_CHRROM_TEXT 1053 +#define MW_VAL17 1053 +#define MW_NAME18 1054 +#define MW_ADDR18 1055 +#define IDC_PRGRAM_TEXT 1055 +#define MW_VAL18 1056 +#define IDC_CHRRAM_TEXT 1057 +#define MW_NAME19 1057 +#define MW_ADDR19 1058 +#define IDC_PRGNVRAM_TEXT 1059 +#define MW_VAL19 1059 +#define IDC_CHRNVRAM_TEXT 1060 +#define MW_NAME20 1060 +#define MW_ADDR20 1061 +#define MW_VAL20 1062 +#define IDC_INESHEADER_GROUP 1063 +#define MW_NAME21 1063 +#define MW_ADDR21 1064 +#define IDC_MIRRORING_GROUP 1064 +#define IDC_REGION_GROUP 1065 +#define MW_VAL21 1065 +#define IDC_SYSTEM_GROUP 1066 +#define MW_NAME22 1066 +#define MW_ADDR22 1067 +#define IDC_VS_SYSTEM_GROUP 1067 +#define IDC_VS_SYSTEM_TEXT 1068 +#define MW_VAL22 1068 +#define IDC_VS_PPU_TEXT 1069 +#define MW_NAME23 1069 +#define MW_ADDR23 1070 +#define IDC_RADIO_VERSION_STANDARD 1071 +#define MW_VAL23 1071 +#define IDC_RADIO_VERSION_INES20 1073 +#define IDC_VERSION_GROUP 1074 +#define IDC_MAPPER_GROUP 1075 +#define IDC_CHECK_BATTERYNVRAM 1076 +#define IDC_INPUT_DEVICE_TEXT 1077 +#define IDC_PRG_GROUP 1078 +#define IDC_CHR_GROUP 1079 +#define IDC_UNOFFICIAL_GROUP 1081 +#define IDC_CHECK_UNOFFICIAL_PRGRAM 1082 +#define IDC_CHECK_UNOFFICIAL_EXTRA_REGION 1083 +#define IDC_CHECK_UNOFFICIAL_BUS_CONFLICT 1084 +#define IDC_CHECK_UNOFFICIAL 1085 +#define IDC_MISCELLANEOUS_ROMS_TEXT 1086 +#define IDC_MISCELLANEOUS_ROMS_EDIT 1087 +#define IDC_EXTEND_SYSTEM_GROUP 1089 +#define IDC_EXTEND_SYSTEM_TEXT 1090 +#define IDC_BUTTON1 1094 +#define IDC_CHEAT_SWITCH 1096 +#define IDC_CHEAT_GLOBAL_SWITCH 1096 +#define IDC_GAME_GENIE_LABEL 1097 +#define IDC_CHEAT_GAME_GENIE_TEXT 1098 +#define IDC_CHECK2 1099 +#define BTN_ALLOW_LRUD 1117 +#define IDC_PRGROM_EDIT 1118 +#define IDC_CHRROM_EDIT 1119 +#define BTN_PRESET_SET1 1119 +#define BTN_PRESET_SET2 1120 +#define BTN_PRESET_SET3 1121 +#define BTN_PRESET_IMPORT1 1122 +#define BTN_PRESET_IMPORT2 1123 +#define BTN_PRESET_IMPORT3 1124 +#define IDC_PRGRAM_EDIT 1125 +#define BTN_PRESET_EXPORT1 1125 +#define BTN_PRESET_EXPORT2 1126 +#define BTN_PRESET_EXPORT3 1127 +#define IDC_CHRRAM_EDIT 1128 +#define IDC_PRGNVRAM_EDIT 1129 +#define IDC_CHRNVRAM_EDIT 1130 +#define IDC_LIST1 1130 +#define IDC_BUTTON_METADATA 1132 +#define MEMW_EXPANDCOLLAPSE 1133 +#define IDC_SOUND_RESTOREDEFAULTVOL 1133 +#define TASEDITOR_REWIND 1133 +#define TASEDITOR_FORWARD 1134 +#define TASEDITOR_REWIND_FULL 1135 +#define TASEDITOR_FORWARD_FULL 1136 +#define TASEDITOR_PLAYSTOP 1137 +#define IDC_RADIO_GREENZONE_SAVINGMODE_ALLFRAMES 1138 +#define IDC_RADIO_UP 1138 +#define IDC_RADIO_ALL 1139 +#define IDC_RADIO_GREENZONE_SAVINGMODE_EVERY16FRAME 1139 +#define IDC_RADIO_1P 1140 +#define IDC_RADIO_GREENZONE_SAVINGMODE_MARKEDFRAMES 1140 +#define IDC_RADIO_2P 1141 +#define IDC_RADIO_GREENZONE_SAVINGMODE_DONTSAVE 1141 +#define MEMW_EDIT00FORMULA 1142 +#define IDC_RADIO_3P 1142 +#define MEMW_EDIT01FORMULA 1143 +#define IDC_RADIO_4P 1143 +#define IDC_PROGRESS_BUTTON 1144 +#define MEMW_EDIT02FORMULA 1144 +#define MEMW_EDIT03FORMULA 1145 +#define TASEDITOR_PREV_MARKER 1145 +#define TASEDITOR_FIND_BEST_SIMILAR_MARKER 1146 +#define IDC_SELECTION_MARKER_EDIT 1147 +#define IDC_NOTE_TO_FIND 1147 +#define IDC_AUTOSAVE_PERIOD 1147 +#define IDC_EXTRA_SCANLINES 1147 +#define IDC_CHEAT_TEXT 1147 +#define TASEDITOR_FIND_NEXT_SIMILAR_MARKER 1148 +#define IDC_SYMBOLIC_ADDRESS 1148 +#define IDC_VBLANK_SCANLINES 1148 +#define IDC_HISTORYLIST 1149 +#define IDC_SYMBOLIC_NAME 1149 +#define IDC_BOOKMARKSLIST 1150 +#define IDC_SYMBOLIC_FILENAME 1150 +#define TASEDITOR_NEXT_MARKER 1151 +#define IDC_SYMBOLIC_COMMENT 1151 +#define IDC_BRANCHES_BUTTON 1152 +#define IDC_PLAYBACK_MARKER_EDIT 1154 +#define TASEDITOR_RUN_MANUAL 1156 +#define CHECK_SOUND_MUTETURBO 1179 +#define IDC_EDIT_AUTHOR 1180 +#define MEMW_EDIT00RESET 1184 +#define MEMW_EDIT01RESET 1185 +#define MEMW_EDIT02RESET 1186 +#define MEMW_EDIT03RESET 1187 +#define MEMW_EDIT00RMADDRESS 1188 +#define MEMW_EDIT01RMADDRESS 1189 +#define MEMW_EDIT02RMADDRESS 1190 +#define MEMW_EDIT03RMADDRESS 1191 +#define IDC_DEBUGGER_RESTORESIZE 1191 +#define IDC_MOVIE_CLOSE 1192 +#define EDIT00_RESULTS 1193 +#define IDC_MOVIE_PAUSEAFTERPLAYBACK 1193 +#define EDIT01_RESULTS 1194 +#define IDC_MOVIE_BINDSAVESTATES 1194 +#define EDIT02_RESULTS 1195 +#define EDIT03_RESULTS 1196 +#define IDC_MOVIE_DISPLAYSUBTITLES 1196 +#define IDC_MOVIE_SUBTITLESINAVI 1197 +#define IDC_MOVIE_AUTOBACKUP 1198 +#define ID_SOUND_TRITOP 1201 +#define IDC_MOVIE_SUGGEST_READONLY 1201 +#define ID_SOUND_QUALITYNOTIFY 1202 +#define CB_ENABLECONTEXTMENU 1203 +#define DEBUGAUTOLOAD 1203 +#define IDC_CHEAT_PAUSEWHENACTIVE 1203 +#define IDC_FULLSAVESTATES 1203 +#define IDC_SUPERIMPOSE 1203 +#define IDC_CHECK_BINARY 1203 +#define IDC_NOTES_TO_SUBTITLES 1203 +#define IDC_MATCH_CASE 1203 +#define IDC_COPY_INPUT 1203 +#define IDC_AUTORESUMECDLOGGING 1203 +#define IDC_MASK_UNUSED_GRAPHICS 1203 +#define CHECK_SOUND_SWAPDUTY 1203 +#define CB_OVERCLOCKING 1203 +#define CHECK_DEEMPH_SWAP 1203 +#define IDC_CHECK_LOG_BANK_NUMBER 1203 +#define IDC_VOLUMEGROUP 1204 +#define IDC_CHECK_MARKERS 1204 +#define IDC_RECORDING 1204 +#define IDC_COPY_MARKERS 1204 +#define IDC_AUTOSAVECDL 1204 +#define IDC_INVERT_THE_MASK 1204 +#define IDC_DEBUGGER_PREDEFINED_REGS 1204 +#define IDC_RAMLIST 1205 +#define IDC_CHECK_BOOKMARKS 1205 +#define IDC_RUN_AUTO 1205 +#define IDC_AUTOLOADCDL 1205 +#define IDC_SPRITE16_MODE 1205 +#define IDC_C_SEARCH 1206 +#define IDC_USEPATTERN 1206 +#define IDC_C_ADDCHEAT 1207 +#define IDC_CHECK_HISTORY 1207 +#define IDC_C_WATCH 1208 +#define IDC_CHECK_SELECTION 1208 +#define IDC_C_RESET 1209 +#define IDC_CHECK_PIANO_ROLL 1209 +#define IDC_C_ELIMINATE 1210 +#define IDC_LESSTHAN 1211 +#define IDC_MORETHAN 1212 +#define IDC_NOMORETHAN 1213 +#define IDC_NOLESSTHAN 1214 +#define IDC_EQUALTO 1215 +#define IDC_DIFFERENTFROM 1216 +#define IDC_DIFFERENTBY 1217 +#define IDC_MODULO 1218 +#define IDC_EDIT_DIFFBY 1219 +#define IDC_EDIT_MODBY 1220 +#define IDC_PREVIOUSVALUE 1221 +#define IDC_SPECIFICVALUE 1222 +#define IDC_SPECIFICADDRESS 1223 +#define IDC_NUMBEROFCHANGES 1224 +#define IDC_EDIT_COMPAREVALUE 1225 +#define IDC_EDIT_COMPAREADDRESS 1226 +#define IDC_EDIT_COMPARECHANGES 1227 +#define IDC_SIGNED 1228 +#define IDC_UNSIGNED 1229 +#define IDC_HEX 1230 +#define IDC_C_AUTOSEARCH 1231 +#define IDC_1_BYTE 1232 +#define IDC_2_BYTES 1233 +#define IDC_4_BYTES 1234 +#define IDC_MISALIGN 1235 +#define IDC_C_RESET_CHANGES 1236 +#define IDC_C_UNDO 1237 +#define IDC_WATCHLIST 1238 +#define IDC_C_HEXEDITOR 1238 +#define IDC_C_WATCH_EDIT 1239 +#define IDC_C_WATCH_REMOVE 1240 +#define IDC_C_WATCH_DUPLICATE 1241 +#define ID_WATCHES_UPDOWN 1242 +#define IDC_C_WATCH_UP 1243 +#define IDC_C_WATCH_DOWN 1244 +#define IDC_PROMPT_TEXT 1245 +#define IDC_PROMPT_EDIT 1247 +#define IDC_BUTTON_LUABROWSE 1248 +#define IDC_BUTTON_LUARUN 1249 +#define IDC_BUTTON_LUASTOP 1250 +#define IDC_EDIT_LUAPATH 1251 +#define IDC_LUACONSOLE 1252 +#define IDC_BUTTON_LUAEDIT 1253 +#define IDC_LUACONSOLE_CLEAR 1254 +#define IDC_LUACONSOLE_CHOOSEFONT 1255 +#define IDC_EDIT_LUAARGS 1256 +#define CB_PARTIALVISUALTHEME 1257 +#define DEBUGLOADDEB 1258 +#define IDC_C_SEARCHROM 1258 +#define IDC_SINGLEINSTANCE 1258 +#define IDC_MOVIE_CLOSEAFTERPLAYBACK 1258 +#define IDC_C_WATCH_SEPARATE 1259 +#define CHECK_AUTORESTORE_PLAYBACK 1261 +#define CB_FS_BY_DOUBLECLICK 1261 +#define IDC_PROGRESS1 1262 +#define CHECK_FOLLOW_CURSOR 1263 +#define IDC_BOOKMARKS_BOX 1264 +#define IDC_BRANCHES_BITMAP 1265 +#define CHECK_TURBO_SEEK 1266 +#define IDC_TEXT_SELECTION 1267 +#define IDC_TEXT_CLIPBOARD 1268 +#define IDC_RADIO_1PLAYER 1269 +#define IDC_RADIO_2PLAYERS 1270 +#define IDC_PLAYBACK_MARKER 1270 +#define IDC_RADIO_FOURSCORE 1271 +#define IDC_SELECTION_MARKER 1271 +#define IDC_RADIO_DOWN 1273 +#define IDC_PLAYBACK_BOX 1275 +#define IDC_RECORDER_BOX 1276 +#define IDC_SPLICER_BOX 1277 +#define IDC_LUA_BOX 1278 +#define IDC_HISTORY_BOX 1279 +#define IDC_TASEDITOR_NAME 1280 +#define ID_CANCEL 1281 +#define IDC_AUTOSAVE_PROJECT 1282 +#define IDC_SILENT_AUTOSAVE 1283 +#define ID_CHR1 1283 +#define ID_CHR2 1284 +#define ID_CHR3 1285 +#define ID_STATIC 1286 +#define CTL_PALSAT_TRACKBAR 1291 +#define CB_SKIP_7BIT 1293 +#define STATIC_SATVALUE 1294 +#define CTL_PALNOTCH_TRACKBAR 1295 +#define STATIC_NOTCHVALUE 1296 +#define CTL_PALSHARP_TRACKBAR 1297 +#define STATIC_SHARPVALUE 1298 +#define CTL_PALCONTRAST_TRACKBAR 1299 +#define STATIC_CONTRASTVALUE 1300 +#define CTL_PALBRIGHT_TRACKBAR 1301 +#define STATIC_BRIGHTVALUE 1302 +#define DEBUGIDAFONT 1305 +#define IDC_AUTOSAVE_PERIOD_EVERY_TEXT 1306 +#define IDC_AUTOSAVE_PERIOD_MINUTES_TEXT 1307 +#define IDC_VBLANK_SCANLINES_TEXT 1308 +#define IDC_EXTRA_SCANLINES_TEXT 1309 +#define IDC_DATASIZE_GROUPBOX 1310 +#define IDC_DATATYPE_GROUPBOX 1311 +#define IDC_CHEAT_CODE_LABEL 1312 +#define IDC_CHEAT_ADDRESS_LABEL 1313 +#define IDC_CHEAT_VAL_LABEL 1314 +#define IDC_CHEAT_COM_LABEL 1315 +#define IDC_CHEAT_LABEL_KNOWN 1316 +#define IDC_BINARY 1317 +#define IDC_GAME_GENIE_ADDR 1501 +#define MENU_INESHEADEREDITOR 40001 +#define MENU_NETWORK 40040 +#define MENU_PALETTE 40041 +#define MENU_SOUND 40042 +#define MENU_TIMING 40043 +#define MENU_VIDEO 40044 +#define MENU_HOTKEYS 40045 +#define MENU_ABOUT 40046 +#define MENU_MSGLOG 40047 +#define MENU_CHEATS 40048 +#define MENU_AUTOFIRE_PATTERN_1 40050 +#define MENU_AUTOFIRE_PATTERN_2 40051 +#define MENU_AUTOFIRE_PATTERN_3 40052 +#define ID_DEBUG_DEBUGGER 40053 +#define MENU_AUTOFIRE_PATTERN_4 40053 +#define ID_DEBUG_PPUVIEWER 40054 +#define MENU_AUTOFIRE_PATTERN_5 40054 +#define ID_DEBUG_NAMETABLEVIEWER 40055 +#define MENU_AUTOFIRE_PATTERN_6 40055 +#define ID_DEBUG_HEXEDITOR 40056 +#define MENU_AUTOFIRE_PATTERN_7 40056 +#define ID_DEBUG_TRACELOGGER 40057 +#define MENU_AUTOFIRE_PATTERN_8 40057 +#define MENU_AUTOFIRE_PATTERN_9 40058 +#define ID_DEBUG_GAMEGENIEDECODER 40059 +#define MENU_AUTOFIRE_PATTERN_10 40059 +#define ID_DEBUG_CDLOGGER 40060 +#define MENU_AUTOFIRE_PATTERN_11 40060 +#define MENU_AUTOFIRE_PATTERN_12 40061 +#define MENU_AUTOFIRE_PATTERN_13 40062 +#define MENU_AUTOFIRE_PATTERN_14 40063 +#define MENU_AUTOFIRE_PATTERN_15 40064 +#define MENU_AUTOFIRE_OFFSET_1 40065 +#define MENU_AUTOFIRE_OFFSET_2 40066 +#define MENU_AUTOFIRE_OFFSET_3 40067 +#define MENU_AUTOFIRE_OFFSET_4 40068 +#define MENU_AUTOFIRE_OFFSET_5 40069 +#define MENU_AUTOFIRE_OFFSET_6 40070 +#define MENU_ALTERNATE_AB 40071 +#define MENU_PPUVIEWER 40074 +#define MENU_NAMETABLEVIEWER 40075 +#define MENU_HEXEDITOR 40076 +#define MENU_TRACELOGGER 40077 +#define MENU_CDLOGGER 40078 +#define MENU_GAMEGENIEDECODER 40079 +#define MENU_DEBUGGER 40080 +#define MENU_MEMORY_WATCH 40081 +#define ID_FILE_RECENT 40100 +#define MEMW_HELP_WCOMMANDS 40101 +#define MEMW_OPTIONS_LOADLASTFILE 40102 +#define MEMW_FILE_NEW 40103 +#define MEMW_FILE_OPEN 40104 +#define MEMW_FILE_SAVE 40105 +#define MEMW_FILE_SAVEAS 40106 +#define MEMW_FILE_CLOSE 40108 +#define MEMW_OPTIONS_LOADSTART 40109 +#define ID_FILE_RECORDMODE_TRUNCATE 40110 +#define ID_FILE_RECORDMODE_OVERWRITE 40111 +#define ID_FILE_RECORDMODE_INSERT 40112 +#define FCEUX_CONTEXT_RECORDMODE_TRUNCATE 40115 +#define FCEUX_CONTEXT_RECORDMODE_OVERWRITE 40116 +#define FCEUX_CONTEXT_RECORDMODE_INSERT 40117 +#define MENU_RECORD_WAV 40120 +#define MENU_STOP_WAV 40121 +#define ID_FILE_NEXTRECORDMODE 40127 +#define ID_FILE_PREVRECORDMODE 40128 +#define ACCEL_CTRL_O 40130 +#define ACCEL_CTRL_W 40132 +#define ACCEL_CTRL_S 40134 +#define ACCEL_CTRL_SHIFT_S 40135 +#define ACCEL_CTRL_N 40136 +#define ACCEL_CTRL_C 40138 +#define MENU_HELP 40140 +#define MENU_DISPLAY_BG 40147 +#define MENU_DISPLAY_OBJ 40148 +#define MENU_CONVERT_MOVIE 40150 +#define ID_TOOLS_TEXTHOOKER 40158 +#define ID_EDIT_DELETE 40169 +#define ID_FILE_SAVEPROJECT 40172 +#define ID_EDIT_TRUNCATE 40177 +#define ID_FILE_IMPORT 40178 +#define ID_FILE_OPENPROJECT 40181 +#define ID_FILE_SAVEPROJECTAS 40182 +#define ID_FILE_EXPORTFM2 40183 +#define ACCEL_CTRL_X 40184 +#define ACCEL_CTRL_V 40195 +#define ACCEL_CTRL_SHIFT_V 40196 +#define ACCEL_CTRL_DELETE 40197 +#define ACCEL_CTRL_B 40199 +#define ID_CONTEXT_SELECTED_TRUNCATE 40200 +#define ID_CONTEXT_SELECTED_INSERTFRAMES 40204 +#define ID_CONTEXT_SELECTED_DELETEFRAMES 40205 +#define ID_EDIT_SELECTALL 40214 +#define ID_MEMWVIEW_FILE_CLOSE 40217 +#define MENU_MV_FILE_GOTO_ADDRESS 40219 +#define ID_FILE_TRUNCATE_MOVIE 40221 +#define FCEUX_CONTEXT_TRUNCATE_MOVIE 40222 +#define ID_FILE_INSERT_1_FRAME 40223 +#define FCEUX_CONTEXT_INSERT_1_FRAME 40224 +#define ID_FILE_DELETE_1_FRAME 40225 +#define FCEUX_CONTEXT_DELETE_1_FRAME 40226 +#define ID_FILE_OPENLUAWINDOW 40229 +#define ID_FILE_CLOSELUAWINDOWS 40230 +#define MENU_DISPLAY_LAGCOUNTER 40237 +#define MENU_DISPLAY_FA_LAGSKIP 40239 +#define MENU_INPUTDISPLAY_0 40250 +#define MENU_INPUTDISPLAY_1 40251 +#define MENU_INPUTDISPLAY_2 40252 +#define MENU_INPUTDISPLAY_4 40253 +#define ID_DISPLAY_FRAMECOUNTER 40254 +#define MENU_CONFIG_BINDSAVES 40256 +#define MENU_MV_HELP 40258 +#define ID_NES_PAUSE 40263 +#define ID_NES_SPEEDUP 40265 +#define ID_NES_SLOWDOWN 40266 +#define ID_NES_NORMALSPEED 40268 +#define ID_NES_TURBO 40269 +#define ID_NES_SLOWESTSPEED 40270 +#define ID_FILE_SCREENSHOT 40272 +#define ID_FILE_PLAYMOVIEFROMBEGINNING 40274 +#define FCEU_CONTEXT_MOVIEHELP 40281 +#define FCEUX_CONTEXT_REPLAYMOVIE 40282 +#define FCEU_CONTEXT_OPENROM 40286 +#define FCEU_CONTEXT_FCEUHELP 40287 +#define FCEU_CONTEXT_PLAYMOVIEFROMBEGINNING 40295 +#define FCEU_CONTEXT_STOPMOVIE 40296 +#define FCEU_CONTEXT_CLOSEROM 40298 +#define FCEUX_CONTEXT_RECORDMOVIE 40303 +#define FCEUX_CONTEXT_SCREENSHOT 40305 +#define FCEUX_CONTEXT_REWINDTOLASTAUTO 40307 +#define FCEUX_CONTEXT_VIEWCOMMENTSSUBTITLES 40311 +#define MEMW_OPTIONS_EXPANDCOLLAPSE 40314 +#define FCEUX_CONTEXT_UNDOLOADSTATE 40316 +#define FCEUX_CONTEXT_MAKEBACKUP 40320 +#define MENU_MOVIEOPTIONS 40322 +#define FCEUX_CONTEXT_UNDOSAVESTATE 40324 +#define FCEUX_CONTEXT_RECENTROM1 40328 +#define ID_FILE_MOVIE_TOGGLEREAD 40331 +#define FCEUX_CONTEXT_READONLYTOGGLE 40335 +#define MENU_LOADSTATE 40343 +#define MENU_SAVESTATE 40344 +#define MENU_NEXTSAVESTATE 40347 +#define MENU_PREVIOUSSAVESTATE 40348 +#define MENU_VIEWSAVESLOTS 40350 +#define MENU_LUA_RECENT 40352 +#define MENU_MOVIE_RECENT 40354 +#define FCEUX_CONTEXT_LOADLASTMOVIE 40356 +#define FCEUX_CONTEXT_SAVEMOVIEAS 40358 +#define ID_FILE_TOGGLE_RECORDING_MOVIE 40359 +#define FCEUX_CONTEXT_TOGGLE_RECORDING 40360 +#define ID_OPTIONS_BINDTOMAINWINDOW 40361 +#define ID_NEWPPU 40365 +#define ID_OLDPPU 40366 +#define ID_CONFIG_SAVECONFIGFILE 40367 +#define RAMMENU_FILE_AUTOLOAD 40368 +#define RAMMENU_FILE_SAVEWINDOW 40369 +#define RAMMENU_FILE_SAVE 40370 +#define RAMMENU_FILE_SAVEAS 40371 +#define RAMMENU_FILE_OPEN 40372 +#define RAMMENU_FILE_APPEND 40373 +#define RAMMENU_FILE_NEW 40374 +#define RAMMENU_FILE_RECENT 40375 +#define ID_RAM_SEARCH 40376 +#define ID_RAM_WATCH 40377 +#define RW_MENU_FIRST_RECENT_FILE 40380 +#define RW_MENU_LAST_RECENT_FILE 40400 +#define ID_ENABLE_BACKUPSAVESTATES 40401 +#define ID_ENABLE_COMPRESSSAVESTATES 40402 +#define ID_AVI_DISMOVIEMESSAGE 40405 +#define ID_INPUTDISPLAY_OLDSTYLEDISP 40406 +#define ID_CONTEXT_FULLSAVESTATES 40409 +#define ID_FILE_SAVESCREENSHOTAS 40411 +#define FCEUX_CONTEXT_GUICONFIG 40418 +#define ID_CONTEXT_SELECTED_INSERTFRAMES2 40425 +#define ACCEL_CTRL_F 40429 +#define ID_CONFIG_SETGREENZONECAPACITY 40432 +#define ACCEL_CTRL_INSERT 40433 +#define ID_DISPLAY_RERECORDCOUNTER 40436 +#define ID_DISPLAY_MOVIESTATUSICON 40437 +#define ID_AVI_ENABLEHUDRECORDING 40440 +#define ACCEL_INS 40442 +#define ACCEL_DEL 40443 +#define ID_CONTEXT_SELECTED_CLEARFRAMES 40447 +#define ID_EDIT_CLEAR 40450 +#define ID_EDIT_INSERTFRAMES 40451 +#define ID_EDIT_INSERT 40452 +#define ID_CONFIG_BINDMARKERSTOINPUT 40454 +#define ACCEL_CTRL_A 40455 +#define ID_EDIT_SELECTMIDMARKERS 40457 +#define ID_SELECTED_SELECTMIDMARKERS 40458 +#define ID_EDIT_CLONEFRAMES 40460 +#define ACCEL_CTRL_SHIFT_INS 40461 +#define ID_SELECTED_CLONE 40463 +#define ACCEL_CTRL_Z 40465 +#define ACCEL_CTRL_Y 40466 +#define ID_EDIT_UNDO 40468 +#define ID_EDIT_REDO 40469 +#define ID_CONFIG_SETMAXUNDOLEVELS 40470 +#define ID_VIEW_JUMPWHENMAKINGUNDO 40472 +#define ID_CONFIG_BRANCHESRESTOREFULLMOVIE 40473 +#define ID_CONFIG_OLDBRANCHINGCONTROLS 40474 +#define ID_CONFIG_HUDINBRANCHSCREENSHOTS 40475 +#define ACCEL_CTRL_Q 40478 +#define ID_EDIT_SELECTIONUNDO 40481 +#define ID_EDIT_SELECTIONREDO 40482 +#define ID_EDIT_RESELECTCLIPBOARD 40483 +#define ID_FILE_SAVECOMPACT 40484 +#define ID_HELP_ABOUT 40485 +#define ID_VIEW_ENABLEHOTCHANGES 40488 +#define ID_VIEW_SHOWBRANCHSCREENSHOTS 40489 +#define ID_CONFIG_USE1PFORRECORDING 40491 +#define ID_CONFIG_COMBINECONSECUTIVERECORDINGS 40492 +#define ID_EDIT_PASTEINSERT 40495 +#define ACCEL_CTRL_PGUP 40502 +#define ACCEL_CTRL_PGDN 40503 +#define ACCEL_SHIFT_PGUP 40504 +#define ACCEL_SHIFT_PGDN 40505 +#define ID_VIEW_FOLLOWMARKERNOTECONTEXT 40507 +#define ID_VIEW_SHOWBRANCHTOOLTIPS 40508 +#define ID_CONFIG_USEINPUTKEYSFORCOLUMNSET 40509 +#define ID_CONFIG_EMPTYNEWMARKERNOTES 40510 +#define ID_VIEW_FINDNOTE 40515 +#define ID_FILE_CLOSE 40517 +#define ID_EDIT_PASTE 40520 +#define ID_EDIT_COPY 40521 +#define ID_EDIT_CUT 40522 +#define MENU_TASEDITOR 40524 +#define ID_FILE_NEW 40525 +#define ID_HELP_TOOLTIPS 40527 +#define ID_PATTERN_TEST 40534 +#define ID_EDIT_DESELECT 40536 +#define ID_SELECTED_DESELECT 40537 +#define ID_CONFIG_DRAWINPUTBYDRAGGING 40539 +#define ACCEL_CTRL_UP 40541 +#define ACCEL_CTRL_DOWN 40542 +#define ACCEL_CTRL_LEFT 40543 +#define ACCEL_CTRL_RIGHT 40544 +#define ACCEL_HOME 40545 +#define ACCEL_END 40546 +#define ACCEL_PGUP 40547 +#define ACCEL_PGDN 40548 +#define ACCEL_CTRL_HOME 40550 +#define ACCEL_CTRL_END 40551 +#define ACCEL_SHIFT_HOME 40552 +#define ACCEL_SHIFT_END 40553 +#define ACCEL_SHIFT_UP 40554 +#define ACCEL_SHIFT_DOWN 40555 +#define ACCEL_SHIFT_LEFT 40556 +#define ACCEL_SHIFT_RIGHT 40557 +#define ID_CONFIG_AUTOPAUSEATTHEENDOFMOVIE 40559 +#define ID_SELECTED_SETMARKERS 40560 +#define ID_SELECTED_REMOVEMARKERS 40561 +#define ID_HELP_OPEN_MANUAL 40564 +#define ID_DISPLAY_FPS 40565 +#define ID_CONFIG_ADJUSTLAG 40567 +#define ID_CONFIG_PATTERNSKIPSLAG 40568 +#define CLEAR_LOG 40569 +#define CLOSE_LOG 40570 +#define ID_SELECTED_UNGREENZONE 40571 +#define CHEAT_CONTEXT_POSSI_GOTOINHEXEDITOR 40572 +#define ID_CONFIG_ENABLEGREENZONING 40573 +#define ID_EMULATIONSPEED_SETFRAMEADVANCEDELAY 40574 +#define ID_EMULATIONSPEED_SETCUSTOMSPEEDFORFRAMEADVANCE 40576 +#define ID_EMULATIONSPEED_CUSTOMSPEED 40577 +#define ID_ENABLE_AUTORESUME 40579 +#define ID_CONFIG_SAVING_OPTIONS 40581 +#define ID_CDLFILENAME 40582 +#define ID_HIGHLIGHTING_FADEWHENPAUSED 40586 +#define ID_HIGHLIGHTING_SETFADINGPERIOD 40587 +#define ID_HIGHLIGHTING_HIGHLIGHT_ACTIVITY 40588 +#define MENU_MV_FILE_DUMP_64K 40590 +#define MENU_MV_FILE_DUMP_OAM 40592 +#define MENU_RAMINIT_DEFAULT 40593 +#define MENU_RAMINIT_FF 40594 +#define MENU_RAMINIT_00 40595 +#define MENU_RAMINIT_RANDOM 40596 +#define MENU_MV_FILE_LOAD_RAM 40597 +#define MENU_MV_FILE_LOAD_PPU 40598 +#define DISASM_CONTEXT_COPY 40598 +#define MENU_MV_FILE_LOAD_OAM 40599 +#define DISASM_CONTEXT_SELECTALL 40599 +#define CHEAT_CONTEXT_POSSI_ADDTOMEMORYWATCH 40600 +#define CHEAT_CONTEXT_POSSI_ADDCHEAT 40601 +#define CHEAT_CONTEXT_POSSI_ADDTORAMWATCH 40603 +#define MW_VALUELABEL2 65423 +#define MW_VALUELABEL1 65426 +#define IDC_STATIC_SLASHTEXT 65442 +#define IDC_BOOKMARK_NAME_TEXT 65532 +#define IDC_NTVIEW_SCANLINE_TEXT 65534 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 305 +#define _APS_NEXT_COMMAND_VALUE 40002 +#define _APS_NEXT_CONTROL_VALUE 1100 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/src/drivers/win/taseditor.cpp b/src/drivers/win/taseditor.cpp index d0daa0f8..5b8db1b5 100644 --- a/src/drivers/win/taseditor.cpp +++ b/src/drivers/win/taseditor.cpp @@ -299,11 +299,11 @@ BOOL CALLBACK newProjectProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM l break; case IDC_COPY_INPUT: p->copyCurrentInput ^= 1; - CheckDlgButton(hwndDlg, IDC_COPY_INPUT, p->copyCurrentInput?MF_CHECKED : MF_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_COPY_INPUT, p->copyCurrentInput? BST_CHECKED : BST_UNCHECKED); break; case IDC_COPY_MARKERS: p->copyCurrentMarkers ^= 1; - CheckDlgButton(hwndDlg, IDC_COPY_MARKERS, p->copyCurrentMarkers?MF_CHECKED : MF_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_COPY_MARKERS, p->copyCurrentMarkers? BST_CHECKED : BST_UNCHECKED); break; case IDOK: { @@ -792,7 +792,7 @@ BOOL CALLBACK ExportProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lPara break; } } - CheckDlgButton(hwndDlg, IDC_NOTES_TO_SUBTITLES, taseditorConfig.lastExportedSubtitlesStatus?MF_CHECKED : MF_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_NOTES_TO_SUBTITLES, taseditorConfig.lastExportedSubtitlesStatus ? BST_CHECKED : BST_UNCHECKED); return TRUE; case WM_COMMAND: switch (LOWORD(wParam)) @@ -808,7 +808,7 @@ BOOL CALLBACK ExportProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lPara break; case IDC_NOTES_TO_SUBTITLES: taseditorConfig.lastExportedSubtitlesStatus ^= 1; - CheckDlgButton(hwndDlg, IDC_NOTES_TO_SUBTITLES, taseditorConfig.lastExportedSubtitlesStatus?MF_CHECKED : MF_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_NOTES_TO_SUBTITLES, taseditorConfig.lastExportedSubtitlesStatus ? BST_CHECKED : BST_UNCHECKED); break; case IDOK: EndDialog(hwndDlg, 1); diff --git a/src/drivers/win/taseditor/markers_manager.cpp b/src/drivers/win/taseditor/markers_manager.cpp index 654a46c4..25d485e7 100644 --- a/src/drivers/win/taseditor/markers_manager.cpp +++ b/src/drivers/win/taseditor/markers_manager.cpp @@ -630,7 +630,7 @@ BOOL CALLBACK findNoteWndProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM if (taseditorConfig.findnoteWindowY == -32000) taseditorConfig.findnoteWindowY = 0; SetWindowPos(hwndDlg, 0, taseditorConfig.findnoteWindowX, taseditorConfig.findnoteWindowY, 0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOOWNERZORDER); - CheckDlgButton(hwndDlg, IDC_MATCH_CASE, taseditorConfig.findnoteMatchCase?MF_CHECKED : MF_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_MATCH_CASE, taseditorConfig.findnoteMatchCase ? BST_CHECKED : BST_UNCHECKED); if (taseditorConfig.findnoteSearchUp) Button_SetCheck(GetDlgItem(hwndDlg, IDC_RADIO_UP), BST_CHECKED); else @@ -680,7 +680,7 @@ BOOL CALLBACK findNoteWndProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM break; case IDC_MATCH_CASE: taseditorConfig.findnoteMatchCase ^= 1; - CheckDlgButton(hwndDlg, IDC_MATCH_CASE, taseditorConfig.findnoteMatchCase?MF_CHECKED : MF_UNCHECKED); + CheckDlgButton(hwndDlg, IDC_MATCH_CASE, taseditorConfig.findnoteMatchCase? BST_CHECKED : BST_UNCHECKED); break; case IDOK: { diff --git a/src/drivers/win/video.cpp b/src/drivers/win/video.cpp index e48bcd72..f20b470f 100644 --- a/src/drivers/win/video.cpp +++ b/src/drivers/win/video.cpp @@ -1288,6 +1288,11 @@ BOOL CALLBACK VideoConCallB(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPara EnableWindow(GetDlgItem(hwndDlg, IDC_TVASPECT_Y), eoptions&EO_TVASPECT); EnableWindow(GetDlgItem(hwndDlg, IDC_STATIC_SLASHTEXT), eoptions&EO_TVASPECT); + DefaultEditCtrlProc = (WNDPROC)SetWindowLong(GetDlgItem(hwndDlg, IDC_WINSIZE_MUL_X), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLong(GetDlgItem(hwndDlg, IDC_WINSIZE_MUL_Y), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLong(GetDlgItem(hwndDlg, IDC_TVASPECT_X), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + SetWindowLong(GetDlgItem(hwndDlg, IDC_TVASPECT_Y), GWL_WNDPROC, (LONG)FilterEditCtrlProc); + break; } case WM_CLOSE: diff --git a/src/drivers/win/window.cpp b/src/drivers/win/window.cpp index ddfa0d37..0e537eeb 100644 --- a/src/drivers/win/window.cpp +++ b/src/drivers/win/window.cpp @@ -50,6 +50,7 @@ #include "memview.h" #include "tracer.h" #include "cdlogger.h" +#include "header_editor.h" #include "throttle.h" #include "monitor.h" #include "keyboard.h" @@ -100,7 +101,7 @@ using namespace std; //Handles---------------------------------------------- static HMENU fceumenu = 0; //Main menu. -HWND pwindow; //Client Area +// HWND pwindow; //Client Area HMENU recentmenu; //Recent Menu HMENU recentluamenu; //Recent Lua Files Menu HMENU recentmoviemenu; //Recent Movie Files Menu @@ -181,6 +182,7 @@ const unsigned int MAX_NUMBER_OF_MOVIE_RECENT_FILES = sizeof(recent_movie)/sizeo int EnableBackgroundInput = 0; int ismaximized = 0; +WNDPROC DefaultEditCtrlProc; //Help Menu subtopics string moviehelp = "MovieRecording"; //Movie Recording @@ -241,7 +243,7 @@ int GetCheckedAutoFirePattern() if (AFon == 4 && AFoff == 2) return MENU_AUTOFIRE_PATTERN_14; if (AFon == 5 && AFoff == 1) return MENU_AUTOFIRE_PATTERN_15; -return MENU_AUTOFIRE_PATTERN_1; + return MENU_AUTOFIRE_PATTERN_1; } int GetCheckedAutoFireOffset() @@ -366,8 +368,9 @@ void CalcWindowSize(RECT *al) /// Updates the menu items that should only be enabled if a game is loaded. /// @param enable Flag that indicates whether the menus should be enabled (1) or disabled (0). -void updateGameDependentMenus(unsigned int enable) +void updateGameDependentMenus() { + // they are quite simple, enabled only when game is loaded const int menu_ids[]= { MENU_CLOSE_FILE, ID_FILE_SCREENSHOT, @@ -395,10 +398,14 @@ void updateGameDependentMenus(unsigned int enable) ID_TOOLS_TEXTHOOKER }; + bool enable = GameInfo != 0; for (unsigned int i = 0; i < sizeof(menu_ids) / sizeof(*menu_ids); i++) - { - EnableMenuItem(fceumenu, menu_ids[i], MF_BYCOMMAND | (enable ? MF_ENABLED : MF_GRAYED)); - } + EnableMenuItem(fceumenu, menu_ids[i], MF_BYCOMMAND | enable ? MF_ENABLED : MF_GRAYED | MF_DISABLED); + + // Special treatment for the iNES head editor, only when no game is loaded or an NES game is loaded + extern iNES_HEADER head; + enable = GameInfo == 0 || !strncmp((const char*)&head, "NES\x1A", 4); + EnableMenuItem(fceumenu, MENU_INESHEADEREDITOR, MF_BYCOMMAND | enable ? MF_ENABLED : MF_GRAYED | MF_DISABLED); } //Updates menu items which need to be checked or unchecked. @@ -1058,8 +1065,8 @@ void CloseGame() { FCEUI_CloseGame(); KillMemView(); - updateGameDependentMenus(GameInfo != 0); - updateGameDependentMenusDebugger(GameInfo != 0); + updateGameDependentMenus(); + updateGameDependentMenusDebugger(); SetMainWindowText(); } } @@ -1120,8 +1127,8 @@ bool ALoad(const char *nameo, char* innerFilename, bool silent) SetMainWindowText(); ParseGIInput(GameInfo); - updateGameDependentMenus(GameInfo != 0); - updateGameDependentMenusDebugger(GameInfo != 0); + updateGameDependentMenus(); + updateGameDependentMenusDebugger(); EmulationPaused = oldPaused; return true; } @@ -2312,7 +2319,9 @@ LRESULT FAR PASCAL AppWndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam) case MENU_GAMEGENIEDECODER: DoGGConv(); break; - + case MENU_INESHEADEREDITOR: + DoHeadEdit(); + break; //Help Menu-------------------------------------------------------------- case MENU_HELP: OpenHelpWindow(); @@ -2679,8 +2688,8 @@ int CreateMainWindow() UpdateLuaRMenu(recentluamenu, recent_lua, MENU_LUA_RECENT, LUA_FIRST_RECENT_FILE); UpdateMovieRMenu(recentmoviemenu, recent_movie, MENU_MOVIE_RECENT, MOVIE_FIRST_RECENT_FILE); - updateGameDependentMenus(0); - updateGameDependentMenusDebugger(0); + updateGameDependentMenus(); + updateGameDependentMenusDebugger(); if (MainWindow_wndx==-32000) MainWindow_wndx=0; //Just in case if (MainWindow_wndy==-32000) MainWindow_wndy=0; hAppWnd = CreateWindowEx( @@ -3212,3 +3221,255 @@ void UpdateSortColumnIcon(HWND hwndListView, int sortColumn, bool sortAsc) } } } + +// Push the window away from the main FCEUX window +POINT CalcSubWindowPos(HWND hDlg, POINT* conf) +{ + POINT pt; // dialog position + RECT wR, dR; // Window rect, dialog rect + + + // Try to calc the default position, it doesn't overlap the main window and ensure it's in the screen; + GetWindowRect(hAppWnd, &wR); + GetWindowRect(hDlg, &dR); + + pt.x = wR.left; + pt.y = wR.top; + + LONG wW = wR.right - wR.left; // window width + LONG dW = dR.right - dR.left; // dialog width + + if (pt.x + wW + dW < GetSystemMetrics(SM_CXSCREEN)) + pt.x += wW; // if there is enough place for the dialog on the right, put the dialog there + else if (pt.x - dW > 0) + pt.x -= dW; // otherwise, we check if we can put it on the left + + // If the dialog has a configured window position, override the default position + if (conf) + { + LONG wH = wR.bottom - wR.top; + // It is overrided only when the configured position is not completely off screen + if (conf->x > -wW * 2 || conf->x < wW * 2 + GetSystemMetrics(SM_CXSCREEN)) + pt.x = conf->x; + if (conf->y > -wH * 2 || conf->y < wH * 2 + GetSystemMetrics(SM_CYSCREEN)) + pt.y = conf->y; + } + + // finally set the window position + SetWindowPos(hDlg, NULL, pt.x, pt.y, NULL, NULL, SWP_NOSIZE | SWP_NOZORDER | SWP_SHOWWINDOW); + + // return the calculated point, maybe the caller can use it for further. + return pt; +} + +LRESULT APIENTRY FilterEditCtrlProc(HWND hwnd, UINT msg, WPARAM wP, LPARAM lP) +{ + bool through = true; + LRESULT result = 0; + + switch (msg) + { + case WM_PASTE: + { + + bool(*IsLetterLegal)(char) = GetIsLetterLegal(GetDlgCtrlID(hwnd)); + + if (IsLetterLegal) + { + if (OpenClipboard(hwnd)) + { + HANDLE handle = GetClipboardData(CF_TEXT); + if (handle) + { + + // get the original clipboard string + char* clipStr = (char*)GlobalLock(handle); + + // check if the text in clipboard has illegal characters + int len = strlen(clipStr); + for (int i = 0; i < len; ++i) + { + if (!IsLetterLegal(clipStr[i])) + { + through = false; + // Show Edit control tip, just like the control with ES_NUMBER do + ShowLetterIllegalError(hwnd, IsLetterLegal); + break; + } + } + GlobalUnlock(handle); + CloseClipboard(); + + } + } + } + } + break; + case WM_CHAR: + { + bool(*IsLetterLegal)(char) = GetIsLetterLegal(GetDlgCtrlID(hwnd)); + through = IsInputLegal(GetIsLetterLegal(GetDlgCtrlID(hwnd)), wP); + if (!through) + ShowLetterIllegalError(hwnd, IsLetterLegal); + } + } + + return through ? CallWindowProc(DefaultEditCtrlProc, hwnd, msg, wP, lP) : result; +} + +// return a letter legal checking function for the specified control with the given id +bool inline (*GetIsLetterLegal(UINT id))(char letter) +{ + switch (id) + { + // owomomo TODO: RAM Search is a bit complicated, + // I'll handle it in later development + + + // Game genie text in Cheat and Game Genie Encoder/Decoder + case IDC_CHEAT_GAME_GENIE_TEXT: + case IDC_GAME_GENIE_CODE: + return IsLetterLegalGG; + + // Addresses in Debugger + case IDC_DEBUGGER_VAL_PCSEEK: + case IDC_DEBUGGER_VAL_PC: + case IDC_DEBUGGER_VAL_A: + case IDC_DEBUGGER_VAL_X: + case IDC_DEBUGGER_VAL_Y: + case IDC_DEBUGGER_BOOKMARK: + + // Debugger -> Add breakpoint + case IDC_ADDBP_ADDR_START: case IDC_ADDBP_ADDR_END: + + // RAM Watch / RAM Search / Cheat -> Add watch + // TODO: Some other features + // case IDC_EDIT_COMPAREADDRESS: + + // Address, Value, Compare, Known Value, Note equal, Greater than and Less than in Cheat + case IDC_CHEAT_ADDR: case IDC_CHEAT_VAL: case IDC_CHEAT_COM: + case IDC_CHEAT_VAL_KNOWN: case IDC_CHEAT_VAL_NE_BY: + case IDC_CHEAT_VAL_GT_BY: case IDC_CHEAT_VAL_LT_BY: + + // Address, Value and Compare in Game Genie Encoder/Decoder + case IDC_GAME_GENIE_ADDR: case IDC_GAME_GENIE_VAL: case IDC_GAME_GENIE_COMP: + + // Address controls in Memory watch + case MW_ADDR00: case MW_ADDR01: case MW_ADDR02: case MW_ADDR03: + case MW_ADDR04: case MW_ADDR05: case MW_ADDR06: case MW_ADDR07: + case MW_ADDR08: case MW_ADDR09: case MW_ADDR10: case MW_ADDR11: + case MW_ADDR12: case MW_ADDR13: case MW_ADDR14: case MW_ADDR15: + case MW_ADDR16: case MW_ADDR17: case MW_ADDR18: case MW_ADDR19: + case MW_ADDR20: case MW_ADDR21: case MW_ADDR22: case MW_ADDR23: + return IsLetterLegalHex; + + // Size multiplier and TV Aspect in Video Config + case IDC_WINSIZE_MUL_X: case IDC_WINSIZE_MUL_Y: + case IDC_TVASPECT_X: case IDC_TVASPECT_Y: + return IsLetterLegalFloat; + + // Cheat code in Cheat + case IDC_CHEAT_TEXT: + return IsLetterLegalCheat; + + // PRG ROM, PRG RAM, PRG NVRAM, CHR ROM, CHR RAM, CHR NVRAM in iNES Header Editor + case IDC_PRGROM_EDIT: case IDC_PRGRAM_EDIT: case IDC_PRGNVRAM_EDIT: + case IDC_CHRROM_EDIT: case IDC_CHRRAM_EDIT: case IDC_CHRNVRAM_EDIT: + return IsLetterLegalSize; + } + return NULL; +} + +inline void ShowLetterIllegalError(HWND hwnd, bool(*IsLetterLegal)(char letter), bool balloon) +{ + (balloon ? ShowLetterIllegalBalloonTip : ShowLetterIllegalMessageBox)(hwnd, IsLetterLegal); +} + +void ShowLetterIllegalBalloonTip(HWND hwnd, bool(*IsLetterLegal)(char letter)) +{ + char* title = "Unacceptable Character"; + int uLen = MultiByteToWideChar(CP_ACP, NULL, title, -1, NULL, 0); + wchar_t* titleW = (wchar_t*)malloc(sizeof(wchar_t) * uLen); + MultiByteToWideChar(CP_ACP, 0, title, -1, (LPWSTR)titleW, uLen); + + char* msg = GetLetterIllegalErrMsg(IsLetterLegal); + uLen = MultiByteToWideChar(CP_ACP, NULL, msg, -1, NULL, 0); + wchar_t* msgW = (wchar_t*)malloc(sizeof(wchar_t) * uLen); + MultiByteToWideChar(CP_ACP, 0, msg, -1, (LPWSTR)msgW, uLen); + + EDITBALLOONTIP tip; + tip.cbStruct = sizeof(EDITBALLOONTIP); + tip.pszText = msgW; + tip.pszTitle = titleW; + tip.ttiIcon = TTI_ERROR; + SendMessage(hwnd, EM_SHOWBALLOONTIP, 0, (LPARAM)&tip); + + free(titleW); + free(msgW); +} + +inline void ShowLetterIllegalMessageBox(HWND hwnd, bool(*IsLetterLegal)(char letter)) +{ + MessageBox(hwnd, GetLetterIllegalErrMsg(IsLetterLegal), "Unacceptable Character", MB_OK | MB_ICONERROR); +} + +inline char* GetLetterIllegalErrMsg(bool(*IsLetterLegal)(char letter)) +{ + if (IsLetterLegal == IsLetterLegalGG) + return "You can only type Game Genie characters:\nA P Z L G I T Y E O X U K S V N"; + if (IsLetterLegal == IsLetterLegalHex) + return "You can only type characters for hexadecimal number (0-9,A-F)."; + if (IsLetterLegal == IsLetterLegalCheat) + return + "The cheat code comes into the following 2 formats:\n" + "AAAA:VV freezes the value in Address $AAAA to $VV.\n" + "AAAA?CC:VV changes the value in Address $AAAA to $VV only when it's $CC.\n" + "All the characters are hexadecimal number (0-9,A-F).\n"; + if (IsLetterLegal == IsLetterLegalFloat) + return "You can only type decimal number (decimal point is acceptable)."; + if (IsLetterLegal == IsLetterLegalSize) + return "You can only type decimal number followed with B, KB or MB."; + if (IsLetterLegal == IsLetterLegalDec) + return "You can only type decimal number (minus is acceptable)."; + + return "Your input contains invalid characters."; +} + +inline bool IsInputLegal(bool (*IsLetterLegal)(char letter), char letter) +{ + return !IsLetterLegal || letter == VK_BACK || GetKeyState(VK_CONTROL) & 0x8000 || IsLetterLegal(letter); +} + +inline bool IsLetterLegalGG(char letter) +{ + char ch = toupper(letter); + for (int i = 0; GameGenieLetters[i]; ++i) + if (GameGenieLetters[i] == ch) + return true; + return false; +} + +inline bool IsLetterLegalHex(char letter) +{ + return letter >= '0' && letter <= '9' || letter >= 'A' && letter <= 'F' || letter >= 'a' && letter <= 'f'; +} + +inline bool IsLetterLegalCheat(char letter) +{ + return letter >= '0' && letter <= ':' || letter >= 'A' && letter <= 'F' || letter >= 'a' && letter <= 'f' || letter == '?'; +} + +inline bool IsLetterLegalSize(char letter) +{ + return letter >= '0' && letter <= '9' || letter == 'm' || letter == 'M' || letter == 'k' || letter == 'K' || letter == 'b' || letter == 'B'; +} + +inline bool IsLetterLegalDec(char letter) +{ + return letter >= '0' && letter <= '9' || letter == '-'; +} + +inline bool IsLetterLegalFloat(char letter) +{ + return letter >= '0' && letter <= '9' || letter == '.'; +} \ No newline at end of file diff --git a/src/drivers/win/window.h b/src/drivers/win/window.h index 3aad189b..45cf98c5 100644 --- a/src/drivers/win/window.h +++ b/src/drivers/win/window.h @@ -19,7 +19,7 @@ struct CreateMovieParameters extern char *recent_files[]; extern char *recent_lua[]; extern char *recent_movie[]; -extern HWND pwindow; +// extern HWND pwindow; HWND GetMainHWND(); @@ -38,6 +38,7 @@ void SetMainWindowStuff(); void GetMouseData(uint32 (&md)[3]); void GetMouseRelative(int32 (&md)[3]); //void ChangeMenuItemText(int menuitem, string text); +POINT CalcSubWindowPos(HWND hDlg, POINT* conf); template inline std::string GetDlgItemText(HWND hDlg, int nIDDlgItem) { @@ -126,4 +127,21 @@ struct HOTKEYMENUINDEX { void UpdateMenuHotkeys(FCEUMENU_INDEX index); int GetCurrentContextIndex(); + +inline bool (*GetIsLetterLegal(UINT id))(char letter); +inline char* GetLetterIllegalErrMsg(bool(*IsLetterLegal)(char letter)); +inline void ShowLetterIllegalError(HWND hwnd, bool(*IsLetterLegal)(char letter), bool balloon = true); +void ShowLetterIllegalBalloonTip(HWND hwnd, bool(*IsLetterLegal)(char letter)); +inline void ShowLetterIllegalMessageBox(HWND hwnd, bool(*IsLetterLegal)(char letter)); +inline bool IsInputLegal(bool(*IsLetterLegal)(char letter), char letter); +inline bool IsLetterLegalGG(char letter); +inline bool IsLetterLegalHex(char letter); +inline bool IsLetterLegalCheat(char letter); +inline bool IsLetterLegalDec(char letter); +inline bool IsLetterLegalSize(char letter); +inline bool IsLetterLegalFloat(char letter); + +extern WNDPROC DefaultEditCtrlProc; +extern LRESULT APIENTRY FilterEditCtrlProc(HWND hDlg, UINT msg, WPARAM wP, LPARAM lP); + #endif diff --git a/src/fceu.cpp b/src/fceu.cpp index 48e4cf35..4153c04d 100644 --- a/src/fceu.cpp +++ b/src/fceu.cpp @@ -189,7 +189,12 @@ static void FCEU_CloseGame(void) } if (GameInfo->type != GIT_NSF) { - FCEU_FlushGameCheats(0, 0); + if (disableAutoLSCheats == 2) + FCEU_FlushGameCheats(0, 1); + else if (disableAutoLSCheats == 1) + AskSaveCheat(); + else if (disableAutoLSCheats == 0) + FCEU_FlushGameCheats(0, 0); } GameInterface(GI_CLOSE); @@ -432,9 +437,7 @@ FCEUGI *FCEUI_LoadGameVirtual(const char *name, int OverwriteVidMode, bool silen strcat(fullname, "|"); strcat(fullname, fp->filename.c_str()); } else - { strcpy(fullname, name); - } // reset loaded game BEFORE it's loading. ResetGameLoaded(); @@ -469,103 +472,94 @@ FCEUGI *FCEUI_LoadGameVirtual(const char *name, int OverwriteVidMode, bool silen //try to load each different format bool FCEUXLoad(const char *name, FCEUFILE * fp); - /*if(FCEUXLoad(name,fp)) - goto endlseq;*/ - if (iNESLoad(fullname, fp, OverwriteVidMode)) - goto endlseq; - if (NSFLoad(fullname, fp)) - goto endlseq; - if (UNIFLoad(fullname, fp)) - goto endlseq; - if (FDSLoad(fullname, fp)) - goto endlseq; - if (!silent) - FCEU_PrintError("An error occurred while loading the file."); - FCEU_fclose(fp); - - delete GameInfo; - GameInfo = 0; - - return 0; - - endlseq: - - FCEU_fclose(fp); + if (iNESLoad(fullname, fp, OverwriteVidMode) || + NSFLoad(fullname, fp) || + UNIFLoad(fullname, fp) || + FDSLoad(fullname, fp)) + { #ifdef WIN32 -// ################################## Start of SP CODE ########################### - extern char LoadedRomFName[2048]; - extern int loadDebugDataFailed; + // ################################## Start of SP CODE ########################### + extern char LoadedRomFName[2048]; + extern int loadDebugDataFailed; - if ((loadDebugDataFailed = loadPreferences(mass_replace(LoadedRomFName, "|", ".").c_str()))) - if (!silent) - FCEU_printf("Couldn't load debugging data.\n"); + if ((loadDebugDataFailed = loadPreferences(mass_replace(LoadedRomFName, "|", ".").c_str()))) + if (!silent) + FCEU_printf("Couldn't load debugging data.\n"); -// ################################## End of SP CODE ########################### + // ################################## End of SP CODE ########################### #endif - if (OverwriteVidMode) - FCEU_ResetVidSys(); + if (OverwriteVidMode) + FCEU_ResetVidSys(); - if (GameInfo->type != GIT_NSF) - { - if (FSettings.GameGenie) + if (GameInfo->type != GIT_NSF && + FSettings.GameGenie && + FCEU_OpenGenie()) { - if (FCEU_OpenGenie()) - { - FCEUI_SetGameGenie(false); + FCEUI_SetGameGenie(false); #ifdef WIN32 - genie = 0; + genie = 0; #endif - } } - } - PowerNES(); - if (GameInfo->type != GIT_NSF) - FCEU_LoadGamePalette(); + PowerNES(); - FCEU_ResetPalette(); - FCEU_ResetMessages(); // Save state, status messages, etc. + if (GameInfo->type != GIT_NSF) + FCEU_LoadGamePalette(); - if (!lastpal && PAL) { - FCEU_DispMessage("PAL mode set", 0); - FCEUI_printf("PAL mode set"); - } else if (!lastdendy && dendy) { - // this won't happen, since we don't autodetect dendy, but maybe someday we will? - FCEU_DispMessage("Dendy mode set", 0); - FCEUI_printf("Dendy mode set"); - } else if ((lastpal || lastdendy) && !(PAL || dendy)) { - FCEU_DispMessage("NTSC mode set", 0); - FCEUI_printf("NTSC mode set"); - } + FCEU_ResetPalette(); + FCEU_ResetMessages(); // Save state, status messages, etc. - if (GameInfo->type != GIT_NSF) - FCEU_LoadGameCheats(0); + if (!lastpal && PAL) { + FCEU_DispMessage("PAL mode set", 0); + FCEUI_printf("PAL mode set"); + } + else if (!lastdendy && dendy) { + // this won't happen, since we don't autodetect dendy, but maybe someday we will? + FCEU_DispMessage("Dendy mode set", 0); + FCEUI_printf("Dendy mode set"); + } + else if ((lastpal || lastdendy) && !(PAL || dendy)) { + FCEU_DispMessage("NTSC mode set", 0); + FCEUI_printf("NTSC mode set"); + } - if (AutoResumePlay) - { - // load "-resume" savestate - if (FCEUSS_Load(FCEU_MakeFName(FCEUMKF_RESUMESTATE, 0, 0).c_str(), false)) - FCEU_DispMessage("Old play session resumed.", 0); - } + if (GameInfo->type != GIT_NSF && !disableAutoLSCheats) + FCEU_LoadGameCheats(0); - ResetScreenshotsCounter(); + if (AutoResumePlay) + { + // load "-resume" savestate + if (FCEUSS_Load(FCEU_MakeFName(FCEUMKF_RESUMESTATE, 0, 0).c_str(), false)) + FCEU_DispMessage("Old play session resumed.", 0); + } + + ResetScreenshotsCounter(); #if defined (WIN32) || defined (WIN64) - DoDebuggerDataReload(); // Reloads data without reopening window - CDLoggerROMChanged(); - if (hMemView) UpdateColorTable(); - if (hCheat) - { - UpdateCheatsAdded(); - UpdateCheatRelatedWindow(); - } - if (FrozenAddressCount) - FCEU_DispMessage("%d cheats active", 0, FrozenAddressCount); + DoDebuggerDataReload(); // Reloads data without reopening window + CDLoggerROMChanged(); + if (hMemView) UpdateColorTable(); + if (hCheat) + { + UpdateCheatsAdded(); + UpdateCheatRelatedWindow(); + } + if (FrozenAddressCount) + FCEU_DispMessage("%d cheats active", 0, FrozenAddressCount); #endif + } + else { + if (!silent) + FCEU_PrintError("An error occurred while loading the file."); + delete GameInfo; + GameInfo = 0; + } + + FCEU_fclose(fp); return GameInfo; } @@ -1377,7 +1371,7 @@ uint8 FCEU_ReadRomByte(uint32 i) { void FCEU_WriteRomByte(uint32 i, uint8 value) { if (i < 16) #ifdef WIN32 - MessageBox(hMemView,"Sorry", "You can't edit the ROM header.", MB_OK); + MessageBox(hMemView, "Sorry", "You can't edit the ROM header.", MB_OK); #else printf("Sorry, you can't edit the ROM header.\n"); #endif diff --git a/src/file.cpp b/src/file.cpp index a75ca968..9860d87e 100644 --- a/src/file.cpp +++ b/src/file.cpp @@ -261,9 +261,9 @@ FCEUFILE * FCEU_fopen(const char *path, const char *ipsfn, char *mode, char *ext FILE *ipsfile=0; FCEUFILE *fceufp=0; - bool read = (std::string)mode == "rb"; - bool write = (std::string)mode == "wb"; - if((read&&write) || (!read&&!write)) + bool read = !strcmp(mode, "rb"); + bool write = !strcmp(mode, "wb"); + if(read && write || !read && !write) { FCEU_PrintError("invalid file open mode specified (only wb and rb are supported)"); return 0; diff --git a/src/ines.cpp b/src/ines.cpp index 41727e74..1443b23f 100644 --- a/src/ines.cpp +++ b/src/ines.cpp @@ -63,7 +63,7 @@ static int iNES_Init(int num); static int MapperNo = 0; -static int iNES2 = 0; +int iNES2 = 0; static DECLFR(TrainerRead) { return(trainerpoo[A & 0x1FF]); @@ -443,13 +443,8 @@ static int not_power2[] = { 53, 198, 228 }; -typedef struct { - char *name; - int32 number; - void (*init)(CartInfo *); -} BMAPPINGLocal; -static BMAPPINGLocal bmap[] = { +BMAPPINGLocal bmap[] = { {"NROM", 0, NROM_Init}, {"MMC1", 1, Mapper1_Init}, {"UNROM", 2, UNROM_Init}, @@ -729,12 +724,9 @@ static BMAPPINGLocal bmap[] = { int iNESLoad(const char *name, FCEUFILE *fp, int OverwriteVidMode) { struct md5_context md5; - if (FCEU_fread(&head, 1, 16, fp) != 16) + if (FCEU_fread(&head, 1, 16, fp) != 16 || memcmp(&head, "NES\x1A", 4)) return 0; - - if (memcmp(&head, "NES\x1a", 4)) - return 0; - + head.cleanup(); memset(&iNESCart, 0, sizeof(iNESCart)); diff --git a/src/ines.h b/src/ines.h index 55ab87ad..a32db278 100644 --- a/src/ines.h +++ b/src/ines.h @@ -51,40 +51,34 @@ extern TMasterRomInfoParams MasterRomInfoParams; //mbg merge 7/19/06 changed to c++ decl format struct iNES_HEADER { - char ID[4]; /*NES^Z*/ - uint8 ROM_size; - uint8 VROM_size; - uint8 ROM_type; - uint8 ROM_type2; - uint8 ROM_type3; - uint8 Upper_ROM_VROM_size; - uint8 RAM_size; - uint8 VRAM_size; - uint8 TV_system; - uint8 VS_hardware; - uint8 reserved[2]; + char ID[4]; /*NES^Z*/ // 0-3 + uint8 ROM_size; // 4 + uint8 VROM_size; // 5 + uint8 ROM_type; // 6 + uint8 ROM_type2; // 7 + uint8 ROM_type3; // 8 + uint8 Upper_ROM_VROM_size; // 9 + uint8 RAM_size; // 10 + uint8 VRAM_size; // 11 + uint8 TV_system; // 12 + uint8 VS_hardware; // 13 + uint8 reserved[2]; // 14, 15 void cleanup() { - if(!memcmp((char *)(this)+0x7,"DiskDude",8)) - { - memset((char *)(this)+0x7,0,0x9); - } + if(!memcmp((char*)(this) + 0x7, "DiskDude", 8) || !memcmp((char*)(this) + 0x7, "demiforce", 9)) + memset((char*)(this) + 0x7, 0, 0x9); - if(!memcmp((char *)(this)+0x7,"demiforce",9)) + if(!memcmp((char*)(this) + 0xA, "Ni03", 4)) { - memset((char *)(this)+0x7,0,0x9); - } - - if(!memcmp((char *)(this)+0xA,"Ni03",4)) - { - if(!memcmp((char *)(this)+0x7,"Dis",3)) - memset((char *)(this)+0x7,0,0x9); + if(!memcmp((char*)(this) + 0x7, "Dis", 3)) + memset((char*)(this) + 0x7, 0, 0x9); else - memset((char *)(this)+0xA,0,0x6); + memset((char*)(this) + 0xA, 0, 0x6); } } }; + extern struct iNES_HEADER head; //for mappers usage void NSFVRC6_Init(void); @@ -274,4 +268,9 @@ void Mapper252_Init(CartInfo *); void Mapper253_Init(CartInfo *); void Mapper254_Init(CartInfo *); +typedef struct { + char *name; + int32 number; + void (*init)(CartInfo *); +} BMAPPINGLocal; #endif diff --git a/src/input.cpp b/src/input.cpp index 5b06d827..5f840fff 100644 --- a/src/input.cpp +++ b/src/input.cpp @@ -1117,8 +1117,8 @@ static void LaunchCodeDataLogger(void) static void LaunchCheats(void) { #ifdef WIN32 - extern HWND pwindow; - ConfigCheats(pwindow); + extern HWND hCheat; + ConfigCheats(hCheat); #endif } diff --git a/src/movie.cpp b/src/movie.cpp index 8430729c..4ba7e29c 100644 --- a/src/movie.cpp +++ b/src/movie.cpp @@ -1500,8 +1500,7 @@ bool FCEUMOV_ReadState(EMUFILE* is, uint32 size) //mbg 8/18/08 - this code can be used to turn the error message into an OK/CANCEL #ifdef WIN32 std::string msg = "There is a mismatch between savestate's movie and current movie.\ncurrent: " + currMovieData.guid.toString() + "\nsavestate: " + tempMovieData.guid.toString() + "\n\nThis means that you have loaded a savestate belonging to a different movie than the one you are playing now.\n\nContinue loading this savestate anyway?"; - extern HWND pwindow; - int result = MessageBox(pwindow,msg.c_str(),"Error loading savestate",MB_OKCANCEL); + int result = MessageBox(hAppWnd, msg.c_str(), "Error loading savestate", MB_OKCANCEL); if(result == IDCANCEL) { if (!backupSavestates) //If backups are disabled we can just resume normally since we can't restore so stop movie and inform user diff --git a/vc/vc14_fceux.vcxproj b/vc/vc14_fceux.vcxproj index 7547ed0e..2260e32e 100644 --- a/vc/vc14_fceux.vcxproj +++ b/vc/vc14_fceux.vcxproj @@ -557,6 +557,7 @@ + @@ -1012,6 +1013,7 @@ + diff --git a/vc/vc14_fceux.vcxproj.filters b/vc/vc14_fceux.vcxproj.filters index 89f2c465..221a661b 100644 --- a/vc/vc14_fceux.vcxproj.filters +++ b/vc/vc14_fceux.vcxproj.filters @@ -1093,6 +1093,9 @@ boards + + drivers\win + @@ -1599,6 +1602,9 @@ input + + drivers\win +