From 36e1b07c199b4c86599280c7247c5a77e40c095b Mon Sep 17 00:00:00 2001 From: feos-tas Date: Sun, 26 Apr 2015 10:12:15 +0000 Subject: [PATCH] Added Dendy mode for Windows. http://wiki.nesdev.com/w/index.php/Clock_rate --- trunk/src/driver.h | 4 + trunk/src/drivers/win/args.cpp | 1 + trunk/src/drivers/win/config.cpp | 1 + trunk/src/drivers/win/main.cpp | 6 +- trunk/src/drivers/win/main.h | 3 + trunk/src/drivers/win/res.rc | 1215 +++++++++++++-------------- trunk/src/drivers/win/resource.h | 7 +- trunk/src/drivers/win/taseditor.cpp | 2 + trunk/src/drivers/win/window.cpp | 24 +- trunk/src/fceu.cpp | 35 +- trunk/src/fceu.h | 6 + trunk/src/ppu.cpp | 22 +- trunk/src/x6502.h | 2 +- 13 files changed, 694 insertions(+), 634 deletions(-) diff --git a/trunk/src/driver.h b/trunk/src/driver.h index d7474aa5..db120671 100644 --- a/trunk/src/driver.h +++ b/trunk/src/driver.h @@ -120,6 +120,10 @@ void FCEUI_SetGameGenie(bool a); //Set video system a=0 NTSC, a=1 PAL void FCEUI_SetVidSystem(int a); +//Set variables for NTSC(0) / PAL(1) / Dendy(2) +//Dendy has PAL framerate and resolution, but ~NTSC timings, and has 50 dummy scanlines to force 50 fps +void FCEUI_SetRegion(int region); + //Convenience function; returns currently emulated video system(0=NTSC, 1=PAL). int FCEUI_GetCurrentVidSystem(int *slstart, int *slend); diff --git a/trunk/src/drivers/win/args.cpp b/trunk/src/drivers/win/args.cpp index 81d088a5..838ef508 100644 --- a/trunk/src/drivers/win/args.cpp +++ b/trunk/src/drivers/win/args.cpp @@ -41,6 +41,7 @@ char *ParseArgies(int argc, char *argv[]) { static ARGPSTRUCT FCEUArgs[]={ {"-pal",&pal_setting_specified,&pal_emulation,0}, + {"-dendy",0,&dendy,0}, {"-noicon",0,&status_icon,0}, {"-gg",0,&genie,0}, {"-no8lim",0,&eoptions,0x8000|EO_NOSPRLIM}, diff --git a/trunk/src/drivers/win/config.cpp b/trunk/src/drivers/win/config.cpp index 5ffb9249..0549e0f7 100644 --- a/trunk/src/drivers/win/config.cpp +++ b/trunk/src/drivers/win/config.cpp @@ -183,6 +183,7 @@ static CFGSTRUCT fceuconfig[] = AC(gNoBGFillColor), AC(ntsccol),AC(ntsctint),AC(ntschue), AC(force_grayscale), + AC(dendy), NAC("palyo",pal_emulation), NAC("genie",genie), diff --git a/trunk/src/drivers/win/main.cpp b/trunk/src/drivers/win/main.cpp index 1814d42a..c7662a89 100644 --- a/trunk/src/drivers/win/main.cpp +++ b/trunk/src/drivers/win/main.cpp @@ -146,6 +146,7 @@ double tvAspectX = TV_ASPECT_DEFAULT_X, tvAspectY = TV_ASPECT_DEFAULT_Y; int genie = 0; int pal_emulation = 0; int pal_setting_specified = 0; +int dendy = 0; int ntsccol = 0, ntsctint, ntschue; std::string BaseDirectory; int PauseAfterLoad; @@ -656,6 +657,7 @@ int main(int argc,char *argv[]) pauseAfterPlayback = !!pauseAfterPlayback; closeFinishedMovie = !!closeFinishedMovie; EnableBackgroundInput = !!EnableBackgroundInput; + dendy = !!dendy; KeyboardSetBackgroundAccess(EnableBackgroundInput!=0); JoystickSetBackgroundAccess(EnableBackgroundInput!=0); @@ -754,9 +756,9 @@ int main(int argc,char *argv[]) LoadNewGamey(hAppWnd, 0); } - if (pal_setting_specified) + if (pal_setting_specified && !dendy) { - // Force the PAL setting specified in the command line + // Force the PAL setting specified in the command line, unless Dendy pal_emulation = saved_pal_setting; FCEUI_SetVidSystem(pal_emulation); } diff --git a/trunk/src/drivers/win/main.h b/trunk/src/drivers/win/main.h index 7b71077e..7fe77806 100644 --- a/trunk/src/drivers/win/main.h +++ b/trunk/src/drivers/win/main.h @@ -42,6 +42,9 @@ extern int genie; // Flag that indicates whether PAL Emulation is enabled or not. extern int pal_emulation; extern int pal_setting_specified; +// dendy and pal should have been designed alongside, using enum or alike +// now it's not possible to do it easily, so we'll just use the flag here and there, not to touch PAL logics +extern int dendy; extern int status_icon; extern int frame_display; extern int rerecord_display; diff --git a/trunk/src/drivers/win/res.rc b/trunk/src/drivers/win/res.rc index 56f3d34f..387a61d6 100644 --- a/trunk/src/drivers/win/res.rc +++ b/trunk/src/drivers/win/res.rc @@ -11,603 +11,12 @@ ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// Russian resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS) -#ifdef _WIN32 -LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT -#pragma code_page(1251) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_TASEDITOR_SAVINGOPTIONS DIALOGEX 0, 0, 223, 208 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Project file saving options" -FONT 8, "MS Shell Dlg", 400, 0, 0x1 -BEGIN - DEFPUSHBUTTON "OK",IDOK,109,187,50,14 - PUSHBUTTON "Cancel",IDCANCEL,165,187,50,14 - CONTROL " Binary format of Input",IDC_CHECK_BINARY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,17,89,10 - CONTROL " Markers",IDC_CHECK_MARKERS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,32,67,10 - CONTROL " Bookmarks",IDC_CHECK_BOOKMARKS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,47,67,10 - CONTROL " History",IDC_CHECK_HISTORY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,62,67,10 - CONTROL " Piano Roll",IDC_CHECK_PIANO_ROLL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,77,67,10 - CONTROL " Selection",IDC_CHECK_SELECTION,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,92,67,10 - GROUPBOX "File contents",IDC_STATIC,105,4,111,177 - GROUPBOX "Greenzone saving options",IDC_STATIC,112,106,97,69 - CONTROL " all frames",IDC_RADIO1,"Button",BS_AUTORADIOBUTTON,122,117,77,10 - CONTROL " every 16th frame",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON,122,131,77,10 - CONTROL " marked frames",IDC_RADIO3,"Button",BS_AUTORADIOBUTTON,122,145,77,10 - CONTROL " don't save",IDC_RADIO4,"Button",BS_AUTORADIOBUTTON,122,159,77,10 - CONTROL " Autosave project",IDC_AUTOSAVE_PROJECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,17,81,10 - CONTROL " silently",IDC_SILENT_AUTOSAVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,47,42,10 - LTEXT "every",IDC_STATIC,14,32,21,8 - EDITTEXT IDC_AUTOSAVE_PERIOD,36,30,24,14,ES_AUTOHSCROLL | ES_NUMBER - LTEXT "minutes",IDC_STATIC,64,32,28,8 - GROUPBOX "Settings",IDC_STATIC,6,4,91,177 -END - -IDD_SYMBOLIC_DEBUG_NAMING DIALOGEX 0, 0, 245, 83 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Symbolic Debug Naming" -FONT 8, "MS Shell Dlg", 400, 0, 0x1 -BEGIN - DEFPUSHBUTTON "OK",IDOK,132,62,50,14 - PUSHBUTTON "Cancel",IDCANCEL,189,62,50,14 - LTEXT "File",IDC_STATIC,7,7,15,9 - EDITTEXT IDC_SYMBOLIC_ADDRESS,38,24,33,13,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP - LTEXT "Address",IDC_STATIC,6,26,30,10 - EDITTEXT IDC_SYMBOLIC_NAME,107,24,132,13,ES_AUTOHSCROLL - LTEXT "Name",IDC_STATIC,83,26,22,10 - LTEXT "Comment",IDC_STATIC,6,45,37,10 - EDITTEXT IDC_SYMBOLIC_COMMENT,45,43,194,13,ES_AUTOHSCROLL - EDITTEXT IDC_SYMBOLIC_FILENAME,24,6,215,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP -END - - -///////////////////////////////////////////////////////////////////////////// -// -// DESIGNINFO -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO -BEGIN - IDD_SYMBOLIC_DEBUG_NAMING, DIALOG - BEGIN - BOTTOMMARGIN, 82 - END -END -#endif // APSTUDIO_INVOKED - -#endif // Russian resources -///////////////////////////////////////////////////////////////////////////// - - ///////////////////////////////////////////////////////////////////////////// // Neutral resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU) -#ifdef _WIN32 LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// 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 SEPARATOR - 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 "Speed &Up", ID_NES_SPEEDUP - MENUITEM "Slow &Down", ID_NES_SLOWDOWN - MENUITEM SEPARATOR - MENUITEM "&Pause", ID_NES_PAUSE - MENUITEM "&Slowest Speed", ID_NES_SLOWESTSPEED - MENUITEM "&Normal Speed", ID_NES_NORMALSPEED - MENUITEM "&Turbo", ID_NES_TURBO - 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 - MENUITEM "&PAL Emulation", MENU_PAL - POPUP "PPU" - BEGIN - MENUITEM "Old PPU", ID_OLDPPU - MENUITEM "New PPU (slow!)", ID_NEWPPU - END - MENUITEM SEPARATOR - MENUITEM "&Directories...", MENU_DIRECTORIES - MENUITEM "&GUI...", MENU_GUI_OPTIONS - MENUITEM "&Input...", MENU_INPUT - MENUITEM "&Network Play...", MENU_NETWORK - MENUITEM "&Palette...", MENU_PALETTE - MENUITEM "&Sound...", MENU_SOUND - MENUITEM "&Timing...", MENU_TIMING - MENUITEM "&Video...", MENU_VIDEO - MENUITEM "&Movie options...", MENU_MOVIEOPTIONS - MENUITEM "&Map Hotkeys...", MENU_HOTKEYS - MENUITEM SEPARATOR - MENUITEM "Save Config File", ID_CONFIG_SAVECONFIGFILE - END - POPUP "&Tools" - BEGIN - MENUITEM "&Cheats...", MENU_CHEATS - MENUITEM "RAM Search...", ID_RAM_SEARCH - MENUITEM "RAM Watch...", ID_RAM_WATCH - MENUITEM "&Memory Watch...", MENU_MEMORY_WATCH - MENUITEM "&TAS Editor...", MENU_TASEDITOR - MENUITEM "Convert &FCM...", MENU_CONVERT_MOVIE - MENUITEM SEPARATOR - POPUP "Autofire &Pattern" - BEGIN - MENUITEM "1 on, 1 off", MENU_AUTOFIRE_PATTERN_1 - MENUITEM "1 on, 2 off", MENU_AUTOFIRE_PATTERN_2 - MENUITEM "1 on, 3 off", MENU_AUTOFIRE_PATTERN_3 - MENUITEM "1 on, 4 off", ID_DEBUG_DEBUGGER - MENUITEM "1 on, 5 off", ID_DEBUG_PPUVIEWER - MENUITEM "2 on, 1 off", ID_DEBUG_NAMETABLEVIEWER - MENUITEM "2 on, 2 off", ID_DEBUG_HEXEDITOR - MENUITEM "2 on, 3 off", ID_DEBUG_TRACELOGGER - MENUITEM "2 on, 4 off", MENU_AUTOFIRE_PATTERN_9 - MENUITEM "3 on, 1 off", ID_DEBUG_GAMEGENIEDECODER - MENUITEM "3 on, 2 off", ID_DEBUG_CDLOGGER - MENUITEM "3 on, 3 off", MENU_AUTOFIRE_PATTERN_12 - MENUITEM "4 on, 1 off", MENU_AUTOFIRE_PATTERN_13 - MENUITEM "4 on, 2 off", MENU_AUTOFIRE_PATTERN_14 - MENUITEM "5 on, 1 off", MENU_AUTOFIRE_PATTERN_15 - END - POPUP "Autofire &Offset" - BEGIN - MENUITEM "0 frames", MENU_AUTOFIRE_OFFSET_1 - MENUITEM "1 frame", MENU_AUTOFIRE_OFFSET_2 - MENUITEM "2 frames", MENU_AUTOFIRE_OFFSET_3 - MENUITEM "3 frames", MENU_AUTOFIRE_OFFSET_4 - MENUITEM "4 frames", MENU_AUTOFIRE_OFFSET_5 - MENUITEM "5 frames", MENU_AUTOFIRE_OFFSET_6 - END - MENUITEM "&Alternate A and B", MENU_ALTERNATE_AB - MENUITEM SEPARATOR - MENUITEM "Te&xt Hooker...", ID_TOOLS_TEXTHOOKER - END - POPUP "&Debug" - BEGIN - MENUITEM "&Debugger...", MENU_DEBUGGER - MENUITEM "&PPU Viewer...", MENU_PPUVIEWER - MENUITEM "&Name Table Viewer...", MENU_NAMETABLEVIEWER - MENUITEM "&Hex Editor...", MENU_HEXEDITOR - MENUITEM "&Trace Logger...", MENU_TRACELOGGER - MENUITEM "&Code/Data Logger...", MENU_CDLOGGER - MENUITEM "&Game Genie Decoder/Encoder...", MENU_GAMEGENIEDECODER - END - POPUP "&Help" - BEGIN - MENUITEM "&Help...", MENU_HELP - MENUITEM "&Message Log", MENU_MSGLOG - MENUITEM SEPARATOR - MENUITEM "&About", MENU_ABOUT - END -END - -TASEDITORMENU MENUEX -BEGIN - POPUP "File", 65535,MFT_STRING,MFS_ENABLED - BEGIN - MENUITEM "New", ID_FILE_NEW,MFT_STRING,MFS_ENABLED - MENUITEM "Open", ID_FILE_OPENPROJECT,MFT_STRING,MFS_ENABLED - MENUITEM "Save\tCtrl+S", ID_FILE_SAVEPROJECT,MFT_STRING,MFS_ENABLED - MENUITEM "Save As", ID_FILE_SAVEPROJECTAS,MFT_STRING,MFS_ENABLED - MENUITEM "Save Compact", ID_FILE_SAVECOMPACT,MFT_STRING,MFS_ENABLED - MENUITEM "Recent", ID_FILE_RECENT,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "Import Input", ID_FILE_IMPORT,MFT_STRING,MFS_ENABLED - MENUITEM "Export to FM2", ID_FILE_EXPORTFM2,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "Close\tAlt+F4", ID_FILE_CLOSE,MFT_STRING,MFS_ENABLED - END - POPUP "Edit", 65535,MFT_STRING,MFS_ENABLED - BEGIN - MENUITEM "Undo\tCtrl+Z", ID_EDIT_UNDO,MFT_STRING,MFS_ENABLED - MENUITEM "Redo\tCtrl+Y", ID_EDIT_REDO,MFT_STRING,MFS_ENABLED - MENUITEM "Selection Undo\tCtrl+Q", ID_EDIT_SELECTIONUNDO,MFT_STRING,MFS_ENABLED - MENUITEM "Selection Redo\tCtrl+W", ID_EDIT_SELECTIONREDO,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "Deselect", ID_EDIT_DESELECT,MFT_STRING,MFS_ENABLED - MENUITEM "Select All", ID_EDIT_SELECTALL,MFT_STRING,MFS_ENABLED - MENUITEM "Select between Markers\tCtrl+A", ID_EDIT_SELECTMIDMARKERS,MFT_STRING,MFS_ENABLED - MENUITEM "Reselect Clipboard\tCtrl+B", ID_EDIT_RESELECTCLIPBOARD,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "Copy\tCtrl+C", ID_EDIT_COPY,MFT_STRING,MFS_ENABLED - MENUITEM "Paste\tCtrl+V", ID_EDIT_PASTE,MFT_STRING,MFS_ENABLED - MENUITEM "PasteInsert\tCtrl+Shift+V", ID_EDIT_PASTEINSERT,MFT_STRING,MFS_ENABLED - MENUITEM "Cut\tCtrl+X", ID_EDIT_CUT,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "Clear\tDel", ID_EDIT_CLEAR,MFT_STRING,MFS_ENABLED - MENUITEM "Delete\tCtrl+Del", ID_EDIT_DELETE,MFT_STRING,MFS_ENABLED - MENUITEM "Clone\tCtrl+Ins", ID_EDIT_CLONEFRAMES,MFT_STRING,MFS_ENABLED - MENUITEM "Insert\tCtrl+Shift+Ins", ID_EDIT_INSERTFRAMES,MFT_STRING,MFS_ENABLED - MENUITEM "Insert # of Frames\tIns", ID_EDIT_INSERT,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "Truncate movie", ID_EDIT_TRUNCATE,MFT_STRING,MFS_ENABLED - END - POPUP "View", 65535,MFT_STRING,MFS_ENABLED - BEGIN - MENUITEM "Find Note window\tCtrl+F", ID_VIEW_FINDNOTE,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "Display Branch Screenshots", ID_VIEW_SHOWBRANCHSCREENSHOTS,MFT_STRING,MFS_ENABLED - MENUITEM "Display Branch Descriptions", ID_VIEW_SHOWBRANCHTOOLTIPS,MFT_STRING,MFS_ENABLED - MENUITEM "Enable Hot Changes", ID_VIEW_ENABLEHOTCHANGES,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "Follow Undo context", ID_VIEW_JUMPWHENMAKINGUNDO,MFT_STRING,MFS_ENABLED - MENUITEM "Follow Marker Note context", ID_VIEW_FOLLOWMARKERNOTECONTEXT,MFT_STRING,MFS_ENABLED - END - POPUP "Config", 65535,MFT_STRING,MFS_ENABLED - BEGIN - MENUITEM "Project file saving options", ID_CONFIG_SAVING_OPTIONS,MFT_STRING,MFS_ENABLED - MENUITEM "Set max Undo levels", ID_CONFIG_SETMAXUNDOLEVELS,MFT_STRING,MFS_ENABLED - MENUITEM "Set Greenzone capacity", ID_CONFIG_SETGREENZONECAPACITY,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "Enable Greenzoning", ID_CONFIG_ENABLEGREENZONING,MFT_STRING,MFS_ENABLED - MENUITEM "Autofire Pattern skips Lag", ID_CONFIG_PATTERNSKIPSLAG,MFT_STRING,MFS_ENABLED - MENUITEM "Auto-adjust Input according to Lag", ID_CONFIG_ADJUSTLAG,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "Draw Input by dragging", ID_CONFIG_DRAWINPUTBYDRAGGING,MFT_STRING,MFS_ENABLED - MENUITEM "Combine consecutive Recordings/Draws", ID_CONFIG_COMBINECONSECUTIVERECORDINGS,MFT_STRING,MFS_ENABLED - MENUITEM "Use 1P keys for all single Recordings", ID_CONFIG_USE1PFORRECORDING,MFT_STRING,MFS_ENABLED - MENUITEM "Use Input keys for Column Set", ID_CONFIG_USEINPUTKEYSFORCOLUMNSET,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "Bind Markers to Input", ID_CONFIG_BINDMARKERSTOINPUT,MFT_STRING,MFS_ENABLED - MENUITEM "Empty new Marker Notes", ID_CONFIG_EMPTYNEWMARKERNOTES,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "Old control scheme for Branching", ID_CONFIG_OLDBRANCHINGCONTROLS,MFT_STRING,MFS_ENABLED - MENUITEM "Branches restore entire Movie", ID_CONFIG_BRANCHESRESTOREFULLMOVIE,MFT_STRING,MFS_ENABLED - MENUITEM "HUD in Branch screenshots", ID_CONFIG_HUDINBRANCHSCREENSHOTS,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "Autopause at the end of Movie", ID_CONFIG_AUTOPAUSEATTHEENDOFMOVIE,MFT_STRING,MFS_ENABLED - END - POPUP "Help", 65535,MFT_STRING,MFS_ENABLED - BEGIN - MENUITEM "Open TAS Editor Manual", ID_HELP_OPEN_MANUAL,MFT_STRING,MFS_ENABLED - MENUITEM "Enable Tooltips", ID_HELP_TOOLTIPS,MFT_STRING,MFS_ENABLED - MENUITEM MFT_SEPARATOR - MENUITEM "About", ID_HELP_ABOUT,MFT_STRING,MFS_ENABLED - END - POPUP "Pattern", 65535,MFT_STRING | MFT_RIGHTJUSTIFY,MFS_ENABLED - BEGIN - MENUITEM "Dummy", ID_PATTERN_TEST,MFT_STRING,MFS_ENABLED - END -END - -MEMVIEWMENU MENU -BEGIN - POPUP "&File" - BEGIN - MENUITEM "&Save Rom", MENU_MV_FILE_SAVE - MENUITEM "S&ave Rom As...", MENU_MV_FILE_SAVE_AS - MENUITEM "&Load *.TBL File", MENU_MV_FILE_LOAD_TBL - MENUITEM "&Unload *.TBL file", MENU_MV_FILE_UNLOAD_TBL - POPUP "&Dump to file" - BEGIN - MENUITEM "&Ram", MENU_MV_FILE_DUMP_RAM - MENUITEM "&PPU Memory", MENU_MV_FILE_DUMP_PPU - MENUITEM "6502 64K", MENU_MV_FILE_DUMP_64K - 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 "&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 "Game+Movie+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 "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+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 "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+Movie+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 "Undo savestate", FCEUX_CONTEXT_UNDOSAVESTATE - MENUITEM "Undo loadstate", FCEUX_CONTEXT_UNDOLOADSTATE - MENUITEM "Rewind to last auto-save", FCEUX_CONTEXT_REWINDTOLASTAUTO - MENUITEM SEPARATOR - MENUITEM "&Mode: Full state-movie loads", ID_CONTEXT_FULLSAVESTATES - MENUITEM SEPARATOR - MENUITEM "Help...", FCEU_CONTEXT_MOVIEHELP - MENUITEM SEPARATOR - MENUITEM "Use Config > Gui to get zapper right click", FCEUX_CONTEXT_GUICONFIG - END -END - -RAMWATCH_MENU MENU -BEGIN - POPUP "File" - BEGIN - MENUITEM "&New list\tCtrl N", RAMMENU_FILE_NEW - MENUITEM "&Open...\tCtrl O", RAMMENU_FILE_OPEN - MENUITEM "&Save\tCtrl S", RAMMENU_FILE_SAVE - MENUITEM "Sa&ve As...\tCtrl Shift S", RAMMENU_FILE_SAVEAS - MENUITEM "&Append file...", RAMMENU_FILE_APPEND - MENUITEM "Recent", RAMMENU_FILE_RECENT - MENUITEM SEPARATOR - MENUITEM "Auto-&load", RAMMENU_FILE_AUTOLOAD - MENUITEM "Save Window Position", RAMMENU_FILE_SAVEWINDOW - MENUITEM SEPARATOR - MENUITEM "&Close\tAlt F4", IDCANCEL - END - POPUP "Watches" - BEGIN - MENUITEM "&New Watch\tN", IDC_C_WATCH - MENUITEM "&Edit Watch\tE", IDC_C_WATCH_EDIT - MENUITEM "&Remove Watch\tR", IDC_C_WATCH_REMOVE - MENUITEM "Duplicate Watch\tA", IDC_C_WATCH_DUPLICATE - MENUITEM "Add &Separator\tS", IDC_C_WATCH_SEPARATE - MENUITEM SEPARATOR - MENUITEM "Move Up\tU", IDC_C_WATCH_UP - MENUITEM "Move Down\tD", IDC_C_WATCH_DOWN - END -END - -CHEATCONTEXTMENUS MENU -BEGIN - POPUP "CheatListPopup" - BEGIN - MENUITEM "Toggle selected Cheats\tDbl-Clk", CHEAT_CONTEXT_TOGGLECHEAT - MENUITEM "Poke Cheat Value", CHEAT_CONTEXT_POKECHEATVALUE - MENUITEM "Goto in Hex Editor", CHEAT_CONTEXT_GOTOINHEXEDITOR - MENUITEM "Delete selected Cheats", ID_CHEATLISTPOPUP_DELETESELECTEDCHEATS - END -END - -DEBUGCONTEXTMENUS MENU -BEGIN - POPUP "DebugListPopup" - BEGIN - MENUITEM "Toggle Breakpoint\tDbl-Clk", DEBUGGER_CONTEXT_TOGGLEBREAK - END -END - -LUAWINDOW_MENU MENU -BEGIN - POPUP "Console" - BEGIN - MENUITEM "&Font...", IDC_LUACONSOLE_CHOOSEFONT - MENUITEM "Clear", IDC_LUACONSOLE_CLEAR - END -END - +#pragma code_page(1251) ///////////////////////////////////////////////////////////////////////////// // @@ -659,7 +68,7 @@ BEGIN LTEXT "Avi Output",IDC_STATIC,10,208,34,8 END -DWBDIALOG DIALOG 33, 99, 250, 56 +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 Sans Serif" @@ -669,7 +78,7 @@ BEGIN PUSHBUTTON "Close",BTN_CLOSE,188,33,50,14 END -FKBDIALOG DIALOG 13, 72, 402, 194 +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 Sans Serif" @@ -851,7 +260,7 @@ BEGIN "Button",BS_AUTOCHECKBOX,174,18,142,12 END -MAHJONGDIALOG DIALOG 65510, 106, 340, 110 +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 Sans Serif" @@ -954,7 +363,7 @@ BEGIN CONTROL "Use Custom Palette",CHECK_PALETTE_CUSTOM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,19,22,85,12 END -POWERPADDIALOG DIALOG 30, 123, 131, 119 +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 Sans Serif" @@ -975,7 +384,7 @@ BEGIN PUSHBUTTON "12",311,91,59,16,12 END -QUIZKINGDIALOG DIALOG 30, 123, 160, 74 +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 Sans Serif" @@ -1637,7 +1046,7 @@ BEGIN 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",WS_BORDER | 0x1,201,39,115,6 + 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 @@ -1984,7 +1393,7 @@ BEGIN 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",65433,465,57,27,8 + CTEXT "PAL/Dendy",65433,465,57,27,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 @@ -2096,7 +1505,7 @@ BEGIN PUSHBUTTON "&Cancel",IDCANCEL,120,80,50,14 END -IDD_PROMPT DIALOG 0, 0, 186, 68 +IDD_PROMPT DIALOG 0, 0, 186, 68 STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Input Prompt" FONT 8, "Ms Shell Dlg 2" @@ -2113,7 +1522,7 @@ END // #ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO +GUIDELINES DESIGNINFO BEGIN "DIRCONFIG", DIALOG BEGIN @@ -2252,18 +1661,608 @@ BEGIN 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 SEPARATOR + 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 "Speed &Up", ID_NES_SPEEDUP + MENUITEM "Slow &Down", ID_NES_SLOWDOWN + MENUITEM SEPARATOR + MENUITEM "&Pause", ID_NES_PAUSE + MENUITEM "&Slowest Speed", ID_NES_SLOWESTSPEED + MENUITEM "&Normal Speed", ID_NES_NORMALSPEED + MENUITEM "&Turbo", ID_NES_TURBO + 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 (slow!)", ID_NEWPPU + END + MENUITEM SEPARATOR + MENUITEM "&Directories...", MENU_DIRECTORIES + MENUITEM "&GUI...", MENU_GUI_OPTIONS + MENUITEM "&Input...", MENU_INPUT + MENUITEM "&Network Play...", MENU_NETWORK + MENUITEM "&Palette...", MENU_PALETTE + MENUITEM "&Sound...", MENU_SOUND + MENUITEM "&Timing...", MENU_TIMING + MENUITEM "&Video...", MENU_VIDEO + MENUITEM "&Movie options...", MENU_MOVIEOPTIONS + MENUITEM "&Map Hotkeys...", MENU_HOTKEYS + MENUITEM SEPARATOR + MENUITEM "Save Config File", ID_CONFIG_SAVECONFIGFILE + END + POPUP "&Tools" + BEGIN + MENUITEM "&Cheats...", MENU_CHEATS + MENUITEM "RAM Search...", ID_RAM_SEARCH + MENUITEM "RAM Watch...", ID_RAM_WATCH + MENUITEM "&Memory Watch...", MENU_MEMORY_WATCH + MENUITEM "&TAS Editor...", MENU_TASEDITOR + MENUITEM "Convert &FCM...", MENU_CONVERT_MOVIE + MENUITEM SEPARATOR + POPUP "Autofire &Pattern" + BEGIN + MENUITEM "1 on, 1 off", MENU_AUTOFIRE_PATTERN_1 + MENUITEM "1 on, 2 off", MENU_AUTOFIRE_PATTERN_2 + MENUITEM "1 on, 3 off", MENU_AUTOFIRE_PATTERN_3 + MENUITEM "1 on, 4 off", ID_DEBUG_DEBUGGER + MENUITEM "1 on, 5 off", ID_DEBUG_PPUVIEWER + MENUITEM "2 on, 1 off", ID_DEBUG_NAMETABLEVIEWER + MENUITEM "2 on, 2 off", ID_DEBUG_HEXEDITOR + MENUITEM "2 on, 3 off", ID_DEBUG_TRACELOGGER + MENUITEM "2 on, 4 off", MENU_AUTOFIRE_PATTERN_9 + MENUITEM "3 on, 1 off", ID_DEBUG_GAMEGENIEDECODER + MENUITEM "3 on, 2 off", ID_DEBUG_CDLOGGER + MENUITEM "3 on, 3 off", MENU_AUTOFIRE_PATTERN_12 + MENUITEM "4 on, 1 off", MENU_AUTOFIRE_PATTERN_13 + MENUITEM "4 on, 2 off", MENU_AUTOFIRE_PATTERN_14 + MENUITEM "5 on, 1 off", MENU_AUTOFIRE_PATTERN_15 + END + POPUP "Autofire &Offset" + BEGIN + MENUITEM "0 frames", MENU_AUTOFIRE_OFFSET_1 + MENUITEM "1 frame", MENU_AUTOFIRE_OFFSET_2 + MENUITEM "2 frames", MENU_AUTOFIRE_OFFSET_3 + MENUITEM "3 frames", MENU_AUTOFIRE_OFFSET_4 + MENUITEM "4 frames", MENU_AUTOFIRE_OFFSET_5 + MENUITEM "5 frames", MENU_AUTOFIRE_OFFSET_6 + END + MENUITEM "&Alternate A and B", MENU_ALTERNATE_AB + MENUITEM SEPARATOR + MENUITEM "Te&xt Hooker...", ID_TOOLS_TEXTHOOKER + END + POPUP "&Debug" + BEGIN + MENUITEM "&Debugger...", MENU_DEBUGGER + MENUITEM "&PPU Viewer...", MENU_PPUVIEWER + MENUITEM "&Name Table Viewer...", MENU_NAMETABLEVIEWER + MENUITEM "&Hex Editor...", MENU_HEXEDITOR + MENUITEM "&Trace Logger...", MENU_TRACELOGGER + MENUITEM "&Code/Data Logger...", MENU_CDLOGGER + MENUITEM "&Game Genie Decoder/Encoder...", MENU_GAMEGENIEDECODER + END + POPUP "&Help" + BEGIN + MENUITEM "&Help...", MENU_HELP + MENUITEM "&Message Log", MENU_MSGLOG + MENUITEM SEPARATOR + MENUITEM "&About", MENU_ABOUT + END +END + +TASEDITORMENU MENUEX +BEGIN + POPUP "File", 65535,MFT_STRING,MFS_ENABLED + BEGIN + MENUITEM "New", ID_FILE_NEW,MFT_STRING,MFS_ENABLED + MENUITEM "Open", ID_FILE_OPENPROJECT,MFT_STRING,MFS_ENABLED + MENUITEM "Save\tCtrl+S", ID_FILE_SAVEPROJECT,MFT_STRING,MFS_ENABLED + MENUITEM "Save As", ID_FILE_SAVEPROJECTAS,MFT_STRING,MFS_ENABLED + MENUITEM "Save Compact", ID_FILE_SAVECOMPACT,MFT_STRING,MFS_ENABLED + MENUITEM "Recent", ID_FILE_RECENT,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Import Input", ID_FILE_IMPORT,MFT_STRING,MFS_ENABLED + MENUITEM "Export to FM2", ID_FILE_EXPORTFM2,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Close\tAlt+F4", ID_FILE_CLOSE,MFT_STRING,MFS_ENABLED + END + POPUP "Edit", 65535,MFT_STRING,MFS_ENABLED + BEGIN + MENUITEM "Undo\tCtrl+Z", ID_EDIT_UNDO,MFT_STRING,MFS_ENABLED + MENUITEM "Redo\tCtrl+Y", ID_EDIT_REDO,MFT_STRING,MFS_ENABLED + MENUITEM "Selection Undo\tCtrl+Q", ID_EDIT_SELECTIONUNDO,MFT_STRING,MFS_ENABLED + MENUITEM "Selection Redo\tCtrl+W", ID_EDIT_SELECTIONREDO,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Deselect", ID_EDIT_DESELECT,MFT_STRING,MFS_ENABLED + MENUITEM "Select All", ID_EDIT_SELECTALL,MFT_STRING,MFS_ENABLED + MENUITEM "Select between Markers\tCtrl+A", ID_EDIT_SELECTMIDMARKERS,MFT_STRING,MFS_ENABLED + MENUITEM "Reselect Clipboard\tCtrl+B", ID_EDIT_RESELECTCLIPBOARD,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Copy\tCtrl+C", ID_EDIT_COPY,MFT_STRING,MFS_ENABLED + MENUITEM "Paste\tCtrl+V", ID_EDIT_PASTE,MFT_STRING,MFS_ENABLED + MENUITEM "PasteInsert\tCtrl+Shift+V", ID_EDIT_PASTEINSERT,MFT_STRING,MFS_ENABLED + MENUITEM "Cut\tCtrl+X", ID_EDIT_CUT,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Clear\tDel", ID_EDIT_CLEAR,MFT_STRING,MFS_ENABLED + MENUITEM "Delete\tCtrl+Del", ID_EDIT_DELETE,MFT_STRING,MFS_ENABLED + MENUITEM "Clone\tCtrl+Ins", ID_EDIT_CLONEFRAMES,MFT_STRING,MFS_ENABLED + MENUITEM "Insert\tCtrl+Shift+Ins", ID_EDIT_INSERTFRAMES,MFT_STRING,MFS_ENABLED + MENUITEM "Insert # of Frames\tIns", ID_EDIT_INSERT,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Truncate movie", ID_EDIT_TRUNCATE,MFT_STRING,MFS_ENABLED + END + POPUP "View", 65535,MFT_STRING,MFS_ENABLED + BEGIN + MENUITEM "Find Note window\tCtrl+F", ID_VIEW_FINDNOTE,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Display Branch Screenshots", ID_VIEW_SHOWBRANCHSCREENSHOTS,MFT_STRING,MFS_ENABLED + MENUITEM "Display Branch Descriptions", ID_VIEW_SHOWBRANCHTOOLTIPS,MFT_STRING,MFS_ENABLED + MENUITEM "Enable Hot Changes", ID_VIEW_ENABLEHOTCHANGES,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Follow Undo context", ID_VIEW_JUMPWHENMAKINGUNDO,MFT_STRING,MFS_ENABLED + MENUITEM "Follow Marker Note context", ID_VIEW_FOLLOWMARKERNOTECONTEXT,MFT_STRING,MFS_ENABLED + END + POPUP "Config", 65535,MFT_STRING,MFS_ENABLED + BEGIN + MENUITEM "Project file saving options", ID_CONFIG_SAVING_OPTIONS,MFT_STRING,MFS_ENABLED + MENUITEM "Set max Undo levels", ID_CONFIG_SETMAXUNDOLEVELS,MFT_STRING,MFS_ENABLED + MENUITEM "Set Greenzone capacity", ID_CONFIG_SETGREENZONECAPACITY,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Enable Greenzoning", ID_CONFIG_ENABLEGREENZONING,MFT_STRING,MFS_ENABLED + MENUITEM "Autofire Pattern skips Lag", ID_CONFIG_PATTERNSKIPSLAG,MFT_STRING,MFS_ENABLED + MENUITEM "Auto-adjust Input according to Lag", ID_CONFIG_ADJUSTLAG,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Draw Input by dragging", ID_CONFIG_DRAWINPUTBYDRAGGING,MFT_STRING,MFS_ENABLED + MENUITEM "Combine consecutive Recordings/Draws", ID_CONFIG_COMBINECONSECUTIVERECORDINGS,MFT_STRING,MFS_ENABLED + MENUITEM "Use 1P keys for all single Recordings", ID_CONFIG_USE1PFORRECORDING,MFT_STRING,MFS_ENABLED + MENUITEM "Use Input keys for Column Set", ID_CONFIG_USEINPUTKEYSFORCOLUMNSET,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Bind Markers to Input", ID_CONFIG_BINDMARKERSTOINPUT,MFT_STRING,MFS_ENABLED + MENUITEM "Empty new Marker Notes", ID_CONFIG_EMPTYNEWMARKERNOTES,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Old control scheme for Branching", ID_CONFIG_OLDBRANCHINGCONTROLS,MFT_STRING,MFS_ENABLED + MENUITEM "Branches restore entire Movie", ID_CONFIG_BRANCHESRESTOREFULLMOVIE,MFT_STRING,MFS_ENABLED + MENUITEM "HUD in Branch screenshots", ID_CONFIG_HUDINBRANCHSCREENSHOTS,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "Autopause at the end of Movie", ID_CONFIG_AUTOPAUSEATTHEENDOFMOVIE,MFT_STRING,MFS_ENABLED + END + POPUP "Help", 65535,MFT_STRING,MFS_ENABLED + BEGIN + MENUITEM "Open TAS Editor Manual", ID_HELP_OPEN_MANUAL,MFT_STRING,MFS_ENABLED + MENUITEM "Enable Tooltips", ID_HELP_TOOLTIPS,MFT_STRING,MFS_ENABLED + MENUITEM MFT_SEPARATOR + MENUITEM "About", ID_HELP_ABOUT,MFT_STRING,MFS_ENABLED + END + POPUP "Pattern", 65535,MFT_STRING | MFT_RIGHTJUSTIFY,MFS_ENABLED + BEGIN + MENUITEM "Dummy", ID_PATTERN_TEST,MFT_STRING,MFS_ENABLED + END +END + +MEMVIEWMENU MENU +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&Save Rom", MENU_MV_FILE_SAVE + MENUITEM "S&ave Rom As...", MENU_MV_FILE_SAVE_AS + MENUITEM "&Load *.TBL File", MENU_MV_FILE_LOAD_TBL + MENUITEM "&Unload *.TBL file", MENU_MV_FILE_UNLOAD_TBL + POPUP "&Dump to file" + BEGIN + MENUITEM "&Ram", MENU_MV_FILE_DUMP_RAM + MENUITEM "&PPU Memory", MENU_MV_FILE_DUMP_PPU + MENUITEM "6502 64K", MENU_MV_FILE_DUMP_64K + 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 "&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 "Game+Movie+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 "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+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 "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+Movie+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 "Undo savestate", FCEUX_CONTEXT_UNDOSAVESTATE + MENUITEM "Undo loadstate", FCEUX_CONTEXT_UNDOLOADSTATE + MENUITEM "Rewind to last auto-save", FCEUX_CONTEXT_REWINDTOLASTAUTO + MENUITEM SEPARATOR + MENUITEM "&Mode: Full state-movie loads", ID_CONTEXT_FULLSAVESTATES + MENUITEM SEPARATOR + MENUITEM "Help...", FCEU_CONTEXT_MOVIEHELP + MENUITEM SEPARATOR + MENUITEM "Use Config > Gui to get zapper right click", FCEUX_CONTEXT_GUICONFIG + END +END + +RAMWATCH_MENU MENU +BEGIN + POPUP "File" + BEGIN + MENUITEM "&New list\tCtrl N", RAMMENU_FILE_NEW + MENUITEM "&Open...\tCtrl O", RAMMENU_FILE_OPEN + MENUITEM "&Save\tCtrl S", RAMMENU_FILE_SAVE + MENUITEM "Sa&ve As...\tCtrl Shift S", RAMMENU_FILE_SAVEAS + MENUITEM "&Append file...", RAMMENU_FILE_APPEND + MENUITEM "Recent", RAMMENU_FILE_RECENT + MENUITEM SEPARATOR + MENUITEM "Auto-&load", RAMMENU_FILE_AUTOLOAD + MENUITEM "Save Window Position", RAMMENU_FILE_SAVEWINDOW + MENUITEM SEPARATOR + MENUITEM "&Close\tAlt F4", IDCANCEL + END + POPUP "Watches" + BEGIN + MENUITEM "&New Watch\tN", IDC_C_WATCH + MENUITEM "&Edit Watch\tE", IDC_C_WATCH_EDIT + MENUITEM "&Remove Watch\tR", IDC_C_WATCH_REMOVE + MENUITEM "Duplicate Watch\tA", IDC_C_WATCH_DUPLICATE + MENUITEM "Add &Separator\tS", IDC_C_WATCH_SEPARATE + MENUITEM SEPARATOR + MENUITEM "Move Up\tU", IDC_C_WATCH_UP + MENUITEM "Move Down\tD", IDC_C_WATCH_DOWN + END +END + +CHEATCONTEXTMENUS MENU +BEGIN + POPUP "CheatListPopup" + BEGIN + MENUITEM "Toggle selected Cheats\tDbl-Clk", CHEAT_CONTEXT_TOGGLECHEAT + MENUITEM "Poke Cheat Value", CHEAT_CONTEXT_POKECHEATVALUE + MENUITEM "Goto in Hex Editor", CHEAT_CONTEXT_GOTOINHEXEDITOR + MENUITEM "Delete selected Cheats", ID_CHEATLISTPOPUP_DELETESELECTEDCHEATS + END +END + +DEBUGCONTEXTMENUS MENU +BEGIN + POPUP "DebugListPopup" + BEGIN + MENUITEM "Toggle Breakpoint\tDbl-Clk", DEBUGGER_CONTEXT_TOGGLEBREAK + END +END + +LUAWINDOW_MENU MENU +BEGIN + POPUP "Console" + BEGIN + MENUITEM "&Font...", IDC_LUACONSOLE_CHOOSEFONT + MENUITEM "Clear", IDC_LUACONSOLE_CLEAR + END +END + #endif // Neutral resources ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources +// Russian (Russia) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS) +LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT +#pragma code_page(1251) + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +IDD_TASEDITOR_SAVINGOPTIONS DIALOGEX 0, 0, 223, 208 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Project file saving options" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "OK",IDOK,109,187,50,14 + PUSHBUTTON "Cancel",IDCANCEL,165,187,50,14 + CONTROL " Binary format of Input",IDC_CHECK_BINARY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,17,89,10 + CONTROL " Markers",IDC_CHECK_MARKERS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,32,67,10 + CONTROL " Bookmarks",IDC_CHECK_BOOKMARKS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,47,67,10 + CONTROL " History",IDC_CHECK_HISTORY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,62,67,10 + CONTROL " Piano Roll",IDC_CHECK_PIANO_ROLL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,77,67,10 + CONTROL " Selection",IDC_CHECK_SELECTION,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,122,92,67,10 + GROUPBOX "File contents",IDC_STATIC,105,4,111,177 + GROUPBOX "Greenzone saving options",IDC_STATIC,112,106,97,69 + CONTROL " all frames",IDC_RADIO1,"Button",BS_AUTORADIOBUTTON,122,117,77,10 + CONTROL " every 16th frame",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON,122,131,77,10 + CONTROL " marked frames",IDC_RADIO3,"Button",BS_AUTORADIOBUTTON,122,145,77,10 + CONTROL " don't save",IDC_RADIO4,"Button",BS_AUTORADIOBUTTON,122,159,77,10 + CONTROL " Autosave project",IDC_AUTOSAVE_PROJECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,17,81,10 + CONTROL " silently",IDC_SILENT_AUTOSAVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,47,42,10 + LTEXT "every",IDC_STATIC,14,32,21,8 + EDITTEXT IDC_AUTOSAVE_PERIOD,36,30,24,14,ES_AUTOHSCROLL | ES_NUMBER + LTEXT "minutes",IDC_STATIC,64,32,28,8 + GROUPBOX "Settings",IDC_STATIC,6,4,91,177 +END + +IDD_SYMBOLIC_DEBUG_NAMING DIALOGEX 0, 0, 245, 83 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Symbolic Debug Naming" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "OK",IDOK,132,62,50,14 + PUSHBUTTON "Cancel",IDCANCEL,189,62,50,14 + LTEXT "File",IDC_STATIC,7,7,15,9 + EDITTEXT IDC_SYMBOLIC_ADDRESS,38,24,33,13,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP + LTEXT "Address",IDC_STATIC,6,26,30,10 + EDITTEXT IDC_SYMBOLIC_NAME,107,24,132,13,ES_AUTOHSCROLL + LTEXT "Name",IDC_STATIC,83,26,22,10 + LTEXT "Comment",IDC_STATIC,6,45,37,10 + EDITTEXT IDC_SYMBOLIC_COMMENT,45,43,194,13,ES_AUTOHSCROLL + EDITTEXT IDC_SYMBOLIC_FILENAME,24,6,215,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_TABSTOP +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO +BEGIN + IDD_SYMBOLIC_DEBUG_NAMING, DIALOG + BEGIN + BOTTOMMARGIN, 82 + END +END +#endif // APSTUDIO_INVOKED + +#endif // Russian (Russia) resources +///////////////////////////////////////////////////////////////////////////// + + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US #pragma code_page(1252) -#endif //_WIN32 ///////////////////////////////////////////////////////////////////////////// // @@ -2286,7 +2285,7 @@ END // #ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO +GUIDELINES DESIGNINFO BEGIN "IDD_REPLAY_METADATA", DIALOG BEGIN @@ -2328,7 +2327,7 @@ END // Accelerator // -IDR_TASEDITOR_ACCELERATORS ACCELERATORS +IDR_TASEDITOR_ACCELERATORS ACCELERATORS BEGIN "A", ACCEL_CTRL_A, VIRTKEY, CONTROL, NOINVERT "B", ACCEL_CTRL_B, VIRTKEY, CONTROL, NOINVERT @@ -2369,7 +2368,7 @@ BEGIN VK_UP, ACCEL_SHIFT_UP, VIRTKEY, SHIFT, NOINVERT END -IDR_RWACCELERATOR ACCELERATORS +IDR_RWACCELERATOR ACCELERATORS BEGIN "N", RAMMENU_FILE_NEW, VIRTKEY, CONTROL "O", RAMMENU_FILE_OPEN, VIRTKEY, CONTROL @@ -2493,7 +2492,7 @@ IDB_BITMAP_SELECTED17 BITMAP "res\\te_17_selected.bmp" IDB_BITMAP_SELECTED18 BITMAP "res\\te_18_selected.bmp" IDB_BITMAP_SELECTED19 BITMAP "res\\te_19_selected.bmp" IDB_BRANCH_SPRITESHEET BITMAP "res\\branch_spritesheet.bmp" -#endif // English (U.S.) resources +#endif // English (United States) resources ///////////////////////////////////////////////////////////////////////////// diff --git a/trunk/src/drivers/win/resource.h b/trunk/src/drivers/win/resource.h index 32572eab..9c5741ac 100644 --- a/trunk/src/drivers/win/resource.h +++ b/trunk/src/drivers/win/resource.h @@ -416,7 +416,6 @@ #define IDC_DEBUGGER_VAL_PPU 310 #define IDC_LABEL_PALUSED2 310 #define IDC_LABEL_NEWPPUUSED 310 -#define MENU_PAL 311 #define IDC_DEBUGGER_VAL_SPR 311 #define IDC_LABEL_TWEAKCOUNT 311 #define IDC_BTN_CHEAT_ADDFROMFILE 311 @@ -426,6 +425,9 @@ #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 CHECK_DISABLE_FOURSCORE 400 #define MENU_MV_BOOKMARKS_RM_ALL 400 #define IDC_WINSIZE_MUL_X 400 @@ -1203,6 +1205,7 @@ #define ID_HIGHLIGHTING_HIGHLIGHT_ACTIVITY 40588 #define ID_DUMPTOFILE_CPUBUS 40589 #define MENU_MV_FILE_DUMP_64K 40590 +#define ID_CONFIG_REGION 40591 #define IDC_DEBUGGER_ICONTRAY 55535 #define MW_ValueLabel2 65423 #define MW_ValueLabel1 65426 @@ -1215,7 +1218,7 @@ #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 291 -#define _APS_NEXT_COMMAND_VALUE 40591 +#define _APS_NEXT_COMMAND_VALUE 40596 #define _APS_NEXT_CONTROL_VALUE 1290 #define _APS_NEXT_SYMED_VALUE 101 #endif diff --git a/trunk/src/drivers/win/taseditor.cpp b/trunk/src/drivers/win/taseditor.cpp index 6104e3af..4fbc0905 100644 --- a/trunk/src/drivers/win/taseditor.cpp +++ b/trunk/src/drivers/win/taseditor.cpp @@ -881,6 +881,8 @@ void applyMovieInputConfig() FCEUD_SetInput(currMovieData.fourscore, currMovieData.microphone, (ESI)currMovieData.ports[0], (ESI)currMovieData.ports[1], (ESIFC)currMovieData.ports[2]); // update PAL flag pal_emulation = currMovieData.palFlag; + if (pal_emulation) + dendy = 0; FCEUI_SetVidSystem(pal_emulation); RefreshThrottleFPS(); PushCurrentVideoSettings(); diff --git a/trunk/src/drivers/win/window.cpp b/trunk/src/drivers/win/window.cpp index a2e16e88..fd1ef2ba 100644 --- a/trunk/src/drivers/win/window.cpp +++ b/trunk/src/drivers/win/window.cpp @@ -400,8 +400,8 @@ void UpdateCheckedMenuItems() bool spr, bg; FCEUI_GetRenderPlanes(spr,bg); - static int *polo[] = { &genie, &pal_emulation, &status_icon}; - static int polo2[]={ MENU_GAME_GENIE, MENU_PAL, MENU_SHOW_STATUS_ICON }; + static int *polo[] = { &genie, &status_icon}; + static int polo2[]={ MENU_GAME_GENIE, MENU_SHOW_STATUS_ICON }; int x; // Check or uncheck the necessary menu items @@ -439,6 +439,14 @@ void UpdateCheckedMenuItems() CheckMenuItem(fceumenu, MENU_DISPLAY_OBJ, spr?MF_CHECKED:MF_UNCHECKED); CheckMenuItem(fceumenu, ID_INPUTDISPLAY_OLDSTYLEDISP, oldInputDisplay?MF_CHECKED:MF_UNCHECKED); + //Config - Region SubMenu + if (pal_emulation) + CheckMenuRadioItem(fceumenu, MENU_NTSC, MENU_DENDY, MENU_PAL, MF_BYCOMMAND); + else if (dendy) + CheckMenuRadioItem(fceumenu, MENU_NTSC, MENU_DENDY, MENU_DENDY, MF_BYCOMMAND); + else + CheckMenuRadioItem(fceumenu, MENU_NTSC, MENU_DENDY, MENU_NTSC, MF_BYCOMMAND); + // Tools Menu CheckMenuItem(fceumenu, MENU_ALTERNATE_AB, GetAutoFireDesynch() ? MF_CHECKED : MF_UNCHECKED); CheckedAutoFirePattern = GetCheckedAutoFirePattern(); @@ -1965,12 +1973,14 @@ LRESULT FAR PASCAL AppWndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam) FCEUI_SetGameGenie(genie!=0); UpdateCheckedMenuItems(); break; + case MENU_NTSC: + FCEUI_SetRegion(0); + break; case MENU_PAL: - pal_emulation ^= 1; - FCEUI_SetVidSystem(pal_emulation); - RefreshThrottleFPS(); - UpdateCheckedMenuItems(); - PushCurrentVideoSettings(); + FCEUI_SetRegion(1); + break; + case MENU_DENDY: + FCEUI_SetRegion(2); break; case MENU_DIRECTORIES: ConfigDirectories(); diff --git a/trunk/src/fceu.cpp b/trunk/src/fceu.cpp index da418b92..677af1d6 100644 --- a/trunk/src/fceu.cpp +++ b/trunk/src/fceu.cpp @@ -848,14 +848,15 @@ void FCEU_ResetVidSys(void) { if (GameInfo->vidsys == GIV_NTSC) w = 0; - else if (GameInfo->vidsys == GIV_PAL) + else if (GameInfo->vidsys == GIV_PAL) { w = 1; - else + dendy = 0; + } else w = FSettings.PAL; PAL = w ? 1 : 0; - FCEUPPU_SetVideoSystem(w); + FCEUPPU_SetVideoSystem(w || dendy); SetSoundVariables(); } @@ -890,7 +891,7 @@ void FCEUI_SetRenderedLines(int ntscf, int ntscl, int palf, int pall) { FSettings.UsrLastSLine[0] = ntscl; FSettings.UsrFirstSLine[1] = palf; FSettings.UsrLastSLine[1] = pall; - if (PAL) { + if (PAL || dendy) { FSettings.FirstSLine = FSettings.UsrFirstSLine[1]; FSettings.LastSLine = FSettings.UsrLastSLine[1]; } else { @@ -916,6 +917,30 @@ int FCEUI_GetCurrentVidSystem(int *slstart, int *slend) { return(PAL); } +// TODO: make use on SDL +void FCEUI_SetRegion(int region) { + switch (region) { + case 0: // NTSC + pal_emulation = 0; + dendy = 0; + break; + case 1: // PAL + pal_emulation = 1; + dendy = 0; + break; + case 2: // Dendy + pal_emulation = 0; + dendy = 1; + break; + } + FCEUI_SetVidSystem(pal_emulation); + RefreshThrottleFPS(); +#ifdef WIN32 + UpdateCheckedMenuItems(); + PushCurrentVideoSettings(); +#endif +} + //Enable or disable Game Genie option. void FCEUI_SetGameGenie(bool a) { FSettings.GameGenie = a; @@ -928,7 +953,7 @@ void FCEUI_SetGameGenie(bool a) { //} int32 FCEUI_GetDesiredFPS(void) { - if (PAL) + if (PAL || dendy) return(838977920); // ~50.007 else return(1008307711); // ~60.1 diff --git a/trunk/src/fceu.h b/trunk/src/fceu.h index 2e8d6545..743492cc 100644 --- a/trunk/src/fceu.h +++ b/trunk/src/fceu.h @@ -74,6 +74,7 @@ extern FCEUGI *GameInfo; extern int GameAttributes; extern uint8 PAL; +extern int dendy; //#include "driver.h" @@ -127,6 +128,11 @@ void FCEU_PutImage(void); void FCEU_PutImageDummy(void); #endif +#ifdef WIN32 +extern void UpdateCheckedMenuItems(); +extern void PushCurrentVideoSettings(); +#endif + extern uint8 Exit; extern uint8 pale; extern uint8 vsdip; diff --git a/trunk/src/ppu.cpp b/trunk/src/ppu.cpp index 0e98e988..43d546bc 100644 --- a/trunk/src/ppu.cpp +++ b/trunk/src/ppu.cpp @@ -1219,7 +1219,10 @@ static void Fixit1(void) { void MMC5_hb(int); //Ugh ugh ugh. static void DoLine(void) { int x; - uint8 *target = XBuf + (scanline << 8); + // scanlines after 239 are dummy for dendy, and Xbuf is capped at 0xffff bytes, don't let it overflow + // send all future writes to the invisible sanline. the easiest way to "skip" them altogether in old ppu + // todo: figure out what exactly should be skipped. it's known that there's no activity on PPU bus + uint8 *target = XBuf + ((scanline < 240 ? scanline : 240) << 8); if (MMC5Hack) MMC5_hb(scanline); @@ -1634,7 +1637,7 @@ static void CopySprites(uint8 *target) { void FCEUPPU_SetVideoSystem(int w) { if (w) { - scanlines_per_frame = 312; + scanlines_per_frame = dendy ? 262: 312; FSettings.FirstSLine = FSettings.UsrFirstSLine[1]; FSettings.LastSLine = FSettings.UsrLastSLine[1]; } else { @@ -1785,9 +1788,10 @@ int FCEUPPU_Loop(int skip) { int x, max, maxref; deemp = PPU[1] >> 5; - for (scanline = 0; scanline < 240; ) { //scanline is incremented in DoLine. Evil. :/ + for (scanline = 0; scanline < (dendy ? 290 : 240); ) { //scanline is incremented in DoLine. Evil. :/ deempcnt[deemp]++; - DEBUG(FCEUD_UpdatePPUView(scanline, 1)); + if (scanline < 240) + DEBUG(FCEUD_UpdatePPUView(scanline, 1)); DoLine(); } if (MMC5Hack) MMC5_hb(scanline); @@ -2027,8 +2031,8 @@ int FCEUX_PPU_Loop(int skip) { //capture the initial xscroll //int xscroll = ppur.fh; - //render 241 scanlines (including 1 dummy at beginning) - for (int sl = 0; sl < 241; sl++) { + //render 241/291 scanlines (1 dummy at beginning, dendy's 50 at the end) + for (int sl = 0; sl < (dendy ? 291 : 241); sl++) { spr_read.start_scanline(); g_rasterpos = 0; @@ -2039,7 +2043,7 @@ int FCEUX_PPU_Loop(int skip) { const int yp = sl - 1; ppuphase = PPUPHASE_BG; - if (sl != 0) { + if (sl != 0 && sl < 241) { // ignore the invisible DEBUG(FCEUD_UpdatePPUView(scanline = yp, 1)); DEBUG(FCEUD_UpdateNTView(scanline = yp, 1)); } @@ -2062,7 +2066,7 @@ int FCEUX_PPU_Loop(int skip) { //ok, we're also going to draw here. //unless we're on the first dummy scanline - if (sl != 0) { + if (sl != 0 && sl < 241) { // cape at 240 for dendy, its PPU does nothing afterwards int xstart = xt << 3; oamcount = oamcounts[renderslot]; uint8 * const target = XBuf + (yp << 8) + xstart; @@ -2233,7 +2237,7 @@ int FCEUX_PPU_Loop(int skip) { runppu(1); garbage_todo = 0; } - if ((sl != 0) && ppur.status.cycle == 256) + if ((sl != 0 && sl < 241) && ppur.status.cycle == 256) { runppu(1); //at 257: 3d world runner is ugly if we do this at 256 diff --git a/trunk/src/x6502.h b/trunk/src/x6502.h index b30e0fb5..34d43855 100644 --- a/trunk/src/x6502.h +++ b/trunk/src/x6502.h @@ -61,7 +61,7 @@ extern uint32 timestamp; extern void (*MapIRQHook)(int a); -#define NTSC_CPU 1789772.7272727272727272 +#define NTSC_CPU (dendy ? 1773447.467 : 1789772.7272727272727272) #define PAL_CPU 1662607.125 #define FCEU_IQEXT 0x001