* Taseditor: handle "Insert Coin" command correctly (no recording while seeking/etc)

* Taseditor: updated docs

[[Split portion of a mixed commit.]]
This commit is contained in:
ansstuff 2013-06-15 19:44:11 +00:00
parent c4eeddcf0c
commit c7555d85c9
6 changed files with 16 additions and 15 deletions

Binary file not shown.

View File

@ -336,7 +336,7 @@ enum EFCEUI
FCEUI_STOPMOVIE, FCEUI_RECORDMOVIE, FCEUI_PLAYMOVIE,
FCEUI_OPENGAME, FCEUI_CLOSEGAME,
FCEUI_TASEDITOR,
FCEUI_RESET, FCEUI_POWER, FCEUI_PLAYFROMBEGINNING, FCEUI_EJECT_DISK, FCEUI_SWITCH_DISK
FCEUI_RESET, FCEUI_POWER, FCEUI_PLAYFROMBEGINNING, FCEUI_EJECT_DISK, FCEUI_SWITCH_DISK, FCEUI_INSERT_COIN
};
//checks whether an EFCEUI is valid right now

View File

@ -2376,6 +2376,7 @@ adelikat: Outsourced this to a remappable hotkey
EnableMenuItem(fceumenu,MENU_POWER,MF_BYCOMMAND | (FCEU_IsValidUI(FCEUI_POWER)?MF_ENABLED:MF_GRAYED));
EnableMenuItem(fceumenu,MENU_EJECT_DISK,MF_BYCOMMAND | (FCEU_IsValidUI(FCEUI_EJECT_DISK)?MF_ENABLED:MF_GRAYED));
EnableMenuItem(fceumenu,MENU_SWITCH_DISK,MF_BYCOMMAND | (FCEU_IsValidUI(FCEUI_SWITCH_DISK)?MF_ENABLED:MF_GRAYED));
EnableMenuItem(fceumenu,MENU_INSERT_COIN,MF_BYCOMMAND | (FCEU_IsValidUI(FCEUI_INSERT_COIN)?MF_ENABLED:MF_GRAYED));
EnableMenuItem(fceumenu,MENU_TASEDITOR,MF_BYCOMMAND | (FCEU_IsValidUI(FCEUI_TASEDITOR)?MF_ENABLED:MF_GRAYED));
EnableMenuItem(fceumenu,MENU_CLOSE_FILE,MF_BYCOMMAND | (FCEU_IsValidUI(FCEUI_CLOSEGAME) && GameInfo ?MF_ENABLED:MF_GRAYED));
EnableMenuItem(fceumenu,MENU_RECENT_FILES,MF_BYCOMMAND | ((FCEU_IsValidUI(FCEUI_OPENGAME) && HasRecentFiles()) ?MF_ENABLED:MF_GRAYED)); //adelikat - added && recent_files, otherwise this line prevents recent from ever being gray when TAS Editor is not engaged

View File

