Developer Ports Mac OS X to the Nintendo Wii — A Deep Technical Journey
I Ported Mac OS X to the Nintendo Wii
Developer Bryan Keller has achieved something that was once declared to have 'zero percent chance of ever happening' — running Mac OS X 10.0 (Cheetah) natively on the Nintendo Wii console.
How It Works
The Wii uses a PowerPC 750CL processor, closely related to the G3 chips used in early iMacs and iBooks. Keller's approach leveraged this architectural compatibility:
- Custom Bootloader (wiiMac): Instead of porting Open Firmware or Apple's BootX bootloader, Keller wrote a minimal custom bootloader that performs only the bare minimum setup needed to hand off to the XNU kernel
- Memory Management: The Wii's unconventional 88MB RAM configuration (24MB 1T-SRAM + 64MB GDDR3) was sufficient — OS X Cheetah officially requires 128MB but can boot with less
- Driver Development: New drivers were written for the Wii's framebuffer, SD card, USB ports (for keyboard/mouse), and interrupt controllers
- Kernel Patches: Modifications to the open-source Darwin/XNU kernel to support Wii-specific hardware
Technical Highlights
- The project exploits the fact that Mac OS X doesn't depend on Open Firmware or BootX once the kernel is running
- The closed-source components (Quartz, Finder, system apps) run without additional patches on top of the modified Darwin core
- The Wii's homebrew ecosystem (Homebrew Channel + BootMii) provides full hardware access for running custom code
Why It Matters
Beyond being an impressive technical feat, the project demonstrates the viability of running legacy operating systems on unconventional hardware, and provides a fascinating case study in systems engineering, bootloader development, and hardware abstraction.
The wiiMac repository is available on GitHub with instructions for anyone who wants to try it themselves.
Source: bryankeller.github.io — 1627 points on HN