From fb965bbee0c62104b5737b67b3bb70a5ba5ce489 Mon Sep 17 00:00:00 2001 From: mjbudd77 Date: Thu, 10 Dec 2020 21:43:50 -0500 Subject: [PATCH] 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. --- README | 2 +- pipelines/debpkg.pl | 2 +- pipelines/macOS_build.sh | 4 +- readme.md | 4 +- src/drivers/Qt/AboutWindow.cpp | 2 +- src/drivers/Qt/ConsoleDebugger.cpp | 7 -- src/drivers/Qt/config.cpp | 4 - src/drivers/Qt/fceuWrapper.cpp | 15 +--- src/drivers/Qt/input.cpp | 126 ----------------------------- src/drivers/Qt/input.h | 1 - src/drivers/Qt/sdl-video.cpp | 6 -- src/version.h | 2 +- web/download.html | 4 +- web/fceux-sdl-docs.html | 33 ++++++-- web/fceux-sdl-faq.html | 41 ++++++---- 15 files changed, 60 insertions(+), 193 deletions(-) diff --git a/README b/README index 9f40b3ae..15ee426e 100644 --- a/README +++ b/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) Updated By mjbudd77 diff --git a/pipelines/debpkg.pl b/pipelines/debpkg.pl index ba27b62b..b2deb0cc 100755 --- a/pipelines/debpkg.pl +++ b/pipelines/debpkg.pl @@ -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"; diff --git a/pipelines/macOS_build.sh b/pipelines/macOS_build.sh index b6ac0807..0b48be4e 100755 --- a/pipelines/macOS_build.sh +++ b/pipelines/macOS_build.sh @@ -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 ); diff --git a/readme.md b/readme.md index 5719756b..149e46f9 100644 --- a/readme.md +++ b/readme.md @@ -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 diff --git a/src/drivers/Qt/AboutWindow.cpp b/src/drivers/Qt/AboutWindow.cpp index 170710ef..aab61613 100644 --- a/src/drivers/Qt/AboutWindow.cpp +++ b/src/drivers/Qt/AboutWindow.cpp @@ -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 ); diff --git a/src/drivers/Qt/ConsoleDebugger.cpp b/src/drivers/Qt/ConsoleDebugger.cpp index b1cfd107..8489c40f 100644 --- a/src/drivers/Qt/ConsoleDebugger.cpp +++ b/src/drivers/Qt/ConsoleDebugger.cpp @@ -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(); diff --git a/src/drivers/Qt/config.cpp b/src/drivers/Qt/config.cpp index 125f017f..0fa39f9b 100644 --- a/src/drivers/Qt/config.cpp +++ b/src/drivers/Qt/config.cpp @@ -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); diff --git a/src/drivers/Qt/fceuWrapper.cpp b/src/drivers/Qt/fceuWrapper.cpp index dca3d868..7638ab90 100644 --- a/src/drivers/Qt/fceuWrapper.cpp +++ b/src/drivers/Qt/fceuWrapper.cpp @@ -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,16 +544,7 @@ 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 + // update the input devices UpdateInput(g_config); // check for a .fcm file to convert to .fm2 diff --git a/src/drivers/Qt/input.cpp b/src/drivers/Qt/input.cpp index a4c6a3be..45193767 100644 --- a/src/drivers/Qt/input.cpp +++ b/src/drivers/Qt/input.cpp @@ -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() ) diff --git a/src/drivers/Qt/input.h b/src/drivers/Qt/input.h index 95a9f133..ba7ae199 100644 --- a/src/drivers/Qt/input.h +++ b/src/drivers/Qt/input.h @@ -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); diff --git a/src/drivers/Qt/sdl-video.cpp b/src/drivers/Qt/sdl-video.cpp index bead8226..259a23ea 100644 --- a/src/drivers/Qt/sdl-video.cpp +++ b/src/drivers/Qt/sdl-video.cpp @@ -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); diff --git a/src/version.h b/src/version.h index d0bca7d4..5cbfe854 100644 --- a/src/version.h +++ b/src/version.h @@ -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 diff --git a/web/download.html b/web/download.html index d922f9a3..a39d59f7 100644 --- a/web/download.html +++ b/web/download.html @@ -77,8 +77,8 @@

Source Code

diff --git a/web/fceux-sdl-docs.html b/web/fceux-sdl-docs.html index 9f4a487a..bd9c75ce 100644 --- a/web/fceux-sdl-docs.html +++ b/web/fceux-sdl-docs.html @@ -23,7 +23,7 @@

FCEUX SDL Documentation

-
Last updated October 11, 2011
Valid as of FCEUX 2.1.5

+
Last updated December 9, 2020
Valid as of FCEUX 2.3.0

Table of Contents:

diff --git a/web/fceux-sdl-faq.html b/web/fceux-sdl-faq.html index bdcfdde9..dd2159e6 100644 --- a/web/fceux-sdl-faq.html +++ b/web/fceux-sdl-faq.html @@ -23,31 +23,26 @@

FCEUX SDL FAQ

-
Last updated February 10, 2012
by punkrockguy318
+
Last updated December 9, 2020
by mjbudd77

Table of Contents:

-

What is the subversion build and how can I get it?

+

What is the git build and how can I get it?

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:

-

svn co https://fceultra.svn.sourceforge.net/svnroot/fceultra/fceu fceux

-

Instructions for compiling and installing fceuX can be found in the "README-SDL" file.

+

git clone https://github.com/TASVideos/fceux.git

+

Instructions for compiling and installing fceuX can be found in the "README" file.

How do I configure a gamepad?

-

-

If you have the GTK GUI compiled into fceuX, you can configure the gamepad by +

Using the Qt GUI, you can configure the gamepad by selecting "Options...Gamepad" in the menubar.

-

You can allso configure the first gamepad by running fceux --inputcfg gamepad1

-

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.

My sound is stuttery/laggy. How can I fix this?

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.

+

My game is skipping frames. How can I improve this?

+

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 /etc/security/limits.conf file to ensure that fceux users have the proper system + resource permissions (requires reboot after editing for changes to take place): +

+*                -    priority     99    
+*                -    rtprio       99    
+*                -    nice        -20    
+ 
+

How can I change my emulator hotkey bindings?

-

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). +

SDL hotkey bindings can be remapped using the Qt GUI. Selecting "Options...HotKeys" in the menubar.

Can I map emulator hotkeys to my gamepad?

If you want to map particular hotkeys (pause, save state, load state, etc) to buttons on @@ -77,6 +82,8 @@ Name:Contribution(s): Lukas Sabota Author of this document + mjbudd77 + Qt/SDL Updates