Final project for CSCB58 Computer Organization. This course teaches computer hardware fundamentals such as combinatorial/sequential circuit design, K-mapping, FSM, and study the MIPS Processor (ALU, Datapaths etc). The course ends with programming the processor using assembly.
The purpose of the project was to make a single player videogame by using the skills I gained for coding in assembly. The final game was coded in 900 lines of assembly code, including comment. I utilized both memory and registers to store the current state of the game, including stats such as player health, player position, timer, obstacle locations, and color attributes of all objects. The key skills gained include:
- Keyboard input using Memory Mapped I/O
- Useful System Calls (random number generator, sleep etc)
- Using Framebuffer to display pixels
- Using standard calling conventions for function calls
- Writting well commented and documented Assembly code
- Excellent experience debugging Assembly code
Here is the demo video I submitted for grading: https://www.youtube.com/watch?v=yuREScvud_I&ab_channel=mani1820