[Photo: Bryan Keller's Dev Blog]

A porting project that runs Mac OS X directly on Nintendo's Wii has been unveiled. It has drawn attention for running the operating system at the hardware level rather than using emulation.

Online media outlet Gigazine reported on April 9 that engineer Bryan Keller (브라이언 켈러) succeeded in running the 2001 Mac OS X "Cheetah" directly on the Wii. Unlike the existing approach of first running Linux on the Wii and then launching Mac OS in a virtual environment, this put the operating system straight onto the console hardware.

The Wii has previously been ported with various operating systems such as Linux, NetBSD and Windows NT, but natively running Mac OS X is unusual. YouTuber Michael MJD previously ran Mac OS 9.2 on the Wii, but that also used a virtualisation-based approach.

The project began with an analysis of hardware compatibility. Keller focused on the Wii's CPU being a PowerPC 750CL. He judged it to be an advanced version of the PowerPC 750 family used in Apple's G3 iBook, and capable of meeting the basic architecture required to run Mac OS X.

Memory was a variable. The Wii has 88MB of memory, below the 128MB minimum requirement for Mac OS X Cheetah. But after analysing the memory needed for actual operation, he concluded it could run with under 64MB.

On the software side, Keller used the fact that Darwin, a core component of Mac OS X, is open source. He verified the possibility of running the system by modifying the code. He then focused the work on developing a bootloader and device drivers.

The bootloader was newly built based on ppcskel. It is a core component responsible for system initialisation and operating system loading after power-on. Hardware structural differences were a major obstacle. Existing Macs use a PCI-based structure, but the Wii is designed around its own system-on-chip called Hollywood, making it impossible to reuse existing drivers as they were. As a result, most drivers had to be written anew.

Video output was also a separate task. The Wii's video encoder is optimised for analogue TV signal output and requires 16-bit YUV pixel data in the frame buffer. Mac OS X, by contrast, outputs RGB pixel data. Keller solved this by using two frame buffers and converting 60 times per second.

As a result, the system has reached a level that also supports mouse and keyboard input. It was not a simple boot demonstration but a state in which it can actually be used like Mac OS X, he explained. Keller said of the work, "At first I couldn't even be sure whether it was possible, but the satisfaction of finally doing it is special."

The case shows that despite being an old game console, the Wii's PowerPC-based structure and open-source kernel assets can enable unexpected operating system ports. It also showed that low-level work was key, including directly aligning the boot process, device drivers and video output conversion rather than simple emulation.

Keyword

#Nintendo Wii #Mac OS X #Bryan Keller #Darwin #PowerPC 750CL
Copyright © DigitalToday. All rights reserved. Unauthorized reproduction and redistribution are prohibited.