mjrgh / PinballY

A table browser and launcher ("front end") for virtual pinball cabinets.
Other
47 stars 22 forks source link

Unable to start PinballY under Windows 11 #202

Open Calimerorulez opened 2 years ago

Calimerorulez commented 2 years ago

Hi,

I just upgraded my machine from Windows 10 to Windows 11, and now PinballY does not want to start. For a brief moment it shows the icon in the taskbar and then it closes. Nothing happens any further.

Is there a way for me to debug?

mjrgh commented 2 years ago

You might check to see if it's leaving a log file behind (PinballY.log in the same folder as the program EXE file). If not, you might have to literally debug it, i.e., run it under the Visual Studio debugger. I'm afraid I don't have a Windows 11 machine to test on, so if it's a Win11 incompatibility of some kind, I won't be able to do much to find it on my end. So you might have to install Visual Studio and pull the source code from the github repository, and build yourself a debug bulid to run under VS. VS should hopefully give you more information on the nature and location of the abrupt termination, and if you can pass that along to me, I can try to help interpret it and hopefully find a solution.

I wouldn't expect any outright Win11 incompatibilites, since WIndows is usually pretty good about maintaining backward compatibility, but they do sometimes make breaking changes. It might be something only tangentially related to the OS migration, like a video driver or DirectX driver. But that would probably also require you to look at it under VS, barring something helpful from a log file.

Calimerorulez commented 2 years ago

Hi,

Thank you for your reply. Only thing the log shows is:

woensdag 9 februari 2022, 15:09:31: Session started
PinballY 1.1.0 (Beta 5), build 9931 (x64, 20210518-0551)

DOF (DirectOutput): initializing DOF client
+ Launching DOF surrogate process.  This is required because PinballY is running
  in 64-bit, and DOF is a 32-bit COM object.  Surrogate command line:
  >"C:\PinballY\Dof3264Surrogate.exe"  -parent_pid=12148 -clsid=dfba3e46-2035-4469-85bb-5401b558ffae

DOF: creating DOF COM object (a23bfdbc-9a8a-46c0-8672-60f23d54ffb6)
DOF: got table mapping file: C:\DirectOutput\config\tablemappings.xml

Checking for Javascript main script file C:\PinballY\scripts\main.js
High score retrieval (init): VPinMAME NVRAM path is C:\Visual Pinball\VPinMame\nvram

High score retrieval (init): PinEMHi .ini file path is C:\PinballY\PINemHi\PINemHi.ini
Searching for real DMD device DLL
+ No DLL found in the PinballY folder; checking for a VPinMAME folder
+ VPinMAME COM object registration found at C:\Visual Pinball\VPinMAME\VPinMAME64.dll
+ Found the 64-bit DLL in the VPinMAME folder: C:\Visual Pinball\VPinMAME\DmdDevice64.dll

Detecting and configuring real DMD device
+ Searching for dmddevice.dll
+ found DMD interface DLL: C:\Visual Pinball\VPinMAME\DmdDevice64.dll
+ retrieving file version info for DLL, to check for special handling
High score retrieval (init): PinEMHi ini data loaded successfully
High score retrieval (init): path for VP is D:\Per\VisualPinball\VPinMame\nvram\
High score retrieval (init): path for FP is D:\Games\Future Pinball\fpRAM\
++ DLL version info not available; we must assume this is an old version with known bugs, so some
   features will be disabled.  Please update your DmdDevice.dll to a current version.

+ dmddevice.dll successfully loaded

I'm not very experienced in VS and also not in C++, but I see a lot of compile errors. I will look into that too. I think it is misconfiguration on my side :)

Calimerorulez commented 2 years ago

image

mjrgh commented 2 years ago

You might want to take a look at the "Development Environment Setup" notes in the Notes folder before compiling - that might help you get it going with less work.

The log seems to show that the last thing that happens before the crash is loading dmddevice.dll, so you might try removing that DLL from your system (see the log for the exact path to the file it's finding) to see if that's the problem. It might not be that at all (the log might look the same if the crash were happening in what's happening next after loading the DLL, instead of the DLL itself), but it's worth at least eliminating that possibility.