1

Hej,
W nowej wersji emulatorka pojawiły się (przynajmniej u mnie) problemy.
Pomyślałem, że zacznę ten wątek tutaj, może inni się też wypowiedzą - wtedy Tomkowi łatwiej byłoby zlokalizować potencjalne błędy.
Otóż wygląda na to, że nowa metoda 'synchronizacji do ramki' może powodować maksymalne wykorzystanie czasu procesora, w efekcie prowadząc do różnych dziwnych rzeczy.
U mnie takie coś się pojawia, jeżeli mam:
- GDI wyłączone
- synchro do ramki włączone
- desktop 100 Hz
- nie jest to problem wydajności procka, normalnie mam (w powiększonym okienku) 500-600% przy full-speed.
Synchronizować się synchronizuje super, ale nie da się robić nic innego w tym czasie.
Z GDI włączonym nie ma synchronizacji ofkorz.
Jeszcze jedna uwaga - przy 'full-speed' mode, nie powinno się synchronizować chyba, nie? :)

Inny problem, który dopiero zauważyłem, to to, że przy GDI wyłączonym, czyli rysowaniu przez DXa następuje rozmycie tekstury przy powiększonym ekranie - jest to prawdopodobnie spowodowane sprzętowym filtrowaniem. W OpenGLu (na DX się nie znam) można je wyłączyć, więc może i tu by się udało.

Poza tym, milusie :)

: 404. Stopka not found

2

A ja mam inny problem. Bardzo długo mi sie uruchamia emulator. Działo się tak także w starszych wersjach emulatora. Wszystko na WinXP. uruchamianie potrafi trwać nawet 20-30 sekund. Dzieje sie to nawet na swieżo zainstalowanym Windowsie. W czym moze byc problem?

3

Ja zauważyłem tylko jedną rzecz - załączcie sobie River Raida :) Tuż po rozpoczęciu rozgrywki następuje kolizja samolotu z powietrzem...

Nie znam się na emulacji itp. tylko tak zgłaszam... Póki co kożystam ze starszej, sprawdzonej wersji.

4

Musisz używać wcześniejszej beta wersji, bo w trzeciej jest już OK.

5

Ja używam pierwszej wersji 4.0 beta i też mam problem z river raidem

6

SQT: przeczytaj uwaznie co napisal mariuszbox, ok? :twisted:

: 404. Stopka not found

7

Witam,

Synchronizacja do ramki jest w PLusie możliwa tylko dla trybów DirectDraw (zarówno pełnoekranowych, jak i okienkowych). Sposób jej realizacji może być różny w zależności od konfiguracji konkretnej maszyny oraz ustawień opcji emulatora. Ogólna zasada jest taka, że przy aktywnym "Synchronize blits with monitor vertical refresh" i częstotliwości odświeżania monitora powyżej 85Hz, emulator "wyświetla" kolejny ekran emulowanej Atarynki co drugą ramkę.

1. W najlepszej sytuacji są użytkownicy kart graficznych wspierających funkcję przełączania buforów z pominięciem co drugiej ramki. PLus  w oknie logu (Misc/View log file) informuje o dostępności takowej ("Can delay a flip: (yes|no)"). W celu jej wykorzystania konieczne jest zainstalowanie DirectX 7.0 i wybranie "Use flipping surfaces for fulscreen modes" w oknie "Advanced Graphics Options". Emulator wykorzystuje w tym trybie 3 bufory, które są przełączane przez DirectDraw podczas przerwania synchronizacji pionowej.
2. Jeśli wspomniana wyżej funkcja nie jest przez sprzęt/sterownik wspierana, trzeba będzie pogodzić się z gorszą wydajnością (2 razy więcej blitów przy 100Hz), jednak pozostanie przy "Use flipping..." nadal wydaje się dobrym pomysłem (zauważalnie większa płynność niż przy "Blit from display memory...").
3. "Blit from display memory to primary surface" to wariant najmniej godny polecenia. W tym przypadku emulator czeka na rozpoczęcie VBI i dopiero wtedy wykonuje blit na ekran z przygotowanego wcześniej bufora (a czasu ma na to niewiele). Szczęśliwie przy 100Hz blity wykonywane są co dwie ramki.

