Autor Tema: Tutorial iOS (iPhone OS)  (Leído 2020 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Gelon

  • Joshua
  • ****
  • Mensajes: 1652
  • País: es
  • Sexo: Masculino
  • Fecha de registro: Agosto 12, 2004, 09:45:39 am
  • Stranno
    • Ver Perfil
    • Email
Tutorial iOS (iPhone OS)
« en: Febrero 18, 2023, 22:51:45 pm »

iOS, originalmente llamado iPhone OS, es un sistema operativo desarrollado por Apple para su línea de dispositivos móviles iPhone, iPad e iPod Touch.

Fue desvelado al público en el MacWorld de 2007, durante la presentación del iPhone. Su popularidad se disparó de forma inmediata por su sencillo diseño, espectacular accesibilidad e innovadora jerarquía de iconos. La competencia en la época era Symbian, que no tuvo una versión táctil hasta un año y medio más tarde, Windows Mobile 6.1 y PalmOS, con BlackBerry OS en el terreno profesional. Cuatro plataformas que para productividad eran opciones válidas, pero que para el usuario normal se habían quedado completamente anquilosadas y obsoletas, siendo iteraciones, año tras año, del mismo kernel, con muy pocos cambios. Eran sistemas de por si lentos y bruscos, pero encima los OEM los recargaban aún más con capas de personalización que hundían el rendimiento a niveles insoportables, caso del TouchWiz de Samsung para Windows Mobile y Symbian. En comparación, iOS era completamente fluido e inmediato.


Momento exacto en el que el CEO de Nokia supo que el liderazgo de la compañía había llegado a su fin.

El sistema no tuvo aplicaciones, más allá de algunos juegos en Flash a través de Safari, hasta la apertura de la App Store, un año después. Con ella llegó el SDK de desarrollo para iOS y la posibilidad de crear aplicaciones third-party. SDK que fue alabado por los desarrolladores, siendo posiblemente el mejor kit de desarrollo de la historia de los dispositivos móviles hasta ese momento. La entrega de los estudios fue total, ante la perspectiva de que los móviles iban a destruir a las consolas, y tan solo el primer día la App Store ya contó con más de 300 juegos (en comparación, el mercado digital más popular antes de la App Store, el N-Gage Service, apenas contó con 50 juegos en más de dos años de vida). Todo ello coincidió con el lanzamiento de iOS 2.x, que dio soporte al desarrollo third-party y la App Store, entre otras muchas mejoras.


Super Monkey Ball, posiblemente el mejor juego de lanzamiento de la App Store.

Y estos días, 15 años después del lanzamiento de iOS 2.x y la App Store, ha sido publicado el primer emulador de iOS en toda la historia. Hikari no Yume, una programadora suiza entusiasta de Super Monkey Ball y de la cultura japonesa, en general, ha dedicado los últimos meses al desarrollo de touchHLE. Un emulador que, actualmente, solo ejecuta Super Monkey Ball y Crash Bandicoot Nitro Kart 3D, pero que ampliará su compatibilidad y dará soporte a iOS 3.x e iOS 4.x en un futuro. No se descartan versiones superiores (sí aplicaciones 64-bits), pero Hikari no conoce esos sistemas y cuanto más se avanza, más complejo es el sistema (y más APIs usan).

touchHLE

Por el momento, touchHLE no dispone de un interfaz, de modo que se lanza y configura desde la línea de comandos. Hikari ha publicado binarios para macOS y Windows, también es posible compilarlo para Linux, pero aún no hay binarios oficiales. Requiere de un mando para replicar el uso de los acelerómetros, de lo contrario solo podremos usar el panel táctil.

El comando básico para lanzarlo sería:

touchHLE "nombre de archivo.ipa" o touchHLE "nombre de la carpeta.app"

Dependiendo si usamos el instalador IPA o la carpeta app dentro del instalador. El archivo IPA no es más que un ZIP renombrado, de forma que es posible extraer la carpeta, aunque no necesario en las versiones actuales.

Los parámetros para configurar el emulador serían:

--landscape-left
--landscape-right


Para girar el emulador hacia la izquierda y derecha, respectivamente. Si el juego está correctamente programado, acorte de las directrices del SDK de Apple, deberían comunicar al emulador la disposición de pantalla y hacerse este giro automáticamente, sin embargo algunos estudios/desarrolladores pasaban de ello y es necesario girar el emulador manualmente con uno de estos dos comandos. Lo normal es girarlo a la derecha, pero algunos juegos usan la disposición inversa.

--scale-hack=1

Es posible escalar la resolución interna de los juegos por 2x y 3x. Esto es un hack genérico de OpenGL ES y es posible que no funcione con todos los juegos. Además, el aumento de resolución, sumado a un filtrado bilinear, trae consigo los típicos errores de precisión de cualquier emulador, que se suelen traducir en bordes morados en las fuentes (imprecision a la hora de escalar las transparencias) o en los bordes de texturas (modificación de los bordes en texturas "patrón" o seamless).

--deadzone=0

Para configurar la zona muerta del analógico de los mandos. Un valor entre 0 y 1.

--x-tilt-range=60
--y-tilt-range=60
--x-tilt-offset=0
--y-tilt-offset=0


Los dos primeros valores controlan el rango de rotación del dispositivo. Por defecto es de 60º (30º hacia cada lado), si algunos juegos requieren más, podremos aumentarlo hasta 360º (180º para cada lado), aunque 90º suele ser lo máximo que los juegos reconocen. Los dos últimos valores controlan la posición inicial del dispositivo. Por defecto (0º) es un dispositivo sobre una superficie plana. Si queremos tenerlo inclinado hacia nosotros podríamos añadir un ángulo de 45º, por ejemplo. Este último valor es principalmente para cuando el emulador soporte acelerómetros de forma nativa.

COMPATIBILIDAD

touchHLE fue creado, originalmente, para emular Super Monkey Ball, el juego favorito de Hikari. El juego está emulado al 100%. Actualmente también soporta Crash Bandicoot Nitro Kart 3D, estando emulado al 100%, exceptuando el vídeo de inicio. Por el momento no está implementada la reproducción de vídeo. Es posible que funcionen más juegos, puesto que es un emulador del sistema completo, no de dos juegos en particular, sin embargo la compatibilidad debería ser bastante reducida y no se han hecho grandes pruebas para comprobarlo.

DESCARGA
PÁGINA OFICIAL
JUEGOS iOS 2.x
« Última modificación: Febrero 10, 2024, 01:10:16 am por Gelon »

Desconectado Gelon

  • Joshua
  • ****
  • Mensajes: 1652
  • País: es
  • Sexo: Masculino
  • Fecha de registro: Agosto 12, 2004, 09:45:39 am
  • Stranno
    • Ver Perfil
    • Email
Re: Tutorial iOS (iPhone OS)
« Respuesta #1 en: Marzo 16, 2023, 15:03:04 pm »
Entre las últimas novedades:

- Nuevo juego soportado: Touch & Go LITE. Es la demo del juego, parece ser que el juego completo solo se ha preservado en un pack junto con otros dos, el cual también debe estar emulado. En todo caso no he visto ninguno de los dos juegos por ahí, Hikari los debía tener en su iPod Touch 4.
- Arrastrar y soltar: ya es posible arrastrar y soltar un IPA en el ejecutable, para lanzarlo directamente.
- Port a Android: otro programador ha portado touchHLE a Android y ha mostrado un vídeo de Super Monkey Ball funcionando en un móvil. Parece ser que mandará el PR a Hikari próxiamente.

https://twitter.com/ciciplusplus/status/1636135360957755393

Desconectado Gelon

  • Joshua
  • ****
  • Mensajes: 1652
  • País: es
  • Sexo: Masculino
  • Fecha de registro: Agosto 12, 2004, 09:45:39 am
  • Stranno
    • Ver Perfil
    • Email
Re: Tutorial iOS (iPhone OS)
« Respuesta #2 en: Mayo 07, 2023, 03:09:21 am »
Un par de novedades:



- Se ha añadido un selector de aplicaciones (carpetas app o instaladores ipa). La primera vez que ejecutéis el emulador se creará la carpeta touchHLE_apps, meted ahí las aplicaciones y aparecerán en un menú al ejecutar nuevamente el emulador.
- La versión de Android se ha añadido a la rama principal, desarrollada fundamentalmente por ciciplusplus, con correcciones y mejoras de Hikari. Actualmente aún hay cosas que mejorar, con lo que todavía no está disponible en Actions y personalmente no he conseguido compilarla (no soy muy experto en Android, lo único que he compilado para esta plataforma fue sm64-port en su día).

Salvo para Android, compilar ya no es estrictamente necesario, ya que Hikari añadió soporte para Github Actions. Basta con ir a la pestaña, elegir la última versión compilada y descargar los binarios de la parte inferior.







Teóricamente se supone que se añadió soporte para el Spore de EA hace un par de meses, sin embargo no funciona ninguna versión que haya visto. O esos cambios no se han subido al repositorio o se trata de alguna versión concreta que no he localizado.

Desconectado Gelon

  • Joshua
  • ****
  • Mensajes: 1652
  • País: es
  • Sexo: Masculino
  • Fecha de registro: Agosto 12, 2004, 09:45:39 am
  • Stranno
    • Ver Perfil
    • Email
Re: Tutorial iOS (iPhone OS)
« Respuesta #3 en: Mayo 12, 2023, 17:19:05 pm »


Los cambios de Spore puedo confirmar que no están disponibles en el repositorio. Hikari aún no los ha subido porque el juego no es consistente, requiere de múltiples hacks y ni siquiera es posible finalizar el primer nivel.

En otro orden de cosas, el próximo juego soportado será Fastlane. Una copia de Ridge Racer originalmente desarrollada para la consola Tiger Gizmondo. Como casi todo el catálogo de esta consola, el juego fue cancelado antes de salir al mercado. Luego el desarrollo se movió a Playstation Portable, hasta que la App Store llegó para reventar el mercado y finalmente los autores decidieron lanzarlo en iOS. Lamentablemente, siendo uno de los primeros juegos de carreras en iOS, utilizaba únicamente controles por movimiento, pero dentro de lo que cabe son bastante suaves y jugables.
« Última modificación: Mayo 12, 2023, 20:12:01 pm por Gelon »

Desconectado Gelon

  • Joshua
  • ****
  • Mensajes: 1652
  • País: es
  • Sexo: Masculino
  • Fecha de registro: Agosto 12, 2004, 09:45:39 am
  • Stranno
    • Ver Perfil
    • Email
Re: Tutorial iOS (iPhone OS)
« Respuesta #4 en: Mayo 21, 2023, 11:31:28 am »


Entre los últimos cambios, Hikari ha añadido soporte para Fastlane, como mencioné en el último post, así como mapeo de pantalla táctil a botones del mando. De momento es una implementación muy básica, solo soporta un único mapeo/botón y no es posible mapear la zona al teclado, solo a los 4 botones principales de un mando XInput.



Por su parte, ciciplusplus, el colaborador más activo tras Hikari, ha añadido soporte para Wolfenstein 3D, uno de los numerosos ports del clásico de iD a iOS. Concretamente ha sido la versión de ZODTTD, que llegó un tiempo después del port original por parte del propio John Carmack. Ambos baneados de la App Store por diferentes violaciones de licencias. Tras estos ya llegó el Classic, que estuvo muchos años en la tienda, hasta que fue reemplazado por el port actual de la iD Software moderna. No estoy muy seguro por qué han usado este semi-raro port del juego, aunque supongo que tenga que ver con que tiene el código fuente disponible.

Otro autor, LennyKappa, ha añadido nuevas funciones para el soporte de iOS 3.x. Un cuarto autor, KiritoDv, ha añadido soporte para otro juego más, MisteryMania. Si bien este con errores gráficos, al contrario que el resto de los soportados hasta el momento, excepto Spore, cuyo soporte aún no está disponible en la rama principal por ser muy prematuro.

Parece que esto coge carrerilla.

Desconectado Vladd

  • Calculadora
  • Mensajes: 10
  • País: 00
  • Sexo: Masculino
  • Fecha de registro: Mayo 30, 2022, 00:10:35 am
    • Ver Perfil
Re: Tutorial iOS (iPhone OS)
« Respuesta #5 en: Septiembre 08, 2023, 11:55:41 am »
Hay una nueva versión del emulador talvez le das un vistazo  :)