Introduces inversion of control for more of the UI code.
Rationale behind Changes
Centralizes dependency management in Program.cs.
Centralizes lifetime management in Program.cs
Makes the code base easier to change for the UI and internal debugger.
The next step will be the emulator project.
Suggested Testing Steps
Test existing overrides, and supported games, and report regressions, if any.
This should not introduce any.
If there are some, it means that some lifetime choices (Singleton vs Scoped vs Transient) were in error.
Description of Changes
Introduces inversion of control for more of the UI code.
Rationale behind Changes
Centralizes dependency management in Program.cs. Centralizes lifetime management in Program.cs Makes the code base easier to change for the UI and internal debugger.
The next step will be the emulator project.
Suggested Testing Steps
Test existing overrides, and supported games, and report regressions, if any. This should not introduce any. If there are some, it means that some lifetime choices (Singleton vs Scoped vs Transient) were in error.
Status: Done.