Wstęp
W dzisiejszych rozważaniach przyjrzymy się bliżej pluginowi P.E.Op.S. Soft Driver, który zarówno pod względem kompatybilności jak i niskiemu pochłanianiu zasobów komputera czy nawet jakości wyświetlanego obrazu w dwuwymiarowych grach stanowi doskonałą alternatywę dla używanych powszechnie wtyczek autorstwa Pete`a.
Wymagania
Jako, że plugin nie wykorzystuje dobrodziejstw akceleracji graficznej do jego obsługi wystarczy karta graficzna wyposażona w 2MB pamięci, zdolna do wyświetlania obrazu w 16 lub 32-bitowej palecie kolorów. Co się tyczy systemów Linux, sprawą oczywistą jest że wtyczka do prawidłowego działania wymaga środowiska graficznego X.
Instalacja
Podobnie jak w przypadku większości pluginów instalacja wtyczki pod systemami Windows ogranicza się do rozpakowania pliku *.dll z archiwum do podfolderu PLUGINS emulatora. Jeśli chodzi o systemy Linux to sprawa jest troszkę trudniejsza gdyż oprócz skopiowania pliku „libgpuPeopsSoftX.so.1.0.x” do folderu z pluginamy należy również skopiować plik konfiguracyjny „gpuPeopsSoftX.cfg” do głównego katalogu emulatora (ew. do katalogu domowego).

Konfiguracja
P.E.Op.S. Soft Driver oferuje następujące opcje konfiguracyjne:
Rendering device – plugin umożliwia wybór karty graficznej za pomocą, której wyświetlany będzie obraz. Opcja skierowana dla osób posiadających więcej niż jedną kartę grafiki np. GF2 w slocie AGP jako podstawową kartę i VooDoo 1/2/3 w slocie PCI jako dodatkowy akcelerator.
Resolution & Colors – sekcja pozwala wybór kilku parametrów pracy wtyczki wideo tj.:
- Tryb pracy – pełnoekranowy (fullscreen mode) bądź wyświetlanie obrazu w oknie (window mode).
- Rozdzielczość – dla trybu pełnoekranowego mamy możliwość wybrania optymalnej rozdzielczości za pomocą rozwijanego pola zawierającego wszystkie tryby obsługiwane przez naszą kartę / monitor. Natomiast dla trybu pracy w oknie możemy samodzielnie zdefiniować rozdziałkę wpisując w sekcji „Size” odpowiednie wartości np. 640×480 lub 800×600.
- Kolor – liczbę dostępnych kolorów możemy wybrać z okienka „Color depth”, przy czym warto zwrócić uwagę na fakt, że dla uzyskania lepszej prędkości emulacji bądź w przypadku korzystania z kart VooDoo 1 & 2 głębia kolorów powinna zostać ustawiona na wartość 16 Bit.
Stretching – w najprostszym przypadku opcja pozwala na rozciągniecie obrazu do wielkości okna / ekranu, jednakże w przypadku wtyczki P.E.Op.S. mamy również do wyboru kilka zaawansowanych trybów filtrowania obrazu znacząco polepszających jakość wyświetlanej grafiki. Tak oto wybrać możemy pomiędzy następującymi trybami:
- Stretch to full window size – rozciągniecie obrazu do wielkości okna, brak dodatkowych efektów/filtrów.
- Scale to window size – skalowanie obrazu do wielkości okna z zachowaniem PSXowych proporcji (wielkość obrazu w pionie >> w poziomie), brak dodatkowych efektów/filtrów.
- [Super]2xSAI stretching – filtrowanie tekstur oparte na algorytmie [Super]2xSAI (wygładzenie tekstur) z dodatkowym rozciągnięciem obrazu do wielkości okna. Opcja wymaga szybkiego CPU.
- [Super]2xSAI unstretched – filtrowanie tekstur oparte na algorytmie [Super]2xSAI (wygładzenie tekstur) bez rozciągania obrazu do wielkości okna. Opcja wymaga szybkiego CPU.
- SuperEagle stretching – filtrowanie tekstur oparte na algorytmie SuperEagle (wyostrzanie tekstur) z dodatkowym rozciągnięciem obrazu do wielkości okna. Opcja wymaga szybkiego CPU.
- SuperEagle unstretched – filtrowanie tekstur oparte na algorytmie SuperEagle (wyostrzanie tekstur) bez rozciągania obrazu do wielkości okna. Opcja wymaga szybkiego CPU.
- Scale2x stretching – filtrowanie tekstur oparte na algorytmie Scale2x (wygładzenie tekstur) z dodatkowym rozciągnięciem obrazu do wielkości okna. Opcja wymaga szybkiego CPU.
- Scale2x unstretched – filtrowanie tekstur oparte na algorytmie Scale2x (wygładzenie tekstur) bez rozciągania obrazu do wielkości okna. Opcja wymaga szybkiego CPU.
Dithering – algorytm umożliwiający wyświetlenie większej liczby kolorów, niż pozwala na to sprzęt graficzny. Cel ten osiągany jest przez ułożenie (zmieszanie) kilku sąsiadujących pikseli w kolorach z palety w regularny wzór, który symuluje „brakujący” kolor. W ten sposób poszczególne przejścia pomiędzy poligonami ulegają wygładzeniu, a jakość wyświetlanej grafiki znacząco wzrasta. W pluginie P.E.Op.S. Soft Driver do wyboru mamy trzy tryby ditheringu:
- No dithering – brak ditheringu = najszybszy tryb / najszybsza emulacja.
- Game depended – dithering zostaje aktywowany jedynie w przypadku gier, które tego wymagają (czyt. wykorzystują instrukcje związane z tym algorytmem).
- Always – plugin wykorzystuje dithering przez cały czas swojego działania, dzięki czemu jakość wyświetlanego obrazu stoi na bardzo wysokim poziomie, ale spadek prędkości emulacji jest widoczny na słabszych sprzętach.
Framerate – to zestaw funkcji odpowiedzialnych za szybkość wyświetlanej animacji w jej skład wchodzą następujące opcje:
- Transparent FPS display – zaznaczenie opcji spowoduje wyświetlanie podręcznego menu jako samego tekstu (bez obramowania).
- Show FPS display on startup – znaczenie opcji spowoduje wyświetlanie podręcznego menu zaraz po uruchomieniu gry.
- Key configuration – pozwala zmienić domyślną klawiszologię odpowiedzialną za obsługę menu podręcznego wtyczki graficznej.
- Use FPS Limit – znaczenie opcji spowoduje ograniczenie prędkości emulacji do zadanej wartości, przy czym dodatkowo należy wybrać jeden z dwóch poniższych wariantów.
- Autodetect FPS – ograniczenie prędkości wyświetlanej grafiki dobierane automatycznie przez emulator z uwagi na lokalizację (PAL / NTSC) danej gry.
- FPS limit (10-200) – ręczne zdefiniowanie ilości wyświetlanych klatek na sekundę w przedziale od 10 do 200 fps`ów. Domyślnie wartość powinna wynosić 50 dla gier w systemie PAL i 60 dla NTSC.
- Use Frame skipping – umożliwia automatyczne pomijanie pewnego zakresu klatek animacji w celu zwiększenia prędkości emulatora.
Na pozostałe opcje (Options) konfiguracyjne pluginu składają się:
- Scanlines mode – tryb przeplotu, czyli znane z TV wyświetlanie co drugiej linii obrazu dostępne w trzech wariantach: „disabled – czyli opcja wyłączona, ”„standard” – dla większości przypadków oraz „double blitting” – dla kart firmy nVidia, które mają problemy z poprzednim trybem.
- Use system memory – włączenie opcji spowoduje wykorzystywanie pamięci operacyjnej komputera jako bufora karty graficznej, w rezultacie, czego zniknie kilka fps`ów, ale wraz z nimi ulotni się pełnoekranowe filtrowanie na kartach nVidii.
- Wait vsync – synchronizuje prędkość wyświetlanej grafiki z częstotliwością odświeżania monitora. Opcja może spowodować zwolnienie animacji, ale dokuczliwe smużenie ekranu na pewno zniknie.
- Stop screen saver – wyłącza wygaszasz ekranu oraz zarządzanie energią w czasie pracy wtyczki. Opcja nie działa pod systemami Win95 i WinNT 4, na których powoduje pad systemu.
- Debug mode – uaktywnia kilka opcji przydatnych programistom i beta-testerom.
Podobnie jak w większości dostępnych wtyczek wideo również i w P.E.Op.S. Soft Driver występuje sekcja Special game fixes zawierająca „łatki” dla problematycznych gier, a są to.:
- Odd/even bit hack – umożliwia poprawną obsługę gry Chrono Cross pod ePSXe 1.5.2.
- Expand screen width – umożliwia wyświetlanie pełnego obrazu w dwuwymiarowych bijatykach ze stajni Capcom`u.
- Ignore black brightness color – umożliwia poprawną obsługę gry Lunar.
- Disable coord check – umożliwia poprawną obsługę gier tj.: PAL-owy Tekken 3.
- Use low-res fps timer – ulepsza współpracę wtyczki ze starymi płytami głównymi.
- Use PC fps calculation – zwiększa płynność niektórych gier.
- Lazy screen updates – umożliwia poprawną obsługę gry Pandemonium 2.
- Use old frame skipping – pomija, co drugą klatkę animacji, co znacząco zwiększa płynność emulacji na słabszych komputerach.
- Repeated flat tex triangles – umożliwia poprawną obsługę gry Dark Forces.
Kolejnym podobieństwem względem pozostałych wtyczek graficznych jest menu kontekstowe / podręczne za pomocą, którego możemy w trakcie gry zmienić wartości kilku opcji. Do obsługi ów menu służą następujące klawisze:
- Delete – pokazuje / ukrywa menu kontekstowe.
- Insert – pokazuje okienko pomocy podręcznej.
- Home – zmniejsza wartość wybranej opcji.
- End – zwiększa wartość wybranej opcji.
- Page Up – przejście do poprzedniej opcji.
- Page Down – przejście do kolejne opcji.
Oczywiście na powyższych przyciskach dostępna klawiszologia się nie kończy, ponieważ do użytku mamy także następujące skróty klawiszowe:
- <Alt + Enter> – przełącza emulator pomiędzy pracą w oknie i na pełnym ekranie.
- <F8> – zapisuje zrzut ekranu do podfolderu „snap” emulatora.
- <F12> – włącza podgląd stanu pamięci graficznej w trybie debugowania.
- <-> na klawiaturze numerycznej – synchronizuje prędkość wyświetlanej grafiki z częstotliwością odświeżania monitora.
- <*> na klawiaturze numerycznej – rozpoczyna / kończy zapis sygnału wideo do pliku AVI.
Skoro już mowa o plikach AVI to warto wspomnieć, że wtyczka P.E.Op.S. Soft Driver jako jedna z niewielu umożliwia bezpośrednie przechwytywanie sygnału wideo do plików AVI. Co więcej po kliknięciu w przycisk „ Recording options […]” dostępnych mamy kilka ciekawych opcji tj.:
- Standard/Custom Video Size – gdzie możemy zdefiniować rozmiar przechwytywanego obrazu.
- Frame Rate Scale – gdzie definiujemy szybkość przechwytywania np. przechwyć co 1 / 2 / 3 klatkę.
- Compresion – gdzie wybieramy głębię kolorów użytą przy przechwytywaniu np. 16 bit.
- Configure – przycisk, pod którym możemy wybrać i skonfigurować kodek wykorzystywany do przechwytywania sygnału.
Oprócz wszystkich wspomnianych opcji w pluginie mamy do dyspozycji kilka przycisków tj.:
- Fast / Nice – kliknięcie spowoduje automatyczne skonfigurowanie pluginu zgodnie ze zdefiniowanymi przez autorów ustawieniami.
- Copy settings to clipboard – bardzo przydatna opcja umożliwiająca skopiowanie wszystkich ustawień pluginu do schowka przez dzięki czemu ich późniejsze wstawienie np. na forum jest banalnie proste i ogranicza się jedynie do wciśnięcia znanej i lubianej :] kombinacji <Ctrl+V>.
- Oraz standardowe OK i Anuluj, które nie wymagają komentarza.
Na tym zakończę opis wtyczki P.E.Op.S. Soft Driver – mam nadzieję, że dzięki artykułowi przybliżyłem Wam temat obsługi wideo pod ePSXe i kilka pojęć z nim związanych.