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:
mjbudd77 2020-12-10 21:43:50 -05:00
parent e7ba648d3b
commit fb965bbee0
15 changed files with 60 additions and 193 deletions

2
README
View File

@ -1,4 +1,4 @@
FCEUX SDL 2.2.3 SDL README
FCEUX SDL 2.3.0 SDL README
==========================
Originally By Lukas Sabota (sf: punkrockguy318)
Updated By mjbudd77

View File

@ -2,7 +2,7 @@
use strict;
my $VERSION="2.2.3";
my $VERSION="2.3.0";
my $INSTALL_PREFIX="/tmp/fceux";
my $CTL_FILENAME="$INSTALL_PREFIX/DEBIAN/control";
my $ARCH="amd64";

View File

@ -7,8 +7,8 @@ uname -a
sw_vers
FCEUX_VERSION_MAJOR=2
FCEUX_VERSION_MINOR=2
FCEUX_VERSION_PATCH=3
FCEUX_VERSION_MINOR=3
FCEUX_VERSION_PATCH=0
SCRIPT_DIR=$( cd $(dirname $BASH_SOURCE[0]); pwd );

View File

@ -7,8 +7,8 @@ An open source NES Emulator for Windows and Unix that features solid emulation a
Interim builds:
* 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)
* 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)
* 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)
* 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.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/)
But you might like mesen more: https://github.com/SourMesen/Mesen

View File

@ -119,7 +119,7 @@ AboutWindow::AboutWindow(QWidget *parent)
mainLayout->addLayout( hbox1 );
hbox1 = new QHBoxLayout();
lbl = new QLabel( tr("© 2016 FceuX Development Team") );
lbl = new QLabel( tr("© 2020 FceuX Development Team") );
hbox1->addWidget( lbl );
hbox1->setAlignment( Qt::AlignCenter );

View File

@ -2071,7 +2071,6 @@ void QAsmView::updateAssemblyView(void)
uint8 opcode[3];
char asmTxt[256];
dbg_asm_entry_t *a, *d;
//GtkTextIter iter, next_iter;
char pc_found = 0;
start_address_lp = starting_address = X.PC;
@ -2112,12 +2111,6 @@ void QAsmView::updateAssemblyView(void)
}
//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++)
{
line.clear();

View File

@ -206,7 +206,6 @@ InitConfig()
config->addOption('y', "yres", "SDL.YResolution", 0);
config->addOption("SDL.LastXRes", 0);
config->addOption("SDL.LastYRes", 0);
config->addOption('b', "bpp", "SDL.BitsPerPixel", 32);
config->addOption("doublebuf", "SDL.DoubleBuffering", 1);
config->addOption("autoscale", "SDL.AutoScale", 1);
config->addOption("keepratio", "SDL.KeepRatio", 1);
@ -243,9 +242,6 @@ InitConfig()
config->addOption("autoInputPreset", "SDL.AutoInputPreset", 0);
// allow for input configuration
//config->addOption('i', "inputcfg", "SDL.InputCfg", InputCfg);
// display input
config->addOption("inputdisplay", "SDL.InputDisplay", 0);

View File

@ -387,7 +387,6 @@ static const char *DriverUsage =
"Option Value Description\n"
"--pal {0|1} Use PAL timing.\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"
" Devices: gamepad zapper powerpad.0 powerpad.1\n"
" arkanoid\n"
@ -405,8 +404,6 @@ static const char *DriverUsage =
"--(x/y)scale x Multiply width/height by x. \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"
"--bpp {8|16|32} Set bits per pixel.\n"
"--opengl {0|1} Enable OpenGL support.\n"
"--fullscreen {0|1} Enable full screen mode.\n"
"--noframe {0|1} Hide title bar and window decorations.\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"
" session.\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"
"--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"
@ -548,15 +544,6 @@ int fceuWrapperInit( int argc, char *argv[] )
g_config->save();
}
//g_config->getOption("SDL.InputCfg", &s);
//if (s.size() != 0)
//{
// InitVideo(GameInfo);
// InputCfg(s);
//}
// update the input devices
UpdateInput(g_config);

View File

@ -469,58 +469,6 @@ std::string GetFilename (const char *title, bool save, const char *filter)
fname = GetOpenFileName (&ofn);
#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 ();
return fname;
}
@ -530,71 +478,6 @@ std::string GetFilename (const char *title, bool save, const char *filter)
*/
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 "";
}
@ -926,9 +809,6 @@ static void KeyboardCommands (void)
{
if ( Hotkeys[HK_SELECT_STATE_0 + i].getRisingEdge() )
{
#ifdef _GTK
setStateMenuItem(i);
#endif
FCEUI_SelectState (i, 1);
}
}
@ -936,17 +816,11 @@ static void KeyboardCommands (void)
if ( Hotkeys[HK_SELECT_STATE_NEXT].getRisingEdge() )
{
FCEUI_SelectStateNext (1);
#ifdef _GTK
setStateMenuItem( CurrentState );
#endif
}
if ( Hotkeys[HK_SELECT_STATE_PREV].getRisingEdge() )
{
FCEUI_SelectStateNext (-1);
#ifdef _GTK
setStateMenuItem( CurrentState );
#endif
}
if ( Hotkeys[HK_BIND_STATE].getRisingEdge() )

