Updated source and build script version references in preparation for new release. Updated SDL web documentation. Removed a few deprecated command line arguments from code and help text. Removed last few references to GTK in Qt GUI.
This commit is contained in:
parent
e7ba648d3b
commit
fb965bbee0
2
README
2
README
|
@ -1,4 +1,4 @@
|
||||||
FCEUX SDL 2.2.3 SDL README
|
FCEUX SDL 2.3.0 SDL README
|
||||||
==========================
|
==========================
|
||||||
Originally By Lukas Sabota (sf: punkrockguy318)
|
Originally By Lukas Sabota (sf: punkrockguy318)
|
||||||
Updated By mjbudd77
|
Updated By mjbudd77
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
|
|
||||||
my $VERSION="2.2.3";
|
my $VERSION="2.3.0";
|
||||||
my $INSTALL_PREFIX="/tmp/fceux";
|
my $INSTALL_PREFIX="/tmp/fceux";
|
||||||
my $CTL_FILENAME="$INSTALL_PREFIX/DEBIAN/control";
|
my $CTL_FILENAME="$INSTALL_PREFIX/DEBIAN/control";
|
||||||
my $ARCH="amd64";
|
my $ARCH="amd64";
|
||||||
|
|
|
@ -7,8 +7,8 @@ uname -a
|
||||||
sw_vers
|
sw_vers
|
||||||
|
|
||||||
FCEUX_VERSION_MAJOR=2
|
FCEUX_VERSION_MAJOR=2
|
||||||
FCEUX_VERSION_MINOR=2
|
FCEUX_VERSION_MINOR=3
|
||||||
FCEUX_VERSION_PATCH=3
|
FCEUX_VERSION_PATCH=0
|
||||||
|
|
||||||
SCRIPT_DIR=$( cd $(dirname $BASH_SOURCE[0]); pwd );
|
SCRIPT_DIR=$( cd $(dirname $BASH_SOURCE[0]); pwd );
|
||||||
|
|
||||||
|
|
|
@ -7,8 +7,8 @@ An open source NES Emulator for Windows and Unix that features solid emulation a
|
||||||
Interim builds:
|
Interim builds:
|
||||||
* Win32: [fceux.zip](https://ci.appveyor.com/api/projects/zeromus/fceux/artifacts/fceux.zip?branch=master&job=Windows%2032)
|
* Win32: [fceux.zip](https://ci.appveyor.com/api/projects/zeromus/fceux/artifacts/fceux.zip?branch=master&job=Windows%2032)
|
||||||
* Win64: [fceux64.zip](https://ci.appveyor.com/api/projects/zeromus/fceux/artifacts/fceux64.zip?branch=master&job=Windows%2064)
|
* Win64: [fceux64.zip](https://ci.appveyor.com/api/projects/zeromus/fceux/artifacts/fceux64.zip?branch=master&job=Windows%2064)
|
||||||
* Ubuntu: [fceux-2.2.3-amd64.deb](https://ci.appveyor.com/api/projects/zeromus/fceux/artifacts/fceux-2.2.3-amd64.deb?branch=master&job=Ubuntu)
|
* Ubuntu: [fceux-2.3.0-amd64.deb](https://ci.appveyor.com/api/projects/zeromus/fceux/artifacts/fceux-2.3.0-amd64.deb?branch=master&job=Ubuntu)
|
||||||
* MacOSX: [fceux-2.2.3-Darwin.dmg](https://ci.appveyor.com/api/projects/zeromus/fceux/artifacts/fceux-2.2.3-Darwin.dmg?branch=master&job=MacOS)
|
* MacOSX: [fceux-2.3.0-Darwin.dmg](https://ci.appveyor.com/api/projects/zeromus/fceux/artifacts/fceux-2.3.0-Darwin.dmg?branch=master&job=MacOS)
|
||||||
* Status: [Appveyor](https://ci.appveyor.com/project/zeromus/fceux/)
|
* Status: [Appveyor](https://ci.appveyor.com/project/zeromus/fceux/)
|
||||||
|
|
||||||
But you might like mesen more: https://github.com/SourMesen/Mesen
|
But you might like mesen more: https://github.com/SourMesen/Mesen
|
||||||
|
|
|
@ -119,7 +119,7 @@ AboutWindow::AboutWindow(QWidget *parent)
|
||||||
mainLayout->addLayout( hbox1 );
|
mainLayout->addLayout( hbox1 );
|
||||||
|
|
||||||
hbox1 = new QHBoxLayout();
|
hbox1 = new QHBoxLayout();
|
||||||
lbl = new QLabel( tr("© 2016 FceuX Development Team") );
|
lbl = new QLabel( tr("© 2020 FceuX Development Team") );
|
||||||
|
|
||||||
hbox1->addWidget( lbl );
|
hbox1->addWidget( lbl );
|
||||||
hbox1->setAlignment( Qt::AlignCenter );
|
hbox1->setAlignment( Qt::AlignCenter );
|
||||||
|
|
|
@ -2071,7 +2071,6 @@ void QAsmView::updateAssemblyView(void)
|
||||||
uint8 opcode[3];
|
uint8 opcode[3];
|
||||||
char asmTxt[256];
|
char asmTxt[256];
|
||||||
dbg_asm_entry_t *a, *d;
|
dbg_asm_entry_t *a, *d;
|
||||||
//GtkTextIter iter, next_iter;
|
|
||||||
char pc_found = 0;
|
char pc_found = 0;
|
||||||
|
|
||||||
start_address_lp = starting_address = X.PC;
|
start_address_lp = starting_address = X.PC;
|
||||||
|
@ -2112,12 +2111,6 @@ void QAsmView::updateAssemblyView(void)
|
||||||
}
|
}
|
||||||
//asmText->clear();
|
//asmText->clear();
|
||||||
|
|
||||||
//gtk_text_buffer_get_start_iter( textbuf, &iter );
|
|
||||||
|
|
||||||
//textview_lines_allocated = gtk_text_buffer_get_line_count( textbuf ) - 1;
|
|
||||||
|
|
||||||
//printf("Num Lines: %i\n", textview_lines_allocated );
|
|
||||||
|
|
||||||
for (int i=0; i < 0xFFFF; i++)
|
for (int i=0; i < 0xFFFF; i++)
|
||||||
{
|
{
|
||||||
line.clear();
|
line.clear();
|
||||||
|
|
|
@ -206,7 +206,6 @@ InitConfig()
|
||||||
config->addOption('y', "yres", "SDL.YResolution", 0);
|
config->addOption('y', "yres", "SDL.YResolution", 0);
|
||||||
config->addOption("SDL.LastXRes", 0);
|
config->addOption("SDL.LastXRes", 0);
|
||||||
config->addOption("SDL.LastYRes", 0);
|
config->addOption("SDL.LastYRes", 0);
|
||||||
config->addOption('b', "bpp", "SDL.BitsPerPixel", 32);
|
|
||||||
config->addOption("doublebuf", "SDL.DoubleBuffering", 1);
|
config->addOption("doublebuf", "SDL.DoubleBuffering", 1);
|
||||||
config->addOption("autoscale", "SDL.AutoScale", 1);
|
config->addOption("autoscale", "SDL.AutoScale", 1);
|
||||||
config->addOption("keepratio", "SDL.KeepRatio", 1);
|
config->addOption("keepratio", "SDL.KeepRatio", 1);
|
||||||
|
@ -243,9 +242,6 @@ InitConfig()
|
||||||
|
|
||||||
config->addOption("autoInputPreset", "SDL.AutoInputPreset", 0);
|
config->addOption("autoInputPreset", "SDL.AutoInputPreset", 0);
|
||||||
|
|
||||||
// allow for input configuration
|
|
||||||
//config->addOption('i', "inputcfg", "SDL.InputCfg", InputCfg);
|
|
||||||
|
|
||||||
// display input
|
// display input
|
||||||
config->addOption("inputdisplay", "SDL.InputDisplay", 0);
|
config->addOption("inputdisplay", "SDL.InputDisplay", 0);
|
||||||
|
|
||||||
|
|
|
@ -387,7 +387,6 @@ static const char *DriverUsage =
|
||||||
"Option Value Description\n"
|
"Option Value Description\n"
|
||||||
"--pal {0|1} Use PAL timing.\n"
|
"--pal {0|1} Use PAL timing.\n"
|
||||||
"--newppu {0|1} Enable the new PPU core. (WARNING: May break savestates)\n"
|
"--newppu {0|1} Enable the new PPU core. (WARNING: May break savestates)\n"
|
||||||
"--inputcfg d Configures input device d on startup.\n"
|
|
||||||
"--input(1,2) d Set which input device to emulate for input 1 or 2.\n"
|
"--input(1,2) d Set which input device to emulate for input 1 or 2.\n"
|
||||||
" Devices: gamepad zapper powerpad.0 powerpad.1\n"
|
" Devices: gamepad zapper powerpad.0 powerpad.1\n"
|
||||||
" arkanoid\n"
|
" arkanoid\n"
|
||||||
|
@ -405,8 +404,6 @@ static const char *DriverUsage =
|
||||||
"--(x/y)scale x Multiply width/height by x. \n"
|
"--(x/y)scale x Multiply width/height by x. \n"
|
||||||
" (Real numbers >0 with OpenGL, otherwise integers >0).\n"
|
" (Real numbers >0 with OpenGL, otherwise integers >0).\n"
|
||||||
"--(x/y)stretch {0|1} Stretch to fill surface on x/y axis (OpenGL only).\n"
|
"--(x/y)stretch {0|1} Stretch to fill surface on x/y axis (OpenGL only).\n"
|
||||||
"--bpp {8|16|32} Set bits per pixel.\n"
|
|
||||||
"--opengl {0|1} Enable OpenGL support.\n"
|
|
||||||
"--fullscreen {0|1} Enable full screen mode.\n"
|
"--fullscreen {0|1} Enable full screen mode.\n"
|
||||||
"--noframe {0|1} Hide title bar and window decorations.\n"
|
"--noframe {0|1} Hide title bar and window decorations.\n"
|
||||||
"--special {1-4} Use special video scaling filters\n"
|
"--special {1-4} Use special video scaling filters\n"
|
||||||
|
@ -435,7 +432,6 @@ static const char *DriverUsage =
|
||||||
"--players x Set the number of local players in a network play\n"
|
"--players x Set the number of local players in a network play\n"
|
||||||
" session.\n"
|
" session.\n"
|
||||||
"--rp2mic {0|1} Replace Port 2 Start with microphone (Famicom).\n"
|
"--rp2mic {0|1} Replace Port 2 Start with microphone (Famicom).\n"
|
||||||
"--nogui Don't load the GTK GUI\n"
|
|
||||||
"--4buttonexit {0|1} exit the emulator when A+B+Select+Start is pressed\n"
|
"--4buttonexit {0|1} exit the emulator when A+B+Select+Start is pressed\n"
|
||||||
"--loadstate {0-9|>9} load from the given state when the game is loaded\n"
|
"--loadstate {0-9|>9} load from the given state when the game is loaded\n"
|
||||||
"--savestate {0-9|>9} save to the given state when the game is closed\n"
|
"--savestate {0-9|>9} save to the given state when the game is closed\n"
|
||||||
|
@ -548,15 +544,6 @@ int fceuWrapperInit( int argc, char *argv[] )
|
||||||
g_config->save();
|
g_config->save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//g_config->getOption("SDL.InputCfg", &s);
|
|
||||||
|
|
||||||
//if (s.size() != 0)
|
|
||||||
//{
|
|
||||||
// InitVideo(GameInfo);
|
|
||||||
// InputCfg(s);
|
|
||||||
//}
|
|
||||||
|
|
||||||
// update the input devices
|
// update the input devices
|
||||||
UpdateInput(g_config);
|
UpdateInput(g_config);
|
||||||
|
|
||||||
|
|
|
@ -469,58 +469,6 @@ std::string GetFilename (const char *title, bool save, const char *filter)
|
||||||
fname = GetOpenFileName (&ofn);
|
fname = GetOpenFileName (&ofn);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
//#ifdef _GTK
|
|
||||||
// int fullscreen = 0;
|
|
||||||
// g_config->getOption ("SDL.Fullscreen", &fullscreen);
|
|
||||||
// if (fullscreen)
|
|
||||||
// ToggleFS ();
|
|
||||||
//
|
|
||||||
// GtkWidget *fileChooser;
|
|
||||||
//
|
|
||||||
// GtkFileFilter *filterX;
|
|
||||||
// GtkFileFilter *filterAll;
|
|
||||||
//
|
|
||||||
// filterX = gtk_file_filter_new ();
|
|
||||||
// gtk_file_filter_add_pattern (filterX, filter);
|
|
||||||
// gtk_file_filter_set_name (filterX, filter);
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// filterAll = gtk_file_filter_new ();
|
|
||||||
// gtk_file_filter_add_pattern (filterAll, "*");
|
|
||||||
// gtk_file_filter_set_name (filterAll, "All Files");
|
|
||||||
//
|
|
||||||
// if (save)
|
|
||||||
// fileChooser = gtk_file_chooser_dialog_new ("Save as", NULL,
|
|
||||||
// GTK_FILE_CHOOSER_ACTION_SAVE,
|
|
||||||
// "_Cancel",
|
|
||||||
// GTK_RESPONSE_CANCEL,
|
|
||||||
// "_Save",
|
|
||||||
// GTK_RESPONSE_ACCEPT, NULL);
|
|
||||||
// else
|
|
||||||
// fileChooser = gtk_file_chooser_dialog_new ("Open", NULL,
|
|
||||||
// GTK_FILE_CHOOSER_ACTION_OPEN,
|
|
||||||
// "_Cancel",
|
|
||||||
// GTK_RESPONSE_CANCEL,
|
|
||||||
// "_Open",
|
|
||||||
// GTK_RESPONSE_ACCEPT, NULL);
|
|
||||||
//
|
|
||||||
// // TODO: make file filters case insensitive
|
|
||||||
// //gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(fileChooser), filterX);
|
|
||||||
// gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (fileChooser), filterAll);
|
|
||||||
// int response = gtk_dialog_run (GTK_DIALOG (fileChooser));
|
|
||||||
//
|
|
||||||
// // flush gtk events
|
|
||||||
// while (gtk_events_pending ())
|
|
||||||
// gtk_main_iteration_do (TRUE);
|
|
||||||
//
|
|
||||||
// if (response == GTK_RESPONSE_ACCEPT)
|
|
||||||
// fname = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (fileChooser));
|
|
||||||
//
|
|
||||||
// gtk_widget_destroy (fileChooser);
|
|
||||||
//
|
|
||||||
// while (gtk_events_pending ())
|
|
||||||
// gtk_main_iteration_do (TRUE);
|
|
||||||
//#endif
|
|
||||||
FCEUI_ToggleEmulationPause ();
|
FCEUI_ToggleEmulationPause ();
|
||||||
return fname;
|
return fname;
|
||||||
}
|
}
|
||||||
|
@ -530,71 +478,6 @@ std::string GetFilename (const char *title, bool save, const char *filter)
|
||||||
*/
|
*/
|
||||||
std::string GetUserText (const char *title)
|
std::string GetUserText (const char *title)
|
||||||
{
|
{
|
||||||
#ifdef _GTK
|
|
||||||
/* prg318 - 10/13/11 - this is broken in recent build and causes
|
|
||||||
* segfaults/very weird behavior i'd rather remove it for now than it cause
|
|
||||||
* accidental segfaults
|
|
||||||
* TODO fix it
|
|
||||||
*/
|
|
||||||
#if 0
|
|
||||||
//
|
|
||||||
// GtkWidget* d;
|
|
||||||
// GtkWidget* entry;
|
|
||||||
//
|
|
||||||
// d = gtk_dialog_new_with_buttons(title, NULL, GTK_DIALOG_MODAL, GTK_STOCK_OK, GTK_RESPONSE_OK);
|
|
||||||
//
|
|
||||||
// entry = gtk_entry_new();
|
|
||||||
//
|
|
||||||
// GtkWidget* vbox = gtk_dialog_get_content_area(GTK_DIALOG(d));
|
|
||||||
//
|
|
||||||
// gtk_container_add(GTK_CONTAINER(vbox), entry);
|
|
||||||
//
|
|
||||||
// gtk_widget_show_all(d);
|
|
||||||
//
|
|
||||||
// gtk_dialog_run(GTK_DIALOG(d));
|
|
||||||
//
|
|
||||||
// // flush gtk events
|
|
||||||
// while(gtk_events_pending())
|
|
||||||
// gtk_main_iteration_do(TRUE);
|
|
||||||
//
|
|
||||||
// std::string input = gtk_entry_get_text(GTK_ENTRY(entry));
|
|
||||||
//
|
|
||||||
// if (FCEUI_EmulationPaused() == 0)
|
|
||||||
// FCEUI_ToggleEmulationPause(); // pause emulation
|
|
||||||
//
|
|
||||||
// int fullscreen = 0;
|
|
||||||
// g_config->getOption("SDL.Fullscreen", &fullscreen);
|
|
||||||
// if(fullscreen)
|
|
||||||
// ToggleFS(); // disable fullscreen emulation
|
|
||||||
//
|
|
||||||
// FILE *fpipe;
|
|
||||||
// std::string command = "zenity --entry --title=\"";
|
|
||||||
// command.append(title);
|
|
||||||
// command.append("\" --text=\"");
|
|
||||||
// command.append(title);
|
|
||||||
// command.append(":\"");
|
|
||||||
//
|
|
||||||
// if (!(fpipe = (FILE*)popen(command.c_str(),"r"))) // If fpipe is NULL
|
|
||||||
// FCEUD_PrintError("Pipe error on opening zenity");
|
|
||||||
// int c;
|
|
||||||
// std::string input;
|
|
||||||
// while((c = fgetc(fpipe)))
|
|
||||||
// {
|
|
||||||
// if (c == EOF || c == '\n')
|
|
||||||
// break;
|
|
||||||
// input += c;
|
|
||||||
// }
|
|
||||||
// pclose(fpipe);
|
|
||||||
// gtk_widget_destroy(d);
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// while(gtk_events_pending())
|
|
||||||
// gtk_main_iteration_do(TRUE);
|
|
||||||
//
|
|
||||||
// FCEUI_ToggleEmulationPause(); // unpause emulation
|
|
||||||
// return input;
|
|
||||||
#endif // #if 0
|
|
||||||
#endif
|
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -926,9 +809,6 @@ static void KeyboardCommands (void)
|
||||||
{
|
{
|
||||||
if ( Hotkeys[HK_SELECT_STATE_0 + i].getRisingEdge() )
|
if ( Hotkeys[HK_SELECT_STATE_0 + i].getRisingEdge() )
|
||||||
{
|
{
|
||||||
#ifdef _GTK
|
|
||||||
setStateMenuItem(i);
|
|
||||||
#endif
|
|
||||||
FCEUI_SelectState (i, 1);
|
FCEUI_SelectState (i, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -936,17 +816,11 @@ static void KeyboardCommands (void)
|
||||||
if ( Hotkeys[HK_SELECT_STATE_NEXT].getRisingEdge() )
|
if ( Hotkeys[HK_SELECT_STATE_NEXT].getRisingEdge() )
|
||||||
{
|
{
|
||||||
FCEUI_SelectStateNext (1);
|
FCEUI_SelectStateNext (1);
|
||||||
#ifdef _GTK
|
|
||||||
setStateMenuItem( CurrentState );
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( Hotkeys[HK_SELECT_STATE_PREV].getRisingEdge() )
|
if ( Hotkeys[HK_SELECT_STATE_PREV].getRisingEdge() )
|
||||||
{
|
{
|
||||||
FCEUI_SelectStateNext (-1);
|
FCEUI_SelectStateNext (-1);
|
||||||
#ifdef _GTK
|
|
||||||
setStateMenuItem( CurrentState );
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( Hotkeys[HK_BIND_STATE].getRisingEdge() )
|
if ( Hotkeys[HK_BIND_STATE].getRisingEdge() )
|
||||||
|
|
|
@ -74,7 +74,6 @@ int DTestButtonJoy(ButtConfig *bc);
|
||||||
void FCEUD_UpdateInput(void);
|
void FCEUD_UpdateInput(void);
|
||||||
|
|
||||||
void UpdateInput(Config *config);
|
void UpdateInput(Config *config);
|
||||||
//void InputCfg(const std::string &);
|
|
||||||
|
|
||||||
std::string GetUserText(const char* title);
|
std::string GetUserText(const char* title);
|
||||||
const char* ButtonName(const ButtConfig* bc);
|
const char* ButtonName(const ButtConfig* bc);
|
||||||
|
|
|
@ -58,9 +58,6 @@ static int s_srendline, s_erendline;
|
||||||
static int s_tlines;
|
static int s_tlines;
|
||||||
static int s_inited = 0;
|
static int s_inited = 0;
|
||||||
|
|
||||||
//#ifdef OPENGL
|
|
||||||
//static int s_useOpenGL = 0;
|
|
||||||
//#endif
|
|
||||||
static double s_exs = 1.0, s_eys = 1.0;
|
static double s_exs = 1.0, s_eys = 1.0;
|
||||||
static int s_eefx = 0;
|
static int s_eefx = 0;
|
||||||
static int s_clipSides = 0;
|
static int s_clipSides = 0;
|
||||||
|
@ -152,9 +149,6 @@ int InitVideo(FCEUGI *gi)
|
||||||
// load the relevant configuration variables
|
// load the relevant configuration variables
|
||||||
g_config->getOption("SDL.Fullscreen", &s_fullscreen);
|
g_config->getOption("SDL.Fullscreen", &s_fullscreen);
|
||||||
g_config->getOption("SDL.DoubleBuffering", &doublebuf);
|
g_config->getOption("SDL.DoubleBuffering", &doublebuf);
|
||||||
//#ifdef OPENGL
|
|
||||||
// g_config->getOption("SDL.OpenGL", &s_useOpenGL);
|
|
||||||
//#endif
|
|
||||||
g_config->getOption("SDL.SpecialFilter", &s_sponge);
|
g_config->getOption("SDL.SpecialFilter", &s_sponge);
|
||||||
g_config->getOption("SDL.XStretch", &xstretch);
|
g_config->getOption("SDL.XStretch", &xstretch);
|
||||||
g_config->getOption("SDL.YStretch", &ystretch);
|
g_config->getOption("SDL.YStretch", &ystretch);
|
||||||
|
|
|
@ -61,7 +61,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define FCEU_VERSION_NUMERIC 22020
|
#define FCEU_VERSION_NUMERIC 22020
|
||||||
#define FCEU_VERSION_STRING "2.2.3" FCEU_SUBVERSION_STRING FCEU_FEATURE_STRING FCEU_COMPILER
|
#define FCEU_VERSION_STRING "2.3.0" FCEU_SUBVERSION_STRING FCEU_FEATURE_STRING FCEU_COMPILER
|
||||||
#define FCEU_NAME_AND_VERSION FCEU_NAME " " FCEU_VERSION_STRING
|
#define FCEU_NAME_AND_VERSION FCEU_NAME " " FCEU_VERSION_STRING
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -77,8 +77,8 @@
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="https://ci.appveyor.com/api/projects/zeromus/fceux/artifacts/fceux.zip?branch=master&job=Windows%2032">Windows 32-bit</a></li>
|
<li><a href="https://ci.appveyor.com/api/projects/zeromus/fceux/artifacts/fceux.zip?branch=master&job=Windows%2032">Windows 32-bit</a></li>
|
||||||
<li><a href="https://ci.appveyor.com/api/projects/zeromus/fceux/artifacts/fceux64.zip?branch=master&job=Windows%2064">Windows 64-bit</a></li>
|
<li><a href="https://ci.appveyor.com/api/projects/zeromus/fceux/artifacts/fceux64.zip?branch=master&job=Windows%2064">Windows 64-bit</a></li>
|
||||||
<li><a href="https://ci.appveyor.com/api/projects/zeromus/fceux/artifacts/fceux-2.2.3-amd64.deb?branch=master&job=Ubuntu">Ubuntu Linux</a></li>
|
<li><a href="https://ci.appveyor.com/api/projects/zeromus/fceux/artifacts/fceux-2.3.0-amd64.deb?branch=master&job=Ubuntu">Ubuntu Linux</a></li>
|
||||||
<li><a href="https://ci.appveyor.com/api/projects/zeromus/fceux/artifacts/fceux-2.2.3-Darwin.dmg?branch=master&job=MacOS">Mac OS X</a></li>
|
<li><a href="https://ci.appveyor.com/api/projects/zeromus/fceux/artifacts/fceux-2.3.0-Darwin.dmg?branch=master&job=MacOS">Mac OS X</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h3>Source Code</h3>
|
<h3>Source Code</h3>
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
<div id="page_content">
|
<div id="page_content">
|
||||||
|
|
||||||
<center><h1>FCEUX SDL Documentation</h1></center>
|
<center><h1>FCEUX SDL Documentation</h1></center>
|
||||||
<center><i>Last updated October 11, 2011<br />Valid as of FCEUX 2.1.5</i><br></center>
|
<center><i>Last updated December 9, 2020<br />Valid as of FCEUX 2.3.0</i><br></center>
|
||||||
<p>
|
<p>
|
||||||
<b>Table of Contents:</b>
|
<b>Table of Contents:</b>
|
||||||
<ul>
|
<ul>
|
||||||
|
@ -36,6 +36,7 @@
|
||||||
<li /><a href="#features-ips">Automatic IPS Patching</a>
|
<li /><a href="#features-ips">Automatic IPS Patching</a>
|
||||||
<li /><a href="#using">Using FCEUX</a>
|
<li /><a href="#using">Using FCEUX</a>
|
||||||
<ul>
|
<ul>
|
||||||
|
<li /><a href="#gui-styling">Qt GUI Style</a>
|
||||||
<li /><a href="#using-hotkeys">Hotkey Assignments</a>
|
<li /><a href="#using-hotkeys">Hotkey Assignments</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li /><a href="#using-keys-vs">VS Unisystem</a>
|
<li /><a href="#using-keys-vs">VS Unisystem</a>
|
||||||
|
@ -185,13 +186,25 @@ necessarily 100% accurate or complete):
|
||||||
<a name="using"><h2>Using FCEUX</h2></a>
|
<a name="using"><h2>Using FCEUX</h2></a>
|
||||||
<p>
|
<p>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
<a name="gui-styling"><h3>Qt GUI Style</h3></a>
|
||||||
|
<p>
|
||||||
|
The Qt GUI can either use the standard system style/themes or custom stylesheets.
|
||||||
|
The available standard styles that are installed on the system will be listed when running the executable command line help.
|
||||||
|
To use a provided system style, use the --style command line argument.
|
||||||
|
To use a custom Qt stylesheet file, set an environment variable named FCEUX_QT_STYLESHEET that contains
|
||||||
|
the full path to the file. This will check for this at startup.
|
||||||
|
If the variable is defined and the file is readable by the program,
|
||||||
|
then the styling settings will be used by the GUI.<br>
|
||||||
|
<br>Bash Shell Setup Example:
|
||||||
|
<pre>
|
||||||
|
export FCEUX_QT_STYLESHEET=/home/me/myFceux.qss
|
||||||
|
</pre>
|
||||||
|
For information on Qt stylesheet syntax, see <a href=https://doc.qt.io/>Qt online documentation</a>
|
||||||
</p>
|
</p>
|
||||||
<a name="using-hotkeys"><h3>Hotkey Assignments</h3></a>
|
<a name="using-hotkeys"><h3>Hotkey Assignments</h3></a>
|
||||||
<p>
|
<p>
|
||||||
<b>NOTE:</b>There is not a GUI available to remap these hotkeys for SDL. If you really
|
<b>NOTE:</b> The GUI has a window to remap these hotkeys for SDL.
|
||||||
want to remap the hotkeys, you can edit the config file manually and replace the values
|
|
||||||
with SDL keysyms. Alternatively, you can use a tool like <a href="http://qjoypad.sourceforge.net/">qjoypad</a>
|
|
||||||
or <a href="http://joy2key.sourceforge.net/">joy2key</a> and even map hotkeys to joystick buttons/axes.
|
|
||||||
<p>
|
<p>
|
||||||
<table border>
|
<table border>
|
||||||
<tr><th>Key:</th><th>Action:</th></tr>
|
<tr><th>Key:</th><th>Action:</th></tr>
|
||||||
|
@ -242,7 +255,7 @@ necessarily 100% accurate or complete):
|
||||||
</p>
|
</p>
|
||||||
<a name="using-keys-gamepad"><h4>Gamepad</h4></a>
|
<a name="using-keys-gamepad"><h4>Gamepad</h4></a>
|
||||||
<p> These are the default keys for the P1 gamepad. These can
|
<p> These are the default keys for the P1 gamepad. These can
|
||||||
be remapped using the --inputcfg command line parameter or the GTK GUI
|
be remapped the Qt GUI
|
||||||
<table border>
|
<table border>
|
||||||
<tr><th>Key:</th><th nowrap>Button on Emulated Gamepad:</th></tr>
|
<tr><th>Key:</th><th nowrap>Button on Emulated Gamepad:</th></tr>
|
||||||
<tr><td>D</td><td>B</td></tr>
|
<tr><td>D</td><td>B</td></tr>
|
||||||
|
@ -292,8 +305,10 @@ necessarily 100% accurate or complete):
|
||||||
are taken in the form of "--parameter value". Most arguments that have
|
are taken in the form of "--parameter value". Most arguments that have
|
||||||
both a parameter and a value will be saved in the configuration file.
|
both a parameter and a value will be saved in the configuration file.
|
||||||
</p>
|
</p>
|
||||||
<b>NOTE: </b>This list is incomplete! For a full list of options, run
|
<b>NOTE: </b>This list is incomplete! For a full list of options, run:
|
||||||
fceux without any arguments.
|
<pre>
|
||||||
|
fceux --help
|
||||||
|
</pre>
|
||||||
<p>
|
<p>
|
||||||
<table border>
|
<table border>
|
||||||
<tr><th>Argument:</th><th>Value Type:</th><th>Default value:</th><th>Description:</th></tr>
|
<tr><th>Argument:</th><th>Value Type:</th><th>Default value:</th><th>Description:</th></tr>
|
||||||
|
@ -321,6 +336,8 @@ necessarily 100% accurate or complete):
|
||||||
<tr><td>Unknown</td><td>Original Author</td></tr>
|
<tr><td>Unknown</td><td>Original Author</td></tr>
|
||||||
<tr><td><a href="mailto:ltsmooth42 _at_ gmail _dot_ com">Lukas Sabota</a></td>
|
<tr><td><a href="mailto:ltsmooth42 _at_ gmail _dot_ com">Lukas Sabota</a></td>
|
||||||
<td>FCEUX SDL documentation revival.</td></tr>
|
<td>FCEUX SDL documentation revival.</td></tr>
|
||||||
|
<tr><td>mjbudd77</td>
|
||||||
|
<td>FCEUX Qt/SDL documentation upates.</td></tr>
|
||||||
</table>
|
</table>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -23,31 +23,26 @@
|
||||||
<div id="page_content">
|
<div id="page_content">
|
||||||
|
|
||||||
<center><h1>FCEUX SDL FAQ</h1></center>
|
<center><h1>FCEUX SDL FAQ</h1></center>
|
||||||
<center><i>Last updated February 10, 2012<br /></i> by punkrockguy318<br />
|
<center><i>Last updated December 9, 2020<br /></i> by mjbudd77<br />
|
||||||
</center>
|
</center>
|
||||||
<p><b>Table of Contents:</b></p>
|
<p><b>Table of Contents:</b></p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#svn">What is the subversion build and how can I get it?</a></li>
|
<li><a href="#git">What is the git build and how can I get it?</a></li>
|
||||||
<li><a href="#config">How do I configure a gamepad?</a></li>
|
<li><a href="#config">How do I configure a gamepad?</a></li>
|
||||||
<li><a href="#sound">My sound is stuttery/laggy. How can I fix this?</a></li>
|
<li><a href="#sound">My sound is stuttery/laggy. How can I fix this?</a></li>
|
||||||
|
<li><a href="#timing">My game is skipping frames. How can I fix this?</a></li>
|
||||||
<li><a href="#hotkeys1">How can I change my hotkey bindings?</a></li>
|
<li><a href="#hotkeys1">How can I change my hotkey bindings?</a></li>
|
||||||
<li><a href="#hotkeys2">Can I map hotkeys to my gamepad?</a></li>
|
<li><a href="#hotkeys2">Can I map hotkeys to my gamepad?</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<a name="subversion"><h3>What is the subversion build and how can I get it?</h3></a>
|
<a name="git"><h3>What is the git build and how can I get it?</h3></a>
|
||||||
<p>The most recent changes to fceuX are reflected immediately in the fceux
|
<p>The most recent changes to fceuX are reflected immediately in the fceux
|
||||||
sourceforge subversion server. You can checkout the source code to build
|
github server. You can checkout the source code to build
|
||||||
fceuX with the most recent sources by running the following command:</p>
|
fceuX with the most recent sources by running the following command:</p>
|
||||||
<p><b>svn co https://fceultra.svn.sourceforge.net/svnroot/fceultra/fceu fceux</b></p>
|
<p><b>git clone https://github.com/TASVideos/fceux.git</b></p>
|
||||||
<p>Instructions for compiling and installing fceuX can be found in the "README-SDL" file.</p>
|
<p>Instructions for compiling and installing fceuX can be found in the "README" file.</p>
|
||||||
<a name="config"><h3>How do I configure a gamepad?</h3></a>
|
<a name="config"><h3>How do I configure a gamepad?</h3></a>
|
||||||
<p>
|
<p>Using the Qt GUI, you can configure the gamepad by
|
||||||
<p>If you have the GTK GUI compiled into fceuX, you can configure the gamepad by
|
|
||||||
selecting "Options...Gamepad" in the menubar.</p>
|
selecting "Options...Gamepad" in the menubar.</p>
|
||||||
<p>You can allso configure the first gamepad by running <b>fceux --inputcfg gamepad1</b> </p>
|
|
||||||
<p>When you configure a button you will be presented with a black window with a titlebar
|
|
||||||
indicating what button to map. FceuX will look for two
|
|
||||||
of the same keypress/joystick event in a row. If it doesn't find two of the same
|
|
||||||
keypresses in a row, it will allow you to map the button to two separate keys.</p>
|
|
||||||
</p>
|
</p>
|
||||||
<a name="sound"><h3>My sound is stuttery/laggy. How can I fix this?</h3></a>
|
<a name="sound"><h3>My sound is stuttery/laggy. How can I fix this?</h3></a>
|
||||||
<p>Try using different SDL audio drivers. You can set the SDL audio driver with
|
<p>Try using different SDL audio drivers. You can set the SDL audio driver with
|
||||||
|
@ -58,11 +53,21 @@
|
||||||
you may want to try the latest version of fceuX to see if you are still having issues. FceuX
|
you may want to try the latest version of fceuX to see if you are still having issues. FceuX
|
||||||
2.1.4 fixed the majority of the reported sound issues.
|
2.1.4 fixed the majority of the reported sound issues.
|
||||||
</p>
|
</p>
|
||||||
|
<a name="timing"><h3>My game is skipping frames. How can I improve this?</h3></a>
|
||||||
|
<p>The Qt/SDL version of fceux runs two threads. One for the GUI and one for the emulation.
|
||||||
|
The realtime OS scheduling and priority of both of these threads can be tuned via the GUI
|
||||||
|
timing config options window (accessible via the menu bar). For Mac OSX systems, fceux must
|
||||||
|
have root permission to increase process priority. For Linux systems, add the following
|
||||||
|
lines to the <b>/etc/security/limits.conf</b> file to ensure that fceux users have the proper system
|
||||||
|
resource permissions (requires reboot after editing for changes to take place):
|
||||||
|
<pre>
|
||||||
|
* - priority 99
|
||||||
|
* - rtprio 99
|
||||||
|
* - nice -20
|
||||||
|
</pre>
|
||||||
|
</p>
|
||||||
<a name="hotkeys1"><h3>How can I change my emulator hotkey bindings?</h3></a>
|
<a name="hotkeys1"><h3>How can I change my emulator hotkey bindings?</h3></a>
|
||||||
<p>You need to edit your ~/.fceux/fceux.cfg file. The SDL.Hotkeys.* values
|
<p>SDL hotkey bindings can be remapped using the Qt GUI. Selecting "Options...HotKeys" in the menubar.
|
||||||
are SDL keysyms, which can be found in SDL_keysym.h (probably
|
|
||||||
/usr/include/SDL/SDL_keysym.h on your system). At the time of writing,
|
|
||||||
hotkeys are not mappable from the GUI in sdl (although it is planned for the future).
|
|
||||||
</p>
|
</p>
|
||||||
<a name="hotkeys2"><h3>Can I map emulator hotkeys to my gamepad?</h3></a>
|
<a name="hotkeys2"><h3>Can I map emulator hotkeys to my gamepad?</h3></a>
|
||||||
<p>If you want to map particular hotkeys (pause, save state, load state, etc) to buttons on
|
<p>If you want to map particular hotkeys (pause, save state, load state, etc) to buttons on
|
||||||
|
@ -77,6 +82,8 @@
|
||||||
<tr><th>Name:</th><th>Contribution(s):</th></tr>
|
<tr><th>Name:</th><th>Contribution(s):</th></tr>
|
||||||
<tr><td><a href="mailto:ltsmooth42 _at_ gmail _dot_ com">Lukas Sabota</a></td>
|
<tr><td><a href="mailto:ltsmooth42 _at_ gmail _dot_ com">Lukas Sabota</a></td>
|
||||||
<td>Author of this document</td></tr>
|
<td>Author of this document</td></tr>
|
||||||
|
<tr><td>mjbudd77</td>
|
||||||
|
<td>Qt/SDL Updates</td></tr>
|
||||||
</table>
|
</table>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue