Ideas to sychronize the cpus (emulators)
I have read about the problem of transferring information between the two processors.
Couldn't you just do a manual sychronization first, without transferring info between the cpus.
Like display fps infromation for both sound and the graphics, then speed up one to match the other.
Or
run the graphics section with a cap on it, like maxfps is 20 fps, and then manually adjust sound to match that.
Or
a memory compensation algorithm can be used to that process the graphics 10x or so ahead of the sound, and convey all the sound information for those frames to the other processor, which then produces the sound and outputs it with the graphics frames that have been cached from earlier ready to output.
The other frames after those cached can be stored in non-cached or slower memory and then streamed to the cache memory( with their sound info sent over to the other processor) for output,as the other frames are displayed.
Well Im not sure if these have been tried already, and maybe they can help someone.