My partner and I worked on this project as the final for one of our undergraduate classes. He brought the idea to me, and it was super cool. We found some documentation on the original Nintendo GameCube controller interface. We were then able to hook one up to a small power supply and digital oscilloscope to confirm the behavior of the controller. From there, we proceeded to implement a hardware IO driver for the controller, exposing the button states and analog stick positions. To demonstrate the functionality, we added a rudimentary (and kind of buggy...) implementation of the classic game Asteroids. This required utilizing a VGA driver along with a simple sprite array as well.