I wonder if regular CDDA playback still works in the PCE music player then.
I think 'basic' cases are fine, it just seems to be cases where it wants to do something else as well.
I was looking over the video timing in the driver, and it seems a bit strange.
The LCD seems to be taken into account for the video timing, however, if it's not an actual feature of the video chip, as posts here seem to suggest, that doesn't make much sense to me.
Of course you can just hide the first 22 lines, as you did before, but if it's another device controlling the LCD then the processing that happens on scanline 22 in mcd212_perform_scan should really be happening in scanline 0, at the same time as the LCD output, but with the LCD output writing to a different screen bitmap.
However, moving the code around just breaks it completely, as the processing done at line 0 right now can't happen at the same time as the processing done at line 22, even if line 22 seems to just be some arbitrary line based on the LCD height.
There might be a logical reason for all this (ie the same video chip really draws the LCD), I'm just not really understanding it.
It also strikes me that the current timer system could quite easily cancel out previous timers if commands are sent quickly, which may or may not be desired... Does MAME/MESS provide a way of seeing if a timer has cancelled one which was already running? I guess some commands could quite easily be being lost that way...