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

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado Gelon

  • Joshua
  • ****
  • Mensajes: 1675
  • 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 presentado al público, junto al iPhone, en el MacWorld de enero de 2007. Se pueden criticar muchas cosas de Apple, especialmente su pasión por "inventar" cosas que ya estaban inventadas, pero el iPhone era el futuro y aquella presentación cambió el paradigma de la telefonía móvil para siempre. Las compañías clásicas llevaban estancadas ya varios años y los sistemas móviles de la época se estaban volviendo pesados y obsoletos: Symbian, Windows Mobile y PalmOS. Estas plataformas iteraban continuamente sobre el mismo kernel y fiaban sus "novedades" a capas de personalización ultra-recargadas que los procesadores de la época apenas podían mover, llegando a niveles de fluidez insoportables, cosas como el TouchWiz de Samsung. iOS llegó para cambiarlo todo con un look sencillo y moderno, una accesibilidad espectacular y una innovadora jerarquía de carpetas e iconos. Sumado a la tecnología capacitiva, hacían de la experiencia un uso fluido e inmediato.


Por primera vez en la historia se hacía el gesto 'Pinch to Zoom'

iPhone OS no tuvo aplicaciones, más allá de algunos juegos 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 y la posibilidad de crear aplicaciones de terceros. La entrega de los estudios fue total, ante la perspectiva de que los móviles iban a reemplazar 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 hasta la fecha, el N-Gage Service de Nokia, apenas contó con 50 juegos en dos años de vida.


Super Monkey Ball — El juego más popular de los primeros días de la App Store

Durante más de 15 años había sido imposible jugar a juegos de iOS fuera del ecosistema de Apple. Sin embargo, a principios de 2023, una programadora suiza conocida como Hikari, apasionada de la saga Monkey Ball, decidió emular esta primera versión de iOS tan solo para poder jugar al clásico de Sega en cualquier dispositivo. Así nació un touchHLE que, a la larga, ha ido soportando cientos de juegos más, gracias a colaboradores apasionados de este sistema. Actualmente la lista cuenta con unos 130 juegos completamente jugables, así como casi 100 más que funcionan con problemas.


Spore — Otro clásico de los primeros días de la App Store

Muchos clásicos exclusivos de Gameloft han pasado a ser jugables ya que un entusiasta de esta compañía (¿quién no lo es?) es actualmente el mayor colaborador del emulador y quien ha añadido la mayoría de contribuciones últimamente: ciciplusplus.

touchHLE empezó emulando únicamente iOS 2.x, la primera versión del sistema, que ya contaba con miles de juegos en la época. Actualmente tiene también soporte para juegos iOS 3.x y preliminar para 4.x. Hikari ha dicho en varias ocasiones que no está entre sus planes pasar de ahí. Cuanto más nuevas son las versiones de iOS más complejidad, mayor variedad de hardware y mayor cantidad de APIs.

touchHLE

