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.

The Assembler

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:

Run 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.

The Emulator

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.

Download Nestopia for MAC

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.

Download Atom

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.

Download YY-CHR

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.

Download FamiTracker

Now that we have everything we need, we can start creating games for the NES!