Helmet Man is a GameBoy Advance game written from scratch in C, with some routines written directly in ARM assembly.

To render the graphics, the game uses a combination of bitmapped image assets and sprite tilesheets. The game plays as a combination of runner levels (like Chrome’s Dinosaur Game easter egg) and enemy-fighting survival levels. The code is available for free on GitHub. While developing, I’ve found the GameBoy hardware to be a fantastic outlet for learning about low level systems programming!

The game was originally submitted for a homework assignment, but I got permission from the class to post my code publicly. I’ve continued adding new features, cleaning up the codebase, and researching some of the technologies needed to do more advanced things, like adding music/sound effects or a parallax scrolling background. I’d also like to set up a continuous integration server to automatically build the GBA game from source and post the version for download.

Load Game

Powered by gba.ninja, a JavaScript port of the VBA-m emulator


  • enter: start
  • x: shoot (B)
  • z/up arrow: jump (A)
  • left arrow: left
  • right arrow: right
  • backspace: pause/select

Game too tough? There might be an easter egg that makes you invincible. Try the Konami Code on the title screen.

game over screen Running on a real gameboy via a flashcart

elementary schoolers playing helmet man Elementary & middle school students playing Helmet Man at a STEM outreach event