* added NES->Emulation Speed->Set Custom Speed
* added NES->Emulation Speed->Set FrameAdvance Delay * added NES->Emulation Speed->Set custom speed for FrameAdvance * Debugger: fixed mouse wheel scrolling
This commit is contained in:
parent
880c9deb62
commit
b8c1d1e29b
|
@ -1,10 +1,14 @@
|
|||
13-Dec-2012 - AnS - win32: added Emulation Speed->Set custom speed for FrameAdvance
|
||||
13-Dec-2012 - AnS - win32: added NES->Emulation Speed->Set FrameAdvance Delay
|
||||
13-Dec-2012 - AnS - win32: added NES->Emulation Speed->Set Custom Speed
|
||||
12-Dec-2012 - CaH4e3 - finish with mapper to boards conversion
|
||||
07-Dec-2012 - CaH4e3 - Tracer: fixed RAM-located code logging when CDLogger options are enabled
|
||||
05-Dec-2012 - AnS - fixed zapper and mouse positioning in fullscreen and bestfit mode
|
||||
04-Dec-2012 - AnS - speed up HUD text drawing
|
||||
04-Dec-2012 - AnS - Taseditor: speed up consecutive Recordings (when combining)
|
||||
03-Dec-2012 - AnS - Taseditor: fixed accelerators when editing Notes
|
||||
03-Dec-2012 - AnS - fixed "X" button in the "Enter New Input" dialog (Hotkey Mapping); changed "Cancel" button to "OK"
|
||||
03-Dec-2012 - CaH4e3 - fixed mapper 99
|
||||
30-Nov-2012 - CaH4e3 - more mappers to boards conversion
|
||||
29-Nov-2012 - zeromus - fix "you ling xing dong" by assigning to mapper 192
|
||||
|
||||
---r2768 - FCEUX 2.2.0 Released---
|
||||
|
|
|
@ -492,7 +492,7 @@ void BreakHit(int bp_num, bool force = false)
|
|||
}
|
||||
}
|
||||
|
||||
FCEUI_SetEmulationPaused(1); //mbg merge 7/19/06 changed to use EmulationPaused()
|
||||
FCEUI_SetEmulationPaused(EMULATIONPAUSED_PAUSED); //mbg merge 7/19/06 changed to use EmulationPaused()
|
||||
|
||||
#ifdef WIN32
|
||||
FCEUD_DebugBreakpoint(bp_num);
|
||||
|
|
|
@ -98,7 +98,7 @@ void IncreaseEmulationSpeed(void)
|
|||
|
||||
RefreshThrottleFPS();
|
||||
|
||||
FCEU_DispMessage("emulation speed %.1f%%",0, g_fpsScale*100.0);
|
||||
FCEU_DispMessage("Emulation speed %.1f%%",0, g_fpsScale*100.0);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -112,7 +112,7 @@ void DecreaseEmulationSpeed(void)
|
|||
|
||||
RefreshThrottleFPS();
|
||||
|
||||
FCEU_DispMessage("emulation speed %.1f%%",0, g_fpsScale*100.0);
|
||||
FCEU_DispMessage("Emulation speed %.1f%%",0, g_fpsScale*100.0);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -146,5 +146,5 @@ FCEUD_SetEmulationSpeed(int cmd)
|
|||
|
||||
RefreshThrottleFPS();
|
||||
|
||||
FCEU_DispMessage("emulation speed %.1f%%",0, g_fpsScale*100.0);
|
||||
FCEU_DispMessage("Emulation speed %.1f%%",0, g_fpsScale*100.0);
|
||||
}
|
||||
|
|
|
@ -46,6 +46,7 @@ extern CFGSTRUCT NetplayConfig[];
|
|||
extern CFGSTRUCT InputConfig[];
|
||||
extern CFGSTRUCT HotkeyConfig[];
|
||||
extern int autoHoldKey, autoHoldClearKey;
|
||||
extern int frameAdvance_Delay;
|
||||
extern int EnableAutosave, AutosaveQty, AutosaveFrequency;
|
||||
extern int AFon, AFoff, AutoFireOffset;
|
||||
extern int DesynchAutoFire;
|
||||
|
@ -71,6 +72,7 @@ extern bool Show_FPS;
|
|||
extern bool oldInputDisplay;
|
||||
extern bool fullSaveStateLoads;
|
||||
extern int frameSkipAmt;
|
||||
extern int32 fps_scale_frameadvance;
|
||||
|
||||
extern TASEDITOR_CONFIG taseditor_config;
|
||||
extern char* recent_projects[];
|
||||
|
@ -251,6 +253,7 @@ static CFGSTRUCT fceuconfig[] = {
|
|||
AC(MemWatchLoadFileOnStart),
|
||||
AC(MemWCollapsed),
|
||||
AC(BindToMain),
|
||||
AC(frameAdvance_Delay),
|
||||
AC(EnableAutosave),
|
||||
AC(AutosaveQty),
|
||||
AC(AutosaveFrequency),
|
||||
|
@ -261,6 +264,7 @@ static CFGSTRUCT fceuconfig[] = {
|
|||
AC(debuggerDisplayROMoffsets),
|
||||
AC(fullSaveStateLoads),
|
||||
AC(frameSkipAmt),
|
||||
AC(fps_scale_frameadvance),
|
||||
|
||||
//window positions
|
||||
AC(ChtPosX),
|
||||
|
|
|
@ -1350,6 +1350,11 @@ BOOL CALLBACK IDC_DEBUGGER_DISASSEMBLY_WndProc(HWND hwndDlg, UINT uMsg, WPARAM w
|
|||
}
|
||||
break;
|
||||
}
|
||||
case WM_MOUSEWHEEL:
|
||||
{
|
||||
SendMessage(GetDlgItem(hDebug,IDC_DEBUGGER_DISASSEMBLY_VSCR), uMsg, wParam, lParam);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return CallWindowProc(IDC_DEBUGGER_DISASSEMBLY_oldWndProc, hwndDlg, uMsg, wParam, lParam);
|
||||
}
|
||||
|
|
|
@ -896,13 +896,13 @@ void win_debuggerLoop()
|
|||
_updateWindow();
|
||||
// HACK: break when Frame Advance is pressed
|
||||
extern bool frameAdvanceRequested;
|
||||
extern int frameAdvanceDelay;
|
||||
extern int frameAdvance_Delay_count, frameAdvance_Delay;
|
||||
if (frameAdvanceRequested)
|
||||
{
|
||||
if (frameAdvanceDelay==0 || frameAdvanceDelay >= 10)
|
||||
FCEUI_SetEmulationPaused(2);
|
||||
if (frameAdvanceDelay < 10)
|
||||
frameAdvanceDelay++;
|
||||
if (frameAdvance_Delay_count == 0 || frameAdvance_Delay_count >= frameAdvance_Delay)
|
||||
FCEUI_SetEmulationPaused(EMULATIONPAUSED_FA);
|
||||
if (frameAdvance_Delay_count < frameAdvance_Delay)
|
||||
frameAdvance_Delay_count++;
|
||||
}
|
||||
}
|
||||
int zzz=9;
|
||||
|
|
|
@ -103,6 +103,10 @@ BEGIN
|
|||
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"
|
||||
|
|
|
@ -240,7 +240,6 @@
|
|||
#define IDC_NTVIEW_REFRESH_TRACKBAR 201
|
||||
#define IDC_ASSEMBLER_APPLY 201
|
||||
#define IDI_ICON4 201
|
||||
#define BTN_CLEAR2 201
|
||||
#define BTN_OK 201
|
||||
#define MENU_EJECT_DISK 202
|
||||
#define TXT_FAM 202
|
||||
|
@ -1146,6 +1145,10 @@
|
|||
#define ID_SELECTED_UNGREENZONE 40571
|
||||
#define ID_SELECTED_F 40572
|
||||
#define ID_CONFIG_ENABLEGREENZONING 40573
|
||||
#define ID_EMULATIONSPEED_SETFRAMEADVANCEDELAY 40574
|
||||
#define ID_Menu40575 40575
|
||||
#define ID_EMULATIONSPEED_SETCUSTOMSPEEDFORFRAMEADVANCE 40576
|
||||
#define ID_EMULATIONSPEED_CUSTOMSPEED 40577
|
||||
#define IDC_DEBUGGER_ICONTRAY 55535
|
||||
#define MW_ValueLabel2 65423
|
||||
#define MW_ValueLabel1 65426
|
||||
|
@ -1156,7 +1159,7 @@
|
|||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 289
|
||||
#define _APS_NEXT_COMMAND_VALUE 40574
|
||||
#define _APS_NEXT_COMMAND_VALUE 40578
|
||||
#define _APS_NEXT_CONTROL_VALUE 1282
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
|
|
|
@ -22,6 +22,7 @@ Playback - Player of emulation states
|
|||
|
||||
#include "taseditor_project.h"
|
||||
#include "../taseditor.h"
|
||||
#include "../../../fceu.h"
|
||||
|
||||
#ifdef _S9XLUA_H
|
||||
extern void ForceExecuteLuaFrameFunctions();
|
||||
|
@ -266,7 +267,7 @@ void PLAYBACK::ToggleEmulationPause()
|
|||
}
|
||||
void PLAYBACK::PauseEmulation()
|
||||
{
|
||||
FCEUI_SetEmulationPaused(1);
|
||||
FCEUI_SetEmulationPaused(EMULATIONPAUSED_PAUSED);
|
||||
}
|
||||
void PLAYBACK::UnpauseEmulation()
|
||||
{
|
||||
|
|
|
@ -25,10 +25,12 @@
|
|||
|
||||
static uint64 tmethod,tfreq;
|
||||
static uint64 desiredfps;
|
||||
|
||||
static int32 fps_scale_table[]=
|
||||
{ 3, 3, 4, 8, 16, 32, 64, 128, 192, 256, 384, 512, 768, 1024, 2048, 4096, 8192, 16384, 16384};
|
||||
int32 fps_scale = 256;
|
||||
int32 fps_scale_unpaused = 256;
|
||||
int32 fps_scale_frameadvance = 0;
|
||||
|
||||
static int32 fps_scale_table[] = { 3, 3, 4, 8, 16, 32, 64, 128, 192, 256, 384, 512, 768, 1024, 2048, 4096, 8192, 16384, 16384};
|
||||
#define fps_table_size (sizeof(fps_scale_table) / sizeof(fps_scale_table[0]))
|
||||
|
||||
void RefreshThrottleFPS(void)
|
||||
{
|
||||
|
@ -118,35 +120,32 @@ uint64 FCEUD_GetTimeFreq(void)
|
|||
static void IncreaseEmulationSpeed(void)
|
||||
{
|
||||
int i;
|
||||
for(i=1; fps_scale_table[i]<fps_scale; i++)
|
||||
for(i = 1; fps_scale_table[i] < fps_scale_unpaused; i++)
|
||||
;
|
||||
fps_scale = fps_scale_table[i+1];
|
||||
fps_scale = fps_scale_unpaused = fps_scale_table[i+1];
|
||||
}
|
||||
|
||||
static void DecreaseEmulationSpeed(void)
|
||||
{
|
||||
int i;
|
||||
for(i=1; fps_scale_table[i]<fps_scale; i++)
|
||||
for(i = 1; fps_scale_table[i] < fps_scale_unpaused; i++)
|
||||
;
|
||||
fps_scale = fps_scale_table[i-1];
|
||||
fps_scale = fps_scale_unpaused = fps_scale_table[i-1];
|
||||
}
|
||||
|
||||
#define fps_table_size (sizeof(fps_scale_table)/sizeof(fps_scale_table[0]))
|
||||
|
||||
void FCEUD_SetEmulationSpeed(int cmd)
|
||||
{
|
||||
switch(cmd)
|
||||
{
|
||||
case EMUSPEED_SLOWEST: fps_scale=fps_scale_table[0]; break;
|
||||
case EMUSPEED_SLOWEST: fps_scale = fps_scale_unpaused = fps_scale_table[0]; break;
|
||||
case EMUSPEED_SLOWER: DecreaseEmulationSpeed(); break;
|
||||
case EMUSPEED_NORMAL: fps_scale=256; break;
|
||||
case EMUSPEED_NORMAL: fps_scale = fps_scale_unpaused = 256; break;
|
||||
case EMUSPEED_FASTER: IncreaseEmulationSpeed(); break;
|
||||
case EMUSPEED_FASTEST: fps_scale=fps_scale_table[fps_table_size-1]; break;
|
||||
case EMUSPEED_FASTEST: fps_scale = fps_scale_unpaused = fps_scale_table[fps_table_size - 1]; break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
RefreshThrottleFPS();
|
||||
|
||||
FCEU_DispMessage("emulation speed %d%%",0,(fps_scale*100)>>8);
|
||||
FCEU_DispMessage("Emulation speed %d%%", 0, (fps_scale_unpaused * 100) >> 8);
|
||||
}
|
||||
|
|
|
@ -80,6 +80,9 @@
|
|||
extern TASEDITOR_WINDOW taseditor_window;
|
||||
extern PLAYBACK playback;
|
||||
|
||||
#include "Win32InputBox.h"
|
||||
extern int32 fps_scale_unpaused;
|
||||
|
||||
//extern void ToggleFullscreen();
|
||||
|
||||
using namespace std;
|
||||
|
@ -1793,6 +1796,53 @@ LRESULT FAR PASCAL AppWndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
|
|||
case ID_NES_NORMALSPEED:
|
||||
FCEUD_SetEmulationSpeed(2);
|
||||
break;
|
||||
case ID_EMULATIONSPEED_CUSTOMSPEED:
|
||||
{
|
||||
int new_value = fps_scale / 2.56;
|
||||
if ((CWin32InputBox::GetInteger("Emulation Speed", "Enter a number of percents from 1 to 1000.", new_value, hWnd) == IDOK))
|
||||
{
|
||||
fps_scale_unpaused = new_value * 2.56 + 1;
|
||||
if (fps_scale_unpaused / 2.56 > 1000 || fps_scale_unpaused <= 0)
|
||||
fps_scale_unpaused = 256;
|
||||
fps_scale = fps_scale_unpaused;
|
||||
RefreshThrottleFPS();
|
||||
FCEU_DispMessage("Emulation speed %d%%", 0, (fps_scale_unpaused * 100) >> 8);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case ID_EMULATIONSPEED_SETFRAMEADVANCEDELAY:
|
||||
{
|
||||
extern int frameAdvance_Delay;
|
||||
int new_value = frameAdvance_Delay;
|
||||
if((CWin32InputBox::GetInteger("FrameAdvance Delay", "How much time should elapse before\nholding the Frame Advance\nunpauses emulation?", new_value, hWnd) == IDOK))
|
||||
{
|
||||
if (new_value < 0)
|
||||
new_value = FRAMEADVANCE_DELAY_DEFAULT;
|
||||
frameAdvance_Delay = new_value;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ID_EMULATIONSPEED_SETCUSTOMSPEEDFORFRAMEADVANCE:
|
||||
{
|
||||
extern int32 fps_scale_frameadvance;
|
||||
int new_value = fps_scale_frameadvance / 2.56;
|
||||
if ((CWin32InputBox::GetInteger("FrameAdvance Custom Speed", "Enter 0 to use the current emulation speed when\nthe Frame Advance is held. Or enter the number\nof percents (1-1000) to use different speed.", new_value, hWnd) == IDOK))
|
||||
{
|
||||
if (new_value > 1000)
|
||||
new_value = 1000;
|
||||
if (new_value > 0)
|
||||
{
|
||||
fps_scale_frameadvance = new_value * 2.56 + 1;
|
||||
} else
|
||||
{
|
||||
fps_scale_frameadvance = 0;
|
||||
fps_scale = fps_scale_unpaused;
|
||||
RefreshThrottleFPS();
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
//Config Menu-----------------------------------------------------------
|
||||
case FCEUX_CONTEXT_UNHIDEMENU:
|
||||
|
|
84
src/fceu.cpp
84
src/fceu.cpp
|
@ -57,6 +57,11 @@ extern void ResetDebugStatisticsCounters();
|
|||
extern void SetMainWindowText();
|
||||
|
||||
extern bool TaseditorIsRecording();
|
||||
|
||||
extern int32 fps_scale;
|
||||
extern int32 fps_scale_unpaused;
|
||||
extern int32 fps_scale_frameadvance;
|
||||
extern void RefreshThrottleFPS();
|
||||
#endif
|
||||
|
||||
#include <fstream>
|
||||
|
@ -200,8 +205,9 @@ static int RWWrap = 0;
|
|||
//bit0 indicates whether emulation is paused
|
||||
//bit1 indicates whether emulation is in frame step mode
|
||||
int EmulationPaused = 0;
|
||||
bool frameAdvanceRequested = false;
|
||||
int frameAdvanceDelay;
|
||||
bool frameAdvanceRequested=false;
|
||||
int frameAdvance_Delay_count = 0;
|
||||
int frameAdvance_Delay = FRAMEADVANCE_DELAY_DEFAULT;
|
||||
|
||||
//indicates that the emulation core just frame advanced (consumed the frame advance state and paused)
|
||||
bool JustFrameAdvanced = false;
|
||||
|
@ -578,24 +584,48 @@ void FCEUI_Emulate(uint8 **pXBuf, int32 **SoundBuf, int32 *SoundBufSize, int ski
|
|||
|
||||
JustFrameAdvanced = false;
|
||||
|
||||
if (frameAdvanceRequested) {
|
||||
if (frameAdvanceDelay == 0 || frameAdvanceDelay >= 10)
|
||||
EmulationPaused = 3;
|
||||
if (frameAdvanceDelay == 0 || frameAdvanceDelay < 10)
|
||||
frameAdvanceDelay++;
|
||||
if (frameAdvanceRequested)
|
||||
{
|
||||
if (frameAdvance_Delay_count == 0 || frameAdvance_Delay_count >= frameAdvance_Delay)
|
||||
EmulationPaused = EMULATIONPAUSED_FA;
|
||||
if (frameAdvance_Delay_count < frameAdvance_Delay)
|
||||
frameAdvance_Delay_count++;
|
||||
}
|
||||
|
||||
if (EmulationPaused & 2)
|
||||
EmulationPaused &= ~1; // clear paused flag temporarily (frame advance)
|
||||
else if ((EmulationPaused & 1)) {
|
||||
memcpy(XBuf, XBackBuf, 256 * 256);
|
||||
if (EmulationPaused & EMULATIONPAUSED_FA)
|
||||
{
|
||||
// the user is holding Frame Advance key
|
||||
// clear paused flag temporarily
|
||||
EmulationPaused &= ~EMULATIONPAUSED_PAUSED;
|
||||
#ifdef WIN32
|
||||
// different emulation speed when holding Frame Advance
|
||||
if (fps_scale_frameadvance > 0)
|
||||
{
|
||||
fps_scale = fps_scale_frameadvance;
|
||||
RefreshThrottleFPS();
|
||||
}
|
||||
#endif
|
||||
} else
|
||||
{
|
||||
#ifdef WIN32
|
||||
if (fps_scale_frameadvance > 0)
|
||||
{
|
||||
// restore emulation speed when Frame Advance is not held
|
||||
fps_scale = fps_scale_unpaused;
|
||||
RefreshThrottleFPS();
|
||||
}
|
||||
#endif
|
||||
if (EmulationPaused & EMULATIONPAUSED_PAUSED)
|
||||
{
|
||||
// emulator is paused
|
||||
memcpy(XBuf, XBackBuf, 256*256);
|
||||
FCEU_PutImage();
|
||||
*pXBuf = XBuf;
|
||||
*SoundBuf = WaveFinal;
|
||||
*SoundBufSize = 0;
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
AutoFire();
|
||||
UpdateAutosave();
|
||||
|
@ -644,9 +674,11 @@ void FCEUI_Emulate(uint8 **pXBuf, int32 **SoundBuf, int32 *SoundBufSize, int ski
|
|||
*SoundBufSize = ssize;
|
||||
}
|
||||
|
||||
if (EmulationPaused & 2 && (!frameAdvanceLagSkip || !lagFlag)) {
|
||||
//Lots of conditions here. EmulationPaused&2 must be true. In addition frameAdvanceLagSkip or lagFlag must be false
|
||||
EmulationPaused = 1; // restore paused flag
|
||||
if ((EmulationPaused & EMULATIONPAUSED_FA) && (!frameAdvanceLagSkip || !lagFlag))
|
||||
//Lots of conditions here. EmulationPaused & EMULATIONPAUSED_FA must be true. In addition frameAdvanceLagSkip or lagFlag must be false
|
||||
// When Frame Advance is held, emulator is automatically paused after emulating one frame (or several lag frames)
|
||||
{
|
||||
EmulationPaused = EMULATIONPAUSED_PAUSED; // restore EMULATIONPAUSED_PAUSED flag and clear EMULATIONPAUSED_FA flag
|
||||
JustFrameAdvanced = true;
|
||||
#ifdef WIN32
|
||||
if (soundoptions & SO_MUTEFA) //mute the frame advance if the user requested it
|
||||
|
@ -854,16 +886,19 @@ int32 FCEUI_GetDesiredFPS(void) {
|
|||
return(1008307711); // ~60.1
|
||||
}
|
||||
|
||||
int FCEUI_EmulationPaused(void) {
|
||||
return(EmulationPaused & 1);
|
||||
int FCEUI_EmulationPaused(void)
|
||||
{
|
||||
return (EmulationPaused & EMULATIONPAUSED_PAUSED);
|
||||
}
|
||||
|
||||
int FCEUI_EmulationFrameStepped() {
|
||||
return(EmulationPaused & 2);
|
||||
int FCEUI_EmulationFrameStepped()
|
||||
{
|
||||
return (EmulationPaused & EMULATIONPAUSED_FA);
|
||||
}
|
||||
|
||||
void FCEUI_ClearEmulationFrameStepped() {
|
||||
EmulationPaused &= ~2;
|
||||
void FCEUI_ClearEmulationFrameStepped()
|
||||
{
|
||||
EmulationPaused &= ~EMULATIONPAUSED_FA;
|
||||
}
|
||||
|
||||
//mbg merge 7/18/06 added
|
||||
|
@ -872,8 +907,9 @@ void FCEUI_SetEmulationPaused(int val) {
|
|||
EmulationPaused = val;
|
||||
}
|
||||
|
||||
void FCEUI_ToggleEmulationPause(void) {
|
||||
EmulationPaused = (EmulationPaused & 1) ^ 1;
|
||||
void FCEUI_ToggleEmulationPause(void)
|
||||
{
|
||||
EmulationPaused = (EmulationPaused & EMULATIONPAUSED_PAUSED) ^ EMULATIONPAUSED_PAUSED;
|
||||
DebuggerWasUpdated = false;
|
||||
}
|
||||
|
||||
|
@ -883,7 +919,7 @@ void FCEUI_FrameAdvanceEnd(void) {
|
|||
|
||||
void FCEUI_FrameAdvance(void) {
|
||||
frameAdvanceRequested = true;
|
||||
frameAdvanceDelay = 0;
|
||||
frameAdvance_Delay_count = 0;
|
||||
}
|
||||
|
||||
static int AutosaveCounter = 0;
|
||||
|
|
|
@ -141,3 +141,8 @@ extern uint8 vsdip;
|
|||
|
||||
#define ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0]))
|
||||
|
||||
#define EMULATIONPAUSED_PAUSED 1
|
||||
#define EMULATIONPAUSED_FA 2
|
||||
|
||||
#define FRAMEADVANCE_DELAY_DEFAULT 10
|
||||
|
||||
|
|
Loading…
Reference in New Issue