How Does VisualPinball/VisualPinMAME Generally Work?

Phoenixx

Starfleet Member
Site Supporters
Joined
Sep 24, 2004
Messages
962
Solutions
4
Reaction score
168
Points
50
Basic Explanations:

First of all, we have to differ between Visual Pinball and Visual PinMAME.

Both programs are seperate programs, which will be tied together in runtime to simulate a real existing pinball-machine. VisualPinball takes the "visual" part, while VisualPinMAME is responsible for the emulation of a real machines ROM-Set. (ROM = ReadOnlyMemory) .

Furthermore, we have to differ between PinMAME and VisualPinMAME.
See below for details on that.


The Programs:

Visual Pinball
Visual Pinball (VP) is most of all responsible to show the graphics of a table, and also to process its script.
Like i said, just see it as the "visual" part.

Visual PinMAME
VisualPinMAME (VPM) is responsible to emulate the ROMs of a real existing machine, and gets its triggering-instructions from the table-script via VP.
For example, when you play a VPM table, you will hear the sounds directly from the ROM of the real existing machine, and the table will work with the exact same rules, light-patterns and scoring routines, etc. as the real existing machine.
All that you ever see of VPM though is only the scoring window, which is usually orange, and varies visually depending on the ROM currently emulated. Some tables have their own displays though, which means that you won’t see that scoring window on such a table, but that doesnt mean that VPM isn’t running anyway.

Both VP and VPM must be installed in order to play a VPM table, while VP alone is enough for VP tables only. This is because we do not only differ between the two programs, but also between the two types of tables. A VP table runs well with VP alone, while a VPM table does not only need VP, but VPM as well in order to work.
The main difference between both types of tables is the way how they function. A VP table needs a self-written Visual-Basic script for the rules and the scoring routines, etc., while a VPM table runs with the rules and scoring routines, etc. which are programmed into the ROM of a real existing machine.

That means a VPM table is always a real existing machine, while a VP table can be either a fantasy table OR a real existing machine. And since a VP table always depends on self-written game-routines due to the lack of ROM support via VPM, it is possible that the rules and scoring routines of a VP version of a real existing machine are not 100% authentic,...


PinMAME And VPinMAME:

Like i said at the beginning, it is also very important to differ between PinMAME and VPinMAME. Dont confuse the two versions by accident when you intend to download VPinMAME, because PinMAME is (unlike VPinMAME) not able to work with VP to simulate a table!

PinMAME:

PinMAME is a "sideproject" of the MAME-Project, which is a dedicated emulator for arcade video-games.
(MAME = MultiArcadeMachineEmulator).

PinMAME will run the ROMs of real machines only for testing purposes, where all that you get to see is a window with the displays of the machine of the currently emulated ROM-Set. You can perform various solenoid and soundtests with PinMAME, but like i said, it will not let you play VPM tables, because it will not be called by VP in the first place! If you want to play VPM tables, you need VP and VPinMAME.

VPinMAME:

VPinMAME is basically nothing more than a special version of PinMAME, especially designed to run with Visual Pinball.
It will be called by VP automatically when you start a VPM table, which means that you don’t have to start both programs in order to play a VPM table. VP calls VPM automatically whenever it is needed.



Questions? Suggestions?
Feel Free To Post In The Q&A Section Of This Forum.
 
Solution
Is Vpinmame emulating what the microprocessor (that is reading the rom for its instructions) did on the real pinball machine? I cant get an answer anywhere. The rules for a game had to be in the original rom, such as when a certain series of targets was hit on the playfield, execute some sequence of events on the playfield. This is in addition to running the DMD, whose images are in the rom, as well as the sound files. I do not see any playfield sequences in the VPX scripts, only actions of individual components on the playfield.
VpinMAME emulates the original hardware as closely as possible, the same way MAME does. So, not just the CPU, but the board, components and complementary chips. Not just the overall memory state...
Thank You Phoenixx, Your tutorials and install kits improve VP's availability to the masses..:bounce:

Spreading the amazement I felt when I discovered VP has been a thrill to me, your efforts are appreciated!

:cheers:

Jon
 
Is Vpinmame emulating what the microprocessor (that is reading the rom for its instructions) did on the real pinball machine? I cant get an answer anywhere. The rules for a game had to be in the original rom, such as when a certain series of targets was hit on the playfield, execute some sequence of events on the playfield. This is in addition to running the DMD, whose images are in the rom, as well as the sound files. I do not see any playfield sequences in the VPX scripts, only actions of individual components on the playfield.
 
