Sei sulla pagina 1di 14

Multi-Arcade Emulation System Project Plan

Group Members
Jonathan Henze Kevin Moore Brandon Otto Richard Rojas Marvin Toeung

Client and Advisor


Joseph Zambreno

May 12-14

9/29/11

Table of Contents
1. Terms 2. Problem Overview 2.1 Problem Statement 2.2 Market and Literature Survey 3. System Overview 3.1 System Description 3.2 Concept Sketch 3.3 Block Diagrams 3.3.1 Hardware Block Diagram 3.3.2 Software Block Diagram 3.4 Operating Environment 3.5 User Interface 4. Requirements 4.1 Functional Requirements 4.2 Non-functional Requirements 5. Deliverables 6. Work Plan 6.1 Work Breakdown Structure 6.2 Resource Requirements 6.3 Project Schedule 6.4 Risks 2 3 3 3 4 4 4 6 6 7 7 8 9 9 9 10 11 11 11 12 13

1. Terms
Console: CprE: CRT: DVI: EE: FPGA: HDMI: LCD: LED: N64: NES: OS: OSHA: PSX: ROM: SNES: VGA: A machine designed to play video games for home use Computer Engineer Cathode Ray Tubing Digital Visual Interface Electrical Engineer Field Programmable Gate Array High Definition Multimedia Interface Liquid Crystal Display Light Emitting Diode Nintendo 64, Nintendos first system to feature a 3D graphics processor Nintendo Entertainment System, a console created by Nintendo in 1985 Operating system Occupational Safety and Health Administration Sony PlayStation, a CD based console featuring 3D graphics Read only memory. Console games are loaded into emulators from ROM files Super Nintendo Entertainment System, Nintendos successor to the NES Video Graphics Array

2. Problem Overview
2.1 Problem Statement

Last years FPGA based NES emulator project drew a large amount of interest from perspective engineering students by demonstrating an interesting application of technical skills and providing a fun and engaging experience for players. While the project was impressive, the cost required to implement a hardware-based emulation is fairly high. By using software-based emulation, we can provide a system that is capable of emulating multiple platforms at low cost. There are many open source emulators for a variety of consoles already available for use. Current ARM processors are capable of emulating up to N64 and PSX level consoles in software at acceptable speeds. We want to be able to show off an impressive creation that potential Electrical and Computer Engineering students can learn about and make here at Iowa State by extending the NES emulator project to software emulation of multiple consoles. Our personal goal is to build a classically styled arcade system that emulates several classic arcade systems in a custom control scheme that will handle all of them. This system will be used as a recruiting tool for the Department of Electrical and Computer Engineering.

2.2 Market and Literature Survey

Technology is always getting better. Because of this, there will be old technologies and in this case, games that will be left behind. However, there are some classics that a generation will find nostalgic and will want to play later. That is why emulation is still big today, some example platforms being Xbox Arcade, PlayStation arcade, WiiWare games and PC emulation software. There is a multitude of emulation software simulating all kinds of hardware as far back as the ATARI 2600, and as current as the Nintendo Wii. Typically, these emulators are open source projects written by a team of dedicated enthusiasts. Many of the emulators have been ported to run on a variety of different systems, including some ARM based systems similar to the Panda Board.

3. System Overview
3.1 System Description

The system will be presented as an arcade cabinet featuring a sturdy frame, a large LCD or CRT display, a set of built in speakers and an area for player controls, which will contain a joystick and eight buttons for each player. The player control area will feature an LED display under the buttons which will light up only the buttons that are valid for the player configuration and game selected. At the core, the system will be powered by a small, affordable ARM-based embedded platform which will perform all of the emulation in software. The ARM board will be connected to the display via HDMI or DVI and will provide audio to the speakers via an 1/8th inch audio jack. Users will be able to view the embedded system and other hardware components by lifting a lid under the control area. The ARM board will run a Linux based OS. Upon starting the system, the OS will load our custom software to provide a user interface to select games to play. When the user chooses a game, the application will launch the appropriate emulator program to run the game. The player will be able to return to the selection program via a button, at which time the emulator program will be terminated.

3.2 Concept Sketch

The original sketch was based off some original arcade machines with a few alterations to make it fit the specifications. With following some of OHSAs recommendations on sizing and standard accessibility, we came up with a basic concept that uses four players. The design for the button layouts was also designed specifically to fit the normal structure of the hand. This design can be seen in Figure 1.

Figure 1 - Concept Design

3.3 Block Diagrams


3.3.1 Hardware Block Diagram

Figure 2 - Hardware Block Diagram

3.3.2 Software Block Diagram

Figure 3 - Software Block Diagram

3.4 Operating Environment

The primary operating environment of the system will be indoors, such as in Durham and Coover halls. These environments have relatively controlled temperatures of roughly 20 - 25 degrees Celsius, which will provide adequate cooling. The board itself will operate within a protective enclosure that fits inside the cabinet.

3.5 User Interface

