Project Plan

SDMay 12-13 Problem/Need Statement

Retro arcade , along with many other types of arcade games, have become increasingly harder to find and play over the past few decades. There are still many people who would like to enjoy the full pinball arcade experience, even though the machines themselves are no longer available. Various and video products have been made available since the demand for the machines faded that emulate the game of pinball. These products give users the ability to play on tables that can mimic these retro pinball tables, play on new tables, and allow users to create their own. One of the more popular of these products is for , which is free and is now available as an open source project. With the use of this product, and the construction of a pinball , the retro pinball experience can be created and still enjoyed. Iowa State University’s Computer and Electrical engineering department continues to pride itself on innovative design and as a leader in technical advancements. Some of the designs and products are used to showcase not only these advances, but the department as a whole. This project continues the process by providing a virtual pinball with the look and feel of its original counterparts for all to enjoy, while showcasing the use of open design to create custom pinball tables and FPGA technology. System Block Diagram DICTIONARY OF TERMS (Anything else needed?) for Project Plan:

Terms Definition VP Visual Pinball software for Microsoft Windows XP DMD Dot Matrix Display that displays the user’s current score and other animations as part of the back panel of the arcade cabinet

Backglass The display that shows the game’s marquis or emblem and possibly other relevant game information.

PinMAME Pinball Multiple Arcade Machine . This is software that emulates the animation and scoring for the pinball game on the DMD and in conjunction with VP helps emulate the playing field using original pinball arcade ROM’s.

Table Refers to the playing field of the pinball game on the arcade cabinet.

HyperPin A version of HyperSpin, which is a menu based software that allows users to change between emulated arcade games. HyperPin emulates choices between pinball tables.

Feedback Vibration of the table and other physical interactions with the user when actions such as the pinball hitting a target, a flipper being pressed, or plunger being pulled and released are created. This can include visuals from the DMD, and sound effects and/or music from the speakers.

I-Pac Hardware that allows keyboard button emulation through analog devices such as arcade buttons, , plungers, etc. Can allow up to 54 inputs.

Cabinet The wooden arcade that encloses the three displays, controls, speakers, and hardware.

