Pong MIPS

For one of my classes at the University of Minnesota Duluth (UMD) we learned a basic understanding of MIPS. Me being myself with a background in digital logic and having created my own instruction set, decided I wanted to have a deeper understanding of MIPS. As always when I want to learn something I started a project. I decided to implement the classic game of Pong in MIPS.

For our class we used the MARS MIPS Simulator. Did not have a tool that allows keyboard input and a bitmap display. So I created a branch and added a tool that captures key presses and had a bitmap display. I also added a convenient way to run the program with opening the whole editor. I included my “hacked” version of the MARS Simulator in my pong repo.

Here are some cool features:

  • Non-hard coded width, height, paddle size. (You can change these values in main.asm)
  • AI with customizable difficulty level adjustable through the “hardness” value in main.asm. Difficulty level basically just changes how fast the AI reacts when the ball starts coming back.
  • A drawing functionality that only redraws the difference between frames instead of redrawing the whole screen. This speeds up the drawing process immensely.

You can check it out on github.

Screenshot

PongMIPS Screenshots
Tags: