Skip to content
Tech News
← Back to articles

Dolphin Progress Release 2603

read original get Aquatic Computer → more articles

Dolphin started out as a GameCube emulator in 2003. In 2008, experimental Wii support was added. And now in 2026, Dolphin enters the realm of arcade emulation with support for the Triforce, a joint Sega, Namco, and Nintendo arcade effort. Want to learn more about the Triforce? Check out our deep dive into the Triforce and how support for it ended up back in Dolphin!

Click or tap the image above to read our deep dive into the Triforce!

Emulating a new system and library of games for the first time in 18 years is big news, and we'll dive into some details and updates on that later in the report. However, there are two other major additions that would have been flagship changes on their own in any other report. Optimizations to Dolphin's MMU emulation have brought major performance uplifts to games that rely on custom page table mappings. In fact, on powerful hardware, all Full MMU games can run full speed, including the legendary Rogue Squadron III: Rebel Strike.

On the other side of things is a targeted fix that was an epic tale spanning years of frustration. In the end, the incredible efforts of the Mario Strikers Charged community combined with several CPU emulation experts finally cracked the case of a minor physics bug that would normally be impossible to see or test.

All that and more awaits in this release's jam-packed notable changes!

Notable Changes¶

All changes below are available in Release 2603.

"Fastmem" is one of Dolphin's biggest performance tricks. The GameCube and Wii's MMIO (Memory-Mapped Input and Output) memory mappings do not directly translate to the host system, and without a way to sort ordinary RAM accesses from MMIO accesses, Dolphin would need to manually translate every memory access at tremendous cost. Enter fastmem, where Dolphin exploits the host CPU's exception handler to sort accesses for us. If we map the entire GC/Wii address space to host memory, mappings for main memory will just work, no intervention needed. But attempting to access an address assigned to MMIO will trigger a CPU fault. When that happens, Dolphin can catch this fault and immediately backpatch the affected JIT code to manually translate the address instead. Just like that, Dolphin will only spend the effort translating memory accesses that it actually needs to translate, and the rest will be performed natively by the host CPU at incredible speeds.

However, fastmem didn't cover everything - it only supported memory mapped with Block Address Translation (BAT). Any time a game accessed memory mapped with a page table, the other way to map memory on the GameCube, Dolphin would always have to manually translate it.

This may sound problematic, but thanks to tricks like the MMU Speedhack, the vast majority of games see no performance penalty from page table accesses. In order for this lack of support to actually impact performance, a game would have to have a custom memory handler that resists our hacks and heavily relies on the page table. But what developer would be crazy enough to do all of that?

... continue reading