Play Pokemon on an STM32 Microcontroller

In this project, hackers Jared Di Carlo and Bayley Wang have built a Game Boy emulator that runs on an STM32 microcontroller. While that…

Jeremy Cook
5 years agoGames / Gaming

In this project, Jared Di Carlo and Bayley Wang have built a Game Boy emulator that runs on an STM32 microcontroller. While that sounds incredibly clever, what was actually involved is perhaps even more impressive. Like any good hack, the story starts somewhere only tangentially related.

To start out with, the two of them have been working on something they call MANWORM TV, which uses an STM32F446RE microcontroller to generate composite video signals. As shown in the beginning of the project write-up, they’ve been able to display various video clips in glorious partial-screen black and white, including, apparently, the entirety of Star Wars: Episode IV.

This, however, is only a small part of the story, as a bored Di Carlo decided one day to write his own Game Boy emulator. ~20 hours of programming later, he had Pokemon running on a computer. He didn’t stop there though, as he then ported this emulator to an STM32F446RE microcontroller, where it was able to pump out games at an impressive(?) 10 FPS. In order to get a more playable game, the system was then upgraded to an STM32H7-based dev board. This provides two times the clock speed of the previous microcontroller, and enough flash to run Pokemon Red without any clever SD card tricks.

The first video below shows Pokemon running on the original STM32F446RE microcontroller, contrasted with Mario World played on the STM32H7 with comparatively smooth graphics on the second. Also, be sure to check out the project page linked previously to see more on the process, and several more work-in-progress clips.

Jeremy Cook
Engineer, maker of random contraptions, love learning about tech. Write for various publications, including Hackster!
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles