Flipsync Posted July 29 Posted July 29 [FREE TOOL] Pincab Toolbox — scan your VPX/Popper install and find what's broken (missing ROMs, 64-bit mismatches, backglasses…) Hi everyone, Like many of you, I've spent more evenings fixing my cab than playing it. A table crashing with a cryptic VPinMAME error, a DMD that died after moving to 64-bit, a backglass that stopped showing… and every time, an hour of digging through folders to find the cause. So I built the tool I wished existed: Pincab Toolbox, a free scanner that diagnoses your install in seconds (a bit longer on a large collection). What it checks: Missing ROMs — reads every table script (cGameName), resolves VPMAlias.txt, and names the exact missing .zip in VPinMAME\roms. Original/EM tables are recognized, so it doesn't flag them. Extracted ROMs — a ROM unzipped into a folder won't be loaded by VPinMAME; it flags that. 32/64-bit mismatches — THE trap of the VPX 10.8 transition: it inventories the bitness of every exe/DLL (VPinMAME, dmddevice, B2S, FlexDMD) and flags broken hybrid installs. Windows-blocked DLLs — a file extracted from a downloaded ZIP can be quarantined ("Mark of the Web") and fail to load; it detects that. Missing dependencies — B2S Backglass Server or FlexDMD required by your tables but absent. Backglass & Popper — missing .directb2s files, tables not registered in the PinUP Popper database, PUP-Pack presence. Compatibility — nFozzy/Roth physics signatures and minimum VPX versions declared in scripts. Outdated tables (beta) — checks against the open-source Virtual Pinball Spreadsheet database and links to the official page only. Script Diff — compare two versions of a table side by side before overwriting yours. Ground rules I committed to (because this community rightly cares): 100% local — nothing is uploaded, zero telemetry, no account. Read-only — the scanner NEVER modifies a file, a registry key or a database. Never downloads content — no tables, no ROMs, no media, ever. This is a diagnostic tool, not a downloader. The community sites remain THE source. Screenshot: [insert scan screenshot] Download: https://pincab-toolbox.vercel.app/ (Unsigned exe for now → the usual SmartScreen warning: "More info" → "Run anyway". Code signing lands in the next release.) There's a built-in demo mode if you want to see it in action before pointing it at your real setup. It's a v0.1 and I'm looking for blunt feedback — false positives, exotic tables, confusing messages. I fix fast. If it proves useful, a version that repairs some of what the scanner finds is in the works — always with a backup first, a preview of what will change, and undo. The scanner itself stays free and read-only, forever. Thanks, and happy flipping! Flipsync V
Flipsync Posted July 30 Author Posted July 30 Quick update thanks to your feedback — I fixed the things you reported, fast: No more scary "0/100 · F" on a large, healthy collection: the score no longer treats plain info (available updates) as problems, and warning volume alone can't tank the grade anymore. No more false "missing ROM" on original/homebrew tables with a B2S backglass (Guardians of the Galaxy, Harry Potter homebrew…) — they're no longer wrongly flagged critical. Roms folder on a different drive than your tables: ROM checks are no longer skipped (it now reads VPinMAME's configured roms path). Bonus: low-disk-space warning and a heads-up for legacy .vpt tables not indexed by PinUP. Still 100% local, read-only, no telemetry, free — and every fix is covered by regression tests. v0.1.1: https://pincab-toolbox.vercel.app/ (Unzip and run PincabToolbox.exe from the folder — keep the files together.) Keep the blunt feedback coming — I fix fast. Happy flipping !
Flipsync Posted August 7 Author Posted August 7 Pincab Toolbox is evolving! The scanner just got richer: new checks (VPX version comparator, screen DPI, DMD COM port, system decimal separator, phantom VPinMAME config, default audio device...) and a new "Note" category for things worth flagging without tanking your score. I am also building Repair — a tool to automatically fix what the scanner finds: unblocking a Windows-blocked file, restoring an archived ROM, cleaning up orphaned media, and more actions on the way. I need your input: what checks would you want in the scanner, and what automatic fixes in Repair? Tell me what would actually save you time on your cab. https://pincab-toolbox.vercel.app/
TT11 Posted August 8 Posted August 8 Great idea for an app. Will it work for a PinballX front end as well? I'm going to give it a go and see if it does....
Flipsync Posted August 9 Author Posted August 9 18 hours ago, TT11 said: Great idea for an app. Will it work for a PinballX front end as well? I'm going to give it a go and see if it does.... Thanks! Honest answer, since I want to set the right expectation: the core scanning (ROM files, blocked/missing DLLs, NVRAM, alt-color/alt-sound, disk space, etc.) reads the Visual Pinball folder structure itself, not the frontend on top ,so that part should work the same under PinballX as under PinUP Popper. That said, a few checks are specifically built around Popper's own files (playlists, media folders, its display process) ,under PinballX those will just stay quiet/not apply, they shouldn't cause false errors, just won't have anything Popper-specific to check. I haven't had a real report from a PinballX cab yet, so I can't promise it's fully tested there , you'd genuinely be the first. Would love to hear how it goes either way , good or bad, that's exactly the kind of feedback that tells me whether PinballX needs dedicated attention.
NoizePMP Posted August 11 Posted August 11 Nice project. I hope you can use the following input: -It gives a critical error that with certain downloaded files like VPinMame.dll and VPinMame64.dll are These files are downloaded and blocked by Windows and 'can' silently fail to load until I unblock them. Yes, the flagged files where downloaded. No, none of them where blocked? I checked the Properties and security tab of the files. So the error is a false positive. -It gave all kinds of error on Leprechaun king (one of the included tables with basller installer ->pinup popper) missing roms, backglasses, compatible with 10.0.8, etc. I guess the the tool flagged this game, because it is directly in the tables folder and not a seperate one. But this is how the baller installer did and if you ask me very messy. But.......the game works. After putting the files in a seperate folder all the errors and info where gone. Some of the notifications like:' xx similar findings (BITNESS_INVENTORY) — collapsed to keep this list readable. The full text report has every one of them.' are confusing. Where is the fulle text report? This info is not in the export you can make. Can you explain how the full test report works and where to find it?
Flipsync Posted August 11 Author Posted August 11 Really appreciate the detail here, this is exactly the kind of report that's useful. On VPinMame.dll and VPinMame64.dll being flagged, I went through the actual detection code before replying rather than guessing. It only reads the Zone.Identifier stream Windows attaches to downloaded files, and any read failure defaults to not blocked, so there's no obvious bug on our end that explains a false flag. That said, Explorer's Unblock checkbox isn't always a reliable mirror of what's actually on disk, so before I chase this as a bug I'd like one more data point. Could you run this in PowerShell on one of the flagged files and paste what comes back? Get-Item -Path "C:\path\to\VPinMame64.dll" -Stream Zone.Identifier If that errors with cannot find the specified file, the stream genuinely isn't there and something's off on our side. If it shows content with ZoneId 3 or higher, the block is real even though Explorer isn't showing it, which is still worth knowing. Also, is your pincab folder on OneDrive or another cloud sync? That can do odd things to how these streams read. On Leprechaun King, I think what actually happened is a bit different from your theory, and it's worth knowing either way. We only scan .vpx files sitting directly inside your Tables folder, we don't look inside subfolders. So while the table was loose in Tables, it got scanned and picked up whatever was genuinely missing on it. Once you moved it into its own folder, it dropped out of the scan entirely, which is why everything went quiet, not because anything got fixed. So those errors may well have been accurate for a table bundled as-is by an installer. Good catch regardless, it tells us tables organized one-per-subfolder are currently invisible to us, which is a real gap on our side. On the full text report, that one's on us for not being clear. It exists. Click Export, then in the save dialog change the file type dropdown from the default HTML to Text report (*.txt). That version lists every finding individually with nothing collapsed. The default HTML export and the forum-copy button both use the same grouped view you already saw, so if you hit Export without touching that dropdown you'd never find it. We'll reword that message so it says where to click instead of just naming a report you have to go hunting for.
sho Posted August 17 Posted August 17 (edited) Why does the app think that Leprecaun King (installed default by Popper) and Stranger Things - Stranger Edition need a ROM? All tables are installed in the tables folder, no subfolders (should the base folder be the Visual Pinball install folder or the 'Baller' folder 'vPinball'?) Edited August 17 by sho clarity
Flipsync Posted August 17 Author Posted August 17 Good question. The ROM check never looks at folder structure inside Tables, it only checks whether the table's script actually opens VPinMAME's controller and whether the exact ROM zip it asks for is sitting in VPinMAME\roms of whichever folder you scanned. That's why the folder you point it at matters. If you've got both an old Visual Pinball folder and the newer vPinball one from the Baller Installer, only whichever one Popper is actually launching tables from is the real one, scan that one. Scanning the other will show missing ROMs even when everything is fine on the install you actually play from. Leprechaun King does need a real ROM (leprechaun.zip in VPinMAME\roms), I've confirmed that one working correctly on another install once the ROM was in place, so that flag is accurate. Stranger Things - Stranger Edition I'm less sure about. From what I've found, the STLE.zip it's asking for doesn't look like a normal published VPinMAME ROM, the table may actually rely on UltraDMD/PUP-Pack files instead. I haven't fully confirmed that against the real script yet, so if it plays fine despite the warning, that matches what I suspect and I'm looking into tightening that check.
sho Posted August 17 Posted August 17 To clarify, I have vPinball _ FuturePinball |_ PinUPSystem |_ VisualPinball etc, what should be the base folder? PS Leprechaun King works just fine without that 'ROM', could it just be the PUPpack that is referred to in the script? (Both Are Orbital Pin creations and the only ones I have on my system)
Flipsync Posted August 17 Author Posted August 17 Good catch on the structure, that's actually simpler than I assumed. Point the scanner at the VisualPinball subfolder specifically, the one that directly contains your Tables and VPinMAME folders. Not the vPinball parent, and not PinUPSystem or FuturePinball, those are separate frontends/emulators that sit next to it, not part of the VPinMAME setup the ROM check cares about. On Leprechaun King, that's a sharp guess and I think you're right. The scanner only flags ROM_MISSING when the script actually opens VPinMAME's controller and assigns it a game name, in this case "leprechaun". But on Orbital's tables that name looks like it doubles as the PUP-Pack folder name rather than a real driving ROM, and I'm now seeing the exact same thing on Stranger Things Stranger Edition, another Orbital table that also plays fine without its "ROM" present. Two independent tables from the same studio showing the identical pattern is a strong signal. I still haven't been able to confirm it directly in either table's script, so I'm not calling it fixed yet, but it's looking like a real false positive specific to how Orbital tables set that name, not something wrong with your setup.
sho Posted August 17 Posted August 17 I got the reassuring score of zero on my (what I thought was a fully working) setup A lot to go through, where is the entire log stored?
Flipsync Posted August 17 Author Posted August 17 Nothing gets saved automatically, the results only live on screen for that scan. To get the full log, click Export, pick a format (HTML, PDF, TXT, MD, BBCode or JSON), and choose where to save it in the dialog that pops up. Worth knowing, TXT and JSON show every single finding individually, while HTML/MD/BBCode group similar repeated findings together to keep the report shorter. Given how much you've got to go through, TXT is probably the one you want. Feel free to export as TXT and share it if you want a hand figuring out what's actually critical versus noise, a score of zero usually means something real is flagged, happy to take a look.
sho Posted August 18 Posted August 18 Should there be a warning for missing backglasses for games that have a puppack installed? Also this one stumps me, what could I have deleted to cause this? (I have a little over 160 tables installed VP+FP)
Flipsync Posted August 18 Author Posted August 18 On the backglass warning question, that's a fair point and it's actually something already flagged before, a table with a PUP-Pack normally never has a .directb2s file, that's just how the format works, not a broken install. So right now the scanner does warn about it even when the PUP-Pack is legitimately covering the backglass. It's a known gap, not fixed yet, no promises on timing but it's on the list. On the screenshot, that's the "popperplaylist" finding, and 151 games got orphaned. It happens when a playlist gets deleted from PinUP Popper's UI while games are still assigned to it, so they end up pointing at a playlist ID that no longer exists. Most likely something got deleted or renamed on your end at some point. To fix it, go into Popper's admin tool and reopen/re-save each affected game's playlist assignment, or just recreate the missing playlist so those assignments resolve again. I'm also getting close to shipping an update with Repair, so keep an eye out.
sho Posted August 18 Posted August 18 Thing is, I have never made a playlist containing 151 games, let alone deleted it. Also I am pretty familiar with Popper's inner workings, but can't get my head around how to fix it. What is it in the DB you are picking up? On the missing backglass, perhaps if a puppack exists, the warning should be downgraded to info?
Flipsync Posted Tuesday at 06:40 PM Author Posted Tuesday at 06:40 PM Good question, and that actually points at something I flagged internally but could never confirm without a real case. The check treats isFav=2 on PlayListDetails as the built-in global favorites list and skips it, that assumption comes from PinUP's own wiki but I never had a database with real favorites in it to verify against. If you can run this against PUPDatabase.db, it'd settle it: SELECT isFav, COUNT(*) FROM PlayListDetails GROUP BY isFav If most of your 151 games sit under isFav=1 (or anything other than 2), that's almost certainly it, marking a game as favorite from the UI creates a row that isn't a real playlist, and my filter is only excluding the wrong value. Nothing to fix on your end in that case, that'd be a false positive on my side and I'll correct the filter.
sho Posted Tuesday at 11:39 PM Posted Tuesday at 11:39 PM (edited) Count of isFav is 286, but the Favorites playlist is empty Edited Tuesday at 11:40 PM by sho Info
Flipsync Posted Wednesday at 06:41 PM Author Posted Wednesday at 06:41 PM Good catch, that actually rules out the simple explanation. 286 isFav rows but an empty Favorites playlist means isFav on PlayListDetails almost certainly isn't what drives that playlist in the UI, it's probably tracking something else entirely (possibly which table version is the default one when a game has multiple entries). Can you run this one instead, it'll tell me exactly what's on the orphaned rows rather than the whole table: SELECT PlayListID, isFav, COUNT(*) FROM PlayListDetails GROUP BY PlayListID, isFav ORDER BY COUNT(*) DESC I'm looking for whichever PlayListID shows up close to 151 times, that's the one my check is treating as deleted when it's probably something Popper reserves internally and never puts a row for in Playlists. Once I see that value I can fix the filter properly instead of guessing again.
Flipsync Posted Thursday at 11:54 AM Author Posted Thursday at 11:54 AM Pincab Toolbox — a big batch of updates Since my last post, a lot has changed under the hood, and most of it is stuff you asked for. Scanner: New interface (green, cleaner tables, a collapsible detail panel, a Tutorial tab that explains what each check actually does) Now available in English, French and Spanish A dozen more checks: missing B2S global config file, missing .ttf fonts a table script needs, hard-coded absolute paths in a script, local copies of core.vbs/controller.vbs, and more Scans a whole drive or multiple drives now, not just one folder A "Check for updates" button that compares your version to the latest release PDF export of your report Repair (still closed beta): Way less noise, only real issues become items to fix, not every single scan result The repaired history now shows exactly what changed on each item, not just a filename A new Beginner / Expert toggle, pick how much technical detail you want to see No longer needs Administrator rights for the whole app, Windows only asks when one specific fix truly needs it A "recheck my score" button that reruns the same scan after a repair and shows you the before/after Two new automatic fixes: repositioning an off-screen DMD window, and registering a missing or mismatched COM component (VPinMAME, B2S, FlexDMD) Six fixes working today, always backed up first, always undoable in one click Already have it? Open the app, hit "Check for updates" in the Scanner tab, and grab the new build. Never tried it? Download it, scan your cab, and tell me what's broken. And tell me what you'd want next, what checks or fixes would actually save you time on your cab? Follow the page for the next updates https://pincab-toolbox.vercel.app/ Happy flipping!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now