mjrgh / PinballY

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

Some VPX Tables crash with something like "Error in Line 1" but only when launched by PinballY #237

Closed Zappo-II closed 2 weeks ago

Zappo-II commented 5 months ago

Describe the bug I have some VPX Tables that can be launched by PinballY and run Flawlessly... I have some other VPX Tables that, if launched by PinnballY will start but after a short Time will crash with a strange Error Message that always points to the Tables Script Line 1. If I look at the log and take the exact Line PinballY uses to Run the Table and put it in the command line, the table will play flawlessly...

To Reproduce Happens all the time with my installation...

Expected behavior Table(s) should just run flawlessly from PinballY if they run flawlessly from CMD-Line...

Test files Not applicable...

Screenshots Not applicable...

Windows version Windows 10, nothing else, the PC's sole use is being a VirtualPinballCabinet.

Additional context None.

Zappo-II commented 5 months ago

Some State the Obvious:

mjrgh commented 5 months ago

I'm afraid there's not much I can do with the information you've provided. If the steps to reproduce are "run on my [Zappo-II's] machine", I can't do any direct debugging, since I don't have access to your machine. So the best I can do is try to help you debug it on your end. For starters, do you have any idea which program the error messages are coming from? If they're for the "table script" then probably VP, in which case you're probably going to have to debug what's going wrong in VP. So you might need to drill down into the table scripts that are failing and understand what the error message is trying to tell you, which might point to a solution.

Zappo-II commented 5 months ago

I was quite certain that the description is somehow clumsy, so thanx for getting into it anyways... The one thing that irritates me is that the table works if called witch the same set of parameters that are logged by pinbally if executed directly from a command prompt... I assume that this observation rules out some general problem that could / should be debugged within vpx. As far as my experiance teaches me, I would rather assume that the environment set or given by pinbally somehow differs... I must admit that my Programming Experience on Windows Platforms ended back with Windows Vista, so I have no recent expertise on cpp / visual whatever, but I presume that maybe some Path to some DLL or some other environmental settings inside the spawned process owned / controlled by pinbally in which vpx runs differ... Could you possibly give some advice on how to debug / log the environmental settings before and while pinbally calls vpx...??? Is the complete set of parameters that are handed over to vpx included or might there be some difference...??? Currently the Cabinet I am building is disassembled for paint job, so I am unable at this certain point of time to just fire the Simulation up and gather some more detailed information, but I thougt I'd use the time to try to get some help with this Problem... One of the tables that crash if launched by pinbally but work fine if started directly with vpx is "Space Cadet"... This happened with vpx 10.7.2 and still happens with 10.7.3 ... PinballY is 1.1.0 Beta 6 ...

mjrgh commented 5 months ago

I think the first step is to get the machine back online so you can investigate with concrete test cases. Then I'd go through the steps to trigger a crash, and when you get the error message dialog box from VP, stop and investigate right there. Read the error message and see what it's trying to tell you, and figure out what the cure is for that specific error. Hopefully that'll illuminate what's wrong with/different about the environment and point to a general solution.

Zappo-II commented 1 month ago

Sorry for stalling this issue, but finally I got my cabinet back together enough to dig deeper into this...

So what I observe is the following...

My Reference Table Terminator 2 - Judgment Day Chrome Edition-3-2.vpx works perfectly well with or without being started by PinballY...

My Other Testing Tables are:

If I start one of those from PinballY, they all Crash with the same Behaviour but at different points in time...

If I start those using the VirtualPinballX commandline I take from the PinballY log directly from a command prompt they seem to work flawlessly...at least I can have a complete run playing that table for a while...

PinballY Log:

+ table launch: executable: C:\PinCab\Visual.Pinball\VPinballX.exe
+ table launch: applying command line variable substitutions:
+ Original> /minimized /play -"[TABLEPATH]\[TABLEFILE]"
+ Final   > /minimized /play -"C:\PinCab\Visual.Pinball\Tables\JP's Space Cadet v4.3.vpx"

My CommandLine:

C:\PinCab\Visual.Pinball\VPinballX.exe /minimized /play -"C:\PinCab\Visual.Pinball\Tables\JP's Space Cadet v4.3.vpx"

If JP's Space Cadet v4.3.vpx gets started by PinballY, I'll get the following, directly at Startup...(no interaction with the game at all)...

SpaceCadetErrorDialog1

SpaceCadetErrorDialog2

This would translate to something like:

Runtime Error Line 1 - Index out of range. Must not be negative or smaller than collection. Parameter name: index

