diff --git a/src/drivers/win/config.cpp b/src/drivers/win/config.cpp index b5fecebb..d9ee7465 100644 --- a/src/drivers/win/config.cpp +++ b/src/drivers/win/config.cpp @@ -46,6 +46,7 @@ extern int DesynchAutoFire; extern bool lagCounterDisplay; extern bool frameAdvanceLagSkip; extern int ClipSidesOffset; +extern bool movieSubtitles; extern uint8 gNoBGFillColor; @@ -206,6 +207,7 @@ static CFGSTRUCT fceuconfig[] = { AC(AutoFireOffset), AC(DesynchAutoFire), AC(lagCounterDisplay), + AC(movieSubtitles), AC(bindSavestate), AC(ClipSidesOffset), //ACS(memwLastfile[2048]), diff --git a/src/drivers/win/res.rc b/src/drivers/win/res.rc index b5065126..82a322c7 100644 --- a/src/drivers/win/res.rc +++ b/src/drivers/win/res.rc @@ -92,6 +92,7 @@ BEGIN END MENUITEM "Lag Counter", MENU_DISPLAY_LAGCOUNTER MENUITEM "Frame Counter", ID_DISPLAY_FRAMECOUNTER + MENUITEM "Move Subtitles", ID_DISPLAY_MOVESUBTITLES MENUITEM SEPARATOR MENUITEM "Graphics: BG", MENU_DISPLAY_BG MENUITEM "Graphics: OBJ", MENU_DISPLAY_OBJ diff --git a/src/drivers/win/resource.h b/src/drivers/win/resource.h index c0bfa870..6022ad4f 100644 --- a/src/drivers/win/resource.h +++ b/src/drivers/win/resource.h @@ -561,6 +561,7 @@ #define MENU_CONFIG_BINDSAVES 40256 #define MEMVIEW_HELP 40257 #define MENU_MV_HELP 40258 +#define ID_DISPLAY_MOVESUBTITLES 40259 #define IDC_DEBUGGER_ICONTRAY 55535 #define MW_ValueLabel2 65423 #define MW_ValueLabel1 65426 @@ -570,7 +571,7 @@ #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 124 -#define _APS_NEXT_COMMAND_VALUE 40259 +#define _APS_NEXT_COMMAND_VALUE 40260 #define _APS_NEXT_CONTROL_VALUE 1187 #define _APS_NEXT_SYMED_VALUE 101 #endif diff --git a/src/drivers/win/window.cpp b/src/drivers/win/window.cpp index 1e8dfd6b..b55afd93 100644 --- a/src/drivers/win/window.cpp +++ b/src/drivers/win/window.cpp @@ -71,6 +71,7 @@ using namespace std; extern FCEUGI *GameInfo; extern int EnableAutosave; extern bool frameAdvanceLagSkip; +extern bool movieSubtitles; // Extern functions @@ -309,6 +310,7 @@ void UpdateCheckedMenuItems() CheckMenuItem(fceumenu, MENU_DISPLAY_LAGCOUNTER, lagCounterDisplay?MF_CHECKED : MF_UNCHECKED); CheckMenuItem(fceumenu, MENU_DISPLAY_BG, bg?MF_CHECKED:MF_UNCHECKED); CheckMenuItem(fceumenu, MENU_DISPLAY_OBJ, spr?MF_CHECKED:MF_UNCHECKED); + CheckMenuItem(fceumenu, ID_DISPLAY_MOVESUBTITLES, movieSubtitles?MF_CHECKED:MF_UNCHECKED); CheckMenuItem(fceumenu, MENU_PAUSEAFTERPLAYBACK, pauseAfterPlayback ? MF_CHECKED : MF_UNCHECKED); CheckMenuItem(fceumenu, MENU_RUN_IN_BACKGROUND, eoptions & EO_BGRUN ? MF_CHECKED : MF_UNCHECKED); @@ -1026,6 +1028,11 @@ LRESULT FAR PASCAL AppWndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam) UpdateCheckedMenuItems(); break; + case ID_DISPLAY_MOVESUBTITLES: + movieSubtitles ^= 1; + UpdateCheckedMenuItems(); + break; + case MENU_SHOW_STATUS_ICON: // Show status icon menu was selected status_icon = !status_icon; diff --git a/src/fceu.cpp b/src/fceu.cpp index 4e7d4789..65642262 100644 --- a/src/fceu.cpp +++ b/src/fceu.cpp @@ -69,6 +69,8 @@ int AFon = 1, AFoff = 1, AutoFireOffset = 0; //For keeping track of autofire set bool justLagged = false; bool frameAdvanceLagSkip = false; //If this is true, frame advance will skip over lag frame (i.e. it will emulate 2 frames instead of 1) +bool movieSubtitles = true; //Toggle for displaying movie subtitles + FCEUGI::FCEUGI() : filename(0) , archiveFilename(0) @@ -632,7 +634,8 @@ void FCEUI_Emulate(uint8 **pXBuf, int32 **SoundBuf, int32 *SoundBufSize, int ski } else justLagged = false; - ProcessSubtitles(); + if (movieSubtitles) + ProcessSubtitles(); } void FCEUI_CloseGame(void) diff --git a/src/fceu.h b/src/fceu.h index 0576eef3..9d1bfaa5 100644 --- a/src/fceu.h +++ b/src/fceu.h @@ -50,7 +50,6 @@ uint8 FCEU_ReadRomByte(uint32 i); extern readfunc ARead[0x10000]; extern writefunc BWrite[0x10000]; - enum GI { GI_RESETM2 =1, GI_POWER =2,