View File

@ -74,7 +74,6 @@ int DTestButtonJoy(ButtConfig *bc);
void FCEUD_UpdateInput(void);
void UpdateInput(Config *config);
//void InputCfg(const std::string &);
std::string GetUserText(const char* title);
const char* ButtonName(const ButtConfig* bc);

View File

@ -58,9 +58,6 @@ static int s_srendline, s_erendline;
static int s_tlines;
static int s_inited = 0;
//#ifdef OPENGL
//static int s_useOpenGL = 0;
//#endif
static double s_exs = 1.0, s_eys = 1.0;
static int s_eefx = 0;
static int s_clipSides = 0;
@ -152,9 +149,6 @@ int InitVideo(FCEUGI *gi)
// load the relevant configuration variables
g_config->getOption("SDL.Fullscreen", &s_fullscreen);
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.XStretch", &xstretch);
g_config->getOption("SDL.YStretch", &ystretch);

View File

@ -61,7 +61,7 @@
#endif
#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
#endif

View File

@ -77,8 +77,8 @@
<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/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.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-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-Darwin.dmg?branch=master&job=MacOS">Mac OS X</a></li>
</ul>
<h3>Source Code</h3>

View File

@ -23,7 +23,7 @@
<div id="page_content">
<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>
<b>Table of Contents:</b>
<ul>
@ -36,6 +36,7 @@
<li /><a href="#features-ips">Automatic IPS Patching</a>
<li /><a href="#using">Using FCEUX</a>
<ul>
<li /><a href="#gui-styling">Qt GUI Style</a>
<li /><a href="#using-hotkeys">Hotkey Assignments</a>
<ul>
<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>
<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>
<a name="using-hotkeys"><h3>Hotkey Assignments</h3></a>
<p>
<b>NOTE:</b>There is not a GUI available to remap these hotkeys for SDL. If you really
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.
<b>NOTE:</b> The GUI has a window to remap these hotkeys for SDL.
<p>
<table border>
<tr><th>Key:</th><th>Action:</th></tr>
@ -242,7 +255,7 @@ necessarily 100% accurate or complete):
</p>
<a name="using-keys-gamepad"><h4>Gamepad</h4></a>
<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>
<tr><th>Key:</th><th nowrap>Button on Emulated Gamepad:</th></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
both a parameter and a value will be saved in the configuration file.
</p>
<b>NOTE: </b>This list is incomplete! For a full list of options, run
fceux without any arguments.
<b>NOTE: </b>This list is incomplete! For a full list of options, run:
<pre>
fceux --help
</pre>
<p>
<table border>
<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><a href="mailto:ltsmooth42 _at_ gmail _dot_ com">Lukas Sabota</a></td>
<td>FCEUX SDL documentation revival.</td></tr>
<tr><td>mjbudd77</td>
<td>FCEUX Qt/SDL documentation upates.</td></tr>
</table>
</p>
</div>

View File

@ -23,31 +23,26 @@
<div id="page_content">
<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>
<p><b>Table of Contents:</b></p>
<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="#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="#hotkeys2">Can I map hotkeys to my gamepad?</a></li>
</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
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>
<p><b>svn co https://fceultra.svn.sourceforge.net/svnroot/fceultra/fceu fceux</b></p>
<p>Instructions for compiling and installing fceuX can be found in the "README-SDL" file.</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" file.</p>
<a name="config"><h3>How do I configure a gamepad?</h3></a>
<p>
<p>If you have the GTK GUI compiled into fceuX, you can configure the gamepad by
<p>Using the Qt GUI, you can configure the gamepad by
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>
<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
@ -58,11 +53,21 @@
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.
</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>
<p>You need to edit your ~/.fceux/fceux.cfg file. The SDL.Hotkeys.* values
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>SDL hotkey bindings can be remapped using the Qt GUI. Selecting "Options...HotKeys" in the menubar.
</p>
<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
@ -77,6 +82,8 @@
<tr><th>Name:</th><th>Contribution(s):</th></tr>
<tr><td><a href="mailto:ltsmooth42 _at_ gmail _dot_ com">Lukas Sabota</a></td>
<td>Author of this document</td></tr>
<tr><td>mjbudd77</td>
<td>Qt/SDL Updates</td></tr>
</table>
</p>
</div>