PCSX2 SVN r5932

Od publikacji ostatniej stabilnej wersji emulatora minęły dwa miesiące, dlatego warto się przypatrzeć jakie modyfikacje, od tego czasu poczyniono w projekcie PCSX2.


Lista najistotniejszych zmian rozwojowej wersji emulatora przedstawia się następująco:
  • poprawiono obsługę najnowszej wersji bibliotek Mesa oraz OGL/GL4.1 pod linuxem,
  • znacząco rozbudowano narzędzia developerskie takie jak: zaawansowany podgląd deasemplera R5900 i R3000, podświetlana lista zmian w rejestrach, skanowanie funkcji i widok makr, przerwania warunkowe, widok pamięci z możliwością edycji, itp.,
  • usprawniono obsługę pamięci, poprawiając funkcje odpowiedzialne za emulację DMA,
  • skorygowano ustawienia synchronizacji pionowej dla obrazu wyświetlanego z przeplotem,
  • naprawiono błędy występujące przy emulacji VIF, GIF i SPR, kilka dzięciołów we wtyczce SPU2-X oraz zintegrowanej bazie gier,
  • z kolei w pluginie graficznym GSdx zaimplementowano obsługę funkcji DATE, wykorzystywanej do generowania cieni i innych efektów, oraz anizotropowe filtrowanie tekstur zwiększające jakość obserwowanego pod kątem obrazu,
  • zaimplementowano szereg funkcji mających w przyszłości umożliwiać uruchamianie na emulatorze gier z pierwszego PlayStation.
Ok, czas na tradycyjne posłowie praktyczne. Jak każdy widzi, zmian mogłoby być więcej, co więcej fixy poprawiają kompatybilność programu jedynie względem kilku tytułów, tj.: Syphon Filter – Omega Strain, Final Fantasy XII, All Star Pro Wrestling, Legendz Gekitou! Saga Battle oraz seria Gromit. Niemniej, jeśli ktoś doświadczył problemów grając w jedną z wymienionych pozycji, ewentualnie posiada przyzwoity sprzęt z wypasioną grafiką i chciałby uzyskać jak najlepszy efekty wizualny emulując gry z PlayStation2… zdecydowanie powinien zainteresować się rozwojową wersją PCSX2, tym samym odwiedzić nasz Download w celu pobrania stosownego pliku, ewentualnie stronę domową projektu w poszukiwaniu szczegółowych informacji na temat najnowszego wydania.

PCSX2 SVN r5762

Zastanawiałem się czy zaglądając po dwóch miesiącach do listy zmian rozwojowej wersji PCSX2, po raz kolejny poczuje niedosyt, czy też może, tym razem całkiem pozytywnie się rozczaruje? Po przyswojeniu całkiem sporej dawki informacji z czystym sumieniem mogę napisać, ze rewolucji może nie ma, niemniej od rozczarowania jak najbardziej mi daleko


Po kolei jednak, przed własnym wywodem tradycyjna porcja teorii w postaci skondensowanej piguły najistotniejszych zmian:
  • w emulatorze, usprawniono obsługę pamięci, bufora SIO, mVU, Path3, ViF przy wykonywaniu rozkazów VU i obsłudze nierozpoznanych danych o zmiennym ułożeniu, obsługę warunkowych gałęzi w microVU oraz funkcji emulujących R5900, w tym rekompilację kodu COP2
  • we wtyczce dźwiękowej SPU2-X, zmodyfikowano funkcje tensora, zmniejszając tym samym opóźnienia do 30ms, umożliwiono wykorzystanie biblioteki SDL pod Linuksem i zoptymalizowano kod pluginu
  • wtyczka gsdx ogl wzbogaciła się możliwość odmapowania buforów, zwiększające płynność poprawki w funkcji GL_ARB_buffer_storage oraz zmodyfikowaną obsługę wystąpień EGL_BAD_MATCH mającą na celu rozwiązanie problemów biblioteki Mesa na układach graficznych Intel.
  • usprawniono sterowanie poprawiając funkcje odpowiedzialne za w wykrywania osi i obsługę myszy
  • dla wszystkich z opisanych powyżej zmian wprowadzono stosowne poprawki do bazy gier
