Wow, a new beta! It’s been a while, hasn’t it? With the advent of new “JIT enablers” for non-jailbroken devices, we thought an update was probably long overdue.
Unlike our previous beta program, public betas are free for everyone to try. Please be aware that these betas may be more unstable than the current non-beta version.
For downloads and installation instructions, head to our website: https://dolphinios.oatmealdome.me/beta
To report an issue with the beta, 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.
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.
New Features
Jitterbug and AltJIT Support
DolphiniOS will now refuse to run games if JIT has not been enabled on non-jailbroken devices, due to the JIT workaround previously utilized on A12+ devices being patched out on newer iOS versions.
For those who are participating in the AltStore Patreon beta program, we have now added support for AltJIT. When your device is on the same Wi-Fi network as your computer running AltServer, DolphiniOS will contact it and have it automatically enable JIT. For more information, please check Riley’s Patreon post.
For everyone else, an external JIT enabler is required. This can be Jitterbug by osy86, Xcode, or the “workaround” by jkcoxson and spidy123222.
If you are on an iOS version which still supports the JIT workaround on an A12+ device, you do not need an enabler.
DolphiniOS will continue to function as normal on all jailbroken devices. No external JIT enabler will ever be required.
Performance and Accuracy Improvements
The last time the Dolphin core was updated was version 3.1.0, which is quite some time ago. (October 2020!) Version 3.2.0 beta 2 has updated the Dolphin core to 5.0-14363, which includes many improvements that have been made over the past few months.
Thanks to JosJuice’s hard work on the arm64 JIT, performance and accuracy has improved in many titles. Here’s a selection of games that benefit from their changes:
- Paper Mario: The Thousand Year Door
- Sonic Colors
- F-Zero GX
- Super Monkey Ball 1 and 2
- Super Mario Sunshine
- Super Mario Galaxy
- The Legend of Zelda: The Wind Waker
- Mario Kart Wii
- and more…
We would also like to thank Skyler for adding Apple Silicon support to the official Dolphin builds, as this decreases the amount of modified Dolphin code we have to maintain.
And as always, thank you to all the Dolphin Project contributors!
For more information about what has improved, check the following Dolphin Progress Reports:
Detailed Changelog
- Added support for AltJIT.
- AltJIT is a new AltServer feature added in version 1.5, which is currently in beta.
- 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 Riley’s Patreon post.
- 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.
- 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.
- More experimentation is probably required.
- 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 whensetEnabled:
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.
- Feel free to suggest replacements in our Discord.
- 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.
- The last stable version which properly supported psychicpaper JIT is available to download on our website.
- Removed game-specific JIT hacks introduced in version 3.1.0.
- The updated Dolphin core should make most (if not all) of these redundant.
For developers or those who compile their own builds:
- Work has begun on a version of DolphiniOS for tvOS.
- A significant amount of work still has to be completed before it is usable.
- We are working with Riley to produce this version.
- Code that can be shared between the iOS and tvOS targets is gradually being moved into a new “Common” group.
- The README’s build instructions have been updated.
- Analytics are no longer included in all locally produced builds to make the build process less complex.
- A dummy
GoogleServices-Info.plist
will be included in the app bundle. - The “No Analytics” build type has been removed, as all build types no longer include analytics.
- To enable analytics, define
ANALYTICS=1
in Clang’s preprocessor definitions.
- A dummy
- The large AppDelegate is being split into individual “Services” over time.
- Simulator targets are now supported (again).
- Due to the Simulator only providing an A8-equivalent GPU, the OpenGL backend must be used when running software inside the Simulator.
- The Simulator uses a software renderer for OpenGL ES, so performance will be very slow even on high-end Macs.
- Two panic alerts relating to
OGLTexture.cpp
may appear when starting a game. These can be safely ignored.
- MoltenVK is now stored in an XCFramework to simplify the build system’s support for multiple target platforms.
- On iOS, a locally compiled fork of MoltenVK version 1.2.135.0 with logic ops support is used.
- On tvOS and all Simulators, a near-latest version of MoltenVK is used.
- The Swift Package Manager is now used to install AltKit.
- Removed
SUPPRESS_UNSUPPORTED_DEVICE
define in favor of just using theDEBUG
define in its place. - For an unknown reason, debug builds may not be able to run software properly on certain devices.
- I am currently experiencing this problem on my iPhone X running iOS 14.6.
- The Dolphin core may throw “invalid read” warnings, the screen may appear corrupt, or the app may just crash altogether.
- Fixed shell scripts not being compatible with paths that contain spaces.
Sneak Peek
Since AltServer support for tvOS is coming soon-ish for the general public, we are collaborating with Riley to produce a version of DolphiniOS that can run on tvOS.
Please note that only the first and second generation models of the Apple TV 4K will be supported. The Apple TV HD will not be supported due to the limited feature set of its A8 GPU. Older Apple TVs that do not run tvOS will not supported either.
While we have made great progress in the past month, we have no estimated release date. Thanks for your patience.
In the meantime, take a peek at what we have so far!