Interview with the creator of iPhone NES.app
September 16, 2007 by dennis
Today we’re continuing our interview series with developers of popular unauthorized third party iPhone programs. Our new guest is NerveGas, the creator of NES.app – Nintendo Entertainment System emulator for the iPhone, which allows you to play old NES games with iPhone’s touchscreen.
iW: Hi there. Should we call you “NerveGas”, or do you have a real name?
With all the lawsuits flying around over iPhone and the rumors about Apple and Nintendo working on something, I’d prefer to remain anonymous. But if it helps, you may call me Mr. Gas.

iW: Everyone knows that you’re the creator of the popular Nes.app iPhone program (along with stepwhite). But could you please tell our readers your short bio?
Stepwhite’s iPhoneNES project is actually a separate project. I originally forked it at version 0.01, which wasn’t playable, and then rewrote it from the ground up. There’s been some confusion about the two projects, as stepwhite recently re-released NESapp as his own iPhoneNES v0.31. I’m not sure if this was an accident, but the code is identical to NESapp v0.31. At any rate, NESapp (my project) started out as just a challenge for my spare time. I am a full-time scientist by trade, and so experimenting with new things is sort of what I do.
iW: For a lot of our readers you’re somewhat of a hero for having created Nes.app for the iPhone — in fact, Nes.app was downloaded over 2,900 times from our servers alone (seriously!). How do you feel about that and who are your heros?
I’ve also gotten reports from Nullriver that NESapp v1.0 was downloaded nearly 9,000 times… so yeah, it seems as though I’ve grown a huge user base overnight. Write something productive and you’re lucky to get 100 users by the end of the year. Write something that people can use as a complete waste of time and everybody loves you
I’m thrilled, of course, that people find NESapp that quality of an application that they want it on their iPhone. I’ve gotten a lot of compliments about NESapp being a “world class” application, compared to some of the drivel that’s already started to surface for iPhone. That’s a great complement, and I do appreciate others seeing the insane amount of work that was put into it. I hope the code I’ve worked on to implement the many iPhone-specific features is borrowed into other great iPhone apps.
iW: Nes.app grew at a very rapid speed from v0.20.1. How much time did you dedicate to it every day?
Two key people really helped out with specific pieces of the project that I feel are worth a mention – nightwatch, the author of the toolchain that made iPhone development even possible, provided me with some code to accelerate my graphics using CoreSurfaces. Brian Whitman (bwhitman) is an MIT grad and audio genius who’s been working on iPhone sound code, and finally found the right APIs to use for playing sound. It took a ton of glue to make their stuff work, but their help was invaluable.
But overall, countless nights and weekends were burned on making NESapp a quality application. On some nights, I watched the sun rise before I went to bed. There was such an overwhelming number of bugs in the emulator core I was using (InfoNES), and this combined with a non-existant SDK at the time, made it excruciating.
InfoNES, by the way, is an open source “drop in” Nintendo emulation core used in a lot of different software out there. Unfortunately, the original author pretty much gave up on it a year ago, and left the project with several bugs that he refused to fix (I know because I asked him!). I’ve spent hours digging into the low-level details about how emulation, and specifically 6502 emulation (the kind used in Nintendo) works. It’s paid off though, as I’ve been able to make many games play true to their original experience. I’ve also been able to add some fun features along the way such as Game Genie codes and save-game support. Although InfoNES is now a defunct project, I welcome anyone using it to back-port my fixes and enhancements into their own InfoNES code.
Since rewriting the project from the original iPhoneNES code, a lot of work has also gone into taking advantage of the many iPhone-specific features. NESapp supports multitouch, which allows you to “run with B”, and simply slide to the A button or a different direction on the pad. It’s seamless. People are selling NESapp skins on eBay so you can even feel the buttons while you play. NESapp also takes advantage of the iPhone’s sensors, allowing you to turn the handset on its side to play in landscape mode. Learning how to do things that would normally be simple, such as sound, were a considerable pain in the absence of a supported SDK.

