The Current State of Dolphin on Android 2y1p2b

Dolphin on Android has had a bit of a checkered history since its inception. s loved the idea of being able to take their favorite GameCube and Wii games on the go, but expectations and reality have never quite aligned. When Dolphin was first ed to the Play Store, developers tried to make it absolutely clear games wouldn't be playable, even going as far as calling it "Dolphin Emulator Alpha". Unfortunately, despite many warnings, many people got their hopes up the moment they saw Dolphin was on the appstore and were ready to play their favorite games, even if their device wasn't. While not everyone had false pretenses as to what should be possible, a lot of s blamed Dolphin for being poorly optimized rather than understanding that it wasn't even meant to run full speed yet.

The endless stream of poor ratings and angry comments eventually reached a breaking point and Dolphin was removed from the Play store mid 2016. That didn't mean development on Dolphin on Android had ceased, though. Instead, builds were provided on our page, safely tucked away from the majority of s who may not understand the current state of the app.

Suddenly, earlier this month, the Progress Reports!



  • Unfortunately, Dolphin has not returned to the Android T.V. Store because Dolphin does not 32-bit devices, and the review process seems incapable of understanding that Dolphin does not attempt to target 32-bit devices. If you're on an Android T.V. device that does Dolphin, you won't be able to find it in the store until these nonsensical requirements are removed. With 32-bit devices slowly being obsoleted by 64-bit devices, is it really so strange to have a performance hungry app only target 64-bit devices? Worse yet, the reviewer seemed completely unaware of what the error message meant when they tried to run our 64-bit app on a 32-bit device. If a reviewer can't tell what an error message means, how can you expect a to figure it out?


A Quick Rundown Through the History of Dolphin on Android¶ a6w3c

The original release of Dolphin on the Google Play Store in 2013 had very modest expectations. All a needed was an ARMv7 processor and they were ready to go! That meant almost every Android device back in 2013 could at least run Dolphin to some degree. As explained by Sonicadvance1 at the time, just because it would run doesn't mean it was the experience everyone wanted.

If you're expecting reasonable speeds out of this, you are sorely mistaken. This will run slow on every single Android device, no matter if it is the most powerful one in the world.

Even on a strong device, performance was measured in seconds per frame.

THIS was the fastest Android device back in 2013. Due to async audio, this sounds far better than it runs. Focus on the frames drawn to the screen.

While the original release of Dolphin on Android ran on most devices, major improvements to the app greatly cut down the number of compatible devices. The biggest of which was the requirement of OpenGL ES 3.0 to run the new OpenGL backend. On the few devices that did GLES3, lightweight games could now run at a blistering 5 - 10% speed!

Dolphin on Android's JIT and GLES3 backend were optimized and matured over time. By 2014, we saw our would soon be removed.

Only with the introduction of the 64-bit AArch64 architecture and Dolphin's AArch64 JIT would we see Dolphin on Android finally shine. The device at the forefront of development would be the NVIDIA Shield.

The NVIDIA Shield (launched as the NVIDIA Shield Android TV) was the first Android device that could actually run Dolphin to a reasonable degree. Games like The Legend of Zelda: The Wind Waker, Super Smash Bros. Melee and Animal Crossing could run full-speed or close to full-speed a majority of the time. With Dolphin on Android finally reaching the potential that Sonicadvance1 imagined when he first started working on the port way back in 2010, the reviews were in - s hated Dolphin on Android. The rating tanked and it seemed like almost no one was having a good time.

This happened for a multitude of reasons ranging from mindset, shifting ideals in newer hardware, and Dolphin's heightened requirements. The meteoric rise of single core IPC (Instructions Per Clock) within new ARM devices suddenly flattened in 2014. This led s upgrading their phones over the next year or two to get angry when they saw marginal performance improvements on their shiny new phone or tablet. On the other hand, gaming on Android was starting to shift into games that looked as good as or better than GameCube/Wii games. There were even ports of same-generation titles like Grand Theft Auto: San Andreas furthering the perception that GameCube games should run just fine to the casual . On top of all of that, most s were stuck on 32-bit devices/spaces and were upset that they couldn't run Dolphin whatsoever. In order to stop the bleeding, the Dolphin app was removed from the app store with no plans for it to return. So what exactly has changed?

Running Dolphin on Android in 2018¶ 1d66d


Fast Forward to August 2018 and the Android landscape is a whole new world! AArch64 is now standard, most high-end phones have GLES3 drivers, and the NVIDIA Shield is the best selling Android T.V. device! ...Well not everything has changed. Overall though, the state that Android and ARM devices are in now is far more favorable to Dolphin than it was when the app was removed from the store. The requirements that were once absolutely ridiculous in 2016 are now only a little crazy.

Unlike in 2016, you no longer have to hunt around just to find a phone that can run Dolphin. If you buy a high-end, modern Android phone, odds are it will probably run Dolphin on Android to some degree. Most new Mali and Adreno chipsets at least attempt to GLES3 and some even manage to Vulkan to a good enough degree to run Dolphin. The problem is that their drivers are incredibly spotty, with regressions and fixes varying from release to release.

The old Mali drivers had tons of wonderful bugs that resulted in many strange scenes.
We can laugh about them now as newer driver releases fix these issues. Unfortunately, many older devices won't get these crucial updates.

In of performance, as of this article, the Adreno devices are much faster and now even have working Buffer Storage. a hack to work-around their broken Depth32 clears. Whether Vulkan works or not highly depends on which driver version is available on your device.

Assuming the drivers work and games boot, you'll be greeted with the full-fledged Dolphin package. The core emulation experience very closely mirrors the featureset you'd get out of Dolphin's PC version. One of the main differences you'll notice when booting Dolphin on Android is that it runs a completely different GUI than the desktop version. Even more, there are two unique Android GUIs - one for T.V. devices and one for touch devices.

The Mobile GUI can even take advantage of the new game covers feature courtesy of GameTDB!
While Dolphin has a fully fledged Android T.V. GUI, you can also select games directly in the interface just like movies.

While these GUIs do lack some of the polish and options present within the desktop GUI, they are much easier to use and can even be navigated with controllers. Speaking of controllers, Dolphin on Android s fully customizable touchscreen controls for those looking to casually game while on the go without having to lug around a controller. Most standard controllers can also be configured for those who can't stomach the idea of trying to use a touchscreen to game. And, for a more authentic experience, Dolphin on Android also s Native GameCube controllers via Nintendo's GC Wii U adapters and Real Wii Remotes via the Mayflash DolphinBar.

The main problem becomes that games that are demanding on the PC version are also demanding on the Android version. Unlike the PC version where you can throw an insanely powerful computer at the problem, that option doesn't quite exist yet for Android. Another thing to is that AArch64 devices rely on Dolphin's AArch64 JIT. While it has seen a lot of work, this JIT still has fewer instructions implemented compared to JIT64. This is mostly noticeable in games that require full MMU emulation.

While it's incredibly slow, Rogue Squadron II does actually work in Android.

Android graphics drivers have improved tremendously over the past couple of years - the fact Dolphin renders mostly correct is a testament to that. Unfortunately, they're still not perfect and have a ways to go before everything is perfect. Many features, like Ubershaders, EFB Access From U, Store EFB Copies to RAM, Bounding Box along many enhancements and other features may or may not work. In the case of EFB Access From U and the latest Adreno drivers, the feature only works on Vulkan - not OpenGL! Games that rely heavily on these features are likely to be broken or run extremely slow, so no Paper Mario: The Thousand Year Door on your phone quite yet. Again, your results will greatly vary based on the drivers available to your device. Hopefully all of this information will be useless soon enough once driver manufacturers fix the remaining bugs.

Performance and Testing¶ 4o6xb

How Settings Relate to Performance¶ e724d

Want to see how a desktop computer performs? Click "Core i7-6700K + GTX 1070" to show it's performance... on single core.


The results above actually give us a very clear picture of where the bottlenecks are on various devices. s that had been playing The Legend of Zelda: The Wind Waker and other Store EFB Copies to RAM games on their phones were a little upset when Dolphin's INI system finally made its way over to Android. The SD835 cannot seem to handle the feature in any capacity without the performance tanking to unreasonable amounts. EFB Access from U alone fairs slightly better, with the framerate only tanking when the effect is on screen.

The Shield, featuring full NVIDIA drivers and a Tegra X1 graphics chip, does not even flinch at the prospect of these features because it is bottlenecked elsewhere on its aging hardware. What really causes the Shield issues is high polygon scenes, whereas the SD835 dipped a little bit less when viewing the whole of Outset Island.

The SD835 chews through higher polygon scenes a little bit better than the Shield

That's not to say the Shield isn't impressive for an older device. Despite its aging a57 cores, it's able to keep up with devices several years newer thanks to the NVIDIA graphics drivers and larger power budget. If you want all the bells and whistles while emulating Wind Waker, it can outperform just about any other device. On the other hand, when you disable features like Store EFB Copies to RAM and EFB Access from U, the differences in drivers become less noticeable and the more powerful devices of today can pull ahead.

