PinTools: Take Control of Virtual Pinball
A few months ago I bought a VirtuaPin digital pinball machine. I bought it as a hobby and knew it would be fun to discover new tables and create custom add-ons for the device. What I didn’t realize at the time is how much effort goes into adding a new table. Here’s what I usually have to do:
- Download the table file itself
- Download Backglass image (for HyperPin)
- Download Playfield image (for HyperPin)
- Download Playfield video (for HyperPin)
- Download Wheel image (for HyperPin)
- Download Animated backglass (for UltraVP)
- Add the table in the right HyperPin database.xml file
- Run the table to position and resize the DMD window
- Edit the table script to run UltraVP instead of PinMAME
That’s a lot of steps to go through and I found myself always forgetting one piece or another. This table’s missing the playfield image, that table’s missing the animated backglass. Repositioning the DMD turned out to be a pain too, especially after I had a bunch of tables running and decided to change resolutions. All of my DMD windows were off the screen! I had to reset all ROM settings and position them all over again.
What does it do?
In the current release PinTools can…
List all installed tables and show which additional files are missing
The configuration file allows you to set which folders to look in and also allows you to specify which files are required for the table to be considered “complete”. In the screenshot above, Back to the Future is considered complete even though I don’t have a table video. That’s because I’ve set table videos to be optional.
Automatically generate HyperPin database files
You can select All tables, “Complete” tables or even individual tables, then let PinTools generate HyperPin database files for you. Easily add tables in HyperPin when they’re ready to be put on display.
See DMD locations for all ROMs in the registry
See the DMD position size and rotation settings for every ROM at a glance.
Bulk update DMD settings
Select an existing ROM to copy settings from or type in new values. Then, apply the settings across all ROMs or even individual ones.
This was a quick project for me (created in two afternoons) so let me set some expectations about the quality of the code:
There is no settings screen. You must edit PinTools.exe.config to change folder paths and change which files are required for a table to be considered “complete”.
If you don’t edit the config file and set the right folder paths for your system, the app may crash.
The app may also crash because it’s Tuesday, or it’s raining, or it’s just moody. There’s no warranty, back up your files, use it at your own risk, blah blah blah.
I made absolutely no attempt whatsoever to deal with threading. If you have hundreds of tables this app will appear to be locked up while it loads data and scans for files. This is absolutely horrible and unacceptable. No one should ever block the UI thread, that’s just being lazy. I was lazy. I might try to fix this at some point but for now, hey it’s free, enjoy.
Important Note: Many Full Screen (FS) tables include code in the script to rotate the DMD left or right. Look for “rol” or “ror” (including quotes) and comment these lines out. Otherwise PinTools can update the rotation settings in the registry but they’ll just get overwritten on the next run.
PinTools requires .NET 4.0 (at least Client Profile). If you don’t have it, get it here.
For developers: Because I hate it when somebody makes a tool, ends up not having time to support it and won’t release the source code, here’s the source code on Git.
For most users: Download PinTools1_0.zip, unzip, edit PinTools.exe.config, run PinTools.exe.