Jump to content
LaunchBox Community Forums

3 Screenshots

About This File

View the Top Scores for your Visual Pinball X Tables (LaunchBox only)

This plugin uses DNA Disturber’s PINemHi app to read a tables top scores that are stored in the nvram files created by VPinMAME.  PINemHi currently it supports 425 roms.

(Oct. 8, 2021 Updated to v1.1.  See change log for details)

Instead of scrolling through these (in game)

hs1_custom.png.5feb6fdd1a805c5e8e43b81186d1dbc8.png hs1a_custom.png.d170d79d76edcfe072a1ac501acaf227.png hs2_custom.png.972b3cc701b92dba58175508648bfb08.png

 hs3_custom.png.11e243afbc542967794908b6826c86e9.png hs4_custom.png.f936f7b942c8960b79d5a73b287e68b9.png

See this (in LaunchBox)

hs5.thumb.jpg.7ad2b7f37606549e6fe0a2d0065d6726.jpg

 

If you’ve signed up on the PINemHi Leaderboard site, this plugin will also let you view your Personal Top 10 Scores (these scores are tracked separately from the Tables’ top scores) as well as the Best Top 10 Scores on the Leaderboard.  Signing up is free and you only need to provide a username.  No email address, proof of citizenship nor vaccinations required.  (See Top 10 Scores below)

Requirements

  • This plugin downloaded and setup (see Setting up the plugin below).
    • PINemHi v3.3.1 (included with the plugin download)
  • The emulator the table uses needs to point to “VPinballX.exe”.  This is needed to get the rom info for the table(s).

Optional Requirements

  • Sign up for PINemHi Leaderboards. (see Top 10 Scores below)

Setting up the plugin

  1. Download and unblock the zip file. (right click the file, select properties and check the Unblock check box and click OK)
  2. Copy the VPXHiScores folder (from inside the zip) into your \LaunchBox\Plugins\ folder
  3. Edit the pinemhi.ini file (\LaunchBox\Plugins\VPXhiScores\PINemHi\pinemhi.ini)
    • Under [paths] (10th line down), edit the path to the Visual Pinball (VP) “nvram” folder located inside your Visual Pinball installation.  (example)
      • VP=D:\Emulators\Visual Pinball\VPinMAME\nvram\
    • The path MUST end with a slash!!
  4. (optional) Under [user] (line 25), type in your PINemHi Leaderboard name and code. (see Top 10 Scores below)
  5. Save and Close pinemhi.ini

Using the plugin

  1. Start LaunchBox.
  2. Right click on one of your VPX tables and select View VPX Table HiScores. (see What to expect below)
  3. Click anywhere on the popup window and drag to move it.
  4. Click a button at the top of the window to view the different Top Scores. (see Top 10 Scores below)
  5. Click the red “X” to close.

How it works
To get the top scores for a table, we 1st need to know which VPinMAME rom it’s using.  To get this, the plugin uses VPinballX.exe to extract the table’s script.  It then searches the script for the name of the rom that table uses.  The rom name is then passed to pinemhi.exe which extracts the top scores from the nvram file associated with the rom.

What to expect
The 1st time you run the plugin for a given table, you will see the Visual Pinball editor window appear, then close. This is where it extracts the tables’ script. The script gets saved to the same folder as the VPX table, using the exact same name as the table but with a .vbs file extension.  Depending on the table, the .vbs file will be somewhere between 20 KB and 150 KB in size.

The next time you go to view that tables’ top scores, the plugin will see the .vbs file and not extract it [again].  So you won’t see the VPX editor window unless you delete/move the tables’ .vbs file.

Top 10 Scores
To be able to view your Personal Top 10 and Best Top 10 scores, you need to sign up at http://pinemhi.com/hiscores.php.  This is where you’ll get your name and code to add to “pinemhi.ini “. (See note #4 under Setting up the plugin [above])

