Nintendo Entertainment System Integrated Development Environment
About Me My Resume Projects
Download NESICIDE Screenshots Comment

NESICIDE is now being rewritten in Qt to be cross-platform capable, more user-friendly, and more community-oriented. Both the old NESICIDE and new NESICIDE2 are hosted on Gitorious. To become a contributing member, contact one of the team members of team 'nesicide-core-developers'.

This project is my current pride and joy. I have been working on it for almost five years on and off. I basically one day woke up with the grand idea of using a NES emulator and some lingering assembly coding knowledge to program up my very own NES game.


What ended up happening was I learned an awful lot about NES architecture, the Picture Processing Unit (PPU), the 6502 CPU, the cartridge ROM usage of memory mappers to get around the 32KB program and 8KB character ROM limitations, etc. I also learned that there's quite a few freeware (and good!) tools out there to help someone with a whacked out idea like making their own game. There's tile editors, NES music makers, even a version of the BASIC programming language geared toward NES game development. I made an attempt at stitching together various tools with a Cygwin shell environment and actually got to the point where I was able to edit some tiles (in a freeware tile editor GUI), compile the tile data together with some simple display code with a freeware 6502 assembler, and actually see my image pop up in a freeware NES emulator. Quite exciting...

 
SCREENSHOTS

...but also quite tedious!! I had to switch between Cygwin, Windows, and various tools in each to get anything near a well-formed iNES file that was loadable by any emulator. I even tried putting together a makefile so I could just remake a project whenever I changed anything. The problem with this was the various files I had to stitch together to get a working ROM were never well-defined. If I added something I had to change the makefile. More files to maintain. More nightmares!

So that's when it hit me. I could write a GUI that encompassed the full lifecycle of NES ROM development, from start to finish. In my line of work these tools are referred to as Integrated Development Environments (IDEs). So, NES IDE was born. I decided on NESICIDE as the project title because it sounded cool and allowed me some freedom with more acronym letters to make up something like Incredibly Cool, or Inexpensively Complex, or something.

The intent of NESICIDE is to be able to start with absolutely nothing (well, maybe at least an idea!) and work your way through background tile development (playfields), foreground tile development (sprites), sounds (effects and music), stitching it together with some source code, and finally to generate a ROM. The screenshots above show NESICIDE emulating 'already created' ROMs you may recognize. Point being, the tool can also reverse-engineer existing ROMs. Some in emulator world refer to this as ROM hacking. Yes, you can ROM hack with NESICIDE. Click on the screenshots above to see more, including a few downloadable demo projects that I worked on entirely within NESICIDE.

Download the tool! Feel free to comment back to me with suggested improvements, complaints, or general conversation at christopher_pow@hotmail.com. Put something like NES in the subject line so I won't throw your email away thinking you're trying to sell me Viagra or let me know I've won the Ethiopian lottery.