Had to refactor a decent bit in order to support running the program
without a running emulator. Now will open with the menu bar selected to
help indicate that a rom should be opened. Some day it might be nice to
just render something into vram to show on the screen instead, but
that's a future issue.
Also added screen clearing between frames, although this might break
blending. Will need to revisit. This allows imgui to render properly
when no emulator is rendering, though.
Finally, I made it clear settings between roms, since the options for
syncing, blending, etc were getting out of sync with the actual state of
the emulator. In the future, I should make sure that these are tied into
actual emulator state.
Now the Frontend drives the Emu, which is wrapped with an Accessor which
will eventually define which actions are available per Emu, and wrap
around calls into that Emu.
Added the ability to pause and toggle audio syncing from the menu bar.
The next step will be abstracting features between the two, like the
scheduler, apu, display, and anything else than can be abstracted. Once
this is abstracted, I can go back to trying to fix the CryBoy APU that
started having trouble once it was on the scheduler. This will ensure
consistency between the two projects.
simply comment out the default PC value to run the bios. I've left it
disabled because that's not the source of my inaccuracy, and it's
annoying to look at every time :p