2.6.6 / 28-08-2023
FCEUX
Accuracy
Performance
Features
Fceux is an open-source Nintendo Entertainment System and Family Computer Disk System emulator. It's a merger of various forks of FCE Ultra. While not being cycle-accurate, it's has quite an accurate emulation and offers extensive tools for debugging, rom-hacking, map making, Tool-assisted movies, and Lua scripting.
--
Windows: 7+
Linux: Ubuntu
MacOS: X+ (check DevBuilds section)
Most Recent Changes
--2.6.6--
This 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.
--2.6.5--
The is a maintenance update that contains various fixes from a back log of bugs and feature requests over the past year.
Common
Mappers
Mapper 225 Update to also support 255
Mapper 235: Update support for 260-in-1 and add UNROM mode
Mapper 268 (COOLBOY): Updated
Added Mapper 342 (COOLGIRL) support
Added Mapper 354 support
Added Mapper 470 support
UNROM-512 emulation fixes
Added cycle IRQ mode for Konami VRC mappers
Core
Changed built-in palettes to be bit-shifted properly so that whites are pure FF
Various fixes for issues caught by clang code sanitizers
Added hotkey to allow for global enable/disable of cheats
Memory allocation and alignment code cleanup
Win32
Debugger
Added protections to guard against corrupt save files
Hex Editor
Added ability to apply ROM file pasting as a single undoable action
Trace Logger
Changed disk flushing logic to be more efficient giving significant performance increase
IPS
Added support for loading IPS files on top of already loaded ROMs
Qt/SDL
GUI
Added logic to raise and shift focus to hex editor window when opening from debugger
Added separate hot keys for hard and soft NES reset functions
Added logic to prevent controller buttons that are bound to the keyboard from being active when family keyboard is enabled. Controller buttons that are mapped to physical gamepad or joystick are unaffected
Fixes for OpenGL blending parameters
Added option to use palette background color as video background
Added sound mute function. Accessible either via hot key or checkbox on sound config window
Added option to set fceux base/config directory path via FCEUX_CONFIG_DIR environment variable
Debugger
Changed debugger data save file extension to be .fdb instead of .dbg so that it does not conflict/overwrite ld65 debug symbol files
Trace Logger
Now ensures that logged output is flushed to disk when emulator is paused. This ensures that latest data is available for inspection when stopped at a breakpoint
Lua
Implemented support for input.get() lua function binding
Added lua script loading via file drag and drop feature
Added debugger.getsymboloffset lua function binding. Allows querying of debug symbols from lua scripts.
Build
Added cmake SOURCE_DATE_EPOCH hook to allow setting of UTC timestamp for reproducible binary builds
Added clang address/undefined behavior sanitizer build option for unix debug builds
Upgraded Win64 build to link SDL2 library version 2.24.1
Upgraded Win64 build to link ffmpeg library version 5.1.2
Updated code to remove usage of ffmpeg 5.1.x deprecated symbols
Cleaned up a few compiler warnings
--2.6.4--
This release is a maintenance update that fixes a couple bugs for the Qt/SDL port.
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.
--2.6.3--
This release is a maintenance update that fixes a few bugs for both the Win32 and Qt/SDL ports.
Common
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.
FDS IRQ emulation improvement.
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)
--2.6.2--
This elease is a maintenance update that adds a couple minor features and fixes a few bugs for the Qt/SDL port.
Common
Core
Fixed VROM size calculation error from NES header.
Mappers
Added WRAM support for OneBus mapper (mapper 256).
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).
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.
SDL Sound
Fixed sound issue on FreeBSD 13. Force audio sample size to always be a power of 2 per SDL documentation
Build Improvements and Bug Fixes
Fixed a build errors when compiling against Qt6 (6.2.2).
Removed usage of a few Qt6 deprecated function calls.
--2.6.1--
The 2.6.1 release fixes a few bugs that were found shortly after the 2.6.0 release.
Qt/SDL
GUI Improvements and Bug Fixes
Fixed Qt cursor override stack overflow issue. Code now properly calls QGuiApplication::restoreOverrideCursor following QGuiApplication::setOverrideCursor.
Fixed application crash when attempting to open/close the CDL window more than once.
Fixed inverted vertical scrollbar on Qt Trace logger. Added page up/down key shortcuts for Trace logger viewport.
Added an optional splash screen at startup. Splash screen defaults to off and can be enabled in GUI config dialog.
RAM Search Improvements and Bug Fixes
Changed Qt RAM search logic to skip over RAM mirrors. Changed GUI to allow for searching of RAM, SRAM, and ROM regions to be individually selectable.
Build Improvements
Applied cmake SOURCE_DATE_EPOCH patch for reproducible builds.
Windows Build Dependency Upgrades
Upgraded to SDL version 2.0.20
Upgraded to ffmpeg version 5.0
--2.6.0--
This release features the addition of the TAS Editor to the Qt/SDL port. There are also a few other bug fixes.
Qt/SDL - 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.
--2.5.0--
The 2.5.0 release features significant enhancements and improvements to the Qt/SDL port. Specifically the debug tools and AVI recording capabilities.
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.
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.
--2.4.0--
The 2.4.0 release primarily focuses on improving stablity and capabilities of the Qt/SDL GUI port.
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.
--2.3.0--
The 2.3.0 release includes 4 years worth of improvements and bug fixes.
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
--2.2.3--
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<<14 == 16KB).
Set symbolic debugger name entry dialog text limits when creating a new label
Fixed new-PPU debug information (address and pixel)
Step Into hotkey
More granular accounting of scanline and dot
Trace Logger
Fixed incorrect display of resolved address for (FF,x)
Symbolic debugging
Optionally display register names
CDLogger
Fix crash when attempting to open file picked as target for Save Stripped ROM operation
PPU Viewer
8x16 sprite display mode
Hex Editor
Added option to dump entire 64k memory space
Don't forget to load the symbols, when hex editor is first launched before debugger
Show values for registers $4000-$4017
Cheats
mmc5 Akumajou Dracula crash fix
More RAM available in search
SDL
Added apply button to video config dialog
Added link to libgd project download page in readme
Noted optional libgd dependency in readme
SCons: Fixed logic for LOGO and CREATE_AVI options
Manpage updates
Added hotkeys for volume up/down
Menu toggling with the Alt key
Print error when opengl/scalers are both enabled
Fixed bug where lua open file gui would default to home directory
--2.2.2--
The 2.2.2 release fixes a number of emulation bugs and adds many new features, most of which are related to debugging and reverse engineering.
Common
Properly savestate NSF files
"Auto-resume old play session" now also works with NSFs
Emulation
Fixed mappers 178, 28, 53, 154, 43, 253, 19, 2
Mapper 012 - added hardware dip for language select
UNIF PEC-586 - fixed render, added 512K cartridges suppport
Fixed UNIF 8157, UNIF T-262, UNIF DANCE2000
Palette RAM reading fix for Old PPU
Bring some improvements to New PPU from BizHawk, fix vtoggle5/6 back to vtoggle
Fixed mmc5 savestates
Lua
Fix wrong frequency calculation in sound.get() function
New Lua functions:
tobitstring()
memory.readword()
memory.readwordsigned()
debugger.hitbreakpoint()
debugger.getcyclescount()
debugger.getinstructionscount()
debugger.resetcyclescount()
debugger.resetinstructionscount()
Win32
Added "Square pixels" option to Video Config
"TV Aspect" ratio can be customized, by default it's 4:3
Changed "Disable hardware acceleration" checkbox to a drop-down list with 3 options
Movie recording: remember last Author name when creating a new movie
Movie recording: added ability to record "Insert coin" command (for VS games)
When no script is currently running, Shift+L loads the most recent Lua script
Dynamic link to lua51.dll instead of static linking, because some external libraries might crash without lua51.dll
Updated 7z.dll to v9.22
A couple of fixes which deal with "multiple ROMs in a single archive" case
Auto-disable "Game Genie ROM" feature when no "gg.rom" file is found
Fixed "Single Instance Mode"
TAS Editor
Comply with Lua movie.rerecordcounting() setting
Fixed workflow with "Auto-adjust Input according to Lag" disabled
Debugger
Smart scrolling up/down by whole instructions - ported from an obscure version of FCEUXD 1.1
Scrolling maintains relative position of the ">" pointer inside the Disassembly window
Highlight PC pointer line when a breakpoint is hit
debuggerFontSize can be specified in fceux.cfg
Fixed storing and loading .deb files when working with archived ROMs
Fixed Cycles counter reset when loading an earlier savestate
Added Symbolic Debug naming by right-clicking any address or name
Symbolic names behave the same way as usual addresses
Newly created Bookmarks inherit existing symbolic name by default
Added CDL data column to the left from Disassembly, to distinguish executed branches of code from not executed
Added 'T' condition for breakpoints (it checks the bank of the accessed data, see docs)
Trace Logger
The dialog window can be resized
Do not clear window log when stopping the logging
Added "Log Cycles count" and "Log Instructions count" options
Added Symbolic Debug naming by right-clicking any address or name
Clicking any address select the address
Double-clicking any address brings Debugger at the address
Added mouse wheel support
Only output "from $XXXX" when the subroutine was called by JSR
PPU Viewer
Added "Mask unused graphics" feature (needs Code/Data Logger running)
Fixed window layout when using big fonts
Hex Editor
Added "Highlighting" submenu and "Highlight Activity" feature
Added Symbolic Debug naming by right-clicking any address
Specify Data bank condition when adding a Breakpoint by context menu
Fixed bugs when saving files while working with ROMs in archives
hexeditorFontSize can be specified in fceux.cfg
RAM Search/RAM Watch
Added "Hex Editor" button to RAM Search (right-clicking an address works as well)
Fixed RAM Watch bug when contents of old .wch file were mixed with the newly saved data
SDL
"--periodicsaves" command line option
"--4buttonexit" command line option
"--loadstate X" and "--savestate X" command line options
Added Unity desktop support
Added otion to use system-provided LUA library instead of statically linked LUA
Fix issue where battery backup save was not being saved when using "Quit" hotkey
Fixed bug where FCEUX would take exclusive grab of input in windowed mode when resuming from pause
--2.2.1--
The 2.2.1 release fixes many bugs and adds a couple of new features. The most notable feature is "Auto-resume old play session", which is similar to "Suspending Play". Enable this option in the Config menu and now you can close ROMs or emulator anytime, next time the game state will be resumed from the closing point.
Common
Speed up HUD text drawing
Emulation
Finished mappers to boards conversion
Fixed mappers 99, 228, 18, 198, 24, 26, 69, 19
Mapper 115 - redesign according to the hardware tests
Fixed "you ling xing dong" by assigning to mapper 192
Fixed crash when four-screen bit is set after CRC check
UNIF: verbose/safe chunk loading, fixes some crashes
Lua
removed "shadow pixels" from gui.text()
New Lua functions:
gui.parsecolor()
New scripts:
JumpingFCEUXWindow.lua
Win32
Fixed "Enter New Input" dialog (Hotkeys mapping)
Fixed zapper and mouse positioning in fullscreen
Remodel "Video config" dialog
Added "TV Aspect (4:3)"
Holding Shift when resizing FCEUX window inverts "Force integral factors" meaning
Fixed window regions redrawing
Added the option to define custom emulation speed (NES->Emulation Speed->Set Custom Speed)
Now Frame Advance timings (initial delay and speed) can be tweaked by user
Added Config->Enable->Auto-resume old play session
Moved "Config->Game Genie" to "Config->Enable->Game Genie ROM"
Play movie dialog shows New PPU in red if the required setting does not match
Fixed NameTable Viewer crash when the corresponding nametable RAM is not available on the cart
The number of active cheats is displayed on screen when a ROM is loaded
PPU/PAL/Input type changing is disabled when a movie is playing
TAS Editor
Fixed keyboard accelerators when editing Notes
Fixed Greenzone saving while emulator is unpaused
Fixed drawing bugs when the Playback cursor moves more than once within one update
Changed "Compact save" dialog, added 4 options of Greenzone saving
Added "Config->Project file saving options"
Changed "Follow cursor" logic, now the Piano Roll doesn't follow Playback cursor while seeking
No "Autopause at the end of the Movie" when Recording
Fixed bug when adding new item to History Log
Fixed Bookmarks List height on Windows 7
Trace Logger
Fixed RAM-located code logging when CDLogger options are enabled
Fixed automatic window update when a breakpoint is hit
Fixed RTS padding
Code/Data Logger
Added current CDL filename field and default CDL naming
Added "Auto-save .CDL when closing ROMs" option
Added "Auto-load .CDL when opening the window" option
Added "Auto-resume logging when loading ROMs" option
Improved CHR logging, now it also logs the data when using Old PPU
Hex Editor
Show symbolic names in the window caption when "Symbolic debug" is enabled
Fixed crash when trying to save ROM to an invalid path
Fixed ROM coloring when using CDLogger data
RAM Search
Added "Search ROM" option
Cheats
Added "Add from CHT file..." button
Update the list of cheats when ROM is changed
SDL
Use desktop resolution for fullscreen by setting SDL.XResolution and SDL.YResolution to 0 (new default is 0)
Fixed bug where "quit" hotkey would do nothing in '--nogui' mode
Fixed fullscreen zapper issues
Display a message dialog on errors in addition to printing to stderr
Added "Options->Auto-Resume Play"
Fixed build issues on various versions of OS X
--2.2.0--
The 2.2.0 release fixes a lot of bugs and adds many new features to prior releases, increasing game compatibility and enhancing usability of both Windows and SDL ports. The Windows version also includes major improvement of debugging tools and introduces the new powerful toolset – TAS Editor v1.0 – created to boost efficiency and ease of Tool-Assisted Speedrunning.
Common
Fixed crash when using machine with no sound card
Fixed long savestate messages containing path
Soft reset and power switch messages
All onscreen messages are now logged to Message Log
Fixed wrong default palette entry
Fixed bug when loading UNIF games
Improved HUD text rendering wrapping
"Display FPS" option
Emulation
PAL/NTSC noise channel bug fixed
All latest mapper changes from fceu-mm
Also added mappers 176, 116, 156, 252, 28
Fixed mappers 242, 227, 115, 248, 12, 164, 15, 253, 23, 178, 90, 73 and many others
Straighten out bandai m159/m016 handling and add valid null-EEPROM emulation to get those games booting.
Add ability for CNROM games to choose whether they have bus conflicts (fixes Colorful Dragon (Unl) (Sachen), since it flakes out if bus conflicts are emulated)
Fixed bus conflict emulation, no kage no densetsu bug anymore
Fixed newppu bug which prevented metroid from booting, CHR RAM was not getting initialized to anything
Newppu - fix bug in scroll reg logic causing mis-scrolls in p'radikus conflict
Movies
Fixed old bug in "Play Movie From Beginning"
Fixed replay engine bug that doubles the last input of the movie
Fixed movie savestates logic, loading post-movie savestates from different timeline is not allowed in read-only
Fixed savestates filenaming bug when working with a movie
Added support for HUD recording in AVI dumping
Rerecords counter display
Config->Movie options->Always suggest Read-Only replay (for Replay dialog). No more accidental rewrites!
Removed "Lag Counter Reset" hotkey, as it was obsolete since FCEUX 2.0.2
Lua
Fixed lua drawing alpha blending
Auto-clearing previous frame drawings (same behaviour as other emulators)
New library: taseditor (Windows-only) - contains 24 functions, see taseditor.chm
New Lua functions:
emu.paused()
emu.setlagflag()
joypad.getimmediate()
New scripts:
BoulderDash_AmoebaAI.lua
ButtonCount.lua
CustomLagIndicator_RvT.lua
RBIBaseball.lua
SoundDisplay.lua
SoundDisplay2.lua
taseditor\InputDisplay_for_Selection.lua
taseditor\InvertSelection.lua
taseditor\RecordBackwards.lua
taseditor\ShowNotes.lua
taseditor\Swap1P2P.lua
taseditor\TrackNoise.lua
Win32
Total revamp of fulscreen support
Fixed graphic tearing with vertical sync enabled
Added "Maintain aspect ratio" option to Video config
Added "Hide mouse cursor" and "Use console BG color for empty areas" options to Video config
Added "Switch fullscreen by double-click" option to GUI config
Added "Force Grayscale" option to Palette config
Fixed crashes and bugs caused by 2.1.5 allowing hotkeys without ROM loaded
Lua console now gets proper file path when selecting a file from the recent menu
Fixed context menus to use rightclicks in context menus correctly
Reload hotkey now also supports removing invalid filenames in Recent ROMs
Replay dialog speedup, it doesn't search for movies in fceux root folder anymore
Support multibyte languages for opening files through drag&drop (except for Lua files)
Loading TAS Editor projects (*.fm3) by drag&drop
Fixed bug with Input Config not displaying some key names
Launch tools hotkeys shown in menu; general cleanup of menu/settings, changed some checkboxes to radiobuttons
Added "Clear" button to Message Log
TAS Editor
Completely rewritten tool with brand new architecture and design. Too many changes to enlist, see taseditor.chm
Debugger
General window layout cleanup; different font; ".DEB files" can be switched off; etc
Deleting a breakpoint/bookmark leaves selection in the list
Fixed mysterious out of bounds condition while editing breakpoints
Fixed RAM peek by a rightclick on left pane
Allow Frame Advancing when Debugger is in breakpoint state
Disabled breakpoints now don't impose slowdown
When a breakpoint is hit, it becomes highlighed (selected) in the breakpoints list
Show the number of breakpoints (enabled and total) above the breakpoints list
">" points at current line in disassembly
Improved stack display
Added "CPU cycles" and "Instructions" counters (cumulative and delta)
Added "Cycles counter exceeds N" and "Instructions counter exceeds N" type of breakpoints
Single click on any address copies this address to the "Seek To" field and "Bookmark Add" field
Double-click on any address prompts "Add Breakpoint here" dialog
"ROM offsets" option displays real ROM addresses in the Disassembly window
Fixed conditional breakpoints bug: the error message didn't appear when editing a breakpoint
Fixed and improved Symbolic debug (Names and Comments display)
Added Bookmarks naming
Cleaned up and vastly improved debugging documentation
Trace Logger
Added "Symbolic trace" option
"RTS" instructions now output the subroutine address/name
Added "Use Stack Pointer for code tabbing (nesting visualization)" option
Added "To the left from disassembly text" option for log format customization
Added "Log current Frame number" option
Added "Log emulator messages" option
Added "Log breakpoint hits" option
Fixed bug with trying to log to file without choosing a filename
Tracer now also updates its window when user pauses the game, not just when Debugger snaps
Code/Data Logger
Now can log data access from RAM code
"Save Unused Data" button complements "Save Stripped iNes Rom" feature
Now can log VROM access (CHR banks of the ROM) when NewPPU is enabled
Hex Editor
Display 0x5000-0x5FFF contents
Ctrl+F opens Find dialog
RAM Watch / RAM Search
Updating list when emulator is paused (on Power or when resetting search)
Fixed loading Data Size and Data Type from a .wch, now corrupted .wch won't crash
Cheats
Added Compare box to the Cheats window
Don't lose cheat compare value when toggle cheat enables through UI
Parse cheat files with non-ASCII characters properly
SDL
gtk 2.24 now recommended
added gtk hotkey configuration dialog
updated/added various gui elements for options
new option: SDL.ShowFPS
new option: SDL.Input..EnableOppositeDirectional - allow/disallow simultaneous right+left/up+down input
fixed various build issues
fixed segfault occuring during particular sequences in the cheat menu
fixed potential segfault with gui
fixed segfault issue on debian/ubuntu with proprietary nvidia drivers
now compatible with llvm/clang++
added build option to dynamically link lua
updated default server configuration file to "fceux-server.conf" (from "fceu-server.conf")
updated manpage and documentation
--2.1.5--
The 2.1.5 release fixes a lot of bugs and brings various improvements to the prior 2.1.4a release. In addition, the SDL port has improved signficantly; completely overhauling the GTK2 GUI, fixing many sound issues, and fixing a variety of bugs.
Common
Fixed compatibility issue with Young Indiana Jones Chronicles
Fixed bug in new PPU that made some intensify bits not get applied to output (fixed flashing siren screen in Werefolf)
Fix many segmentation faults related to file handling
Movies
Slight performance increase when loading movies
Fixed read-only loadstate error messages and logic
Lua
Lua socket added to built-in lua library
Fixed speed.mode() function so that normal turns off turbo
New Lua functions
gui.savescreenshotas()
sound.get()
Win32
Fixed bug where PPU toggling toggled the Game Genie as well
Fixed some minor GUI issues
Added avi capture commandline argument and related parameters
Fix input selection for Famicom Expansion port
Debugger
Fixed Ram Search to only display valid RAM addresses (0000-07FF and 6000-7FFF)
Fixed crash when re-opening debugging window
Hex Editor
Added a confirmation prompt before removing all bookmarks
Ram Watch / Ram Search
Fixed the multiple selection of watches
Added support for Multiple selection of addresses in RamWatch Fixed issue with restoration of the selection range in RamWatch
TasEdit
General cleanup
Fixed crash when truncating while turbo was enabled
Invalidate greenzone when re-recording earlier portions of a movie
GUI
Added "SaveStateAs" menu item
Display movie name at the top of the main window
--2.1.4a--
2.1.4 is a maintenance release that fixes these bugs in 2.1.4:
fix crash bug on .fcm convert
fix erroneous reporting of savestate past the end of movie error during read-only loadstates
Released 31 May 2010
The 2.1.4 release fixes many bugs and adds new features compared to 2.1.3. In addition it also fixes up the movie code significantly; fixing implementation problems, loading speed, adding new features, and fixing bugs.
Common
Added microphone support option. When enabled, Port 2 Start activates the Microphone
Prevent .zip files containing no recognized files from causing crash
Autohold - Added player 3 and 4 to autohold notification window, labeled controller input
mapper 19 savestate fix mirroring for "Dream Master (J)" corrected to "four-screen" by CRC check
Disable auto-savestates during turbo
Fixed so Gotcha! auto-enables the zapper
Autohold - Added player 3 and 4 to autohold notification window, labeled controller input
Movies
Fully implemented "bulletproof" read-only
Movie code now fully conforms to the Savestate section of the Laws of TAS
Fixed a potential desync that plays out an extra frame without an update to the frame count involving heavy lua use, joypad.get, and a loadstate
Movie support for microphone
Movies now have a "finished" mode. If a playback stops the movie isn't cleared from memory, and can be replayed or a state loaded Similar functionality as DeSmuME and GENS rerecording
New PPU flag in movie headers (doesn't change an emulators PPU state when loading a movie)
Much faster movie loading and movie-savestate loading
Made gamepad 2 off by default (so less movies should have unused player 2 data)
Implemented a "full savestate-movie load" mode similar to the implementation in VBA-rr and SNES9x-rr. In this mode loading a savestate in read+write doesn't truncate the movie to its frame count immediately. Instead it waits until input is recording into the movie (next frame). For win32 this feature is togglable in movie options and the context menu. For SDL this is off by default and a toggle will need to be added
Movie + loadstate errors are handled more gracefully now, with more informative error messages and the movie doesn't have to stop if backups are enabled
Fix PlayMovieFromBeginning when using a movie that starts from savestate
Lua
fix bug that caused zapper.read() to crash when movie playback ends
Win32 - Added option for palette selection as color for LUA colors. Included is a LUA script to display all choices with the value used to pick displayed color
New Lua functions
movie.ispoweron()
movie.isfromsavestate()
emu.addgamegenie()
emu.delgamegenie()
savestate.object() which is savestate.create() with intuitive numbering under windows
gui.getpixel() which gets any gui.pixel() set pixel colors, and possibly other functions
emu.getscreenpixel() which gets the RGB and Palette of any pixel on the screen
lua function movie.getfilename() which returns the current movie filename without the path included
Input Display
Input display updates on loadstate
Input display overhaul that uses different colors for different input contexts
Input display now shows both currently pressed buttons and buttons held the previous frame
Win32
Added NTSC 2x scalar option with some CFG config options of it's own Added Ram Search hotkeys for the first 6 search types in the list
Add Cheat buttons for Ram Search and Ram Watch
With special scaler in window mode, it's possible to resize to anything above the minimum.
Recording a new movie adds it to recent movies list
Replay dialog, when selecting a movie in a relative path (.\movies for example), the recent movies list stores an absolute path instead
Replay dialog shows PAL flag and New PPU flags
CDLogger - fixed bug preventing correct interrupt vectors from logging
Memwatch - ignore spaces at the beginnign of an address in the address boxes
Replay dialog - fix bug that was causing it to always report savestate movies as soft-reset
Debugger
Added conditional debugging option 'K', for bank PC is on
Fixed bug involving pausing emulation outside of the debugger, then trying to use the debugger commands, and having the CPU registers become corrupted
Made debugger able to break on and distinguish Stack reads/writes
Hex Editor
Added "Goto" command
Made the Hex Editor display the Frozen, Bookmarked, etc. status of the selected address, and made the Frozen color override the Bookmarked color.
Cheat Search
Made enabling/disabling cheats no longer deselect the selected cheat
Added context menu to Cheat Dialog Cheat Listbox, populated list with Toggle Cheat, Poke Cheat Value, and Goto In Hex Editor
Enabled multi-select for Cheat menu to allow multiple toggles and deletes
Made cheat menu's Pause When Active effect immediate
GUI
Added Tools - GUI option to partially disable visual themes, so the emulator can be made to look like it did in 2.1.1 and earlier releases. Drag & Drop - if dropping a .fcm with no ROM loaded, prompt for one (same functionality that was added to .fm2 files)
Added single-instance mode, which makes starting a second copy of FCEUX load the file into the first, then exit.Mode off by default, togglable under Config - GUI
--2.1.3--
The 2.1.3 release fixes some bugs of 2.1.2, increases game compatibility, and adds usability enhancements to the windows port and adds a GUI to the SDL port.
Common
Fixed mappers 82, 25, 21, and 18. Games such as SD Kiji Blader, Ganbare Goemon Gaiden, and Ganbare Goemon Gaiden 2, Jajamaru Gekimadden are now playable
Fixes for mappers 253 & 226 - fixes games such as Fire Emblem (J) and Fire Emblem Gaiden (J)
Fix crashing on game loading for any battery backed ROMs with mappers from MapInitTab (fixes Esper Dream 2 - Aratanaru Tatakai (J)
FDS - show name of missing bios file in error message
NewPPU - fixed sprite hit before 255 and for non transparent hits only, thanks to dwedit for providing the fix
.fm2 file format header now has an FDS flag
SDL
A GUI! A graphic user interface (using GTK) with many basic menu options
ported to SDL 1.3; compatibility maintained with 1.2
unix netplay is now functional; gtk network gui created
now prints the name of the mapper on ROM load
fixed dpad/joyhat support
VS unisystem keys now configable
changed default hotkeys and keys to match Win32
disallow --inputcfg gamepad0 and gamepad5
Win32
Made savestate backups optional (config - enable - backup savestates)
Made savestate compression togglable (config - enable - compress savestates)
Cheats dialog - Pause while active checkbox
Cheats dialog - Toggling a cheat in the cheats list now updates the active cheats count
Debugger - added an auto-load feature
Debugger - Fix so it doesn't crash if unminimized with no game loaded
Closing minimized windows no longer moves them the next time they get opened
Lua console - added a menu
Lua console - filename updates when lua scripts are dragged to emulator or recent filenames invoked
Name Table Viewer - Fix for use with New PPU
Trace Logger - Trace logger now logs the values of the stack pointer register
If a .fm2 file is drag and dropped with no ROM load, the open ROM dialog will appear
disable movie messages menu item
Added more window positions bounds checks. Accounts for -32000 positions and less out-of-range too
TASEdit - Added interface functionality (save/load, running TASEdit mid-movie, etc.)
Lua
New lua functions: gui.parsecolor(), joypad.getup(), joypad.getdown(), emu.emulating()
Change gui.line, gui.box, joypad.get to function consistently with other lua emulators such as GENS rerecording
fixed zapper.read() to read movie data if a movie is playing. Also changed the struct values to x,y,fire. This breaks lua scripts that used it previous, sorry
gui.text() now has out of bounds checking
Lua no longer unpauses the emulator when a script is loaded
--2.1.2--
The 2.1.2 release fixes some bugs of 2.1.0a, increases game compatibility, launches a new PPU core, and adds usability enhancements to the windows port.
Common
New PPU is now functional! You can access it by changing the newPPU flag in the config file. Windows users can access it from Config > PPU > New PPU
Dragon Ball Z 3 now playable again
Fixed action 52 game that was broken in post-FCEUX 2.0.3 versions
Mapper 253 mostly implemented
Mapper 43 fixed bug
Win32
Imported NSF features from FCEUXDSP-NSF. Debugging tools are now compatible with NSF files.
Movies now record FDS disk swapping commands
Movie play dialog displays movie time based on ~60.1 (~50.1 PAL) instead of 60 & 50
Ram Watch and Ram Search dialogs imported from GENS rerecording
Ram Filter dialog removed (now redundant compared to both cheat search and ram search)
Lua script window ported from GENS
Fix for the directory overrides bug that caused overrides to reset
Debugger: .deb file saving/loading restored
"Save config file" menu item
"New PPU" menu item
Minor Bug fixes
Minor fixes to recent menus
Fixed a bug that prevented the Map Hotkeys dialog's X button from closing the dialog
Restored DPCM Logging when Code/Data Logger is active
Memory watch - Save Changes Prompt - clicking save will default to quicksave first and save as 2nd (instead of always defaulting to save as)
Made Trace Logger refresh adequately when using stepping options in the debugger.
Lua
joypad.set() fixed. True,False, and Nil now work properly for all buttons. In addition there is a new "invert" option.
Lua5.1.dll no longer required to use lua.
fceu.unpause()
Added savestate.registerload(), savestate.registersave(), savestate.loadscriptdata()
emu. library, has all the same functions as fceu. library for better compatibility between lua emulators
Many additional function names to increase consistency with other lua emulators
Added movie.recording() and movie.playing()
Added memory.getregister() and memory.setregister()
Added gui.popup and input.popup
Added savestate.registerload(), savestate.registersave(), and savestate.loadscriptdata()
New Lua Scripts
A multi-track movie recording tools written by FatRatKnight. Allows input for different players to be recorded separately.
A rewinding tool by Antony Lavelle
--2.1.1--
This release includes a multitude of new features, major fixes, and enhancements.
The 2.1 new release fixes some bugs of 2.1.0a, improves the accuracy of the sound core, and adds useability enhancements to the windows port.
Common - Bug fixes
Fixed reported issue 2746924 (md5_asciistr() doesn't produce correct string)
Made default save slot 0 instead of 1
Improved Sound core/PPU
Fixed the noise value, it seems that the noise logic was shifting the values to the left by 1 when reloading, but this doesn't work for PAL since one of the PAL reload value is odd, so fix the logic and used the old tables. Revert a stupid CPU ignore logic in PPU. Sorry about that.
Updated with the correct values for the noise and DMC table,
Fixed the CPU unofficial opcode ATX, ORing with correct constant $FF instead of $EE, as tested by blargg's. These fixes passes the IRQ flags test from blargg, and also one more opcode test from blargg's cpu.nes test.
Square 1 & square 2 volume controls no longer backwards
Length counters for APU now correct variables
NewPPU (still experimental, enabled by setting newppu 1 in the config file)
Added experimental $2004 reading support to play micro machines with (little) shakes, and fixed some timing in the new PPU.
Added palette reading cases for the new PPU.
Win32
Minor Bug fixes
Replay movie dialog - Stop movie at frame x feature - fixed off by 1 error on the stop frame number
Hex Editor - changed ROM values again dsiplay as red, saved in the config as RomFreezeColor
Fixed bug in memory watch that would make the first watch value drawn in the wrong place if watch file was full
Debugger - Step type functions now update other dialogs such as ppu, nametable, code/data, trace logger, etc.
"Disable screen saver" gui option now also diables the monitor powersave
Recent menus - no longer crash if item no longer exists, instead it ask the user if they want to remove the item from the list
Sound Config Dialog - When sound is off, all controls are grayed out
Memory Watch - fixed a regression made in 2.0.1 that broke the Save As menu item
Memory Watch - save menu item is grayed if file hasn't changed
GUI/Enhancements
Last save slot used is stored in the config file
Made fullscreen toggle (Alt+Enter) remappable
Hex editor - Reverted fixedFontHeight to 13 instead of 14. Gave the option of adjusting the height by modifying RowHeightBorder in the .cfg file
Hex Editor - allowed the user to customize the color scheme by use of RGB values stored in the .cfg file
Hex editor - freeze/unfreeze ram addresses now causes the colors to update immediately, but only with groups of addresses highlighted at once (single ones still don't yet update)
Hex Editor - Save Rom As... menu option enabled and implemented
Window caption shows the name of the ROM loaded
Recent Movie Menu added
Load Last Movie context menu item added
Save Movie As... context menu item (for when a movie is loaded in read+write mode)
Drag & Drop support for all files related to FCEUX including:
.fcm (autoconverts to .fm2 and begins movie playback)
Savestates
Palette files (.pal)
Commandline - -palette commandline option
Memory Watch - option to bind to main window, if checked it gives GENS dialog style control, where there is no extra task bar item, and it minimizes when FCEUX is minimized
SDL
added --subtitles
fixed Four Score movie playback
added --ripsubs for converting fm2 movie subtitles to an srt file
Lua is optional again, fixed the real issue
Lua is NO longer optional, so the SConscripts have been updated to reflect that change. This fixes the mysterious non-working input issue.
implemented saving/loading a savestate from a specific file on Alt+S/L
implemented starting an FM2 movie on Alt+R
added --pauseframe to pause movie playback on frame x
dropped UTFConverter.c from SDL build
added hotkey Q for toggling read-only/read+write movie playback
--2.1--
This release includes a multitude of new features, major fixes, and enhancements.
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.
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.
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 savestate, 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
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
--2.0.2--
This release includes some key bug fixes and feature enhancements.
Major Bug / Crash Bug Fixes
* Reset/Power-on recording for .fm2 files!
* fix ..fcm conversion, recording, and playback of reset and power commands
* Win32 - auto-load the only useful ROM or movie from an archive, in cases where there is only one
* Win32 - permit user optionally to proceed through the movie savestate mismatch error condition, in case he knows what he is doing.
* Win32 - fix a bug in the savestate recovery code which prevent aborted savestate loads from recovering emulator state correctly.
* gracefully handle non-convertible broken UTF-8 text without crashing
* Win32 - don't read every archive file when scanning for replay dialog. scan them, and only look for *.fm2
New Features Win32
* Win32 - added a toggle for binding savestates to movies
* Win32 - added -cfg (config file) command line argument
Minor Bug fixes
* Win32 - Sound config dialog will now look to see if Mute Turbo should be checked
* Win32 - Debugger - Fix Child windows inside debugging window get invalid sizes
* Win32 - bind a menu option for display frame counter
* Win32 - fix problem where replay dialog couldn't work when the process current directory had changed to something other than emulator base directory
* Lua ignores second joypad.set()
* Load state as... does not use the savestate override dir (fixed; now, it does)
*Win32 - debugger - fix issue where keyboard keys get stuck when switching between debugger window and main window
SDL
* SDL - added support for AVI creation for SDL, see documentation/Videolog.txt for more
* SDL - --inputcfg can now be used without a filename
* SDL - should fix issues with missing author field crashing FCEUX
* SDL - toggle lag frame counter for SDL, default hotkey F8
* SDL - toggle skipping of lag frames for SDL, default hotkey F6
* SDL - user ability to toggle "bind savestates to movie" added for SDL, default hotkey F2
* SDL - Lua is now optional, thanks Shinydoofy for a patch. also fixed some build issues.
* SDL - fixed an issue where flawed movie would crash FCEUX on every startup
* SDL - fixed issue where windowed mode would always be set to 32 bpp
* SDL - fixed ppc build errors and added LSB_FIRST option to build scripts
* SDL - --newppu option added to SDL, disabled by default
GFCEUX (SDL)
* GFCEUX - made the input config window more usable
* GFCEUX - added uninstall script for GFCEUX
--2.0.2--
This release includes a large number of bug fixes, feature enhancements, and new features.
Fixed Crashing Bugs
* restore savestate error recovery functionality. Will prevent crashes after savestate error messages
* Fixed - Low speeds (1%) crash FCEUX
* fixes bug where palflag 1 in .fm2 files crashes fceux
* FCEUX no longer crashes when attempting to open a non movie file
* Buffer overflow (change vsprintf to vsnprintf)
Minor Bug fixes
* SRAM not wiped on power cycle (during movies)
* Moviefilenames without extension now automatically get fm2
* auto-fill .fcs extension in save state as dialog
* FCM>FM2 converter releases file handle
* fix a new bug in windows build which caused fourscore emulation to fail in some cases
* Player 3 no longer inputs when not used
* prints a special message when trying to open an FCM reminding user to convert.
* fixes bug where Avi recording with no sound messes up the format
* Fixed bug where Convert .fcm didn't do special characters
* fixed the (null) in the default lua directory listing
* Ctrl+X now works in the memory watch dialog
* Dialog window positions won't "disappear" (-32000 protection on all dialogs that remember x,y)
* fixed View Slots bug - will now always show the used slots
* added shift+L as default hotkey for reload lua script
* added input display to the FCEUX main menu
* change config filename from fceu98.cfg to fceux.cfg
New Features
* restore IPS patching capability which was lost when archive support was added
* restore ungzipping (and unzipping in sdl) capability which was lost when archive support was added
* re-enable an "author" text field in the record movie dialog
* re-enable support for old-format savestates. (Note: can not be loaded into a movie!)
* Added new toggle - frame adv. - lag skip (menu item + hotkey mapping + saved in config), will cause frame adv. to skip frames where input is not read
* Added support for loading movies from archives (just like ROM files). Note: Movies loaded from an archive file will be read-only.
* movie replay dialog displays fractions of a second on movie length
* Savestates now save the Lagcounter information.
* added a mute turbo option in sound config
* add an option to pick a constant color to draw in place of BG when BG rendering is disabled (look for gNoBGFillColor in config).
Mappers
* remove cnrom chr rom size limit for homebrew roms
* mmc5 - 64KB WRAM games now work correctly
* mmc5 - use of chr A regs for BG in sprite 8x8 mode is fixed
* upgrade to cah4e3's latest mapper 163&164 code to fix a crash in a game
Debugging Tools
* Debugger - restore snap functionality
* Debugger - add FORBID breakpoints - regions which block breakpoints from happening if they contain the PC
* Debugger - debugger window is now resizeable
* nametable viewer will display correct NT,CHR,ATTR data in more cases (specifically, including some exotic mmc5 cases).
Lua
* Savestates remember Lua painting
* add memory.readbyterange to emulua
SDL only
* SDL: fixed --input(1-4) options. input1 and 2 are regular inputs, input3 and 4 are famicom expansion inputs
* SDL fix configfile woes. configfile now goes to ~/.fceux/fceux.cfg
* SDL: fixed segfault when opening .fcm files
* SDL: Saner sound defaults for less choppy sound
* SDL: "--special" option fixed for special video scaling filters
* SDL: cleaned up the SConsruct
* SDL: fixed issue where fceu would lock up when file dialogs were opened during fullscreen
* SDL: fixed bug where fceux would close when file dialogs were closed
* SDL: File open dialog is now used to movie playback
* SDL: File open wrapper now takes a titlebar argument
* SDL: Cleanup of usage
* SDL: rename options --no8lim -> --nospritelim and --color -> --ntsccolor
* SDL: Screenshots now always prepend the game name.
* SDL: Changed default A/B from numpad 2 and 3 to j and k.
* SDL: Enable frameskip by default
* SDL: Fixed a bug that would crash fceux if the emulation speed was overincreased
* SDL: New default hotkeys to more closely match win32 defaults
* SDL: Added lua script loading hotkey (f3). Non win32 SDL requires zenity for this to function.
* SDL: Build script cleanup; also added option for DEBUG builds.
--2.0.1--
This was a maintenance release that fixes a few oversights in the 2.0.0 release.
* reorganize display toggle options in the menu
* autofire fix (wasn't initializing to any autofire pattern from a fresh .cfg)
* homebrew mmc5 games now have 64KB of exwram instead of only 8KB
* fix crash related to player2 in lua scripts
* fixed player2 in lua scripts
--2.0.0--
FCEUX has all the latest tools, enhancements, and features from FCEU 0.28 rerecording and FCEUXDSP 1.07 In addition, it has many new tools, bug fixes, and enhancements not seen in previous branches.
General
-A detailed Help Menu! No longer are you aimlessly searching the internet for long lost info on FCEU's options!
-Numerous Dialog box reformats.
-FCEU remembers its last screen (x,y) position.
-Increased command line options
-More options under the Directory Override Menu
-A Turbo Toggle option (turbo now can be toggled on rather than having to hold the key down)
-More hotkey assignable options in the Map Hotkeys Menu.
-A lag counter
-Autofire uses the lag counter (so it will skip over lag frames)
Movie support
Overhauls in both the movie and savestate file formats.
.fm2 File format
The .fcm file format has been overhauled into a new .fm2 format. Changes include:
-Uncompressed and text based format. Movie editing can be done simply in a text editor.
-Recording from soft reset option removed.
-Recording from start (hard reset) no longer has an empty savestate at the beginning.
-GUID inserted into movies for better savestate/loadstate error handling.
-Rather than an Author field, it has a full metadata menu where an author can put any info needed.
-A tool to convert .fcm files to .fm2 files.
-More specific info on .fm2 files in the .fm2 documentation.
Savestate/Loadstate
-New savestate file format. NOTE: Savestates from previous FCEU versions CAN NOT be used in FCEUX.
-Fully functional error handling (savestates from other movies cannot be loaded).
-Read-only toggling related bugs fixed.
-Savestate filenames include the name of the movie (if a movie was playing when made). This prevents loading wrong savestates. (This also means that savestate 0 is different when a movie is playing and when it is not).
7z Archive Support
-ROMs in any 7z compatible compressed format can be opened directly.
-If more than one valid ROM exists in an archive file, then a dialog box will open with a list of available ROM choices.
TAS Edit
-A brand new powerful movie making tool that revolutionizes the way TAS movies are made. See TAS edit.
New Tools
TAS Edit - a revolutionary new way of making TAS movies.
Input Presets - a system for quickly toggling different input configurations.
Tool Upgrades
Numerous enhancements have been made to various Tools/Options.
Memory Watch
-Resource management optimized so that memory watch now uses a minimal amount of CPU
-FCEUX remembers memory watch's last screen position (x,y)
-Tab-able Edit boxes
-Edit boxes now can hold 64 characters
-A Menu bar for all Memory watch functions
-Both "Save as" and "Save" options
-Hotkeys for New, Open, Save, Save As and Close
-A recent files Menu
-A "load on startup" option. If checked, memory watch will open automatically when FCEUX is opened
-A "load last file" option. If checked, memory watch will load the last file used
Cheat Search
-Now has a minimize button
-Cheat Search Menu from FCEUXDSP (a major overhaul compared to other FCEU branches)
-Possibilities update while playing/frame advancing a game
-Double clicking a value in the possibilities window sends the value directly to Memory Watch
RAM Filter
-Double clicking a value in the possibilities window sends the value directly to Memory Watch
Lua Scripting
-Uses the latest features of Lua Scripting from FCEU 0.28
-Many enhancements and new commands including dialog creation commands! Now scripts can create their own dialog's and GUI features.
Lua Basic Bot
-Basicbot removed (from the rerecording version of FCE Ultra). In its place is lua bot.
AVI Recording
-"Movie playback stopped" message recorded in AVI by default
-Turbo Toggle Hotkey. (Allows turbo to be left on for a faster AVI capture).
--Older Updates--
Please check here..