标签存档:performance

Dolphin Progress Report: September 2015


After some minor delays, Dolphin's new issue tracker is up and running, with all of the old issues preserved and imported. It hasn't taken long for things to heat up on our new tracker despite trying to keep it on the down low while it was being tweaked. A mixture of delays with the issue tracker and new bugs in our stable branch cropping up has pushed back the Dolphin 5.0 release out of September. When will it be released? Well, it all depends on when all critical bugs and regressions are stomped out of the stable branch. In order to prevent a fiasco, it's better to report these regressions now rather than after release. No one wants another 4.0.1 and 4.0.2 situation on their hands.

As the release candidates drag on, we've noticed that many users are assuming that 5.0 release candidate builds are newer than development builds. Please remember, the 5.0 release candidates are based on 4.0-6727, and only have bug fixes applied beyond that. Almost all of the new features from July's progress report onward ARE NOT in the stable branch unless they are a regression fix. For new features, the development builds are still recommended. Speaking of the newest features...

继续阅读

欢迎在本文的论坛主题帖中参与讨论。

Dolphin Progress Report: August 2015


If you count the number of notable changes throughout August, you may think it was a down month. Aside from a flurry of Dolphin ARM updates, there really wasn't much to choose from. A lot of the major projects remaining on the emulator are multi-month affairs, so contributors seemingly disappear from the progress reports for months only to return with a bang. Then there's Sonicadvance1, who keeps trucking on with Dolphin ARM on an almost daily basis. Despite the miniscule number of big additions, the big ones this month more than made up for the lack of volume. It's actually kind of nice for the blog staff to not have to fight over which changes get in once in a while, too!

With that, let's dig into this month's notable changes!

继续阅读

欢迎在本文的论坛主题帖中参与讨论。

The New Era of HLE Audio


In early 2013, Dolphin had began its first steps in a new focus on accurate emulation. The 3.5 release represented a shift in the emulator's focus, and as such, saw great improvements in terms of compatibility and accuracy over the previous release. But one area that stuck out like a sore thumb during this era was the quality of High Level Emulation (HLE) audio. Hundreds of games suffered from crashes associated to audio, and thousands had significant problems, with missing effects, incorrect volume, and random bursts of noise.

The problems of HLE were systemic, deeply rooted problems within its design, and would require a complete rewrite in order to solve. Rewriting HLE audio was always a priority, but the daunting task to reverse engineer, implement, and test kept most developers away. So instead they pursued Low Level Emulation (LLE) to great success. LLE audio worked so well, the developers were able to avoid the mess of HLE and more or less just tell users to dump a GameCube/Wii DSP-ROM and use that instead. The problem with that option is performance: LLE audio is incredibly demanding, especially when the DSP is being strained by many sound effects.

This situation finally changed right after Dolphin 3.5 when delroth merged New-AX-HLE-GC, a rewrite of the most common microcode (µcode) for GameCube games, AX-GC. Thousands of bugs disappeared over night and stability increased greatly. While previously there was argument among developers that HLE audio bugs could be ignored because of the option for LLE, as tens of thousands of users finally experienced accurate audio for the first time it became apparent just how important HLE audio truly was. Later in the year, the AX-HLE rewrite was expanded to Wii games in a second cleanup. The ability for users to use HLE audio for most games instead of LLE audio resulted in one of the greatest performance increases in Dolphin's history!


The Non-AX µcode Games

While over 99% of GameCube and Wii titles use the AX µcode, there are a small number of games that use a different µcode. The "Zelda µcode”, named after its exclusive use in Nintendo-created titles, represents only a tiny portion of the total games Dolphin can play; but those games are some of the most popular and interesting games on the GameCube and Wii.



The Zelda µcode games, in release order

继续阅读

欢迎在本文的论坛主题帖中参与讨论。

Dolphin Progress Report: May 2015


After a slow April month, a chaotic May more than makes up for it. On top of working on an emulator, developers had their hands full with relicensing. It's always a good month when you can look back at the issues that were fixed and go "phew," hoping to never, ever encounter anything like that ever again.

A wide variety of issues, features and enhancements saw important updates this month that increase playability and make the emulator more robust. Please enjoy this month's progress report!

继续阅读

欢迎在本文的论坛主题帖中参与讨论。

Dolphin Progress Report: April 2015


On the one year anniversary of the Dolphin Progress Report, we have a fairly slow month in terms of emulation development. While there are certainly some big things on the horizon, unfortunately development managed to hit one of the gaps where there were mostly some fix-ups and optimizations this month with only a few changes that users will notice.

With that, let's take a look at this month's notable changes.

继续阅读

欢迎在本文的论坛主题帖中参与讨论。

Dolphin Progress Report: March 2015

