Editing IOS emulators
Jump to navigation
Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 13: | Line 13: | ||
iOS devices started the smartphone craze, which would go on to replace conventional mobile phones in both Japan (which had its own subset of cell phones) and the rest of the world, with more advanced touch-controlled devices. | iOS devices started the smartphone craze, which would go on to replace conventional mobile phones in both Japan (which had its own subset of cell phones) and the rest of the world, with more advanced touch-controlled devices. | ||
− | 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 | + | 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. 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. | ||
==Emulators== | ==Emulators== | ||
+ | Also tons of obsolete non-active iOS "emulator" exists, see [https://emulation.gametechwiki.com/index.php?title=IOS_emulators&oldid=72605 this page] for more. | ||
{| class="wikitable" style="text-align:center;width:100%" | {| class="wikitable" style="text-align:center;width:100%" | ||
! scope="col"|Name | ! scope="col"|Name | ||
Line 33: | Line 34: | ||
|[https://touchhle.org/ touchHLE] | |[https://touchhle.org/ touchHLE] | ||
|align=left|{{Icon|Windows|macOS}} | |align=left|{{Icon|Windows|macOS}} | ||
− | |[https://github.com/touchHLE/touchHLE/releases | + | |[https://github.com/touchHLE/touchHLE/releases 0.2.2] |
|{{~}} | |{{~}} | ||
|{{~}} | |{{~}} | ||
Line 80: | Line 81: | ||
|{{✓}} | |{{✓}} | ||
|{{✗}} | |{{✗}} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
!colspan="9"|Mobile / ARM | !colspan="9"|Mobile / ARM | ||
Line 197: | Line 134: | ||
!colspan="9"|Mobile / ARM | !colspan="9"|Mobile / ARM | ||
|- | |- | ||
− | |[https://apple.com/macos macOS] | + | |[https://apple.com/macos macOS] 11 Big Sur |
|align=left|{{Icon|macOS}}<ref group=N>Requires Mac computers with Apple Silicon (M series) processors.</ref> | |align=left|{{Icon|macOS}}<ref group=N>Requires Mac computers with Apple Silicon (M series) processors.</ref> | ||
− | | | + | |14 Sonoma |
|? | |? | ||
|? | |? | ||
Line 206: | Line 143: | ||
|{{✓}} | |{{✓}} | ||
|{{✓}} | |{{✓}} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|} | |} | ||
<references group=N /> | <references group=N /> | ||
− | |||
− | |||
;Emulators | ;Emulators | ||
:;[[touchHLE]] | :;[[touchHLE]] | ||
Line 228: | Line 153: | ||
:;MAME | :;MAME | ||
− | ::Very basic iPhone 2G support available [https://github.com/mamedev/mame/blob/master/src/mame/apple/iphone2g.cpp here] <small>(that cannot boot iOS | + | ::Very basic iPhone 2G support available [https://github.com/mamedev/mame/blob/master/src/mame/apple/iphone2g.cpp here] <small>(that cannot boot iOS)</small>. '''Unlikely to ever be completed.''' |
:;BlackThunder | :;BlackThunder | ||
::Closed-source, commercial iOS emulator that can run a few commercial iOS apps. 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. However, some emulators, e.g. BlackThunder, make 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 iOS apps that are decompiled and recompiled for the x86 architecture. | ::Closed-source, commercial iOS emulator that can run a few commercial iOS apps. 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. However, some emulators, e.g. BlackThunder, make 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 iOS apps that are decompiled and recompiled for the x86 architecture. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
;Hypervisor | ;Hypervisor | ||
Line 260: | Line 164: | ||
;Native | ;Native | ||
:;macOS 11 and up | :;macOS 11 and up | ||
− | ::Since macOS 11 Big Sur, the 17th major operating system of the macOS line, the operating system for Mac computers has support for iOS and iPadOS applications for Apple Silicon-based Macs. However, some apps cannot be installed directly due to Apple DRM. This can be bypassed using an IPA file and PlayCover/Sideloady. [https://support.apple.com/guide/app-store/iphone-ipad-apps-mac-apple-silicon-fird2c7092da/mac See this page] | + | ::Since macOS 11 Big Sur, the 17th major operating system of the macOS line, the operating system for Mac computers has support for iOS and iPadOS applications for Apple Silicon-based Macs. However, some apps cannot be installed directly due to Apple DRM. This can be bypassed using an IPA file and PlayCover/Sideloady. [https://support.apple.com/guide/app-store/iphone-ipad-apps-mac-apple-silicon-fird2c7092da/mac See this page]. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Hardware features== | ==Hardware features== | ||
− | ''This table focusing on early iOS operating system and crucial hardware features that can be possible to emulated through software or will be possible in the near future. Including everything or niche modern iOS features (e.g. [[List_of_games_that_support_Pressure-Sensitive_Face_Buttons#iOS_Emulation| | + | ''This table focusing on early iOS operating system and crucial hardware features that can be possible to emulated through software or will be possible in the near future. Including everything or niche modern iOS features (e.g. [[List_of_games_that_support_Pressure-Sensitive_Face_Buttons#iOS_Emulation|Pressure Sensitive Buttons]]) would result in an endless list.'' |
{| class="wikitable" style="text-align:center;width:100%" | {| class="wikitable" style="text-align:center;width:100%" | ||
Line 314: | Line 211: | ||
| {{?}} | | {{?}} | ||
|- | |- | ||
− | | colspan=2 | [[ | + | | colspan=2 | [[Wikipedia:IPhone_hardware#Sensors|Motion sensors]] |
− | | {{ | + | | {{Y}}[https://github.com/hikari-no-yume/touchHLE/blob/trunk/OPTIONS_HELP.txt#L33 *] |
| {{✗}} | | {{✗}} | ||
| {{?}} | | {{?}} | ||
Line 370: | Line 267: | ||
|style="background:{{{color|#FFD2D2}}};"|[https://github.com/hikari-no-yume/touchHLE/issues/181#issuecomment-1777098259 Never] | |style="background:{{{color|#FFD2D2}}};"|[https://github.com/hikari-no-yume/touchHLE/issues/181#issuecomment-1777098259 Never] | ||
| {{✗}} | | {{✗}} | ||
− | | {{ | + | | {{✓}} (iOS 10.3.3+) |
|- | |- | ||
| colspan=2 | iOS 11 to ''present'' | | colspan=2 | iOS 11 to ''present'' | ||
Line 390: | Line 287: | ||
|- | |- | ||
| colspan=2 | [https://developer.apple.com/documentation/xcode/writing-armv6-code-for-ios ios_armv6] (iPhone OS 1 – iOS 4.2.1)<br/><small>Supporting ios_armv6 ABI is crucial for emulators due to compatibility and [[Preservation_projects|preservation]] reasons.</small> | | colspan=2 | [https://developer.apple.com/documentation/xcode/writing-armv6-code-for-ios ios_armv6] (iPhone OS 1 – iOS 4.2.1)<br/><small>Supporting ios_armv6 ABI is crucial for emulators due to compatibility and [[Preservation_projects|preservation]] reasons.</small> | ||
− | | {{ | + | | {{Y}}[https://github.com/merryhime/dynarmic?tab=readme-ov-file#supported-guest-architectures *] |
− | | {{ | + | | {{N}} |
− | | {{ | + | | {{N}} |
|- | |- | ||
| colspan=2 | [https://developer.apple.com/documentation/xcode/writing-armv7-code-for-ios ios_armv7a] (iPhone OS 3 – iOS 10.3.4)<br/><small>Supporting ios_armv7a ABI is crucial for emulators due to compatibility and [[Preservation_projects|preservation]] reasons.<br/> Older applications and games often rely on the [[Wikipedia:ARM_architecture_family|ARM 32-bit (Cortex)]] architecture, which isn't used in newer hardware.</small> | | colspan=2 | [https://developer.apple.com/documentation/xcode/writing-armv7-code-for-ios ios_armv7a] (iPhone OS 3 – iOS 10.3.4)<br/><small>Supporting ios_armv7a ABI is crucial for emulators due to compatibility and [[Preservation_projects|preservation]] reasons.<br/> Older applications and games often rely on the [[Wikipedia:ARM_architecture_family|ARM 32-bit (Cortex)]] architecture, which isn't used in newer hardware.</small> | ||
− | | {{ | + | | {{Y}}[https://github.com/merryhime/dynarmic?tab=readme-ov-file#supported-guest-architectures *] |
− | | {{ | + | | {{N}} |
− | | {{ | + | | {{N}} |
|- | |- | ||
| colspan=2 | [https://developer.apple.com/documentation/xcode/writing-arm64-code-for-apple-platforms ios_armv8.''x''a] (iOS 11.0 to ''present'') | | colspan=2 | [https://developer.apple.com/documentation/xcode/writing-arm64-code-for-apple-platforms ios_armv8.''x''a] (iOS 11.0 to ''present'') | ||
|style="background:{{{color|#FFD2D2}}};"|[https://github.com/hikari-no-yume/touchHLE/issues/181#issuecomment-1777098259 Never] | |style="background:{{{color|#FFD2D2}}};"|[https://github.com/hikari-no-yume/touchHLE/issues/181#issuecomment-1777098259 Never] | ||
− | | {{ | + | | {{N}} |
| {{?}} | | {{?}} | ||
|- | |- | ||
Line 407: | Line 304: | ||
|- | |- | ||
| colspan=2 | [https://developer.apple.com/documentation/opengles OpenGL ES x.x] (iPhone OS 2 – iOS 12.0)<br/><small>Supporting OpenGL ES x.x APIs is crucial for emulators due to compatibility and [[Preservation_projects|preservation]] reasons.</small> | | colspan=2 | [https://developer.apple.com/documentation/opengles OpenGL ES x.x] (iPhone OS 2 – iOS 12.0)<br/><small>Supporting OpenGL ES x.x APIs is crucial for emulators due to compatibility and [[Preservation_projects|preservation]] reasons.</small> | ||
− | | {{ | + | | {{Y}}[https://github.com/hikari-no-yume/touchHLE?tab=readme-ov-file#development-status *] |
| {{?}} | | {{?}} | ||
| {{?}} | | {{?}} | ||
Line 413: | Line 310: | ||
| colspan=2 | [https://developer.apple.com/metal/ Metal] (iOS 8 to ''present'') | | colspan=2 | [https://developer.apple.com/metal/ Metal] (iOS 8 to ''present'') | ||
|style="background:{{{color|#FFD2D2}}};"|[https://github.com/hikari-no-yume/touchHLE/issues/181#issuecomment-1777098259 Never] | |style="background:{{{color|#FFD2D2}}};"|[https://github.com/hikari-no-yume/touchHLE/issues/181#issuecomment-1777098259 Never] | ||
− | | {{ | + | | {{N}} |
| {{?}} | | {{?}} | ||
|} | |} | ||
Line 427: | Line 324: | ||
|rowspan=1 | Graphics | |rowspan=1 | Graphics | ||
| [[Resolution|Resizable Internal Resolution]] | | [[Resolution|Resizable Internal Resolution]] | ||
− | | {{ | + | | {{Y}}[https://github.com/hikari-no-yume/touchHLE/blob/trunk/OPTIONS_HELP.txt#L23 *] |
| {{?}} | | {{?}} | ||
|- | |- | ||
Line 495: | Line 392: | ||
|- | |- | ||
| Per-Game Profiles | | Per-Game Profiles | ||
− | | {{ | + | | {{Y}} |
− | | {{ | + | | {{N}} |
|- | |- | ||
| Command Line Options | | Command Line Options | ||
− | | {{ | + | | {{Y}} |
| {{?}} | | {{?}} | ||
|- | |- | ||
| On-Screen Display<br/><small>Showcases messages, controller input state which is useful for speedrunners, performance data, active settings, and various notifications.</small> | | On-Screen Display<br/><small>Showcases messages, controller input state which is useful for speedrunners, performance data, active settings, and various notifications.</small> | ||
− | | {{ | + | | {{N}} |
− | | {{ | + | | {{N}} |
|- | |- | ||
| Built-in On-Screen Control<br/><small>Simulating touch input on display via keyboard or gamepad. This QoL enhancement is crucial for lots of touch input exclusive games.<br/>Also you can use third party apps such as [https://apps.apple.com/us/app/shootingplus-v3/id1447087625 ShootingPlus V3] for this.</small> | | Built-in On-Screen Control<br/><small>Simulating touch input on display via keyboard or gamepad. This QoL enhancement is crucial for lots of touch input exclusive games.<br/>Also you can use third party apps such as [https://apps.apple.com/us/app/shootingplus-v3/id1447087625 ShootingPlus V3] for this.</small> | ||
− | | {{ | + | | {{Y}}[https://github.com/hikari-no-yume/touchHLE/blob/trunk/OPTIONS_HELP.txt#L33 *] |
− | | {{ | + | | {{N}} |
|- | |- | ||
| Big Picture Mode | | Big Picture Mode | ||
Line 514: | Line 411: | ||
| {{✗}} | | {{✗}} | ||
|- | |- | ||
− | | rowspan= | + | | rowspan=2 | Misc |
| [[Wikipedia:Variable_refresh_rate|Variable Refresh Rate compatible]] | | [[Wikipedia:Variable_refresh_rate|Variable Refresh Rate compatible]] | ||
− | | {{ | + | | {{N}} |
− | | {{ | + | | {{N}} |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| Debug features | | Debug features | ||
Line 540: | Line 431: | ||
==External links== | ==External links== | ||
*[[Wikipedia:Comparison_of_mobile_operating_systems|Comparison of mobile operating systems]] (Wikipedia) | *[[Wikipedia:Comparison_of_mobile_operating_systems|Comparison of mobile operating systems]] (Wikipedia) | ||
− | *Reddit: [https://www.reddit.com/r/LegacyJailbreak/ r/LegacyJailbreak] (old devices) [https://www.reddit.com/r/ | + | *Reddit: [https://www.reddit.com/r/LegacyJailbreak/ r/LegacyJailbreak] (old devices) [https://www.reddit.com/r/LegacyJailbreak/ r/LegacyJailbreak] (new devices) |
{{Apple}} | {{Apple}} |