Nintendulator is an open source Win32 NES emulator written in C++ (plus some assembly optimization). The original goal was to emulate the NES down to its hardware quirks; though it's fallen behind over the years, recent builds have caught up once again and can emulate certain behaviors most other emulators neglect to handle. However, this emulation precision comes at a price - a 1500MHz (estimated) or faster CPU is required to emulate at full speed.
Supported file formats include .NES, UNIF, FDS (fwNES format), and NSF. Mappers are handled using external DLLs, complete with extra sound channels for most games which provide them. Other notable features include writing to FDS images (by storing the differences in separate files), Game Genie support (limited to 3 codes), customizeable controllers (including 4 player), input movie recording and playback (with re-recording), AVI capturing, and a debugger. Additionally, savestates and battery-backed RAM are saved within the current user's profile rather than in the application's own directory, allowing Nintendulator to function properly on Windows 7 and Vista without requiring the program to be run as an administrator.
With a small tweak to the NSF player BIOS, switching between tunes without pressing "Stop" first should no longer result in a burst of white noise.
Not much new today - just a few timing tweaks to satisfy a few more of Blargg's test ROMs.
While in prior versions of Nintendulator, PPU debug information (pattern table, nametable, and palette views) was only updated once per frame, the improved debugger (introduced June 29, 2008) had been made to update such information immediately, resulting in considerable slowdowns; today's build restores the original behavior, as well as incorporating various other bits of code cleanup.
Today's build includes brand new logic for DPCM sample fetching - under some circumstances, the old code could skip samples (and get thrown into an infinite loop if there was only 1 sample).
Also, a rather glaring bug (introduced during the C to C++ upgrade back from March 19, 2009) was reported in the Winamp plugin which prevented it from working at all. This has been fixed, and the release file and sources for 0.970 have been reuploaded. In the process of fixing this, I've also updated all of the Winamp plugin structures to match the latest SDK and have added Unicode build targets (and downloads below).
Today's build fixes a few minor APU emulation accuracy issues, as well as solving a potential crash when opening files via drag-and-drop from another application (most notably from ZIP files).
MMC3 (iNES mapper 4) and MMC6 (UNIF-only) emulation has been updated to be more consistent with newly discovered behavior.
Some rather interesting behavior was recently discovered involving accessing $2007 during rendering. Nintendulator should now properly emulate this behavior, fixing several significant display glitches in the game "The Young Indiana Jones Chronicles".
Today's build fixes a minor PPU bug regarding sprites - specifically, the SPR-RAM address register ($2003) is no longer reset at the beginning of each frame.
A discussion regarding $2004 read behavior (and inconsistent emulation thereof) revealed a few minor bugs in my own implementation; these should now be fixed.
As predicted, the process of converting the mapper DLL code from C to C++ introduced at least one bug, causing Namco 106 (iNES mapper 19) sound to break. The latest build includes mapper DLLs which fix this problem.
With rather inconvenient timing, information regarding the inner workings of MMC5 PCM sound were posted yesterday, 1 day after the release of Nintendulator 0.970. Support for this feature (though it is not known to be used by any games) has been added.
Additionally, limited support for NES 2.0 format ROM images has finally been added - for now, this consists solely of handling images with more than 4MB of PRG ROM and 2MB or more CHR ROM.
An even better way to welcome the new year would be to release a new version of Nintendulator. Thus, it has been done.
What better way to welcome the new year than with a simple cosmetic bugfix?
The FPS counter in the titlebar should no longer display negative numbers when the framerate drops too low.
Here you may download various versions of Nintendulator and other related applications.
This is a snapshot of my latest development code. Though this has features not present in the current release below, it may also have significant bugs, so download it at your own risk!
This is NOT a release!
This is the latest officially released version of Nintendulator. You are highly recommended to use this version instead of the latest build above unless you require any of the new functionality added since the last release.
These are old releases of Nintendulator, archived here for posterity. Where present, mapper DLL binaries are also included with the corresponding emulator releases.
These mappers are supported in the latest released version of Nintendulator. Mappers listed in bold are only available at the listed compatibility level in the latest beta build (strike indicates mappers whose compatibility has changed in the latest beta build).