Super Mario Recreation

A retro‐inspired, Super Mario–style side-scroller running on a custom handheld console built around a Raspberry Pi Pico.

Project Introduction

A retro‐inspired, Super Mario–style side-scroller built on a Raspberry Pi Pico. We designed and built a mini gaming console around the Raspberry Pi Pico to re-create the look and feel of an the original Super Mario Bros. We recreated the entire game from scratch using methods from the first three lab assignments. We heavy relied upon lab 2 (Galton Board) as the base for our game, as it was physics- and animation- heavy. We ended up with a nearly spot-on recreation of the original game, with some considerations for the restrictions of the provided color palette, and some non-essential features cut due to time and resource constraints.

Players control Mario through four dedicated inputs. Two tactile buttons steer horizontal movement: pressing the left button moves Mario left, while the right button moves him right. A separate jump button applies an upward velocity impulse against gravity, allowing Mario to clear gaps and enemies. Finally, a reset button instantly clears the screen and restarts the level, re-initializes scores/enemies/time, giving players a quick way to retry. All inputs are sampled via GPIO each frame and handled in our Protothread–driven main loop to ensure responsive, flicker-free gameplay.

Quick Gameplay Preview

Figure 1: 11-second gameplay loop of Level 1. Core functionality is demonstrated, including goombas, coin collection, basic movement, and falling out of the world.

High-Level Design

Program/Hardware Design

Results of the Design

We ended with a nearly spot-on recreation of the original Super Mario Bros. first level, with responsive physics and animations. We successfully implemented all core game mechanics, including basic movement, interaction with the environment, and scoring. Goombas run around the map, properly animated, and Mario can destroy them by stomping on them, or if he runs into them the game ends. Mario can hit his head on brick blocks and mystery boxes to break them or collect coins, respectively. If mario falls out of the world, the game ends, and at the end, spare time is added to the score.

We achieved smooth horizontal scrolling at a consistent 60 Hz, with all background flashing and flicker effectively eliminated. Grate care was taken when designing the level to ensure it was not unreasonably difficult, and there's variation in terrain and obstacles. We have voids in the world, staircases, floating structures, a house/castle, parkour, a "pinball" like section, and a "temple." There's a variety of different layouts for coin spawn points; some involve the user having to break into a building using the aforementioned brick-breaking mechanic in order to continue in the level. Some spots had to be tweaked to avoid the user breaking the game, for example in some of the void section, bricks had to be replaced with solid stair tiles in order to prevent the user from inadvertently breaking the path forward.

Memory usage remained well within the Pico’s 264 KB RAM constraints, leaving headroom for potential future features (e.g., sound, additional levels). We initially thought we may have a memory constraint due to laggy scrolling and flashy animations, but these were instead pinned down to logical errors in how we constructed and re-drew the level. The game is rather immersive on its own without sound.

Our custom controller interface proved intuitive and reliable in testing, though the solder-and-wood construction is somewhat delicate. If the user isn't careful, the wires can get yanked from the breadboard. The reset button on the breadboard is a bit crude but it works well; We experimented with a reset button on the controller itself but we could not find one that wasn't a toggle-button. The larger, more ergonomic buttons are user-friendly and

User testing confirmed high usability: players found controls responsive and enjoyed the authentic retro experience, including Professor Adams. We allowed some of our friends to try the game as well and all were throroughly impressed and found no issues in playing the game.

Screenshot of gameplay
Figure 1: Level 1 demonstration with smooth scrolling and sprite animations.

Conclusions

Appendix A: Permissions

The group approves this report for inclusion on the course website.

The group approves the video for inclusion on the course youtube channel.