IOS emulators: Difference between revisions

Ilyagredasov (talk | contribs)
No edit summary
Tags: Mobile edit Mobile web edit
Ilyagredasov (talk | contribs)
No edit summary
Tags: Mobile edit Mobile web edit
Line 15: Line 15:
Formerly, iOS was used for both Apple's phones and tablets. Then, the iOS brand was split into two parts in 2019, with iOS now being the OS exclusively used in the iPhone and the now-defunct iPod Touch. The second half, named iPadOS, is a fork of iOS for iPads that makes use of their larger screens, hence its name. Most iOS apps and games work on iPadOS.
Formerly, iOS was used for both Apple's phones and tablets. Then, the iOS brand was split into two parts in 2019, with iOS now being the OS exclusively used in the iPhone and the now-defunct iPod Touch. The second half, named iPadOS, is a fork of iOS for iPads that makes use of their larger screens, hence its name. Most iOS apps and games work on iPadOS.


Unlike its direct competitor, [[Android emulators|Android]], there are practically no usable emulators, as the official iOS SDK (macOS-only) only allows for running your own projects, i.e., they run code generated for an x86 target rather than ARM code as used by iOS. Similar to most of the Android emulators, some emulators (e.g., [[BlackThunder]]) uses two-step approach, making use of the simulator in the iOS SDK to run a few chosen iOS apps that are recompiled for x86. Unlike previous emulation trails, BlackThunder first loads a highly trimmed Hackintosh image via VirtualBox, which loads Xcode and an iOS simulator into it, then runs decompiled iOS apps recompiled for the x86 architecture. Appetize.io and other tools that claim to emulate iOS on a web browser are in reality just the iOS simulator in XCode wrapped around a cloud stream to the web browser, and like the iOS XCode simulator, need the source code to run. More recently, touchHLE managed to get a few older iPhone OS apps running by recreating some of iOS’s standard libraries and emulating just the iPhone’s CPU, and nearly the same time, QEMU-iOS got released and can successfully emulate iPhone OS 1.0 on an iPod Touch 1st generation, albeit with bugs.
Unlike its direct competitor, [[Android emulators|Android]], there are practically no usable emulators, as the official iOS SDK (macOS-only) only allows for running your own projects, i.e., they run code generated for an x86 target rather than ARM code as used by iOS. Similarly to most of the Android emulators, some emulators (e.g., [[BlackThunder]]) use two-step approach, making use of the simulator in the iOS SDK to run a few chosen iOS apps that are recompiled for x86. Unlike previous emulation trails, BlackThunder first loads a highly trimmed Hackintosh image via VirtualBox, which loads Xcode and an iOS simulator into it, then runs decompiled iOS apps recompiled for the x86 architecture. Appetize.io and other tools that claim to emulate iOS on a web browser are in reality just the iOS simulator in XCode wrapped around a cloud stream to the web browser, and like the iOS XCode simulator, need the source code to run. More recently, touchHLE managed to get a few older iPhone OS apps running by recreating some of iOS’s standard libraries and emulating just the iPhone’s CPU, and nearly the same time, QEMU-iOS got released and can successfully emulate iPhone OS 1.0 on an iPod Touch 1st generation, albeit with bugs.


==Emulators==
==Emulators==
Line 293: Line 293:


:;ipasim
:;ipasim
:: ''ipasim'' (2017) is a high-level emulator written in C++ that uses patched Microsoft's winObjC to recompile 64-bit iOS apps into apps in live, plus a "reverse Rosetta" that translates ARM64 to x86 code similar to touchHLE and a few others. It doesn't support much apps except for really basic ones, like only a hello world, benchmark, simple game, and simple calculator made by the creator of the project, no other apps are known to work, even super basic ones. It was more focused on apps than games.
:: ''ipasim'' (2017) is a high-level emulator written in C++ that uses patched Microsoft's winObjC to recompile 64-bit iOS apps into apps in live, plus a "reverse Rosetta" that translates ARM64 to x86 code similarly to touchHLE and a few others. It doesn't support much apps except for really basic ones, like only a hello world, benchmark, simple game, and simple calculator made by the creator of the project, no other apps are known to work, even super basic ones. It was more focused on apps than games.


:;xnu-qemu-arm64
:;xnu-qemu-arm64