Uncharted ruszyło na emulatorze PlayStation 3: to naprawdę trudny sprzęt

Kiedy ostatni raz zaglądaliśmy do tego, co dzieje się z RPCS3,emulatorem PlayStation 3, jego deweloperzy popisywali sięmożliwością grania w wiele gier w rozdzielczości4K. Wciąż jednak liczba wspieranych tytułów była raczejograniczona, wciąż też pojawiały się problemy z poprawnymrysowaniem klatek. Nie minęły dwa miesiące, a RPCS3 robi kolejnywielki krok naprzód. Ulepszenia emulatora otwierają drogę douruchamiania słynnych gier AAA, na czele ze słynnym Uncharted.

Uncharted ruszyło na emulatorze PlayStation 3: to naprawdę trudny sprzęt

05.12.2017 15:59

Architektura PlayStation 3 jest piekielnie skomplikowana, pierwszyz rozwiązanych problemów przypomina nam, jak bardzo. Jego procesor,układ Cell Broadband Engine, zawiera oprócz wielowątkowego rdzeniaw architekturze Power – Power Processing Element (PPE) – takżeosiem koprocesorów Synergistic Processing Element (SPE). PPE, SPE ielementy wejścia/wyjścia połączone są szybką magistraląElement Interconnect Bus (EIB).

Aby zapewnić swoją legendarną (jak na poprzednią dekadęoczywiście) moc obliczeniową, Cell łączy SPE i PPE przez EIB,dając im bezpośredni dostęp do pamięci operacyjnej i masowej(cache coherent DMA). Wszystkie jednostki obliczeniowe, zarówno PPEjak i SPE, mają swoje własne silniki DMA. Dla SPE jest to jednakjedyny sposób na dostęp do pamięci operacyjnej, ponieważ jegowłasne instrukcje mają dostęp wyłącznie do maleńkiego (256 KB)obszaru lokalnej pamięci LS. Transferami do i z LS zarządzakontroler Memory Flow (MFC), który nie tylko obsługuje kolejkę,ale też potrafi kontrolować typ transferu, a nawet na żądanie SPEblokować pewne transfery, zmieniając ich kolejność.

Do tej pory wirtualne MFC w emulatorze RPCS3 pozwalało jedynie nadziałanie w kolejności. Wprowadzone w nowej wersji przez deweloperaJarvesa zmiany pozwalają na wykrycie tych specjalnych żądań SPU,by możliwe stało się działanie poza kolejnością. W efekcieuzyskaliśmy bardziej dokładne MFC – i w konsekwencji rozwiązanieproblemu wielu losowych awarii, które do tej pory trapiły emulator.

RPCS3 - God of War, Uncharted, LittleBigPlanet, Gran Turismo, Infamous and More

Druga ze zmian Jarvesa (choć wprowadzona jako pierwsza) dotyczysytuacji, w której gra nie ulega awarii, ale po prostu staje. Jesttak jakby nagle emulator zamroziło, mimo że licznik FPS-ów wciążpokazuje zmiany na czarnym ekranie. W debugerze widać, że bez końcaodtwarzany jest ten sam fragment kodu, zarówno w SPU i PPU. Okazujesię, że niektóre gry pod adresem 0 w wątku SPU zawierająrozgałęzienia – po wykryciu pewnych specyficznych warunków SPUporzuca aktualnie przetwarzany kod i skacze gdzie indziej. Do tejpory emulator po prostu źle sprawdzał warunek wykonania skoku. Popoprawce zapętlenia przestały być problemem.

Równie interesujące zmiany wprowadzono po stronie emulacjiukładu graficznego RSX. Gdy udało się uruchomić kolejne grydzięki zmianom wprowadzonym dla SPU, symulowane GPU spotkało się zbardziej skomplikowanymi technikami graficznymi. Deweloper kd-11poradził sobie z artefaktami w grze Dark Souls 2 w potoku HDR(nietypowe manipulacje shaderami), brakiem cieni (rysowanie kolorowejtekstury zamiast tekstury głębi wskutek problemów z aliasami celówrenderowania), prześwitywaniem płomieni przez ściany (grazapisywała coś jako bufory koloru w RGBA, a potem zamieniała je nabufory głębi) i samą głębią (tylko 8-bitowa precyzja).

Obraz

Naprawianie tych błędów otwierało drogę do uruchamianiakolejnych gier, gdzie już tylko pomniejsze usterki występowały. Wten sposób oprócz Dark Souls 2 usunięto ostatnie błędy z God ofWar: HD Collection i Demon’s Soul, udało się uruchomić Unchartedoraz Ratchet & Clank, a nawet God of War 3, grę stosującąmnóstwo trików by umożliwić skalowanie na zmiennoprzecinkowychteksturach – coś niemożliwego na sprzęcie z czasów DirectX 9.

W tym tempie można się spodziewać, że jeszcze tej zimyzobaczymy, jak na RPCS3 ruszają tak słynne tytuły jak The Last ofUs czy Killzone 3. Nie byłoby to możliwe bez pieniędzy – napracę deweloperów składa się obecnie 726patronów, wpłacających co miesiąc na ich konto łącznie 3370dolarów.

Póki co najnowszą wersję emulatora RPCS3, 0.0.4, znajdziecie wnaszej bazieoprogramowania na Windowsa. Dostępna jest też wersja naLinuksa, przygotowana w postaci paczkiAppImage.

Programy

Zobacz więcej
Wybrane dla Ciebie
Komentarze (66)