    29 March 2009

    FCEUX 2.1 release

    The 2.1 is a major new release that incorporates new mappers and mapper fixes from FCEU-mm.  In addition it offers a multitude of bug fixes, and
    feature enhancements to both the Win32 and SDL ports.

    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 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