Mac OS X roda no Nintendo Wii após desenvolvedor reescrever o bootloader, criar drivers e levar o console nas férias

O desenvolvedor Bryan Keller conseguiu inicializar o Mac OS X 10.0 Cheetah, lançado em março de 2001, diretamente no hardware do Nintendo Wii, sem emulação. O projeto levou meses, envolveu escrita de código novo do zero e terminou com um desktop funcional, com teclado e mouse conectados via USB.

Por que o Wii era o candidato menos óbvio

Lançado em 2006, o Wii opera com um processador PowerPC 750CL rodando a 729 MHz e tem 88 MB de RAM. Quando Sony e Microsoft disputavam o mercado com PS3 e Xbox 360, a Nintendo apostou nos controles de movimento e num preço acessível, não em especificações brutas. A arquitetura de memória do console é dividida em dois blocos gerenciados por um chip chamado Hollywood: o MEM1, para operações essenciais, e o MEM2, voltado para gráficos e funções auxiliares, um arranjo que não tem equivalente nos Macs da era Cheetah.

O que abriu a porta para o experimento foi justamente o processador. O PowerPC 750CL do Wii é uma evolução direta do PowerPC 750CXe, o mesmo chip que equipava os iMac G3 e os iBook lançados no início dos anos 2000, ou seja, as mesmas máquinas para as quais o Cheetah foi projetado. CPU e sistema operativo falam a mesma linguagem de base, o que elimina uma das barreiras mais difíceis nesse tipo de experimento.

Bootloader do zero e LED como depurador

Keller descartou o Open Firmware e o BootX, os métodos tradicionais de inicialização dos Macs com PowerPC, e escreveu um bootloader próprio, com o objetivo de carregar o kernel do Mac OS X Cheetah no formato Mach-O diretamente no hardware do Wii. Para rastrear travamentos durante o processo, ele criou patches que acendiam o LED frontal do console em pontos específicos da execução, usando a luz do aparelho como ferramenta de diagnóstico.

Depois vieram os problemas de memória: o Mac OS X esperava uma distribuição de RAM padrão dos Macs da época, incompatível com o esquema MEM1/MEM2 do Wii. Keller foi adaptando cada peça do sistema uma a uma. Para fazer o teclado e o mouse funcionarem, ele precisou buscar no IRC o código-fonte de um driver USB com 25 anos, e ainda corrigiu um desajuste de cores entre a saída de vídeo do Wii e o código gráfico do Cheetah.

Das férias no Havaí ao GitHub

A dedicação foi além do ambiente de trabalho: Keller colocou o Wii na mala e o levou numa viagem ao Havaí para continuar o desenvolvimento durante as férias. O sistema chegou ao desktop do Cheetah com interface gráfica, cores corretas e suporte completo a teclado e mouse via USB. Todo o processo está documentado no blog de Keller, e o código-fonte está disponível no GitHub para quem quiser replicar o experimento.

Leia mais

Sorocaba
Prefeitura abre inscrições para os interessados em atuar como aprendiz na Administração Pública Municipal
Economia
Petrobras reduz preço do querosene de aviação em 14,2%
Variedades
Colômbia: Petro não reconhece resultado eleitoral preliminar
Tecnologia
AMD confirma suporte à plataforma AM5 até 2029 e lança Ryzen 7 7700X3D
Variedades
Bruna Biancardi teria barrado Amanda Kimberlly de viagem para acompanhar Neymar na Copa
Sorocaba
Programa “HumanizAção Inverno” acolhe 30 pessoas em situação de rua neste domingo (31)

Mais lidas hoje