Visual Pinball

Last updated
Visual Pinball
Developer(s) Initially Randy Davis, continued by various Open Source contributors
Initial releaseDecember 19, 2000;23 years ago (2000-12-19)
Stable release
10.7.3 / 23 December 2022;14 months ago (2022-12-23)
Repository github.com/vpinball/vpinball
Operating system Microsoft Windows
Type Pinball
License Freeware for non-commercial use with source code available (the original MAME license)
Website vpforums.org

Visual Pinball ("VP") is a freeware and source available video game engine for pinball tables and similar games such as pachinko machines. It includes a table editor as well as the simulator itself, and runs on Microsoft Windows. It can be used with Visual PinMAME, an emulator for ROM images from real pinball machines.

Contents

A huge variety of user-created VP 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 or completely original themes. VP's scripting capabilities can also be used to create pinball-like games such as pitch-and-bat baseball, pinball bingo, bowling, cue sports, and pachinko.

VP can be used with common desktop PCs and monitors, but also supports "virtual pinball" cabinets, with various monitors and TVs used to display the playfield and backbox, similar to a real pinball machine. 3D televisions are supported; and recent versions support touch controls for playing on tablet computers and smartphones.

In February 2010, VP's source code was released under a license allowing free non-commercial use. [1]

Design

Every Visual Pinball table includes two main parts: the "physical" playfield design, and the script that determines table gameplay, establishing the "wiring" of the emulation (through Visual PinMAME) to the table components such as lamps, switches and flippers. The editor uses Microsoft VBScript for user programming. VP itself is written in C++ with the Active Template Library for making ActiveX controls. [2] VP is based on DirectX, so it can run on any Windows version from Windows 98 on; however, most recent VP versions require at least Windows XP due to modern Microsoft compilers abandoning older versions of the OS.

History

Visual Pinball was released to the public on December 19, 2000 by programmer Randy Davis.

In 2005, David R. Foley purchased rights from Davis for modification of the suite for a full-sized pinball cabinet based on the Visual Pinball software. [3] 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, [4] and was discontinued in 2008.

In 2008, NanoTech Entertainment acquired VP rights from Davis to use and distribute the engine with its Pinball Wizard PC Controller. They released version 9 of the engine back to the community, with many updates developed between 2005–2008. Version 9 includes major improvements, but incomplete backward compatibility, so some older tables still need VP version 8 to run properly.

In 2010, the source code of Visual Pinball 9.0.7 was released under a license allowing free non-commercial use, similar to the original MAME license. [1] Davis and NanoTech are no longer involved in development as of (at least) version 9.0.8. Since then, development has been done by various open-source contributors.

Visual Pinball X ("VPX") was released on December 24, 2015, again breaking backward compatibility with version 9; previously created tables can be loaded with it, but not played without changes. VPX brings significant improvements to graphics and the program's physics engine.

Current efforts include the re-integration of the VPVR fork [5] into Visual Pinball 10.8.0, which adds support for dynamic virtual camera movement, including Virtual reality headsets, and adding OpenGL as an alternative graphics API option. Due to the latter, Visual Pinball 10.8.1 will add support for operating systems other than Windows, including macOS, iOS, tvOS, Linux (incl. the Batocera distribution [6] and the Raspberry Pi platform) and Android. [7] These versions for now omit (most of) the user interface for creating tables, and focus on simulating/playing existing tables.

Visual PinMAME

Visual PinMAME
Developer(s) Initially Steve Ellenoff, Tom Haukap, Martin Adrian, Gerrit Volkenborn, continued by various Open Source contributors
Initial releaseApril 1, 1999;24 years ago (1999-04-01)
Stable release
3.5 / 23 October 2022;16 months ago (2022-10-23)
Repository github.com/vpinball/pinmame
Operating system Microsoft Windows, (lib)PinMAME also macOS, iOS, tvOS, Linux, Android
Type Pinball
License Freeware for non-commercial use with source code available (the original MAME license)
Website vpforums.org

The simulation of most modern pinball machines (especially those made after 1992, using large portions of DMD animations and digital sound samples) requires the Visual PinMAME program (sometimes referred to as VPinMAME or VPM) to emulate physical machines as closely as possible. VPM increases Visual Pinball's system requirements and, like other emulators, uses image files of actual ROMs from physical pinball machines, executing them as simulations of the embedded CPUs, sound chips and displays from the original machines.

VPM is a program (a COM class) designed to work in combination with Visual Pinball (or nowadays, any other program that can use the COM class, e.g. Unit3D Pinball [8] ) to allow 3D renderings of actual pinball table designs. It is responsible for emulating CPUs and the connected ROMs used in modern pinball tables, as opposed to tables with electro-mechanical mechanisms that contain no ROMs or advanced ICs. VPM displays the LEDs or DMD of the machines in a separate window, and emulates integrated sound chips. To work properly with a rendered table, it requires that specific table's ROM images.

