Every single GameCube game can at least boot in Dolphin 5.0. Except one. Star Wars: The Clone Wars and its complex way of using the PowerPC Memory Management Unit rendered it unplayable in Dolphin up to this day. But finally as of Dolphin 5.0-540, this challenge has come and gone: Dolphin can finally boot every single GameCube game in the official library.
So what makes Star Wars: The Clone Wars so special? To truly understand what’s going on, you need to have some knowledge on how the PowerPC’s processor handles memory management and how Dolphin emulates it.
Some light reading for the Tuesday morning.
“The memory management on the PowerPC can be used to frighten small children.” — Linus Torvalds
Also, I think your link is missing. https://dolphin-emu.org/blog/2016/09/06/booting-the-final-gc-game/
Edited 2016-09-06 10:45 UTC
number9,
The article just mentions that Base Address Translation was hard coded and never implemented, until now. It actually seemed pretty strait forward. If that was frightening, then look away, the x86 may scar you for life :
Memory type range register – configure caching.
segments/selectors – mostly used by old software but still in use for features like Thread Local Storage.
Normal page tables – enable virtual memory
Physical Address Extension – 64bit page tables for > 4GB ram on 32bit systems.
Page Size Extensions – 2MB pages.
Page Attribute Table – MTRR for pages
Base Address Registers – memory mapping for PCI devices.
Graphics Address Remapping Table – allow GPUs to share system ram.
It’s not all bad, most x86 software these days is written for an API, making emulation far easier than in the case where there is no OS.
Another useless comment from Linus. Why bother quoting him when he’s not even right about it?
The GameCube has one of the most efficient and cost-saving memory management systems of any console out there.
Edited 2016-09-07 22:15 UTC
“…Rather than directly accessing available RAM, games interface with virtual memory which is then translated to physical memory by the MMU.”
Like this way of leaving management to -well- a management unit.
Wow, that’s impressive, even if not every single game is fully playable, it’s at least able to boot, and that would probably make Dolphin the most compatible emulator out there? Because out of all of the emulators, there are tons of stuff that doesn’t even boot. Even MAME, which I find odd that they have ‘unsupported’ games at all since, they emulate the chips that make up those arcade games and should probably only allow the code in if it works with something at least (though with the huge variety of arcade hardware, that’s also understandable that while some code will work with some machines/games, it won’t work with others).
Anyhow, congrats on the Dolphin coders, it seems to be one of the most heavily developed emulators right now. Again, with the exception of maybe MAME. Most of the other emulators seem to have 1 or two people working on them in their spare time.
And even if no game is fully emulated without tons of errors…
Don’t get me wrong, I greatly appreciate what all these people do but they should focus a lot more on optimization and accuracy.
I know it’s problem almost every open source project suffers… nobody cares about developing boring stuff so software is always unpolished, unfinished and beta quality but we are talking about an emulator (a great one they say)… and even Mario games are not perfectly emulated!! I’ve been hearing about how great and wonderful Dolphin for at least 10 years…
I think it’s just as much that full accuracy would make the emulator completely unusably slow.
Every emulator for any system as complex as the N64 onwards absolutely must make those tradeoffs. Emulation is just that expensive.
Yeah you are right… but I don’t care too much about slowness (we will have enough power to move it faster some point in time) my main concern is accuracy… most of the games I tried with Dolphin had a lot of problems… and people seem more worried about filters and scaling games to 1080p than getting the games running bit-perfect.
Yeah, Dolphin screenshots are incredible… but when you actually want to PLAY a game and finish… it’s a PITA.
This. The Dolphin Emulator is awesome, but they really need to get more than 14% of games into the perfect category.
To fully emulate the gamecube would be more than just a little slow. I think you aren’t thinking in the right magnitude of slowness–think less than one emulated frame a second, and no amount of frame skipping could take it above that.
Emulating a custom GPU and a non-native CPU, along with all the chips that go with it (such as the disc controller) is an absolutely immense undertaking, performance-wise. Increasing accuracy requires increasingly larger performance costs.
I think one way the Dolphin community shines is it’s monthly report where they usually do highlight the accuracy and optimization efforts their developers are making.