Taggarkiv: progress report

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.

Kategorier

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.

Kategorier

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.

Kategorier

While an emulator's primary job is to emulate, there's usually a lot more that goes into a good emulator. For Dolphin, it may feel like a lot of work has gone toward luxury features and optimizations rather than improving accuracy and compatibility. For example, Ubershaders is a wonderful, game-changing feature, but it can't fix any bugs in emulation. With another of those huge features on the brink, it's important to highlight that no one has forgotten about Dolphin's weaknesses - it's just getting harder to fix them. Most of the games that no longer work in Dolphin either require better timings (which slow emulation and need to be hardware tested,) or rely on undocumented behaviors that have to be painstakingly sought out, rather than stumbled upon.

Case in point, fixing one of those cases could require weeks of devotion and every development tool in our arsenal just to locate the bug. With Red Steel, developers ended up having to reverse engineer why an engine bug affected Dolphin but not the Wii.

Kategorier

July and August have been busy on the blog. On top of working on this Mega Progress Report, two feature length articles had to be made after developers selfishly merged several huge, highly anticipated features without considering that it makes work for us here at the blog! Well, the extra work-load is well worth having the incredible Ubershaders and support for Dragon Quest X!

But even beyond those two massive articles, we've been hard at work keeping up with everything else going on because this is going to be a big one. Adding to that someone on the blog staff thought this month of all months would be a good idea to try and harness the power of the blog to get extra testing on some old issues. So buckle up, this is going to be a long read!

Kategorier

June was a month where a lot of important features were merged, but few of them had to do with actual emulation. Every emulator has its own philosophy and goals. While the primary goal is usually to emulate the console at hand, many emulators place secondary goals on various features and ideas. One of Dolphin's secondary goals is to make using the emulator as simple of a process as possible. There are lots of features that try to simplify things, like the Game INI system, support for real ...

Kategorier

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!

Kategorier

One of the more difficult parts of being an emulator is balancing accuracy, performance and presentation. When Dolphin replaced the hacky, broken asynchronous audio with the synchronous New AX-HLE and New Zelda-HLE implementations, audio accuracy greatly increased! It came as quite the shock when users started complaining about this change and demanding asynchronous audio's return. Some of the criticisms were valid; there were bugs in early synchronous audio causing increased latency that weren't present in asynchronous audio.

All of these growing pains were eventually fixed, but, one complaint stood out - slowdown affected audio for the first time for a majority of users. This was seen as an unfixable issue. After all, it doesn't make sense for audio to run full speed if nothing else is! The issues were closed and the concern was filed away until users got used to the change.

Long-term, we did learn something from this dilemma. While synchronous audio was undoubtedly better for the project and solved the major emulation issues with audio, it caused a whole bunch of presentation issues we neglected to fix... until now.

This month, we have a lot to offer. Custom texture support gets supercharged, the JIT sees some important maintainability changes, and a smattering of audio changes include a huge presentation change to audio that will help users hear games pleasantly even under slowdown.

Kategorier

In case you missed it, we had a special April Fools announcement on our Youtube Channel that blog writer JMC47 retired due to his failed bid to sing well in American Idol on Wii. If you want to catch up on the ridiculousness, the video is still up for all to gaze at in utter confusion.

April Fools 2017 - Retirement

With that out of the way, some delays to get everything ready have given us more time to tighten things up and bulk up what has been a relatively quiet month outside of a few mammoth changes. A group of Wii IOS changes were noteworthy enough to get their own article with the Wii Shop Channel finally getting compatibility in Dolphin. That's right, you can buy games from Nintendo within Dolphin, or, download titles you've purchased on your Wii in Dolphin, assuming you're using that Wii's NAND.

Other than that, the long awaited GPU Texture Decoders finally got merged for a broad performance increases and a new Bounding Box fallback path works on any machine that can run Dolphin. So we hope you can enjoy this breakdown of March's (and a little of April's) notable changes!

Taggar

Kategorier

As most of you know, Dolphin was born a GameCube emulator. A lot of its core design and concepts are based around assumptions made that it would only be a GameCube emulator. And, as a GameCube emulator, Dolphin performs admirably, with the ability to boot every single title and a large portion of the library having no major issues.

But, Dolphin isn't just a GameCube emulator. One of the more incredible things about its history is that it was modified into a Wii emulator around the time it went open source in 2008. While the core of the Wii is a supercharged GameCube, and things like CPU and GPU emulation were fairly easy to modify into working with only some minor details changing, there are a lot of quirks around it that have been problematic. Not only are there emulation challenges associated with the Wii that Dolphin side-stepped with some dirty hacks, it also struggled to add on all of the new features of the Wii. For many years, the Wii Remote, GameCube controllers configuration, and GameCube controller settings were completely split apart because Dolphin's UI was not designed with more than one primary input method in mind!

UI Design 101: More menus = better.

Putting all of the options in one place looks better and is easier to use.

In terms of actual emulation, the problems mostly come from the Wii's Starlet ARM coprocessor and everything it brings to the table. To give you an idea of how important Starlet and IOS (Internal Operating System) are on Dolphin, it controls features such as disc access, savegames, networking, USB, ES_Launch (aka, booting games,) and other features necessary for the Wii to function.

Last month, we saw a lot of IOS-HLE improvements, resulting in a big uptick in compatibility. But with these accuracy improvements have come some hiccups and regressions as well. When we fixed The Legend of Zelda: Majora's Mask by using proper, reverse-engineered values for some important IOS-related things, it brought out some regressions too.