OK, czas na posłowie, czyli zdań kilka na temat tego co mnie cieszy, a co mogłoby uwierać. Jeśli chodzi o drugie z zagadnień, z pewnością byłby to stanik, gdybym takowy nosił, ewentualnie brak wspomnianej rewolucji w temacie emulacji PS2. Nie ma jednak co płakać – brak uroczego biustu pod brodą rekompensuje psycho-fizyczny i spokój przez c-a-a-a-ły miesiąc, a rewolucji [nie oszukujmy się] nie ma co się spodziewać w przypadku tak rozbudowanego projektu jak PCSX2. Skupmy się więc na pozytywach – szczególnie, że powodów do suszenia zębów nie brakuje. Ulepszona emulacja dźwięku, sterowania, generowania obrazu na Intelowskim GPU pod Linuxem i sporo poprawek w jądrze programu, w tym obsłudze COP2. No właśnie, COP2, niby mała poprawka, a jednak, niezwykle istotna, bo za jej sprawą znacząco zwiększyła się kompatybilność programu, co zaobserwować można w przypadku tytułów takich jak choćby: Ace Combat 4, Ace Combat 5, Ace Combat – The Belkan War, Ace Combat: Squadron Leader, Crash Bandicoot Wrath of Cortex, Dawn of Mana, DT Racers, Forbidden Siren 2, Ghost in the Shell, Gunfighter 2, Run Like Hell, Shadow Hearts, Siren 2, The Mark of Kri i Warship Gunner 2. Innymi słowy – wypas, zapraszam do Downloadu… aaa… no i oczywiście do komentowania niusa.

PCSX2 SVN r5726

Czy to tylko ja, czy Wy również macie wrażenie, że w bieżącym roku PCSX2 trzyma się ciut z boku. Rozumiem, że publikacja programu oznaczonego magicznym znacznikiem 1.0 była wielkim wydarzeniem, a co najmniej dobra kompatybilność względem 90% dostępnych tytułów to nie małe osiągnięcie. Całkiem miło jest również patrzeć, na postępy poczynione przez projekty udające pozostałe systemy z rodziny PlayStation, którym to tytułowy PCSX2 udostępnił pola do popisu…


… niemniej nie o nich dziś piszę, toteż powstaje pytanie czy dwadzieścia-kilka poprawek poczynionych w przeciągu ostatnich czterdziestu-paru dni daje powód do zadowolenia? Zastanówmy się nad tą kwestią, przyglądając się najistotniejszym zmianom poczynionym w projekcie:
  • we wtyczce gsdx ogl wprowadzono możliwość przełączania trybu generowania obrazu klawiszem F9,
  • zrezygnowano z MSAA na rzecz FXAA oraz wewnętrznego podbicia rozdzielczości,
  • rozbudowano funkcje odpowiedzialne za obsługę tekstur i shaderów,
  • usprawniono wyświetlanie w trybie widescreen,
  • zwiększono kompatybilność pluginu względem kart ATI/AMD,
  • eksperymentalnie zaimplementowano obsługę OGL4,
  • wykryto błąd przy generowaniu pliku NVM przez emulator i naprawiono go, co rozwiązało problem nieoczekiwanego kończenia programu w przypadku kilku tytułów,
  • poprawiono obsługę multitap,
  • usprawniono obsługę kart pamięci oraz zaimplementowano wsparcie czystych danych (RAW) pochodzących z kart pamięci pierwszego PlayStation.
Biorąc po uwagę powyższe, z jednej strony (jak zwykle) cieszy fakt, że prace posunęły się do przodu, podobnie jak kompatybilność emulatora względem gier takich jak: Timesplitters, Persona 3 i 4, Metal Gear Solid 3 oraz Age of Empires 2. Zdecydowanie in plus należy zaliczyć ukłon w stronę osób pracujących na sprzęcie ATI/AMD oraz pod kontrolą systemów Linux, polegający na zwiększeniu osiągów programu dla ww. sprzętu/systemu. Niebywale istotnym, wydaje mi się również próba zaciągnięcia do pracy OpenGL4 – biorąc pod uwagę fakt, że implementacja (dosłownie) kilku rozwiązań z wspomnianego API poskutkowała wzrostem wydajności rzędu 5-8%. Wszystko to jest jak najbardziej pozytywne i sprawia, że z wypiekami na twarzy czekam na kolejne wydania emulatora. Z drugiej zaś strony nie potrafię pozbyć się uczucia niedosytu, ubolewam nad zasięgiem wprowadzanych zmian i z utęsknieniem czekam na krzykliwą innowacje. Zanim to jednak nastąpi, standardowo odsyłam Was do naszego Downloadu po najnowszą wersję rozwojową tytułowego emulatora oraz na stronę domową PCSX2.

