Retromac-osnintendo-wiigamecubepowerpcopenbiosemulation
Rairii Boots Classic Mac OS 7.6 on a Real Nintendo Wii by Forking OpenBIOS for the Console's ArtX Chipset
Developer Rairii booted classic Mac OS 7.6 on Nintendo Wii hardware from an SD card in about 40 seconds, after forking OpenBIOS for the ArtX-designed chipsets in Nintendo's consoles and running Mac OS 9.2.2 in a modified Dolphin emulator.

The milestone landed in a guest post on Virtually Fun on October 29. “So today I reached a nice milestone in one of my projects: my work porting classic Mac OS to PowerPC systems,” Rairii writes, and the systems in question are game consoles. The connection is the chip designer: “the GameCube’s Flipper integrated chipset was very much designed by ArtX.”
The project started on June 22, 2025. “I started this project on 2025-06-22 (when I forked upstream openbios),” Rairii writes. That fork matters because “New World” classic Mac OS, the kind that shipped on iMacs and later PowerMacs, starts with a bootloader called the Trampoline that runs on top of Open Firmware. Give the Wii enough Open Firmware to satisfy it, and Apple’s own boot path takes over.
To boot the older 7.6 release, the post points to a patchset for Apple’s TBXI boot images. Its README says it “patches back in code that was removed and required for booting earlier versions of classic Mac OS,” and that “such a patched TBXI can attempt to boot System 7.5 and above, with varying degrees of success.” It also warns, “Don’t expect a stable system by any means. ;)”
The first runs happened in a hacked-up Dolphin tree, where 9.2.2 ran for an hour before crashing and 7.6 reached the desktop after about 20 minutes. Open Transport, Apple’s networking stack, crashed 9.2.2 at boot until it was removed. Real hardware was much quicker. “The following morning I tested on real hardware (using SD over SPI),” Rairii writes. “This basically booted 7.6 within 40 seconds, and this was supposed to be the slowest access mode for an SD card!”
One snag came from Apple’s own code. “A function for initialising hardware interrupts has a bug due to a copy-paste blunder,” Rairii writes: “the developers forgot to change the jump label when copy-pasting the code from serial port 1,” “which causes an infinite loop if serial port 2 doesn’t exist.” A Wii, needless to say, has no Mac serial ports.
With no working USB yet, the mouse comes from the console itself, via “a driver for the gamecube controller ports (porting from my NT driver for the same).” And Rairii is explicit about the tooling: “no kind of coding agent or LLM was used, all coding, reversing and debugging work done by myself.”
“As I mentioned, my port is still nowhere near release,” the post says. “Next up will be bringing up the Wii’s SD controller, then the USB controller,” and after that, the Wii U.
Projects like this tend to run the same course: an emulator first, a bare boot second, and then the long slog of drivers that decides whether anyone else ever uses it. A low-to-moderate-confidence guess: USB decides it here, since a Mac you can only drive with a GameCube controller is a fun demo and a hard daily driver. Rairii mentions a “vibecoded EHCI driver” already exists for that controller, which raises a question about whether the no-LLM rule holds once the hardest driver comes due.