FCEUX Changelog

What's new in FCEUX 2.6.6

Aug 28, 2023
  • The 2.6.6 release is mainly a maintenance update for the mappers and emulation core with a few new features added in.
  • Some of these new features apply only to the Qt/SDL version of the GUI.

New in FCEUX 2.6.5 (Feb 9, 2023)

  • The 2.6.5 release is a maintenance update that contains various fixes from a back log of bugs and feature requests over the past year.

New in FCEUX 2.6.4 (Mar 24, 2022)

  • Qt/SDL:
  • GUI:
  • Fixed crash that sometimes occurs when cancelling a key mapping sub-dialog for virtual family keyboard window (Crash occurred most often on MacOS).
  • NES Header Editor:
  • Fixed mapper combo box indexing issue.

New in FCEUX 2.6.3 (Mar 9, 2022)

  • Common:
  • Core:
  • FDS IRQ emulation improvement.
  • Mappers:
  • Bug fix for mapper 16 submapper 4, allow writes to address range $6000 - $600D.
  • Bug fix for mapper 3 bus conflict logic. Bus conflicts are now only enabled for submapper 2.
  • Implemented extra RAM for mapper 225.
  • Win32:
  • Debugger:
  • Fixed loading of saved debugger breakpoint data from previous sessions. This bug started occurring when the saved binary file format changed due to the address fields changing from 16 to 32 bit values.
  • Fixed bug in address validation logic.
  • Input
  • Fixed Meta keys combination issues.
  • Qt/SDL:
  • Input:
  • Added a virtual family keyboard dialog window. This allows functionality such as emulating key presses via mouse and remapping keys to physical keyboard.
  • Added code differentiate between left/right modifier key presses (shift, alt, ctrl, meta).
  • Fixed keyboard bindings for Famicom family keyboard emulation.
  • Fixed a couple bugs for some uncommonly used Qt to SDL key code conversions.
  • GUI:
  • Fixed keyboard menu accelerator functionality for Mac OSX (non-native menu bars only)

New in FCEUX 2.6.2 (Feb 4, 2022)

  • The 2.6.2 release is a maintenance update that adds a couple minor features and fixes a few bugs for the Qt/SDL port.
  • Common Core Improvements and Bug Fixes:
  • Added WRAM support for OneBus mapper (mapper 256).
  • Fixed VROM size calculation error from NES header.
  • Qt/SDL GUI Improvements and Bug Fixes:
  • Added an auto hide main menu on fullscreen option.
  • Added an option to disable display of video overlayed GUI messages.
  • Fixed default setting for max sprites per scanline to be 8 (matching win32 port).
  • Qt/SDL Hex Editor Improvements and Bug Fixes:
  • Fixed logic to move cursor to next line when editing hits end of line.
  • Fixed inconsistent display behavior of vertical scroll bar. Viewport line offset and vertical scroll position are now always synchronized.
  • Fixed draw layering of cursor row/column coloring when in ROM view.
  • Added protections to prevent crash when editing addresses past the end of a ROM file.
  • Improved cursor blink rate to be consistent regardless of viewport refresh rate.
  • Qt/SDL Sound:
  • Fixed sound issue on FreeBSD 13. Force audio sample size to always be a power of 2 per SDL documentation.
  • Qt/SDL Build Improvements:
  • Fixed a build errors when compiling against Qt6 (6.2.2).
  • Removed usage of a few Qt6 deprecated function calls.

New in FCEUX 2.6.0 (Jan 12, 2022)

  • TAS Editor:
  • The full TAS editor has been ported over from the Win32 version. Other than minor layout changes, Win32 TAS users should find it familiar.
  • GUI Improvements and Bug Fixes:
  • Fixed occasional stack overflow issue due to unintended recursion in Qt event loop.
  • Video Improvements and Bug Fixes:
  • Added video vertical sync config option.
  • Added built-in video vertical sync test pattern.
  • Input Improvements and Bug Fixes:
  • Added escape characters to gamepad config files to fix keyboard binding issue for ',' and '' keys.
  • Build Improvements:
  • Replaced a few soon-to-be deprecated ffmpeg function calls.
  • Cleaned up a few compiler warnings.