PCSX2 SVN r5702

Biorąc pod uwagę listę zmian, poczynionych ostatnio w rozwojowej wersji PCSX2, nie liczyłbym na rychłe pojawienie się stabilnej wersji emulatora. Czyszczenie kodu, drobne poprawki i spory nakład pracy w rozwój wtyczki graficznej. Tak oto streściłbym co działo się z projektem w przeciągu minionego miesiąca. Czy oznacza to jednak, że można odpocząć, odwracając chwilowo wzrok od tytułowego projektu? Absolutnie nie!


Zanim jednak podam ku temu przyczynę przyjrzyjmy się zmiano poczynionym w najnowszych wersjach SVN:
  • opublikowano wtyczkę graficzną GSdx w wersji wykorzystującej instrukcje avx2
  • wyczyszczono kod pluginu GSdx pod kątem kompilacji na VS2010
  • rozbudowano i poprawiono obsługę shaderów we wtyczce GSdx ogl
  • zwiększono kompatybilność opisanej powyżej wtyczki względem sterowników nvidia
  • wyczyszczono i zoptymalizowano kod emulatora w wersjach dla systemu Windows i Linux
  • zoptymalizowano kod emulatora pod kątem kompilacji na VS2012 Express
  • we wtyczce GSdx ogl zaimplementowano wsparcie dla gles
Jak każdy widzi, zmiany istotne, ale raczej niewielkie. Ale czy na pewno? Mnie osobiście mocno intryguje ostatni punkt z powyższej listy, rodzący następujące pytanie. Mając do wykorzystania dobrodziejstwa OpenGL 4.2 i dedykowanych rozszerzeń API, w jakim celu implementowano GLes? Przecież to środowisko pisane z myślą o przeglądarkach i urządzeniach mobilnych! Czyżbyśmy mieli doświadczyć migracji kolejnego projektu na urządzenia przenośne? Czy istnieje cień szansy, że układy takie jak Exynos 5, Snapdragon 800, czy Tegra 4 będą w stanie sprostać emulacji PlayStation2? Cóż, czas pokaże. Tymczasem, zapraszam do downloadu po najnowszy PCSX2 SVN r5702.

PCSX2 SVN r5674

Nie mam dziś weny na przydługie wstępy i bezproduktywne lanie wody. Z drugiej zaś strony, tym drugim, wcale bym nie pogardził, biorąc pod uwagę dosłowne znaczenie sformułowania i kilkudniową falę upałów, dającą się mocno we znaki w robocie. Jakby na problem nie spojrzeć, nie jesteśmy jednak serwisem o turystyce czy rekreacji, więc chłodne życzenia odkładam na później, a teraz…


