Changes:
CODE: Switched to zlib/libpng license.
GUI: Cleaned up input configuration dialog a bit.
INPUT: Added ability to calibrate joystick devices.
VIDEO: Added Blargg's 'nes_ntsc' as a selectable blitter (palettes are not supported).
VIDEO: Removed support for image offset/zooming (as these features were never used anyway).
VIDEO: Renamed 'light_adjustment' to 'brightness' and changed it's absolute range from 63 to 100.
0.5.3:
Changes:
CODE: Cleaned up timing code slightly.
GUI: Removed all remaining hacks leftover from the old GUI menu code.
MISC: Added quick save/quick load feature which uses it's own independant state slot. Note that quicksave files have an extension of .fsv.
MISC: Cleaned up ROM loading code.
MISC: Made most code that deals with ROM filenames Unicode safe.
MISC: Changed behavior upon task switch while running in windowed modes from 'SWITCH_PAUSE' to 'SWITCH_BACKGROUND'.
MISC: Added callbacks to stop and later resume audio playback when a task switch occurs while running in fullscreen mode.
MISC: Added region auto-detection for PAL (E) games (currently it defaults to NTSC for all others). Note that this feature must be enabled from the
System->Region menu by setting Region to 'Automatic'.
NET: Initial work on new NetPlay engine.
0.5.2:
Changes:
AUDIO: Temporarily disabled OpenAL by default - There is nothing wrong with the code but OpenAL implementations don't like buffers as small as FakeNES
uses, and thus produce silence. That will be fixed when the audio system is overhauled.
CORE: Fixed a runtime assertion error by adding a check for the existence of CHR-ROM before attempting to build a CRC32 of it.
GUI: Fixed a bug that caused some GUI fonts to get screwed up after a moveable dialog was drawn.
NET: Temporarily disabled all references to NetPlay, since it was never implemented in the first place.
Changes:
AUDIO: Added audio Delta-Sigma filter.
AUDIO: Fixed pseudo stereo mode 2 by disabling noise cycling.
CODE: Changed default minimum CPU requirement on DJGPP and Mingw32 compiled builds to i586 (Pentium class), up from i486.
CODE: Makefile improvements, including automagic dependancy list generation.
CODE: Centralized all save data functions into 'save.c' and 'save.h'.
CODE: Split 'misc.h' into 'common.h' and 'types.h'.
CODE: Renamed 'crc32.c' and 'crc32.h' to 'crc.c' and 'crc.h', respectively, to allow for future additions to the CRC
generation API.
CODE: Fixed version number to read 0.5.1 instead of 0.4.0 - it was broken in the January 13th WIP release, which was
supposed to be 0.5.0. x_x
CORE: Removed x86 optimized core since it's benefits these days are questionable compared to the overhead it induces.
GUI: GUI overhaul, partial Unicode support, and more.
GUI: Added GUI toggle for Zapper emulation.
GUI: Changed default GUI theme to 'Panta'.
GUI: Changed display method for backgrounds less than 200 pixels high from stretched to centered.
GUI: Fixed background drawing in color depths higher than 8 bits-per-pixel.
INPUT: Added support for using the mouse as an input device.
MISC: Added a CPU usage option and subsequently a GUI menu with which to configure it.
VIDEO: Added support for 24-bit video modes (fullscreen and windowed).
VIDEO: Removed outdated 2xSOE blitters.
VIDEO: Overhauled all remaining blitters and combined multiple blitter variants together.
VIDEO: Added new DES and DESii blitters.
VIDEO: Added makeshift support for HQ2X, HQ3X, and HQ4X.
VIDEO: Changed default display mode under windowed environments from fullscreen to windowed; use a platform-specific driver
or the 'Force Fullscreen' option to override.
Changes since 0.1.5:
Version 0.3.1
====--
Note: NetPlay is incomplete and replays are semi-broken in this release.
Trying to use NetPlay in this will get you nothing!
This version is experimental, and I am releasing it for Christmas so that I
can worry about more important, such as (eventually) finishing NetPlay.
Miscellaneous changes:
Input 'Start' and 'Select' buttons configuration reversed fix.
Increased chat message buffer size from 4 to 10 lines.
Build system & code changes:
Added CPU_TYPE and CPU_ARCH and improved some behavior.
Separated blitters into individual header files.
GUI changes:
Added numbers to the items in Video > Blitter menu.
Overhauled dithering functions.
Video output changes:
(Super) 2xSCL crash in high resolutions fix.
Added 32-bit support.
Added color indexing for all non-32-bit modes.
Made all blitters work in any supported color depth.
Renamed interpolated blitter to interpolated 2x.
Added interpolated 3x blitter.
Version 0.3.0
====--
This release is dedicated to those who fell in the 9/11 attacks.
Note: NetPlay is incomplete and replays are semi-broken in this release.
Trying to use NetPlay in this will get you nothing!
Mac OS X is officially supported by this release, in addition to Windows
9x/NT/Me/2k/XP, 32-bit DOS, Linux, FreeBSD, QNX, and BeOS.
Miscellaneous changes:
Infamous ROM load memory protection crash bug fix.
Overhauled CPU emulation core.
Added x86 assembly optimized CPU core components.
Fixed branch wrap detection bug.
Added CRC calculation for PRG ROM, CHR ROM, and ROM trainers.
Added support for CPU memory space patching (raw or Game Genie w/ GUI).
Added slow (half FPS) mode.
Corrected mirroring of uneven size ROMs.
Added save state support (may not work for all supported games).
Added automatic machine state saving accurate up to every frame.
Added support for replays (currently buggy).
Altered memory map for performance.
Added exit confirmation when ROM loaded.
Significant improvements to the timing system.
Configuration changes:
Added configurable save state and Save RAM (SRAM) output path.
Configuration file and log file are now stored with the executable.
Changed Win32 configuration file to 'fakenesw.cfg'
Fixed several input configuration bugs.
Build system & code changes:
Updated and added copyright messages.
USE_CONSOLE changed to ALLEGRO_USE_CONSOLE to solve compilation problems (Mac OS X).
Encapsulated datafile 'fakenes.dat' into build.
Replaced all references to `NULL' with `NIL' to avoid compiler conflicts.
Added object file suffixes to the build system (all platforms).
Changed binary installation location from '/usr/bin' to /'usr/local/bin' (POSIX)
Allegro compatibility fixes.
Cleaned-up, overhauled, and optimized most GUI-related code.
Added code to prevent registering conflicting digital directions in input.
Added ability to use `usleep' instead of `yield_timeslice' in speed throttling.
GUI changes:
Repaired all key mappings.
Various GUI dialog enhancements and fixes.
Added GUI patch manager with Game Genie support only.
Added platform-specific video driver selection menus.
Added multiple message system and input chat capabilities.
Added input configuration dialog.
Fixed various bugs related to repeated initialization of the GUI.
Added GUI messages (log file) viewer.
Added GUI toggle for the 'swap_channels' configuration file setting.
Added GUI audio mixing speed selection menu.
Added fast (passive) automatic blitter selection.
Fixed default palette not being selected at startup.
Improved operation of Video > Palette menu items.
Video output changes:
Added 15- and 16-bit color depth support.
Added 25% and 50% scanlines (currently very slow).
Added several new resolutions, including 512x480 (for windowed mode).
Added Super 2xSOE and Super 2xSCL anti-aliasing blitters.
Added simple interpolated blitter.
Fixed behavior of the 'last_blit_line' configuration file setting.
Added keys to adjust light (palette intensity) from inside the emulation.
PPU rendering changes:
Minor optimizations to background rendering.
Memory mapper support changes:
Cleaned up and extended IRQ interface.
Improved IRQ support in MMC3, MMC5, and Bandai mappers.
Fixed MMC5 IRQ generation (greatly improves many games).
Added MMC5 WRAM automatic size detection.
Minor corrections of MMC3 behavior when no CHR-ROM is present.
Audio rendering & output changes:
Changed default sampling rate to 96 kHz and buffer length to 6.
Version 0.2.0
====--
Miscellaneous changes:
Added fast zero-page memory access to CPU emulation.
Eliminated some obsolete return values in CPU emulation.
Changed the CPU execution dispatcher to be inline to the main execution loop.
Fixed a serious bug in address wrapping of ROMs that weren't an even power of 2.
Fixed a bug which caused executed-frames counter to only count unrendered frames.
Improved POSIX base support and the autoconf-based build system.
Implemented loading of ROMs from ZIP files, must be the first file.
Fixed a serious bug in video mode initialization.
Video output changes:
Added the ability to specify blit region, to hide vertical scrolling.
Added a toggle to the Options > Video menu in the GUI for 'force_window'.
Added 2xSCL blitter (similar to 2xSOE, only better and slower).
Improved the overall performance of basic blitting routines.
PPU rendering changes:
Moved checks for sprites/background enabled outside of drawing loops.
Altered cache-preloading in display rendering.
Memory mapper support changes:
Fixed a serious addressing bug in Bandai mapper.
Fixed a serious IRQ timing structure bug in Bandai mapper.
Added FFE F3 series (iNES mapper 8) support.
Added Konami VRC6 and VRC6V (iNES mappers 24 and 26) support.
Added preliminary MMC5 (iNES mapper 5) support.
Implemented partial ExSound support for both VRC6 and MMC5 mappers.
Audio rendering & output changes:
Fixed initialization accepting a null driver, causing the emulator to freeze.
Added random noise addition dithering for low quality output.
Allegro multimedia library for input, graphics, and sound effects/music across
various platforms.
Note that this runs very slowly on my relatively modern system. Something Is
Wrong(tm).