@ -1043,6 +1043,7 @@ bool FCEU_IsValidUI(EFCEUI ui) {
case FCEUI_POWER:
case FCEUI_EJECT_DISK:
case FCEUI_SWITCH_DISK:
case FCEUI_INSERT_COIN:
if (!GameInfo) return false;
if (FCEUMOV_Mode(MOVIEMODE_RECORD)) return true;
#ifdef WIN32

View File

@ -581,6 +581,9 @@ void FCEUI_VSUniToggleDIP(int w)
void FCEUI_VSUniCoin(void)
{
if(!FCEU_IsValidUI(FCEUI_INSERT_COIN))
return;
FCEU_QSimpleCommand(FCEUNPCMD_VSUNICOIN);
}
@ -748,7 +751,7 @@ struct EMUCMDTABLE FCEUI_CommandTable[]=
{ EMUCMD_FDS_EJECT_INSERT, EMUCMDTYPE_FDS, FCEUI_FDSInsert, 0, 0, "Eject or Insert FDS Disk", EMUCMDFLAG_TASEDITOR },
{ EMUCMD_FDS_SIDE_SELECT, EMUCMDTYPE_FDS, FCEUI_FDSSelect, 0, 0, "Switch FDS Disk Side", EMUCMDFLAG_TASEDITOR },
{ EMUCMD_VSUNI_COIN, EMUCMDTYPE_VSUNI, FCEUI_VSUniCoin, 0, 0, "Insert Coin", 0 },
{ EMUCMD_VSUNI_COIN, EMUCMDTYPE_VSUNI, FCEUI_VSUniCoin, 0, 0, "Insert Coin", EMUCMDFLAG_TASEDITOR },
{ EMUCMD_VSUNI_TOGGLE_DIP_0, EMUCMDTYPE_VSUNI, CommandToggleDip, 0, 0, "Toggle Dipswitch 0", 0 },
{ EMUCMD_VSUNI_TOGGLE_DIP_1, EMUCMDTYPE_VSUNI, CommandToggleDip, 0, 0, "Toggle Dipswitch 1", 0 },
{ EMUCMD_VSUNI_TOGGLE_DIP_2, EMUCMDTYPE_VSUNI, CommandToggleDip, 0, 0, "Toggle Dipswitch 2", 0 },

View File

@ -1017,18 +1017,17 @@ void FCEUMOV_AddInputState()
_currCommand = 0;
} else
#endif
if(movieMode == MOVIEMODE_PLAY)
if (movieMode == MOVIEMODE_PLAY)
{
//stop when we run out of frames
if(currFrameCounter >= (int)currMovieData.records.size())
if (currFrameCounter >= (int)currMovieData.records.size())
{
FinishPlayback();
//tell all drivers to poll input and set up their logical states
for(int port=0;port<2;port++)
joyports[port].driver->Update(port,joyports[port].ptr,joyports[port].attrib);
portFC.driver->Update(portFC.ptr,portFC.attrib);
}
else
} else
{
MovieRecord* mr = &currMovieData.records[currFrameCounter];
@ -1049,7 +1048,7 @@ void FCEUMOV_AddInputState()
}
//if we are on the last frame, then pause the emulator if the player requested it
if(currFrameCounter == currMovieData.records.size()-1)
if (currFrameCounter == currMovieData.records.size()-1)
{
if(FCEUD_PauseAfterPlayback())
{
@ -1058,14 +1057,13 @@ void FCEUMOV_AddInputState()
}
//pause the movie at a specified frame
if(FCEUMOV_ShouldPause() && FCEUI_EmulationPaused()==0)
if (FCEUMOV_ShouldPause() && FCEUI_EmulationPaused()==0)
{
FCEUI_ToggleEmulationPause();
FCEU_DispMessage("Paused at specified movie frame",0);
}
}
else if(movieMode == MOVIEMODE_RECORD)
} else if (movieMode == MOVIEMODE_RECORD)
{
MovieRecord mr;
@ -1492,11 +1490,9 @@ void FCEUI_MovieToggleReadOnly()
if(movie_readonly)
strcpy(message, "Movie is now Read+Write");
else
{
strcpy(message, "Movie is now Read-Only");
}
if(movieMode == MOVIEMODE_INACTIVE)
if (movieMode == MOVIEMODE_INACTIVE)
strcat(message, " (no movie)");
else if (movieMode == MOVIEMODE_FINISHED)
strcat(message, " (finished)");
@ -1516,10 +1512,10 @@ void FCEUI_MoviePlayFromBeginning(void)
{
if (currMovieData.savestate.empty())
{
movie_readonly=true;
movie_readonly = true;
movieMode = MOVIEMODE_PLAY;
poweron(true);
currFrameCounter=0;
currFrameCounter = 0;
FCEU_DispMessage("Movie is now Read-Only. Playing from beginning.",0);
}
else