Por qué el Delfín no está llegando a la App Store.

Hace dos semanas, Apple modificó sus pautas de la App Store para permitir emuladores de juegos retro en la App Store. Esta semana, Delta, un emulador multi-sistema que anteriormente solo estaba disponible a través de AltStore, fue lanzado en la App Store.

Desde que ocurrieron estos eventos, nos han preguntado muchas veces si enviaremos DolphiniOS (nuestra versión de Dolphin) a la App Store.

Desafortunadamente, no.

Apple todavía no nos permite usar una tecnología vital necesaria para que Dolphin funcione con buen rendimiento: JIT.

¿Qué es JIT?

La GameCube y la Wii tienen una CPU basada en PowerPC en su interior. Todos los dispositivos modernos de Apple utilizan una CPU basada en ARM. No es posible ejecutar directamente código PowerPC en una CPU ARM, y viceversa. Por lo tanto, si queremos ejecutar un juego de GameCube o Wii en un iPhone, es necesario traducir el código PowerPC del juego a ARM para que la CPU lo pueda entender.

Dolphin utiliza algo llamado un recopilador Just-in-Time (JIT) para lograr esto. Cuando la consola emulada quiere ejecutar código de juego, Dolphin usará su JIT para traducir el código PowerPC a ARM, y luego ejecutar los resultados.

JIT en iOS

Desafortunadamente, Apple generalmente no permite que las aplicaciones utilicen recompiladores JIT en iOS. Las únicas excepciones son Safari y los navegadores web alternativos en Europa.

Enviamos una solicitud de interoperabilidad de DMA a Apple para el soporte de JIT, pero Apple denegó la solicitud hace unas semanas.

Es difícil decir exactamente por qué Apple se muestra tan reacia a abrir el soporte de JIT. Es posible que lo consideren un riesgo de seguridad. (Al observar las diversas restricciones y limitaciones impuestas a los JIT de JavaScript para navegadores web alternativos en Europa, parecen estar preocupados por su potencial de ser abusados.)

LEAR  The watchdog warns that competition is at risk due to selective investments by cloud giants in startups. La competencia está en peligro a medida que los gigantes de la nube invierten selectivamente en startups, advierte un organismo de control.

¿Dolphin sin JIT?

Técnicamente es posible ejecutar Dolphin sin su recopilador JIT. Al hacerlo, Dolphin utiliza algo llamado “intérprete” para ejecutar el código PowerPC.

Desafortunadamente, el intérprete es muchas veces más lento que el recopilador JIT.

Hemos adjuntado dos videos de DolphiniOS funcionando a continuación, para que puedas juzgar la diferencia de rendimiento por ti mismo. Uno utiliza el intérprete y el otro utiliza JIT.

Sin JIT (usando Intérprete)

Con JIT

Como puedes ver, es prácticamente injugable. Estos clips fueron grabados incluso en un iPhone 15 Pro Max, el iPhone de gama más alta actualmente disponible.

Aunque podríamos enviar DolphiniOS a la App Store solo con el intérprete, probablemente recibiríamos quejas interminables de los usuarios sobre el rendimiento deficiente. Es posible que la Revisión de la App también nos rechace de todos modos porque la aplicación es inutilizable.

Conclusión

Nos encantaría lanzar DolphiniOS en la App Store o trabajar con el proyecto Dolphin Emulator para obtener una compilación oficial en la App Store.

Desafortunadamente, en este momento, no es posible a menos que Apple flexibilice sus restricciones sobre JIT.