Dziesiątki konsol w swojej kieszeni – stan emulacji na urządzeniach mobilnych

W ostatnim tekście traktującym o mobilnym graniu, byłem mocno niemiły dla tego jakże potężnego rynku. Wspomniałem tam jednak o tym, że „jest jedna rzecz, w której smartfony sprawdzają się bardzo dobrze, jeśli chodzi o gaming”. Cóż, po spojrzeniu na tytuł tego tekstu, wnioski powinny nasunąć się same – będziemy tu bowiem dywagować o emulacji. Postanowiłem zrobić głębokiego nura w ten sektor oprogramowania i przyjrzeć się, jak prezentuje się stan emulowania konsol circa 2018 na platformach mobilnych. 

Musicie przyznać, że jest coś fascynującego w możliwości posiadania potężnych bibliotek wielu konsol, zaledwie w jednym urządzeniu, w dodatku w kieszeni. Na wiele starszych maszynek do grania ukazało się tysiące genialnych, ponadczasowych produkcji, które do dziś trzymają bardzo wysoki poziom i inspirują multum współczesnych twórców. Większość z nich jest w dodatku bardzo grywalna po dziś dzień, więc nie skorzystanie z takiego dobrodziejstwa jest okropnym marnotrawstwem.

Po co w ogóle powstał ten tekst? Chciałbym pokazać Wam, że smartfony czy tablety to obecnie genialne platformy do nadrabiania wielu klasyków. Przede wszystkim jednak skupię się na tym, żebyście w jednym miejscu mieli cały zbiór informacji o obecnym (i też nieco przyszłym) stanie tego w sumie niszowego segmentu rozrywki.

W obliczu tak nieciekawego rynku gier mobilnych, emulacja wydaje się wybawieniem dla gamingu na platformach mobilnych. Z mojego punktu widzenia, ciekawiej jest przeżyć jakąś arcyciekawą przygodę z Linkiem w którejś odsłonie The Legend of Zelda, niż w żmudny sposób zabić czas przy kolejnej partyjce Candy Crush. Jeśli podzielasz moje zdanie… albo go nie podzielasz, ale jesteś zaciekawiony koncepcją emulowania na „mobilkach”, to zapraszam to dalszej lektury.

źródło: techcrunch.com

Co to jest emulacja i dlaczego pożera tyle zasobów?

Zanim jednak przejdziemy do omówienia całego rynku emulatorów, warto byłoby zacząć od wyjaśnienia sobie zjawiska „odwzorowywania oprogramowania” i idących z nią wielu trudności. Wikipedia mówi o pojęciu emulacji w taki sposób:

Emulacja – programowe symulowanie działania określonego oprogramowania lub platformy sprzętowej przez inny system lub na sprzęcie innego typu.

Imitowanie danej konsoli nie jest zatem jakimś mistycznym, złowrogim procederem. To zwyczajne symulowanie sprzętu/programu w taki sposób, żeby ten zadziałał na nowszej architekturze w praktycznie oryginalnym stanie.

Wiele gier zostało w końcu napisanych z myślą o konkretnym sprzęcie, który z perspektywy dzisiejszych czasów, jest po prostu archaiczny pod względem technologii. Architektury wielu układów (a zwłaszcza tych mobilnych) w ciągu ostatnich lat uległy wielu poważnym zmianom, stąd bez emulacji moglibyśmy się nacieszyć ich działaniem tylko przy użyciu oryginalnego hardware’u.

Architektura PlayStation 2… | źródło: wikimedia.org

Symulowanie brzmi zatem banalnie prosto na papierze, ale z perspektywy sprzętu czy systemu operacyjnego, który ma to emulować, cały proces jest istnym piekłem. Wytłumaczę to na przykładzie. Procesory starszych PlayStation korzystały z instrukcji MIPS, które znacząco różnią się od tych wykonywanych przez mobilne układy ARM czy też komputerowych x86. Emulator musi być zatem w stanie wziąć te wszystkie archaiczne instrukcje procesora, przetłumaczyć to na docelowy standard i wreszcie uruchomić to na ekranie dzisiejszego sprzętu, a wszystko to w czasie rzeczywistym. Oczywiście pierwotna konsola nie składa się wyłącznie z jednostki centralnej, ale też z modułu graficznego, dźwiękowego i chociażby pamięci. Każda instrukcja wysyłana przez taki przykładowy komponent, również musi zostać odpowiednio przeniesiona na zrozumiały kod dla posiadanej przez nas maszynki. Ach, no i dalej wszystko dzieje się w czasie rzeczywistym. Sprawa nie wydaje się już taka prosta, prawda?

Dołóżmy do tego również fakt, że twórcy emulatorów często nie mają dostępu do kodu źródłowego danego programu czy konsoli. Tym samym często nie wiedzą jak dokładnie działa wybrane urządzenie, co widać po bardzo powolnym procesie tworzenia takiego oprogramowania. Trwa to latami i okraszone jest całą masą bólów, również ze strony naciskających prawnie dużych koncernów. Na dzień dzisiejszy (w końcu) na komputerach godnie zasymulujemy takie urządzenia jak PS2, Wii czy GameCube, a ostra praca wre też nad imitacją PS3 czy WiiU. Tylko jak to się ma w przypadku smartfonów?

… i dla porównania przykładowa architektura ARM | źródło: electroons.com

