[SharpMZ] Emulator v Linuxu - snad uz neskyta

Michal Hucik - ORDOZ ordoz na ordoz.com
Čtvrtek Srpen 11 18:00:01 CEST 2016


Ahoj,

po dlouhe dobe jsem zase trochu ladil emulator. Snazil jsem se prijit na 
to, proc zvuk v Linuxu tolik "ĹĄkyta". Zjistil jsem, ze pulseaudio si 
narozdil od bufferu ve WIN32, loaduje data v takovych intervalech, jake 
se mu zrovna hodi. Prepsal jsem tedy malinko synchronizaci snimku se 
zvuknou. Vysledkem je, ze emulator sice nebezi stale ve 100% 
synchronizaci s realnym Sharpem, ale aspon je stale synchronni se zvukem.

Podle toho jak jsem to tu u sebe zkousel, tak obcas se nejake skobrtnuti 
ozve - zrejme i v zavislosti na tom, jak se pocukava cely system. 
Spoustim to totiz navic ve virtualizovanem desktopu. Zkousel jsem vsak 
nekolik her a zvuk mi u nich prakticky neskobrtal a to dokonce ani kdyz 
jsem si zapnul debugger s povolenou animaci stavu registru a pameti.

Zmenu v synchronizaci jsem udelal globalne pro WIN32, i pro Linux verzi. 
Ve WIN32 to nyni zda-se bezi stale stejne, jako predtim. V Linuxu to 
melo ovsem takovy side efekt, ze po ALT+P, kdy po dobu pausy chodily do 
zvukoveho bufferu same nuly se pulseaudio zblazni a zacne pak prekotne 
loadovat, takze treba 5 vzorku (snimku) projde strasne rychle, jako 
kdyby emulator chtel dohnat co v dobe pauzy zameskal :)
Vyresil jsem to zatim tak, ze jsem bajocko od pasu zkusil pribrzdit 
vsechny snimky, ktere byly dokonceny drive, nez za 17 ms pomoci usleep().

Pokud se budete chtit podivat jak to vypada bez usleep() synchronizace, 
tak v souboru ./src/iface_sdl/iface_sdl_audio.c zakomentujte 27. radek s 
obsahem "#define USE_USLEEP_SYNC ".

Kdyz tak mi dejte vedet, jak to ted u vas skyta, ci neskyta...

Michal

------------- další část ---------------
HTML příloha byla odstraněna...
URL: http://mail.ordoz.com/pipermail/sharpmz/attachments/20160811/3ce03c95/attachment.html 


Další informace o konferenci SharpMZ