Added MAME exit code handler, deselecting games on play which are either not present or invalid (#26)
Preventing crash if screensaver exits before MAME has exited (#27)
Prevented crash due to user event handler not being disposed (#27)
Prevented crash when creating in-game layouts against an old gamelist.xml file, created when imperfect emulation turned on, but running when flag turned off (#25)
Refactored gameplay code out of MameScreen and into a new GamePlayManager
Added better shuffling algorithm (Fisher-Yates) for randomly selecting games
Changed DC release to more sensible FormClosing event.
Changed timers in MameScreen to use System.Timer.Timers as the previous timer was for forms and was quirky in some situations when attempting to reset.
Renamed Mamesaver to MameOrchestrator to better reflect its function
Correct unhandled exception handligng to use ThreadException handler
Centralised game exit code
Removed potentially red herring dialog display for unhandled / thread exceptions
I've tested all areas of the screensaver and everything seems to work fine, but I haven't given this an exhaustive work out.
This PR includes:
gamelist.xml
file, created when imperfect emulation turned on, but running when flag turned off (#25)MameScreen
and into a newGamePlayManager
FormClosing
event.MameScreen
to useSystem.Timer.Timers
as the previous timer was for forms and was quirky in some situations when attempting to reset.Mamesaver
toMameOrchestrator
to better reflect its functionThreadException
handlerI've tested all areas of the screensaver and everything seems to work fine, but I haven't given this an exhaustive work out.