Kwestia moralności

Zanim jednak odpowiemy sobie na to pytanie, warto poruszyć sprawę legalności samych emulatorów. Wokół emulacji przez lata urosło wiele mitów, które stawiają to zjawisko w bardzo niekorzystnym świetle. Nintendo na swojej oficjalnej stronie porównuje symulowanie ich konsol z piractwem i jednoznacznie tępi tego typu praktyki. Z drugiej jednak strony twórcy takiego oprogramowania jeszcze ani razu nie przegrali rozprawy w sądzie.

Przykładem niech będzie tu sprawa z przełomu tysiąclecia związana z emulatorem Connectix Virtual Game Station. Było to pierwsze sprzedawane komercyjnie oprogramowanie tego typu, które o dziwo osiągnęło spory sukces. Nie spodobało się to Sony, które wniosło w kierunku firmy Connectix aż 3 pozwy sądowe, gdzie ostatni z nich oddalono w październiku 2000 roku. Było to nieoficjalne zwycięstwo wszelkich twórców emulatorów nad producentami konsol. Od tamtej pory niewiele firm podjęło się podobnych prób, a nawet jeśli już to zrobiły, to ostatecznie kończyło się klęską.

Jak to możliwe? Deweloperzy emulatorów nie naruszają znaków towarowych czy praw danego producenta konsoli, bo sami dobrze wiedzą, czym potencjalnie mogłoby się to skończyć. Ich oprogramowanie często nie wykorzystuje też pierwotnego kodu z systemu np. PlayStation, dzięki czemu autorzy absolutnie umywają ręce od wszelkich zarzutów o złamanie praw autorskich. Zatem z poziomu ogólnie przyjętych przepisów, trudno cokolwiek zarzucić autorom.

Nintendo i ich komunikat odnośnie emulacji | źródło: nintendo.com

Emulatory są często nieprawidłowo kojarzone z piractwem, ponieważ piraci wykorzystują tego typu oprogramowanie do grania w klasyki przy pomocy nielegalnych kopii. Ten proceder jest absolutnie zakazany i w świetle polskich kodeksów, żeby uznać granie na takim oprogramowaniu za legalne, obraz/ROM danego tytułu musimy wykonać sami… z oryginalnego nośnika. W przypadku starych gier to nieco ekstremalna zasada, ale jak mówią stare, rzymskie księgi prawnicze – dura lex, sed lex, czyli twarde prawo, ale prawo.

ROM-y czy obrazy produkcji sprzed lat i ich użytkowanie to z punktu prawa bardzo dyskusyjna sprawa. Skoro dany tytuł nie jest już dostępny w sprzedaży od kilkunastu wiosen, to jak inaczej potencjalny Kowalski jest w stanie się w niego zaopatrzyć? Z drugiej strony właściciel praw autorskich może egzekwować tego typu przewinienia, nawet po dzień dzisiejszy. W końcu wiele firm próbuje wydawać klasyki w odświeżonych formach, choć nie każdą produkcję spotyka taki los. Ciężko zatem nie nazwać tego punktu „szarą strefą”, którego to moralną ocenę muszę zostawić Wam samym.

Przy jakich konsolach najlepiej sprawdzi się smartfon z Androidem?

Jaki smartfon jest wymagany do płynnej zabawy z emulacją konsol? Odpowiedź brzmi – to zależy w symulowanie czego mierzymy. Na chwilę obecną urządzenia mobilne w zupełności radzą sobie z nieco starszymi konsolami. PSP chodzi całkiem nieźle. Nintendo DS, pierwsze PlayStation, GameBoy Advance i starsze maszynki do grania są za to wysoce kompatybilne.

Znaczy to mniej więcej tyle, że praktycznie wszystkie popularniejsze tytuły z biblioteki tych urządzeń są grywalne. Liczba klatek na sekundę jest praktycznie idealna i sięga wartości 30 czy też 60. Z kolei same emulatory nie wywołują na ekranie jakiejś większej ilości artefaktów graficznych. Nie spotkałem się też ani razu z sytuacją, gdzie jakiś tytuł zwyczajnie odmawiał posłuszeństwa, przez co finalnie nie mogłem skończyć jakiejś przygody. Trzeba zatem przyznać, że przynajmniej jeśli mówimy o graniu w stare, ale wciąż jare produkcje, to obecne smartfony sprawdzą się perfekcyjnie.

źródło: www.xb1emu.com

Dodam też od razu, że starsze emulatory testowałem przy pomocy dwóch smartfonów – Moto G6 oraz Moto G6 Plus. Są one wyposażone w kolejno chipsety Snapdragon 450 w parze z Adreno 506 i Snapdragonem 630 z Adreno 508. Ten pierwszy model zwłaszcza w zupełności wystarczył do płynnego biegania i zbierania Pokemonów w wersji HeartGold na emulowanym DS-ie. O reszcie sprzętu typu PlayStation czy GameBoy Advance nie ma co nawet wspominać, bo spisywały się wręcz idealnie. Jedynie przy okazji niektórych tytułów z PSP napotkałem nieco kłopotów, ale spora ich część działała w zadowalająco płynny sposób.

Spis treści:

1. Wstępniak, kilka słów o moralności emulatorów i obecny stan emulacji na Androidzie
2. Co dalej w emulacji? Wątpliwości, ograniczenia techniczne i podsumowanie