Warning: This site is under construction, most links will be broken.
Emulation -> zipNES
Last modified on Mon, 17th Aug 2009 at 21:45 UTC by zippletzipNES - a fast, fresh emulator/debugger
zipNES is my own attempt at writing an NES emulator. The project began in 2004 as an introduction to Delphi object oriented programming. The goals are:
- Fast emulation - most features on a 500Mhz or so pentium 3
- Accurate emulation - not a scanline or frame based emulator
- High compatibility
- User friendly
- High quality sound emulation
- Support for extra sound channels (e.g. Konami VCR7)
- Famicom disk system support
- Full system debugger
ROM database
zipNES uses a ROM database to help it load ROMs with corrupt headers and to correct issues that arise because the iNES (.NES) header cannot store enough information to correctly emulate some ROMs. For example, the iNES header specifies if battery backup RAM is present - but does not allow for a game to have memory in this area that is NOT backed up by battery. Other emulators work around this by either using a database like mine (NEStopia) or by making assumptions. Making an assumption such as always enabling extra RAM for certain mappers is bad and not pure emulation.
For highest emulation accuracy please make sure you have a copy of the ROM database. This file is supplied with v0.1.116 and above but seperate for v0.1.115, download the ROM database and extract the file to the same directory as the emulator if you have v0.1.115. With zipNES 0.1 this fixes a couple of ROMs including Bomberman II. The download is at the bottom of the page along with the emulator. Please understand that you cannot amend this database and I wont be either as v0.1 is abandoned.
Version 0.5 will eventually have a database comprising all roms in the Cowering GoodNES set, along with tools to edit the database and edit your own ROM headers permanently if you have bad ROM files. You will never need to edit your ROMs however as zipNES will load ROMs with bad headers.
Old zipnes (v0.1)
This is my original attempt. While it is very old and inaccurate, it does run some games pretty well. This version was abandoned because it is inaccurate and has many bugs. I've finally decided to release a public version. Please note that there will be no bug fixes to this version so you shouldn't report bugs to me.
New zipnes (v0.2+)
This version is currently in development and is a rewrite of everything. Timing is cycle accurate and I hope for zipNES to become one of the most accurate emulators.
Versions
zipNES versions will be of the form major.minor.revision (e.g. 0.1.116). The major version will only increment when the emulator is considered mostly finished and very stable. Minor will increment at each milestone. Revision will increment at each bugfix/feature addition. Currently I plan the following versions/milestones:
- 0.1 - old zipNES, discontinued
- 0.2 - new zipNES. CPU + basic graphics rendering w/ keyboard input
- 0.25 - Multiple selectable output engines (ddraw, d3d, gdi minimum)
- 0.3 - Sound emulation working
- 0.4 - Basic set of mappers working - at this point same compatibility as 0.1 but more accurate
- 0.5 - ROM database, save states, full options UI
!!! IMPORTANT INFORMATION ABOUT WINDOWS VISTA / 7 !!!
zipNES 0.1 does not work properly on Vista. The sound crackles and skips because it uses an old windows technology to output the generated samples. This will be fixed in zipNES 0.2+. Additionally, directdraw mode will cause Aero to be switched off for the duration that zipNES is running - work around this by disabling directdraw mode. Other than that it works.
Linux support via Wine
Xealot has tested zipNES 0.1.121 with Wine build 1.1.27 and it works fine. Sound does not stutter and DirectDraw mode works. Until there is a proper Linux port of zipNES, Wine is a good alternative. The test system was an EEE PC 900 and despite all of the graphical enhancements enabled in the GUI, skype and a video recording program in the background, it worked pretty well. Remember on native windows zipNES will achieve 100% speed with a pentium 200-300Mhz.
Screenshots - Windows





Screenshots - Linux

Click to enlarge image
Videos
zipNES 0.1
- Sayoonara! demo
- Kirby's Adventure
- S.C.A.T. (Special Cybernetic Attack Team)
- Colour 2001 Streetfighter II (pirate/HKO)
Downloads
zipNES 0.1 - current version
- v0.1.121 - ZIP archive - EXE self extractor
- v0.1.120 - ZIP archive
- v0.1.116 - ZIP archive
- v0.1.115 - ZIP archive
- v0.1.115 ROM database - ZIP archive
Bug tracker
Please see the zipplet.co.uk bug tracker.