Projects  
 
NES.app
The Nintendo Emulator for iPhone


What is NES.app?

NES.app emulates the hardware in a Nintendo entertainment system, allowing you to play games on your iPhone. There are many public domain, home-brew games available which have been written for the Nintendo platform, and depending on your country of origin, you may be entitled to play images of commercial games which you rightfully own.

The author does not condone the illegal piracy of copyrighted Nintendo games, and provides no support in obtaining or using pirated images.

NES.app uses an emulator core I call NESCore, which I've forked from pNESx and InfoNES and re-engineered as a highly-portable and high-performance Nintendo emulator core.

In order to use NES.app, you will need ROM images of games written for the Nintendo Entertainment System platform. ROM images are files containing the dumped instruction code from a physical cartridge, or compiled code from a public domain / home-brew game. In some cases, and based on your location, you may be legally entitled to posess a ROM image of a game that you presently own. Check your local, state, and federal laws.

Features
  • Multitouch: Use the directional pad + A + B, or other combinations
  • Landscape Mode: Turn the iPhone counter-clockwise to play in landscape mode
  • Zapper Tap: Tap objects on the screen to shoot them
  • Full Screen: Enlarge your NES picture to the max possible
  • Save State: Save an instant snapshot of your game and come back to it later
  • Game Genie: Use Game Genie cheat codes
  • ... and many more
NES.app is not iPhoneNES!
NES.app started as a fork of iPhoneNES v0.01, but has been completely rewritten to run very fast, and with many additional features including sound, multitouch support, full-screen, landscape mode, game genie codes, saved games and much more. It now contains zero code from the original iPhoneNES project.

As of recent, stepwhite re-released a much older version of NES.app as iPhoneNES v0.31. I have no idea why, but please be aware that NES.app is in no way affiliated with the iPhoneNES project (which only ever released v0.01 officially). I recommend using the latest version of NES.app instead, which is available below.

I do not maintain Installer.app!
I do not package NES.app for Installer.app. This is done by a third party, who lately is a bit slow at new releases. Please do not ask us when the next version will be available for Installer, as it is not our concern. I recommend you use the distribution available here.

Donations

Please consider supporting the author and send some cash to jonathan@zdziarski.com (via PayPal). This would have been one killer commercial app, but I decided to release it as a free, open source project instead, to benefit the community.

Files

README Please read this documentation!
CHANGELOG Change log
NESapp-2.0.3.tar.gz Latest binary release [ 1/15/2008 ] for iPhone v1.1.2 and lower
NESapp-2.1.0.tar.gz Latest binary release [ 3/29/2008 ] for iPhone v1.1.3, v1.1.4

Building using Xcode (on Aspen)
In Stores Now!

IMPORTANT: Apple's SDK license agreement restricts you from building this application in Xcode, because it uses private APIs. The build project has been provided as a proof-of-concept that it is technically possible, but I do not condone violating Apple's license agreements. If you really want to build this application, I would recommend considering the open source tool chain with Aspen support, which will build using Makefile.Aspen, and is not encumbered with any use or build restrictions.

Xcode proof-of-concept: See the README instructions for importing the private API headers before attempting to build using Xcode, as you'll need the private APIs which can be easily installed. Xcode project is for Aspen only. Use the Makefiles for all other builds. Because the simulator lackt the necessary frameworks to run CoreSurface, LayerKit, etc., NES cannot run on the simulator, but only on the iPhone itself. Be sure you use a "Device" build, not "Simulator" build. Once built, you should be able to install it onto the iPhone using Xcode.

ALSO NOTE: This has been reported to build on the SDK as late as Beta 3, and should build on Beta 4, if you copy the LayerKit framework back which was removed by Apple. The SDK has become so volatile that I really don't feel like keeping this project up-to-date with the latest coding perversions Apple is working into their various SDK builds, and so I'll wait until the official release in June before making any more changes to this project's build for 2.0. I'm quite frankly sick of all the new bugs and mindless tweaks being introduced. I will likely update the tool chain instead, so as to build legacy code on whatever 2.0 ends up looking like when the SDK has been completely ruined come June.

ROMs go in /var/root/Media/ROMs/NES (for those of you who don't read the README).

Source Code

The source code, makefiles, and Xcode project for Aspen can be downloaded via cvs:

cvs -z3 -d :pserver:cvs@cvs.zdziarski.com:/usr/local/cvsroot co nesapp

DISCLAIMER

I do not condone the piracy of Nintendo games. The author disclaims any liability resulting from the use of this software. Check with all applicable laws before using this software.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Support

No support is presently available, so please do not send emails requesting help, especially if they are not attached to a donation. Try asking your question in #iphone on irc.osx86.hu.
 

 All Website Content © Jonathan A. Zdziarski. All Rights Reserved.
Reproduction prohibited without permission