Find what's broken in your VPX / Popper pincab, and why.
Pincab Toolbox is a free scanner for Visual Pinball X and PinUP Popper installs. It lists every problem it finds, explains the cause in plain words and tells you what to check.
Covered: Visual Pinball X (10.x) and PinUP Popper. Partly covered, read only: PinballX and PinballY (their settings and game lists). Not covered: Future Pinball, Pinball FX, Visual Pinball 9 and the other frontends.
Windows 10/11 · unzip & run · no accountVPX crashes · missing ROM · DMD gone dark · no backglass →
Real screen recording on the demo install. Music: "Happy Beats / Business Moves vol. 11", Sascha Ende (ende.app), CC BY 4.0
mm_109c.zip missing from the roms folder — the table will not start.dmddevice64.dll — external DMDs will not work.Scan complete — 2 critical, 5 warnings, 2 notes, 10 info.
Example of a scan result on demo data, redrawn in HTML (not a screenshot).
The real windows, annotated
Real screenshots of the app; only the numbered markers are added.
Repair, a plan you review first
- What the app says about Repair: every change is backed up first and can be undone, and nothing is applied without your confirmation, item by item.
- This box says what this version covers. The scan and the diagnosis stay free; the license unlocks the repairs (one purchase, no subscription).
- License key: only needed to apply repairs, never to scan.
- “Analyze what can be repaired” builds a plan. You read it, then choose what to apply.
Play Optimizer, measured on your machine
- The page states what is included and what is still coming, and that no date is announced.
- Two settings are offered: Windows high performance while you play, and the table's priority while it runs. You tick only what you want.
- “See what will change” first, then “Apply”; “Put everything back” undoes it.
- No promise: the app asks you to measure the launch time before and after, and the difference shown is your own figure.
Diagnostic, what the app looked at
- The tab explains that everything shown is read from your own machine and is not sent anywhere; it is there so you can see what the app looked at when it started.
- The environment: app version, Windows, 32/64-bit process, language, graphics card, VBScript engine, and where the log file is.
- “Check that repairs work” runs every repair on a private copy of the demo data, undoes it and checks the folder came back identical. Your own installation is not touched.
- “Prepare my test feedback” writes a text file on your Desktop, to send as is: no personal path, no ROM, no table.
Sound familiar?
Four failures that stop a pincab from working.
VPX crashes
A VPinMAME error on launch, or a VPX crash: the scanner reads the crash.txt report, with the date and place.
ROM Validator names the exact missing zipMissing ROM
The ROM is absent, misnamed, or needs a VPMAlias entry to resolve.
Alias resolution built inDMD stopped working
After the 64-bit update, VPX needs dmddevice64.dll — hybrids break silently.
Bitness Doctor flags every mismatchBackglass missing
No .directb2s, table not registered in Popper, or media misnamed.
Install Auditor checks all threeEvery problem the scanner can report, explained one by one: what it means, why it happens, how to check and fix it. Browse the problems →
EN · FR · ES · DE · IT · PT
What the free scanner checks
Nine modules, 67 checks, one scan, one clear report.
ROM Validator
Reads every VPX table script.
- Missing ROMs
- VPMAlias resolution
- Invalid / corrupt zip
Bitness Doctor
Inventories every DLL's bitness.
- 32/64-bit inventory
- Hybrid installs
- Missing dmddevice64.dll
Install Auditor
Cross-checks tables and PinUP Popper.
- Missing backglasses
- Tables not registered in Popper
- PUP-Packs
Compatibility Linter
Spots version and physics mismatches.
- nFozzy / Roth signatures
- Minimum VPX version
- Risky VBScript patterns
Update Watcher
Compares against the community index.
- Outdated tables
- Checked vs Virtual Pinball Spreadsheet
- Links only — never downloads
Dependencies & Security
Checks required plugins and blocked files.
- Windows-blocked DLLs (Mark of the Web)
- B2S Server / FlexDMD missing
- Flags what stops plugins loading
Script Diff
Compares two versions of a table.
- Side-by-side view
- Highlights changes
- Spot regressions fast
Display, DMD & Audio
Checks the screens, the DMD and the sound path.
- Screen layout and resolutions Popper can't parse
- DMD COM port declared but absent, dmddevice.ini mismatches
- Default audio device that looks like a screen output
- ALT Color and ALT Sound present but switched off
- Non-standard screen scaling (DPI)
- “PC mode (no pincab)” for a desktop PC: ticks the backglass box too and turns the multi-screen check green
System & processes
Catches the machine-level things that quietly break a cab.
- Zombie PinUP Display process still holding a screen
- NVRAM folder present but not writable — scores never save
- System decimal separator that can affect physics on some tables
- Free disk space, junctions and phantom config files
- VPX crash report (crash.txt): date and place; a third-party module in the stack is named, never presented as the cause
- Real failures written in the DOF log: LedWiz, Pinscape, PacLed64, FTDI board, missing Teensy, unreadable configuration file
- JoyToKey or AntiMicroX running while VPX already reads the gamepad; one button shared by different actions
How it works
Four steps, no configuration.
Choose folder
Point it at your pincab install.
Scan
Runs on your PC, on your own files.
Read the report
Critical, warnings and info, sorted.
Play with confidence
Fix what matters, hit Start.
Latest versions
What each published version changed. Older changes are folded below.
- 1.2.4
October 28, 2026 - PinballX and PinballY: a note reports a missing executable, table folder, game file or empty VP parameters. Read-only, nothing is changed.
- Popper: if an emulator's folders point to a missing drive letter while the same folders exist under another letter, a note says so.
- Popper: tables kept in collection subfolders and declared in Popper are now analyzed (read-only).
- Scanner: the “xx similar results” line unfolds with the “Show all” button, so you can see every line.
- Export: each report's path stays in its group, even when the text does not name the file (a VPX crash, for example).
- Repair: a link already in place to the right target counts as done. A path containing ^ & % ! | < > " is never offered nor passed to cmd.exe.
- Serum: an empty (0-byte) .cRZ or .cROM file no longer counts as present, for the scan and for Repair.
- Update: the startup check writes its outcome to startup.log. No = stop offering this version; Cancel, the close button or Esc = later.
- 1.2.3
October 26, 2026 - Repair: an old Serum color cache (.cROMc) rejected by DMD Extensions 2.4 and later is set aside, not deleted, if its .cRZ or .cROM is next to it. Undoable.
- DOF: real failures written in its log are now reported (LedWiz, Pinscape, PacLed64, FTDI board, missing Teensy, unreadable configuration file).
- VPX crash: the crash.txt report is read, with the date and place of the crash. A third-party module in the stack is named, never presented as the cause.
- Notes: JoyToKey or AntiMicroX running while VPX already reads the gamepad; one button shared by different actions (coins/credits, plunger/lockbar: silent).
- Hard-coded paths: a path stored in a variable the script no longer uses is no longer reported. A DOF installed elsewhere (C:\DirectOutput) is found.
- Scanner: the “PC mode (no pincab)” box also ticks the backglass box and turns the multi-screen check green, for a desktop PC. Applies at the next scan.
- More accurate texts: no more “most common cause” that was never measured.
- Under the hood: moved to .NET 10 (supported until the end of 2028); the zip's welcome files are in English.
- 1.2.2
October 19, 2026 - Music and AltSound: no more false alert on accented names (“Motörhead”) or on altsound.csv names wrapped in doubled quotes.
- Undo says why a file was not put back. Repair can rename a wheel .apng left under its old name. Hard-coded paths: OBS no longer reported missing.
- Tables tab: the “Table: … ✕ Show all” pill brings back the full list without the page jumping by itself. The mouse Back button works too.
- Detail panel: “Copy the link to this page” copies the problem page's address to paste on a forum; the button no longer opens the website.
- PuP-Pack expected by the script but missing: reported in the Scan and in “Check a table”, which now rates a missing backglass like the Scan.
- Scan: a spare dmddevice copy carrying the Windows mark is now info, not Critical. A “(repaired…)” copy no longer repeats the alerts.
- Updates: the version letter (1.0f) is kept, release notes are worth reading, and “Ignore this update” wakes up again when the version changes.
- Scanner: “Review last scan” reopens the last report without a new scan, with its date shown large. Repair stays blocked on it: a fresh scan is needed.
Earlier changes, up to September 22, 2026
What's new
Repair now has 21 automatic fixes and 22 step-by-step procedures written for a beginner, in all four languages. A quick check runs at startup and stays silent unless something is wrong. Plus a history of what changed, a Beginner/Expert mode, and the option to ignore results.
New Version 1.1.16: 13 new checks, silent when in doubt
I read the source code of Visual Pinball X, VPinMAME, B2S and the DMD driver, and PinUP's own help pages. When a setting can be a choice (game sound off, backglass disabled), the report says so instead of calling it a problem.
- Table scripts: controller.vbs, core.vbs or a system script missing, or scripts and VPinMAME older than what a table asks for
- Damaged ROM .zip, or a ROM zipped twice: the table list now says missing, not OK
- PuP-Packs: pack unzipped one folder too deep, B2S plugins off, PinUP screens at a negative position
- PinUP Popper: emulator folders, launch program or alternate VPX exe that are not on this PC, and games whose .vpx is gone
- Missing Visual C++ or DirectX files, UltraDMD not registered, table music missing
- Windows Filter Keys: holding the right flipper for eight seconds can turn it on, then flippers react late
- One folder per table (VPX 10.8.1): several versions side by side, and a ROM stored in the table's own pinmame\roms
- Tables kept in OneDrive are no longer downloaded by the scan: they are listed instead
New Four new repairs, each with its Undo button
Same safety net as every repair: nothing happens without your confirmation, a backup is made first, and Undo puts things back exactly as they were.
- Rename a backglass that is almost right to the table's exact name
- Turn a .7z or .rar ROM into the .zip VPinMAME needs, with the 7-Zip already on your PC (the original archive is kept)
- Turn off the Windows Sticky Keys shortcut, and nothing else
- Move your media to a second disk, back on: copy first, original kept, link created without admin rights
New Save your config, and a health sheet for your cab
Two new buttons after a scan. Neither changes anything on your cab.
- Save my config: one dated zip with your VPX, VPinMAME, B2S, DOF and Popper settings, before any update
- Cab health sheet: a one-page PDF with the score and what to fix first, handy when you sell or buy a cab
- Every report now starts with the version that made it, and says so if a newer one exists
- Unused PuP-Packs in PUPVideos are listed separately, carefully, and never moved
New Version 1.1.14: fewer false alarms, four new checks
I read the source code of B2S and Visual Pinball X instead of guessing, and watched hours of community tutorials. Each rule below comes from there.
- Backglass named after the ROM: no longer reported as missing, B2S does load it
- Backglass with almost the right name: the scan names the file and tells you what to rename it to
- Screen position file inside a table's own folder: now checked, in the same order as B2S
- A .vbs next to a table silently replaces its script: now reported
- Windows Sticky Keys shortcut: five quick left flips can open a Windows prompt mid-game, now reported
- Orphaned media: only real images, videos and sounds are counted now, no more .ini or PuP-Pack files (thanks to a tester report)
Guide My backglass doesn't show: 4 checks
In this order, before anything else. The scan checks each one for you wherever it can measure it.
- 1. The .directb2s has exactly the same name as the .vpx, in the same folder
- 2. The B2S Backglass Server is installed and registered
- 3. The backglass position (ScreenRes.txt or .res) is on a screen that is actually connected
- 4. The downloaded files are not blocked by Windows (right-click, Properties, Unblock)
New Only real issues make the list
Repair sorts every scan result automatically. Only real issues become steps to fix — items that are already fine never show up.
- Even on a cab with hundreds of scan results, the checklist shows only what needs attention
- "OK" and "Info" results stay out of the checklist
- Warnings, notes and critical issues all show up — nothing real is hidden
New See exactly what Repair changed
Every repaired item keeps a record of exactly what changed — the action, and the before/after values — right in the Repaired history, in your language.
- Each repaired item shows its before and after, in your language
- Know exactly what a past repair did, at a glance
- Falls back to the plain filename if a specific action has no description yet
New Beginner / Expert mode
A new switch next to the language buttons controls how much technical detail you see on each result.
- Expert: full technical breakdown — impact, cause, explanation, verification
- Beginner: just the plain-language symptom and the fix
- Switch anytime — your choice is remembered next time you open the app
New Two new automatic fixes
Repair fixes an off-screen DMD window and an unregistered or mismatched COM component, both with your confirmation first.
- DMD window stuck off every monitor? One click puts it back on-screen, fully reversible
- VPinMAME, B2S or FlexDMD not registered? Repair launches the right tool for you
- Both go through the same backup-and-confirm safety net as every other fix
New More accurate COM checks
The COM Registration Health check no longer raises a false alarm on a normal .NET component, and scanning a whole drive no longer mistakes the app's own demo data for a real install.
- B2S Server and FlexDMD registered the standard .NET way are recognized correctly
- A whole-drive scan no longer reports the app's own bundled demo tables as part of your collection
- Both found and fixed thanks to tester reports — keep them coming
New Ignore what you don’t want to see again
Right-click any result to ignore it by code or by table. It stops counting against your score, but it never disappears — a small badge marks it as ignored by you.
- Persists across app updates — set it once, it stays
- Shows up in every export too — never silently hidden
- Ignored something 90+ days ago? A gentle reminder checks if it’s still relevant
New Snapshot your score, compare anytime
Take a snapshot before you start fixing things, then compare it to your current scan whenever you want — see exactly what got better, what appeared, what’s gone.
- One click to save a snapshot, one click to compare
- Shows your score before/after, plus what’s new and what’s fixed
- Never automatic — you decide when to compare, so it always means something
Also new: the app now speaks German too (alongside English, French and Spanish), and the free scanner checks one more thing — whether your DirectOutput (DOF) toys are configured for the ROMs you actually have installed.
Repair
Repair works today, and it is proven: on a test install, every fix was applied for real then undone, and the folder came back byte for byte identical. The license costs €3.99: one purchase, no subscription.
21 automatic fixes, including
- Unblock a Windows-blocked file
- Restore a ROM from its archive
- Quarantine orphaned media files
- Kill a zombie PinUP Display process
- Reposition an off-screen DMD window
- Register a missing or mismatched COM component (VPinMAME, B2S, FlexDMD)
- Neutralize a hard-coded path from another PC in a table’s script *
- Turn AltSound and AltColor back on when the pack is installed but muted
- Turn the on-screen DMD back on when it has been switched off
- Break a ROM alias loop that crashes VPinMAME
- Set aside an empty save file that stops a table from starting
- Move POPMedia and PUPVideos to a second disk when yours is full
- Set aside, without deleting, an old Serum color cache (.cROMc) rejected by DMD Extensions 2.4 and later, if its .cRZ or .cROM is next to it
And 22 it walks you through
Some things cannot be fixed for you — a file that must come from its author, a Windows setting, a download that failed. For those, Repair takes you by the hand instead.
- Written for someone who is not a developer: one step per line, in order
- The exact folder name, the exact button name — nothing left to guess
- In French, English, Spanish, German, Italian and Portuguese — a procedure you follow with your hands in the file explorer is not read in a foreign language
- A copy button, so you can take the steps with you to the cab
How it protects you
- Backup taken before the first write, every time
- You see every change before it happens — nothing is silent
- One click to undo, even after closing the app
- If a fix fails, it tells you the actual reason
- Re-run the same scan after repairing and compare your score
- Refuses to act while VPX or Popper is running
After payment, your key is shown on screen: paste it in the Repair tab of the app. Scanning and the diagnosis stay free.
Every fix is backed up before it runs and can be undone in one click. Everything Repair can't automate stays a manual step, with its own guidance right in the Scanner report — it never guesses.
* This one works differently on purpose: it reads your table and writes a brand-new repaired copy next to it — your original file is never opened for writing. If the copy isn’t right, just delete it; your table is exactly as it was.
What checks or fixes would actually save you time on your cab? Tell me on the forum thread or in a comment.
Coming with the Repair license: Play Optimizer
Play Optimizer tunes what runs while you play: Windows, the table's process, the graphics card. Everything below is included in the €3.99 Repair license, with no second purchase and no subscription. These features arrive gradually, through updates, and no date is announced: a line only appears here once the way to build it properly is already known.
Confirmed, works on every machine
- Windows power plan. Switch the cabinet to high performance while you play, then put your original plan back exactly as it was. Reversible, and saved before anything changes.
- Table process priority. Give Visual Pinball or Future Pinball a higher priority while it runs, and hand it back on exit. Never the "real time" priority, which can freeze Windows.
- Visual Pinball settings. Read your VPX options and surface the ones that actually affect smoothness, with the expected effect in plain words: low, medium, high. Your files are backed up before anything is written.
In development, depends on your hardware
- Temperature and load monitoring. Show processor and graphics card temperature and load while you play, changing nothing. Which sensors are available depends on your motherboard and your graphics card.
- Graphics settings dedicated to the table. Apply a 3D profile that belongs to Visual Pinball alone, without touching the settings of your other software. NVIDIA cards first, Intel support being explored. AMD cards are not covered: AMD does not publish the information required; that gets stated plainly here rather than promising a setting that would never apply on your machine.
Being explored, nothing is promised
- Automatic mode while you play. Let Play Optimizer apply your settings when a table starts and put everything back when it closes, with nothing to do. Running it on demand stays available either way.
- Custom profiles. Pick setting by setting what you turn on, instead of applying a whole profile.
Three rules will not change: nothing is modified without a backup first and a way back, nothing is applied unless you asked for it, and no figure is claimed for a gain that has not been measured.
Before, and with Pincab Toolbox
Before
- The table won't start, or VPX closes. You spend hours on forums and old threads looking for the error.
- You try fixes one after the other, without knowing which file is really at fault.
- You hesitate to touch a setup that works for your other tables.
With Pincab Toolbox
- You scan your install and get the list of what is wrong.
- Each problem comes with its cause in plain words and what to check.
- Where Repair can fix it, it builds a plan you review and confirm item by item; otherwise you get a step-by-step procedure.
Why you can trust it
What the software does and does not do, as the app itself states it.
- On your PC
- The scan runs on your machine. Your cab, your files and your scan results are never uploaded. No telemetry, no account.
- What goes online
- At each start, the app asks this website (not GitHub) whether a newer version exists. Nothing about your cab, your tables or your results is sent, and you can turn the check off in settings.json (UpdateCheckAtStartup = false). During a scan, the public Virtual Pinball Spreadsheet table list is downloaded from GitHub, at most once every 24 hours.
- Your files
- The scan changes nothing on your install. One free button writes: “Restore from my backup (zip)”. It acts only after a preview and your Yes, and saves the current files first. Repair, the paid option, only applies what you confirm item by item.
- Backup and undo
- Before a repair that changes a file, a timestamped backup is made, and an Undo button puts the file back. The few repairs that act on Windows itself rather than on a file (registering a component, ending a frozen process) cannot be undone that way.
- Never provided
- It never downloads, includes or provides a ROM, a table or media. It works on the files you already have.
- Coverage and limits
- Covered: Visual Pinball X (10.x) and PinUP Popper. Partly covered, read only: PinballX and PinballY (their settings and game lists). Not covered: Future Pinball, Pinball FX, Visual Pinball 9 and the other frontends. Provided as is: it cannot guarantee it detects every possible problem on your setup.
Frequently asked questions
The first things people ask.
Does it work with VPX 10.8?
Yes, it covers Visual Pinball X 10.x. Among other things it detects installs that mix 32-bit and 64-bit parts, a missing dmddevice64.dll, and tables that declare a newer minimum VPX version.
Does it support PinUP Popper?
Yes. It audits your Popper database: tables installed on disk but not registered, missing backglasses and PUP-Packs.
Does it modify my files?
The scan only reads and reports: it changes nothing on your install. Two things can write, both only after your Yes. The free “Restore from my backup (zip)” replaces files with those of a backup you made (and, to undo a restore, removes the files it had created), saving the current files first. Repair, the paid option, applies only what you confirm item by item, and makes a timestamped backup before a repair that changes a file.
Does it require administrator rights?
The app starts as a normal user, and the scan needs no administrator rights. A few fixes, like registering VPinMAME, can need them, and the problem page says so.
Does it support Future Pinball?
No. Covered: Visual Pinball X (10.x) and PinUP Popper. Partly covered, read only: PinballX and PinballY (their settings and game lists). Not covered: Future Pinball, Pinball FX, Visual Pinball 9 and the other frontends.
Is it safe? Does it upload my files?
The scan runs on your PC and nothing about your cab, your tables or your scan results is ever sent. Two things go online: at each start the app asks this website (not GitHub) whether a newer version exists, and you can turn that check off in settings.json (UpdateCheckAtStartup = false); and during a scan the public Virtual Pinball Spreadsheet table list is downloaded from GitHub, at most once every 24 hours.
Can a booby-trapped link in a finding harm my cab?
The button on a finding only opens https links to a short list of community sites (this site, GitHub, the Virtual Pinball Spreadsheet, VPUniverse and VPForums). Any other link is only copied, never opened.
How do you know the ROM check is right?
Every time the code changes, the ROM detection is tested against 1367 real table scripts published by the community. Any change in what it detects is flagged, and I review it table by table. See the list
A table won't start and VPinMAME says a ROM is missing
VPinMAME cannot run this table's game until the ROM zip is in the roms folder. Details and steps →
What is a 32/64-bit mismatch?
Two parts of your installation are not the same generation. Details and steps →
Windows blocked a DLL, what does that mean?
Windows is preventing this file from loading. The table will not start. Details and steps →
My backglass doesn't show, why?
No backglass will show for this table on your backglass screen. Details and steps → This table's backglass is probably already there, under a slightly different name, so it doesn't show. Details and steps →
Windows blocks the file when I launch it
If Windows blocks the file on first launch, it is not a virus. It is an automatic warning that hits software without a paid signature. Windows can block each new version for a while, until it knows it: close the message and try again later. If it is still blocked, or if you would rather not run it, write to me, I answer.


