Найти тему

Пока эмулятор Delta в каталоге App Store находится на вершине чартов, другой популярный под названием DolphiniOS в нем вряд ли появится в обозримом будущем. Потому что Apple боится открыть сторонним разработчикам JIT-компиляторы. Собственно, о чем идет речь. Слово самим авторам Dolphin...


Что такое JIT?

В консолях GameCube и Wii установлен процессор на базе PowerPC. Все современные устройства Apple используют процессор на базе ARM. Невозможно напрямую запустить код PowerPC на процессоре ARM, и наоборот. Поэтому, если мы хотим запустить игру GameCube или Wii на iPhone, необходимо перевести PowerPC-код игры в ARM, чтобы процессор смог его понять.

Для этого в Dolphin используется так называемый рекомпилятор Just-in-Time (JIT). Когда эмулируемая консоль захочет запустить код игры, Dolphin с помощью JIT переведет код PowerPC в ARM, а затем выполнит результат.

JIT на iOS

К сожалению, Apple обычно не разрешает приложениям использовать JIT-рекомпиляторы на iOS. Исключение составляют Safari и альтернативные веб-браузеры в Европе.
Мы отправили в Apple запрос для поддержки JIT, но несколько недель назад компания его отклонила.

Сложно сказать, почему Apple так не решается открыть поддержку JIT. Возможно, они считают это риском для безопасности. (Глядя на различные ограничения и лимиты, наложенные на JavaScript JIT для альтернативных веб-браузеров в Европе, можно сделать вывод, что они действительно обеспокоены возможностью злоупотреблений).

А если запускать игры без JIT-компиляции? Разработчики Dolphin подтверждают, что это можно, но будет все ооооочень медленно. А для примера выше два ролика с гонками Марио с JIT-компиляцией и без нее.

Так что не в этот раз, не в этот раз.
1 минута