Mac OS X Ported to Nintendo Wii in Wild Homebrew Hack

hero osx wii
Open source developer Bryan Keller has released a functional Mac OS X 10.0 port for Nintendo Wii and shared the detailed process it took to make it happen. One of the last things to be addressed was functioning mouse and keyboard support on Wii, with earlier development all done with a separate MacBook laptop.

On paper, something like this was always feasible, thanks to the shared IBM PowerPC architecture between Nintendo Wii and Macs of the time. But previously, the closest we've seen was a Linux port, a Windows NT port, and a Mac OS 9.2 port for Wii. The successful Mac OS X 10.0 port make it the most modern OS we've seen run on Wii's meager 88 MB of RAM, which is technically below the official 128 MB RAM requirement. And no, the Ryzen PC in the Wii chassis does not count, though it was very cool.

coding osx wii
Traveling Wii OS X development setup.

According to the developer, the most challenging aspect of the port was successfully modifying the open source Darwin core of Mac OS X. As Keller states, "In theory, if I could modify the open-source parts enough to get Darwin running, the closed-source parts would run without additional patches." While this did wind up working out, there was still lots of manual work to be done, including writing a driver for Wii's "Hollywood" hardware, an SD card driver, a custom USB driver for Wii's USB 1.1 I/O, and more.

wii osx colors
Part of the process included manually converting OS X's RGB colors into YUV pixel values.

A custom framebuffer driver had to be written to make graphics rendering possible, which also included a "much more involved" fix for colors once the basics were complete. Initially, OS X booted with distorted colors thanks to the Wii expecting analog video and Macs expecting perfect RGB video. For this reason, two framebuffers were needed: one RGB for Mac OS X to interact with, and one YUV framebuffer for Wii's video output.

Once this and other boot/driver issues were addressed, Keller needed to add support for Wii's USB 1.1 controller by modifying Apple's AppleUSBOHCI driver. This wound up being the hardest part, and since he couldn't exactly access the original source code of OS X, he wound up relying on help from an IRC chatroom, to correctly build the Apple USB driver for Nintendo Wii.

The full blog post spares no detail and should prove educational for anyone interested in the project.
Chris Harper

Chris Harper

Christopher Harper is a tech writer with over a decade of experience writing how-tos and news. Off work, he stays sharp with gym time & stylish action games.