Dayle Probably

Enjoy!

Nes Game

Creating an NES game to learn 6502 Assembly.

I created this NES game, Cat Dash, to gain experience with assembly language programming.

You can play it online here. Give it a try!

In the game you play as a cat in a backyard catching birds. Your energy drains as you move around and you must catch birds to recharge your energy. You must sneak up on the birds when they are eating. If you run out of energy it is game over.

Cropped screenshot of my NES game showing Game Over!
Game Over! Sad!

Tools Used

There are plenty of tools to assist in the creation of NES games. Here are the ones I used to help me create Cat Dash:

ca65 Assembler

ca65 is a powerful assembler that targets the 6502 and is perfect for creating NES games. Check out the ca65 User Guide.

FCEUX

FCEUX is an NES emulator that includes helpful debugging tools including a hex editor and PPU viewer which allows you to see all the inner workings of the system as your game runs.

Screenshot of FCEUX with the debugger and hex editor windows open
FCEUX with debugger and hex editor windows open

NES Lightbox

NES Lightbox is a tool used to create sprites and background tiles for NES games.

Screenshot of NES Lightbox
Cat Dash's backyard scene loaded in NES Lightbox

The NES uses 8x8 pixel tiles. This was my first attempt at pixel art. I was quite pleased with how the bird turned out.

Screenshot of a pixel-art bird in NES Lightbox
Sprite editor in NES Lightbox.

FamiStudio

FamiStudio is a tool for creating music and sound effects for NES games. It also includes a NES Sound Engine which is assembly code that provides an API to playing sounds and music in your NES game.

FamiStudio screenshot showing the notes for Beethoven's Fur Elise
My attempt at Beethoven's Fur Elise in FamiStudio. This song is played on the title screen of Cat Dash

Resources

I highly recommend Gustavo Pezzi’s course NES Programming with 6502 Assembly which is available here. It’s a great resource with hours of video that walks you through the entire process of creating an NES game.

NES programming course box
This course by Gustavo Pezzi is great!

6502 Instruction Set

ca65 User Guide

Nesdev Wiki

What’s next for Cat Dash?

If I revisit Cat Dash in the future here are some things I’d like to work on:

« Back to Projects