Bass-Hero6.111 Final Project ReportHumberto Evans Alex GuzmanDecember 13, 2006AbstractOur 6.111 project is an implementation of a game on the FPGA similar toGuitar Hero, a game developed by Harmonix. It interfaces a real guitar withthe FPGA and the user plays by hitting the notes and chords displayed on thescreen. The user gains points by hitting the proper notes, and loses points ifhe fails to play the correct note. It is essentially DDR with a guitar instead ofyour feet. The game is implemented with a set of mo dules that interact withthe guitar and drive the VGA display that tells the user what to play. An FFTis used to get frequency data from the guitar and frequency data is mappedto fret numbers on the guitar. The VGA display is used to display scrollingrepresentations of notes on the screen which the user is expected to play. Thegame logic module compares the note the user is supposed to play with thenote the user is playing and awards the user the score which is also displayedon the screen. While all this is going on, the song is be ing played back fromthe flash memory through to the speakers.Contents1 Overview 12 Description 22.1 FFT Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22.2 Note Detector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22.3 Flash Play . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.4 Flash Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.5 Note Decoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.6 FSM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.7 Game Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.8 Video Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.9 Hex Convert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Testing and Debugging 114 Conclusion 13iiList of Figures1 Model of Note Representation on Screen . . . . . . . . . . . . . . . . 12 Note Decoder Block Diagram . . . . . . . . . . . . . . . . . . . . . . 43 Templatefile note pitch encoding. Chart for the first 5 bits of thetemplatefile encoding. . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Templatefile note duration encoding. Chart for last 3 bits in template-file encoding. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 FSM State Transition Diagram. The number of each state correspondsto that states game mode value. . . . . . . . . . . . . . . . . . . . . . 76 Game Logic Block Diagram. . . . . . . . . . . . . . . . . . . . . . . . 87 Video Module Block Diagram. . . . . . . . . . . . . . . . . . . . . . . 88 Sprite Color Code. The color of each sprite tells us which fret weshould play on the string that the note sprite is on. . . . . . . . . . . 99 Play Mode screen. This is an example of what the Play Mode screenlooks like. The Play Now marker is displayed with a yellow b ox. Thisscreen is composed of pixels from the Note Logic module and the Fret-board module. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1010 Start Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1011 Play Pause Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1112 Game Over Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11iiiList of Tables1 Mapping of String and Fret Numbers . . . . . . . . . . . . . . . . . . 32 Mapping of Fret and String to FFT bin index . . . . . . . . . . . . . 3iv1 OverviewBass Hero is a game implemented on the 6.111 lab kit. To play Bass Hero the userholds a real electric guitar that is plugged into the lab kit. The idea of bass hero isfor the user to play along with the bass line of a real song. While playing the gamethe user will hear the song and see a visual map of which notes he should play atwhich time on the VGA display. The notes on the display scroll to the left on a visualrepresentation of the guitar. The color of the square will map to which fret the usershould play (See Figure 1).Figure 1: Model of Note Representation on ScreenWhen the note reaches a marker at the left of the scree n, the user should playthe note. The object of the game is to keep up with the song and hit as many notesas possible correctly. While playing the user gets continuous feedback about how heis doing with a score that is displayed on the screen. Scoring is based on how closethe user was to playing the note note at the right time. The user receives no pointsfor playing an incorrect note. There will be a short …
View Full Document