Closed mrmwiebe closed 7 years ago
Ah good to know you're aware of this and working on it! I was about to open an issue :)
The question is how to differentiate between Soft and Hard Oopses. If the game won't launch (after a timeout maybe) or just crashes, that's a Soft Oops, and users should be able to go back to the selection when pressing ESC (right now the launcher just quits I believe).
But what about games that leave the system in some weird state? E.g. N Arcade changed the display resolution on our machine and then ran invisible in the background (you could hear the game sound effects but didn't see the game, it was only visible in the task manager). Is that a "Hard" Oops?
The goal is to not require mouse/keyboard intervention ever. A machine that is 100% usable and stable through the control panel buttons/sticks alone, right?
Right now the only way to achieve that is to manually curate games by testing them on another machine for critical errors / correct behavior (no startup dialogs etc) before adding them to a Winnitron.
Related question: Should the launcher be able to restart itself in case it crashes? (kinda-malware-like behavior, I can imagine this backfiring in unexpected ways)
Yep, trying to make it require as little mouse/keyboard as possible. We won't get 100% there, but we can try to get close as possible!
I think I'm going to call these an Oops and Critical Oops. Basically, Critical Oops is for conveying an improperly configured Winnitron installation that prevents it from running properly. So, things like "hey I can't find the options.json which I need to run, please figure that out then relaunch".
A normal Oops is for things that are happening after the Winnitron is running that doesn't affect the running of the launcher. So, "hey I can't find the executable for this game, please let the owner of this winnitron know so they can fix it, but go ahead and try a different game" and you hit a button, the launcher restarts and you can pick another game.
I think it'll be too difficult to try and figure out every state that a game may take when launching like resolution dialogs etc, so I'm going to limit the launcher to checking if it can find and launch the .exe and then give you the ability to force quit the games by holding Home (see issue #31 ) so that should take care of any pesky weird states.
For times when you want the user to know something but continue to use the launcher, there should be an Oops screen you can just press ESC and re-launch the launcher. A "Soft" Oops.
But for mission critical errors, you need one that quits the launcher. A "Hard" Oops.