|Les liens étant réparés, je peux maintenant vous présenter cet émulateur en version stable, ce qui n'était pas arrivé depuis des années. La version ANSI pour Windows 9x ne sera plus mise à jour et la version Unicode sera aussi la dernière à avoir Windows 2000 en compatibilité; ces OS étant particulièrement anciens, ça ne devrait pas gêner beaucoup d'utilisateurs néanmoins. Un bug de dernière minute a été corrigé (c'est peut-être pour cela que les fichiers étaient indisponibles hier) et voici la liste des améliorations depuis la précédente version stable:
As is bound to happen when I decide to make an unplanned release (in response to the last release having been nine years ago), I managed to introduce a rather unfortunate bug in a last-minute change - all savestates made with the Arkanoid paddle connected to the Famicom Expansion Port would be corrupted. The release has been updated to incorporate a fix for this.
*Adjusted code to use C++ memory allocation routines where possible.
*Added support for 64-bit builds.
*Various code cleanup and bugfixes.
*Added separate logic for power-on and soft-reset events.
*Updated various counters to more closely match actual hardware behavior.
*Upgraded audio playback code to use DirectSound 8.0.
*Improved DMA emulation logic to properly handle both Sprite and PCM operations happening concurrently.
*Removed all inline assembly for 64-bit support.
*Fixed interrupt timing for branch instructions without page crosses.
*Added a configuration setting to suppress Debug statements forinvalid opcodes.
*Added support for undefined opcodes AAC, ASR, ARR, ATX, and AXS.
*Renamed "Alternate Keyboard" to "Subor Keyboard".
*Updated Family Basic and Subor Keyboards to support movie recording and playback.
*Updated controllers to use Save/Load routines instead of exposing their internal state as packed byte arrays.
*Updated Arkanoid paddles to support axis configuration and adjusted range of valid positions.
*Added support for SNES Mouse.
*Fixed support for configuring POV triggers as axes versus buttons.
*Updated CPU debugger and trace log output to include total elapsed CPU cycles since reset.
*Improved breakpoint support to properly handle intermediate reads.
*Improved PPU debugger to only redraw pattern tables and sprites when their corresponding palettes actually changed.
*Added separate default palettes for each region.
*Improved fullscreen code to attempt to select a resolution which matches your monitor's aspect ratio.
*Fix a bug with Zapper emulation while in fullscreen mode.
*Added an alternative Playchoice-10 palette.
*Added a configuration setting for Playchoice-10 palettes to control whether or not extra gray colors should be added at 1D/2D/3D.
*Fixed color emphasis to swap the Red/Green bits on PAL and Dendy.
*Updated NTSC palette generation.
*Added an option to horizontally stretch the window to produce the correct aspect ratio.
- iNES Header Editor:
*Moved header editor into its own source file.
*Added support for editing NES 2.0 format fields.
- Mapper Interface:
*Updated Mapper Interface version from 3.7 to 3.9.
*Reordered several enumerated types to be more consistent.
*Added support for debug-safe read handlers which do not trigger side effects.
*Improved handling of multiple DLLs supporting the same mapper.
- Main Program:
*Updated Winamp plugin to support Unicode.
*Added support for Hybrid (Dendy) timing - PAL's 50Hz framerate, but NTSC's CPU/PPU clock ratio and VBLANK length.
*Reorganized code for saving and loading configuration settings to be localized according to function.
*Increased maximum supported PRG RAM from 64KB to 1024KB.
*Increased maximum supported CHR RAM from 32KB to 256KB.
*Changed FDS disk writing to use a new file format which permits tracking version numbers.
*Added full NES 2.0 format support.
*Reworked Savestate/Reset commands to avoid stopping and restarting sound playback (and causing pops).
*Fixed debugger breakpoints to properly unacquire input devices.
*Fixed crash when exiting the program while in fullscreen mode.
*Added a "Browse Save Files" option to the File menu.
*Removed some unneeded optimizations that didn't work with 64-bit and weren't beneficial with 32-bit anymore.
*Fixed pre-render scanline to reset vertical scroll bits for every cycle in 280-304 instead of just the last one.
*Removed old "non-accurate" sprite evaluation logic.
*Fixed emulation of $2007 accesses during rendering and how they affect the VRAM address.
*Added support for Vs. Unisystem PPUs returning special values from the lower bits of $2002.
*Updated savestate logic to better handle version differences.
*Added support for NES 2.0 custom SRAM sizes
*Added support for various iNES mappers using CHR RAM when no ROM is present.
*Updated MMC2 emulation for switching the lower CHR ROM bank.
*Updated IRQ counters for MMC3, MMC5, MMC6, VRC4, VRC6, VRC7, and Tengen RAMBO-1.
*Updated MMC5 sound length counter timing and added support for read-triggered PCM.
*Updated iNES mappers 1 and 4 to support NES 2.0 PRG RAM sizes.
*Updated iNES mapper 16 to support EEPROM saves, and added mapper 159 as a variant.
*Added iNES mapper 210 as a variant of mapper 19.
*Fixed iNES mappers 21, 22, 23, and 25 to properly reflect their actual functionality.
*Improved compatibility for iNES mapper 185.
*Added support for NES-AN1ROM, HVC-FKROM, NES-PEEOROM, NES-SC1ROM, NES-SHROM, NES-SH1ROM, NES-SIROM, NES-SJROM, NES-SL2ROM, NES-SL3ROM, NES-SLRROM, NES-SMROM, NES-TBROM, NES-TEROM, NES-TKSROM, NES-TL2ROM, NES-TLSROM, NES-TNROM, NES-TQROM, and NES-TVROM boards.
*Added support for iNES mappers 28, 31, 36, 48, 57, 72, 77, 82, 92, 101, 107, 152, 154, 155, 159, 165, 191, 192, 193, 194, 200, 201, 203, 205, 206, 207, 240, 242, and 245.
*Merged iNES mapper 151 (Extended Vs. Unisystem) into 75 (VRC1).
*Fixed NSF player to properly silence internal channels when changing tracks.