New in FCEUX 2.5.0 (Oct 22, 2021)

  • Common:
  • Emulation Core:
  • Fixed SYA and SXA opcodes in CPU. Blargg's NES CPU TEST #5 now passes.
  • Qt/SDL:
  • New Tools:
  • Added built-in AVI RIFF Tree Viewer.
  • Debugger:
  • Redesigned debugger layout to optimize space usage.
  • Window layout uses relocatable tabbed viewports to allow for layout customization.
  • Added a tool bar for commonly used debugger buttons.
  • Moved many configuration options to debugger window menu to save space.
  • Added syntax coloring options to assembly code viewer.
  • Added opcode description popups to assembly code viewer.
  • Added assembly code custom font selection option.
  • Added symbol tool tips and address look ahead popups for assembly code viewer.
  • Added navigate backwards/forwards line history to assembly code viewer.
  • Added breakpoint on unlogged code/data feature.
  • Added breakpoint on execution of a specified PRG-ROM address.
  • Added step back one instruction feature (experimental)
  • Hex Editor:
  • Fixed draw logic to ensure that highlighted text coloring takes precidence over activity coloring.
  • Fixed crash in hex editor when searching with Ctrl+A
  • Input Control:
  • User can now save up to 3 alternate sets of gamepad button bindings in addition to the primary set.
  • Advanced gamepad bindings (to hot key functions) are now stored for each individual gamepad by GUID.
  • Fixed annoying intermittent SDL gamepad button mapping issue.
  • Lua:
  • Build fix for static linking of lua. Ensure proper compiler flags are set for linux and mac OS to enable lua plugin functionality.
  • Movies:
  • Added optional linking of ffmpeg (libav) libraries for AVI recording. Provides full use of available encoders and options.
  • Implemented AVI 2.0 Indexing Specification. This new indexing scheme eliminates 2GB AVI file recording limitation.
  • Fixed video messages and HUD presentation AVI display options.
  • GUI Improvements and Bug Fixes:
  • Went through all debug tool windows and made sure that all configuration options are saved (persist on application restart).
  • The position and size of all debug/tool windows is now saved at window close and restored at window open.
  • For debug windows, if attempting to open a window that is already open, that window is raised to top and focused.
  • Bug fixes for scroll bar presentation on custom viewport widgets in debug tools windows (debugger, hex editor, trace logger).
  • Added main window context menu to Qt GUI.
  • Various color customization options for debugger and hex editor.
  • Changed hot key config window tree layout to sort keys into logical groups.
  • Added offline help documentation viewer feature. (chm viewer for windows and Qt help engine for unix)
  • Video Improvements and Bug Fixes:
  • Fixed video message positioning so that it is not clipped when 8 pixel side clipping is active.
  • Added integer frame rate option to better sync video with monitor refresh.
  • Changed update rate of video frames per second display so that it is more readable.
  • Sound Improvements and Bug Fixes:
  • Added option to mute sound when main window is not in focus.
  • Improved sound sample underflow/overflow algorithm to allow for better scaling with running the emulation at faster/slower speeds.
  • Sound sample processing efficiency updates.
  • Added an audio buffer percent usage indication and an audio sink starve counter to sound config window for debug purposes.
  • Build Improvements:
  • OpenBSD OS build fixes.

New in FCEUX 2.4.0 (Jun 25, 2021)

  • Qt/SDL Build Improvements:
  • Added Windows to supported operating systems.
  • Now buildable against both Qt5 and Qt6.
  • Unix OS build fixes.
  • Qt/SDL New Tools:
  • Added a pattern table tile editor to the PPU viewer.
  • Added a sprite table viewer window.
  • Added an NES palette color editor tool. Can now edit palette RGB values in realtime.
  • Qt/SDL Nametable Viewer:
  • Added tile and attribute gridlines visibility feature.
  • Rearranged window layout.
  • Viewport now has zoom levels.
  • Viewport now has context menu functionality.
  • Qt/SDL PPU Viewer:
  • Added tile gridlines visibility feature
  • Improved active palette display.
  • Added pattern table tile viewer context menu options.
  • Added a click or hover focus policy option to select tile via mouse.
  • Qt/SDL Movies:
  • Added AVI and WAV recording capability.
  • Qt/SDL Trace Logger:
  • Fixed buffer overrun issue.
  • Improved disk write performance.
  • Qt/SDL Hex Editor:
  • Improved editor responsiveness.
  • Added a font selection option for text customization.
  • Added row / column coloring options.
  • Qt/SDL GUI Improvements and Bug Fixes:
  • Added main menu hide feature.
  • Accelerators added to main menu.
  • Hot key interface re-worked to better integrate with main menu shortcuts.
  • Added menu preset options for autofire pattern and fixed timing issues.
  • Added an quick access link to fceux online documentation.
  • Added a recent ROMs list to the main menu.
  • Added TBL support to hex editor.
  • Bug fixes for using native OS QFileDialog option.
  • Added RAM init menu options
  • Added Qt style plugin and stylesheet selection/load options to UI config window.
  • Added feature that allows the binding of gamepad buttons to key sequences that can trigger GUI shortcuts.
  • Added PPU overclocking feature to timing config window.
  • Qt/SDL Video Improvements and Bug Fixes:
  • Added aspect ratio selection support.
  • Added viewport cursor and draw input aids options.
  • Added visible scanline entry fields to video config window.
  • Fixed crash issues when switching between OpenGL and SDL drivers.
  • Fixed New PPU selection via video config window.
  • Fixed image distortion issues when using various video scalers and clipping.
  • Screen shot function now captures raw window pixels to allow for higher resolution, aspect ratio and scaler effects to be seen in image.
  • Added NTSC/PAL/dendy auto detection at ROM load.
  • Qt/SDL Stability Fixes:
  • Fixed various segmentation faults
  • Fixed various memory leaks caught by valgrind.
  • Cleaned up many compiler and cppcheck warnings.

