Pubblicato un nuovo aggiornamento per touchHLE, un emulatore di alto livello scritto in Rust per le app dell’iPhone. Funziona su sistemi operativi desktop moderni e su dispositivi Android.
L’approccio di emulazione ad alto livello (HLE) di touchHLE differisce dall’emulazione a basso livello (LLE) nel senso che non simula direttamente l’hardware dell’iPhone/iPod touch.
Invece di eseguire iOS all’interno dell’emulazione, touchHLE stesso prende il posto dell’iOS e fornisce le proprie implementazioni dei framework di sistema (Foundation, UIKit, OpenGL ES, OpenAL, ecc..).
L’obiettivo di questo progetto è quello di eseguire giochi sin dai primi giorni di uscita in iOS:
- Attualmente: Applicazioni per iPhone e iPod touch per iPhone OS 2.x e iPhone OS 3.0.
- A lungo termine: iPhone OS 3.1, app per iPad (iPhone OS 3.2), iOS 4.x, …
- Mai: iOS a 64 bit.
Il database di compatibilità delle app di touchHLE tiene traccia delle app che funzionano nel programma. Si tratta di uno sforzo collettivo a cui chiunque può contribuire.
Piattaforme supportate
- Supportati ufficialmente: Windows x64, macOS x64 e AArch64 Android.
- Queste sono le piattaforme con versioni binarie.
- Se sei un utente Apple Silicon Mac, secondo quanto riferito la build x64 funziona in Rosetta.
- Probabilmente funziona, ma devi crearlo tu stesso: AArch64 macOS, x64 Linux, AArch64 Linux.
- Mai?: altre architetture.
Metodi di immissione
- Per l’input tattile simulato, sono disponibili quattro opzioni:
- Input tramite mouse/trackpad (tocca/tieni premuto/trascina premendo il pulsante sinistro del mouse).
- Cursore virtuale utilizzando un controller di gioco (muovi il cursore con la levetta analogica destra e tocca/tieni premuto/trascina premendo la levetta o il pulsante sulla spalla destra).
- Mappatura dei pulsanti del controller di gioco (vedere la descrizione
--button-to-touch=
inOPTIONS_HELP.txt
). - Vero input touch, se utilizzi un dispositivo dotato di touch screen.
- Per l’ingresso simulato dell’accelerometro, sono disponibili due opzioni:
- Simulazione del controllo dell’inclinazione utilizzando la levetta analogica sinistra di un controller di gioco.
- Ingresso reale dell’accelerometro, se utilizzi un telefono, un tablet o un altro dispositivo con un accelerometro integrato (TODO: supporta controller di gioco con accelerometri).
- Apparentemente questo non funziona su alcuni dispositivi Android, in particolare sui dispositivi Xiaomi/MIUI, ma non sappiamo perché
Utilizzo
- Per l’utilizzo di touchHLE, prima è necessario ottenere il programma, sia tramite un rilascio binario o compilandolo dal codice sorgente.
- Successivamente sarà necessaria un’applicazione che si possa eseguire. Il database di compatibilità delle app è una buona guida per sapere quali versioni di quali app sono note per funzionare, ma tieni presente che potrebbe contenere informazioni obsolete o inaccurate. Nota che il binario dell’app deve essere decriptato per essere utilizzabile.
Ci sono alcuni modi per eseguire un’applicazione in touchHLE.
Note speciali per Android
Gli utenti di Windows, Mac e Linux possono saltare questa sezione.
Su Android, è disponibile solo l’interfaccia utente grafica (selettore di app). Pertanto, è necessario mettere i file .ipa
o i pacchetti .app all’interno della directory touchHLE_apps
. Nota che è possibile farlo solo dopo aver eseguito touchHLE almeno una volta.
La gestione dei file può essere complicata su Android a causa delle restrizioni introdotte da Google nelle versioni più recenti di Android. Uno di questi metodi potrebbe funzionare:
- Se si preme il pulsante “Open file manager” in touchHLE, dovrebbe aprirsi una sorta di gestore di file, è possibile trovare touchHLE anche nell’app del gestore di file del dispositivo (spesso chiamata “File” o talvolta “Download”), insieme ai servizi di archiviazione cloud. Tuttavia, ci sono alcune limitazioni su quali tipi di operazioni sono possibili. I file in questa posizione sono memorizzati sul dispositivo. Attenzione: su alcuni dispositivi, il pulsante “Open file manager” potrebbe aprire un gestore di file, ma bloccarsi quando si effettuano effettivamente operazioni sui file (probabilmente a causa di un bug in Android, che non è stato risolto). In tal caso, è consigliabile eliminare quel gestore di file dalla lista delle app recenti e cercare di navigare direttamente nell’app del gestore di file del dispositivo, invece di utilizzare l’interfaccia utente di touchHLE.
- Se si dispone di una versione più vecchia di Android, potrebbe essere possibile accedere direttamente ai file di touchHLE navigando in
/sdcard/Android/data/org.touchhle.android/files/touchHLE_apps
. Si tenga presente che la directory/sdcard
di solito non è situata sulla scheda SD. - In alternativa, potrebbe essere possibile utilizzare ADB. Se non si è familiari con ADB, si può provare a utilizzare https://yume-chan.github.io/ya-webadb/ (su Google Chrome o un altro browser con WebUSB) con il dispositivo collegato tramite USB. I file di touchHLE possono essere trovati in “sdcard” > “Android” > “data” > “org.touchhle.android” > “files” > “touchHLE_apps”.
Interfaccia utente grafica
touchHLE dispone di un selettore di app integrato. Se si inseriscono i file .ipa
e i pacchetti .app
nella directory touchHLE_apps
, questi verranno visualizzati nel selettore di app quando si esegue touchHLE.
Per configurare le opzioni, è possibile modificare il file touchHLE_options.txt
. Per ottenere un elenco di opzioni, consultare il file OPTIONS_HELP.txt
.
Interfaccia utente della riga di comando
Questa sezione non si applica su Android
È possibile visualizzare l’uso della riga di comando passando il flag --help
.
Se si è un utente Windows e non si è familiari con la riga di comando, queste istruzioni potrebbero aiutare a iniziare:
- Spostare il file
.ipa
o il bundle.app
nella stessa cartella dell’eseguibiletouchHLE.exe
. - Tenere premuto il tasto Shift e fare clic destro su uno spazio vuoto nella finestra della cartella.
- Fare clic su “Apri con PowerShell”.
- Digitare
.\touchHLE.exe "NomeTuaAppQui.ipa"
(o.app
, se appropriato) e premere Invio. Se si desidera specificare opzioni, aggiungere uno spazio dopo il nome dell’applicazione (fuori dalle virgolette) e quindi digitare le opzioni, separate da spazi.
Altre informazioni
Tutti i dati salvati dall’applicazione (ad esempio, giochi salvati) sono memorizzati nella cartella touchHLE_sandbox
.
Se l’emulatore crasha quasi immediatamente durante l’esecuzione di una versione conosciuta di un gioco funzionante, verificare se sono attivi degli overlay come lo Steam overlay, Discord overlay, RivaTuner Statistics Server, ecc..
Purtroppo, utili come sono questi strumenti, funzionano iniettandosi in altre app o giochi e non sempre si puliscono da soli, quindi possono rompere touchHLE.
Attualmente solo RivaTuner Statistics Server è noto per essere un problema. Se si trova un altro overlay che non funziona, si prega di segnalarlo.
Changelog
Compatibilità
- Nuove app funzionanti:
- Miglioramenti del supporto API:
- Diverse piccole contribuzioni. (@alborrajo, @WhatAmISupposedToPutHere, @ciciplusplus, @hikari-no-yume, @LennyKappa, @Skryptonyte, @teromene)
- I file audio AAC (AAC-LC in un tipico contenitore MPEG-4) sono ora supportati in Audio Toolbox. Questo è stato fatto in modo abbastanza artigianale, quindi potrebbe non funzionare per alcune app. (@hikari-no-yume)
- Ora è supportata la versione iPhone OS 3.0 delle app, oltre al supporto già esistente per le app iPhone OS 2.x:
- Aggiunto il supporto per i binari universali. touchHLE non si bloccherà più quando si cerca di eseguire un’app con versioni sia ARMv6 che ARMv7 e, invece, cercherà di scegliere la migliore opzione disponibile (ARMv7, o in caso contrario, ARMv6). Questo migliora la compatibilità con le app iPhone OS 3.0, molte delle quali utilizzano binari universali per migliorare le prestazioni su iPhone 3GS e iPod touch (3ª generazione). (@WhatAmISupposedToPutHere)
- Le librerie dinamiche ARMv6 incluse, libgcc e libstdc++, sono state aggiornate alle versioni iPhone OS 3.0.1. In precedenza venivano utilizzate le versioni iPhone OS 2.2.1. (@hikari-no-yume)
- touchHLE non emetterà più un avviso quando si tenta di eseguire un’app con iPhone OS 3.0 come sua versione minima del sistema operativo. L’avviso ora appare solo per le app che richiedono iPhone OS 3.1 e successive. (@hikari-no-yume)
Usabilità
- L’opzione
--button-to-touch=
ora supporta i pulsanti Start e LeftShoulder oltre ai pulsanti A/B/X/Y e al D-pad. Le opzioni predefinite di alcuni giochi sono state adattate per utilizzarli. (@nighto) - Opzioni predefinite per vari giochi (@nighto)
Download: touchHLE v0.2.2 (Android)
Download: touchHLE v0.2.2 (MacOS)
Download: touchHLE v0.2.2 (Windows)
Download: Source code touchHLE v0.2.2
Fonte: github.com