Hello Executioner,
Following your advice in this post, I've implemented the SNR emulation in my emulator CPCEmuPower.
Now it is working fine, but sometimes 1 frame is missing before the start of the SNR and sometimes during the execution of the SNR there is a frame drop / desynchronization...
So I have a few questions not documented here :
a) in the chunk 'SNR '
after the 10 bytes of 'initial keyboard state', there is 0x48 (=72) bytes of data, what is it exactly ? Mouse and RTC Init or synchronisation block ? I really don't understand what is it for !
b) what is exactly synchronisation block (BLS&0x80) for ?
you said that to avoid emulator specific stuff, the keys are taken when GateArray send VSYNC to the monitor... So what to do with this information which seems to be internal specific emulation of WINAPE
c) when BLS==0x80, is it ok that it's only a 'synchronization block' with only 4 bytes then following the bytes (1 or 1+2 if first was 0) of the frameCounter ? no key stroke after in this case ?
d) when BLS = 0xff, is it ok that it's only a 'synchronization block' + ((BLS&0x7f)==0x7f) 'repeat inverse last key values' ?
then following the bytes (1 or 1+2 if first was 0) of the frameCounter ? no key stroke after in this case ?
Thanks in advance to your help.
I will publish my code here to help others emulators writers to implemente SNR playback if it's working in another emulator than WinAPE ;-) finaly !