Tilt The action of a user pushing or moving the physical arcade cabinet to change the trajectory of the ball. OverviewSystemThe Virtual PinballDescription Experience is a pinball emulation machine that will accurately depict vintage pinball machines from the past. The playfield and backglass images are displayed on monitors housed in a custom made cabinet. This cabinet also contains the user interface and feedback which makes gameplay more realistic. Computer ● Windows XP 32 Bit ○ This is the most stable platform for Visual Pinball 9 software ● Intel Dual-Core Processor ● Intel Compatible Motherboard ● 2 GB RAM ○ Maximum amount of RAM that will be utilized while using 2 video cards ● 2 NVidia Video Cards ○ Used to power the 3 monitors (46” LCD, 24” Backglass, DMD Monitor) ● 32 GB SSD ○ Will prevent page faults or errors when cabinet is nudged or tilted ● CD/DVD Drive ● Power Supply SoftwareSystem Description (Cont'd) ● Visual Pinball 9 ○ Main pinball table engine. Allows for creating custom tables and playing vintage tables that have already been recreated ● VpMAME ○ Generates Dot Matrix Display (DMD) images for tables ● HyperPin ○ Front end for VP9 that gives user a table selection interface Monitors ● 1080p 120Hz 46” LCD ○ Main pinball playfield ● 24” Backlit Monitor ○ Displays backglass image for specified game ● LED Matrix ○ Display DMD images generated from VpMAME Peripherals System● I-Pac Keyboard Emulator Description (Cont'd) ○ USB interface which allows the computer to see button presses as keyboard strokes ● Plunger ○ Physical plunger for player to pull that will emulate in gameplay ● Tilt/Nudge ○ Accelerometers that detect when the player has tilted or nudged the table ● Buttons ○ Right Flipper ○ Left Flipper ○ Start ○ 2 Extra Buttons for miscellaneous purpose Feedback ● FPGA ○ Receives serial input from computer detailing feedback reactions ○ Outputs signals (PWM) to motors to simulate ball hitting bumpers, sides, etc. ● Solenoids or Motors ○ Receive input from FPGA board to engage feedback reactions SystemMiscellaneous Description (Cont'd) ● Speakers ○ Strip pc speakers and place in cabinet to reproduce table sounds ● Fans ○ Fans are used to cool the contained in the cabinet ● Power Supply ○ This power supply powers all peripherals (speakers, motors, fans, FPGA) Cabinet ● Wood ○ Used to construct main cabinet body ● Backglass ○ Covers the DMD and backglass monitors ● Playfield glass ○ Covers the 46” LCD playfield monitor ● Metal Legs ○ Support cabinet body Operating Environment

Operating Environment: The operating environment for the Virtual Pinball Table is intended to be in a venue with the intention of showcasing the project for an Iowa State University event. It will also be operated in a lab environment in Durham Hall, at Iowa State University.

Other environments may include any venue of the clients choice, with the purpose of entertainment or education. These environments would need to be in a controlled environment, unexposed to adverse weather conditions. It would also need to have a source of power close enough to power the cabinet. User Interface Description

User interface will consist of two main interactions. First, the cabinet will provide information on the current state of the game and the pinball via the main screen. On a secondary monitor, mounted above the main screen, there will also be secondary information including the current score, number of balls left, and any other information provided by the game board that the user should be aware.

The input for the machine will be controlled by the pressing of buttons and physical input provided to the table. There will be a button corresponding to the flipper on that side of the machine being activated, another button to toggle the menu, and a final button or physical plunger that will simulate the usage of an actual plunger. The user may also may influence the game by tilting or bumping the table. Functional Requirements

1. The system will allow users to play Visual Pinball using a standard pinball arcade cabinet. 2. The system will allow users play control via analog pinball controls including left and right flipper buttons, plunger, start button and tilt. 3. The system will have multiple pinball tables for the user to choose from. 4. The system will have administrative access via keyboard and mouse. 5. The system will use an FPGA to control and provide real time user feedback when targets are hit by the ball, and when the flippers and plunger are pressed or pulled and released. 6. The system will have three displays: a 46” emulated standard pinball playing field, a DMD (Dot Matrix Display) emulated on an LED display for scores, and a 24” back glass display for game emblems/marquis. 7. The system will output music and/or sound effects for each table/game. 8. The system will keep track of high scores for each pinball table. 9. The system will allow two players to play at once via internet for certain tables. 10. The system will not cost money to use. 11. The system will allow users to post high scores to online networking sites such as but not limited to: Facebook, Twitter. 12. The system’s will be Windows XP SP3. Non-Functional Requirements

● System reaction to input must not lag behind said input by a perceptible amount. ● Force-feedback system must not lag behind display output by a perceptible amount. ● System music and sound effects must not lag behind display output by a perceptible amount. ● Different pinball tables must be able to be selected without use of the keyboard or mouse. ● System must boot and load the pinball software without use of the keyboard or mouse. ● System must allow input of user initials for association with a high score without use of the keyboard or mouse. ● System must allow integration with social networks without use of the keyboard or mouse. ● System must allow itself to be reboot or shut down without use of the keyboard or mouse. Market and Literature Survey

Pinball machines, once a main-stay of any good arcade, are becoming increasingly difficult to find in today’s society.

Stern Pinball of Chicago, Illinois is the last remaining manufacturer of mechanical pinball tables and though pinball machines had moved to largely software-based designs in the 1990’s, most manufacturers of such designs, Williams Electronics Inc for example, have since ceased production in favor of bar-style gambling machines.

In lieu of the widespread availability of pinball as an entertainment option, many hobbyists have begun constructing their own software-based pinball tables and a small industry of parts and software providers has grown to support them.

However, many of the commercial products available to hobbyists are expensive and many of the features we wish to add have no readily-built parallel at all. Deliverables

Our final delivered product will be a fully-functional Pinball cabinet, with necessary software installed and pre- configured. The final product will include a number of playing fields, and minimal setup required.