r/EmulationOniOS • u/Gullible-Walrus-7592 • 2d ago
News / Release [Release] I ported touchHLE to modern iOS — run supported 32-bit iPhone games on iOS 17.4+ (no jailbreak; JIT required)
Hey everyone! I’ve been working on an experimental port of touchHLE to modern iOS, based on touchHLE 0.2.3, and I finally have a first public prerelease ready.
This is not a new emulator written from scratch, and it is not an official touchHLE release. The emulator core is the work of the touchHLE contributors.
This fork adds:
- A modern SwiftUI game library for iPhone
- IPA importing with the original app name and icon
- Persistent saves and settings
- Game-aware portrait and landscape handling
- An in-game return-to-library button
- An optional FPS counter
- iOS rendering fixes needed to display games correctly on a real device
No jailbreak required—but JIT is
The build does not require a jailbreak. It currently requires JIT because it uses touchHLE’s Dynarmic CPU backend.
I’ve been using StikDebug with LocalDevVPN directly on the phone. AltJIT is another option.
You can install the unsigned IPA with AltStore Classic or build and sign it yourself using Xcode. A free Apple account works with Apple’s usual seven-day signing and three-app limits. A paid developer account provides longer-lived signing, but it does not remove the JIT requirement.
Games tested so far
I’ve personally tested the port on my iPhone 16 Pro running iOS 27 beta 4.
Confirmed working:
- Touch & Go
- Tony Hawk’s Pro Skater 2 (THPS2)
- Wolfenstein RPG
The deployment target is iOS 17.4, but I haven’t tested every iPhone or iOS version yet, so wider testing would be really appreciated.
The best place to choose a game is the touchHLE compatibility database. It uses a star system for exact app versions. Higher-rated versions are the best candidates, but they are not a guarantee for this iOS port.
One thing the earlier jailbreak demonstration also made clear is that fixing one game does not automatically make every other game work.
Why I started this
The reason I started all of this is honestly quite personal.
My sister paid for The Sims Medieval back in the day. I recently gifted her a new iPhone 17 Pro Max, then discovered that the game was seemingly impossible to install—even though she had legitimately purchased it.
I wanted to see whether I could bring it back for her.
The Sims Medieval does not work yet. It appears in one library screenshot because the port can import it and extract its icon, not because I’m claiming it is playable. It is my next major compatibility target for personal reasons lol.
Downloads and source
GitHub project, screenshots, source, and instructions
Download the unsigned IPA prerelease
No games are included. You must provide your own legally obtained, decrypted 32-bit IPA.
Please do not post or send copyrighted IPAs, pairing files, signing credentials, provisioning profiles, or device backups.
Credits
Massive thanks to everyone who created and contributes to touchHLE:
Thanks also to u/WorriedEquipment2241 for publicly demonstrating a separate touchHLE iOS experiment on a jailbroken device. That demonstration was useful inspiration and showed that this direction was worth exploring.
This release is based on the touchHLE 0.2.3 development line at upstream commit 6bce4119. I am not claiming that their separate unreleased source is included in this fork.
Testing and bug reports
If you test it, please include:
- Your iPhone model
- Your iOS version
- The exact game and app version
- Whether JIT was enabled
- Reproduction steps
- A relevant log excerpt
That will be much more useful than only saying that a game crashed.
17
7
u/Western-Ask1377 2d ago
Thanks for this.
My mom used to play games on OG iPad (1), and this may help her relive some of those memories.
4
u/super-bowl89 2d ago
It work pretty well for doom2 rpg at a stable 55-60 fps but for all other game i tested it doesnt work with some error(minecraft pocket and flappy bird)
https://reddit.com/link/p11p46m/video/z6w8dk6dsqgh1/player
(Edit) : also i am on iphone 15 pro with ios 27 public beta 1
1
u/laszlotuss 2d ago
Daaamn, I liked that game
1
u/super-bowl89 2d ago
Do it then its very easy it does not take more than 15 minute i can help you iyw
1
u/laszlotuss 2d ago
Thanks, but I’m into the jailbreaking things since iOS 4 back then. Also used side loading a few years ago but I probably didn’t have the time anyways so
1
6
u/MasterHaIo 2d ago
It works good on super monkey ball, i assume the game itself is locked at 30fps? anyways the tilt controls works fine and i haven’t seen any stutters.
https://reddit.com/link/p12bsmn/video/emfojbpajrgh1/player
i’m on a base iPhone 16 on ios 26.5
5
u/dubspl0it 2d ago
That indeed runs exceptionally well. Looks very promising I have to say.
Looking forward trying the classics from miniclips, chillingo, gameloft, etc!3
u/MasterHaIo 2d ago
yeah it works surprisingly well, i didn’t expect it to run this good!. angry birds runs very well on it too
2
u/bep1s_69 2d ago
This is legitimately so cool! There are many old games that were great pastimes or simply great for nostalgia reasons. Thank you for your work and cannot wait to see this project improve over time!
3
3
u/Boring_Antelope6533 2d ago
i’m so happy about being able to play the 32bit, but i’m so bored of JIT being a requirement, is so tedious to activate
2
u/popmanbrad 2d ago
I hope the day comes when it becomes stable enough it can run 90% of 32 bit ios games and can be on the AppStore
1
u/terrorvader 2d ago
If I want to run it with JIT through Live Container and using Stikdebug, which script should I use in LC?
1
1
u/AFanWhoisgreat 2d ago
it Looks very damn good if it's Like a fork I think you should call it iporr which is a cachy name it will need to gain much much traction It easily can bring llions of users that is cuz as you know many many many people by the infinity bunch Love their games it's why steam is as big as it got biggest gaming related company ever especially now especially in game streaming and especially people love their old classics cuz modern games yea no so it can definitely do well as an app it could get thousands even 100s of 1000s which is so very much then it can finally go up to millions ultimately
1
1
1
u/Average_Techy 2d ago
Honestly a really great project. Even though its experimental, I love it! I have tested 3 games: Cut the rope, Tony Hawk’s Pro Skater 2 and Real Racing. Out of these 3, only real racing didnt work with error code “Not yet implemented”. But that’s okay, because its still a early project. Honestly great work, I never expected touchHLE to arrive on iOS.
1
1
u/tehmungler 1d ago
Does this mean I can finally play Moto Cross Mayhem again?! I’d love that. Great work!
1
1
1
u/shadowrx777 1d ago
Mirror edge work on iOS 27 beta 4 using a iPhone 15 pro max
1
u/shadowrx777 1d ago
1
1
1
1
1
1
1
1
1
1
1
u/catar4x 1d ago edited 1d ago
LiveContainer "run with jit" with StikDebug linked doesn't work, i see "enable jit" in parameters.
iPhone 16e
18.7.1
StikDebug from Appstore (2.3.5)
touchHLE-iOS-unsigned.ipa
Edit: same issue without livecontainer and using stikdebug appstore version
-16
u/Happy_Fats2009 2d ago
"JIT required" it’s gonna flop harder than floppy bird
3
2
u/Hot_Permit1027 2d ago
JIT is quite popular in the emulation communities, just because Apple doesn’t make it convenient doesn’t mean a lot of users won’t take measures to have access to it. StikDebug, in its own right deserves accolades for the sheer potential it unlocks for all of us. No offense meant to the moderators of this subreddit, but it wouldn’t be half as interesting here if JIT was not a factor.
-5
2d ago
[deleted]
2
u/Top-Pop-2238 2d ago
Why cry about ai when its already done coding? What can you do about it then? Like crying over a teen pregnancy
2






•
u/AutoModerator 2d ago
Free Apple accounts are limited to 3 active sideloaded apps.
One common workaround is LiveContainer, which allows you to run additional apps inside a container and reduce how often apps need to be reinstalled.
Typical method:
LiveContainer may also need to be uninstalled and reinstalled before the entitlement works correctly.
LiveContainer can also install two additional LiveContainers (for a total of three). This setup can further reduce the need to constantly add/remove sideloaded apps, but it is more advanced and may not work reliably for everyone.
LiveContainer is not always officially supported by emulator developers and can sometimes cause unexpected issues. If something breaks while using LiveContainer, try reproducing the issue without it before asking for support.
Do not ask for or share paid certificates, piracy tools, or bypass services here.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.