You will also need to have PINemHi’s Rom Monitor (“pinemhi_rom_monitor.exe”) running.  This is a tiny executable that runs in the background and detects when a VPX table is loaded and then keeps track of your Personal top scores as well as downloads the Best Top 10 scores for that table. 

Please read through “PINemHi LeaderBoard installation and config.txt” located in the plugin folder.

  • (\LaunchBox\Plugins\VPXhiScores\PINemHi\ PINemHi LeaderBoard installation and config.txt)

Some main points in the documentation (for use with this plugin):

  • Setup your Visual Pinball (VP) path and user (name) and code.
  • **Keys** Make note of which shortcut keys do which action. There are 5 different hotkeys.  Change them as necessary. Controller buttons are also supported.
  • Run “pinemhi_rom_monitor.exe”.

Other IMPORTANT notes: ****

  • “…set the pinemhi_rom_monitor file to always execute with administrator rights.” 
  • “The pinemhi_rom_monitor.exe was made with AHK (AutoHotkey).
    • Microsoft Defender will frequently call AHK executables to be a virus/trojan 
    • This is a false positive. Feel free to test it with other anti-virus programs
    • There is an option in Microsoft Defender to allow the program to still be used (make an exception for that file)”

****For me, setting the Rom Monitor to run as Admin created issues.  As in it would not start.  I get the message “The requested operation requires elevation”.

The fix (what worked for me):

  • Follow step #1 in Setting up the plugin.  Specifically, unblock the zip file before extracting
  • Do not set pinemhi_rom_monitor.exe to “Run this program as an Administrator”.

With this, I would still get the UAC prompt when trying to run it from Windows Explorer.  However, when starting it from within LaunchBox. (See Starting/Stopping pinemhi_rom_monitor.exe below) it ran just fine.

Results may vary. This is what happened on both my main PC and on my cab. There’s a good chance both computers are slightly wonky, and that indeed you DO need to run the Rom Manager with admin rights.  So if one way doesn’t work, try the other.

Starting/Stopping pinemhi_rom_monitor.exe
You can toggle the Rom Monitor On/Off from the Tools menu.  Depending on its state, you’ll see this:
 not.png.59754b0b617e3f2551ffc45f0d5752f9.png
Or this:
 is.png.3c61a654c0b6eaa07c78245a18fe0056.png

When you launch a Table with PINemHi Rom Monitor running, you’ll get a popup after the table loads showing your Top 10 Scores. Press “L” on your keyboard to have it go away (unless you changed “key=L” in the pinemhi.ini file).  This is a nice indicator that the Rom Monitor is running and that your Personal Top Score will be saved.

PINemHi Leaderboard

Along with Personal Top Scores, PINemHi Leaderboard has some other cool features not directly accessible through this plugin like daily, weekly and 5-minute challenges. (These are accessible using the shortcut keys mentioned above.) It tracks Player 1 scores [aka Personal Top 10 Scores] as well as Special Scores (i.e. 20 loops [Back To the Future] or 50 martians killed [Attack From Mars]).  You can add up to 9 friends and view each other’s top scores.  There are also a number of Badges that can be earned on various tables.

Main Site:                       http://www.pinemhi.com/
Leaderboard:                 http://pinemhi.com/hiscores.php
VPForums discussion:  https://www.vpforums.org/index.php?showtopic=44580

 

Special thanks to DNA Disturber for creating PINemHi for the Visual Pinball community and allowing permission to use it here, making this plugin possible!!

Edited by JoeViking245


What's New in Version 1.2.0   See changelog

Released

No program changes made.  Just some code cleanup to fix potential behind-the-scenes side effects.

  • Like 1
  • Unusual Gem 1

User Feedback

Recommended Comments

Sbaby

Posted

Hi @JoeViking245

First of all, great work on this plugin! It’s really well done, and I can see how useful it can be. Lately, I've been playing a lot of pinball and got interested in trying it out. I just tested it with a table, and it works fine.