… zapraszam do zapoznania się z najważniejszymi zmianami jakie poczyniono od marca w rozwojowej wersji emulatora PCSX2:
  • przeportowano wtyczkę GSdx-ogl pod systemy Windows
  • w pluginie GSdx dodano klasę wektorową dla AVX2, poprawiono obsługę pamięci oraz funkcje GetTextureMinMax,GetAlphaMinMax i rozszerzenie GL_ARB_gpu_shader5 dla Fxaa
  • usprawniono obsługę kodów dla gier
  • dodano maskowanie DMA/Path3
  • zmodyfikowano sposób sprawdzania rozmiaru nośnika
  • usprawniono działanie microVu przez wprowadzonie poprawek do funkcji odpowiedzialnych za obsługę D/T Bit oraz XGKick Delay, sparametryzowano obsługę D-Bit
  • poprawiono funkcje odpowiedzialne za grę wieloosobową (multitap) oraz obsługę memorek z pierwszego PlayStation
  • zwiększono kompatybilność wtyczki gsxdx ogl względem układów graficznych ATI/AMD, zoptymalizowano plugin pod kątem najnowszych sterowników catalyst oraz poprawiono zachowanie modułu względem kart nie obsługujących opengl 3.3
  • w tym samym pluginie wprowadzono wewnętrzne ładowanie shaderów z plików glsl z konwersją przez skrypt perl`owy
  • w GSdx zwiększono rozmiar indeksu dla bufora bloków zmiennych jednorodnych, usunięto błędy i powodującą problemy optymalizacje z funkcji GetTextureMinMax, oraz naprawiono przesunięcia CLUT implementując tymczasowy bufor
  • we wtyczce zzogl-pg zoptymalizowano obsługę tekstur dla układów graficznych Intel
  • rozbudowano bazę gier o nowe informacje i poprawki do już istniejących pozycji
  • zoptymalizowano kod emulatora pod kątem gcc 4.8 oraz VS 2010/2012
  • zaktualizowano bibliotekę Soundtouch do wersji 1.71
Tym samym usprawniono dziłanie programu oraz obsługę gier takich jak: Crash Twinsanity, Persona 4, WRC Rally Evolved, Elemental Garde, Siren 2, Kingdom Hearts i Kingdom Hearts 2, Disney’s Golf, Impossible Mission, Wallace & Gromit in Project Zoo, Drakan, Mafia, True Crime – New York, Timesplitters, Neo Contra . Tyle na dziś, zapraszam do Downloadu i na stronę domową projektu.

PCSX2 SVN r5603

Zauważyliście, że na głównej dawno nie gościło moje standardowe marudzenie? Biorąc pod uwagę, że niniejszym wpisem zamykam przegląd emulacyjnych wydarzeń na wszystkich platformach, pozwólcie że wzbogacę dzisiejsza wiadomość niewielką dozą narzekań. Nic nowego czy odkrywczego – masa obowiązków, niewiele wolnego czasu i worek gier, które od dawna czekają na ukończenie :] Ot, życie, którego uroki, pewnikiem nie jedna/en z Was odczuwa na co dzień. Na domiar szczęścia, święta za pasem i przyjemności z pewnością przybędzie, bo wypadałoby przecież, choćby przerzuć bałagan, by goście się nie o niego potykali :] Cóż, jest super, mam jednak cichą nadzieję, że w tym przedświątecznym galimatiasie, choć kilku z Was uda się …


…zasiąść na chwile przed monitorem i przyjrzeć się zmianom, jakie przygotowali dla nas autorzy PCSX2 w najnowszej, rozwojowej wersji swojego projektu:
  • masa zmian w emulacji microVU: poprawiona obsługa łączeń w gałęziach opóźnień, trybu interpretatora, czy obsługi bitu T/D,
  • wyczekiwane od wersji r5549 poprawki w obsłudze emulacji Gif Unit i VIF
  • poprawiona obsługa funkcji odpowiedzialnych za obsługę MFIFO
  • wprowadzona możliwość jednoczesnego aktywowania wielu cheatów
  • nowy hack, umożliwiający samodzielne definiowanie ko-ordynatów przesunięcia tekstur
  • dołączono plugin dev9ghzdrk do głównej paczki emulatora.
Nowości, jak na lekarstwo, bo jak sami widzicie lista zamian jest dziś, sporo krótsza niż poprzednio. Warto jednak zauważyć, że prócz poprawnej obsługi gier takich jak – Puzzle Quest, Steambot Chronicles, Evil Dead, Tony Hawk’s Project 8, Mark of Kri, Sensible Soccer, Dreamworks Over The Hedge, DDR X, Supernova, Front Mission 4 – najnowsza wersja rozwojowa wprowadza szereg niezwykle ważnych poprawek. Udoskonalono kluczowe funkcje (microVU, Gif Unit, VIF, MFIFO) emulatora, umożliwiono rozprawienie się (przez w.w. hack) z błędami graficznymi występującymi po zwiększeniu rozdzielczości, dodano możliwość władowania cheatów z kilku plików, no i wreszcie emulator, oficjalnie i otwarcie wspiera grę sieciową. Czego chcieć więcej – zapraszam do Downloadu i na stronę domową projektu.

PCSX2 SVN r5549

W zasadzie to wiadomość powinna być opatrzona numerkiem 5551, bo to najnowsza wersja tytułowego emulatora. Niemniej, z uwagi na trudny do przewidzenia rezultat zmian wprowadzonych w ostatnim buildzie, piszę o, wrzucam do Downloadu i zalecam korzystać z przedostatniego SVNa. Natomiast z przesiadką na wersję > 5550 poczekać do czasu zakończenia testów i wprowadzenia ewentualnych poprawek do funkcji odpowiedzialnych za obsługę jednostki GIF.


Natomiast w międzyczasie, warto zapoznać się ze zmianami jakie autorzy wprowadzili do projektu od czasu ostatniej publikacji… które w skróconej wersji przedstawiają się następująco:
  • poprawiono obsługę VIF Execs, SPR i masek w funkcjach emulujących jednostki VU
  • przepisano kod odpowiedzialny za obsługę opóźnień gałęzi interpretatora VU
  • dodano nową, eksperymentalną procedurę asynchronicznego odczytu danych z nośników
  • usprawniono adresację pamięci przeliczaną przez wtyczkę GSdx
  • wprowadzono poprawki zwiększające wydajność wtyczki SPU2-X
  • zmodyfikowano bazę gier adekwatnie do powyższych zmian
Lista może krótka, nie zaprzeczam, warto jednak zauważyć, że opisane w niej zmiany, nieznacznie zwiększają wydajność programu oraz – co bardziej istotne – naprawiają błędy występujące w całkiem sporej ilości tytułów. Wzrost kompatybilności emulatora zanotowano bowiem w przypadku następujących gier: Summoner 2, Prince of Persia Sands of Time, Neo Contra, Tomb Raider Angel of Darkness, Midnight Club 2/3, Legend of Spyro: The Eternal Night, Sled Storm, CSI 3 – Dimensions of Murder, Baldurs Gate, Legends of Wrestling 2, Warship Gunner 2, The Simpsons Game, Evil Dead – Fistfull of Boomstick, Tony Hawk Project 8, Everblue, Hitman 2 i Fatal Fury Battle Archives Volume 2. Jak widać całkiem tego sporo. Ze swojej strony zaś, bez względu na to, czy emulowana obecnie przez Ciebie gra, znajduje się na powyższej liście, czy też nie, gorąco zapraszam do zapoznania się z najnowszą odsłoną emulatora PCSX2 oraz odwiedzin strony domowej projektu.

PCSX2 SVN r5446

Dawno nie pisałem o emulacji PlayStation2, niemniej patrząc na listę zmian, które zostały wprowadzone do kodu PCSX2 w przeciągu ostatnich dwóch miesięcy, z przykrością muszę stwierdzić, że niewiele straciliśmy. Nie zrozumcie mnie źle, bo nie chcę tu nikogo krytykować, a za ponad 40 poprawek wypada solidnie pogratulować zespołowi odpowiedzialnemu za projekt. Szczególnie, że wśród zmian znalazły się poprawki dla sprzętu ze stajni AMD, którego posiadaczy, w naszym kraju jest co nie miara, więc to zmiana zdecydowanie in plus. Masę usprawnień wprowadzono we wtyczkach graficznych dla systemów z rodziny Linux, co (z okazji przesiadki dokonanej kilka lata wstecz) osobiście również mnie bardzo cieszy, a zapewne nie tylko mnie. Autorzy, wsparci przez użytkowników solidnie rozbudowali bazę gier, co przekłada się na zwiększoną kompatybilność programu…


… i można by tak jeszcze chwilę wymieniać zmiany, te bardziej istotne jak usprawnioną obsługę przerwań w VIF, czy wskaźników w SuperVU, jak i mniej – poprawione GUI, debugger itp. Tylko, moi drodzy, jakoś mi tak przykro, że [po pierwsze primo] prace są prowadzone jak się zdaje ciut po omacku w formie dziś wprowadzamy zmianę, a jutro ją cofamy i przez najbliższy tydzień poprawiamy błędy które powoduje. Po drugie, zaś [primo :], jeśli mogę być szczery, spodziewałem się czegoś więcej, zachęcony wrześniowym SVNem wprowadzającym obsługę własnych shaderów, miałem cichą nadzieję na kolejną porcję w istocie przełomowych zmian…. no ale cóż, nie w jedną noc Rzym wybudowano. Nie pozostaje więc nic innego, jak cieszyć się kolejną, sowitą porcją poprawek, autorom życzyć jak najowocniejszej pracy, a Was standardowo odesłać do Downloadu i na stronę domową PCSX2.

PCSX2 SVN r5288

Ostatnim razem zapoznałem Was ze zmianami wprowadzonymi do najlepszego emulatora PSP, myślę więc, że w dobrym tonie byłoby podtrzymać passę aktualnych wiadomości i poświęcić dzisiejszego niusa na przegląd nowinek jakie znalazły się w najnowszej wersji, najlepszego emulatora PlayStation2…


… które w SVN r5288 skupiają się głównie na poprawkach wtyczek wideo, ale nie tylko bo:
  • kilka poprawek i optymalizacji wprowadzono do kodu pluginu zzogl,
  • poprawiono generowanie tekstur i shaderów oraz obrazu w natywnej rozdzielczosci pod kontrolą wtyczki GSdx,
  • poprawiono obsługę funkcji GS/GIF oraz VIF emulatora, eliminując niektóre błędy graficzne i nieznacznie zwiększając prędkość emulacji,
  • zmodyfikowano poprawki dla gier takich jak: Realta Nua, ICO, Rogue Galaxy, seria Katamari, SSX3, Haunting Ground, Spyro New Beginning, DevilMyCry3, Star Ocean 3, God of War 2, Burnout 2, FFX, FFX2, Valkyrie Profile 2 dzięki czemu wzrosła kompatybilność programu względem wspomnianych pozycji
  • wprowadzono zmiany w kolejnych sześciu plikach lokalizacyjnych (językowych)
  • przygotowano instalator dla systemów z rodziny Windows
  • przygotowano dystrybucję dla debiana
Jak widać na załączonym obrazku, zmiany nie tylko cieszą pod względem ilości, ale również istoty, gdyż z teoretycznego punku widzenia powinny naprawić całkiem sporą liczbę błędów w wyswietlaniu obrazu, tym samym zapewnić zwiększoną kompatybilność oraz lekki przyrost prędkości. Co cieszy najbardziej, na liście znów pojawiają się zmiany przed premierowe, więc nie pozostaje nic innego jak suszyć zęby w oczekiwaniu na nową stabilną wersję PCSX2. Zanim to jednak nastąpi zapraszam na stronę domową emulatora, na łamy automatycznego repozytorium wersji rozwojowych oraz do naszego downloadu po tytułową odsłonę PCSX2 w wersji rozwojowej.

PCSX2 SVN r5214

Przyznaje, że lekko zdziwił mnie brak nowej stabilnej wersji PCSX2, oznaczonej jakże pięknym numerkiem 1.0.0, ewentualnie 0.10.0, które też byłoby do przełknięcia :] Liczyłem na niniejsze wydanie z okazji ukazania się SVN r5200, ale jak widać się przeliczyłem. Cóż, jakby nie spojrzeć pozostał pewien czasowy margines w założeniach jakie przedstawiłem Wam przy okazji poprzedniego niusa, a co bardziej istotne, przesunięta premiera pozwoli umieścić w kodzie kolejną porcję istotnych poprawek, choćby tych poświęconych wtyczkom GPU/GS, które znajdziecie w tytułowej wersji SVN… a są to między innymi:

  • zmieniono rozmiar buforu werteksów z 512 na 128 w celu zapobiegania przepełnieniu pamięci wideo
  • wprowadzono nowy system poprawek (haków) dla tytułów
  • zaktualizowano 14 oraz dodano 41 nowych optymalizacji (haków) dla gier
  • interfejs OGL stał się domyślnym API dla systemów Linux
  • zoptymalizowano przetwarzanie obrazu za pomocą shaderów
  • usprawniono zapisywanie danych za pomocą opcji savestate
  • poprawiono kompatybilność ze sprzętem AMD
W teorii, powyższe poprawki powinny ulepszyć stabilność pracy programu, zwiększyć prędkość emulacji i naprawić całkiem sporą liczbę przekłamań graficznych. W praktyce, zapraszam do downloadu po PCSX2 SVN r5214 i samodzielnych testów, które potwierdzą, bądź zaprzeczą roszczeniom deweloperów jakie poczynili przy okazji ostatnich zmian w wersji rozwojowej emulatora.