Tag archives: android

Dolphin Progress Report: July 2018

On July 13th, 2008, Dolphin went open source, now just over ten years ago. While it could be easy to drift off into how much things have changed... there's one particular feature that has never quite lived up to the hype despite debuting that very same year - netplay.

As surprising as it may sound Dolphin Netplay has been around since the emulator went open source. For roughly a decade, users have tried their hand at taming the beast of synchronizing multiple instances of a GameCube and Wii despite their relative complexities. Netplay allows users to run the same instance of game on multiple computers by having two or more emulators in the exact same state, only transferring inputs between one another. By staying in lockstep like this, theoretically the emulators' states will never diverge assuming perfect determinism. This would allow people across the world to play a game together, even if it only featured local multiplayer on the console.

The problem has always been attaining that determinism. Back in the early days of netplay, it didn't especially matter what settings were used; Dolphin wasn't deterministic enough to stay in lockstep for very long. Then in the early days of the 3.0 era, it was finally possible to stay synced - if you were willing to sacrifice audio and performance. Early netplayers would hack up Dolphin to reduce requirements with 30 FPS hacks to Super Smash Bros. Melee, hacks to LLE audio to make it slow down less during attacks, and much more.

Despite the stutters and desyncs, some serious Melee players saw the potential and kept with the project. It wasn't until New-AX-HLE Audio (part 2) hit Dolphin that audio was both performant and deterministic enough to use in netplay. By the time Dolphin 4.0 rolled around, netplay had become a staple for Melee users and could be used by advanced users willing to suffer through some annoying quirks.

In the last few years, a focus has gone toward adding highly requested features to make netplay easier to use. Dolphin's STUN service allows some users who cannot port-forward play on netplay without issues, saves can be disabled to make synchronizing party games easier. But the one constant is that despite all these advances, simply getting netplay to work was a chore and crashes were common even if you did everything right.

Getting netplay into a more user-friendly state has been quite the process. In July, we saw some of the most drastic changes to netplay that we've seen in the past couple of years! Emulated Wii Remotes also saw huge usability improvements and some non-NVIDIA Android devices will finally be able to use Dolphin's Vulkan backend. If that wasn't enough, spycrab0 delivered some very big improvements to the DolphinQt GUI to give a new way to display your favorite games in the gamelist. Let's not delay any longer, please enjoy this month's Dolphin Progress Report.

Continue reading

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

Dolphin Progress Report: February and March 2018

February came and went quietly, especially on the blog. While we do prefer to run a Progress Report every month, we were put into a bit of a bind. February saw a lot of interesting changes - but most of them were setting up for changes that weren't quite ready to be merged yet. Rather than rushing things or writing a Progress Report about things that would be coming soon, we decided to wait.

Well this Progress Report is no April Fools' joke - a lot of big changes landed! While a lot of what's important is under the hood, some of what has been finished has major user facing implications as well. If you were sad about missing a Progress Report for February, have no fear, this double report should more than make up for the lengthy delay!

Because so many of the changes rely on one another, we're going to be jumping around quite a bit between the two months. So hold on tight, and get ready. This is a big one.

Continue reading

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

Dolphin Progress Report: January 2018

While a lot of our focus goes into the core emulation experience, we also recognize how important it is for users to be able to use the emulator. Dolphin now has several different User Interfaces (UIs) that are used across several platforms. A UI serves many purposes at the same time: from giving users access to the most important options, to relaying information to the users as they're using the program, and sometimes even communicating to developers what the program is doing at a given time.

This month, UI takes center stage, as DolphinQt, Dolphin Android, and even Dolphin Android T.V. UIs all saw big improvements!

Continue reading

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

Dolphin Progress Report: November and December 2017

After the massive Hybrid XFB article that hit late November, we at the blog staff went into a bit of a hibernation. But after a short holiday break, we're back and ready for more. Before we get to the rest of November and December's changes, make sure you check out the absolutely massive Hybrid XFB article and the accompanying video.

With both Ubershaders, Hybrid XFB, and many of the other targeted features for the next release merged, a lot of users have started wondering when our next release will be announced. The answer to that is not soon. With these huge changes have come a lot of frustrating and annoying regressions that can't easily be solved without a lot of work. If we enter a feature freeze to work on those regressions, we'd be stagnating Dolphin and delaying the other large new features that are still being worked on without any guarantee that the regressions will be sorted out.

So for now, the plan is to just keep moving and wait for a better opportunity to start the release process.

Continue reading

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

Dolphin Progress Report: October 2017

The October Progress Report is here! ...A little late, but, all here in one piece. While on the outside it may have looked like October was a slow month, the blog staff and devs have been busy behind the scenes. A big feature (and blog article) was being worked on right up until the end of the month... and then we realized it wasn't going to be done in time. We shifted gears a bit too late and resulted in a tardy Progress Report. Fortunately, there are still many very important changes that arrived this month. With all that in mind, we hope you enjoy this month's Dolphin Progress Report.

Continue reading

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

Dolphin Progress Report: May 2017