However, I noticed that the plugin only seems to work with the default emulator configuration, meaning the emulator must be set to the Visual Pinball executable. In my case, I use an AutoHotkey script as my default emulator, which performs some preliminary operations before launching the tables. So technically, my emulator is a different executable, even though it correctly starts Visual Pinball in the end.

I'm wondering if there's a way to keep my AHK script as the default emulator while still making the plugin work.

Thanks in advance! 😊

JoeViking245

Posted

1 hour ago, Sbaby said:

First of all, great work on this plugin! It’s really well done, and I can see how useful it can be. Lately, I've been playing a lot of pinball and got interested in trying it out. I just tested it with a table, and it works fine.

Thanks!  Glad to hear it still works in 2025. :) 

 

1 hour ago, Sbaby said:

I'm wondering if there's a way to keep my AHK script as the default emulator while still making the plugin work.

Yes.  Extract the tables .vbs into the same folder as the table.  (See How it works and What to Expect).

 

Set your emulator to the VPX executable and run the plugin for each table you want to see high scores for, then change it back to your AHK script.

Or, from the command prompt (or in a batch file or in an AHK script) run the VPX executable and use the parameters -ExtractVBS [filename].  Where [filename] is the tables filename.

 

Sbaby

Posted

6 hours ago, JoeViking245 said:

Thanks!  Glad to hear it still works in 2025. :) 

 

Yes.  Extract the tables .vbs into the same folder as the table.  (See How it works and What to Expect).

 

Set your emulator to the VPX executable and run the plugin for each table you want to see high scores for, then change it back to your AHK script.

Or, from the command prompt (or in a batch file or in an AHK script) run the VPX executable and use the parameters -ExtractVBS [filename].  Where [filename] is the tables filename.

 

Sorry, but I don’t quite understand. I just want the plugin to remain active in LaunchBox without having to give up the emulator managed via AHK. Having to go through all these steps every time I launch a game makes the plugin impractical. I was wondering if it would be possible to add a simple command line in the pinemhi.ini file that, in addition to the table path, also allows specifying the path of the Visual Pinball executable. This way, it wouldn’t be necessary to set it as the default emulator in LaunchBox.

JoeViking245

Posted

1 hour ago, Sbaby said:

Sorry, but I don’t quite understand. I just want the plugin to remain active in LaunchBox without having to give up the emulator managed via AHK. Having to go through all these steps every time I launch a game makes the plugin impractical. I was wondering if it would be possible to add a simple command line in the pinemhi.ini file that, in addition to the table path, also allows specifying the path of the Visual Pinball executable. This way, it wouldn’t be necessary to set it as the default emulator in LaunchBox.

  1. [temporarily] Set your emulator to the VPX executable
  2. run the plugin [once] for each table you want to see high scores for,
    1. "This is where it extracts the tables’ script."
  3. [when you are all done] change it [the emulator] back to your AHK script.
Quote

The next time you go to view that tables’ top scores, the plugin will see the .vbs file and not extract it [again]. 

aka, after doing the above steps [to extract the .vbs file] the emulator you use doesn't need to point to VPinballX.exe anymore.

aka, you don't have "to go through all these steps every time I launch a game".  Just the one time for each table to extract the .vbs file.

 

I suppose you could create a batch file or AHK script that will loop through your tables, running VPinballX-x64.exe -ExtractVBS [filename], to get the .vbs files extracted. That way you won't need to change the emulator at all in LaunchBox.  Again, as long as the .vbs file exists next to its corresponding table, there is no need for VPinballX-x64.exe to be 'the emulator'.

 

10 hours ago, Sbaby said:

I just tested it with a table, and it works fine.

Set your emulator back to your AHK script and see if the plugin [still] works for that table.  It should. Unless you deleted the .vbs file.

Sbaby

Posted

1 hour ago, JoeViking245 said:

