This section is a collection of miscellaneous troubleshooting ideas to help diagnose and (hopefully) fix any problems you run into with PinballY.
Many problems can be solved (or at least diagnosed) by checking PinballY's log file. Every time you run PinballY, it creates a log file called PinballY.log in its main program folder. As the program runs, it writes a bunch of miscellaneous status reports to the log file about what it's trying to do. It also records technical details here about any Windows system errors that are encountered. These sorts of technical details are usually omitted from on-screen error messages, since most people find the Windows error codes to be largely useless techno-gibberish, but once in a while it's helpful to know exactly what's going wrong under the covers. So the log file tries to keep track of many of the technical details that are intentionally hidden from the on-screen UI, just in case they're needed.
You've probably experienced situations where too much information is as bad as no information at all. Too much can create a haystack that makes it hard to find the needle. PinballY therefore lets you control the amount of information reported in the log file, via the Log File page in the settings. That page lets you filter the type of actions that PinballY reports in the log. So before you consult the log file, you should go to the Log File options page and make sure that reporting is enabled for the subsystem that you're trying to troubleshoot. You might also want to turn off logging for unrelated areas, to minimize the amount of other reports that you have to sift through.
If you can't find what you're looking for in this Troubleshooting section or elsewhere in the help files, try asking on the vpforums pin cab forum. I regularly monitor that group, so I should be able to help if someone else doesn't get to your question first.
For any problem that's pretty clearly a program bug, you can raise it on the forum, or you can file a bug report using the PinballY issue tracker on GitHub. Before filing a report, please read How to write a good bug report. Following that advice will improve the chances that I can find and fix the problem.
If you feel like you've screwed up your settings beyond repair and you just want to reset everything to the standard defaults, it's usually not necessary to go to the trouble of reinstalling the whole program.
In most cases, all you have to do is delete the file Settings.txt, found in your main PinballY install folder.
That file contains all of your option settings. I've been careful to avoid the unfortunately common practice in other Windows software of scattering settings all over the registry and hidden files and so on. PinballY keeps all user settings in that file. Deleting it is usually enough to restore factory settings. By the way, that file is a simple text file in human-readable format - it even has lots of comments explaining what's going on. Don't be afraid of opening it in Notepad if you want to see what's there.
Symptom: You've set up PinballY to start up automatically with Windows, but each time you start up the system, PinballY ignores key presses. You have to click on the PinballY window to give it keyboard focus.
Causes: If you're using Windows 10, this is probably due to a change that Microsoft made in Task Scheduler (which PinballY uses for startup launching). Microsoft changed Task Scheduler in Win 10 so that it doesn't give keyboard focus to the programs it launches. This might sound like a bug, and it kind of is for our purposes, but they did this intentionally because they consider auto-launch programs to be "background" tasks that shouldn't interrupt the user. It would have been nice if they'd provided an option setting one way or the other on that, but they didn't.
The only solution I've found to this issue is to make PinballY force keyboard focus into its own window at some time after it starts up. In the Startup options dialog, try checking the box for "Force keyboard focus to PinballY at startup". If that doesn't help, try increasing the delay time on the focus change.
If all else fails, you can try pressing and holding the Exit Game button for about five seconds. That's something you can do at any time to bring PinballY to the foreground and give it keyboard focus.
If you're using a pre-Windows 10 system, Task Scheduler normally does give focus to newly launched tasks. The most common thing that can prevent PinballY from having keyboard is another program "stealing" focus by starting up shortly after PinballY does. In most cases, the most recently launched program gets focus, so if something launches after PinballY during your system startup process, it usually gets focus by taking it away from PinballY. To deal with this, try increasing the startup delay parameter in the Startup options dialog ("After logon, pause before starting PinballY").
Symptom: PinballY stops responding to button or key presses until you click the mouse in one of its windows.
As I'm sure you know, Windows has concept called "keyboard focus" where it only sends keyboard input to one application at a time - usually the application with the active window. This is usually seamless on a desktop PC, since you just use the mouse to choose the window you want to work with. On a pin cab PC, though, you probably don't want to keep the mouse handy all the time. So PinballY tries to manage focus as automatically as it can, by switching focus between itself and the running game as games start and exit. But focus is always a point of contention on Windows, and it's possible for other applications (or Windows itself) to steal focus away, making PinballY stop responding to keyboard input.
Starting with the Beta 18 release, there's a "mouseless" workaround if PinballY ever loses keyboard focus. Simply press and hold the EXIT GAME button for about five seconds. (The EXIT GAME button is usually the Escape key, but you can change this in the settings under Buttons.) This should force PinballY back into the foreground and give it keyboard focus again.
If PinballY shows an error message about missing DirectX components as soon as you launch the program, you probably need to upgrade to the latest version of Microsoft's DirectX. This should never be necessary on Windows 8 or later, because those come with the necessary components pre-installed. But if you're on Windows 7, you might need to update DirectX, even if you already have DirectX 11 installed, because Windows 7 originally came with an earlier version of DirectX 11 that's not compatible with PinballY. Update instructions can be found on the Microsoft website:
This refers to a Windows system file that's normally installed by default as part of the operating system on Windows 7 through 10, but which Microsoft apparently changed to "optional" status in a newer Windows 10 update. Some people have had it disappear from their system as a result. You can add it back by enabling the "Media Feature Pack" in the system settings:
Simple answer: Don't run PinballY in Admin mode. If you're running PinballY by right-clicking the program file and selecting "Run as Administrator", or you check the box for "Run as Administrator" in the .EXE file's property page, it's going to cause a bunch of problems, because the program isn't designed to run that way. There is a way to run in Admin mode if necessary, but not by using "Run as Administrator". See the help section on Administrator Mode for the right approach.
But more importantly, you ideally shouldn't need to use Admin Mode at all with PinballY. There are two main reasons that most people think they need to use Admin Mode:
If this kind of blanket advice is the only reason you're using Admin Mode with PinballY (rather than an attempt to solve a specific problem), you should try undoing it and running everything without Admin Mode instead.
The easiest way to figure out what's wrong when PinballY can't find some or all of your tables is to look at the log file. PinballY creates this file each time it runs, writing lots of extra technical details on what it's doing during the session. This can usually pinpoint what's going wrong during table searches.
To get detailed information on table searches:
Now read through the file for an account of where the program is looking for table files and what it's finding.
For a detailed explanation of exactly where PinballY looks for tables, see Files & Folders.
As with table search problems, the log file is the first place to look when PinballY isn't finding your media files. If you're having trouble getting most or all of your media files displayed, try this:
Now read through the file for an account of where the program is looking for media files and what it's finding.
If you're having trouble with media for just a few specific games, try the built-in media list viewer:
That will display details on where the system is looking for the game's media, the filename(s) it's looking for, and the full names and locations for all of the matching files. You can check the file names that PinballY expects to find against the actual files on your disk, and likewise check the directory paths to make sure that you're placing the files where the program is looking for them.
For a detailed explanation of exactly where PinballY looks for media, see Files & Folders.
Here's the situation:
The most likely problem (and solution) is described in the topic PinballY thinks my Visual Pinball X tables are Visual Pinball 9 tables below.
Did you just migrate to PinballY from PinballX? And did you tell PinballY to use the table databases and media files you already had set up for PinballX? If so, here's what's probably wrong:
That might seem perfectly natural, especially if you only started playing around with VP games recently and mostly use VP X rather than the older VP 9 games. But PinballY doesn't know that! PinballY is set up by default to work with both VP 9 and VP X. In fact, it's set up to work with multiple versions of VP 9, since there are several sub-versions of VP 9 whose games require those specific versions (like VP 9.2 and "PhysMod 5"). To deal with this, the default settings in PinballY (the ones you get when you first install the program) use the following database folder names:
See the problem? When PinballY loads the system databases, it looks at the settings, and it sees that the database folder for Visual Pinball 9 is called Visual Pinball, so it looks at the tables listed there. But you put all of your VP X games there when you were using PinballX. So PinballY thinks that your VP X games are actually VP 9 games.
Here's the solution:
PinballY should now be in sync with your old PinballX settings. There's no need to move or rename any of the PinballX files. It's just a matter of changing the PinballY settings to match the folder names you're using.
Symptom: When you use the "Capture" command to capture screenshots or videos of the running game, the captured videos grab the wrong screen area for one or more windows. They're not aligned with the actual Visual Pinball screen area, so they're clipped or just the wrong areas entirely.
Cause: PinballY doesn't actually know where Visual Pinball's windows are. It doesn't want to make assumptions about which windows go where, because that would require too much hard-coded knowledge of particular pinball programs, which would make the Capture feature less likely to work for new pinball programs (and would also make it likely to stop working every time the other programs are updated).
Instead, PinballY simply captures the screen area of the PinballY windows. The assumption is that you have a particular monitor area that you always use for your playfield, in every player program. And another area that you always use for your backglass, etc. And since you're using those areas in every pinball program, PinballY assumes you're going to use those exact same areas for the corresponding PinballY windows. That makes the Capture feature's choice of screen locations super easy:
So if PinballY is capturing the wrong area for a particular player program, simply move the corresponding PinballY window into the right area before you run the capture.
We chose this scheme because the fixed screen locations are practically a given on a pin cab. A pin cab usually has a whole monitor devoted to each function, so naturally you're going to set up both PinballY and every pinball program the same way, to use those exact monitors. This is less of a given for desktop users, though, so you might have to juggle windows around a little bit during capture if you don't always run every pinball program with the exact same window layout.
Symptom: When you run the capture command, the list of available media types doesn't include the backglass window, or doesn't include some other window you want to include.
Cause: The window you want to capture must be open in PinballY when you run the capture command. As described in the topic above about screen locations for capture, PinballY figures the screen location for each window type according to the corresponding PinballY window's location. In order to have a location at all, the window has to be open! So the list of available media types only includes the windows that you currently have open.
To bring up any of the windows that you've hidden, simply right-click in the main PinballY playfield window, and select Show Backglass or Show Topper, etc., for whichever window you want to bring back from the invisible. Once you make the window visible, it should show up in the list of available media types the next time you run a capture.
Symptom: Each time you start a new PinballY session, the backglass window (or one of the other windows) opens at the wrong position. It won't stay where you left it at the end of the last session.
The usual cause of this problem is that you're running some other program that's changing the screen resolution or monitor layout between sessions. For example, you might be using a program that rotates your monitors or changes the desktop resolution each time you run certain programs, or you might be using a remote access program that changes the screen resolution during remote sessions.
The reason PinballY moves the windows around in these situations is that it normally checks all of the restored window positions to make sure they're in the visible desktop area at program startup. If any windows are outside of the visible area, PinballY moves them into the visible area. This is intended to help with rare cases where you permanently change the desktop layout at the hardware level, such as when you add a new monitor or replace an old one with a new one of a different size. But it can be a nuisance if you routinely change your desktop layout at the software level, such as if you need to change the layout every time you run a certain application.
The easy fix that usually works is to tell PinballY to stop forcing windows into the visible desktop area at the start of every session:
If that still doesn't help, and the window that's not "sticking" to its proper position is in full-screen mode, there's a second option setting that might help:
If none of that helps, try turning on logging for Window layout setup (in the Log File section of the settings dialog). The next time you encounter the problem with a saved window position, exit PinballY and check the log file for details about window layout setup. That should explain why PinballY is making the decisions it's making about window placement, which hopefully will suggest an appropriate solution.
Try this:
What's going on: this checkbox makes VP ask Windows to turn off the feature inside Windows that lets it draw partially transparent transparent window frames and elements. VP lets you disable this because it can slow down your video card slightly; if you have a low-end video card, enabling composition might slow down your video card enough to cause hiccups in VP, so disabling it might make VP run more smoothly. The snag is that Windows automatically turns composition back on when VP exits, which has the annoying side effect of redrawing everything on the screen, which has the even more annoying side effect of bringing the taskbar to the foreground even if it was hidden.
PinballY can't do much about that, since Windows has ultimate control over what's on the screen. This is one of those situations where Windows asserts its authority and overrides whatever the applications would prefer. So the best way to avoid the problem is to tell VP not to make this change in the first place, so that Windows doesn't feel the need to redo the whole screen layout every time VP exits.
If you really need to disable desktop composition in VP for performance reasons, you might have to live with the momentary taskbar appearance after game sessions. It's possible to disable desktop composition across your whole system in the Windows settings, so that Windows isn't constantly switching it on and off when switching programs - but doing so might prevent PinballY from displaying its graphics properly. So I don't recommend that.
Note that if you have Windows 8 or later, you should definitely un-check the option in VP, because it doesn't do anything anyway! Microsoft made desktop composition a core feature of the operating system starting in Windows 8, so applications can't disable it even if they try. VP will still try if you un-check the box, so un-checking the box might still cause the glitchy taskbar redrawing, but it won't have any performance benefit since Windows will otherwise ignore the attempt.
Symptom: When you press the Start button to bring up a menu, you just see a blank gray box with a blue highlight line, with no text anywhere to be seen. The game titles shown in the game wheel (for games without icon images) might also be missing.
If you're on Windows 7, this can be caused by some system video option settings. Check the following two settings:
The key appears to be that font-smoothing option. Apparently the Windows drawing functions that PinballY uses to construct the menu and other text graphics depend upon it.
Note that some Windows 7 users intentionally disable the Aero theme because of its performance impact, especially if you have a lower-end video card. If you need to disable Aero for acceptable game performance, you might be able to disable it on a game-by-game basis, instead of disabling it for the whole system. Look in the game player programs you're using for option settings. For example, Visual Pinball has an option in its Video/Graphics Options preference dialog called Enable desktop composition, which you can un-check to disable the Aero elements that affect performance.
Symptom: Shortly after launching a game, PinballY brings itself back to the foreground, as though the game had already ended, even though the game only just started!
If the game in question is a commercial game based on Steam, or it's Future Pinball with BAM, or it uses any other "two-stage" launch procedure, the problem might be in the option settings for the system.
Steam games and FP BAM games use a complicated launch procedure where you launch one .EXE program, which then launches another .EXE program that represents the actual game. For example, with Pinball FX3, PinballY has to launch the main Steam program file Steam.exe to get the ball rolling (as it were), but Steam.exe then launches a separate program called Pinball FX2.exe. Once that's going, Steam.exe quits and lets Pinball FX2.exe take over.
The thing that makes this tricky for PinballY is that PinballY wants to monitor the launched game program, so that it can figure out when the game is over and it's appropriate for PinballY to take over the screen again. With Steam (and BAM, and probably a few others), the program that PinballY actually launches exits after a few seconds, even though the game is still running in that second process. But PinballY doesn't just magically know that! When it sees the directly launched program quit, it thinks that the game is over and it's time to take over again.
The solution is to explicitly tell PinballY about this two-stage launch setup. PinballY has a special provision for this, because it's pretty common, but PinballY can't figure it out on its own; you have to tell it. The way to do this is to go to the settings dialog, navigate to the page for the system in question, and enter the "final" program name in the Process Name box. The "final" program is the one that's actually left running after the multi-stage launch has finished and the game is really going.
The name you enter in the Process Name box must not include a path, but must include the .EXE suffix. For Pinball FX3, for example, you'd enter Pinball FX3.exe.
See Process Name in System Options for more on this topic.