A project cannot survive for nearly fourteen years without making some difficult decisions. Sometimes you're right, sometimes you're wrong, but, to be successful you have to learn from each and every one. One of the most difficult decisions made for Dolphin was the deprecation and removal of D3D9 despite it being the fastest backend at the time. The promise was that we would take a step back then, and make huge gains in accuracy thanks to being able to use integers throughout VideoCommon.

There was a lot of growing pains, a lot of driver issues, and a lot of unhappy users, but it set the tone for what would become the direction of Dolphin heading up to the version 5.0 release. One of Dolphin 5.0's headline features was a brand new D3D12 backend, but as of 5.0-3774, we have decided to remove it. What we learned from the D3D9 backend helped us make that decision. Like D3D9, D3D12 had some core flaws we let slide under promises that it would continue to be maintained and fixed up. When that didn't happen, it was decided we did not want another deprecated backend hanging around, blocking features and enhancements that require work within each backend.

Let's not make any mistakes, the D3D12 backend was a tremendous gain for Dolphin, and what we were able to learn helped us know what to do when designing the Vulkan backend. Unlike the D3D12 backend, the Vulkan backend is actively maintained and does not have the design flaws that made D3D12 harder to work with. Removing D3D12 support also makes it easier for people to tinker with and compile Dolphin on Windows, along with the added bonus of reduced compile times.

Going forward, we're going to continue to optimize the existing graphics backends. In our testing, the Vulkan backend was as fast as, or nearly as fast as the D3D12 backend in every benchmark. While different drivers and graphics cards will not all perform identically, we're confident that moving forward the Vulkan backend will be able to handle the burden of users seeking the benefits of the newer graphics APIs.

...and that's probably not the biggest removal this month. Dolphin's longstanding JITIL (Just in Time Intermediate Layer) Recompiler was finally decommissioned and removed. It's one of those great ideas that just didn't pan out. It never could match the performance of compatibility of the JIT and it was unmaintained in recent years. To even consider JITIL a part of the future, it would have needed to be rewritten to support both Full MMU support and PIE compliance.

We know that some of you reading this are going to be upset or disappointed by these decisions. Hopefully you stick with us and the future gains we make by handling these potential problems now more than pays for the temporary inconvenience. With that out of the way, we have a lot of great additions to the emulator in this month's Dolphin Regress Progress Report!

Continue reading

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

Dolphin Progress Report: November 2016


The biggest news of the month regarding Wii emulation has nothing to do with Dolphin. The vehicle for many of our hardware tests and much, much more, The Homebrew Channel, has gone open source. In its heyday, it was stuffed to the brim with anti-reverse engineering code to prevent nefarious entities from selling the free program. Unfortunately, some of those tricks were also designed to prevent Dolphin from running it. This isn't due to a dislike of Dolphin; in recent years, we've even been tipped off to what we'd need to do to get past the anti-Dolphin checks.

Continue reading

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

Dolphin Progress Report: October 2016


This month, we have a few very important things to go over before we get to our notable changes, so let's dig right into that.


NVIDIA Vulkan Support Update

Users may remember that we recommended using older versions of the NVIDIA drivers when using Vulkan. Well, this is no longer required as once NVIDIA was aware of the bug, they fixed it in a few minutes and the fix was rolled out in driver version 375.63. Users can now use the latest ...

Continue reading

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

Dolphin Progress Report: September 2016


There was apparently some big deal this month about getting every GameCube game to boot. But, the increasingly more amusing part of this new found accuracy is emulating game crashes. When using MMU Enabled + Single Core, it should be impossible for a game to crash Dolphin, but, much more likely to emulate a game crashing in situations where it would on console. As such, booting all games is old news, Dolphin is now onto emulating crashes in all games. One infamous one that didn't work in Dolphin is known as the Gotcha Force "Force 20" game glitch.


Gotcha Force "Force 20" Crash

Though not specially highlighted this month, our applause has to go to aldelero5 for continuing to work on and renovate Dolphin's debugger. With Dolphin's increasingly accurate MMU emulation, it's actually become even more useful to poke at and prod games. They are making it so much easier to research and prod bugs like this to delve even deeper into the game logic!

While that was merged near the beginning of the month, we had another major change merged at the end of the month. Two hours before the progress report was originally scheduled. Dolphin now has another experimental backend, this time using the Vulkan API. Much like D3D12, it should be considered experimental, with a few features still missing from the backend, and many drivers having their own issues with Vulkan.

With that out of the way, let's get onto this month's notable changes!

Continue reading

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

Dolphin Progress Report: February 2016


Another month rolls by and now the feature freeze is starting to take a toll on the new features. Aside from Android and D3D12 development, which have an exception from the feature freeze, most of the changes this month were either relatively small or involved Dolphin 5.0 blocker bugs. Progress on the eventual Dolphin 5.0 release is very promising, with over half of the remaining blocking issues with fixes pending! While there is still quite a bit of work to do, we hope this month's notable changes, featuring some oft requested tweaks, will tide people over until the feature freeze is over.

Continue reading

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