furrtek (./6) :
-soit on fait comme au ciné, on met un "bip" de synchro au tout début de la piste audio, qui dure au moins 30ms (1 frame). Comme ça le programme démarre, réclame la piste audio, et attend qu'il n'y ait plus de silence dans le stream audio avant de démarrer la démo. Vraiment curieux de voir si ça fonctionnerait.
Ça me paraît la solution la plus fiable ; avec une table de délai, je suis pas convaincu que tu puisses éviter une désynchro le jour où le CD aura décidé de réagir un peu plus vite ou plus lentement que la moyenne (ça reste de la mécanique complexe avec plein de facteurs...).
Note que si tu as accès aux valeurs audionumériques brutes (et pas juste à l'amplitude), tu n'as pas besoin d'un bip, par exemple des échantillons qui valent 0x0001 seront perçus comme du silence par l'oreille et c'est plus propre

(autre solution : mettre le son du CD en mute tant que la synchro n'est pas faite, mais je ne sais pas si c'est possible sur NeoGeo CD)