Así ha conseguido un desarrollador arrancar Mac OS X en una Nintendo Wii

  • Un desarrollador logra ejecutar Mac OS X 10.0 Cheetah directamente sobre el hardware de una Nintendo Wii sin emulación.
  • La clave está en que ambos dispositivos comparten arquitectura PowerPC, aunque con generaciones y diseños muy distintos.
  • El proyecto ha requerido un bootloader propio, parches al kernel XNU y creación de controladores a medida para vídeo, USB y almacenamiento.
  • Aunque no es útil para el día a día, abre la puerta a reutilizar hardware retro y explorar sistemas operativos clásicos en Europa y el resto del mundo.

Mac OS X en una Nintendo Wii

Hay ideas que a primera vista suenan a chiste entre amigos, pero que acaban convertidas en proyectos muy serios. Eso es exactamente lo que ha pasado con el experimento de Bryan Keller, un desarrollador que ha logrado que Mac OS X 10.0 Cheetah arranque en una Nintendo Wii, una consola lanzada en 2006 y pensada para partidas familiares, no para convertirse en un ordenador de sobremesa.

Lejos de ser un simple truco, el trabajo de Keller se ha convertido en todo un recorrido técnico lleno de obstáculos, documentación y soluciones creativas. El resultado es una Wii capaz de mostrar el escritorio de Mac OS X Cheetah con interfaz Aqua, soporte para teclado y ratón USB y arranque directo sobre el hardware, sin capas de virtualización de por medio, algo que ha llamado la atención de la comunidad de hardware retro tanto en Europa como en el resto del mundo.

Una consola modesta que nunca aspiró a ser un Mac

Cuando la Nintendo Wii salió al mercado europeo en 2006, el foco no estaba en la potencia bruta. Mientras Microsoft y Sony presumían de gráficos en alta definición con Xbox 360 y PlayStation 3, Nintendo se desmarcaba con una pequeña caja blanca, 88 MB de memoria y un procesador a 729 MHz, centrada en los controles de movimiento y el juego en familia.

Sobre el papel, esas especificaciones parecían muy lejos de lo que necesitaba un sistema de escritorio como Mac OS X, especialmente uno que introdujo una interfaz tan vistosa como Aqua. Sin embargo, la clave estaba en el interior: la Wii utiliza un procesador PowerPC 750CL, conocido como Broadway, descendiente directo de los chips PowerPC 750CXe que Apple montaba en algunos iMac e iBook de principios de los 2000.

Ese parentesco arquitectónico no convierte a la Wii en un Mac, pero sí elimina una de las barreras más difíciles en este tipo de proyectos: CPU y sistema operativo hablan, en esencia, el mismo idioma básico. A partir de ahí, todo lo demás ha sido cuestión de adaptar un hardware muy particular a un software que nunca se pensó para él.

La consola de Nintendo cuenta con una arquitectura bastante singular, con la memoria dividida en MEM1 (24 MB) para tareas esenciales y MEM2 (64 MB) para gráficos y otros usos, todo ello gestionado por el chip Hollywood, que centraliza buena parte de la lógica del sistema. Además, las entradas y salidas están orientadas a mandos, juegos y accesorios específicos de la consola, no a discos duros, teclados o ratones al estilo clásico de un Mac.

Antes de este experimento, la Wii ya había sido campo de pruebas para otros sistemas: en la escena de modificación de consolas se había conseguido ejecutar Linux, NetBSD e incluso Windows NT, y en la comunidad también se comparten guías sobre los mejores emuladores para Mac. Fue precisamente el caso de Windows NT lo que terminó de animar a Keller a intentar algo que muchos daban por imposible: llevar Mac OS X Cheetah a una Wii.

Diseñar un arranque a medida para Mac OS X en la Wii

Uno de los grandes escollos del proyecto estaba en el propio inicio del sistema. La Wii no dispone de nada parecido a Open Firmware o BootX, los mecanismos de arranque clásicos de los Mac PowerPC, así que tratar de forzar esos métodos en la consola no tenía mucho sentido práctico.

En lugar de adaptar lo existente, Keller optó por crear un bootloader completamente personalizado, pensado únicamente para hacer lo justo y necesario: inicializar el hardware básico de la Wii y cargar el kernel de Mac OS X Cheetah desde una tarjeta SD. Este cargador de arranque actúa como puente entre el entorno de la consola y el núcleo del sistema de Apple.

El kernel de Mac OS X de aquella época se basa en el formato Mach-O para sus ejecutables, incluido el propio núcleo XNU. Conseguir que ese núcleo se cargase correctamente en la Wii supuso un reto importante: Keller tuvo que inyectar parámetros básicos directamente al kernel y utilizar trucos de depuración poco habituales, como colocar parches que encendían el LED frontal de la consola en determinados puntos del proceso de arranque para identificar en qué momento se producía un bloqueo.

