Skip to content
Game Dev Story gameplay on iPhone; representative of early iPhone games, not a compatibility test
Game Dev Story gameplay on iPhone; representative of early iPhone games, not a compatibility test. Representative game image from the Retro Replay media library; it is not a capture from this emulator.

touchHLE

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.

iPhone OSPRIMARY SYSTEM
History documentedPROJECT BEGAN
Open sourcePROJECT MODEL

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 ↗
Broken or missing download? Emulator projects move and official links sometimes change. Please contact Retro Replay so the source can be verified and updated.

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. 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. 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. 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. 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. 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. 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. 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.