Po tym, jak Apple umożliwił dystrybucję emulatorów w App Store, a także pozwolił korzystać z alternatywnych sklepów z aplikacjami, emulatory gier zdominowały szczyty rankingów pobrań. Wielu graczy zastanawia się teraz, kiedy pobiorą emulatory nowszych konsol.
Emulatory zdominowały rankingi popularności aplikacji w App Store. Wśród nich królem jest Delta – wszechstronny emulator starszych konsol Nintendo, do tego bez reklam oraz mikro-transakcji. Deltę na terenie Unii Europejskiej można pobrać, korzystając z alternatywnego sklepu z aplikacjami o nazwie AltStore PAL. Płatnego, ale skromne 9 zł to znacznie mniej niż należy się producentowi Delty.
Najnowsza konsola Nintendo obsługiwana przez emulator na iPhonie to Nintendo DS. Co z Wii, GameCube i 3DS?
Posiadacze iPhone’ów uruchamiają gry z Game Boya Advance i SNES-a, ale wielu chciałoby przypomnieć sobie także nieco nowsze hity Nintendo, dedykowane takim konsolom jak GameCube, Wii czy Nintendo 3DS. Zwłaszcza, iż emulatory tych platform od dłuższego czasu są dostępne na komputerach osobistych, z popularnym Dolphinem na czele.
Zdaniem wielu, skoro iPhone potrafi już natywnie uruchamiać takie gry jak Death Standing czy Resident Evil 4 Remake, emulacja GameCube’a nie powinna stanowić problemu. Okazuje się jednak, iż sytuacja wcale nie jest taka prosta jak mogłoby się wydawać, na skutek ograniczeń narzucanych przez Apple’a, a także architektury układów w telefonach iPhone.
Twórca popularnego emulatora Dolphin tłumaczy, czemu nie wyda programu na telefony iPhone.
Potężnym problemem okazuje się opór Apple’a, by umożliwić producentom aplikacji wykorzystanie kompilacji JIT. JIT (just-in-time) to metoda komplikacji umożliwiająca uruchamianie programów – w tym gier – niezależnych od architektury danego systemu. Warto pokazać to na uproszczonym przykładzie, obrazującym zalety JIT:
Emulując grę z konsoli GameCube w „tradycyjny” sposób, najpierw odbieramy polecenie w języku specyficznym dla GameCube, następnie tłumaczymy je na język iOS, odpowiadamy w języku iOS, a potem tłumaczymy odpowiedź na język GameCube. Każde polecenie – choćby takie samo – ponownie przechodzi przez ten cykl. JIT pozwala natomiast czytać zapytanie bezpośrednio w języku GameCube i odpowiadać w języku GameCube, w razie potrzeby trzymając uzyskane odpowiedzi w pamięci.
Konsole takie jak GameCube czy Nintendo Wii korzystają z architektury mikroprocesorów PowerPC, podczas gdy urządzenia Apple’a oparte są o architekturę ARM. Te dwa odmienne rozwiązania wymagają nieustannego tłumaczenia kodu z PowerPC na ARM i z powrotem, co negatywnie oddziałuje na wydajność emulowanych gier. Stąd popularność rozwiązań takich jak JIT, rozwiązujących problem odmiennych architektur.
Wykorzystanie kompilacji JIT drastycznie usprawnia emulację, co przekłada się na wydajność emulowanych gier. Bez JIT hity z Wii oraz GameCube to na iPhonie pokaz slajdów. Niestety, Apple nie umożliwia producentom aplikacji obsługi kompilacji JIT na iOS, chociaż umożliwia to twórcom aplikacji na MacOS. Być może firma zmieni swoje podejście w przyszłości, widząc jak wielką popularnością cieszą się emulatory w App Store.
Na ten moment gry z GameCube oraz Wii na iPhonie to pokaz slajdów.
Dowodzi tego DolphiniOS, stworzony na bazie kodu popularnego Dolphin Emulatora. Program do uruchamiania gier z GameCube działa odpowiednio gwałtownie wyłącznie dzięki JIT. Bez tej metody kompilacji rozgrywka zamienia się w bolesny (również dla uszu) pokaz slajdów. Producenci DolphiniOS kilka tygodni temu zgłosili się do Apple’a o pozwolenie na wykorzystanie JIT, ale spotkali się z odmową technologicznego giganta.
Apple najwyraźniej obawia się, iż JIT wpłynie negatywnie na poziom bezpieczeństwa użytkowników oraz ich własny poziom kontroli. Póki firma nie zweryfikuje swojego podejścia, emulatory nowszych konsol na iPhone’ach stoją pod dużym znakiem zapytania.