So you want to develop games for the Nintendo Entertainment System?
For the sake of this tutorial series, we will be using Mac OS X. We can use all the same programs on Windows, and just about everything is the same (except maybe easier?). There is generally greater support on Windows for NES development, so we’ll take the more challenging path.
Let’s get started by gathering all the things we need. First off, we need an assembler. This will take the assembly code we write and create a playable .nes file from it. There are many we can choose from, but we will be using NESASM because it’s great for beginners and is guaranteed to produce a playable .nes file as it is (assuming nothing is wrong with your code). You can use other assemblers, but it may not work out of the box like this one will.
Download or clone the nesasm for mac repository here:
make on the nesasm repository. This will create a
nesasm file inside the
build/ directory. Add this file to your path
so we can use it later.
Next, we need an emulator. This program will emulate the NES hardware so we can play games on the computer. When we assemble our code and get a .nes file, we will load this file into our emulator. There are many emulators that exist out there, but two that I would recommend are Nestopia and FCEUX.
You can also use brew to install FCEUX:
brew install fceux
The Text Editor
This is an easy one. Simply choose your favorite text editor. I personally use Atom for NES development because Atom has assembly language syntax highlighting plugins that helped make everything look nicer. Other text editors may have similar plugins as well.
The Sprite Editor
For the creation of graphics we require a sprite editor. All of the graphics on the NES are tile based, so we need a program that can create these tiles and produce a sprite sheet. The best program I have found that achieves this is YY-CHR. Because this is a windows program, if you’re running this on your mac you will need to use Wine to run it.
The Audio Editor
To create music and sound effects, we can either go through the lengthy and complicated process of creating our own sound engine, or we can use a program like FamiTracker to create our sounds for us. This program is specifically designed to create music for the NES. When we create something with it, we can export a file that we simply include in our game’s code. This exported file has all the code contained within it to play music and do everything it needs. Much like YY-CHR, this is also a Windows program, so we will need to use Wine to run this on the mac.
Now that we have everything we need, we can start creating games for the NES!