Tony Cruise

This site provides support materials for the various books and tools that I have published directly or as Electric Adventures

View on GitHub

Classic Games Programming for the NES

Starting from the late 70s with the release of the groundbreaking game “Space Invaders”, video games gained widespread popularity, and whole arcades were dedicated to just offering “Space Invaders” for patrons to enjoy. Soon a host of other arcade games followed, bringing us classics such as Donkey Kong, Pac-man, Galaga, and many, many more.

Classic Games Programming for the NES

Riding on this wave of popularity home consoles such as the Atari 2600 and Intellivision entered people’s homes, bringing simplified versions of arcade games to consumers. These early consoles (and many home computers) started the process of people gaming at home. Meanwhile, in Japan, Nintendo, a toy company that had been creating small handheld video game units, entered the market in 1983 with the Famicom (Family Computer). This small, but quite powerful 8-bit system burst onto the local market and introduced gamers to Super Mario Bros, using the Mario character from the arcade game Donkey Kong, along with a fast horizontal scrolling array of platforms and quirky characters.

Two years later, the Famicom was re-packaged and re-branded for its release in the United States and Canada markets as the Nintendo Entertainment System (or NES). As well as introducing Super Mario Bros, it introduced the world to new game genres with The Legend of Zelda and Metroid and became one of the best-selling consoles of its time. The NES continues today to be a very popular “retro” console, with a wide range of games that define what a retro game is in a lot of gamers’ minds.

NES Console Set

Back when the console was released, developing a game for the NES required specialized hardware and a substantial financial commitment, but with today’s modern computers being able to accurately emulate the hardware it is now possible for anyone to create new and exciting games for this popular system to either share or sell to fellow retro enthusiasts.

The secrets of the official NES developers kit are hidden away in the Nintendo archives, but we can glean some details from the non-Nintendo produced development kits that were produced by 3rd party companies writing games back when the console was released. Even back then some form of IBM PC like computer, expensive mini-computer terminals, or another computer with a 6502 processor like the Apple II was required, along with a hardware board that interfaced the computer directly with a NES (or Famicom) console.

Legacy Game Development

The attraction of developing a new game for a retro system such as the NES is due to its simplicity it also means most if not all the game components (such as graphics, sound, and game code) can be created by either a single author or a small team, rather than the massive teams required to make today’s modern games.

The only blockage remaining for most people is working out how to get started. There is a lot of information available on the Internet about the NES console, but there is no clear guide on how to get started, what tools you need, and how a game works. In this book we are going to work through all the things you need to get started and will step by step develop a simple but fun game, to illustrate how you can bring your game ideas to life.

The Github repository for the book is: ProgrammingGamesForTheNES

The book is available for here: Classic Games Programming For the NES Use the code au35cru for 35% off any Manning products in any format.

Classic Games Programming for the NES

Chapter List

The book has sixteen chapters (and three appendixes), that take you through the process of developing a simple game for the NES.

Learning 6502 Assembler

To support readers learning 6502 Assembly Language I have put together an online 6502 Simulator/Assembler (based on the code of Stian Søreng’s and Nick Morgan) so that readers can see 6502 commands in action before we get to the part where we setup the NES hardware and get something displaying on screen.

Run the 6502 Simulator.

layout: page title: “Classic Games Programming for the NES” permalink: /ProgrammingGamesForTheNES/