Smile Politely

Nathan Tolbert pushes the limitations of new games on old consoles

A screenshot of a vintage video game the background is black and there are blue and green rectangles creating a maze and a small character in red trying to get to the other side.
The Storied Stone screenshot via Nathan Tolbert

Nathan Tolbert is a lead research software engineer at the National Center for Supercomputing Applications (NCSA) at the University of Illinois, and for the past 15 years he has also been developing indie games in his spare time for his company Bite the Chili Productions. These aren’t just any games, but new games for the original Nintendo Entertainment System (NES). Tolbert partners with various artists and music composers, and he has previously released games on systems like Atari 2600, Nintendo NES, Gameboy Advance, and Dreamcast. His newest game is called The Storied Sword and will be released soon. In the meantime Tolbert answered some questions for us about the process of making these games, what tools you need, and why he likes it so much. 

A black background of a video game screen with the option to select your hero. A white man with a black mask covering the top half of his face or a white woman in a red mask and orange hair.
The Storied Stone screenshot via Nathan Tolbert

This interview has been edited for length and clarity.

Smile Politely: You specialize in making new games for old consoles. How did you get into this niche area? 

Nathan Tolbert: After first playing Atari and Nintendo NES games as I kid, I was always fascinated by the idea of programming computers, specifically for playing games. I always wondered how they were created, and dreamed of making similar games myself. I learned computer programming as a kid, and I decided to make a career of writing software, but decided to avoid the games industry, focusing on game development as a hobby instead.

While researching how some of the older games were made, I discovered that there’s a community of developers still making games for these systems. After trying my hand at designing some, I found that that it was really fun for multiple reasons. First, nostalgia. There’s a certain joy in making a game for the system I loved as a child: fulfilling that childhood dream of putting the cartridge into the Nintendo and seeing my game run. But also, there’s a real community of people that are making and enjoying these “homebrew games.” Having a community of people to bounce ideas off of, and people that you know will try and enjoy your games, makes everything more rewarding. 

I once made a game for Android phones. It had thousands of downloads, but I never really knew if people were enjoying it or not. It felt a little like shouting in the void. For retro consoles, the market is much smaller, but the people buying and playing the games are extremely supportive.

SP: Can you tell me a bit about the process of programming for older games? How is it different from programming newer games? 

Tolbert: One of the first things that goes into making a game for retro consoles is balancing what you want your game to do, with what the console can do. Because of the limited CPU power, ram, and available graphics, designing games requires a lot of balancing between ideas and the limitations of the system (which is one of the most fun parts of the process). You have to think through every game element and evaluate the trade-offs and impact of each feature. Simple things, like showing a health bar at the top of the screen, can influence how many different colors you have available for drawing enemies.

In terms of development, the actual process isn’t so different from modern games, but a lot more limited: I write the code on my laptop, although using assembly languages instead of modern languages, and test it in an emulator, which is a program for your PC that will act like the old console, and let you test without having to load it onto the NES every time. Today’s emulators have a lot of debugging features that make life easier while developing. But you still have to contend with the fact that the systems are incredibly limited. For example, the Atari 2600 only had 128 bytes of ram to work with. That’s less than the information in a single Tweet. 

The graphics and maps in the games can be designed using any modern tools, but have to fit within very tight restrictions that the console can handle. Part of the process is writing scripts that will convert this data from the format that your computer understands, to the format that the console expects.

The most fun part of the process is testing on hardware — we have cartridges with flashable ROM chips, so I can load the game onto a cartridge and test on my Nintendo or Atari.

A screenshot of a vintage video game the background is pink and there is a red house on a platform and two characters on either side of it.
The Storied Stone screenshot via Nathan Tolbert

SP: Is it hard from a technology standpoint to create these games? Do you need special equipment?

Tolbert: The most difficult part is learning the limitations of the hardware, and then learning the console’s assembly language. For example, in modern languages, you can simply tell the computer to multiply two numbers together with a single line of code. The older systems didn’t even know how to multiply, so just multiplying two large numbers could end up being more than ten lines of code.

That said, to get started in developing retro games, you don’t need any equipment beyond a normal computer. All of the tools you need to get started are free software. It’s only when you want to test your game on an actual system that you need any special equipment. Even then, you can buy cartridges for testing for a reasonable price. I usually tell people that the barriers to entry are almost entirely in the effort it takes to learn, not in the tools.

SP: Did you have to learn any types of new coding skills for old games?

Tolbert: Beyond learning each system’s assembly language, the major thing is learning to optimize your code. In most modern programming environments, you write the majority of your code with readability and maintainability in mind: Computers are fast, and programmer time is expensive. On retro systems, you always have to keep in mind the limitations: Is your code fast enough that it will run at the required 60 frames per second that old TVs support? Can you fit everything into the limitation cartridge space available? (An Atari 2600 game might need to fit into 8k or 16k of cartridge ROM space, for example.) The general programming logic is the same, but your priorities and habits as a developer have to be very different.

SP: What is your favorite game that you’ve made so far? 

Tolbert: I’m most proud of my Anguna series, which is a Zelda-like adventure game that I’ve made for a range of consoles: Atari 2600, Nintendo NES, and Gameboy Advance. That said, my favorite to play is Super Homebrew War, a very simple four-player game where you try to jump on the heads of your opponents. My kids helped design some of the characters, and they love to play it together, which makes it a lot of fun as a family.

SP: Can you tell me about your new game, The Storied Sword

Tolbert: One of my favorite games for the NES was Ninja Gaiden. It was fast-paced, twitchy, and the kind of challenge where you wanted to keep coming back to it. That game inspired me to try to create a game in the same genre. Working with an artist friend from Milwaukee, Jordan David, we decided to create the game with a story-book fantasy theme, with a swashbuckling cast of characters inspired by heroes like Zorro or the Dread Pirate Roberts. We’ve spent the past three years working on the game, and it’s finally finished, with 18 levels of twitchy action platforming. 

There’s a demo NES rom available and we’ve launched a Kickstarter to raise the funds to create physical cartridges to play on the NES.

A gray Nintendo game cartridge with the storied stone over two characters standing with their swords drawn. The man is wearing all black and has a black mask covering half of his face and the woman is wearing a long red dress and a red mask covering her eyes.
The Storied Stone game via Nathan Tolbert

SP: What is your favorite thing to do in Champaign-Urbana? 

Tolbert: My family (my wife and 4 kids) loves hanging out with neighbors at Morrissey Park in Champaign. Champaign has great parks, and we’re fortunate enough to have a neighborhood community that regularly gets together at the park in the evenings. I also volunteer with my local church and am learning to ride the unicycle.

SP: Anything else I missed, or that you want readers to know? 

Tolbert: I didn’t really talk about how I discovered that there’s actually a market for games like this. It’s not huge, but enough that if anyone is interested in learning more about how to get involved in making games like this, they’re free to email me. It’s a really welcoming community and we love to see new folks get involved.

Culture Editor

More Articles