<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<font size="+1">Ahoj,<br>
<br>
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 </font><font size="+1"><font size="+1">narozdil od
bufferu ve WIN32, </font>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.<br>
<br>
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.<br>
<br>
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 :)<br>
Vyresil jsem to zatim tak, ze jsem bajocko od pasu zkusil
pribrzdit vsechny snimky, ktere byly dokonceny drive, nez za 17 ms
pomoci usleep().<br>
<br>
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 "</font><font size="+1"><span
class="cp">#define USE_USLEEP_SYNC </span>".<br>
<br>
Kdyz tak mi dejte vedet, jak to ted u vas skyta, ci neskyta...<br>
<br>
Michal<br>
<br>
</font>
</body>
</html>