IPHONE OS EMULATOR
touchHLE
touchHLE is a high-level emulator that implements iPhone OS (classic 32-bit iOS) system frameworks to run legacy iPhone/iPod touch applications and games without requiring Apple system firmware. It focuses on running older 32-bit apps by reimplementing Foundation/UIKit/OpenGL ES/OpenAL and executing app ARM binaries using an ARM dynamic recompiler.

WHY IT MATTERS
Why this project matters
Many early iPhone OS games and apps were distributed only as 32-bit binaries and became impossible to run on modern 64-bit-only devices and OSes. touchHLE provides a preservation-oriented, high-level approach that lets those early apps run on modern desktop and mobile platforms without bundling Apple firmware or system libraries.
BEST FOR
Best use cases
Running and preserving classic 32-bit iPhone OS games and apps on Windows, macOS, Linux, and Android; experimentation, debugging, and research into how early iPhone apps used system frameworks; developing compatibility patches for specific apps using the project's framework stubs.
The people behind touchHLE
History and development notes
touchHLE is developed in an open-source repository and documented on its official site. The project uses high-level emulation: rather than virtualizing a full iPhone OS image, it reimplements key system frameworks so the emulator itself provides the platform API surface the app expects. CPU execution for app binaries is implemented using ARM emulation and a JIT/dynamic recompiler. Development has been driven by contributors adding support for individual games (the supported feature set often grows as authors target a particular title). The project has received ports and community contributions for multiple host platforms and maintains an app compatibility database where contributors can report results and required fixes. The project is explicit that it is not affiliated with Apple and does not include or distribute Apple's proprietary firmware or libraries.
What touchHLE supports
- Windows (x86_64 builds reported)
- macOS (Intel and reports of Apple Silicon via Rosetta for x64 builds)
- Linux
- Android (community ports available)
Download and availability
OFFICIAL DOWNLOADS
Get touchHLE
Official releases, prebuilt downloads, and build instructions are linked from the project's site and GitHub repository. The project's homepage provides downloads and documentation; the canonical source repository hosts code, issues, and CI releases.
Get touchHLE ↗DOCUMENTATION
Official documentation
Read the official configuration, compatibility, and troubleshooting material before changing advanced options.
Read official documentation ↗touchHLE setup guide
Setup note: This setup guide focuses on practical steps to get touchHLE running either from prebuilt releases or by building from source, how to provide app files (IPAs) to the emulator, and useful troubleshooting and compatibility resources. Do not expect any Apple firmware or commercial app data to be included with the project; you must obtain app binaries yourself and follow applicable laws.
- 1) Pick a distribution (prebuilt vs build from source): Check the project's official download page for prebuilt releases for your host platform. If a prebuilt is available for your OS/architecture, download the matching release. If you need a build for a different architecture or want the latest changes, build from source using the repository and the project's build documentation.
- 2) Building from source (overview): Follow the repository's building documentation: install required toolchain components and dependencies listed in the project's docs (examples in the repository include build scripts and a dev-docs/building.md). Typical steps include installing a supported C++ toolchain, Rust toolchain if used, required system libraries, and fetching any SDK helper archives the CI references. Use the repository's build targets for your platform (the project uses CI that produces artifacts and shows how to reproduce builds locally).
- 3) Obtaining app binaries (IPAs) and preparing them: touchHLE runs app binaries rather than providing apps. You must obtain an app's IPA or unpacked app bundle yourself. The emulator's docs and community posts describe where to place apps for each platform (for Android/desktop ports it commonly looks for a local apps directory). Ensure you only run apps you are legally permitted to use and that you do not redistribute commercial IPA files in violation of license or store terms.
- 4) Running the emulator and loading an app: Start the emulator binary or app according to platform-specific instructions. Use the application's UI or the documented command-line options to point to your unpacked app bundle or IPA. The project provides an app compatibility database where supported apps and any special launch steps are recorded—consult it if an app needs extra configuration.
- 5) Android-specific notes: Community ports for Android exist; when using Android builds you may need to provide app files via the Android app's storage area (the project's documentation and community resources explain the expected folder layout). For some Android environments ADB/adb filesystem access is useful to place app files in the emulator's data directory.
- 6) Common troubleshooting: If an app fails at launch, consult the project's compatibility database and issue tracker. Many fixes are app-specific and rely on contributors implementing additional API shims. Build logs, runtime console output, and enabling any project-provided debugging verbosity will help identify missing framework pieces or CPU incompatibilities.
- 7) No Apple firmware included: touchHLE implements system frameworks in userland and does not ship or require Apple proprietary firmware, system images, or signed libraries. Do not expect bundled BIOS/firmware files or commercial apps to be included with releases.
Software reminder: touchHLE does not include or distribute Apple system firmware, commercial app binaries, or other proprietary Apple code. You must supply any app binaries yourself and comply with all applicable laws and licenses when acquiring, extracting, or using those files.
Sources and further reading
Detailed guides and tutorials
Explore step-by-step guides for touchHLE as they are published.
Retro Replay Retro Gaming History, Reviews & Emulation