After that the game is 'broken' ...in other words, won't do anything usefull anymore, no matter what course I take...

Complete Log:

Sonntag, 15. September 2024, 16:12:37: Session started
PinballY 1.1.0 (Beta 7), build 9973 (x64, 20240902-0159)

DOF (DirectOutput): initializing DOF client

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

Starting pinball player system setup
The main table database folder is C:\PinCab\PinballY\Databases
Pinball player system "Visual Pinball 9" is disabled; skipping
Pinball player system "Visual Pinball 9.2" is disabled; skipping

Configuring pinball player system "Visual Pinball X"
+ database folder = C:\PinCab\PinballY\Databases\Visual Pinball X
+ full executable path to player program is C:\PinCab\Visual.Pinball\VPinballX.exe
+ working path when launching player program is C:\PinCab\Visual.Pinball\
+ full table path (folder containing this system's table files) is C:\PinCab\Visual.Pinball\Tables
+ scanning for table files: C:\PinCab\Visual.Pinball\Tables\*.vpx
++ found file:  FlexDemo.vpx
++ found file:  Indiana Jones (Stern 2008) - JP v4.vpx
++ found file:  JP's Arcade Physics v3.01 Rubber objects.vpx
++ found file:  JP's Space Cadet v4.3.vpx
++ found file:  JP's VPX7 Elasticity_Test.vpx
++ found file:  Nudge Test and Calibration.vpx
++ found file:  Star Trek LE (Stern 2013) - JP v4.vpx
++ found file:  Terminator 2 - JP v3.0.vpx
++ found file:  Terminator 2 - Judgment Day (Williams 1991) NF.vpx
++ found file:  Terminator 2 - Judgment Day (Williams 1991).vpx
++ found file:  Terminator 2 - Judgment Day Chrome Edition-3-2.vpx
++ found file:  Terminator 2 - Judgment Day(Williams 1991)_Bigus(MOD)1.2.vpx
+ media folder base name is Visual Pinball X, full path is C:\PinCab\PinballY\Media\Visual Pinball X; this is default folder name, which is the same as the system name
+ searching folder C:\PinCab\PinballY\Databases\Visual Pinball X for table database .XML files

+ System "Visual Pinball X": loading table database file C:\PinCab\PinballY\Databases\Visual Pinball X\Visual Pinball X.xml
++ This is the main file for this system (it doesn't define a category)
++ adding game Terminator 2 Chrome Edition, table file Terminator 2 - Judgment Day Chrome Edition-3-2, media file base name Terminator 2 Chrome Edition (Williams 1991)
++ adding game Terminator 2 Judgment Day, table file Terminator 2 - Judgment Day (Williams 1991), media file base name Terminator 2 Judgment Day (Williams 1991)
++ adding game Terminator 2 NF, table file Terminator 2 - Judgment Day (Williams 1991) NF, media file base name Terminator 2 NF (Williams 1991)
++ adding game Terminator 2 Bigus MOD, table file Terminator 2 - Judgment Day(Williams 1991)_Bigus(MOD)1.2, media file base name Terminator 2 Bigus MOD (Williams 1991)
Pinball player system "Future Pinball" is disabled; skipping
Pinball player system "Pinball Arcade" is disabled; skipping
Pinball player system "Pinball FX3" is disabled; skipping
Pinball player system "Pinball FX2" is disabled; skipping

Window layout setup: initializing Playfield window
  Normal position (when not maximized or full-screen): Left,top = 122, 19; Right,bottom = 3962, 2179; Size = 3840 x 2160
  Full screen mode = Yes
  Borderless = No
  Show Mode = 1 (SW_SHOWNORMAL)

Window layout setup: getting full-screen restore position for Playfield
. using Nearest Monitor method, based on stored pre-full-screen position (122, 19, 3962, 2179)
. monitor area is 0, 0, 3840, 2160 (3840 x 2160)

Window layout setup: initializing Backglass window
  Normal position (when not maximized or full-screen): Left,top = 3853, 16; Right,bottom = 5102, 750; Size = 1249 x 734
  Full screen mode = No
  Borderless = Yes
  Show Mode = 1 (SW_SHOWNORMAL)

Window layout setup: initializing DMD window
  Normal position (when not maximized or full-screen): Left,top = 4171, 787; Right,bottom = 4798, 987; Size = 627 x 200
  Full screen mode = No
  Borderless = No
  Show Mode = 1 (SW_SHOWNORMAL)

Window layout setup: initializing Topper window
  Normal position (when not maximized or full-screen): Left,top = 591, 662; Right,bottom = 1287, 988; Size = 696 x 326
  Full screen mode = No
  Borderless = No
  Show Mode = 0 (SW_HIDE)

Window layout setup: initializing Instruction Card window
  Normal position (when not maximized or full-screen): Left,top = 2229, 1403; Right,bottom = 2766, 1722; Size = 537 x 319
  Full screen mode = No
  Borderless = No
  Show Mode = 0 (SW_HIDE)

Checking for Javascript main script file C:\PinCab\PinballY\scripts\main.js
. Main script file exists; initializing Javascript engine
. Loading system script file C:\PinCab\PinballY\scripts\system\CParser.js
. Loading system script file C:\PinCab\PinballY\scripts\system\SystemClasses.js
. Loading main script file C:\PinCab\PinballY\scripts\main.js
[Javascript] Loading module from file C:\PinCab\PinballY\scripts\main.js
[Javascript] Loading module from file C:\PinCab\PinballY\Scripts\UlliMatePinBoldt.js
High score retrieval (init): VPinMAME NVRAM path is C:\PinCab\Visual.Pinball\VPinMame\nvram
High score retrieval (init): PinEMHi .ini file path is C:\PinCab\PinballY\PINemHi\PINemHi.ini
PinEMHi command line: "C:\PinCab\PinballY\PINemHi\PINemHi.exe"  -v
High score retrieval (init): PinEMHi ini data loaded successfully
High score retrieval (init): path for VP is C:\PinCab\Visual.Pinball\VPinMame\nvram\
High score retrieval (init): path for FP is D:\Games\Future Pinball\fpRAM\

Window layout setup: getting full-screen restore position for Playfield
. using Nearest Monitor method, based on current live window position (122, 19, 3962, 2179)
. monitor area is 0, 0, 3840, 2160 (3840 x 2160)

Window setup: Playfield: Setting window to full-screen mode at 0, 0, 3840, 2160 (size 3840 x 2160)
Searching for Startup Video in C:\PinCab\PinballY\Media\Startup Videos.*
Searching for Startup Video in C:\PinCab\PinballY\Assets\Startup Videos.*
Searching for Startup Video (bg) in C:\PinCab\PinballY\Media\Startup Videos.*
Searching for Startup Video (bg) in C:\PinCab\PinballY\Assets\Startup Videos.*
Searching for Startup Video (dmd) in C:\PinCab\PinballY\Media\Startup Videos.*
Searching for Startup Video (dmd) in C:\PinCab\PinballY\Assets\Startup Videos.*
Searching for Startup Video (instcard) in C:\PinCab\PinballY\Media\Startup Videos.*
Searching for Startup Video (instcard) in C:\PinCab\PinballY\Assets\Startup Videos.*
Searching for Startup Video (topper) in C:\PinCab\PinballY\Media\Startup Videos.*
Searching for Startup Video (topper) in C:\PinCab\PinballY\Assets\Startup Videos.*
Searching for underlay in C:\PinCab\PinballY\Media\Images.*
Searching for underlay in C:\PinCab\PinballY\Assets\Images.*
Searching for Default Playfield in C:\PinCab\PinballY\Media\Videos.*
Searching for Default Playfield in C:\PinCab\PinballY\Assets\Videos.*
Searching for Default Playfield in C:\PinCab\PinballY\Media\Images.*
Searching for Default Playfield in C:\PinCab\PinballY\Assets\Images.*
Searching for Default Playfield in C:\PinCab\PinballY\Media\Videos.*
Searching for Default Playfield in C:\PinCab\PinballY\Assets\Videos.*
Searching for Default Playfield in C:\PinCab\PinballY\Media\Images.*
Searching for Default Playfield in C:\PinCab\PinballY\Assets\Images.*

Media file lookup for Terminator 2 NF: Wheel Image, path C:\PinCab\PinballY\Media\Visual Pinball X\Wheel Images, found C:\PinCab\PinballY\Media\Visual Pinball X\Wheel Images\Terminator 2 NF (Williams 1991).png
PinEMHi completed successfully; results:
>>>

                   Version 1.3.1

Supports all Future Pinball-Games Top 10 Hiscores
        Supports 425 Visual Pinball-Games
              Supports 1240 Roms
   *** Compatible with Visual pinmame 3.0 ***

            Written by Dna Disturber

>>>
Searching for Startup Audio in C:\PinCab\PinballY\Media\Startup Sounds.*
Searching for Startup Audio in C:\PinCab\PinballY\Assets\Startup Sounds.*
Searching for Default Backglass in C:\PinCab\PinballY\Media\Videos.*
Searching for Default Backglass in C:\PinCab\PinballY\Assets\Videos.*
Searching for Default Backglass in C:\PinCab\PinballY\Media\Images.*
Searching for Default Backglass in C:\PinCab\PinballY\Assets\Images.*
Searching for Default DMD in C:\PinCab\PinballY\Media\Videos.*
Searching for Default DMD in C:\PinCab\PinballY\Assets\Videos.*
Searching for Default DMD in C:\PinCab\PinballY\Media\Images.*
Searching for Default DMD in C:\PinCab\PinballY\Assets\Images.*
High score retrieval: getting high scores for JP's Space Cadet v4.3
High score retrieval: can't use PINemHi because this game isn't configured for a particular game player system
High score retrieval: looking for ad hoc scores file C:\PinCab\Visual.Pinball\Tables\JP's Space Cadet v4.3.pinballyHighScores
+ ad hoc scores file C:\PinCab\Visual.Pinball\Tables\JP's Space Cadet v4.3.pinballyHighScores doesn't exist
+ No high score source found for JP's Space Cadet v4.3
Searching for Select in C:\PinCab\PinballY\Media\Button Sounds.*
Searching for Select in C:\PinCab\PinballY\Assets\Button Sounds.*
Searching for Select in C:\PinCab\PinballY\Media\Button Sounds.*
Searching for Select in C:\PinCab\PinballY\Assets\Button Sounds.*

Table launch: JP's Space Cadet v4.3, table file JP's Space Cadet v4.3.vpx, system Visual Pinball X

DOF: shutting down DOF client
+ launch: full table path C:\PinCab\Visual.Pinball\Tables\JP's Space Cadet v4.3.vpx
Searching for Game Launch Background in C:\PinCab\PinballY\Media\Videos.*
Searching for Game Launch Background in C:\PinCab\PinballY\Assets\Videos.*
Searching for Game Launch Background in C:\PinCab\PinballY\Media\Images.*
Searching for Game Launch Background in C:\PinCab\PinballY\Assets\Images.*
Searching for Launch in C:\PinCab\PinballY\Media\Button Sounds.*
Searching for Launch in C:\PinCab\PinballY\Assets\Button Sounds.*
+ table launch: executable: C:\PinCab\Visual.Pinball\VPinballX.exe
+ table launch: applying command line variable substitutions:
+ Original> /minimized /play -"[TABLEPATH]\[TABLEFILE]"
+ Final   > /minimized /play -"C:\PinCab\Visual.Pinball\Tables\JP's Space Cadet v4.3.vpx"
+ table launch: process launch succeeded

Re-scanning for all systems' table files due to application activation
+ scanning for table files: C:\PinCab\Visual.Pinball\Tables\*.vpx
Searching for Next in C:\PinCab\PinballY\Media\Button Sounds.*
Searching for Next in C:\PinCab\PinballY\Assets\Button Sounds.*
Searching for Select in C:\PinCab\PinballY\Media\Button Sounds.*
Searching for Select in C:\PinCab\PinballY\Assets\Button Sounds.*
+ table launch: Close Game command received
+ table launch: trying to close the game process
+ table launch: game exited normally
+ table launch finished successfully
Searching for underlay in C:\PinCab\PinballY\Media\Images.*
Searching for underlay in C:\PinCab\PinballY\Assets\Images.*
Searching for Default Playfield in C:\PinCab\PinballY\Media\Videos.*
Searching for Default Playfield in C:\PinCab\PinballY\Assets\Videos.*
Searching for Default Playfield in C:\PinCab\PinballY\Media\Images.*
Searching for Default Playfield in C:\PinCab\PinballY\Assets\Images.*
Searching for Default Playfield in C:\PinCab\PinballY\Media\Videos.*
Searching for Default Playfield in C:\PinCab\PinballY\Assets\Videos.*
Searching for Default Playfield in C:\PinCab\PinballY\Media\Images.*
Searching for Default Playfield in C:\PinCab\PinballY\Assets\Images.*
High score retrieval: getting high scores for JP's Space Cadet v4.3
High score retrieval: can't use PINemHi because this game isn't configured for a particular game player system
High score retrieval: looking for ad hoc scores file C:\PinCab\Visual.Pinball\Tables\JP's Space Cadet v4.3.pinballyHighScores
+ ad hoc scores file C:\PinCab\Visual.Pinball\Tables\JP's Space Cadet v4.3.pinballyHighScores doesn't exist
+ No high score source found for JP's Space Cadet v4.3
Searching for Default Backglass in C:\PinCab\PinballY\Media\Videos.*
Searching for Default Backglass in C:\PinCab\PinballY\Assets\Videos.*
Searching for Default Backglass in C:\PinCab\PinballY\Media\Images.*
Searching for Default Backglass in C:\PinCab\PinballY\Assets\Images.*
Searching for Default DMD in C:\PinCab\PinballY\Media\Videos.*
Searching for Default DMD in C:\PinCab\PinballY\Assets\Videos.*
Searching for Default DMD in C:\PinCab\PinballY\Media\Images.*
Searching for Default DMD in C:\PinCab\PinballY\Assets\Images.*

DOF (DirectOutput): initializing DOF client

DOF: creating DOF COM object (a23bfdbc-9a8a-46c0-8672-60f23d54ffb6)
DOF: got table mapping file: C:\PinCab\DirectOutput\tablemappings.xml
Searching for Select in C:\PinCab\PinballY\Media\Button Sounds.*
Searching for Select in C:\PinCab\PinballY\Assets\Button Sounds.*
Searching for Select in C:\PinCab\PinballY\Media\Button Sounds.*
Searching for Select in C:\PinCab\PinballY\Assets\Button Sounds.*

Table launch: JP's Space Cadet v4.3, table file JP's Space Cadet v4.3.vpx, system Visual Pinball X

DOF: shutting down DOF client
+ launch: full table path C:\PinCab\Visual.Pinball\Tables\JP's Space Cadet v4.3.vpx
Searching for Game Launch Background in C:\PinCab\PinballY\Media\Videos.*
Searching for Game Launch Background in C:\PinCab\PinballY\Assets\Videos.*
Searching for Game Launch Background in C:\PinCab\PinballY\Media\Images.*
Searching for Game Launch Background in C:\PinCab\PinballY\Assets\Images.*
Searching for Launch in C:\PinCab\PinballY\Media\Button Sounds.*
Searching for Launch in C:\PinCab\PinballY\Assets\Button Sounds.*
+ table launch: executable: C:\PinCab\Visual.Pinball\VPinballX.exe
+ table launch: applying command line variable substitutions:
+ Original> /minimized /play -"[TABLEPATH]\[TABLEFILE]"
+ Final   > /minimized /play -"C:\PinCab\Visual.Pinball\Tables\JP's Space Cadet v4.3.vpx"
+ table launch: process launch succeeded
+ table launch: Close Game command received
+ table launch: trying to close the game process

Re-scanning for all systems' table files due to application activation
+ scanning for table files: C:\PinCab\Visual.Pinball\Tables\*.vpx
+ table launch: game exited normally
+ table launch finished successfully
Searching for underlay in C:\PinCab\PinballY\Media\Images.*
Searching for underlay in C:\PinCab\PinballY\Assets\Images.*
Searching for Default Playfield in C:\PinCab\PinballY\Media\Videos.*
Searching for Default Playfield in C:\PinCab\PinballY\Assets\Videos.*
Searching for Default Playfield in C:\PinCab\PinballY\Media\Images.*
Searching for Default Playfield in C:\PinCab\PinballY\Assets\Images.*
Searching for Default Playfield in C:\PinCab\PinballY\Media\Videos.*
Searching for Default Playfield in C:\PinCab\PinballY\Assets\Videos.*
Searching for Default Playfield in C:\PinCab\PinballY\Media\Images.*
Searching for Default Playfield in C:\PinCab\PinballY\Assets\Images.*
High score retrieval: getting high scores for JP's Space Cadet v4.3
High score retrieval: can't use PINemHi because this game isn't configured for a particular game player system
High score retrieval: looking for ad hoc scores file C:\PinCab\Visual.Pinball\Tables\JP's Space Cadet v4.3.pinballyHighScores
+ ad hoc scores file C:\PinCab\Visual.Pinball\Tables\JP's Space Cadet v4.3.pinballyHighScores doesn't exist
+ No high score source found for JP's Space Cadet v4.3
Searching for Default Backglass in C:\PinCab\PinballY\Media\Videos.*
Searching for Default Backglass in C:\PinCab\PinballY\Assets\Videos.*
Searching for Default Backglass in C:\PinCab\PinballY\Media\Images.*
Searching for Default Backglass in C:\PinCab\PinballY\Assets\Images.*
Searching for Default DMD in C:\PinCab\PinballY\Media\Videos.*
Searching for Default DMD in C:\PinCab\PinballY\Assets\Videos.*
Searching for Default DMD in C:\PinCab\PinballY\Media\Images.*
Searching for Default DMD in C:\PinCab\PinballY\Assets\Images.*

DOF (DirectOutput): initializing DOF client

DOF: creating DOF COM object (a23bfdbc-9a8a-46c0-8672-60f23d54ffb6)
DOF: got table mapping file: C:\PinCab\DirectOutput\tablemappings.xml
Searching for Select in C:\PinCab\PinballY\Media\Button Sounds.*
Searching for Select in C:\PinCab\PinballY\Assets\Button Sounds.*
Searching for Prev in C:\PinCab\PinballY\Media\Button Sounds.*
Searching for Prev in C:\PinCab\PinballY\Assets\Button Sounds.*
Searching for Prev in C:\PinCab\PinballY\Media\Button Sounds.*
Searching for Prev in C:\PinCab\PinballY\Assets\Button Sounds.*
Searching for Prev in C:\PinCab\PinballY\Media\Button Sounds.*
Searching for Prev in C:\PinCab\PinballY\Assets\Button Sounds.*
Searching for Prev in C:\PinCab\PinballY\Media\Button Sounds.*
Searching for Prev in C:\PinCab\PinballY\Assets\Button Sounds.*
Searching for Prev in C:\PinCab\PinballY\Media\Button Sounds.*
Searching for Prev in C:\PinCab\PinballY\Assets\Button Sounds.*
Searching for Select in C:\PinCab\PinballY\Media\Button Sounds.*
Searching for Select in C:\PinCab\PinballY\Assets\Button Sounds.*

DOF: shutting down DOF client

Sonntag, 15. September 2024, 16:17:01: PinballY session ending
mjrgh commented 1 month ago

It's difficult to know what's causing a scripting error in a VP game without poring over the scripts, but if the same table works when launched under conditions A and crashes in a script when launched under conditions B, it narrows it down somewhat, since it almost certainly has to be some difference between the two launch conditions.

My first guess would usually be working directory, since a lot of VP scripts load other scripts, and VP will figure out where to look for those according to the current working directory. If the problem were that it couldn't find a script, though, I'd expect the error to say so (although you never know with VB - scripts can capture errors and hide them, so it's often the case that the REAL error isn't what it appears to be, that you only see a secondary error that occurs in the script that was attempting to handle the original error). Another possibility is that it's trying to read a setting from a file that it can't find, and it's the missing setting that's triggering the error.

When you do the command-line test, are you doing that from a CMD window or form a Windows+R "Run Program" box?

It might be helpful to contact the author of one of the tables and see if they can help diagnose the error at the scripting level. That might at least narrow down what we ought to be looking for on the PinballY side.

Zappo-II commented 1 month ago

...but if the same table works when launched under conditions A and crashes in a script when launched under conditions B, it narrows it down somewhat, since it almost certainly has to be some difference between the two launch conditions...

...that's exactly what I was trying to express in the first place...

When you do the command-line test, are you doing that from a CMD window or form a Windows+R "Run Program" box?

...from a freshly opened command window...

Zappo-II commented 2 weeks ago

OK, finally I got it figured out...

Nasty little bugger, this one

The Problem was, that my PinballY Instance was configured to run in Windows 7 Compatibility Mode (No Idea why that is / was) and Visual Pinball was configured to start "normally".

So the Tables (I was unable to identify the difference in the Tables that crashed and those who didn't) that crashed before, when launched by PinballY did not crash any more as soon as I configured PinballY to start also normally and not in Compatibility Mode any more.

THX for sharing PinballY and all your work for the virtual pinball community...

This issue was a miss configuration.

mjrgh commented 1 week ago

Glad you tracked that down! That is indeed a ridiculously subtle cause that would never have occurred to me - great detective work isolating it.

I'll have to check to make sure I'm not putting something in the .exe manifest that's triggering the Windows 7 Compatibility Mode setting, or leaving something OUT of the manifest that's causing it. Windows has gotten to be a real nightmare with these platform versioning issues - if the manifest doesn't have all of the right options set, Windows makes these crazy small changes to the way the APIs work just in case it's an old application that depends on some obscure bug in an old Windows version that they've since fixed. I guess it's good that they're trying to keep old applications working properly for longer when you upgrade to new Windows OS versions, but the number of combinations of things is just getting to be insane with all of these different bug-for-bug compatibility modes going back to XP, Vista, 7, 8, 8.1, 10, and now 11.