Jacklyn Becker

Jacklyn BeckerJacklyn BeckerJacklyn Becker
Home
Projects
  • Mapping Application
  • FPGA Mario
  • IOS APP
  • 2D Game Unity

Jacklyn Becker

Jacklyn BeckerJacklyn BeckerJacklyn Becker
Home
Projects
  • Mapping Application
  • FPGA Mario
  • IOS APP
  • 2D Game Unity
More
  • Home
  • Projects
    • Mapping Application
    • FPGA Mario
    • IOS APP
    • 2D Game Unity
  • Home
  • Projects
    • Mapping Application
    • FPGA Mario
    • IOS APP
    • 2D Game Unity

FPGA Mario

The project is a one player spin on the classic Mario video game. The goal of the game was to have the player use keyboard controls to make Mario run and jump. The player must use these two controls to collect coins (each worth 1 point) while avoiding obstacles (enemies and pipes) that cause game over. 

Overview of design

High-level Diagram

The main components of the design are an FSM, a datapath, the keyboard, a hex display, and VGA adapter. One FSM that contains 20 states which allows the game to start, Mario to run, jump, collect coins, and game over. The Datapath contains multiple counters for the drawing of Mario, the background, and the rectangles covering the coins as well as outputs score to hex display. Spacebar is used for go (begin the game), right arrow for run (Mario run), and up arrow for jump (Mario jump).

Finite State Machine

Run states allow mario to “run”.  After one Mario image is drawn, a wait state is entered before next is drawn, to allow the player to see each image at a rate of 8 Hz to give the illusion of running. Jump states cause mario to jump.  The states from jump to coinerase_jump are repeated 10 times to create a longer jump before returning to Start state.  Erase states are the states that cause the background to move. The erase states send a signal to the datapath that draws a different section of a larger image every time mario is ‘moving’. Coin collect states  signal the datapath to draw a rectangular box over each coin, and have it move at the same speed as the background. This makes it so the coins appear to have been collected. Start state is the state that the run and jump paths of the FSM converge to. The signals from the keyboard module determine which next state the Start state goes to, jumping, running, or game over. 

Bugs

In many games, there is a loophole that makes it very easy for the player to win the game.  In the case of the Mario game, if the player continuously presses jump, Mario will return to the jump state and will stay in the air.


If Mario landed on the obstacle, but behind the programmed address, the game would not be over as it would not be detected as an obstacle hit. The game is only over if Mario hit one specific address of the obstacle on the screen.

Copyright © 2025 Jacklyn Becker - All Rights Reserved.

  • Home

This website uses cookies.

We use cookies to analyze website traffic and optimize your website experience. By accepting our use of cookies, your data will be aggregated with all other user data.

Accept