New in FCEUX 2.3.0 (Feb 10, 2021)

  • Common:
  • •64 bit build support
  • Emulation:
  • Added Mapper 111 cheapocabra
  • Added Mapper 190
  • Added RAM Init Options: default (00 00 00 00 FF FF FF FF as always), all FF, all 00, random
  • New UNIF mappers
  • Mapper 30 4-screen support
  • Mapper 5 MMC5 large WRAM support
  • VRC7 patch set finalized with correct values dumped by Nuke.YKT
  • Fixed rendering and debugging of mirrored palette entries
  • Lua:
  • Various improvements and bug fixes to pre-existing functions
  • Fix parsing of lua colors over 0x80000000 on 32bits systems
  • Extra colors available to lua overlays
  • Lua write callbacks: adding optional third parameter to retrieve the value written
  • Added Sprites.lua script to visualize sprites
  • Zapper control
  • New Lua functions:
  • Emu.exit()
  • Rom.getfilename()
  • Zapper.set(table input)
  • Win32:
  • Various GUI improvements and bug fixes
  • Fixed font rescaling issue
  • Relative position mouse support for better fullscreen mouse capture
  • Left and right mouse buttons no longer conflict with each other
  • Virtual boy controller
  • Fixed silly quit message randomizer
  • Fixed NTSC filter null pointer crash when closing, NTSC filter now supports emphasis
  • Sound output is now 48000 Hz by default
  • Improve error message for invalid ROM file
  • Debugger:
  • Added memory read/write conditional breakpoint capability
  • Added illegal opcode support for breakpoints
  • Support for 'S' register in conditional debugger breakpoints
  • Syntax highlight of disassembly
  • Fixed corruption of PPU reset while debugging
  • Attribute mode for nametable viewer
  • Greyscale palettes for PPU and nametable viewers
  • Fixed transparent sprite palette display in PPU viewer
  • Fixed accidental filtering of special symbols
  • Trace Logger:
  • Added bank number log option
  • CDLogger:
  • Fix Fixed VRAM data logging glitch
  • Hex Editor:
  • Added OAM view feature
  • Added Home/End key response
  • Bookmark fixes for all view region types
  • Fixed Find dialog to be able to find the first or last byte of the memory region
  • Prevent middle mouse button from attempting to "FreezeRam" when not in RAM mode
  • Added Load from file feature
  • INES Header Editor:
  • A new tool which can edit the iNES header of ROM files
  • TAS Editor:
  • Fixed dialog height that kept increasing
  • SDL:
  • GUI completely rewritten using Qt5. Replaces old GTK GUI
  • New Qt GUI now contains most of the debug tools that previously only existed in windows version
  • Build setup migrated to cmake. Replaces scons build setup

