Skip to content

Troubleshooting

It is held — it failed its last launch and was taken off deliberately, so you can tell “not tried yet” from “does not work”. Press T for the tray, which names the reason.

Put the .zip in your shared PinMAME roms/ folder, still zipped, then press Re-check in Settings. Re-check is not optional: a held table cannot be launched from the wheel, so there is no other way to prove the fix. Full steps: ROMs and nvram.

A table that used to find its ROM cannot any more

Section titled “A table that used to find its ROM cannot any more”

Look for an empty pinmame/roms/ in that table’s folder. The moment that folder exists, Visual Pinball stops consulting your shared ROM folder for that table. Put the ROM in it, or delete it.

The backglass or DMD is in the wrong place

Section titled “The backglass or DMD is in the wrong place”

Work down this list. It is ordered by how often each one is the answer.

  1. Read the run log — it says whether vPinOps wrote anything, and which DMD mode you got.

    Every launch logs two lines:

    projecting Guns N' Roses: B2SHideGrill=0, Priority.ScoreView=3, BackglassDMDOverlay=0
    layout -> Guns N' Roses: Written (1 global, 0 per-table, dmd=Unknown)

    Read the second one first. Written means vPinOps configured this launch; UpToDate means everything it wanted was already correct. Either way it ran. If neither line is there at all, nothing was configured and that is your answer.

    dmd= is not your DMD choice — it is which kind of DMD window vPinOps has seen this table open before, learned from Visual Pinball’s own log. dmd=Unknown just means it has not seen this table run yet, and says nothing at all about your settings.

    These lines tell you whether the launch was configured, not where anything was put — the rectangles and display names are not in the log. So a position you cannot find here is not evidence of anything; carry on down the list.

  2. Check which DMD choice this table is on.

    The DMD is a screen. What plays on it is a choice, not a detection, and it is the usual answer when the DMD is not what you expect. It is set in two places, and the table’s own setting wins:

    • VPX score view — Visual Pinball’s own plain dots.
    • The backglass’s own DMD artwork — the artist’s DMD panel, with the live score in the slot they drew for it. A backglass that has no DMD artwork falls back to the plain score view.
    • The backglass hosts it — for a two-screen cab with no DMD monitor. The score is drawn into the backglass itself and the separate window is switched off.

    The table’s own page adds Follow the global setting, which is where a table starts out — so if one table is wrong and the rest are right, that table has its own setting; if they are all wrong, the global one is. Settings adds Leave VPX alone, which writes nothing at all and leaves whatever you set in Visual Pinball’s own F12 exactly as it is.

  3. If the backglass is hosting the DMD, its position is Visual Pinball’s, not ours.

    vPinOps supplies no coordinates for that case — Visual Pinball works out where the dots sit inside the artwork. If they land slightly off, that is the backglass file to fix, not a setting here. Two backglasses by different artists can behave differently for this reason.

  4. Confirm your Visual Pinball build.

    Screen configuration is written as ini keys that only Standalone reads. On the older VPinballX.exe those keys land nowhere and it looks like our bug. Settings shows the path — check it names the build you meant.

No backglass at all, or no DMD at all, on every table

Section titled “No backglass at all, or no DMD at all, on every table”

Visual Pinball’s plugins ship switched off. No B2SLegacy plugin means no backglass; no ScoreView (with FlexDMD or AlphaDMD) means no DMD. Nothing warns you — the table plays and those windows simply never open, which looks exactly like a vPinOps fault.

Turn them on in Visual Pinball’s Live UI, or set Enable = 1 under the [Plugin.*] sections of VPinballX.ini. Detail, including which of the two B2S plugins to pick: screens and layout.

A black screen, or an app that looks frozen, when a table launches

Section titled “A black screen, or an app that looks frozen, when a table launches”

Check [Player] RefreshRate in VPinballX.ini is not blank. Blank makes Visual Pinball ask for refresh rate 0, fail to build its sync device and raise an error dialog underneath its own full-screen shields, where you cannot see it or dismiss it.

Put your display’s real rate in it.

Not a missing file, and re-checking will not fix it — some tables need a patched script on Standalone. Name it after the .vpx and drop it alongside: the sidecar step.

  1. The Windows firewall. Port 7833, inbound, TCP, private profile. If the first-run prompt was dismissed, the address never answers. This is the most common cause by a distance.
  2. Same network. OpsLink is local by design — guest Wi-Fi and cellular cannot reach it.
  3. The password. One set in Settings lives in config.json and always wins over the remote-password file, which is never rewritten.

It is already running. vPinOps deliberately outlives its own windows, so closing a window does not quit it — and while it runs it holds port 7833, which is what stops the next copy. Quit it from the tray icon.

A half-finished upload appeared on the wheel

Section titled “A half-finished upload appeared on the wheel”

Something renamed .inbox and took the dot off. Folders beginning with a dot are skipped by the library scan; that is the entire mechanism. Put the dot back.

That is the design — it names every file it could not place, with the reason. The common ones: an archive it will not open for you, a ROM (which belongs in your PinMAME folder), audio, and media whose filename does not say which surface it is for. See what bulk import leaves for you.

The Windows run log shows â€" where a dash should be

Section titled “The Windows run log shows â€" where a dash should be”

Cosmetic. The log is written UTF-8 and the console reads the system codepage. The content is correct; only the punctuation is mangled.