Is Vpinmame emulating what the microprocessor (that is reading the rom for its instructions) did on the real pinball machine? I cant get an answer anywhere. The rules for a game had to be in the original rom, such as when a certain series of targets was hit on the playfield, execute some sequence of events on the playfield. This is in addition to running the DMD, whose images are in the rom, as well as the sound files. I do not see any playfield sequences in the VPX scripts, only actions of individual components on the playfield.
VpinMAME emulates the original hardware as closely as possible, the same way MAME does. So, not just the CPU, but the board, components and complementary chips. Not just the overall memory state, but every logical communication between the various components on the PCB(s).

You can actually see this process running solo in the VPM testing tool (look in the core VPM directory), which lets you fire up ROMs, run their DMD's, and interact with them like you can with MAME, except of course for the special pinball inputs, like ball events/interactions & flipper keys.

What happens in VP scripts is that now we're letting VPX pass through all that extra input unique to pinball and related machines. For example, the ball falling in to a kicker hole, hitting targets, and stuff that the original game hardware needed to sample in order to react to and run properly.

This is all part of why (like you say) the ROM & VPM are driving the rules, sounds, DMD and other events, and VP scripts themselves can be extremely basic in nature. For example, if it's an early SS machine, then the script could be relatively tiny-- no rules or special logic necessary. Later machines, such as 90's on, tend to require more work on the VP end to properly simulate the various toys and special effects.

No doubt more could be said about all this, particularly on the technical side, but hopefully that answers your Q's.
 
Solution
VpinMAME emulates the original hardware as closely as possible, the same way MAME does. So, not just the CPU, but the board, components and complementary chips. Not just the overall memory state, but every logical communication between the various components on the PCB(s).

You can actually see this process running solo in the VPM testing tool (look in the core VPM directory), which lets you fire up ROMs, run their DMD's, and interact with them like you can with MAME, except of course for the special pinball inputs, like ball events/interactions & flipper keys.

What happens in VP scripts is that now we're letting VPX pass through all that extra input unique to pinball and related machines. For example, the ball falling in to a kicker hole, hitting targets, and stuff that the original game hardware needed to sample in order to react to and run properly.

This is all part of why (like you say) the ROM & VPM are driving the rules, sounds, DMD and other events, and VP scripts themselves can be extremely basic in nature. For example, if it's an early SS machine, then the script could be relatively tiny-- no rules or special logic necessary. Later machines, such as 90's on, tend to require more work on the VP end to properly simulate the various toys and special effects.

No doubt more could be said about all this, particularly on the technical side, but hopefully that answers your Q's.
Thanks for the explanation!!!! I'm going to dig into the materials some more, use the the VPM testing tool, etc., before I come back with any more questions! (I have several questions as I dig down another level into the control logic, but I'll wait to see if I can find the answers first.) Thanks for your time!
 
Thanks for the explanation!!!! I'm going to dig into the materials some more, use the the VPM testing tool, etc., before I come back with any more questions! (I have several questions as I dig down another level into the control logic, but I'll wait to see if I can find the answers first.) Thanks for your time!
Ah, no problem at all, matey.

Actually, I'd like to learn more about the technical details myself.
For example, there's a load of stuff I've never really understood when it comes to MAME and VpinMAME, plus of course, the special, specific interactions it has with VP, as you're seeing via VPX.

So yeah, I'd love to hear more of yours and whoever else's good Q's.
So rock on. :)
 
Check out this youtube video showing a matrix of switches and the resulting lamp states that someone made. I can't tell if the guy wrote a VB program to do this or there is a tool floating around for this:

 
I have not had time to dig down into VPX yet, but I do have a question someone may be able to answer:
I notice sometimes it takes a few "run throughs" of the VPX program to get a VPX game to configure itself fully and get it in a runnable state. I also have noticed that some times a game does not initialize properly when I first install it, and then have to exit and run it again. I have to assume that when VPX runs, it is keeping a disc file open or a set of files, not just RAM files, so it saves certain variables for a game, game states, etc.. I would assume it's not writing to itself all over the place. Are these files visible somewhere when you run VPX in editor mode?
 
Here's another set of questions regarding VPinMAME:
There is a text file in the VPinMAME foler called "gamelist". It lists all the games supported by Pinmame 3.4, as of Dec 24, 2021.
However I can run "Bride of Pinbot, the machine" on VPX. So, the question is: Does VPinmame support and emulate the board set, circuitry used, etc. on the original machine for the games listed in it's list of supported games (and that is why the are listed as supported) or is VpinMAME actually configured inside for each individual game listed? Is this support and configuration for each game contained in the series of sub directories in the VPinMAME folder when you download VPinMAME? Are these supported games listed because they will run properly once you download the ROM needed and the other supporting files needed for that game? (To get Funhouse working, I needed to install a file in the nvram folder, and add an "alt sounds" folder to VPimNAME.)
 
Check out this youtube video showing a matrix of switches and the resulting lamp states that someone made. I can't tell if the guy wrote a VB program to do this or there is a tool floating around for this:

