FPGA Breakout Atari 2600 Video Game FPGA Reproduction

Slides:



Advertisements
Similar presentations
Sumitha Ajith Saicharan Bandarupalli Mahesh Borgaonkar.
Advertisements

ECE VHDL Microprocessor Design Final Student Project August 14 th, 2012 Emily Kan Erik Lee Edward Jones.
ECE FPGA Design: Breakout Semester Project Proposal Derek Rose Richard Wunderlich.
Team Monte Cristo Joseph Carrafa Sharon Clark Scott Hassett Alex Mason The Deep Fried Game Station.
Display of Objects on Screen. COUNTERS b A horizontal counter represents the horizontal position of the monitor’s electron beam. b A vertical counter.
Team Monte Cristo Joseph Carrafa Sharon Clark Scott Hassett Alex Mason The Deep Fried Game Station.
Whistle Pongbat Peter Capraro Michael Hankin Anand Rajeswaran.
Vertical Retrace Interval An introduction to VGA techniques for smooth graphics animation.
Lecture 121 Lecture 12: VGA Video ECE 412: Microcomputer Laboratory.
EET Advanced Digital Display Adapters. A vital part to the system provides the visual part of the Human/Computer interface In boot process, goes.
Laser Tracking System (LTS) Team Lazer: Son Nguyen Jassim Alshamali Aja ArmstrongMatt Aamold.
Welcome to my presentation
FPGA-Based Arcade Emulation Danny Funk, Cory Mohling, Tony Milosch, David Gartner, John Alexander Advisor: Philip Jones Client: Joseph Zambreno.
FPGA-Based Arcade Emulation Danny Funk, Cory Mohling, Tony Milosch, David Gartner, John Alexander Advisor: Philip Jones Client: Joseph Zambreno.
Atari 2600: Stella Console Hardware & Combat Sample Game Software
Sept EE24C Digital Electronics Project Design of a Digital Alarm Clock.
Video Monitor Uses raster scanning to display images
IE433 CAD/CAM Computer Aided Design and Computer Aided Manufacturing Part-2 CAD Systems Industrial Engineering Department King Saud University.
Lab 2: Capturing and Displaying Digital Image
Digilent System Board Capabilities Serial Port (RS-232) Parallel Port 1 Pushbutton Hint: Good for a reset button Connected to a clock input. See Digilent.
Peripherals The term peripherals refers to all hardware devices that are attached to your computer and are controlled by your computer system Peripherals.
Backgrounds, Inheritance in GameMaker (BrickMania 1 of 2) Foundations of Interactive Game Design Professor Jim Whitehead January 28, 2008 Creative Commons.
Owais Ibrahim Akram Mohsin Murad. ONE OF THE BASIC ATTARI GAMES. THE PONG GAME CONSISTS OF A BALL RANDOMLY BOUNCING ON THE SCREEN. A PADDLE AT THE BASE.
Presented by : Maya Oren & Chen Feigin Supervisor : Moshe Porian Lab: High Speed Digital System One Semester project – Spring
Video Monitor Uses raster scanning to display images –Beam of electrons illuminates phosphorus dots on the screen called pixels. Starting at the top of.
ECE 448: Lab 6 VGA Display (mini chess game). Video Graphic Array (VGA) Resolution: 640x480 Display: 16 colors (4 bits), 256 colors (8 bits) Refresh Rate:
Objectives Differentiate between raster scan display and random scan display.
Virginia Commonwealth University School of Engineering DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING Embedded Systems-EGRE 631 TECHNO* Toward an Interactive.
Introduction to Experiment 5 VGA Signal Generator ECE 448 Spring 2009.
EE4OI4 Engineering Design UP1core Library Functions.
ECE 477 Design Review Team 2  Fall Outline Project overviewProject overview Project-specific success criteriaProject-specific success criteria.
Serial Link Game Team 1 Levi Balling, Robert Christensen, James Lewis 9 RS232 Team 1CS 3710.
Intruder Alert System By: Jordan Tymburski Rachita Bhatia.
Introduction to VGA 數位電路實驗 TA: 吳柏辰 Author: Trumen.
Lab 8 Bit-Mapped Graphics Moving from text-based graphics to bit- mapped graphics. Easy to draw graphic points and lines using INT 10h, Function 0Ch (write.
Simply Gaming Final Project Project Leader: PJ Acevedo Fall 2009.
ECE FPGA Microprocessor Design Erik Lee, Edward Jones, Emily Kan.
Graduation project (Hardware Project) Prepared By : Sadiq Al-Haj M.Abu-baker.
ECE 448: Lab 4 VGA Display Mini-Pacman. Flexibility in the Second Part of the Semester Lab 4: VGA display (2 weeks) – 8 points Lab 5: Computer Graphics.
ECE 448: Lab 4 VGA Display. Bouncing Ball.. Organization and Grading.
Computer Engineering 4OI4 Project Proposal James Gurunlian Clarence Ngai
ECE VHDL Microprocessor Design Final Student Project August 14 th, 2012 Emily Kan Erik Lee Edward Jones.
Video Card CES Industries, Inc. Lesson 10.  Translates computer information of binary digital data into visual information that the monitor can understand.
ECE 448: Lab 5 VGA Display. Breaking-Bricks..
Design & Implementation VHDL ET062G & ET063G Lecture 7 Najeem Lawal 2012.
EE 316 Computer Engineering Junior Lab Project 2 Digital Yahtzee.
Computer Graphics & Multimedia
ECE 448: Lab 4 VGA Display The Frogger. Flexibility in the Second Part of the Semester Lab 4: VGA display (2 weeks) – 8 points Lab 5: Computer Graphics.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL VGA Display Part 3 Animation ECE 448 Lecture 11.
CSE 171 Lab 11 Digital Voltmeter.
ECE VHDL Microprocessor Design Final Student Project August 14 th, 2012 Emily Kan Erik Lee Edward Jones.
6.111 Final Project A motion sensor baseball game By Chris Falling and JinHock Ong.
By: Aaron Knight. What is Emulation? Emulation is the process of implementing in software a set of hardware. Applications meant for another platform can.
Lab Environment and Miniproject Assignment Spring 2009 ECE554 Digital Engineering Laboratory.
Name Enrolment no.: Dhruti Desai Khushboo Desai Sneha Gangwani Rajul Shah
ECE 448: Lab 4 VGA Display Snake Game. Flexibility in the Second Part of the Semester Lab 4: VGA display (2 weeks) – 8 points Lab 5: Computer Graphics.
1 COMP541 Video Monitors Montek Singh Mar 11, 2016.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL VGA Display Part 3 Animation ECE 448 Lecture 11.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL VGA Display Part 5 The Complete Pong Game ECE 448 Lecture 13.
Implementation of Pong over VGA on the Nexys 4 FPGA
Not So Deep Blue The original Deep Blue. LED chess board Track movements of all pieces Show possible moves Track game time Detect piece movement -Magnets/Reed.
COMP541 Video Monitors Montek Singh Oct 7, 2016.
Breakout 3D Jeremy Quick.
Computer Graphics Lecture 3 Computer Graphics Hardware
Real-time Image Processing System
EEL 3705 / 3705L Digital Logic Design
EEL 3705 / 3705L Digital Logic Design
ECE 448: Lab 4 VGA Display Mini-Pacman Game.
Graphics Systems Lecture-2
VGA Display: VGA Synchronization & Pixel Generation
Presentation transcript:

FPGA Breakout Atari 2600 Video Game FPGA Reproduction Doug Cumbie, CpE MS UCF Fall 2008 EEL 5772 – FPGA Design Professor: Jooheung Lee December 2, 2008

Atari Breakout Developed and released by Atari in 1976 as a coin-operated arcade game Originally designed by Steve Wozniak (Inventor of the Apple computer) using only discrete logic chips Eventually released for the Atari 2600 video game system in 1978

Gameplay Break bricks for points by altering the path of a moving ball with a controllable paddle Avoid missing the ball and losing 1 of the 5 available lives Destroy all the bricks across 2 levels for a total possible score of 864 points

FPGA Breakout Design Modules Video Generation User Input Controller Internal Logic Graphics Display Collision Logic Score/Lives Logic Paddle and Ball Frame Counters Ball Movement

FPGA Breakout Design Overview

Video Generation Model graphics resolution after Atari 2600 native resolution of 160x192 pixels Extends the 640x480 Pixel VGA Display Driver from Lab 2 Horizontal and Vertical Counters are scaled to create the appropriate pixel size and resolution [7:0] Pixel_X = Hcount / 4; [7:0] Pixel_Y = (Vcount >= 48) ? (Vcount-48)/2;

Graphics Display and Animation Graphics are displayed by setting the appropriate pixel color for each object when the Pixel_X and Pixel_Y values are at a specific location Objects include: Ball, Paddle, Walls, Bricks, Scoreboard Animations are done by using an adjustable counter module, FrameCounter, for timing the positional updates of the ball and paddle Paddle FrameCounter is fixed at 200Hz rate (5ms refresh) Ball FrameCounter is adjusted based on the number of bricks remaining 108 to 95 bricks: 33 Hz (30ms) 94 to 80 bricks: 50 Hz (20ms) 79 to 20 bricks: 100 Hz (10ms) 19 to 0 bricks: 125 Hz (8ms) Ball movement is varied by slope ΔY/ Δ X, and altered by colliding with different X-positions on the paddle

Collisions Ball collisions with objects reverses X or Y direction Ball collisions occur at object edges (Top, Bottom, Left, Right) Bricks (6 rows of 18 bricks – 108 total) Brick collisions are realized by checking ball’s current position and a 108-bit brick state register Bricks are only destroyed on a top or bottom collision If a brick top or bottom collision is detected, the following actions are performed: if (BRICKS[18*yBallBrick + xBallBrick]) begin // 1. Clear brick state BRICKS [18*(yBallBrick) + xBallBrick] = 0; // 2. Decrement total brick count brickCount = brickCount - 1; // 3. Alter ball’s motion yBallDelta = -yBallDelta; // 4. Update score Score = CalcScore(Score, yBallBrick); end

Score and Lives Logic Number fonts are stored in a 16 bit wide x 140 deep Single Port ROM (predefined in a COE file) Each digit has a unique ROM and values are displayed by painting gray pixels at the top of the screen for every logic ‘1’ in ROM The 3-digit Score is contained in a 10-bit register Score is converted to 3 BCD values for each digit (hundreds, tens, and ones place) by using a module Score3BCD

User Input Controller Provides input to the gameplay – moves paddle Uses original Atari 2600 joystick Hardware interface to Joystick: 9-pin male D-sub connector to Xilinx board’s I/O expansion headers Joystick commands send logic lows Verilog software module inverts commands

Demonstration…

Questions?