Introduction



FCEUX is a Nintendo Entertainment System (NES), Famicom, Famicom Disk System (FDS), and Dendy emulator. It supports NTSC (USA/JPN), PAL (European), and NTSC-PAL Hybrid modes. It supports both Windows and SDL versions for cross compatibility.
The FCEUX concept is that of an "all in one" emulator that offers accurate emulation and the best options for both casual play and a variety of more advanced emulator functions. For pro users, FCEUX offers tools for debugging, rom-hacking, map making, Tool-assisted movies, and Lua scripting
FCEUX is an evolution of the original FCE Ultra emulator. Over time FCE Ultra had separated into many distinct branches.
The concept behind FCEUX is to merge elements from FCEU Ultra, FCEU rerecording, FCEUXD, FCEUXDSP, FCEUXDSP CE, and FCEU-mm into a single branch of FCEU.
As the X implies, it is an all-encompassing version of the FCEU emulator that provides the best of all worlds for the general player, the ROM-hacking community, and the Tool-Assisted Speedrun Community.
For more details see the version history
You can find out what we've been up to since the last release by checking the commit browser.
We also have an IRC channel #fceu on irc.libera.chat


What's New? 2.6.6
Released -- 26 August 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.


Common


Mappers

  • Minor refactor of the save game RAM code. Fixes UNROM-512 flash clearing bug during movie play.
  • Mapper 354: Add CHR-RAM protect.
  • Mapper 78: Add submapper support.
  • Added mapper 174 support.
  • Move mapper 205 to mapper 361/366, added proper mapper for 205.
  • Mapper 205: Fix for split-rom variant (UNIF)
  • Changed UNROM-512 to use 8kB of CHR-RAM memory by default.
  • Mapper 342 memory optimization.



LUA

  • Implemented LUA function memory.registerread.



Core

  • Memory initialization settings are now also applied to nametable, palettes, and sprites.
  • Fixed bug were write instructions didn't always update the databus.



Qt/SDL


Debugger

  • Added ld65 debug file symbol loader feature.
  • Added checkbox to Qt debugger menu to control trace logger auto start function on debugger open.
  • Added code to stop the trace logger on debugger close if it was the debugger who started it in the first place.
  • Added address validity checking to the breakpoint editor dialog entry fields.



Video

  • Added a third video driver option that uses a QPainter object to render QImages to the viewport (uses a pure Qt API).
  • Fixed video transparency issue that has been seen on some platforms (Wayland) by forcing alpha bits to be set to full opaque.



GUI

  • Added state recorder feature, periodically saves time history of game play states that can be recalled and played out from.
  • Fixed bug regarding force grayscale or use custom palette settings change not updating PAL 3x filter appropriately.
  • Added feature that allows loading of save state files via drag n drop file dialog operations.
  • Fixed redundant window focus bug that would occur when attempting to open a pre-existing window.
  • Added optional cross-platform libarchive interface to allow Qt GUI to open ROMs from 7zip archives.
  • Minor improvements to the ROM selection from archive dialog.
  • Improved frame scheduling timing precision.



Build
What's New? 2.6.6
Released -- 26 August 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.


Common


Mappers

  • Minor refactor of the save game RAM code. Fixes UNROM-512 flash clearing bug during movie play.
  • Mapper 354: Add CHR-RAM protect.
  • Mapper 78: Add submapper support.
  • Added mapper 174 support.
  • Move mapper 205 to mapper 361/366, added proper mapper for 205.
  • Mapper 205: Fix for split-rom variant (UNIF)
  • Changed UNROM-512 to use 8kB of CHR-RAM memory by default.
  • Mapper 342 memory optimization.



LUA

  • Implemented LUA function memory.registerread.



Core

  • Memory initialization settings are now also applied to nametable, palettes, and sprites.
  • Fixed bug were write instructions didn't always update the databus.



Qt/SDL


Debugger

  • Added ld65 debug file symbol loader feature.
  • Added checkbox to Qt debugger menu to control trace logger auto start function on debugger open.
  • Added code to stop the trace logger on debugger close if it was the debugger who started it in the first place.
  • Added address validity checking to the breakpoint editor dialog entry fields.



Video

  • Added a third video driver option that uses a QPainter object to render QImages to the viewport (uses a pure Qt API).
  • Fixed video transparency issue that has been seen on some platforms (Wayland) by forcing alpha bits to be set to full opaque.



GUI

  • Added state recorder feature, periodically saves time history of game play states that can be recalled and played out from.
  • Fixed bug regarding force grayscale or use custom palette settings change not updating PAL 3x filter appropriately.
  • Added feature that allows loading of save state files via drag n drop file dialog operations.
  • Fixed redundant window focus bug that would occur when attempting to open a pre-existing window.
  • Added optional cross-platform libarchive interface to allow Qt GUI to open ROMs from 7zip archives.
  • Minor improvements to the ROM selection from archive dialog.
  • Improved frame scheduling timing precision.



Build

Build fixes for GCC 13.

https://fceux.com/web/home.html