* Tasedit: execute lua functions when jumping inside greenzone
* added rewind hotkey (~), works only in Taseditor
This commit is contained in:
parent
4ece1d273e
commit
11a99a56e3
|
@ -1531,7 +1531,7 @@ int FCEUD_TestCommandState(int c)
|
||||||
// else
|
// else
|
||||||
// keys_nr=GetKeyboard_nr();
|
// keys_nr=GetKeyboard_nr();
|
||||||
}
|
}
|
||||||
else if(c != EMUCMD_SPEED_TURBO) // TODO: this should be made more general by detecting if the command has an "off" function, but right now Turbo is the only command that has it
|
else if(c != EMUCMD_SPEED_TURBO && c != EMUCMD_TASEDIT_REWIND) // TODO: this should be made more general by detecting if the command has an "off" function
|
||||||
{
|
{
|
||||||
keys=GetKeyboard_jd();
|
keys=GetKeyboard_jd();
|
||||||
keys_nr=GetKeyboard_nr();
|
keys_nr=GetKeyboard_nr();
|
||||||
|
|
|
@ -73,6 +73,7 @@ static struct
|
||||||
{ EMUCMD_RELOADROM, SCAN_R | CMD_KEY_CTRL | CMD_KEY_SHIFT , },
|
{ EMUCMD_RELOADROM, SCAN_R | CMD_KEY_CTRL | CMD_KEY_SHIFT , },
|
||||||
{ EMUCMD_MISC_UNDOREDOSAVESTATE, SCAN_Z | CMD_KEY_CTRL, },
|
{ EMUCMD_MISC_UNDOREDOSAVESTATE, SCAN_Z | CMD_KEY_CTRL, },
|
||||||
{ EMUCMD_MISC_TOGGLEFULLSCREEN, SCAN_ENTER | CMD_KEY_ALT, },
|
{ EMUCMD_MISC_TOGGLEFULLSCREEN, SCAN_ENTER | CMD_KEY_ALT, },
|
||||||
|
{ EMUCMD_TASEDIT_REWIND, SCAN_GRAVE, },
|
||||||
};
|
};
|
||||||
|
|
||||||
#define NUM_DEFAULT_MAPPINGS (sizeof(DefaultCommandMapping)/sizeof(DefaultCommandMapping[0]))
|
#define NUM_DEFAULT_MAPPINGS (sizeof(DefaultCommandMapping)/sizeof(DefaultCommandMapping[0]))
|
||||||
|
|
|
@ -24,6 +24,7 @@ using namespace std;
|
||||||
int old_multitrack_recording_joypad, multitrack_recording_joypad;
|
int old_multitrack_recording_joypad, multitrack_recording_joypad;
|
||||||
bool old_movie_readonly;
|
bool old_movie_readonly;
|
||||||
bool TASEdit_focus = false;
|
bool TASEdit_focus = false;
|
||||||
|
bool Tasedit_rewind_now = false;
|
||||||
int listItems; // number of items per list page
|
int listItems; // number of items per list page
|
||||||
// saved FCEU config
|
// saved FCEU config
|
||||||
int saved_eoptions;
|
int saved_eoptions;
|
||||||
|
@ -417,7 +418,7 @@ void SingleClick(LPNMITEMACTIVATE info)
|
||||||
{
|
{
|
||||||
// click on the "icons" column - jump to the frame
|
// click on the "icons" column - jump to the frame
|
||||||
ClearSelection();
|
ClearSelection();
|
||||||
playback.JumpToFrame(row_index);
|
playback.jump(row_index);
|
||||||
RedrawList();
|
RedrawList();
|
||||||
} else if(column_index == COLUMN_FRAMENUM || column_index == COLUMN_FRAMENUM2)
|
} else if(column_index == COLUMN_FRAMENUM || column_index == COLUMN_FRAMENUM2)
|
||||||
{
|
{
|
||||||
|
@ -450,7 +451,7 @@ void DoubleClick(LPNMITEMACTIVATE info)
|
||||||
{
|
{
|
||||||
// double click sends playback to the frame
|
// double click sends playback to the frame
|
||||||
ClearSelection();
|
ClearSelection();
|
||||||
playback.JumpToFrame(row_index);
|
playback.jump(row_index);
|
||||||
RedrawList();
|
RedrawList();
|
||||||
} else if(column_index >= COLUMN_JOYPAD1_A && column_index <= COLUMN_JOYPAD4_R)
|
} else if(column_index >= COLUMN_JOYPAD1_A && column_index <= COLUMN_JOYPAD4_R)
|
||||||
{
|
{
|
||||||
|
@ -1034,9 +1035,7 @@ void OpenProject()
|
||||||
tempstr.append(".tas");
|
tempstr.append(".tas");
|
||||||
splitpath(tempstr.c_str(), drv, dir, name, ext); //Split the path...
|
splitpath(tempstr.c_str(), drv, dir, name, ext); //Split the path...
|
||||||
project.SetProjectName(name);
|
project.SetProjectName(name);
|
||||||
std::string filename = name; //Get the filename
|
project.SetProjectFile(tempstr);
|
||||||
filename.append(ext); //Shove the extension back onto it...
|
|
||||||
project.SetProjectFile(filename); //And update the project's filename.
|
|
||||||
//Set the fm2 name
|
//Set the fm2 name
|
||||||
std::string thisfm2name = name;
|
std::string thisfm2name = name;
|
||||||
thisfm2name.append(".fm2");
|
thisfm2name.append(".fm2");
|
||||||
|
@ -1096,9 +1095,7 @@ bool SaveProjectAs()
|
||||||
|
|
||||||
splitpath(tempstr.c_str(), drv, dir, name, ext); //Split it up...
|
splitpath(tempstr.c_str(), drv, dir, name, ext); //Split it up...
|
||||||
project.SetProjectName(name);
|
project.SetProjectName(name);
|
||||||
std::string filename = name; //Grab the name...
|
project.SetProjectFile(tempstr);
|
||||||
filename.append(ext); //Stick extension back on...
|
|
||||||
project.SetProjectFile(filename); //And update the project's filename.
|
|
||||||
std::string thisfm2name = name;
|
std::string thisfm2name = name;
|
||||||
thisfm2name.append(".fm2"); //Setup the fm2 name
|
thisfm2name.append(".fm2"); //Setup the fm2 name
|
||||||
project.SetFM2Name(thisfm2name); //Set the project's fm2 name
|
project.SetFM2Name(thisfm2name); //Set the project's fm2 name
|
||||||
|
@ -1425,17 +1422,13 @@ BOOL CALLBACK WndprocTasEdit(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
|
||||||
if (selectionFrames.size()) ClearFrames();
|
if (selectionFrames.size()) ClearFrames();
|
||||||
break;
|
break;
|
||||||
case TASEDIT_REWIND_FULL:
|
case TASEDIT_REWIND_FULL:
|
||||||
//rewinds to beginning of greenzone
|
playback.RewindFull();
|
||||||
playback.JumpToFrame(greenzone.FindBeginningOfGreenZone());
|
|
||||||
FollowPlayback();
|
|
||||||
break;
|
break;
|
||||||
case TASEDIT_PLAYSTOP:
|
case TASEDIT_PLAYSTOP:
|
||||||
playback.ToggleEmulationPause();
|
playback.ToggleEmulationPause();
|
||||||
break;
|
break;
|
||||||
case TASEDIT_FORWARD_FULL:
|
case TASEDIT_FORWARD_FULL:
|
||||||
//moves to the end of greenzone
|
playback.ForwardFull();
|
||||||
playback.JumpToFrame(greenzone.greenZoneCount-1);
|
|
||||||
FollowPlayback();
|
|
||||||
break;
|
break;
|
||||||
case ACCEL_CTRL_F:
|
case ACCEL_CTRL_F:
|
||||||
case CHECK_FOLLOW_CURSOR:
|
case CHECK_FOLLOW_CURSOR:
|
||||||
|
@ -1741,6 +1734,7 @@ void EnterTasEdit()
|
||||||
project.init();
|
project.init();
|
||||||
history.init(TasEdit_undo_levels);
|
history.init(TasEdit_undo_levels);
|
||||||
SetFocus(hwndHistoryList);
|
SetFocus(hwndHistoryList);
|
||||||
|
greenzone.TryDumpIncremental(lagFlag != 0);
|
||||||
FCEU_DispMessage("Tasedit engaged",0);
|
FCEU_DispMessage("Tasedit engaged",0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,8 +22,9 @@ GREENZONE::GREENZONE()
|
||||||
|
|
||||||
void GREENZONE::init()
|
void GREENZONE::init()
|
||||||
{
|
{
|
||||||
|
|
||||||
clearGreenzone();
|
clearGreenzone();
|
||||||
|
|
||||||
|
currMovieData.frames_flags.resize(currMovieData.records.size());
|
||||||
reset();
|
reset();
|
||||||
}
|
}
|
||||||
void GREENZONE::reset()
|
void GREENZONE::reset()
|
||||||
|
@ -42,7 +43,15 @@ void GREENZONE::TryDumpIncremental(bool lagFlag)
|
||||||
if((int)currMovieData.records.size() <= currFrameCounter)
|
if((int)currMovieData.records.size() <= currFrameCounter)
|
||||||
currMovieData.insertEmpty(-1, 1 + currFrameCounter - (int)currMovieData.records.size());
|
currMovieData.insertEmpty(-1, 1 + currFrameCounter - (int)currMovieData.records.size());
|
||||||
|
|
||||||
// if frame chanegd - log savestate
|
// update greenzone upper limit
|
||||||
|
if (greenZoneCount <= currFrameCounter)
|
||||||
|
greenZoneCount = currFrameCounter+1;
|
||||||
|
if ((int)savestates.size() < greenZoneCount)
|
||||||
|
savestates.resize(greenZoneCount);
|
||||||
|
if ((int)currMovieData.frames_flags.size() < greenZoneCount)
|
||||||
|
currMovieData.frames_flags.resize(greenZoneCount);
|
||||||
|
|
||||||
|
// if frame changed - log savestate
|
||||||
storeTasSavestate(currFrameCounter);
|
storeTasSavestate(currFrameCounter);
|
||||||
// also log frame_flags
|
// also log frame_flags
|
||||||
if (currFrameCounter > 0)
|
if (currFrameCounter > 0)
|
||||||
|
@ -53,9 +62,8 @@ void GREENZONE::TryDumpIncremental(bool lagFlag)
|
||||||
else
|
else
|
||||||
currMovieData.frames_flags[currFrameCounter-1] &= ~LAG_FLAG_BIT;
|
currMovieData.frames_flags[currFrameCounter-1] &= ~LAG_FLAG_BIT;
|
||||||
}
|
}
|
||||||
// update greenzone upper limit
|
|
||||||
if (greenZoneCount <= currFrameCounter)
|
|
||||||
greenZoneCount = currFrameCounter+1;
|
|
||||||
|
|
||||||
ClearGreenzoneTail();
|
ClearGreenzoneTail();
|
||||||
}
|
}
|
||||||
|
@ -109,8 +117,9 @@ void GREENZONE::clearGreenzone()
|
||||||
{
|
{
|
||||||
ClearSavestate(i);
|
ClearSavestate(i);
|
||||||
}
|
}
|
||||||
greenZoneCount = 1;
|
savestates.resize(0);
|
||||||
currMovieData.frames_flags.resize(1);
|
greenZoneCount = 0;
|
||||||
|
currMovieData.frames_flags.resize(0);
|
||||||
// reset lua_colorings
|
// reset lua_colorings
|
||||||
// reset monitorings
|
// reset monitorings
|
||||||
|
|
||||||
|
@ -226,7 +235,7 @@ void GREENZONE::InvalidateGreenZone(int after)
|
||||||
if (TASEdit_restore_position)
|
if (TASEdit_restore_position)
|
||||||
playback.restorePosition();
|
playback.restorePosition();
|
||||||
else
|
else
|
||||||
playback.JumpToFrame(greenZoneCount-1);
|
playback.jump(greenZoneCount-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// redraw list even if greenzone didn't change
|
// redraw list even if greenzone didn't change
|
||||||
|
|
|
@ -5,10 +5,15 @@
|
||||||
#include "taseditproj.h"
|
#include "taseditproj.h"
|
||||||
#include "../tasedit.h"
|
#include "../tasedit.h"
|
||||||
|
|
||||||
|
#ifdef _S9XLUA_H
|
||||||
|
extern void ForceExecuteLuaFrameFunctions();
|
||||||
|
#endif
|
||||||
|
|
||||||
extern HWND hwndProgressbar, hwndList, hwndRewind, hwndForward;
|
extern HWND hwndProgressbar, hwndList, hwndRewind, hwndForward;
|
||||||
extern void FCEU_printf(char *format, ...);
|
extern void FCEU_printf(char *format, ...);
|
||||||
extern bool turbo;
|
extern bool turbo;
|
||||||
extern GREENZONE greenzone;
|
extern GREENZONE greenzone;
|
||||||
|
extern bool Tasedit_rewind_now;
|
||||||
|
|
||||||
PLAYBACK::PLAYBACK()
|
PLAYBACK::PLAYBACK()
|
||||||
{
|
{
|
||||||
|
@ -59,9 +64,12 @@ void PLAYBACK::update()
|
||||||
old_pauseframe = pauseframe;
|
old_pauseframe = pauseframe;
|
||||||
old_show_pauseframe = show_pauseframe;
|
old_show_pauseframe = show_pauseframe;
|
||||||
if (pauseframe)
|
if (pauseframe)
|
||||||
show_pauseframe = (int)(clock() / PAUSEFRAME_BLINKING_PERIOD) & 1;
|
{
|
||||||
|
if (emu_paused)
|
||||||
|
show_pauseframe = (int)(clock() / PAUSEFRAME_BLINKING_PERIOD_PAUSED) & 1;
|
||||||
else
|
else
|
||||||
show_pauseframe = false;
|
show_pauseframe = (int)(clock() / PAUSEFRAME_BLINKING_PERIOD_SEEKING) & 1;
|
||||||
|
} else show_pauseframe = false;
|
||||||
if (old_show_pauseframe != show_pauseframe) RedrawRow(pauseframe-1);
|
if (old_show_pauseframe != show_pauseframe) RedrawRow(pauseframe-1);
|
||||||
|
|
||||||
//update the playback cursor
|
//update the playback cursor
|
||||||
|
@ -79,7 +87,7 @@ void PLAYBACK::update()
|
||||||
if(emu_paused)
|
if(emu_paused)
|
||||||
{
|
{
|
||||||
old_rewind_button_state = rewind_button_state;
|
old_rewind_button_state = rewind_button_state;
|
||||||
rewind_button_state = (Button_GetState(hwndRewind) & BST_PUSHED) != 0;
|
rewind_button_state = ((Button_GetState(hwndRewind) & BST_PUSHED) != 0 || Tasedit_rewind_now);
|
||||||
if (rewind_button_state)
|
if (rewind_button_state)
|
||||||
{
|
{
|
||||||
if (!old_rewind_button_state)
|
if (!old_rewind_button_state)
|
||||||
|
@ -93,7 +101,7 @@ void PLAYBACK::update()
|
||||||
}
|
}
|
||||||
old_forward_button_state = forward_button_state;
|
old_forward_button_state = forward_button_state;
|
||||||
forward_button_state = (Button_GetState(hwndForward) & BST_PUSHED) != 0;
|
forward_button_state = (Button_GetState(hwndForward) & BST_PUSHED) != 0;
|
||||||
if (forward_button_state)
|
if (forward_button_state && !rewind_button_state)
|
||||||
{
|
{
|
||||||
if (!old_forward_button_state)
|
if (!old_forward_button_state)
|
||||||
{
|
{
|
||||||
|
@ -156,16 +164,28 @@ void PLAYBACK::SeekingStop()
|
||||||
|
|
||||||
void PLAYBACK::RewindFrame()
|
void PLAYBACK::RewindFrame()
|
||||||
{
|
{
|
||||||
if (currFrameCounter > 0) JumpToFrame(currFrameCounter-1);
|
if (currFrameCounter > 0) jump(currFrameCounter-1);
|
||||||
turbo = false;
|
turbo = false;
|
||||||
FollowPlayback();
|
FollowPlayback();
|
||||||
}
|
}
|
||||||
void PLAYBACK::ForwardFrame()
|
void PLAYBACK::ForwardFrame()
|
||||||
{
|
{
|
||||||
JumpToFrame(currFrameCounter+1);
|
jump(currFrameCounter+1);
|
||||||
turbo = false;
|
turbo = false;
|
||||||
FollowPlayback();
|
FollowPlayback();
|
||||||
}
|
}
|
||||||
|
void PLAYBACK::RewindFull()
|
||||||
|
{
|
||||||
|
// rewind to the beginning of greenzone
|
||||||
|
jump(greenzone.FindBeginningOfGreenZone());
|
||||||
|
FollowPlayback();
|
||||||
|
}
|
||||||
|
void PLAYBACK::ForwardFull()
|
||||||
|
{
|
||||||
|
// move to the end of greenzone
|
||||||
|
jump(greenzone.greenZoneCount-1);
|
||||||
|
FollowPlayback();
|
||||||
|
}
|
||||||
|
|
||||||
void PLAYBACK::StartFromZero()
|
void PLAYBACK::StartFromZero()
|
||||||
{
|
{
|
||||||
|
@ -174,6 +194,19 @@ void PLAYBACK::StartFromZero()
|
||||||
greenzone.TryDumpIncremental();
|
greenzone.TryDumpIncremental();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PLAYBACK::jump(int frame)
|
||||||
|
{
|
||||||
|
if (JumpToFrame(frame))
|
||||||
|
ForceExecuteLuaFrameFunctions();
|
||||||
|
}
|
||||||
|
void PLAYBACK::restorePosition()
|
||||||
|
{
|
||||||
|
if (pauseframe)
|
||||||
|
jump(pauseframe-1);
|
||||||
|
else
|
||||||
|
jump(currFrameCounter);
|
||||||
|
}
|
||||||
|
|
||||||
bool PLAYBACK::JumpToFrame(int index)
|
bool PLAYBACK::JumpToFrame(int index)
|
||||||
{
|
{
|
||||||
// Returns true if a jump to the frame is made, false if started seeking or if nothing's done
|
// Returns true if a jump to the frame is made, false if started seeking or if nothing's done
|
||||||
|
@ -211,14 +244,6 @@ bool PLAYBACK::JumpToFrame(int index)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PLAYBACK::restorePosition()
|
|
||||||
{
|
|
||||||
if (pauseframe)
|
|
||||||
JumpToFrame(pauseframe-1);
|
|
||||||
else
|
|
||||||
JumpToFrame(currFrameCounter);
|
|
||||||
}
|
|
||||||
|
|
||||||
int PLAYBACK::GetPauseFrame()
|
int PLAYBACK::GetPauseFrame()
|
||||||
{
|
{
|
||||||
if (show_pauseframe)
|
if (show_pauseframe)
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
//Specification file for Playback class
|
//Specification file for Playback class
|
||||||
|
|
||||||
#define PAUSEFRAME_BLINKING_PERIOD 100
|
#define PAUSEFRAME_BLINKING_PERIOD_SEEKING 100
|
||||||
|
#define PAUSEFRAME_BLINKING_PERIOD_PAUSED 250
|
||||||
|
|
||||||
#define HOLD_REPEAT_DELAY 250 // in milliseconds
|
#define HOLD_REPEAT_DELAY 250 // in milliseconds
|
||||||
|
|
||||||
|
|
||||||
|
@ -12,6 +14,9 @@ public:
|
||||||
void reset();
|
void reset();
|
||||||
void update();
|
void update();
|
||||||
|
|
||||||
|
void jump(int frame);
|
||||||
|
void restorePosition();
|
||||||
|
|
||||||
void updateProgressbar();
|
void updateProgressbar();
|
||||||
|
|
||||||
void SeekingStart(int finish_frame);
|
void SeekingStart(int finish_frame);
|
||||||
|
@ -22,9 +27,9 @@ public:
|
||||||
|
|
||||||
void RewindFrame();
|
void RewindFrame();
|
||||||
void ForwardFrame();
|
void ForwardFrame();
|
||||||
|
void RewindFull();
|
||||||
|
void ForwardFull();
|
||||||
|
|
||||||
bool JumpToFrame(int index);
|
|
||||||
void restorePosition();
|
|
||||||
|
|
||||||
void StartFromZero();
|
void StartFromZero();
|
||||||
|
|
||||||
|
@ -34,6 +39,7 @@ public:
|
||||||
int pauseframe;
|
int pauseframe;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
bool JumpToFrame(int index);
|
||||||
|
|
||||||
int lastCursor; // for currentCursor we use external variable currFrameCounter
|
int lastCursor; // for currentCursor we use external variable currFrameCounter
|
||||||
bool old_emu_paused, emu_paused;
|
bool old_emu_paused, emu_paused;
|
||||||
|
|
|
@ -721,7 +721,7 @@ void FCEUI_Emulate(uint8 **pXBuf, int32 **SoundBuf, int32 *SoundBufSize, int ski
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
if(FCEUMOV_Mode(MOVIEMODE_TASEDIT))
|
if(FCEUMOV_Mode(MOVIEMODE_TASEDIT))
|
||||||
greenzone.TryDumpIncremental(lagFlag);
|
greenzone.TryDumpIncremental((bool)lagFlag);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,6 +51,8 @@
|
||||||
#include "drivers/win/memview.h"
|
#include "drivers/win/memview.h"
|
||||||
#include "drivers/win/window.h"
|
#include "drivers/win/window.h"
|
||||||
#include "drivers/win/ntview.h"
|
#include "drivers/win/ntview.h"
|
||||||
|
|
||||||
|
extern bool Tasedit_rewind_now;
|
||||||
#endif // WIN32
|
#endif // WIN32
|
||||||
|
|
||||||
//it is easier to declare these input drivers extern here than include a bunch of files
|
//it is easier to declare these input drivers extern here than include a bunch of files
|
||||||
|
@ -645,6 +647,8 @@ static void MovieSubtitleToggle(void);
|
||||||
static void UndoRedoSavestate(void);
|
static void UndoRedoSavestate(void);
|
||||||
static void FCEUI_DoExit(void);
|
static void FCEUI_DoExit(void);
|
||||||
static void ToggleFullscreen(void);
|
static void ToggleFullscreen(void);
|
||||||
|
static void TaseditRewindOn(void);
|
||||||
|
static void TaseditRewindOff(void);
|
||||||
|
|
||||||
struct EMUCMDTABLE FCEUI_CommandTable[]=
|
struct EMUCMDTABLE FCEUI_CommandTable[]=
|
||||||
{
|
{
|
||||||
|
@ -768,6 +772,7 @@ struct EMUCMDTABLE FCEUI_CommandTable[]=
|
||||||
{ EMUCMD_TOOL_RAMSEARCHGTE, EMUCMDTYPE_TOOL, RamSearchOpGTE, 0, 0, "Ram Search - Greater Than or Equal", 0},
|
{ EMUCMD_TOOL_RAMSEARCHGTE, EMUCMDTYPE_TOOL, RamSearchOpGTE, 0, 0, "Ram Search - Greater Than or Equal", 0},
|
||||||
{ EMUCMD_TOOL_RAMSEARCHEQ, EMUCMDTYPE_TOOL, RamSearchOpEQ, 0, 0, "Ram Search - Equal", 0},
|
{ EMUCMD_TOOL_RAMSEARCHEQ, EMUCMDTYPE_TOOL, RamSearchOpEQ, 0, 0, "Ram Search - Equal", 0},
|
||||||
{ EMUCMD_TOOL_RAMSEARCHNE, EMUCMDTYPE_TOOL, RamSearchOpNE, 0, 0, "Ram Search - Not Equal", 0},
|
{ EMUCMD_TOOL_RAMSEARCHNE, EMUCMDTYPE_TOOL, RamSearchOpNE, 0, 0, "Ram Search - Not Equal", 0},
|
||||||
|
{ EMUCMD_TASEDIT_REWIND, EMUCMDTYPE_TOOL, TaseditRewindOn, TaseditRewindOff, 0, "Rewind Frame (Tasedit-only)", EMUCMDFLAG_TASEDIT},
|
||||||
};
|
};
|
||||||
|
|
||||||
#define NUM_EMU_CMDS (sizeof(FCEUI_CommandTable)/sizeof(FCEUI_CommandTable[0]))
|
#define NUM_EMU_CMDS (sizeof(FCEUI_CommandTable)/sizeof(FCEUI_CommandTable[0]))
|
||||||
|
@ -1104,3 +1109,18 @@ static void ToggleFullscreen(void)
|
||||||
changerecursive=0;
|
changerecursive=0;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void TaseditRewindOn(void)
|
||||||
|
{
|
||||||
|
#ifdef WIN32
|
||||||
|
Tasedit_rewind_now = true;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
static void TaseditRewindOff(void)
|
||||||
|
{
|
||||||
|
#ifdef WIN32
|
||||||
|
Tasedit_rewind_now = false;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -228,9 +228,11 @@ enum EMUCMD
|
||||||
EMUCMD_TOOL_RAMSEARCHGTE,
|
EMUCMD_TOOL_RAMSEARCHGTE,
|
||||||
EMUCMD_TOOL_RAMSEARCHEQ,
|
EMUCMD_TOOL_RAMSEARCHEQ,
|
||||||
EMUCMD_TOOL_RAMSEARCHNE,
|
EMUCMD_TOOL_RAMSEARCHNE,
|
||||||
|
EMUCMD_TOOL_OPENNTVIEW,
|
||||||
//-----------------------------
|
//-----------------------------
|
||||||
//keep adding these in order of newness or else the hotkey binding configs will get messed up...
|
//keep adding these in order of newness or else the hotkey binding configs will get messed up...
|
||||||
EMUCMD_TOOL_OPENNTVIEW,
|
EMUCMD_TASEDIT_REWIND,
|
||||||
|
|
||||||
EMUCMD_MAX
|
EMUCMD_MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1869,6 +1869,13 @@ void CallRegisteredLuaFunctions(LuaCallID calltype)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ForceExecuteLuaFrameFunctions()
|
||||||
|
{
|
||||||
|
FCEU_LuaFrameBoundary();
|
||||||
|
CallRegisteredLuaFunctions(LUACALL_BEFOREEMULATION);
|
||||||
|
CallRegisteredLuaFunctions(LUACALL_AFTEREMULATION);
|
||||||
|
}
|
||||||
|
|
||||||
// Not for the signed versions though
|
// Not for the signed versions though
|
||||||
static int memory_readbytesigned(lua_State *L) {
|
static int memory_readbytesigned(lua_State *L) {
|
||||||
signed char c = (signed char) FCEU_CheatGetByte(luaL_checkinteger(L,1));
|
signed char c = (signed char) FCEU_CheatGetByte(luaL_checkinteger(L,1));
|
||||||
|
|
|
@ -178,7 +178,6 @@ public:
|
||||||
std::string romFilename;
|
std::string romFilename;
|
||||||
std::vector<uint8> savestate;
|
std::vector<uint8> savestate;
|
||||||
std::vector<MovieRecord> records;
|
std::vector<MovieRecord> records;
|
||||||
//std::vector<std::vector<uint8> > savestates;
|
|
||||||
std::vector<uint8> frames_flags;
|
std::vector<uint8> frames_flags;
|
||||||
std::vector<std::wstring> comments;
|
std::vector<std::wstring> comments;
|
||||||
std::vector<std::string> subtitles;
|
std::vector<std::string> subtitles;
|
||||||
|
|
Loading…
Reference in New Issue