IOS emulators: Difference between revisions

Ahayri (talk | contribs)
Emulaster (talk | contribs)
No edit summary
 
(10 intermediate revisions by 8 users not shown)
Line 19: Line 19:
==Emulators==
==Emulators==
{| class="wikitable" style="text-align:center;width:100%"
{| class="wikitable" style="text-align:center;width:100%"
! scope="col"|Name
!Name
! scope="col"|Platform(s)
!Platform(s)
! scope="col"|Latest version
!Latest version
! scope="col"|Compatibility
!Compatibility
! scope="col"|[[Licensing|License]]
![[Licensing|License]]
! scope="col"|Active
!Active
! scope="col"|[[Recommended emulators|Recommended]]
![[Recommended emulators|Recommended]]
|+Before editing, review the [[Getting involved]] and [[Recommended emulators|Recommended]] pages. See [[Computer_specifications#Recommended_Specifications|system requirements]] page for performance demand of the emulators.<br/>See tables for <span style="font-weight: bold; color: #CC0000; border: 1px solid #CC0000; padding: 2px;">[[#Enhancements|enhancements]] and [[#Hardware_features|hardware features]]</span><br/>For more details such as [[licensing]], [[Source_code#Language_levels|programming language]], [[High_and_low-level_emulation|emulation method]], visit each emulator’s dedicated page.
|+Before editing, review the [[Getting involved]] and [[Recommended emulators|Recommended]] pages. See [[Computer_specifications#Recommended_Specifications|system requirements]] page for performance demand of the emulators.<br>See tables for <span style="font-weight: bold; color: #CC0000; border: 1px solid #CC0000; padding: 2px;">[[#Enhancements|enhancements]] and [[#Hardware_features|hardware features]]</span><br>For more details such as [[licensing]], [[Source_code#Language_levels|programming language]], [[High_and_low-level_emulation|emulation method]], visit each emulator’s dedicated page.
|-
|-
!colspan="9"|x86
!colspan="9"|x86
|-
|[https://github.com/HyperHLE/HyperHLE/ HyperHLE]
|align=left|{{Icon|Windows|macOS|Linux|LinuxARM}}
|[https://github.com/HyperHLE/HyperHLE/ git]
|?
|{{Green}} {{License|MPL2}} ({{License|Copyleft}})
|{{✓}}
|{{~}}
|-
|-
|[[touchHLE]]
|[[touchHLE]]
|align=left|{{Icon|Windows|macOS|Linux|LinuxARM}}<ref group=N>Linux release requires you to build it yourself from source, however unofficial compiled AppImages can be found [https://github.com/pkgforge-dev/TouchHLE-AppImage here].</ref>
|align=left|{{Icon|Windows|macOS|Linux}}<ref name=":0">Linux release requires you to build it yourself from source, however unofficial compiled AppImages can be found [https://github.com/pkgforge-dev/TouchHLE-AppImage here].</ref>
|[https://touchhle.org/download/ {{TouchHLEVer}}]
|[https://touchhle.org/download/ {{TouchHLEVer}}]
|{{Emulator compatibility|link=https://appdb.touchhle.org/|319|755}}
|{{Emulator compatibility|link=https://appdb.touchhle.org/|398|879}}
|{{Green}} {{License|MPL2}} ({{License|Copyleft}})
|{{Green}} {{License|MPL2}} ({{License|Copyleft}})
|{{✓}}
|{{✓}}
Line 135: Line 127:
|?
|?
|{{?}} ||{{✗}} ||{{✗}}
|{{?}} ||{{✗}} ||{{✗}}
|-
|[https://github.com/HyperHLE/HyperHLE/ HyperHLE]
|align=left|{{Icon|Windows|macOS|Linux}}
|[https://github.com/HyperHLE/HyperHLE/ git]
|?
|{{Green}} {{License|MPL2}} ({{License|Copyleft}})
|{{✓}}
|{{✗}}
|-
|-
!colspan="9"|ARM
!colspan="9"|ARM
|-
|-
|[https://touchhle.org/ touchHLE]
|[https://touchhle.org/ touchHLE]
|align=left|{{Icon|Android}}
|align=left|{{Icon|Android|Mac|LinuxARM}}<ref name=":0" />
|[https://touchhle.org/download/ 0.2.2]
|[https://touchhle.org/download/ 0.2.3]
|{{Emulator compatibility|link=https://appdb.touchhle.org/|319|755}}
|{{Emulator compatibility|link=https://appdb.touchhle.org/|398|879}}
|{{Green}} {{License|MPL2}} ({{License|Copyleft}})
|{{Green}} {{License|MPL2}} ({{License|Copyleft}})
|{{✓}}
|{{✓}}
|{{~}}
|{{~}}
|-
|[https://github.com/johnny901901901/Applesauce Applesauce]
| align="left" |{{Icon|iOS|iPadOS}}
|[https://github.com/johnny901901901/Applesauce/releases git]
|?
|MPL 2.0 (Copyleft)
|{{✓}}
|
|-
|[https://github.com/HyperHLE/HyperHLE/ HyperHLE]
| align="left" |{{Icon|Android}}
|[https://github.com/HyperHLE/HyperHLE/ git]
|?
|MPL 2.0 (Copyleft)
|{{✓}}
|{{✗}}
|-
|}
|}


==Hypervisors [[Hypervisors|(...)]]==
==Hypervisors [[Hypervisors|(...)]]==
<div style="overflow-x:auto;width:100%">
{| class="wikitable" style="text-align:center;width:100%"
{| class="wikitable" style="text-align:center;width:100%"
! scope="col"|Name
!Name
! scope="col"|Platform(s)
!Platform(s)
! scope="col"|Latest version
!Latest version
! scope="col"|Compatibility
!Compatibility
! scope="col"|[[Licensing|License]]
![[Licensing|License]]
! scope="col"|Active
!Active
! scope="col"|[[Recommended emulators|Recommended]]
![[Recommended emulators|Recommended]]
|-
|-
|[https://www.corellium.com/ Corellium]
|[https://www.corellium.com/ Corellium]
Line 170: Line 186:
| -
| -
| ?
| ?
|{{Green}} {{License|MIT}}<ref group=N>Formerly licensed under {{License|WTFPLv2}}</ref>
|{{Green}} {{License|MIT}} ({{License|Permissive}})<ref group=N>Formerly licensed under {{License|WTFPLv2}}</ref>
| {{✓}}
| {{✓}}
| {{~}}
| {{~}}
Line 176: Line 192:


==Native==
==Native==
<div style="overflow-x:auto;width:100%">
{| class="wikitable" style="text-align:center;width:100%"
{| class="wikitable" style="text-align:center;width:100%"
! scope="col"|Name
!Name
! scope="col"|Platform(s)
!Platform(s)
! scope="col"|Latest version
!Latest version
! scope="col"|Compatibility
!Compatibility
! scope="col"|[[Licensing|License]]
![[Licensing|License]]
! scope="col"|Active
!Active
! scope="col"|[[Recommended emulators|Recommended]]
![[Recommended emulators|Recommended]]
|-
|-
!colspan="9"|ARM
!colspan="9"|ARM
Line 214: Line 229:


::;HyperHLE
::;HyperHLE
:::A fork of touchHLE that supports higher versions of iOS, up to iOS 10.
:::A fork of touchHLE that supports higher versions of iOS, up to iOS 10. '''This fork uses AI-assisted code, as such, we do <u>NOT</u> recommend it.'''
::
::
::
::
Line 301: Line 316:
! Corellium
! Corellium
|-
|-
| colspan=2 | [[Wikipedia:IOS#Home_screen|Home screen]]<br/><small>This shouldn't be confused with emulator frontend/GUI.</small>
| colspan=2 | [[Wikipedia:IOS#Home_screen|Home screen]]<br><small>This shouldn't be confused with emulator frontend/GUI.</small>
| {{✗}}
| {{✗}}
| {{~}}
| {{~}}
Line 347: Line 362:
|-
|-
| rowspan=2 | Connectivity
| rowspan=2 | Connectivity
| [[Preservation_projects#Private_Platform_Servers|Game Center]]<br/><small>Achievements, Challenges, Leaderboards etc.</small>
| [[Preservation_projects#Private_Platform_Servers|Game Center]]<br><small>Achievements, Challenges, Leaderboards etc.</small>
| {{✗}}
| {{✗}}
| {{✗}}
| {{✗}}
Line 364: Line 379:
| {{✗}}
| {{✗}}
|-
|-
| colspan=2 | iPhone OS 2<br/><small>iPhone OS 2.2.1 was the last version compatible solely with ARMv6 chips.
| colspan=2 | iPhone OS 2<br><small>iPhone OS 2.2.1 was the last version compatible solely with ARMv6 chips.
| {{✓}}
| {{✓}}
| {{✓}}
| {{✓}}
| {{✗}}
| {{✗}}
|-
|-
| colspan=2 | iPhone OS 3<br/><small>Supported both ARMv6 and ARMv7-A chips.</br>
| colspan=2 | iPhone OS 3<br><small>Supported both ARMv6 and ARMv7-A chips.<br>
| {{~}} <br> <small>TouchHLE currently only supports 3.0 and 3.1.x.</small>
| {{}}
| {{✗}}
| {{✗}}
| {{✗}}
| {{✗}}
|-
|-
| colspan=2 | iOS 4<br/><small>iOS 4.2.1 was the last version supported ARMv6 chips.</small>
| colspan=2 | iOS 4<br><small>iOS 4.2.1 was the last version supported ARMv6 chips.</small>
| {{~}}
| {{~}} <br> <small>TouchHLE currently only supports 4.0.x and 4.1.</small>
| {{✗}}
| {{✗}}
| {{✗}}
| {{✗}}
Line 384: Line 399:
| {{✗}}
| {{✗}}
|-
|-
| colspan=2 | iOS 6<br/><small>iOS 6.1.6 was the last version compatible solely with 32-bit ARMv7-A chips.</small>
| colspan=2 | iOS 6<br><small>iOS 6.1.6 was the last version compatible solely with 32-bit ARMv7-A chips.</small>
|style="background:skyblue;"|[https://github.com/hikari-no-yume/touchHLE#touchhle-high-level-emulator-for-iphone-os-apps Future goal]
|style="background:skyblue;"|[https://github.com/hikari-no-yume/touchHLE#touchhle-high-level-emulator-for-iphone-os-apps Future goal]
| {{✗}}
| {{✗}}
| {{✗}}
| {{✗}}
|-
|-
| colspan=2 | iOS 7 to 10<br/><small>Supports both 64-bit ARMv8''x''-A and 32-bit ARMv7-A chips. iOS 10.3.4 was the last version that supported 32-bit chips.</small>
| colspan=2 | iOS 7 to 10<br><small>Supports both 64-bit ARMv8''x''-A and 32-bit ARMv7-A chips. iOS 10.3.4 was the last version that supported 32-bit chips.</small>
|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]
| {{✗}}
| {{✗}}
Line 411: Line 426:
! colspan=5 | [https://developer.apple.com/documentation/xcode/application-binary-interfaces Supported ABIs]
! colspan=5 | [https://developer.apple.com/documentation/xcode/application-binary-interfaces Supported ABIs]
|-
|-
| 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>
| {{✓}}[https://github.com/merryhime/dynarmic?tab=readme-ov-file#supported-guest-architectures *]
| {{✓}}[https://github.com/merryhime/dynarmic?tab=readme-ov-file#supported-guest-architectures *]
| {{✗}}
| {{✗}}
| {{✗}}
| {{✗}}
|-
|-
| 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>
| {{✓}}[https://github.com/merryhime/dynarmic?tab=readme-ov-file#supported-guest-architectures *]
| {{✓}}[https://github.com/merryhime/dynarmic?tab=readme-ov-file#supported-guest-architectures *]
| {{✗}}
| {{✗}}
Line 428: Line 443:
! colspan=5 | [https://developer.apple.com/documentation/technologies Supported APIs]
! colspan=5 | [https://developer.apple.com/documentation/technologies Supported APIs]
|-
|-
| 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>
| {{~}}[https://github.com/hikari-no-yume/touchHLE?tab=readme-ov-file#development-status *]<br/><small>TouchHLE currently support only OpenGL ES 1.[https://old.reddit.com/r/emulation/comments/1gqdrwm/touchhle_emulator_development_video/lx26wwu/]</small>
| {{~}}[https://github.com/hikari-no-yume/touchHLE?tab=readme-ov-file#development-status *]<br><small>TouchHLE currently support only OpenGL ES 1.[https://old.reddit.com/r/emulation/comments/1gqdrwm/touchhle_emulator_development_video/lx26wwu/]</small>
| {{?}}
| {{?}}
| {{?}}
| {{?}}
Line 453: Line 468:
|-
|-
|rowspan=6 | Post-Processing
|rowspan=6 | Post-Processing
| [[Shader_Presets|Shader Chain]]
| {{Enhancements/Post-processing/Shader chain}}
| {{✗}}[https://github.com/touchHLE/touchHLE/issues/532]
| {{✗}}[https://github.com/touchHLE/touchHLE/issues/532]
| {{✗}}
| {{✗}}
|-
|-
| [[Shaders_and_filters|Filters]]
| {{Enhancements/Post-processing/Filters}}
| {{✗}}
| {{✗}}
| {{✗}}
| {{✗}}
|-
|-
|[[Shaders_and_filters#AI-powered filters|AI-powered filter compatible]]<br/><small>([https://www.nvidia.com/en-us/geforce/news/gfecnt/nvidia-freestyle-ansel-enhancements-geforce-experience-article/ Freestyle])</small>
|{{Enhancements/Post-processing/AI-powered filter compatible}}
| {{?}}
| {{?}}
| {{?}}
| {{?}}
|-
|-
| [[Wikipedia:Category:Anti-aliasing_algorithms|Post-rendering AA]]<br/><small>(FXAA, TXAA and MLAA/SMAA)</small>
| [[Wikipedia:Category:Anti-aliasing_algorithms|Post-rendering AA]]<br><small>(FXAA, TXAA and MLAA/SMAA)</small>
| {{✗}}
| {{✗}}
| {{✗}}
| {{✗}}
|-
|-
| [[Wikipedia:Comparison_gallery_of_image_scaling_algorithms|Post-rendering scaling]]<br/><small>(Sharp bilinear, Lanczos and [[Wikipedia:GPUOpen#FidelityFX_Super_Resolution|FSR 1]])</small>
| [[Wikipedia:Comparison_gallery_of_image_scaling_algorithms|Post-rendering scaling]]<br><small>(Sharp bilinear, Lanczos and [[Wikipedia:GPUOpen#FidelityFX_Super_Resolution|FSR 1]])</small>
| {{✗}}
| {{✗}}
| {{✗}}
| {{✗}}
Line 499: Line 514:
|-
|-
| rowspan=4 | Input
| rowspan=4 | Input
| [[Controllers#Mouse Injectors for Emulators|Keyboard input injection]]<br/><small>Early versions of iOS didn't support keyboard input.<br/>One way an iOS emulator can provide keyboard input for these versions is through the injection method, which sends keystrokes input data directy into emulated memory.</small>
| [[Controllers#Mouse Injectors for Emulators|Keyboard input injection]]<br><small>Early versions of iOS didn't support keyboard input.<br>One way an iOS emulator can provide keyboard input for these versions is through the injection method, which sends keystrokes input data directy into emulated memory.</small>
| {{✗}}
| {{✗}}
| {{✗}}
| {{✗}}
|-
|-
| [[Controllers#Mouse Injectors for Emulators|Mouse input injection]]<br/><small>Early versions of iOS didn't support mouse input.<br/>One way an iOS emulator can provide mouse input for these versions is through the injection method, which sends cursor input data directy into emulated memory.</small>
| [[Controllers#Mouse Injectors for Emulators|Mouse input injection]]<br><small>Early versions of iOS didn't support mouse input.<br>One way an iOS emulator can provide mouse input for these versions is through the injection method, which sends cursor input data directy into emulated memory.</small>
| {{✗}}
| {{✗}}
| {{✗}}
| {{✗}}
|-
|-
| [[Controllers#Mouse Injectors for Emulators|Gamepad input injection]]<br/><small>Before [[Wikipedia:MFi_Program|MFi]] extended support in iOS 7 (unlocking gamepad compatibility for devices like the [https://blog.logitech.com/2013/11/20/compatible-games-for-logitech-powershell-controller-battery/ Logitech Powershell Controller]).<br/> Earlier iOS versions (1-to-6) offered [https://www.gottabemobile.com/ios-6-gaming-ipad-controller-iphone/ no native gamepad support].</small>
| [[Controllers#Mouse Injectors for Emulators|Gamepad input injection]]<br><small>Before [[Wikipedia:MFi_Program|MFi]] extended support in iOS 7 (unlocking gamepad compatibility for devices like the [https://blog.logitech.com/2013/11/20/compatible-games-for-logitech-powershell-controller-battery/ Logitech Powershell Controller]).<br> Earlier iOS versions (1-to-6) offered [https://www.gottabemobile.com/ios-6-gaming-ipad-controller-iphone/ no native gamepad support].</small>
| {{✗}}
| {{✗}}
| {{✗}}
| {{✗}}
Line 532: Line 547:
| {{?}}
| {{?}}
|-
|-
| 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>
| {{✗}}
| {{✗}}
| {{✗}}
| {{✗}}
|-
|-
| 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>
| {{✓}}[https://github.com/hikari-no-yume/touchHLE/blob/trunk/OPTIONS_HELP.txt#L33 *]
| {{✓}}[https://github.com/hikari-no-yume/touchHLE/blob/trunk/OPTIONS_HELP.txt#L33 *]
| {{✗}}
| {{✗}}
Line 548: Line 563:
| {{✗}}
| {{✗}}
|-
|-
|[https://www.portablefreeware.com/faq.php#portable Portable] and [https://www.portablefreeware.com/faq.php#stealth Stealth]<br /><small>Useful enhancement feature for non-personal computer use or plug-and-play scenarios. However, the software may still require the necessary [[Computer_specifications#Operating_System|prerequisites and dependencies]] for your operating system if it is not statically linked.</small>
|[https://www.portablefreeware.com/faq.php#portable Portable] and [https://www.portablefreeware.com/faq.php#stealth Stealth]<br><small>Useful enhancement feature for non-personal computer use or plug-and-play scenarios. However, the software may still require the necessary [[Computer_specifications#Operating_System|prerequisites and dependencies]] for your operating system if it is not statically linked.</small>
| {{✓}}
| {{✓}}
| {{✗}}
| {{✗}}
Line 560: Line 575:
| colspan=11 |  Exclusive to [https://www.emuvr.net/wiki/Installation_Guide#Downloads libretro cores] at the moment. So there is no support.
| colspan=11 |  Exclusive to [https://www.emuvr.net/wiki/Installation_Guide#Downloads libretro cores] at the moment. So there is no support.
|-
|-
|Rich Presence (RPC)<br/><small>Allows the emulator to share real-time game session details (e.g., current game title, level, boss, playtime, or custom status) with external applications. This enables features such as displaying what you're playing on your profile, inviting friends to spectate, or triggering join-in-progress functionality where supported.</small>
|Rich Presence (RPC)<br><small>Allows the emulator to share real-time game session details (e.g., current game title, level, boss, playtime, or custom status) with external applications. This enables features such as displaying what you're playing on your profile, inviting friends to spectate, or triggering join-in-progress functionality where supported.</small>
|{{Dunno}}
|{{Dunno}}
|{{Dunno}}
|{{Dunno}}
|-
|-
|Screen translator<br /><small>Using optical character recognition (OCR) and other techniques, this feature can provide live translation of in-game text, text-to-speech for visually impaired users, and more — either on demand or automatically.</small></small>
|Screen translator<br><small>Using optical character recognition (OCR) and other techniques, this feature can provide live translation of in-game text, text-to-speech for visually impaired users, and more — either on demand or automatically.</small></small>
|colspan="11" |You can use [https://docs.libretro.com/guides/ai-service/ RetroArch's AI Service] or the standalone offline [https://github.com/bquenin/interpreter bquenin's Interpreter].
|colspan="11" |You can use [https://docs.libretro.com/guides/ai-service/ RetroArch's AI Service] or the standalone offline [https://github.com/bquenin/interpreter bquenin's Interpreter].
|-
|-