Commit graph

9 commits

Author SHA1 Message Date
Lionel Flandrin
2d26e5fb60 Added savestate support by implementing Encodable/Decodable
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.
2016-06-07 23:12:55 +02:00
Lionel Flandrin
648a5ae4ea Rewrite most of the CD controller code to be more accurate 2016-05-24 21:58:51 +02:00
Lionel Flandrin
a16dc1a9c3 Convert Rustation into a library, remove all the SDL2 and OpenGL code
The OpenGL code has been ported to the rustation-libretro repository.
2016-01-27 17:40:34 +01:00
Lionel Flandrin
4b4a6062ca Better handle asynchronous events in the CDROM controller
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).
2015-11-11 00:46:38 +01:00
Lionel Flandrin
0841d53080 Basic CDROM XA support: support reading of Mode 2 Form 1 sectors. 2015-09-27 20:18:30 +02:00
Lionel Flandrin
0f2322df8a Implemented gamepad emulation.
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.
2015-09-12 20:34:38 +02:00
Lionel Flandrin
79220727b1 Add support for timer "target" interrupt 2015-08-30 17:07:38 +02:00
Lionel Flandrin
f905862869 Added basic timer support
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.
2015-08-16 17:09:34 +02:00
Lionel Flandrin
6de5dad543 Implement basic GPU timings 2015-07-13 19:50:48 +02:00