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

Esportes
Governo de SP inaugura Palácio de Lutas em Guarulhos com presença de medalhistas olímpicos
Tecnologia
Seus vinhos merecem! 5 adegas climatizadas por menos de R$800
Variedades
Limão com água em jejum funciona mesmo? O que acontece no seu corpo ao começar esse hábito
Variedades
Indígenas relatam que desmatamento impacta produção de cocares
Esportes
Promessa revelada pelo Centro de Formação de SP joga em time mexicano e projeta vaga na NBA
Variedades
Quantos minutos de sol por dia são realmente necessários para vitamina D sem colocar a pele em risco

Mais lidas hoje