I have fixed (once again) some regressions I had introduced with the new logging system, as well as bugs in the SPU library and GPU macros. I've also rewritten libpsxsio, which now has a proper asynchronous serial port API with ring buffers usable alongside or in place of accessing registers directly, and removed _sio_control() as it was mostly just an inefficient wrapper around the raw registers with no added value.
Sound examples have also been refactored entirely. sound/spustream is now split into two separate examples, one for RAM streaming and the other for CD streaming, both using the standard interleaved .VAG format (as used on the PS2). Both have been tested on real hardware, unlike the previous one which was completely broken. Unfortunately I haven't yet managed to figure out why the .STR FMV playback example gets stuck on real hardware despite working perfectly fine in every emulator I tried; it looks like some kind of timing issue with the CD drive and MDEC, which should be further investigated.
I have fixed (once again) some regressions I had introduced with the new logging system, as well as bugs in the SPU library and GPU macros. I've also rewritten
libpsxsio
, which now has a proper asynchronous serial port API with ring buffers usable alongside or in place of accessing registers directly, and removed_sio_control()
as it was mostly just an inefficient wrapper around the raw registers with no added value.Sound examples have also been refactored entirely.
sound/spustream
is now split into two separate examples, one for RAM streaming and the other for CD streaming, both using the standard interleaved .VAG format (as used on the PS2). Both have been tested on real hardware, unlike the previous one which was completely broken. Unfortunately I haven't yet managed to figure out why the .STR FMV playback example gets stuck on real hardware despite working perfectly fine in every emulator I tried; it looks like some kind of timing issue with the CD drive and MDEC, which should be further investigated.