Today it was able to boot so while it was working I decided to reboot a couple of times. When I was on the multi menu if I counted to ten and then loaded a game ten out ten times it would boot.
Thank you for the feedback, you have hilighted the core of the problem
The original TypeX, X2 etc save configuration data to the D: disk. My original multi just placed all the files on the root of D with interesting results.
When
@Niko did his multi he used a different approach.
Using the subst mechanism in Windows he created a "substed" D: drive, like this.
Code:
C:\>subst D: c:\Raiden_III
C:\>subst
D:\: => C:\Raiden_III
One important thing to note is that in order to do accomplish this we need to
delete the D: drive.
Since the TypeX employs UWF (Read-only filter) on drive C: the D: drive will automagically be recreated when the system is booted.
So when booting up:UWF - Recreate drive D:
Start menu from c:\TtxMulti
The existing design uses a launch file which is written to drive D:
When you select a game in the multi a file is written to drive D: containing the game to launch, but since the system is "recreating" drive D: the file does not really exist on the disk, this is why you get the: no entity error.
There are other mechanisms we could use to select the game, pipe, drive c:\ but this method does not work with autoboot, autoboot must have a file written to a persistent disk.
I tried to move the launch file to a small partition called F: which worked a lot better but the problem moved to the subst command instead.
tl;dr
I need a program snippet which will tell me when drive D: has been recreated properly.
If anyone has a suggestion, I am all ears.
My next thing to try is using GetDriveType() to determine if it returns:
DRIVE_FIXED.
And if not wait a bit and retry until it is done, or just wait 7 seconds after starting