Set your emulator back to your AHK script and see if the plugin [still] works for that table.  It should. Unless you deleted the .vbs file.

I followed your instructions, but unfortunately, if the official emulator with the VPX executable is not present, the plugin is only visible but not selectable—the plugin name appears grayed out.

Additionally, I would like to know if my custom VBS scripts for certain tables will be overwritten by the plugin. I’d prefer that not to happen.

JoeViking245

Posted

12 hours ago, Sbaby said:

I followed your instructions, but unfortunately, if the official emulator with the VPX executable is not present, the plugin is only visible but not selectable—the plugin name appears grayed out.

I dug deep into the archives and found the original code for this plugin and now see your issue.

To have the plugin enabled (not grayed out), it looks for game's emulator path to contain "vpinballx".  It also uses that path to execute extracting the tables script to get the games ROM.  At the time (over 3 years ago), this seemed the most logical route to determine if the game was a Visual Pinball game.

To make this work for your situation, I could change the logic to look at the games ROM path and check if its file extension is .vpx.  Should probably check for .vp9 and .vp8 also if you still use those tables.  Is it safe to assume that your VP games ROM path all point to one of those 3 file extensions?

Next, I need to figure where your vpinball executable is located so the tables script can be extracted if it doesn't already exist.  PINemHi only knows where the nvram folder is (via its .ini file).  And there's no reasonable way to get the executable to vp using that path because there isn't consistency to how the .exe's are named.

I'm thinking the easiest way is to have you add a text file in the plugins folder that contains [only] the full path to vpinball???.exe.  (something like vpLocation.txt) 