If you're using the latest dev builds, you can customize your experience per-game by long-pressing the title in the gamelist. This gives you access to set your own presets for every single game. If you're on a device like the NVIDIA Shield, you can leave Store EFB Copies to RAM without worrying, but on a phone it can be heavily beneficial for your framerate to disable it. Please make sure you're using the latest version available in the Play Store or build 5.0-8540 and newer.

Multi Game Performance Test¶ 444u1w

The Legend of Zelda: The Wind Waker is a single game. Different titles will provide different challenges for Dolphin and some will be more demanding than others. Using the One Plus 5 (SD835), here are some performance results when playing a GameCube, Wii, and WiiWare title.


NOTES: The maximum framerate was heavily tied to where in the town the player is standing and where they're looking. The nighttime shot was from across the river looking across the whole town with the streetlamps turned on.


NOTES: This was played with two foxes both as AI with a two minute fight and average framerate was recorded. Some stages of the background animation were more demanding than others.


NOTES: Now it may seem silly to want to play Mega Man 9 on a phone, but, after dealing with a bunch of 3D games it's actually a nice counter. There are some dips when the screen gets super busy but the game is more than playable. In order to maintain a good framerate, had to force lock the phone into max processor clock.

Performance Pitfalls and Other Issues¶ 1a5q12

As shown above, it's definitely possible to play some GameCube/Wii games full speed on Android hardware that exists today. The problem is that the combination of Android and mobile devices isn't exactly the best environment to be trying to get maximum performance. Some phones have aggressive governors that can't adjust to Dolphin's workload and can't be overridden without root access to the device. Considering the dangers involved with unlocking and rooting a device we do not recommend you root your devices to improve Dolphin's performance. Results will vary per device - the SD835 is present both in the Pixel 2 XL and One Plus 5, but the throttling issues were non-existent on a stock Pixel 2 XL. On the other hand, take a glance at the difference the performance governor on the One Plus 5 makes.


This may make you think that the Pixel 2 XL is the outright superior device because of the performance governor, but it's still not that simple! The Pixel 1, Pixel 2, and Pixel 2 XL have a newer line of Adreno drivers. Though they've supposedly added features like Dual Source Blending for Vulkan to make Mario Kart: Double Dash!!, Resident Evil 4, and other games render correctly, they've also managed to cause this.

With this driver revision you can see Wind Waker reimagined as a Suda51 game!

Hopefully a new driver revision will resolve these issues. For now, please be extremely careful if you're factoring in Dolphin when buying an Android device.

Dolphin on Android Moving Forward¶ i4z6f

While there was a lot of excitement over Dolphin's return to the Play Store, it also unveiled a lot of shortcomings. The emulation side of things had improved greatly, but a lot of minor issues made it hard for general s to get the most out of Dolphin. Over the past three weeks, tons of issues and enhancements have been made to Dolphin on Android to make the experience better.

  • As of 5.0-8569 the controls will no longer be clumped into the corner. There will now be a default touch layout available right from the start.
While the default controls are carefully designed, you can modify them to your liking in the dropdown menu!
There are even default configurations for Wii Remote, Wii Remote and Nunchuck, and Classic Controller for Wii games.
  • As mentioned earlier, the Android interface for editing game specific settings was fixed in 5.0-8540.
  • For s who use gaming mode to disable capacitive buttons, an exit emulation option was added to the dropdown menu in 5.0-8542
  • A bunch of issues involving Wii Remotes crashing and not being configurable were fixed in 5.0-8500
  • Make it require two presses of the back button to end emulation in 5.0-8559. This is to help prevent s from accidentally closing their game with an errant touchscreen press, especially when the onscreen navigation bar is enabled.
  • As shown earlier in the article, for automatically retrieving game covers for the Android GUI from GameTDB.com was added in 5.0-8578

We feel that these changes and many others are important enough that s should be getting them right now. By the time this article launches, a new beta build will be available early in the Play Store with all of the above features already available. Overall, Dolphin on Android is the full Dolphin experience once you get into games. While there are definitely some missing optimizations here and there within the AArch64 JIT along with some limitations in GLES 3, compatibility should be mostly the same outside of driver issues. The main difference comes from trying to run Dolphin on a low power device versus computers oftentimes designed for gaming. Special thanks must be given to recent efforts by mahdihijazi, zackhow, JosJuice and Ebola16 over the course of the summer, Dolphin on Android has been able to see this revolution. It also must be mentioned that the auto-updating Play Store version was hooked into our auto-update infrastructure by delroth. Enjoy!

You can continue the discussion in the forum thread of this article.

Next entry 421s62

Previous entry 1k6r8

Similar entries 303t22