Почему эмулятор GameCube/Wii может быть недоступен в iOS App Store

Почему эмулятор GameCube/Wii может быть недоступен в iOS App Store


Почему эмулятор GameCube/Wii может быть недоступен в iOS App Store

Last week’s release of the Delta emulation suite finally gave iOS users easy, no-sideloading-required access to classic Nintendo game emulation up through the Nintendo 64 era. When it comes to emulating Nintendo’s subsequent home consoles on iOS, though, some technical restrictions imposed by Apple are making it difficult to get a functional emulator on the App Store.

В недавней статье в блоге разработчик OatmealDome из DolphiniOS обсуждает, как их форк Dolphin, который запускает известный эмулятор GameCube и Wii на iOS, использует компиляцию Just-In-Time (JIT). Этот процесс преобразует инструкции PowerPC от ретро-консолей в код, совместимый с архитектурой Apple ARM. Однако из-за правил App Store, запрещающих приложениям устанавливать исполняемый код (раздел 3.3.1B), JIT-перекомпиляция обычно запрещена в iOS, за исключением, например, веб-браузеров. Хотя для этого ограничения могут быть веские причины безопасности, оно может создать проблемы для разработчиков, создающих такие инструменты, как сторонние браузерные движки (за исключением ЕС).

Разработчики MacOS имеют возможность явно включать JIT-перекомпиляцию в своих приложениях с помощью специального разрешения. Однако это исключение не распространяется на разработку приложений для iOS. Разработчики iOS не имеют этой опции по умолчанию. Некоторые альтернативные магазины приложений и загруженные неопубликованные приложения, такие как DolphiniOS, нашли способы включить JIT-компиляцию как на взломанных, так и на не взломанных устройствах iOS. Однако эти методы могут быть сложными и могут не работать с новыми обновлениями iOS.

Несколько недель назад Apple отклонила просьбу OatmealDome об освобождении от ограничений «точно в срок» (JIT), согласно европейскому закону DMA (Закон о цифровых рынках).

Зачем нужен JIT

Эмуляторы GameCube и Wii, такие как Dolphin, технически могут работать без JIT-перекомпиляции. Вместо этого простой интерпретатор может транслировать код PowerPC, не требуя обширной перекомпиляции. Однако, по данным OatmealDome, использование интерпретатора сопряжено со значительными накладными расходами на обработку, что, к сожалению, делает его намного медленнее, чем JIT-перекомпиляция. Чтобы проиллюстрировать этот момент, OatmealDome представил видео эмуляции GameCube на iPhone 15 Pro Max, работающей на неиграбельно медленной скорости посредством интерпретации, и сравнил его с JIT-перекомпилированным примером, который без особых усилий работал на полной скорости.

Вместо того, чтобы напрямую отправлять DolphniOS только с интерпретатором в App Store, целесообразнее добавить улучшения для лучшего взаимодействия с пользователем и повышения производительности. В противном случае мы можем столкнуться с многочисленными жалобами пользователей на медлительность и потенциальным отказом от проверки приложения из-за неприемлемой функциональности приложения.

Emulation aficionados may also remember that a planned Steam version of Dolphin was pulled from that storefront after Nintendo expressed concerns to Valve over the emulator’s embedding of the Wii Common Key. That means that any App Store-approved version of Dolphin might have to navigate some tricky legal waters in addition to Apple’s technical restrictions.

Последняя политика Apple App Store в отношении эмуляции игр явно разрешает использование эмуляторов ретро-консолей, но не устанавливает четких границ того, что представляет собой ретро-консоль. Хотя некоторые могут спорить по поводу семантики этого определения, мы считаем, что Wii, представленная почти два десятилетия назад, по-прежнему подпадает под даже самую строгую «ретро» классификацию, которую Apple может применить.

Смотрите также

2024-04-22 19:55