Interesting, I'm curious how well their golden image tests worked out for them. They always seem more work than help due to discrepancies between various hardware vendors and subtle bugs/divergences in the way they interpret the spec.
Dolphin is a masterpiece of engineering. The fact that it can emulate consoles so recent so well is a testament to the skill of the coders behind the project.
They do an amazing job. I love reading the update posts.
Great work. I started contributing to Dolphin earlier this year entirely as a result of seeing the well-polished status updates and technical articles that made it to HN from time to time.
It's been in a "freeze" for quite some time while bugs were nailed down, but I'm looking forward to being able to land some code finally!
And, if anyone is interested in some really cutting-edge ARM or x86 JIT code, there are lots of interesting problems to tackle (say hi in #dolphin-dev on freenode).
Why is this emulator so well organized and polished compared to some other emulator projects? They do such great technical write ups, but I'd love to see one about how they manage the project.
* It's more mature than many other emulation projects. Work started in 2003, and it has been open sourced 8 years ago.
* From the beginning there were a few people with strong software engineering background working on the project, which helped nail down a good design that still mostly holds today.
* We have people who care deeply about the design and cleanliness of the project. See for example https://lioncash.github.io/2016/06/21/dolphin-50-personal-pl... from one of our developers. We have been using C++11 since ~2013, and we're already relying on C++14 nowadays.
* We have invested a lot of time in developer tooling and infrastructure. Each of our PR is auto-built on 7 OS/architectures and we also run regression tests for our graphics rendering pipeline. This makes it easier to screw up and allows us to move faster.
* Most of our contributors are technical (developers) but we also make a great use of our non technical contributors. We have a great team of translators, community managers, "PR" people, wiki maintainers, etc. that help free time for the developers to focus on what they do best. For example, the whole 5.0 article and video were handled by 2 of our non-developer contributors.
I guess it has a bit to do with Nintendo's choice of architecture. They haven't moved past the Gamecube architecture - the Gamecube, Wii and WiiU all use the same PowerPC CPU, the Wii is just faster and the WiiU has two. Same for the GPU - they keep using pretty much the same Radeon, just newer, faster, etc. This has allowed the project to remain relevant (able to play mostly current games) for three console generations and find the support of qualified individuals.
I agree that it's a bit weird though - the best, most well managed emulators seem to be for Nintendo hardware. From the NES through to the Wii (and I expect Dolphin to support WiiU soon), every console is reasonably well supported and emulated.
Part of it might be due to Nintendo picking architectures that aren't too alien to emulate on a standard PC.
> Same for the GPU - they keep using pretty much the same Radeon, just newer, faster, etc.
The GPUs of the GameCube and the Wii have nothing to do with Radeon GPUs. They were designed by ArtX before they got bought by ATI (now AMD).
> and I expect Dolphin to support WiiU soon
This is a common misconception. Dolphin will never support emulating the Wii U — it would make no sense to do so from a technical standpoint. The GameCube and the Wii are very similar, the Wii U is a completely different beast.
> Part of it might be due to Nintendo picking architectures that aren't too alien to emulate on a standard PC.
Uh... while the CPU side is fairly standard (PPC 750 with just a few extensions like locked cache, paired singles, gather pipe, etc.) everything else is very much custom on GC/Wii.
The GPU is an undocumented mixed floating point (on the vertex side) / fixed point (on the pixel side) architecture, with very few programmable elements (TEV/TCG) and a lot of configurable state.
The DSP is a programmable 16/32/40 bits chip that kind of ressembles Motorola DSP architectures but still looks completely custom when comparing actual ISAs. The ISA of the DSP was actually fully reverse engineered by emulator and homebrew developers, there is 0 technical documentation about it outside of these communities.
And there are more things like that which are far from being standard when you compare to e.g. an Xbox or an Xbox 360.
Copy-and-pasting an interesting response from user Asooka, who is hellbanned for no obvious reason:
> I guess it has a bit to do with Nintendo's choice of architecture. They haven't moved past the Gamecube architecture - the Gamecube, Wii and WiiU all use the same PowerPC CPU, the Wii is just faster and the WiiU has two. Same for the GPU - they keep using pretty much the same Radeon, just newer, faster, etc. This has allowed the project to remain relevant (able to play mostly current games) for three console generations and find the support of qualified individuals.
> I agree that it's a bit weird though - the best, most well managed emulators seem to be for Nintendo hardware. From the NES through to the Wii (and I expect Dolphin to support WiiU soon), every console is reasonably well supported and emulated.
> Part of it might be due to Nintendo picking architectures that aren't too alien to emulate on a standard PC.
you can make [dead] posts visible to all by going to the comment page (click on the timestamp) and then clicking "vouch". (and if I remember the announcement right it also flags the account for review)
Dolphin is amazing, plain and simple. It's been years since I tried to contribute, but it's got a great development community and it's a great place to learn, as you can probably tell from these detailed posts. Kudos to everyone on an excellent release for an extremely compelling project.
I'm so glad that Nintendo's misguided IP stance leading to gameplay video takedowns hasn't affected the Dolphin project. I don't think Nintendo management realizes that more gameplay videos and more fan creations of any kind mean free advertisement.
If you happen to have some old real Wii remotes and controller accessories lying around, I strongly recommend you pick up a Mayflash DolphinBar [1] from Amazon for around $20.
It's basically a Wii sensor bar combined with Wii-mote compatible Bluetooth radio specifically designed to work with Dolphin (although it will also let you use your Wii-motes as HID controllers and a mouse too).
It will save you a TON of headaches in terms of getting up and running, especially on Windows.
You need a way to rip the disks. The best way I've seen is a modded Wii. I think I remember reading there are also some DVD drives that can read the disks, too. Never done it myself.
I keep meaning to try out Dolphin on my Dell XPS 13 to see how well it runs on integrated GPU's, but it continues to slip my mind. If the framerate is even halfway decent on Gamecube games, I'd be thrilled.
Or the Xerox Dolphin, the first of the post-Alto PARC machines, followed by Dorado, Dicentra, Dandelion (the Star hardware), Dandetiger, and Daybreak. A Dolphin emulator would be neat.