Además de ese trabajo de arranque, fue necesario ajustar el mapa de memoria. La forma en la que Mac OS X espera encontrar la RAM y los dispositivos no se corresponde en absoluto con la distribución MEM1/MEM2 de la Wii, así que fue imprescindible adaptar el kernel para que “entendiera” la disposición de la memoria de la consola sin colisionar con el resto del hardware.

Según detalla el propio desarrollador en la documentación que ha publicado en su blog y en GitHub, el proceso pasó por innumerables pruebas, reinicios y cambios incrementales. El objetivo era lograr que el kernel XNU, diseñado para ordenadores Macintosh de principios de los 2000, aceptara arrancar en un entorno completamente distinto sin perder estabilidad.

Controladores, vídeo y USB: el rompecabezas del hardware

Superado el arranque básico, llegaron los problemas de siempre cuando se intenta llevar un sistema operativo a un dispositivo no previsto: los controladores. La Wii utiliza un diseño con un procesador principal PowerPC y un chip secundario basado en ARM, encargado de gestionar parte de los periféricos, lo que complica todavía más la tarea.

Para que Mac OS X pudiese funcionar de forma mínimamente utilizable, Keller tuvo que desarrollar drivers a medida para varios componentes clave. Empezó por el acceso a la ranura SD, imprescindible para que el sistema reconociese el medio de almacenamiento desde el que se carga y en el que se guardan los datos. Sin ese soporte, el sistema ni siquiera podría terminar de iniciar.

Otro frente importante fue el de la salida de vídeo. La Wii y Mac OS X Cheetah no comparten las mismas expectativas en cuanto a formatos y representación de color, lo que provocaba desajustes cromáticos y problemas en la visualización de la interfaz Aqua. Keller tuvo que ajustar la forma en la que el sistema de Apple dibuja en pantalla para que coincidiese con lo que la consola puede mostrar.

El soporte de entrada tampoco fue sencillo. Conseguir que un teclado y un ratón USB funcionasen en la Wii bajo Mac OS X implicó buscar y adaptar código de controladores USB con más de dos décadas de antigüedad. El propio desarrollador relata cómo tuvo que rastrear canales de IRC en busca del código fuente de un viejo driver USB para poder ajustarlo a las particularidades del hardware de Nintendo.

Todo este trabajo se tradujo finalmente en una instalación de Mac OS X completamente arrancable en la Wii, con escritorio funcional, movimiento del puntero del ratón, escritura desde un teclado y reconocimiento del almacenamiento. No es un sistema pensado para uso intensivo, pero sí lo bastante completo como para considerar el experimento un éxito técnico.

La dedicación llegó al punto de que Keller se llevó la consola de viaje para seguir trabajando durante sus vacaciones en Hawaii, aprovechando cualquier rato libre para avanzar en el proyecto. Esa constancia ha permitido que hoy la comunidad pueda consultar un tutorial detallado y el código fuente del port publicados abiertamente, algo especialmente útil para desarrolladores y aficionados europeos que quieran estudiar el caso o intentar algo parecido con su propia consola.

Mac OS X 10.0 Cheetah: el viejo sistema de Apple en un cuerpo de Wii

El sistema elegido para este experimento no es casual. Mac OS X 10.0 Cheetah fue la primera versión comercial del sistema operativo moderno de Apple, lanzada en 2001 y construida sobre el núcleo Darwin de base UNIX. Supuso un salto importante frente al clásico Mac OS 9, gracias a la multitarea preventiva, la protección de memoria y un enfoque más robusto del sistema.

Cheetah también fue la puerta de entrada a la interfaz gráfica Aqua, con efectos visuales más complejos para la época, transparencias y un motor gráfico Quartz basado en PDF. Ejecutar todo eso en una Wii, sin acceso a la aceleración gráfica avanzada de un Mac de entonces, obligó a que buena parte del renderizado recayera sobre la CPU, con la consiguiente penalización de rendimiento.

Desde el punto de vista técnico, el sistema utiliza el kernel XNU híbrido Mach/BSD, el sistema de archivos HFS+ y las bibliotecas Carbon y Cocoa, que convivían para dar soporte tanto a aplicaciones clásicas como a software más moderno. Para que todo eso funcionase en la Wii, fue necesario implementar un framebuffer y una resolución compatibles con lo que el sistema espera, adaptando el dibujo de Aqua al entorno de la consola.

