Geoffrey Greenleaf Khoi Nguyen Breakout (the ATARI game) ========================= Breakout is the old game where the user controls a paddle and uses a ball to break bricks. If the ball falls below the paddle, the user loses a life. Each brick is worth 1,2,3,4,5, or 6 points, depending on what row it is in, and once all the bricks are gone, we proceed to a new level. To test ======= We used the XSV board, programmed at 25MHz, as our hardware platform. Inputs should be the parallel port (to download the .bit file), keyboard, and power. Output is the monitor. See the module KEYSIG (below) for a description of keys you can use to play. NOTE: game has to be reset (spacebar) first. Modules used ============ All the modules can be found inside VGA_MODULE from the top level. KEYSIG ------ takes in the input coming from the keyboard (called SCANKEY), and figures out which (if any) of the keys we are interested in are being pressed. We use the following keys: P (pause), G (god mode), left-arrow and right-arrow (paddle control), 1 and 2 and 3 (speed control), and spacebar (reset). ENBL ---- This basically creates an enable telling the game state to recompute, so that the game comes down to a playable speed. Enball enables the ball, and will go high once, twice, or three times per refresh, depending on the speed of the ball (speed changes if user presses 1, 2, or 3). EN goes high three times per refresh, and enables the paddle. BREAKOUT -------- The main module, where the game state is computed. Here, we keep track of the ball's position and direction, the paddle position, the bricks, the score, the lives, and the level. See comments in the module for more info. 4D7SEGDISPLAY ------------- Takes in the 16 bit score and produces 28 bits, representing the state of the segments in 4 standard 7-segment displays. This is used to show the score. RGBCALC ------- Calculates the RGB value for the X, Y pixel given as input. Everything is taken into account, including lives and score; anything that can be displayed is used here.