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.
When an open source project is really working, things can move frighteningly fast. One developer can focus on a feature while others are reviewing the code and preparing it for merge, allowing things to move forward in a very streamlined fashion. This not only gets things done faster, but each coder can specialize in what they do best, producing the best possible product for the user base.
When things come together just right, months like this can happen. The June Progress Report is a massive monument to months of hard work put together by not one, but all of the people contributing to the project.
The single greatest mission of an emulator is the preservation of a console and its games. The Dolphin team has made a commitment to that, especially over the past two years. After nearly a decade of guesswork, hacks, and "good enough" emulation, the developers took a stand to strive for something greater. This change in goals has forced difficult decisions had to be made again and again.
This past month has been one filled with the benefits of working with an accuracy oriented mindset. Not only were there tons of fixes for popular games, but with those fixes also came increases to performance for those who wish to enjoy the Dolphin experience. This is why we keep trudging toward true accurate emulation, even when it means leaving some things behind.
Ten years ago Dolphin was a very limited program designed to run in only one environment. It was a 32-bit Windows application that required Direct3D 9 with no alternatives. A lot of things have changed since then as Dolphin has expanded its goals. The emulator has become much more robust over time with support added for 64-bit Windows, Linux, Mac OS X, FreeBSD, and even Android phones and tablets!
Sometimes though, changes must be made. Some choices require months of preparation, discussion, examination, while others are …
The development cycle for Dolphin is a fairly weird and largely inconsistent process to those peering in from the outside. There are gigantic leaps with huge merges such as the tev_fixes_new merge we recently reported on, but those tend to be the exception. While it is great to have big articles on huge changes, those smaller changes are just as important for the emulator, often adding features and improving the user experience. The Dolphin Progress Report is a monthly update highlighting some of the improvements that keep the emulator moving forward.
The GameCube GPU is a complex, tight-knit piece of hardware with impressive features for its time. It is so powerful and so flexible, it was used unmodified within the Wii architecture. For a comparison, just imagine a SNES running with an NES's graphics system. This is completely unheard of, before or since. The GameCube is a remarkable achievement of hardware engineering! With its impressive capabilities, emulating the GameCube's GPU has been one of the most challenging tasks Dolphin has ever faced.
The Legend of Zelda: The Wind Waker is one of the most popular Gamecube games, if not Nintendo games, in existence. Its mixture of an open world, sharp dungeons, and an inventive art style turned heads more than ten years ago when it was released. Dolphin has had its share of problems with Wind Waker, but none could be so frustrating as its mishandling of the heat distortion.