DolphiniOS ver. 3.2.0

Version 3.2.0

Finally, a new stable version!

For downloads and installation instructions, head to our revamped website: https://dolphinios.oatmealdome.me/

To report an issue, head to our issue tracker: https://github.com/OatmealDome/DolphiniOS-Issue-Tracker/issues

Looking for the PC, Mac, or Android version of Dolphin? Get it from https://dolphin-emu.org! If you wish to support the official Dolphin project and its developers, consider visiting their website without an ad blocker enabled.

A minor beta version, 3.2.1b1, was released to the beta channel on July 5th, 2022. This version fixes ubershader compilation errors, and solves an issue with fastmem on iOS 16 betas.

What is Dolphin?

Dolphin is an emulator for the GameCube and Wii consoles. It lets you play games made for these consoles on PCs, Macs, phones, and tablets.

For more information, go to https://dolphin-emu.org.

DolphiniOS is a port of Dolphin to iOS and iPadOS. It is not affiliated with the Dolphin Project.

New Features

New Ways to Enable JIT

The few months have seen the advent of several new ways to allow JIT to work on non-jailbroken device.

The newest and most exciting method is JitStreamer – a service made by jkcoxson and spidy123222 that lets you enable JIT wherever you have a Wi-Fi connection.

Riley’s AltStore also has a new feature called AltJIT, which lets you enable JIT whenever you are on the same Wi-Fi network as your PC or Mac running AltServer.

Finally, an app called Jitterbug lets those with two iOS or iPadOS devices to enable JIT while they are on the same network.

DolphiniOS supports all of these methods. Now, when you start a game, DolphiniOS will first check to see if JIT is currently enabled on the app. If it is not, then a screen will pop up to assist you in enabling JIT. If you are updated to the latest AltServer or are connected to the JitStreamer VPN, DolphiniOS will automatically attempt to enable JIT.

Screenshot of the new JIT screen.

If you need help using any of these JIT enablers, see our guide.

Rumble

Rumble is now supported on iPhone 7 and newer when using the Touchscreen controller.

What’s Next for DolphiniOS?

So, as many of you probably know, there has been no release for some time. This was because of various factors – including Apple being overly restrictive and killing all of our easy methods to get JIT working on non-jailbroken devices.

When we came back to do this release after the advent of the new JIT enablers, we looked at the codebase of DolphiniOS and found it was incredibly difficult to work with. Therefore, we have made the decision to throw out most of our existing code and start over from scratch.

This rewrite should bring multiple benefits:

  • Increased stability for developers (debug builds have been non-functional on our primary testing device for a long time) and for users
  • Easier to add features and fix bugs
  • More frequent synchronization with PC / Mac versions of Dolphin

Rewriting the code will take some time, but we think it will be worth it in the end.

Detailed Changelog

The following changes were made in 3.2.1b1:

  • Fixed ubershaders.
  • Fixed fastmem crashing on iOS 16 betas.

The following changes were made in 3.2.0:

  • Added support for AltJIT.
    • AltJIT is a new AltServer feature added in version 1.5.
    • When your device is on the same Wi-Fi network as your computer running AltServer, DolphiniOS will automatically contact AltServer and have it enable JIT.
    • For more details, please see the AltJIT guide.
  • Added support for JitStreamer.
    • If your device is connected to the JitStreamer VPN, DolphiniOS will automatically ask the JitStreamer server to enable JIT.
    • For more details, please see the JitStreamer website.
  • Added a “waiting for JIT” screen which appears before a game is launched.
    • The screen will not close until JIT has been acquired by some external means.
    • This prevents the app from crashing when launching a game if it does not have JIT.
    • If you need help with enabling JIT, refer to our guide.
  • Added rumble support.
    • Supported devices include:
      • iOS devices with Taptic Engines (iPhone 7 and higher)
    • Turn this on or off for iOS devices in Settings -> Controllers -> Touchscreen.
  • Added 3D Touch capabilities to the touchscreen GameCube controller’s analog triggers.
    • The harder you push on the button, the more “pushed down” the trigger is.
    • When your device “clicks”, the trigger is pushed down all the way.
    • This is only supported on iPhone XS and below, as newer devices do not have 3D Touch hardware.
    • Thanks to goob47 for the initial idea and implementation.
  • Added bulletproof JIT for speed up.
    • This technique replaces the previous “W^X exclusivity” code.
    • Bulletproof JIT may solve the so-called “A13 bug” where some newer devices would run slowly for no discernible reason.
  • Updated the Dolphin core to 5.0-14363.
    • Numerous improvements have been made since the last Dolphin core update in version 3.1.0.
    • This should result in increased performance and accuracy across many games.
    • Thank you to all the Dolphin Project’s contributors!
  • Downgraded MoltenVK to 1.2.135.0.
    • Apparently, this version has better performance than the newer ones.
  • Added a workaround for GPU driver bugs on newer devices involving early-Z and discard_fragment() which causes incorrect rendering in some games.
  • Fixed jailbreakd check not working correctly due to a sandbox error.
  • Fixed error message in the console about the touchscreen GameCube controller’s D-Pad.
  • Fixed DolphiniOS occasionally freezing when receiving a memory warning.
  • Added error alerts to the software importer.
  • Re-added uicache command in postinst script to ensure DolphiniOS appears on the home screen after package installation.
  • Worked around an iOS 14 bug where a UISlider‘s appearance would not update when setEnabled: is called.
  • Fixed the plus and minus buttons being swapped on the touchscreen Classic Controller.
  • Fixed the software importer sometimes leaving the source file open, causing it to be left on the filesystem.
  • Fixed old names being used for CPU emulation engines.
  • Fixed the launch screen’s tab bar not stretching to the bottom of the display on iPhone X style devices.
  • Fixed erroneous haptics errors being printed to the console.
  • Fixed message alerts produced by the Dolphin core not being visible outside of emulation.
  • Removed “swipe down” top bar mode.
    • iOS has lots of bugs in areas related to how the swipe down is implemented, and it only seems to get worse every version. When the issue above was fixed, the swipe down stopped working after an error message appeared.
    • Anyone who is currently using the swipe down mode will automatically be switched to the button toggle mode.
  • Removed restriction on entering the Gecko codes menu.
    • The bug preventing Gecko codes from functioning correctly on arm64 devices has been resolved in the latest Dolphin core.
  • Removed restriction on toggling GPU Texture Decoding.
    • The corruption bug which affected this feature has been fixed long ago.
  • Removed psychicpaper JIT support.
    • A JIT enabler is now required on these devices.
    • However, fastmem will continue to be unlocked if you install DolphiniOS via AltStore.
  • Removed game-specific JIT hacks introduced in version 3.1.0.
    • The updated Dolphin core should make most (if not all) of these redundant.