Punkty 1-2 dotyczą tylko trybów pełnoekranowych, metoda opisana w punkcie 3 może być wykorzystywana w trybach pełnoekranowych i jest jedyną możliwą w trybach okienkowych. W Windows 2000 i wyższych (być może także 98 ) znacznie poprawiono wydajność GDI, dlatego zachęcam do używania "GDI for windows", chyba że komuś bardzo zależy na synchronizacji również przy pracy w okienku. Wówczas jednak należy zadbać o to, by ustawić odświeżanie okna pulpitu na 100Hz (PAL).

Tak na marginesie: czasem może się okazać, że synchronizacji nie ma pomimo włączenia odpowiednich opcji w emulatorze. Trzeba pamiętać, że producenci kart często dają możliwość wyłączenia synchronizacji z poziomu sterowników. Warto więc sprawdzić w zaawansowanych opcjach sterownika - lub przy użyciu innego oprogramowania - czy możliwość uzyskania synchronizacji nie została wyłączona "centralnie". Łatwo sprawdzić, czy karta pozwala na synchronizację z VBLK - jeśli dla "Refresh rate" = 1 włączenie 'full speed' powoduje znaczne przyspieszenie pracy emulatora, to znak, że podsystem video jest źle skonfigurowany (wywołania WaitForVBLK są ignorowane). Tryb 'full speed' jest bowiem również synchronizowany (czasem ma to swoje zalety), a podstawową niedogodność (tj. ograniczenie maksymalnej prędkości przez częstotliwość pracy monitora) można łatwo usunąć, ustawiając "Full speed mode refresh rate" w "Performance Options" na wartość większą od 1.

Skąd biorą się zgłaszane problemy z wydajnością? Szczerze odpowiem, że nie wiem. Prawda jest taka, że co inna karta graficzna/sterownik/instalacja Windows, to inne problemy :-) Jeden z moich znajomych skarżył się kiedyś, że emulator wyciąga ledwie 60% w trybie pełnoekranowym na jego nowiuśkim marketowym PC. Okazało się, że pomogło włączenie interpolacji (View/Stretching/Smooth), bowiem procesor 350MHz był w stanie znacznie szybciej wyrysować docelowy obraz "ręcznie", niż karta graficzna dokonać blitu ze skalowaniem (prawdopodobnie brak wsparcia sprzętowego + kiepska emulacja programowa). Inny użytkownik emulatora skarżył się, że po przejściu do trybu pełnoekranowego na ekranie pojawiają się ikony pulpitu, a kliknięcie myszką powoduje przełączenie do tegoż. Takie zachowanie udało mi się zaobserwować dopiero pod Windows XP po zainstalowaniu najnowszych sterowników. Jeszcze inne problemy, również związane z wydajnością, zgłaszał mi swego czasu Fretless... Wówczas również nie miałem pomysłów, jak mu pomóc.

Eru: Dziwią mnie odnotowane przez Ciebie problemy. Być może - tak jak piszesz - oczekiwanie na VBLK jest na Twojej maszynie z jakichś powodów bardzo procesorożerne... Jaki masz sprzęt? Wersję DirectX? Sterownik karty, jak się domyślam, najświeższy? Nie masz czasem uaktywnionej opcji "Misc/Preferences/Run at high priority"?

LewiS: Nie mam pomysłów. Uroki Windows na konkretnym sprzęcie? Czasem otwarcie okienka wyboru plików potrafi trwać kilkanaście sekund. Mam wrażenie, że Windows przeczesuje wtedy cały Internet. Oczywiście nie jest wykluczone, że to jakiś błąd w PLusie, jednak do tej pory nie zetknąłem się z takim problemem.

Podsumowując: zachęcam do eksperymentowania. Pomóc może np. zmiana "Display memory type" na "System", "AGP" lub "Video". Ja np. po ustawieniu typu pamięci na "Video" nie mogłem uzyskać synchronizacji pod Windows 2000 (pomogło przełączenia na "System"; pod XP na tym samym komputerze synchronizacja działa jak należy także dla "Video"...). Wybranie "Video" skutkuje też często rozmyciem tekstury w podwójnym okienku, o czym pisze Eru. Wiem, że można o to DirectDraw przy blicie jawnie poprosić, jednak pojęcia nie mam, jak to wyłączyć (być może uda mi się o tym doczytać).

Pozdrawiam,
Tomek

