DolphiniOS ver. 4.0.0 beta 7

It’s been a while, hasn’t it? We are pleased to announce that the first public beta build for the rewrite is (finally) out. We distributed betas 1 through 6 in a small circle for quite some time now, and we’ve received positive feedback from our testers. Since Apple might announce their plans for sideloading in Europe soon, we believe now is a good time to start distributing the rewrite to the general public.

For downloads and installation instructions for the beta version, head to our website: https://dolphinios.oatmealdome.me/beta

To report an issue, head to our issue tracker: https://github.com/OatmealDome/dolphin-ios/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.

What is DolphiniOS?

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.

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.

Because of Apple’s restrictions on emulators on the App Store and their refusal to allow sideloading, DolphiniOS is not an official version of Dolphin.

Sideloading in Europe

First, we’d like to mention that we are observing the current situation in the European Union. In 2022, the European Commission passed the Digital Markets Act, which requires Apple to allow users to sideload applications onto their devices. The deadline for compliance is March 6, 2024.

Once Apple complies with this new law, it may become possible to sideload DolphiniOS onto European iPhones and iPads.

The biggest unknown in this scenario is whether Apple will allow us to use JIT or not. Without JIT, DolphiniOS will not be able to run. (For more information about JIT, see this page.) Only Apple-developed apps are currently allowed to use JIT. All JIT enablers exploit a loophole which temporarily allows a third party app to use JIT.

As of the time of writing, Apple has not provided any details about how they will comply with the Digital Markets Act. We will make an announcement about DolphiniOS compatibility once we have more information.

iOS 17 and JIT

We should note that Apple made changes in iOS 17 to the way that Developer Mode is activated. These changes broke all pre-existing JIT enablers. Some enablers have added iOS 17 support, but only on macOS.

If you have a non-jailbroken device on iOS 17 and do not have a Mac, it is not possible to run DolphiniOS as of the time of writing.

Changes

Rewritten Codebase

For version 4.0.0, we have started to rewrite the DolphiniOS code completely. We decided to abandon the old codebase for various reasons:

  • First, the old code had performance issues. As many people know, there are many odd issues surrounding performance in 3.2.0 and 3.2.1. One of our aims for the rewritten code was to avoid re-adding any of these issues and to achieve the maximum performance possible on every device.
  • Second, it was difficult to maintain the old code. To put it bluntly, the quality was very poor. Because of this, it became hard to add features, fix bugs, and to port it to additional platforms (for example, our proposed tvOS version). The rewritten code is built to be of good quality from the start and to be easily extensible.
  • Third, we wanted to be able to synchronize with official Dolphin versions more often. By minimizing changes to the Dolphin core, we are now able to update DolphiniOS to the latest code more easily.
  • Fourth, we wanted to create a new repository to host DolphiniOS’s source code. GitHub has an odd system where only you can only have one fork of a repository. Since we also do development work on the official version of Dolphin, changes meant for DolphiniOS and changes meant for official versions had to be pushed to the same repository. Separating DolphiniOS into its own repository cleans things up, allows for an issue tracker to be directly integrated into the repository, and makes pull requests less complicated.

Increased Performance

Testing by users with early betas of 4.0.0 shows that even in this early state, version 4.0.0 runs faster than version 3.2.1.

In addition, there are various new features that have been introduced in official Dolphin builds which help increase performance. These features have been ported to DolphiniOS in version 4.0.0:

  • A native Metal video backend (courtesy of TellowKrinkle)
  • SoftMMU, which gives a speed boost to devices that can’t use fastmem (courtesy of JosJuice)
  • VI Skip, which allows a game’s audio to run full speed even if the actual game itself isn’t (courtesy of samb)

Thank you to all the contributors that have helped to improve Dolphin.

External Display (Wired & AirPlay) Support

DolphiniOS now supports external displays, which allows you to stream your games to a compatible device such as an Apple TV or a Mac. This feature lets you enjoy your favorite games on a bigger screen with minimal latency.

To connect to an external display, follow these steps:

  1. Launch a game in DolphiniOS.
  2. Connect to your external display.
  3. Your game should now appear on the external display.

TrollStore

We finally have support for TrollStore.

Any iOS version that can run TrollStore can now install DolphiniOS and use it without the need for a JIT enabler. The TrollStore version of DolphiniOS also benefits from full fastmem support without the need for an Apple developer subscription, which will boost performance.

Thank you to PojavLauncher for their JIT workaround.

iOS 12 and 13 Support Discontinued

DolphiniOS will no longer support iOS 12 and 13 devices starting from version 4.0.0. This decision was made for several reasons:

  • We no longer have any devices that run iOS 12 or 13 that we can test on to ensure that DolphiniOS still works.
  • If DolphiniOS breaks on those iOS versions, fixing the issue would be difficult due to the lack of testing devices.
  • Code complexity was increased in some areas due to additional iOS 12 and 13 workarounds, which makes those parts harder to maintain.
  • According to our opt-in analytics, iOS 12 and 13 devices make up an extremely small portion of our userbase (less than 2%).

We apologize for any inconvenience this may cause to those who are still using these older iOS versions. We recommend that you either update your device to iOS 14 or later if possible, or use an older version of DolphiniOS that still supports your device. You can find downloads for previous versions of DolphiniOS on GitHub.

What’s Missing

The rewrite is not complete at the moment. There are still many features missing, including:

  • Delete software button
  • Install WAD button
  • Open external file without importing button
  • Launch GameCube IPL button
  • Touchscreen pointer for Wii games
  • Adjusting the touchscreen controller’s translucency
  • Rumble on/off toggle
  • Automatic save state when app enters background
  • Various debugging options

If you rely on any of these features, you may want to continue using version 3.2.1 for now.

The Future Starts with You!

If you encounter any bugs on this beta build or want to request a feature, please open an issue on our issue tracker.

Remember: “Testing is the future, and the future starts with you.