Progressreportheader-March2015.jpg


Console add-ons and linking emulation are almost always difficult tasks. Worse yet, availability, software support, cost, and even popularity can limit the ability to get these hardware add-ons documented and emulated. While their are numerous examples spanning tons of consoles and their respective emulators, this month, we're talking about GameCube to Game Boy Advance Connectivity.

Timings and synchronization are a given on real hardware; games know how it's going to work and many expect it to always work perfectly. When it doesn't? Certain games break. Now imagine a synchronization task more complex than dualcore and netplay. That would be GBA to GCN connectivity.

When skidau took up the task of renovating Dolphin's connectivity to Visual Boy Advance-M, he knew that it would require not only work on the Dolphin side of things, but also VBA-M. Getting two completely different emulators to sync up (up to 5 instances!) and play nice was the heart of the issue. Months of prototype builds (over 60 total!) between Dolphin and VBA-M were tested and the best possible combination was chosen for high compatibility and reasonable performance. The result is Dolphin (and VBA-M) finally getting a taste of what this feature was like on console.

That, and much more, is featured in this month's progress report!

继续阅读

欢迎在本文的论坛主题帖中参与讨论。

Dolphin Progress Report: October 2014

Progressreportheader-October2014.jpg


A single merger can represent days, months, or even years of work. Most of the commits are relatively small, but once in a while you get absolutely huge changes like Tev_Fixes_New or the GLSL rewrite that span across years between initial concept and merged code. There's a special sense of accomplishment when one of the long awaited changes finally show up in the emulator. The number of commits and the amount of code changed; neither of those indicators often tell of the trials faced by the contributor over the course of their journey.

And don't think that just because the code is merged that things are finished. Part of the purpose of having progress report is to put a spotlight on some of the latest and greatest changes. The users are the last line of defense against potential bugs, problems, and unintended consequences that often come with new features.


All of the latest features mentioned this month can be found in the latest development builds available here.


继续阅读

欢迎在本文的论坛主题帖中参与讨论。

Dolphin Progress Report: September 2014

Progressreportheader-September2014.jpg


Optimizations seem to beget even more optimizations. It was big news when last month we got a nifty 26% boost in CPU performance, but somehow, two dedicated devs managed to top it this month. Not to be upstaged by Fiora , comex has dropped new features and two absolutely gigantic performance commits. By making tricky use of registers and native RET behavior, two of his merges alone result in a massive 16% performance boost to games.

Not to be outdone, Fiora has continued her rash of optimizations as well. If we were to include every single one this progress report may never end. So instead, she crunched some numbers with all the optimizations over the last two months put together.

Let's just admire that list for a moment. The Last Story is considered the most demanding game on Dolphin, requiring massive overclocks on even the strongest of machines. A 38% speedup is the difference between it being playable and choppy for users with powerful computers.

Star Wars Rogue Squadron II: Rogue Leader has a lot of problems, but MMU performance will be the least of them from now on. Fiora's optimization of how the JIT handles MMU games brings us huge speedups to every MMU title!

Of course, speed isn't everything for an emulator: Performance is pointless if the emulator does the rest of its job in a lackluster matter. Have no fear, we have new features and some critical bug fixes to go along with Dolphin's newfound speed!

All of the latest features mentioned this month can be found in the latest development builds available here.

继续阅读

欢迎在本文的论坛主题帖中参与讨论。

Dolphin Progress Report: August 2014

progressreportheader-august2014.jpg


This month, the story can't be anything else but CPU optimizations and fixes, after Fiora decided that if the code is in the JIT, she will make it faster. Nothing is safe from her. Since the end of July, Dolphin's JIT CPU core has seen a 26% performance boost in the Dolphin Benchmark. That is not a typo.

On the accuracy front, we've got some nifty changes that fix bugs going back to the beginning of time for Dolphin. Some ancient audio bugs bite the dust, some floating-point accuracy are ported into the JIT from the SoftwareFP branch, and we found out that some games are doing things they really shouldn't be doing. If you see a change that affects a game you're playing, remember that all of these changes can be found in the latest development builds!

继续阅读

欢迎在本文的论坛主题帖中参与讨论。

Dolphin Progress Report: July 2014

Progressreportheader-July2014


In programming users usually don't see or care about what's going on on the inside all that much. All those boring code optimizations may make things easier for the developers and slowly improve the emulator, but hard-to-quantify changes are not exactly exciting. This month was full of those, with several hundred changes yet very little the general user would find interesting. Nevertheless, in the sea of code improvement, there are some real treasures: big performance improvements, some ancient bugs squashed, regression fixes, and some exciting new features to boot.


继续阅读

欢迎在本文的论坛主题帖中参与讨论。