← Back to projects

CSE 305

My team and I decided to as faithfully as possible recreate Geometry dash on an FPGA, including sprite rendering, audio (MIDI and .wav playback), mouse input with cursor and full physics with both jumping and flying mode. We also added multiplayer as a hidden extra option with each player using one the two mouse buttons. My main focus was the audio, our MIDI impementation involved converting a .midi file into a .mif storing note events as well as pre selecting the voice so that we could save on processing power. This is read and allocates the notes to a square wave generator. The output of the voices is summed then put through a high-pass filter and an automatic gain control stage to reduce clipping. the sound effects are stored in memory and are read and added to output of the ACG. these are both played using an 8 bit R2R ladder DAC connected to a speaker.

VHDL
CSE 305CSE 305CSE 305