VPM was written by a programming team including Steve Ellenoff, Tom Haukap, Martin Adrian and Gerrit Volkenborn, and was released March 30, 2001 with version 0.99 beta. The underlying PinMAME core—which drives all emulation components, and is responsible for emulating LED displays, the DMD and playback of the emulated sound and music—was already started in April, 1999. [9] VPM is named after the original MAME program for emulating arcade games and is based on some parts of the MAME core .7X. The VPM project started as WPCMAMECOM (and its underlying core as WPCMAME, based on the WPC and MAME acronyms). VPM 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. [10] [11] Since then, development continues with the help of open-source contributors.

In 2017, the effort of making the PinMAME core interact with other programs through other APIs than the Windows exclusive COM was started (initially called PinMAMEdll). Over the years, this was further extended to result in a platform-independent library (libPinMAME) initially released in January, 2021, that can be employed also on macOS, iOS, tvOS, Linux and Android, and in 32-bit and 64-bit flavors.

See also

Related Research Articles

<span class="mw-page-title-main">UAE (emulator)</span> Computer emulator which emulates Commodore Internationals Amiga.

UAE is a computer emulator which emulates the hardware of Commodore International's Amiga range of computers. Released under the GNU General Public License, UAE is free software.

<span class="mw-page-title-main">MAME</span> Arcade game emulation software

MAME is a free and open-source emulator designed to recreate the hardware of arcade game systems in software on modern personal computers and other platforms. Its intention is to preserve gaming history by preventing vintage games from being lost or forgotten. It does this by emulating the inner workings of the emulated arcade machines; the ability to actually play the games is considered "a nice side effect". Joystiq has listed MAME as an application that every Windows and Mac gamer should have.

In software engineering, a compatibility layer is an interface that allows binaries for a legacy or foreign system to run on a host system. This translates system calls for the foreign system into native system calls for the host system. With some libraries for the foreign system, this will often be sufficient to run foreign binaries on the host system. A hardware compatibility layer consists of tools that allow hardware emulation.

<span class="mw-page-title-main">ROM image</span> Data dump from a ROM chip

A ROM image, or ROM file, is a computer file which contains a copy of the data from a read-only memory chip, often from a video game cartridge, or used to contain a computer's firmware, or from an arcade game's main board. The term is frequently used in the context of emulation, whereby older games or firmware are copied to ROM files on modern computers and can, using a piece of software known as an emulator, be run on a different device than which they were designed for. ROM burners are used to copy ROM images to hardware, such as ROM cartridges, or ROM chips, for debugging and QA testing.

<span class="mw-page-title-main">NESticle</span> Nintendo Entertainment System emulator

NESticle is a Nintendo Entertainment System emulator, which was written by Icer Addis of Bloodlust Software. Released on April 3, 1997, the widely popular program originally ran under MS-DOS and Windows 95. It was the first freeware NES emulator, and became commonly considered the NES emulator of choice for the 1990s. Initially offering few features and only supporting a handful of games, development proceeded rapidly and to expand usability such that NESticle is today credited with introducing the concept of recordable playthrough for emulation, as well as providing the capacity for users to create their own graphical hacks via an integrated graphics editor. In pioneering this heightened level of access for users, and providing the tools for fans to hack and remix familiar classics, NESticle has been credited by Spin as representing a milestone toward the development of video game music as a genre.

Multi Emulator Super System (MESS) is an emulator for various consoles and computer systems, based on the MAME core. It used to be a standalone program, but is now integrated into MAME. MESS emulates portable and console gaming systems, computer platforms, and calculators. The project strives for accuracy and portability and therefore is not always the fastest emulator for any one particular system. Its accuracy makes it also useful for homebrew game development.

The CP System II or CPS-2 is an arcade system board that Capcom first used in 1993 for Super Street Fighter II. It was the successor to their previous CP System and Capcom Power System Changer arcade hardware and was succeeded by the CP System III hardware in 1996, of which the CPS-2 would outlive by over four years. The arcade system had new releases for it until the end of 2003, ending with Hyper Street Fighter II.

<span class="mw-page-title-main">Basilisk II</span> Open-source 68k Macintosh emulator

Basilisk II is an emulator which emulates Apple Macintosh computers based on the Motorola 68000 series. The software is cross-platform and can be used on a variety of operating systems.

<span class="mw-page-title-main">QEMU</span> Free virtualization and emulation software

QEMU is a free and open-source emulator. It emulates a computer's processor through dynamic binary translation and provides a set of different hardware and device models for the machine, enabling it to run a variety of guest operating systems. It can interoperate with Kernel-based Virtual Machine (KVM) to run virtual machines at near-native speed. QEMU can also do emulation for user-level processes, allowing applications compiled for one architecture to run on another.

