PCSX2 dev.1.7.0-2166

Tradycyjne postanowienia noworoczne zamierzam co prawda trzymać na prywatnym podwórku, nie znaczy to jednak że nie mogę sobie czegoś założyć ciut wcześniej. Tym oto sposobem wpadłem na jakże dziwny pomysł by zrobić sobie mały Świąteczny challenge i do końca roku nadrobić wszystkie niusowe zaległości. Tak też zamierzam uczynić, co rozpoczynam niniejszym wpisem z aktualnymi materiałami poświęconymi tytułowemu PCSX2.

PCSX2 emulator running ICO

Oznaczona ciągiem v1.7.0-dev-2166 wersja z 27 grudnia br., w stosunku do opisanych poprzednio wydań zawiera zmiany obejmujące między innymi:

  • migrację środowiska produkcyjnego do GitHub Actions wdrażając automatyczne kompilacje kodu dla 32. i 64.bitowych wydań Linuksa oraz analogiczne wersje dla Windows w dwóch wariantach przeznaczonych dla procesorów z instrukcjami SSE4 oraz AVX2;
  • zaimplementowano nową metodę przetwarzania danych w ramach GSOffset, zastępując dotychczasowy tryb buforowany i eliminując występujące w nim wycieki pamięci;
  • naprawiono problemy występujące przy grach korzystających z flagi AA1, zapewniając poprawną obsługę mieszania alfa i wyświetlania linii przy zastosowanym antyaliasingu krawędzi;
  • dodano w debuggerrze funkcje przeszukiwania pamięci oraz odblokowano dostęp do adresów 0xB*;
  • rozpoczęto prace nad zunifikowaniem kodu odpowiedzialnego za generowanie obrazu w trybie sprzętowym z wykorzystaniem OGL i D3D11;
  • zrezygnowano z obsługi interfejsów dźwięku Portaudio oraz SDL2 w miejsce których wdrożono otwartoźródłowy silnik cubeb;
  • usprawniono emulację transferów DMA w ramach IPU, eliminując całe gro błędów i znacząco zwiększając kompatybilność programu;
  • podobnie do powyższego zamieniono YAML na bibliotekę rapidyaml, dziesięciokrotnie zwiększając prędkość inicjacji bazy GameDB;
  • dodano obsługę wyspecjalizowanych kontrolerów Gametrak oraz RealPlay;
  • naprawiony błędy powodujące nieprawidłowe przetwarzanie spritów na procesorach x64/avx2, zapewniając prawidłowe wyświetlanie efektu mgły;
  • usprawniono działanie kanałów GXBY, usuwając błędy występujące przy aktualizacji buforu oraz ustalania wartości próbkowania zielonego kanału;
  • zaimplementowano mechanizm wykorzystujący mieszany tryb blendingu przy przezroczystości wyświetlanych elementów poniżej 50%, poprawiając jakość obrazu generowanego z wykorzystaniem interfejsu Direct3D11 i optymalizując kod napisany dla biblioteki OpenGL;
  • wdrożono bibliotekę glad odpowiedzialną za automatycznie ładowanie interfejsów Vulkan/GL/GLES/EGL/GLX/WGL, zastąpiono pDsp informacjami przechowywanymi przez WindowInfo, zaimplementowano wyświetlanie obrazu GS w środowiskach Wayland i macOS, realizując kolejny etap przejścia projektu na QT;
  • poprawiono błędy i zoptymalizowano sposób wyświetlania elementów interfejsu graficznego w oknach konfiguracji DEV9, GSdx oraz Debuggerze;
  • zaimplementowano mechanizm automatycznej, cotygodniowej aktualizacji bazy obsługiwanych kontrolerów;
  • zwiększono wielkość buforu odczytu danych z napędu do 16.sektorów i wprowadzono stosowne poprawki dla płyt wielowarstwowych, odwzorowując zachowanie źródłowego systemu oraz przyśpieszając przetwarzanie danych przez DMA;
  • zwiększono dokładność przeliczania rozmiaru tekstur przez rejestr TEX0;
  • usprawniono działanie cykli XGKIck przy emulacji jednostek microVU;
  • wdrożono nową metodę obsługi funkcji CopyRectConv z wykorzystaniem shaderów, eliminując występujące wcześniej wycieki pamięci;
  • naprawiono błędy występujące w systemach Windows i uniemożliwiały prawidłowy zapis ustawień sieciowych, wyeliminowano również błąd krytyczny występujący przy zapisie logów DNS;
  • zaktualizowano zintegrowane biblioteki w tym: libchdr, xbyak;
  • usprawniono synchronizacje instrukcji LQC2/SQC2 jednostki COP2;
  • uporządkowano kodzie GS, usuwając z niego stare, zbędne i nieużywane zapisy;
  • zaktualizowano bazę kontrolerów, zapewniając poprawne wsparcie dla urządzeń takich jak: Hori Gem Pad, Horipad 4, iBuffalo Gamepad, Logitech F710, Microsoft SideWinder Game Pad, Microsoft X-Box 360, PDP Xbox One Raven, Razer Panthera, XP5A;
  • poprawiono błędy i zaktualizowano tłumaczenie programu na język: węgierski, włoski,
  • zwiększono kompatybilność programu, usprawniając emulację tytułów takich jak… Ape Escape 3, Burnout 3, Crisis Zone, Digimon Battle Chronicle, Disaster Report, Evolution Snowboarding, God of War, GTA San Andreas, Gunfighter 2 – Legend of Jesse James, Hitman Blood Money, Hitman – Contracts, Jikkyou Powerful (seria), Jurassic Park, Harley Davidson, Maken Shao, Maken Shao – Demon Sword, Mana Khemia: Alchemists of Al-Revis, MLB Power Pros, MX Vs ATV Unleashed, Need for Speed Underground 2, Neo Atlas III, Rapala Pro Fishing, Romance of the Three Kingdoms VII, Samurai Shodown 6, Shinobido Takumi, SingStar (seria), Spiderman 3, Spider-Man Friend or Foe, Super Monkey Ball Deluxe, The History Channel: Battle for the Pacific, Virtua Fighter 4;

Zapraszam do pobieralni gdzie znajdziecie jeszcze cieplutkie wydanie rozwojowe emulatora dla systemów Linux oraz Windows oraz kod źródłowy przedmiotowego programu.