Dzięki kobiecej dłoni emulator konsol Nintendo w ciągu dwóch miesięcy ogromnie przyspieszył

Strona główna Aktualności

O autorze

Nie da się ukryć, że Nintendo ma problemy, jego konsola ósmej generacji sprzedaje się znacznie gorzej, niż oczekiwano. Analitycy zaczynają nawet stawiać pytania o samo przetrwanie japońskiego producenta, pesymiści uważają nawet, że może on podzielić los Segi i zostać zmuszonym do porzucenia własnego sprzętu, by skupić się na tworzeniu gier na platformy konkurencji. Sytuacja wygląda tym bardziej niezręcznie, że gdy Nintendo ogłasza kolejne kwartały z wynikami na czerwono, niezależni programiści pracujący nad Dolphinem, wolnym emulatorem konsol Wii i GameCube, odnoszą znaczące sukcesy. Ich dzieło rozwija się w zaskakującym tempie, pod wieloma względami stając się czymś lepszym niż oryginalny sprzęt.

Jesienią zeszłego roku informowaliśmy o wydaniu wersji 4.0 Dolphina, która wprowadziła m.in. wsparcie dla obsługi sieci bezprzewodowych w emulowanym Wii i zupełnie nowy podsystem dźwięku, dzięki któremu możliwe jest odtwarzanie nawet przestrzennych efektów Dolby Pro Logic II z najbardziej zaawansowanych gier. Poprawiono wtedy backend grafiki OpenGL, zoptymalizowano emulację na Linuksie i OS X, pokazano też wstępną wersję emulatora dla urządzeń z procesorami ARM (działającą, choć 1 FPS na mocnych telefonach raczej nie zachwyca).

Od tego czasu wydarzyło się bardzo dużo. Przede wszystkim Dolphin nie jest już dostępny na platformy 32-bitowe (zarówno dla Windows jak i na Linuksa), przestał też wspierać DirectX 9. Zespół programistów uznał, że wspieranie przestarzałej biblioteki tylko ich spowalniało, zaś 32-bitowe kompilacje to tylko gorsza wydajność – w praktyce więc Dolphina na Windows XP nie uruchomimy. Emulator wymaga teraz 64-bitowego systemu i DirectX 11 lub OpenGL 3.

Stabilna wersja Dolphina 4.0.2, którą pobrać możecie z naszego repozytorium oprogramowania jest już dziś jednak sporo z tyłu względem tego, co zobaczyć można w rozwojowych wersjach emulatora. Kilka miesięcy temu do przedsięwzięcia dołączyła programistka, niejaka FioraAeterna, tworząc łatki, które drastycznie zwiększyły wydajność gier. Nie wiadomo kim jest, poza tym, że zawodowo zajmuje się programowaniem, a od dziecka interesuje emulowaniem konsol na PC. Jej wkład w Dolphina dotyczy przede wszystkim ulepszeń emulacji architektury PowerPC z wykorzystaniem kompilatora JIT.

Efekty były zaskakująco dobre. Pokazane przez Fiorę w sierpniu tego roku łatki pozwoliły przyspieszyć działanie kompilatora JIT o 26%. Jak tłumaczyła, znalazła lepsze metody optymalizowania bloków kodu (przenoszenia instrukcji, łączenia instrukcji itp.) i lepsze metody implementowania poszczególnych rozkazów PowerPC w mniejszej liczbie rozkazów x86 niż wcześniej. Miesiąc później pokazała kolejne ulepszenia JIT, które zwiększyły wydajność kompilatora o 16%, a także usprawnienia dla interpretera, dzięki którym wydajność tych fragmentów kodu, których nie dało się przepuścić przez JIT wzrosła o niemal 100%.

Wkład Fiory dotyczył także naprawienia kilku usterek, które były kompletnie nieoczywiste. Okazało się np. że w pewnym miejscu Wii dziwnie zaokrąglał wyniki zmiennoprzecinkowego mnożenia. Zaimplementowanie tego w emulatorze nie było kosztowne, a pozwoliło nagle naprawić działanie fizyki w Zeldzie czy duszków w Mario Kart.

Oczywiście swój wkład w Dolphina ma też wielu innych programistów. To w ogóle bezprecedensowa sytuacja – większość emulatorów rozwija się bardzo powoli, wręcz zamiera, tymczasem emulacja Wii czy GameCube posuwa się wielkimi krokami naprzód. W ciągu kilku miesięcy wydajność pod Dolphinem wyścigówki F-Zero GX wzrosła o ponad 100%, zaś popularnego RPG Xenoblade Chronicles o 40%. Zbliżamy się do momentu, gdy nawet tak wymagające gry jak Star Wars: Rogue Leader czy Rebel Strike staną się grywalne pod Dolphinem.

Grywalne? To za mało powiedziane. Większość gier z konsol Nintendo wygląda dziś na PC znacznie lepiej, niż na oryginalnym sprzęcie. Możemy zmusić wiele tytułów do działania w trybie panoramicznym, w praktycznie dowolnej rozdzielczości (posiadacze mocnych kart graficznych już uruchamiali Super Mario w 4K, a nawet na kartach takich jak GTX 750 Ti bez problemu można grać w 1080p), a jak ktoś ma stereoskopowe okulary Nvidii, to może nawet zobaczyć, jak gry z Wii wyglądają w 3D. Żaden inny emulator nie zdołał nawet zbliżyć się do takich wyników – przykładowo PCSX2, mimo wielu lat prac, wciąż jest w stanie uruchomić poprawnie jedynie garstkę gier z Playstation 2, wymagając przy tym bardzo dużej mocy obliczeniowej.

© dobreprogramy