Visual Pinball


Visual Pinball is a freeware and source available video game engine for pinball tables and similar games such as pachinko machines. The software is composed of an editor and the simulator part itself. It runs on Microsoft Windows. The program is also able to operate with Visual PinMAME, an emulator for ROM images from real pinball machines.
A huge variety of user-created Visual Pinball tables are available on the internet. Players can choose between faithful recreations of existing pinball machines with or without ROM emulation and original pinball simulations based on licensed themes or completely self-designed tables. Visual Pinball's scripting capabilities can also be used to create pinball-like games.
Visual Pinball can be used to play the simulations on a common desktop PC and monitor, but also allows for cabinet support, including different monitors and TVs, giving the illusion of playing real pinball. Newer versions also added touch controls, making it possible to play on tablet computers and smartphones.
In February 2010, the source code of Visual Pinball was released under a license that allows free use for non-commercial purposes.

Design

Every Visual Pinball table includes two main parts: the "physical" playfield design and the script which controls the table gameplay directly, or establishes the wiring of the emulation to the simulated table components, such as lamps, switches and the flippers. The editor uses Microsoft VBScript for user programming. The program itself is written in C++ with the Active Template Library for making ActiveX controls. Visual Pinball is based on DirectX and thus can run on Windows 98, although its newest incarnations require at least Windows XP due to modern Microsoft compilers abandoning older OS versions.

History

Visual Pinball was first released to the public on December 19, 2000 by programmer Randy Davis.
In 2005, David R. Foley purchased the rights from Davis for modification of the suite for a full-sized pinball cabinet based on the Visual Pinball software. Chicago Gaming purchased rights for licensed tables from Williams Electronics. The Visual PinMAME team and the Visual Pinball development community also joined in the effort to produce improvements to the suite product and a few tables. This project, known as UltraPin, was acquired by Global VR following the acquisition of certain assets UltraCade, and was discontinued in 2008.
In 2008, NanoTech Entertainment acquired the rights from Davis for the use & distribution of the engine for inclusion with its Pinball Wizard PC Controller. NanoTech also released version 9 of the engine back to the community, featuring many updates that had been developed between 2005 and 2008. Version 9 of Visual Pinball includes some major improvements, but no full backward compatibility, therefore some older tables still need version 8 to run properly.
In 2010, the source code of Visual Pinball 9.0.7 was released under a license that allows free use for non-commercial purposes like the original MAME license. Davis and NanoTech are no longer involved in development since version 9.0.8. Since then development is solely driven by various open-source contributors.
Visual Pinball X with improved physic and graphic engines and additional new functionality was released on December 24, 2015, again breaking backward compatibility with version 9. Current efforts include the VPVR branch which adds support for dynamic virtual camera movement, including Virtual reality headset support.

Visual PinMAME

The simulation of most modern pinball machines require the Visual PinMAME program in order to behave as close to the physical machine as possible. VPinMAME adds to Visual Pinball's system requirements and, like other emulators, uses image files of the actual ROMs from the physical pinball machines, executing them as simulations of the embedded CPUs, sound chips, and displays from the real life machines.
Visual PinMAME is a program that was designed to work in combination with Visual Pinball to allow for 3D renderings of actual pinball table designs. Specifically, Visual PinMAME is responsible for emulating CPUs and the connected ROMs used in modern pinball tables, as opposed to tables with solid-state electronics/electro-mechanical mechanisms that contain no ROMs or advanced ICs in their hardware design. Visual PinMAME displays the LEDs or DMD of the machines in a separate window and also delivers emulation of the integrated sound chips. In order for Visual PinMAME to work properly with a rendered pinball table, it requires that specific table's ROM images.
Visual PinMAME was written by a team of programmers including Steve Ellenoff, Tom Haukap, Martin Adrian, and Gerrit Volkenborn, and had its first public release March 30, 2001 with version 0.99 beta. The underlying PinMAME core, that drives all emulation components and is also responsible for the rendering and output of LEDs, the DMD and playback of the emulated sound and music, was already started in April, 1999. The program is named after the original MAME program for emulating arcade games and is based on some parts of the MAME core.7X. In the beginning the project started as WPCMAMECOM. Visual PinMAME is written in the C++ programming language, whereas PinMAME is still based on C.
On August 1, 2008, the full source code of PinMAME 2.0 was made available to the public. Since then, development continues with the help of various open source contributors.