Hacker Bryan Keller heeft Mac OS X werkend gekregen op de Nintendo Wii. De gameconsole kwam in 2007 uit en hackers hebben sindsdien al verschillende besturingssystemen werkend gekregen op het apparaat, waaronder Linux en Windows NT. Nu kunnen ook Mac OS X-liefhebbers op de Wii terecht.
Bryan Keller omschrijft het proces in een uitgebreid blogbericht. Hij bekeek de hardware van de Wii en oordeelde dat die niet fundamenteel incompatibel is met Mac OS X. De console gebruikt een PowerPC 750CL-processor, een doorontwikkeling van de PowerPC 750CXe die Apple in sommige G3 iBooks en iMacs gebruikte. De Wii beschikt verder over 88MB werkgeheugen, verdeeld over 24MB 1T-sram en GDDR3-sdram. Hoewel Mac OS X Cheetah officieel 128MB ram vereist, draait het systeem ook op systemen met 64MB.
Nieuwe bootloader
Keller schrijft dat Mac OS X gebruikmaakt van de opensourcekern Darwin, die onder meer bestaat uit de XNU-kernel en het IOKit-drivermodel. Daarbovenop draait closedsourcesoftware. Als Keller Darwin werkend zou krijgen op de Wii, zou de rest zonder verdere patches moeten draaien. Daarvoor schreef hij zijn eigen bootloader. Mac OS X-apparaten met een PowerPC-cpu maken gebruik van Open Firmware en BootX, maar het porten van deze software is volgens Keller complex, onder meer omdat ze op veel verschillende hardwareconfiguraties moeten werken. Kellers bootloader hoeft alleen op de Wii te draaien.
De hacker baseerde zijn bootloader op het opensourceproject ppcskel. Deze is verantwoordelijk voor het initialiseren van de Wii-hardware, het laden van de XNU-kernel vanaf de SD-kaart, het construeren van een device tree en het overdragen van controle naar de kernel. Een van de problemen die Keller tegenkwam, was dat de debugverbinding wegviel zodra de bootloader de kernel laadde. Dit heeft de hacker opgelost door de kernel zo aan te passen dat de leds aan de voorkant van de Wii oplichtten bij bepaalde kernelprocessen.
Hollywood
de Wii. Bron: Wiibrew
Een ander probleem dat Keller ontdekte, is dat de Wii standaard geen PCI-bus heeft om de componenten op het moederbord te verbinden. In plaats daarvan maakt de console gebruik van een eigen soc genaamd Hollywood. Daardoor kon de hacker niet leunen op de IOPCIFamily-drivers van Apple en moest hij zijn eigen NintendoWiiHollywood-driver schrijven.
De grootste uitdaging was de ondersteuning voor USB-invoerapparaten, onder meer omdat de IOUSBFamily-drivers voor Mac OS X Cheetah niet makkelijk te vinden waren. Keller probeerde verschillende workarounds, maar kreeg de apparaten niet werkend. Uiteindelijk vond hij de broncode alsnog via een oud IRC-kanaal, waarna hij de USB-apparaten vrij snel werkend kreeg.
Keller zegt 'enorm veel voldoening' uit het project te hebben gehaald. Hij had het idee voor het project naar eigen zeggen al in 2013. "Vorig jaar, toen ik zag dat Windows NT naar de Wii was geporteerd, voelde ik een hernieuwde motivatie", schrijft hij. "Uiteindelijk heb ik veel meer geleerd (en bereikt) dan ik ooit had verwacht – en misschien nog belangrijker, ik werd eraan herinnerd dat juist de projecten die net buiten bereik lijken, de moeite waard zijn om na te streven."
Het is niet de eerste keer dat een hacker een Mac-besturingssysteem op de Wii werkend krijgt. De Franse techhobbyist Pierre Dandumont wist Mac OS 9.2 al in 2022 op de Nintendo-console te draaien. Mac OS X is een wezenlijk ander besturingssysteem en het eerste Mac-besturingssysteem op basis van Nextstep.