This article provides basic comparisons for notable text editors. More feature details for text editors are available from the Category of text editor features and from the individual products' articles. This article may not be up-to-date or necessarily all-inclusive.

<span class="mw-page-title-main">Project64</span> Nintendo 64 emulation software

Project64 is a free and open-source Nintendo 64 emulator written in the programming languages C and C++ for Microsoft Windows. This software uses a plug-in system allowing third-party groups to use their own plug-ins to implement specific components. Project64 can play Nintendo 64 games on a computer reading ROM images, either dumped from the read-only memory of a Nintendo 64 ROM cartridge or created directly on the computer as homebrew.

UltraPin is a Multi-Game pinball arcade game that holds 12 digital recreations of Williams Electronics real pinball games in a single pinball cabinet. UltraPin is built in a traditional style pinball cabinet to look and feel like a real pinball machine. It has two LCD screens, a 19 inch LCD for the back glass and DMD, and a 32 inch LCD for the playfield, and it uses Windows XP Embedded for its operating system.

MagiC is a third party and now open-sourced multitasking-capable TOS-compatible operating system for Atari computers, including some newer clone systems manufactured later. There are also variants that run as part of Mac and PC emulation environments, as well as on macOS Intel-Mac computers.

higan (emulator) Multi-system emulator

Higan is a free and open source emulator for multiple video game consoles, including the Super Nintendo Entertainment System. It was developed by Near. Originally called bsnes, the emulator is notable for attempting to emulate the original hardware as accurately as possible through low-level, cycle-accurate emulation and for the associated historical preservation efforts of the Super NES platform.

<span class="mw-page-title-main">Video game console emulator</span> Program that reproduces video game consoles behavior

A video game console emulator is a type of emulator that allows a computing device to emulate a video game console's hardware and play its games on the emulating platform. More often than not, emulators carry additional features that surpass limitations of the original hardware, such as broader controller compatibility, timescale control, easier access to memory modifications, and unlocking of gameplay features. Emulators are also a useful tool in the development process of homebrew demos and the creation of new games for older, discontinued, or rare consoles.

Future Pinball ("FP") is a freeware 3D pinball editing and gaming application for Microsoft Windows. It is similar to Visual Pinball ("VP") and other modern pinball simulation applications. Just as with VP's partnership with Visual PinMAME, FP uses partner applications to emulate original pinball ROM code. In FP's case, the end results of ROM code are simulated by Better Arcade Mode ("BAM") and tools such as "Pinball Browser" and dot-matrix display software plugins. Core FP development was discontinued in 2010, but resumed in 2013 via BAM. BAM features many new developments, such as enhanced physics, optics, and virtual reality support.

<span class="mw-page-title-main">Mednafen</span> Emulator for multiple systems

Mednafen, formerly known as Nintencer, is an OpenGL and SDL multi-system free software wrapper that bundles various original and third-party emulation cores into a single package, and is driven by command-line input. It is distributed under the terms of the GPL-2.0-or-later license. Certain emulation cores of Mednafen have been ported to RetroArch/Libretro.

<span class="mw-page-title-main">OpenEmu</span>

OpenEmu is an open-source multi-system video game emulator designed for macOS. It provides a plugin interface to emulate numerous consoles' hardware, such as the Nintendo Entertainment System, Genesis, Game Boy, and many more. The architecture allows for other developers to add new cores to the base system without the need to account for specific macOS APIs.

<span class="mw-page-title-main">Longene</span> Linux distribution

Longene is a Linux-based operating system kernel intended to be binary compatible with application software and device drivers made for Microsoft Windows and Linux. As of 1.0-rc2, it consists of a Linux kernel module implementing aspects of the Windows kernel and a modified Wine distribution designed to take advantage of the more native interface. Longene is written in the C programming language and is free and open source software. It is licensed under the terms of the GNU General Public License version 2 (GPLv2).

References

  1. 1 2 Visual Pinball at GitHub
  2. Visual Pinball: Build Your Own Pinball Machine from DigitalPostProduction.com
  3. UltraCade Licenses Visual Pinball from RetroBlast.com
  4. Global VR to Purchase UltraCade Technologies from a web archive
  5. "Visual Pinball VR". 22 December 2022.
  6. Batocera Linux distribution
  7. Standalone source branch at GitHub
  8. "Unit3D Pinball - the new pinball experience". unit3dpinball.net. Archived from the original on 9 August 2016. Retrieved 12 January 2022.
  9. "PinMAME". GitHub . 9 January 2022.
  10. "PinMAME". www.pinmame.com. Archived from the original on 5 May 2017. Retrieved 12 January 2022.
  11. "PinMAME". GitHub . 9 January 2022.