At Georgia Tech, I was enrolled in a class titled "Media Device Architecture," which taught me low-level programming in C and allowed me to comprehend how hardware and software architecture are intertwined on machines. For our final project, we were asked to devise our own GameBoy application from start to finish: gameplay, screen design, sprites, etc.
The basic requirements of the game were the following:
• Presence of at least 2 animated sprites
• Usage of 2 simultaneous tiled backgrounds
• Clear way of allowing the user to win or lose
• Showcase of splash screens with menu and instructions
• Ability to pause the game
• Usage of sound effects and a background soundtrack
• Hidden cheat to make the game easier (not just to skip to win state)
To see all the code for this project, I have it open-sourced on Github
here.