The user control of the system will be a series of buttons and joysticks on a horizontal panel. Each player will have a single joystick and eight buttons to control. Since not all of the buttons will be used for every game we will light up the buttons that are used for a particular game. There will also be a Start and Select button. The system will boot into a start-up screen and then proceed into a game-selection menu. The game-selection menu will allow the user to sort the games by: game system, release year, number of players, and alphabetically. Once a game is selected the correct buttons will be lit and be used to control the game.

4. Requirements
4.1 Functional Requirements

1. The system must be able to emulate at least four different consoles from the following list: Atari 2600, NES, SNES, Sega Genesis, N64, PSX 2. At least one support emulator must be ported from Windows/Linux x86 to ARM by the team to provide an insight in to the porting process and inner workings of emulators. 3. The system will allow for input for up to four players simultaneously. 4. The input control scheme will provide enough buttons to map to all of the required buttons in all emulated games. The N64, with six face buttons and three shoulder buttons would likely require the most buttons, but it is not necessary to support all three shoulder buttons because only two were ever used at a time. 5. The system will follow all the OSHA wiring requirements listed here. 6. We will be following the recommended OSHA safety regulations involving computing device stations as noted here. 7. The core system must be removable from the cabinet and be able to run connected to a separate display and speakers. 8. The project must be completed in time to be displayed at VEISHA.

4.2 Non-functional Requirements

1. All provided games must run at a playable frame rate, defined as at least 90% of the frame rate the original console would provide for the given game. 2. The input devices must respond to user actions within an acceptable time frame, defined as within 50 milliseconds.

3. All emulated games must be fully playable with no game breaking glitches, defined as any glitch that prevents the player from progressing.

5. Deliverables
We will emulate at least 4 different classic video game systems. We will create a custom control scheme for 4 different possible players at once on our system. Each individual players control scheme will support all possible emulated systems by simply disallowing the use of the unneeded buttons of each system. Each players control scheme will have 8 unique buttons as well as a joystick. This will all exist on a custom wood-built cabinet frame.

10

6. Work Plan
6.1 Work Breakdown Structure

Research: Panda Board Setup: Emulator Setup: Game Selection Interface: Full Emulator Port: Cabinet Construction: Cabinet Wiring: Testing:

Every group member Jonathan and Kevin Brandon, Jonathan, Kevin and Marvin Brandon, Jonathan, Kevin and Marvin Brandon, Jonathan, Kevin and Marvin Every group member Richard Every group member as well as outside participants

6.2 Resource Requirements

Item 4 Ply Pine Sheathing 3 Ply Pine Sheathing Pine R+d Sheathing Pre-cut Birch Plywood Pre-cut Birch Plywood Pine stud (frame) Pine stud (frame) Pine stud (frame) Pine stud (frame) Hinges Casters Casters Casters Casters Panda Board Joysticks

Description 15/32 x 4 x 8 15/32 x 4 x 8 3/8 x 4 x 8 1/4 x 2 x 2 1/4 x 2 x 4 2 x 4 x 16 2 x 4 x12 2 x 4 x10 2 x 4 x 8 2.5 125 lbs 175 lbs 225 lbs 300 lbs

Cost $12.97 $11.96 $9.99 $3.94 $8.86 $4.68 $3.35 $2.68 $1.97 $2.28 $2.98 $4.46 $6.46 $10.96 FREE (retail $175) 4 x $10-30

11

Buttons Wires Screws Display LEDs for buttons Speakers

2-3 27-32 2.1 audio

Est. 36 x $1-2 Est. $20.00 Est. 128 x $0.05 Est. $350 Est. 36 x $1 Est. $40

6.3 Project Schedule

Research:

9/23/11

Select best board to use Determine the systems we want to emulate Select button configuration Best Cabinet structure 10/21/11

Panda Board Setup: Setup Linux Setup control drivers

Emulator Setup:

12/9/11

Copy most compatible emulators over to board Edit for accuracy on our specific board Copy and save our list of specified ROMs for use on board 1/13/12

Game Selection Interface:

Create Loading Screen Build database storing sortable information about each game Code game-selection GUI Create idle light-show with buttons 3/9/12

Full Emulator Port:

Research popular emulator that has not been ported to ARM Research x86 and ARM assembly Convert x86 assembly to ARM or C and port emulator

12

Cabinet Construction and Wiring: 3/9/12 Finalize Cabinet design Build the wooden frame Setup the wiring to support the board, all the buttons and the monitor Do wiring Sort the wiring to not be exposed in any possibly dangerous manner 4/6/12

Testing:

Every individual game planned on supporting requires testing A game report must be written describing any errors for every game Game-Selection Menu should be tested

6.4 Risks

Emulators either run too slowly, take too much time to implement on our own, or have too many glitches. This could cause us to be unable to implement our intended number of emulators by the delivery date. Emulators are large, complex pieces of software that often mix C and assembly routines, commonly written x86. Porting one of these programs to ARM is no simple task and will require intimate knowledge of both x86 and ARM. There may be many unforeseen problems encountered with the port that we may not be able to overcome in two semesters. In this case, we would likely replace our ported emulator with one ported by the emulation community.

13

Potrebbero piacerti anche