Często bywam leniwy, ale za to intensywnie sypiam

8

nie chcecie miec problemow, uzywajcie markowych czesci

u mnie wszystko smiga, tylko dlatego ze mam Intela w parze z Nvidia  :twisted:  ;)

p.s.
Lewis zmien AMD na Intela

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

9

tebe a widzisz a ja mam AMD+ATi i rowniez wszystko smiga : - ) adidasie jeden ^^;

rozmycie textury na 90% da sie wylaczyc, kiedys w jakims uzytko to zrobilem (ło ile dobrze pamietam), nie pamietam, tez w sumie nie znam sie na DX'ach, Laoo-chan sie zna, zamesgne go, aby cos tu poklikal.

10

To ja teraz powiem cos madrego :)

-- UWAGA -- INFORMATYCZNY BELKOT PONIZEJ -- UWAGA --

Rozmywanie tekstury jest efektem filtrowania w tym przypadku poprzez interpolowanie wartosci sasiednich tekseli. W DXach odpowiada za to metoda IDirect3DDevice9::SetSamplerState (8 tez da rade ;) ). Gdy nie chcemy zadnego filtrowania powinno wystarczyc


g_pd3dDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_NONE);

gdzie pierwsze zero to indeks tekstury ktorej filtrowanie zmieniamy, D3DSAMP_MAGFILTER mowi, ze chcemy cos od filtrowania powiekszonych tekseli (Magnification filter), a trzeci parametr, to ze nie chcemy zadnego filtrowania. Standardowo jest tu bodajze D3DTEXF_LINEAR. Stad te problemy.

-- UWAGA -- KONIEC INFORMATYCZNEGO BELKOTU -- UWAGA --

DXy róló. GieeLe sa dla lameruff  ;)

11

A u mnie beta 3 niestety ma duze problemy - w momencie startu na ekranie emulatora pojawiaja sie "zagubione piksele" po czym maszyna sie wiesza - na Alt+Ctrl+Del reaguje po okolo 20 sekundach i moge ja spokojnie zkillowac proces, ale faktem jest ze nie chce dzialac :/
Owe "zagubione piksele" to takie "kaszanowate" grupki pikseli, efekt jakby randomem cos na ekran rzucac, taka kolorowa cieczka.

Pozostale wersje emulca chodzily zawsze stabilnie i nie bylo z nimi zadnych problemow (3.1, 4beta1, 4beta2).
Moje cfg to Athlon 1GHz, 256 MB RAM, GeForce 256, system Windows 2000 SP3 + DirectX 9, rozdzielczosc pulpitu 1024*768 100Hz, emulator w trybie podwojnego okna (zawsze w tym trybie dzialal dobrze)

12

Owe "zagubione piksele" to takie "kaszanowate" grupki pikseli, efekt jakby randomem cos na ekran rzucac, taka kolorowa cieczka.

U mnie tez sie czasem cos takiego pojawia, ale nie powoduje powieszenia  emulatora, ot pojawia sie i znika :)

13

Ha! Po weekendowych wielkich bojach z Winda (zwisy bez przyczyny niezwiazane z emulem) okazalo sie, ze mam cos zjhebane z tablica partycji na dysku. Po wywaleniu w kosmos wszystkich partycjji i po postawieniu windy od nowa wszystko śmiga aż miło. I emulator uruchamia się jak trzeba.
Harry: czy powalone cos z partycjami moze wplywac na czas otwierania sie emulatora?

14

Wszystkim grzybiarzom polecam dokladne przetestowanie pamieci, a potem wymiane jej na firmowa :).
Tylko dobry program zastosujcie np. www.simmtester.com . Mozna sie naprawde zdziwic, czesto jest to jeden bit w obszarze 512MB i to zmieniajacy wartosc w okreslonych warunkach.

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.

15

Akurat pamiec testowalem pare razy Gold Memory i bylo OK.

16

Znalazłem jeszcze jeden chyba błąd w emulgatorze - otóż scrollowanie działa w trybach GTIA z dokładnością do 1 pixela trybu 15go. W rzeczywistości z tego co pamiętam, jest to niemożliwe normalnie, dlatego m.in. powstał HIP.

: 404. Stopka not found

17

Mnie dobrze działa emulator tylko nie umnie przegrać zwykłej kasety z grą na turbo. Jednyie ze standardu na standard.