El interfaz de touchHLE se limita a un lanzador de aplicaciones, sin más virguerías. Para configurarlo es necesario o bien añadir los parámetros vía línea de comandos o bien añadir los parámetros en el archivo de configuración (touchHLE_default_options.txt). En Android solo existe esta segunda opción, de no querer lanzarlo los juegos con los valores por defecto. Todos los parámetros los tenéis explicados en el archivo de ayuda (OPTIONS_HELP.txt).

  • --fullscreen: Lanzar el juego a pantalla completa. En Android solo es posible lanzarlo así.
  • --landscape-left y --landscape-right: Lanzar el juego rotado hacia la izquierda o derecha: Estas dos opciones, en principio, no son necesarias, ya que el propio juego es capaz de decirle a iOS en qué disposición debe funcionar.
  • --scale-hack=X: El factor de escala al que podemos aumentar la resolución del juego. No siempre funcionará, depende de cómo se haya programado el juego y las API que use.
  • --deadzone=X: La "zona muerta" de los joystick, en la cual el emulador ignorará los inputs. Esto sirve para evitar movimientos involuntarios en el caso de que nuestro joystick tenga algo de holgura. Los valores van de 0 a 1. Es decir, si queremos un 10% de deadzone sería 0.1.
  • --disable-analog-stick-tilt-controls: Por defecto, touchHLE usa el analógico izquierdo de un mando para simular el acelerómetro y la inclinación del iPhone. En el caso de que el dispositivo donde usemos tenga acelerómetro y mando, pero queramos usar solo el acelerómetro, deberemos usar esta opción.
  • --x-tilt-range=X y --y-tilt-range=X: El rango máximo de inclinación que podemos simular con el joystick del mando. Por defecto son 60 (grados), algunos juegos podrían requerir más (normalmente 90).
  • --x-tilt-offset=X y --y-tilt-offset=X: Esta es la inclinación de la partiremos para simular los gestos de movimiento. Por defecto son 45 (grados), que sería la forma natural de jugar, inclinando la pantalla hacia nuestra cara. Algunos juegos "creativos" pueden requerir otros valores.
  • --button-to-touch=X. Esta opción nos permite mapear los controles del mando (DPadLeft, DPadUp, DPadRight, DPadDown, Start, LeftShoulder, A, B, X e Y) a coordenadas concretas de la pantalla, 240x320 en vertical y 320x240 en horizontal. De modo que, por ejemplo, --button-to-touch=A,470,310 mapearía el botón A al punto 470x310. El hack de escalar la resolución no afecta a esta opción, hablamos de la resolución original del iPhone emulado.
  • --stabilize-virtual-cursor=X,X: Es complicado de explicar y raramente necesario. Leed mejor el archivo de ayuda ಠ_ಠ
  • --preferred-languages=XX: El idioma en ISO639, que para español sería: es. Funcionará o no dependiendo de cómo esté programado el juego. Puede que el juego reconozca este valor, puede tener su propio selector de idiomas, puede tener solo inglés o programaciones/APIs más creativas.
  • --fps-limit=XX. Sirve para limitar los frames por segundo a un valor determinado. Por defecto es 60. Algunos juegos pueden funcionar bien a framerates más altos, como 120, pero lo normal en los primeros tiempos de iOS es que el framerate sincronizara eventos del juego, de modo que no es muy recomendable tocarlo.
  • --force-composition. Puede resolver problemas gráficos concretos a costa de un rendimiento menor.
  • --allow-network-access. Permite a la aplicación acceder a internet. No sé si hay soporte de red aún, pero sí he visto que ciciplusplus está involucrado en reimplementar servidores de algunos juegos antiguos de iOS, quizá para soportarlos en un futuro.
  • Hay algunas opciones de debug a mayores, no relevantes a nivel jugable.

En el caso de querer configurar estos valores a través del archivo de configuración, basta poner la ID del juego seguida de los parámetros, en cualquier parte del archivo de texto. Es decir, si quisiéramos lanzar Super Monkey Ball en pantalla completa, girado hacia la izquierda, indicando que el botón START pause el juego e inclinando el iPhone desde 25 grados, en vez de los 45 grados originales:

  • com.ooi.supermonkeyball: --fullscreen --landscape-left --y-tilt-offset=25 --button-to-touch=Start,240,10

Si tenéis múltiples versiones del mismo juego que tengan la misma ID, al configuración se aplicará a todos ellos.

DESCARGA

La última versión estable de touchHLE data de hace más de un año, si bien Hikari tiene pensado publicar la siguiente versión estable próximamente. Para tener las versiones actualizadas hay que descargar las "Previews". Para ello deberemos tener cuenta de Github, de lo contrario no será posible descargar las versiones pre-compiladas desde Github Actions. La descarga ya incluye todos los archivos necesarios, salvo los juegos, para usar el emulador.

Versiones Estables
Versiones Preview
iOSObscura

Respecto a los juegos, lamentablemente la "preservación" de iOS está muy fragmentada (con todo es infinitamente mejor que en Android) y no hay nada organizado como TOSEC o No-Intro. El mayor proyecto de preservación que he visto es iOS Obscura en Internet Archive, que tiene un poco casi todo lo importante que podáis necesitar, incluyendo todos los juegos soportados actualmente por touchHLE.

Revisad siempre la lista de compatibilidad de touchHLE (enlace) porque ahí os indicarán exactamente la ID del juego comprobado y la versión concreta que funciona. A veces puede que una versión particular no funcione.

JUEGOS

Windows: Basta con mover los juegos a la carpeta touchHLE_apps, que deberemos crear en el mismo directorio que el ejecutable (touchHLE.exe). Deberán estar en formato IPA para que sean reconocidos por touchHLE. Una vez ejecutemos el emulador, nos saldrán directamente los iconos de los juegos correspondientes en la ventana.

Android: Aquí la cosa se complica un poco porque Google tiene la obsesión de cerrar Android, intentando que se parezca más a iOS con cada versión que pasa. Desde Android 10 ya no es posible acceder a las carpetas de datos de las aplicaciones instaladas. Tan solo es posible acceder a través del explorador de archivos nativo de AOSP (com.google.android.files), que desde Android 12 está convenientemente oculto, o bien a través de MTP, conectando el móvil por USB a un ordenador. Afortunadamente, touchHLE implementa en su interfaz el explorador Files para poder realizar la operación de mover los juego a su sitio correspondiente. El procedimiento sería el siguiente:

  • Movemos el juego a la memoria interna del móvil o lo descargamos vía navegador.
  • Ejecutamos touchHLE y presionamos en File Manager, en el menú principal.
  • Vamos hasta donde tengamos el juego, mantenemos presionado sobre él y, cuando esté seleccionado, le damos a 'Mover a' en el desplegable de los tres puntos verticales (parte superior derecha de la pantalla).
  • En la nueva instancia que se abre del explorador iremos al icono de las tres rayas horizontales (parte superior izquierda de la pantalla) y elegimos touchHLE.
  • Entramos en touchHLE_apps y presionamos en el botón Mover, en la parte inferior. Y ya estaría.