iW: We’d like to congratulate you on reaching a milestone v1.0. Do you feel that the project is essentially done, or are you planning to get to v2.0 and beyond?
1.1.0 is the present latest, and 1.1.1 is in the works. There’s still quite a bit that could be done, and unless I can find some hackers who are more experienced with Nintendo emulation than I, it will all likely take a lot of time.
But once NES emulation is perfected, there’s always Gameboy Advance, Nintendo DS, and even the original Gameboy to consider supporting.
iW: Would you care sharing what kind of new features our readers could expect in Nes.app in the future?
Right now I am focusing on correcting the 138 memory mappers supported by NESapp, to fix graphics glitches and a few games that don’t run properly. I dropped in a new 6502 emulation core (the one used in the popular iNES emulator), but found that InfoNES’ K6502 core was actually more accurate. The next several versions will focus on cleaning up and improving on InfoNES, and increasing performance + accuracy. I invite anyone with NES emulation experience to take a look at my SVN code and provide patches.
iW: What are the other projects you’re involved in or will consider doing?
NES.app is consuming all my free time right now, but I’ve been keeping a close eye on ApolloIM, an instant messenger for iPhone, and at some point will likely contribute to the project.
iW: The underground iPhone programmers’ community has shown a lot of dedication and ingenuity. What can you tell our readers about it? What makes folks like you put long hours into releasing open source programs especially for the Apple iPhone?
For a lot of hackers, I think it’s just learning how to do things that they’re not supposed to do, and that no one will support, for the sake of making what I consider the world’s most hackable and useful portable device a better one. The iPhone in and of itself is pretty boring – once you spend a couple weeks with it. Opening it up to third party software has helped fuel a lot of the ongoing interest in the device, and I believe at some point Apple is going to have to acknowledge and even maybe support third party applications if they want to survive in the mobile market. Many people are excited about seeing the iPhone equivalent of the same software development community we see for PocketPC devices, and Apple I’m sure isn’t about to let Microsoft have a hand-up in that niche of the market.

iW: Personal question – what do you think is in stock for the iPhone in the future?
It’s largely unpredictable. I’ve been approached by a few publishers about writing a hacker’s guide to iPhone, but I warned them not to do it, because things are so volatile right now. The development community for iPhone exists solely because Apple allows it to exist right now. With one software update, Apple could render all of our work (and any books) completely obsolete, forcing them to re-engineer it from the ground up. If you can throw enough wrenches into the development cycle, you can eventually cause people to lose interest in the platform all together.
This would kill the iPhone, and so I certainly hope this doesn’t happen, however Apple recently flexed their muscles with their iTunes 7.4.1 update, which “broke” custom ringtones on the iPhone, forcing many to use the .99c ringtone maker. 7.4 also broke a lot of tool used to cracking into the phone (many tools use the iTunes framework to talk to iPhone).
So I’d like to deliver some good news and say that Apple’s going to open their platform to third parties and allow developers to create applications… but that’s just wishful thinking. It didn’t happen with iPod. I _hope_ they’ll do this with iPhone, but more realistically I believe Apple will ink a few deals with a few select software manufacturers to distribute software through their controlled iTunes channel, and that will help to bring stability to the development community.
Apple could conceivably get into a lot of hot water for allowing applications to run on the iPhone that could abuse AT&T’s network. Before NESapp, I ported many open source applications such as ssh, python, and apache, to iPhone. It would be very easy to use some of these tools to attack other networks, run warez servers on the phone, and even create iPhones that send a million spams an hour… if your service is disconnected, just swap out a SIM card and you’re back online. So with that kind of liability, I doubt Apple will open the doors to just anyone.
iW: Any last words for our readers?
Just a thanks to everyone who’s supported NES.app, and kicked a few bucks my way as a thank you. It’s encouraging to see so many people using my app, but to see that people think it’s actually worth paying for has taken me back.
iW: You can donate some cash to NerveGas to support his efforts — the latest NES.app packages all prompt the user the first time it runs, giving them the paypal address if they want to donate — and every single cent certainly helps bring free new kickass iPhone programs.
Tags: app, Apple, application, apps, AT&T, game, hack, iPhone, iTouch, Microsoft, News, OS, ringtone
Related posts:
- Interview with creator of ZiPhone unlocker for iPhone
- Interview with the creator of Books.app for iPhone
- NES.app: first “game” to run on iPhone v2.0 firmware
Sign up to receive latest iPhone World news and updates via e-mail, RSS, Twitter or Facebook!




















