NES Sprite Display

Let me tell you a little bit about a project I’ve been working on for the past few weeks. The NES Sprite Display is an Arduino-based program to display assorted NES-era game sprites (primarily Super Mario and Zelda) on a large 32×32 LED matrix. It looks a little something like this:

32x32 NES LED animation
(Above: a rough approximation of the LED matrix animation. It’s a little slow and choppy due to the synchronization between the gif framerate and the matrix framerate. Trust me, it looks a lot nicer in person.)

The inspiration for this project came from a couple of different sources. Portland has an arcade bar, Ground Kontrol, that offers a Pac Man clock for sale. This looks like it’s probably a 32×16 LED matrix. It displays the time, with refreshes occurring via ghost and Pac-Man animations. ($75, while supplies last.) Second, I saw a vendor at the Portland Retro Gaming Expo (sorry, I didn’t catch which one) that offered a smaller 16×16 LED matrix, in a nice wooden display case, that did similar animations. This was several hundred dollars. I figured I’d try my hand at making something fun, influenced by these two products.

This display borrows some sprites from assorted Zelda and Super Mario games. In brief, the workflow for remastering those sprites and converting them to code goes through three steps. First, we start with transparent PNG files.

Next, we use a custom app I threw together to convert multiple images into paletteized images, but in a JSON format. We then end up with a set of numbers:

Finally, this gets loaded into a custom HTML app that allows for previewing, editing, and converting into *.h code header files.

These snippets of code then get included in the Arduino code, which is responsible for display and animation.

For a ton more detail, take a look at the project and its documentation at https://github.com/BrianEnigma/NES_Sprite_Display.

Posted in: Code Projects

Published by

Brian Enigma

Brian Enigma is a Portlander, manipulator of atoms & bits, minor-league blogger, and all-around great guy. He typically writes about the interesting “maker” projects he's working on, but sometimes veers off into puzzles, software, games, local news, and current events.

Leave a Reply

Your email address will not be published. Required fields are marked *