Where can I download the program showed on video?
 
That's what I'M trying to figure out!!! I tried tracing back through the information on the youtube site but got nowhere! Hoping someone who knows the answer will tell us!!!
 
The only tool that I can recall is a dB2S backglass someone made that shows the lamp ID's and such.
But the video does not look like it is the Backglass that shows Lamp ID's.
Looks like a seperate program totally.
I would like to get a hold of this program!!
 
I have not had time to dig down into VPX yet, but I do have a question someone may be able to answer:
I notice sometimes it takes a few "run throughs" of the VPX program to get a VPX game to configure itself fully and get it in a runnable state. I also have noticed that some times a game does not initialize properly when I first install it, and then have to exit and run it again. I have to assume that when VPX runs, it is keeping a disc file open or a set of files, not just RAM files, so it saves certain variables for a game, game states, etc.. I would assume it's not writing to itself all over the place. Are these files visible somewhere when you run VPX in editor mode?
Sorry, haven't been around much lately... just saw this. :s Quick take-- there's a certain aspect of that which sounds like a semi-MAME thing, from what you describe.

For example, I recall an entire generation of Williams' arcade games, like Robotron, Defender, etc, in which the arcade game itself would need to be booted up 2-3 times in order to internally configure its battery-driven set-states. Like the analogue of NVRAM & CFG-states, like we have with VpinMAME / VP.

Point is-- any VP or pin-sim can be subject to the same rules / conditions in the field of MAME, which is why we sometimes might have to tap "F3" and/or fiddle with the basic dips to continue... then "F3" again... that kind of thing.

That said, IIRC there are also certain VPX conditionals (nothing to do with MAME) that sometimes necessitate a reset or more specific action. And on that note... gosh, I'm getting old. :s

So when in doubt, google, google specific issue, yeah?
 
I have not had time to dig down into VPX yet, but I do have a question someone may be able to answer:
I notice sometimes it takes a few "run throughs" of the VPX program to get a VPX game to configure itself fully and get it in a runnable state. I also have noticed that some times a game does not initialize properly when I first install it, and then have to exit and run it again. I have to assume that when VPX runs, it is keeping a disc file open or a set of files, not just RAM files, so it saves certain variables for a game, game states, etc.. I would assume it's not writing to itself all over the place. Are these files visible somewhere when you run VPX in editor mode?
It's the ROM that needs to be booted a couple times before it works. On many roms (I have a real Williams Judge Dredd pinball) when the battery has died the first thing that comes up is "Factory Reset" <bing> <Bing> <BING> <BING!> and then you shut it off, turn it back on and you'll be able to go into the service buttons and configure the settings (See below for service buttons explanation)

So what you are seeing is the virtual equivalent of the battery dying. The table boots up, resets the ROM's factory settings. Now "Turn it off and back on again -The IT Crowd" and you should be good.

Michael
Reston, VA

Service buttons
- 7 - escape/back
- 8 - minus/-
- 9 - plus/+
- 0 - Enter/Select
- END - door switch - On some games like Spiderman you have to hit END to tell the machine that the coin door is open, that opens a switch and disabled the high voltage output in the game (yes I know it's just bits flying around 😁) and then you can use the service buttons. Remember to hit END again when you are done or nothing will work.

Below is my Judge Dredd Service button panel on the left (the sticker as seen from above, and a Stern one that makes me feel like Coney Island.
1705087864213.png1705087901249.png1705087929306.png
 
It is best to always restart a VP table, if it is the first time running it.
Otherwise you will find alot of strange behaviours on first runs, not just with VPinMAME, but bumpers may not work correctly, balls may not eject, flippers may lag, and all sorts of strange things.
 
General chit-chat
Help Users
You can interact with the ChatGPT Bot in any Chat Room and there is a dedicated room. The command is /ai followed by a space and then your ? or inquiry.
ie: /ai What is a EM Pinball Machine?
  • No one is chatting at the moment.
  • Chat Bot Mibs Chat Bot Mibs:
    docdoc has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Exnihilo_Mundus has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    angmarg52 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    tully619 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    smorndb has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Tech49 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Topsi Klaus has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Forsaken43 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    duduky72 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Gerge has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    nunolilo has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    DavidT2025 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Gary-7 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Thunderbird has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    alug has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    bluebird has left the room.
  • HZR @ HZR:
    It’s nice to go all see a place I can play actual machines!!!!
    Quote
  • Chat Bot Mibs Chat Bot Mibs:
    Sunrise74 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Rai has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    liebowa has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    gustave has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    hoovie108 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    creatine481 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    fabioaugusto4 has left the room.
  • Chat Bot Mibs Chat Bot Mibs:
    Dangerpin has left the room.
      Chat Bot Mibs Chat Bot Mibs: Dangerpin has left the room.
      Back
      Top