touchHLE
| touchHLE | |
|---|---|
Screenshot of touchHLE options page | |
| Original author | hikari_no_yume |
| Developers | hikari_no_yume and 12 others |
| Stable release | 0.2.2[1]
|
| Repository | https://github.com/touchHLE/touchHLE |
| Engine | |
| Operating system | Android, macOS, Microsoft Windows |
| License | Mozilla Public License 2.0 |
| Website | https://touchhle.org/ |
touchHLE is a free and open-source emulator for iOS applications, originally developed by an anonymous programmer going by the pseudonym hikari_no_yume.[2][3] It is written in Rust to work specifically with games developed for older iOS versions,[4][5] and as of version 0.2.2 it supports a handful of games.
touchHLE was first released in February 2023 where it was able to run Super Monkey Ball,[6][7] a launch title for the App Store in 2008 which was at the time considered lost media due to it being incompatible with newer iOS versions.[8][9] Support for other games, such as the Lite version of Super Monkey Ball, Crash Bandicoot Nitro Kart 3D and Touch & Go was added in later builds,[10][11] and the emulator was ported to Android after a pull request was issued to add support for it, allowing Android devices to run legacy iOS games.[12][13][14]
The emulator makes use of high-level emulation where touchHLE itself takes the place of iOS and provides its own implementations of operating system frameworks, thus avoiding any dependency on copyrighted Apple firmware and libraries; the only code executed by the emulated CPU is the app binary and open-source libraries from Apple.[15] hikari_no_yume also stated that they do not plan on supporting newer versions of iOS both on a technical and philosophical standpoint, citing the complexity of implementing 64-bit iOS apps and system libraries[15] and changing trends in the mobile app ecosystem where the emergence of free-to-play games brought about concerns regarding the perceived decline in quality of mobile games.[16]
References
[edit | edit source]- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).