El resultado es un Mac OS X 10.0 que puede arrancar en una Nintendo Wii, mostrar el escritorio completo y responder a la entrada del usuario, aunque con tiempos de carga largos y cierta latencia al manejar ventanas y menús. Teniendo en cuenta que estamos hablando de un hardware con menos de 100 MB de RAM total y un procesador muy contenido, la experiencia es más una demostración técnica que un entorno cómodo para trabajar.

Más allá del rendimiento, el proyecto vuelve a poner sobre la mesa el papel de Cheetah como pieza histórica en la evolución de Apple. Ver esta versión ejecutándose en un dispositivo tan distinto como una Wii permite apreciar, con cierta perspectiva, hasta qué punto macOS ha avanzado en estos años y qué supuso aquel cambio de era a principios de los 2000.

Un desafío que empezó como “eso es imposible”

El origen de todo apunta más a la curiosidad que a la utilidad. Según recoge la propia comunidad que ha seguido el proyecto, Keller decidió lanzarse cuando alguien afirmó que era imposible hacer funcionar macOS en una Wii. Para cualquier apasionado de los sistemas operativos, eso suena casi como una invitación.

En los últimos años han proliferado iniciativas similares en foros y comunidades europeas dedicadas al hardware retro, en las que se intenta llevar sistemas antiguos a consolas, microordenadores o equipos que jamás estuvieron en la hoja de ruta de los fabricantes. No buscan tanto ofrecer una solución práctica como explorar los límites del hardware y aprender más sobre cómo funcionan los sistemas por dentro.

En este caso, el proyecto de Cheetah en la Wii se ha convertido en un ejemplo muy ilustrativo de lo que implica adaptar un sistema operativo complejo a una plataforma completamente distinta: tocar el kernel, comprender el mapa de memoria, escribir controladores y lidiar con peculiaridades de cada componente. Todo ello, además, documentado en abierto para que la comunidad pueda analizarlo.

Para estudiantes de informática, desarrolladores y aficionados en España y en toda Europa, encontrarse con un repositorio y un relato técnico tan detallado supone una oportunidad de aprendizaje nada desdeñable. El código fuente publicado en GitHub y las explicaciones del autor permiten seguir paso a paso cómo se va desmontando y reconstruyendo un sistema como Mac OS X en un entorno ajeno.

Al margen de la anécdota, este tipo de proyectos también ayudan a preservar software histórico. Mantener viva una versión tan antigua de Mac OS X, ejecutándola en hardware alternativo, contribuye a que no quede relegada únicamente a capturas de pantalla o vídeos antiguos, sino que siga siendo un sistema con el que se puede interactuar de verdad, aunque sea de forma experimental.

Hardware retro con una segunda vida

Uno de los mensajes de fondo que deja este experimento es que el hardware antiguo, lejos de ser solo un trasto más acumulando polvo, puede convertirse en una plataforma muy interesante para proyectos técnicos. La Wii, que hoy se consigue fácilmente en el mercado de segunda mano europeo por precios reducidos, encaja bastante bien en esa idea.

Su arquitectura PowerPC, su bajo consumo y su estructura relativamente flexible a la hora de cargar software personalizado la convierten en una candidata atractiva para desarrolladores que quieran experimentar con sistemas operativos, controladores o incluso proyectos educativos. Es un entorno modesto, sí, pero obliga a optimizar recursos y entender muy bien qué hace cada componente, algo que se pierde con el hardware actual sobrado de potencia.

En contextos formativos o de autoaprendizaje, disponer de una plataforma barata sobre la que trastear sin miedo a romper un ordenador de trabajo es un valor añadido. Proyectos como el de Keller muestran que es posible reutilizar consolas ya retiradas para fines que van mucho más allá del ocio, desde el estudio de kernels hasta la exploración de arquitecturas clásicas.

Eso no significa que la Wii vaya a convertirse en un “nuevo Mac” de uso diario ni que tenga sentido instalar Cheetah para tareas cotidianas. El propio desarrollador deja claro que se trata de una demostración técnica, con limitaciones importantes de rendimiento, compatibilidad de aplicaciones y soporte de dispositivos. Pero como ejercicio intelectual y herramienta de aprendizaje, el proyecto ha cumplido de sobra su cometido.

Vista con cierta perspectiva, esta historia resume bastante bien una tendencia: mientras el mercado se renueva constantemente con nuevos modelos de consolas y ordenadores, una parte de la comunidad tecnológica sigue encontrando valor en dar una segunda vida a dispositivos antiguos, exprimiendo sus posibilidades más allá de lo que imaginaron sus creadores. Esa mezcla de curiosidad, conocimiento y perseverancia es, al final, lo que hace posible que hoy una Nintendo Wii sea capaz de mostrar el escritorio de Mac OS X 10.0 Cheetah.

emuladores para Mac
Artículo relacionado:
Los mejores emuladores para Mac