O tym, dlaczego emulacja PlayStation 3 to wrzód pod plecami

O tym, dlaczego emulacja PlayStation 3 to wrzód pod plecami

gtxxor_OV | Wczoraj, 05:42

Można by rzec, że dzięki ostatnim, kontrowersyjnym decyzjom Sony wiatru w żagle dostali twórcy emulatorów. Ci od RPCS3, czyli zdecydowanie najlepszego emulatora PS3, pochwalili się właśnie zgodnością na poziomie 75% biblioteki konsoli. Ale dlaczego w ogóle to tyle trwa i 20-letni sprzęt łamie zęby dzisiejszym, potężnym blaszakom? Wyjaśniam.

Postawmy sprawę jasno, emulacja PlayStation 3 to nie jest spacerek przez płotki i nie bez kozery rozwój RPCS3 ciągnie się od lat. Wina skomplikowanego procesora Cell – ktoś powie. I będzie mieć dużo racji, ale to nie takie proste. Oczywiście oparta na instrukcjach wektorowych konstrukcja pewne wyzwanie stanowi, mamy jednak w pecetach rozszerzenie AVX2 i samo uzyskanie zgodności na szczeblu binarnym daje się przeskoczyć. Z czym więc właściwy problem? – zapytacie. Otóż z organizacją pamięci.

Dalsza część tekstu pod wideo

PlayStation 3 Super Slim
resize icon

Podobnie jak komputery stacjonarne, PS3 ma dedykowaną pamięć zarówno dla CPU, jak i GPU, tu konkretnie po 256 MB XDR oraz GDDR3, tyle że to dopiero początek historii. Podczas gdy w pecetach komunikacja procesora z grafiką następuje przez interfejs PCI Express, konsola Sony ma własnościowy interfejs FlexIO. Ten spięty jest z układem graficznym RSX, czyli de facto zmodyfikowanym GeForce’em 7800 GTX, poprzez 2 z jego 4 kontrolerów VRAM. W efekcie chip Nvidii może wykonywać operacje zapisu/odczytu wprost na pamięci operacyjnej, z czego deweloperzy, zwłaszcza w przypadku najbardziej zaawansowanych gier, bardzo chętnie korzystali.

Bo też należy zauważyć, że architektura ta była asymetryczna. O ile bowiem RSX mógł do woli wykorzystywać pamięć Cella, o tyle komunikacja w drugą stronę, choć możliwa, była szalenie powolna. Jeśli gra potrzebowała na zasadniczy kod więcej niż 256 MB, to wymuszała ciągłe przepychanie danych przez FlexIO. Sam RSX z kolei szybko stał się układem zbyt powolnym dla nowych tytułów, więc odciążano go poprzez przerzucanie części typowo graficznych obliczeń na procesor Cell. Jako że grafika mogła dane z pamięci procesora błyskawicznie zaciągnąć, w środowisku konsoli wszystko działało doskonale. Odtworzenie tego systemu na innym sprzęcie to już insza inszość.

Szczególnie, że SPE, jak nazwano wektorowe koprocesory Cella, realizujące obliczenia graficzne, to też swoiste pamięciowe dziwactwo. Każdy korzysta z tzw. Local Store, dedykowanej puli pamięci, która zawierała instrukcje binarne. Nie był to jednak cache w dzisiejszym pojmowaniu tego słowa, gdyż LS wymagały ręcznego programowania. Za to nawet wobec obecnych standardów mogą one uchodzić za diabelsko szybkie. Każdy blok miał przepustowość 51,2 GB/s, a w jednym cyklu PS3 mogło adresować aż 4 LS. Łatwo policzyć iloczyn.

Cache procesorów pecetowych nie jest programowalny, więc dane nominalnie przeznaczone dla LS emulator odsyła do RAM-u. Innej opcji nie ma. Tymczasem przepustowość popularnej pamięci DDR4-3200 w Dual Channel to, jak na ironię, też 51,2 GB/s. Chyba nie muszę dodawać, gdzie tkwi problem, a jeśli muszę - brakuje "rury", by dane płynęły z dostateczną prędkością. W każdym razie rezultat jest taki, że wczesne gry z PlayStation 3, które nie korzystają z akceleracji SPE, emuluje się dość łatwo. Ba, w startowego Motorstorm zagracie na Steam Decku. Gorzej, gdy trzeba odpalić coś z serii Killzone albo Uncharted.

Na szczęście sporo w ostatnich latach zrobił postęp technologiczny i wiele dotychczasowych wyzwań można ograć metodą brutalnej siły. Układy AMD z serii Strix Halo, mając 4-kanałowy RAM DDR5-8000 lutowany wprost do chipu, osiągają teoretyczną przepustowość na poziomie 256 GB/s. Na razie co prawda pojawiają się tylko w laptopach premium i mini PC dedykowanych do LLM-ów, z cenami zaczynającymi się od około 10 000 zł, ale jednak. Przy czym już dwukanałowe DDR5 i 128 GB/s, rozwiązanie standardowe we współczesnych składakach, zmieniają zasadniczo reguły gry. Tak więc w końcu emulacja wymagających tytułów z PS3 staje w zasięgu ręki.

Co warte odnotowania, gdy tylko człowiek upora się z problemem przepustowości, to wiele gier z pewnością zyska nowe życie. Ponownie odwołam się do Killzone 2, ale wierzcie mi lub nie, naprawdę ten tytuł lubię. Odpalony w 4K nawet dzisiaj wygląda zjawiskowo, a emulator RPCS3 pozwala dodatkowo wykorzystać do zabawy kontroler DualSense z PS5, który to, nie ukrywajmy, bije poprzednika na głowę pod względem wygody i ergonomii. Wiele legendarnych tytułów niejako zyskuje remaster bez ich remasterowania, dlatego też jestem zdania, że twórcom RPCS3 należy bezwzględnie kibicować. A dodajmy, jest to oprogramowanie open source, więc być może kiedyś samo Sony skusi się nad dorzuceniem emulacji do kolejnej konsoli.

Źródło: własne
gtxxor_OV Strona autora
cropper