Most of the codebase implements Encodable/Decodable now, with the
exception of the BIOS, CD image and gamepads. The BIOS checksum is
stored however, in order for the frontend to know which file to load.
It's far from perfect but it handles processing commands while we're
reading disc sectors without missing an interrupts.
Enough to reach Spyro's start screen (NA version).
The timings are tweaked because it seems our emulator is too fast at
this point: the BIOS attempts to start a new request while the
previous one is still in progress. This will have to be fixed later as
we become more accurate.
Only the original digital controller is supported for now.
The frontend supports keyboard and controllers through SDL2 for input.
Only free-run mode is implemented, no interrupts.
Using the GPU's dotclock or HSync as a timer source is implemented
although it requires further testing.