Si optáis por hacerlo por MTP (mucho más simple), basta con mover los juegos a Android/data/org.touchhle.android/files/touchHLE_apps

« Última modificación: Junio 17, 2025, 17:09:34 pm por Gelon »

Desconectado Gelon

  • Joshua
  • ****
  • Mensajes: 1675
  • 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: 1675
  • 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: 1675
  • 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: 1675
  • 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.

Conectado 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  :)

Desconectado Gelon

  • Joshua
  • ****
  • Mensajes: 1675
  • 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 #6 en: Junio 30, 2024, 17:11:40 pm »


Tenía esto bastante abandonado y, efectivamente, el soporte ha aumentado considerablemente gracias a un colaborador llamado ciciplusplus, que ha estado los últimos meses añadiendo soporte para juegos de Gameloft. Hikari parece haberse centrado en el núcleo del emulador, más que en la compatibilidad. Aún así ya tenemos numerosos clásicos del estudio francés y también GitHub Actions, que son binarios (ejecutables) que se auto-compilan en los servidores de GitHub con cada commit (cada conjunto de cambios que se sube al repositorio) que se envía. De modo que ya no es necesario esperar a una versión estable, sino que podremos probar cada novedad.

Todo esto lo pondré en el OP en un rato, pero por aquí dejo unos links relacionados:

Actions. Tendréis que estar logados en GitHub para descargar los binarios.
https://github.com/touchHLE/touchHLE/actions

Twitter de ciciplusplus. Donde va colgando las novedades en las que trabaja, actualmente dando soporte a Asphalt 5 e Iron Man 2.
https://x.com/ciciplusplus

iOSObscura. El repositorio de juegos iOS en Archive donde encontraréis el 90%+ de los juegos que soporta y soportará, a medio plazo, touchHLE.
https://archive.org/download/iOSObscura/

Desconectado RodrigoH17

  • Moderador Global
  • Shodan
  • *****
  • Mensajes: 7139
  • País: ar
  • Sexo: Masculino
  • Fecha de registro: Junio 04, 2005, 21:41:14 pm
    • Ver Perfil
    • Email
Re: Tutorial iOS (iPhone OS)
« Respuesta #7 en: Junio 30, 2024, 17:29:28 pm »
Muchas gracias Gelon por las novedades, se te extrañaba.



Desconectado Ayala

  • IBM PC
  • *
  • Mensajes: 130
  • País: es
  • Fecha de registro: Septiembre 11, 2009, 17:39:41 pm
    • Ver Perfil
    • Indie Games Plague
Re: Tutorial iOS (iPhone OS)
« Respuesta #8 en: Julio 03, 2024, 15:45:50 pm »
Sí señor, muchas gracias!



Desconectado earthgoodjim

  • Sinclair ZX Spectrum
  • **
  • Mensajes: 227
  • País: ve
  • Sexo: Masculino
  • Fecha de registro: Diciembre 17, 2023, 15:25:33 pm
  • Mejor ve a ver si ya puso la Vaca.
    • Ver Perfil
    • Email
Re: Tutorial iOS (iPhone OS)
« Respuesta #9 en: Septiembre 11, 2024, 14:03:54 pm »
no es por molestar pero por que se me crashean los juegos al iniciarlos, tiene algo que ver con mi sistema operativo?
No es Sony, No es Nintendo, es ella que te esta mintiendo.

Desconectado Gelon

  • Joshua
  • ****
  • Mensajes: 1675
  • 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 #10 en: Junio 17, 2025, 17:08:34 pm »
He adecentado esto, que falta hacía.

Desconectado earthgoodjim

  • Sinclair ZX Spectrum
  • **
  • Mensajes: 227
  • País: ve
  • Sexo: Masculino
  • Fecha de registro: Diciembre 17, 2023, 15:25:33 pm
  • Mejor ve a ver si ya puso la Vaca.
    • Ver Perfil
    • Email
Re: Tutorial iOS (iPhone OS)
« Respuesta #11 en: Junio 17, 2025, 20:25:03 pm »
bueno esto es cuando aun estaba medio salame, ya lo había olvidado.
No es Sony, No es Nintendo, es ella que te esta mintiendo.