Then if the script needs to be extracted from the table, it'll 1st look in the emulator's application path for "vpinballx" (so don't have that in the filename of your AHK script ;)).  If it's not there, then it'll look for "vpLocation.txt" in the plugins folder.  If that exists, it'll read the 1st line to get the full path.

 

13 hours ago, Sbaby said:

I would like to know if my custom VBS scripts for certain tables will be overwritten by the plugin. I’d prefer that not to happen.

The plugin only extracts the table script if one doesn't exist for the table being launched.  So, if your custom script is in the same folder as the table AND is named exactly the same as the table (minus the file extension), it won't get extracted.

 

Does anything stand out to you that any of this may not work?

JoeViking245

Posted

@Sbaby Disregard all of what I wrote above.

Try this version.  

  • The games' ROM path file extension will need to be .vpx (or .vp9 or .vp8)
  • The plugin no longer:
    • looks for or even cares about VPinball.exe (or any name variant of the executable).
    • extracts nor needs the tables script

The attachment only has the plugin .dll file in it.  Just replace your existing one with it.  You will still need the existing "PINemHi" subfolder from your previous installation.

VPXhiScores (v1.3-beta-1).7z

  • Like 1
Sbaby

Posted

2 hours ago, JoeViking245 said:

You are great!!! 😮

The plugin works great and it is very helpful to have the high score available before choosing which game to play. Thank you very much.

I would like to report that out of 24 tables tried, I only encountered problems with 3. For example, for two popular tables such as “Theatre of Magic” and “Twilight Zone,” the plugin shows the phrase “No ROM listed in this table.” Also, for “Superman (Pup Edition)” the message “No such file” appears, with the path “supermanLE.nv”. I think Superman's problem is because he uses an alias “supermanLE,superman” in the file “\VisualPinball\VPinMAME\VPMAlias.txt” , so the file he is looking for nonexistent is superman.nv


Last thing: do you think it is possible and easy to have the plugin also available in bigbox? like "how long to beat" plugin.

  • Thanks 1
JoeViking245

Posted

28 minutes ago, Sbaby said:

“Theatre of Magic” and “Twilight Zone,”

For Theatre of Magic, edit the script and look for the line Const cGameName = "tom_14hb".  Remove the space in front of Const.  So the "C" is the 1st character in that line.  (I'll fix the search for that in the next update.)

Twilight Zone has a table option to set which ROM version to use.  "0" for Arcade-use credits (tz_94h) and "1" home-free (tz_94ch).  Then plugin can't account for designer variables.  The fix to have it work with the plugin would be to remove the option (including the "Select Case Romset" section and a few others) and then hard code the Const cGameName = "rom_of_your_choosing" (with no spaces in front of the first "C" ;))  I think that's the only table I've seen where the developer took the time to add in that option.

 

42 minutes ago, Sbaby said:

“Superman (Pup Edition)” the message “No such file” appears, with the path “supermanLE.nv”. I think Superman's problem is because he uses an alias “supermanLE,superman” in the file “\VisualPinball\VPinMAME\VPMAlias.txt” , so the file he is looking for nonexistent is superman.nv

That's exactly it.  The plugin doesn't cross against VPMAlias.  I could probably add that cross check in. Someday.

 

1 hour ago, Sbaby said:

do you think it is possible and easy to have the plugin also available in bigbox? like "how long to beat" plugin.

I would need to a complete rewrite of this 3+ year old plugin to get it available in BB.  Due to the popularity of this plugin, if I get bored enough I'll contemplate a rewrite.

 

BTW, thanks for being the 1st to provide a thorough stress test and feedback since its release over 3 years ago.  (Honestly, I had almost forgotten about this plugin. :))

Sbaby

Posted

53 minutes ago, JoeViking245 said:

For Theatre of Magic, edit the script and look for the line Const cGameName = "tom_14hb".  Remove the space in front of Const.  So the "C" is the 1st character in that line.  (I'll fix the search for that in the next update.)

Theatre of Magic works very well, thanks! 

 

54 minutes ago, JoeViking245 said:

Twilight Zone has a table option to set which ROM version to use.  "0" for Arcade-use credits (tz_94h) and "1" home-free (tz_94ch).  Then plugin can't account for designer variables.  The fix to have it work with the plugin would be to remove the option (including the "Select Case Romset" section and a few others) and then hard code the Const cGameName = "rom_of_your_choosing" (with no spaces in front of the first "C" ;))  I think that's the only table I've seen where the developer took the time to add in that option.

Twilight Zone, I can't edit the script natively, so I'm forced to create the VBS file. I commented out some lines using the ' symbol and added the one you suggested. The table works, but the plugin still throws the same error. Maybe the plugin only checks VPX files and not VBS?

' Dim cGameName  
' Select Case Romset  
'   Case 0: cGameName = "tz_94ch"    ' Coin-Based Home Version (Advanced Features)  
'   Case 1: cGameName = "tz_94h"    ' Free Play Home Version (Advanced Features)  
'   Case 2: cGameName = "tz_92"        ' Last Arcade Romset (Basic Features)  
' End Select  

Const cGameName = "tz_94ch"

 

55 minutes ago, JoeViking245 said:

BTW, thanks for being the 1st to provide a thorough stress test and feedback since its release over 3 years ago.  (Honestly, I had almost forgotten about this plugin. :))


Happy to help! 😊 Honestly, I think the only reason no one stress-tested it before is simply because the pinball theme isn't very popular on this forum. Your plugin is solid, and I’m glad I could put it through its paces after all this time! Hopefully, my feedback can be useful if you ever decide to update it. 😉

JoeViking245

Posted

2 minutes ago, Sbaby said:

Twilight Zone, I can't edit the script natively

Why not?  If it's a matter of being 'locked', you can unlock it for editing (I believe near the bottom of the View menu?)

4 minutes ago, Sbaby said:

so I'm forced to create the VBS file

Ya, that won't work.

"The plugin no longer [...] extracts nor needs the tables script".  That is to say, it doesn't look for or read a .vbs file.  It reads the .vpx file directly.  (The "script" is at the bottom of the file, past all the computer jibberish). 

Which leads us to, if you have an external script for a table and change the ROM in that script, the plugin will [still] read the 'old ROM' from inside the .vpx file. Only.

Sbaby

Posted

21 minutes ago, JoeViking245 said:

Why not?  If it's a matter of being 'locked', you can unlock it for editing (I believe near the bottom of the View menu?)

I use Visual Pinball X 64 bit exclusively, but unfortunately this table has the script menu locked and I can't find any option to unlock it. I tried modifying it with a previous emulator and the plugin works, but unfortunately the table starts with messy graphics.

Twilight Zone (Bally 1993) VPW Edition v1.0.vpx

 

JoeViking245

Posted

27 minutes ago, Sbaby said:

I use Visual Pinball X 64 bit exclusively, but unfortunately this table has the script menu locked and I can't find any option to unlock it. I tried modifying it with a previous emulator and the plugin works, but unfortunately the table starts with messy graphics.

Twilight Zone (Bally 1993) VPW Edition v1.0.vpx

VPW does that with their tables. 

So.. it was near the bottom of the Table menu (not View),

image.thumb.png.2adee7c07b8b240c98c762e360b42fa8.png  

 

Before

image.thumb.png.aa3e26a5bf313ca6fcf12e191ab00f3a.png

 

After

image.thumb.png.f4fd7c958d42639aacf64fc92d214466.png

Sbaby

Posted

1 hour ago, JoeViking245 said:

So.. it was near the bottom of the Table menu (not View),

Oops, sorry, I wasn’t paying attention! I was looking in the View menu instead of Table. Thanks, it works now!

By the way, I also have The Addams Family table, but the plugin says the ROM is not supported. It seems strange to me since it's such a famous table. Is it really not supported?

JoeViking245

Posted

10 hours ago, Sbaby said:

I also have The Addams Family table, but the plugin says the ROM is not supported. It seems strange to me since it's such a famous table. Is it really not supported?

I have JP's table for that one and it's working here (uses the taf_l6).  If it's saying "the ROM is not supported", that's coming from PINemHi.  The plugin doesn't use that phrase anywhere.

If there's a question about the ROM, search the table's script for cGameName = and see what ROM it's referencing.

Then to verify its save file can be read by PINemHI, from the Command Prompt, you can run pinemhi.exe taf_l6.nv where 'taf_l6.nv' is the file saved in the nvram folder.

To see a list of ROMs supported by PINemHI, you can run the command pinemhi.exe -lr (that's [dash]LR for "list ROMs").

Sbaby

Posted

8 hours ago, JoeViking245 said:

I have JP's table for that one and it's working here (uses the taf_l6).  If it's saying "the ROM is not supported", that's coming from PINemHi.  The plugin doesn't use that phrase anywhere.

If there's a question about the ROM, search the table's script for cGameName = and see what ROM it's referencing.

Then to verify its save file can be read by PINemHI, from the Command Prompt, you can run pinemhi.exe taf_l6.nv where 'taf_l6.nv' is the file saved in the nvram folder.

To see a list of ROMs supported by PINemHI, you can run the command pinemhi.exe -lr (that's [dash]LR for "list ROMs").

I prefer The Addams Family (Bally 1992) 2.4.41.vpx table, but I have tried several ROMs (Taf_l5, Taf_l5c, Taf_l6, Taf_l7), and unfortunately the plugin always responds with the message:

“not supported rom...\nvram\Taf_lnumber.nv”.

I have tried using the commands you pointed me to pinemhi.exe taf_l7.nv and also pinemhi.exe taf_l6.nv and the hi scores are shown correctly

This is really a mystery, considering that all my other 23 tables work correctly with the plugin.

Sbaby

Posted

8 hours ago, JoeViking245 said:

 


Ok, I’ve solved it! I had a doubt: in the table script, the ROM name was written in uppercase. I replaced it with lowercase, and it worked.

  • Game On 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...