Skip to content

💣 The game Minesweeper in MIPS Assembly Language, including a complete MIPS processor in SystemVerilog and VHDL

Notifications You must be signed in to change notification settings

burnsdy/mips-minesweeper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 Cannot retrieve latest commit at this time.

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MIPS Assembly Minesweeper

The iconic game Minesweeper programmed in MIPS Assembly Language. The game is meant to be implemented on an FPGA development board (I used the Nexys 4 DDR) using Xilinx Vivado to generate the complete MIPS achitecture for the board from HDL files representing the different components of the processor. The various memory files contain the game instructions and graphics.

Click here to see the demo video.

MIPS Minesweeper Demo Video

When implemented on the board, the player is able to move the cursor with WASD or the arrow keys, flip a tile using space bar, and flag a tile using F.

The board plays different jingles upon starting, winning, and losing the game, and different sounds when flipping or flagging tiles. The LED lights on the board also flash in different patterns upon winning or losing.

The mine locations on the game board are generated pseudo-randomly, and flipping a tile causes the surrounding tiles to be flipped recursively (like what happens in the normal implementation of the game).

All of the graphics were created by me to mimic the classic 8-bit design of the game. The graphics are specified in the screen memory (smem.mem) and bitmap memory (bmem.mem) files in the GameMemory folder.

This project was completed as the final assignment for UNC Chapel Hill's COMP 541: Digital Logic and Computer Design.

Many thanks to Montek Singh for his support during the semester.

About

💣 The game Minesweeper in MIPS Assembly Language, including a complete MIPS processor in SystemVerilog and VHDL

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published