New in FCEUX 2.2.3 (Sep 21, 2016)

  • The 2.2.3 release fixes a number of emulation bugs, features overclocking (for lag reduction) and Dendy mode, and adds support for a bunch of new ROM dumps (mostly unlicensed). Reverse engineering tools and Lua scripting have got some updates, new input devices are supported, new palette files have beed added. The SDL port has been fixed and updated as well.
  • Common:
  • Customizable overclocking
  • Dendy mode
  • Fixed rerecord counting broken outside taseditor
  • Emulation:
  • Added mappers: 29, 30
  • Fixed mappers: 225, 119, 4, 35, 31, 69, 212, 45
  • Fixed mmc5 IRQ handling
  • Fixed mmc1 reg#3 masking
  • Fixed vrc7 sound savestates
  • Added CoolBoy, KS7010, SB200, UNIF 158B, UNIF DRAGONFIGHTER, UNIF BMC-10-24-C-A1, UNIF EH8813A, UNIF HP898F, UNIF F-15, UNIF RT-01, UNIF UNL-KS7017, UNIF BMC-81-01-31-C, UNIF UNL-8-IN-1
  • NES 2.0 support
  • Fixed UNIF BMC 12 IN 1, UNIF OneBus
  • Movies:
  • Fixed a bug with FDS flag being always set when converting a FCM
  • Video:
  • Prescale filter for 2x, 3x and 4x resolutions
  • Made NTSC filter internal resolution closer to 4:3
  • Palette:
  • Support 512 color palettes
  • Added external palettes: SONY_CXA2025AS_US.pal, RP2C03.pal (and its versions), Unsaturated-V6.pal
  • Option to swap deemphasis bits
  • Sound:
  • Option to swap duty cycles
  • NSF can be set to Dendy mode
  • Input:
  • Fix Mouse input implementation
  • Support for SNES mouse
  • PEC-586 russian keyboard support
  • Lua:
  • Removed speed notification per script reload, if it remained 100%
  • Fixed lua drawings in NSF
  • Proper halo for lua font
  • Fixes to sound.get() region consistency and frequency/midikey detection for Noise and DPCM channels
  • New Lua functions:
  • emu.getpath()
  • emu.loadrom()
  • rom.writebyte()
  • gethash()
  • Win32:
  • Added -dumpinput and -playinput functions
  • Support for SNES pad
  • Added onscreen messages when region changes
  • Debugger:
  • Added debuggerPageSize config variable which lets you pick whether 8KB physical PRG pages are used, or 16KB (the original). It defaults to 14 (1

New in FCEUX 2.1.0a (May 7, 2009)

  • Major Bug / Crash Bug Fixes
  • Fixed throttling problems that resulted on AMD Dualcore processors. (Caused FCEUX to appear to be in turbo mode).
  • Fix major crash issue where NROM game (such as SMB) savestates were writing erroneous information if a non NROM game was loaded prior.
  • Fixed a bug that caused a new sav file to not get created when loading a 2nd battery backed game.
  • Fix Directory Overrides so to allow users to have no override. Also fixes directory override reset bug.
  • Minor Bug fixes
  • Hotkeys - prevent "Hotkey explosion" where some laptop keys set off all unassigned hotkeys
  • Timing - "disable throttling when sound is off" now only affects FCEUX when sound is off
  • Clip Left and Right sides taken into account when drawing on screen (record/play/pause, lag & frame counters, messages, etc)
  • Fixed bug where having sound off and Mute turbo caused chirps when toggling
  • Video settings - fixed bug when both aspect ratio correction and special scaling 3x are set, video was getting resized incorrectly
  • Auto-save cleanup -prevent loading an auto-save from previous session. Added flags for enabling auto-save menu item.
  • Fixed issues related to big endian compiling.
  • Fix bug so that Escape can now be assigned as a hotkey
  • Fixed bug in screenshot numbering that caused numbering to not reset when changing games.
  • SDL
  • SDL Movie subtitle support and subtitle toggle hotkey added.
  • SDL Added fcm to fm2 converter tool to SDL version.
  • SDL Improved the SDL sound code; drastically improves quality of sound.
  • SDL Savestate slots are now mappable.
  • SDL Major updates to SDL documentation
  • SDL Added Shift+M for toggling automatic movie backups.
  • SDL Added option to mute FCEUX for avi capturing, check the documentation for more details.
  • SDL Added --noconfig command line option
  • SDL Frame Advance Skip Lag frames toggle implemented
  • New Features Win32
  • The latest mappers and mapper fixes from FCEU-mm. Adds support for many new games such as Warioland II (Unl), Shu Qi Yu, and Street Dance
  • Full screen mode fixed! Also, Alt+Enter properly toggles full screen.
  • Individual control for sound channels! (See sound config for details).
  • Undo/Redo Savestate/Loadstate features installed! No more loss of data to unintentional presses. (See getting started for details).
  • Movie subtitles can now be included in .fm2 files. See .fm2 documentation for details and Movie options for details on customizing.
  • Auto-backup for movie files. (See movie options for details).
  • A Ram change monitor for the Memory watch dialog. (see memwatch for details).
  • Frame counter works even without a movie loaded.
  • AVI Directory Override option.
  • GUI / Menu Enhancements
  • A right-click context menu added! Includes many commonly used items for a variety of situations.
  • Menu items that are hotkey mappable now show their current hotkey mapping
  • Major overhaul to the Menu organization.
  • All FCEUX features are now accessible in the menu
  • Alt Menu Shortcuts properly configured
  • Menu items are properly grayed when not useable
  • All movie related menu items moved to a Movie options dialog
  • Removed hard-coded Accel keys and replaced with re-mappable hotkeys (Open & Close ROM)
  • Drag & Drop for .fm2 and .lua files
  • Many new functions added to the context menu (See context menu for details)
  • New Mappable Hotkeys: Open Cheats, Open ROM, Close ROM, Undo/Redo save state, Toggle Movie Subtitles
  • Lua
  • Added input.get() ! Returns the mouse info and all keyboard buttons pressed by the user.
  • Fixed joypad.set(). False now sets a button to off. Nil does not affect the button at all (allowing the user to still control it).
  • gui.text() Increased height (to approx. 7 lines).
  • speedmode("turbo") now turns on turbo (which employs frame-skipping) rather than max speed.
  • memory.readbyte will recognize frozen addresses (cheats).
  • movie.framecount() always return a number, even when no movie is playing (since the frame counter is implemented without a movie loaded).
  • Added FCEU.poweron()
  • Added FCEU.softreset()
  • Added FCEU.lagged()
  • Added FCEU.lagcount()
  • Added FCEU.getreadonly()
  • Added FCEU.setreadonly()
  • Added FCEU.fceu_setrenderplanes(sprites, background)
  • Added movie.active()
  • Added movie.rerecordcount()
  • Added movie.length()
  • Added movie.getname()
  • Added movie.playbeginning()
  • Added -lua command line argment, loads a Lua script on startup
  • Added zapper.read() - returns the zapper (mouse) data. (Currently does return zapper data in movie playback).
  • Added joypad.write and joypad.get for naming consistency.
  • Added rom.readbyte()
  • Added rom.readbytesigned()
  • Sound Config
  • Turning sound off disabled sound config controls
  • Re-enabled sound buffer time slider control
  • Hex Editor
  • Freezing ram addresses automatically updates the Cheats dialog if it is open.
  • Added prevention from freezing more than 256 addresses at once (doing so caused crash bugs).
  • Dialog remembers window size.
  • Dump Rom & Dump PPU to file Dialogs use ROM to build default filename
  • Maximize and minimize buttons added.
  • Help menu item added
  • Memory Watch
  • Dialog now includes Ram change monitoring. (see memwatch for details).
  • Dialog is now collapsible to 1 column.
  • No longer crashes when attempting to load an invalid file from the recent file menu.
  • Cancel option added to the save changes dialog.
  • Memory address values that are frozen by the debugger or hex editor are displayed in blue.
  • Fixed bug that caused dialog to "disappear" due to saving -32000 as its window position.
  • Save as dialog uses ROM name to build a default memory watch filename if there was no last used memory watch filename
  • Drag and drop for .txt (memory watch) files.
  • Minor menu and hotkey fixes.
  • Watch values now compatible with custom windows dialog colors.
  • Debugger
  • Shows scanlines and PPU pixel values
  • Shows scanlines even while in VBlank
  • Added a Run Line button (runs 1 scanline per click)
  • Run 128 Lines button (runs 128 scanlines per click)
  • Number of active cheats listed.
  • Cheats list automatically updated if ram addresses are frozen in the hex editor.
  • Fixed bug that caused dialog to "disappear" due to saving -32000 as its window position.
  • Debugger now has a minimum valid size
  • Added "Restore original window size" button
  • PPU Viewer
  • Default refresh value set to 15
  • Refresh value stored in the .cfg file
  • Nametable Viewer
  • Default refresh value set to 15
  • Refresh value stored in the .cfg file
  • Trace Logger
  • Fixed bug where user can't scroll the log window while it is auto-updating.
  • Changed message about F2 pause (left over from FCEUXDSP) to display the current hotkey mapping.
  • Text Hooker
  • Saving a .tht file no longer crashes
  • Dialog updates every frame
  • Initialization error checking reinstalled,
  • Dialog remembers window position
  • Fixed bug where canceling save as produces an error message.
  • Save As produces default filename based on the current ROM
  • Message Log
  • Remembers X,Y position
  • Resized width and height
  • Allowed more lines of text to appear on the screen at once.
  • Metadata
  • Remembers window position
  • Can be called from the context menu if a movie is loaded (see context menu for details).
  • TASEdit
  • added help menu item
  • disabled menu items that are not currently implemented.
  • Turbo
  • Turbo now employs frame skip, greatly increasing its speed
  • The mute turbo option completely bypasses sound processing (another big speed boost)
  • Turbo now works with the Lazy wait for VBlank sync setting