Los chips ESP32 llevan años usándose para retro gaming y computación clásica, pero Austin McChord (Amcchord) suma a esa historia un port del emulador de Macintosh a un par de devkits ESP32-P4 con pantalla.

Su proyecto es un port completo del emulador BasiliskII de Macintosh 68k que lleva el Mac OS clásico (System 7.x hasta Mac OS 8.1) a dispositivos embebidos portátiles ESP32-P4 con pantalla táctil, periféricos USB y WiFi. La conectividad inalámbrica viaja por un ESP32-C6 integrado en las mismas placas.

¿Qué hardware usa exactamente el emulador?

La plataforma principal de desarrollo parece ser el M5Stack Tab5, equipado con una pantalla táctil de 5 pulgadas y resolución 1280×720. Para quien necesite algo con pantalla más grande, también está soportada la Waveshare ESP32-P4-WIFI6-Touch-LCD-10.1, con pantalla de 10,1 pulgadas, resolución 1280×800 y capacitiva multitouch de 10 puntos. Las resoluciones reales de Mac OS usadas son 640×360 y 640×400 respectivamente, y luego se escalan al doble hasta la resolución nativa de la pantalla.

Especificaciones técnicas del port

  • CPU: emulación Motorola 68040 con FPU 68881, 2 a 3 MIPS
  • RAM: configurable entre 4 MB y 16 MB, tomados de los 32 MB de PSRAM del ESP32-P4
  • Almacenamiento: imágenes de disco duro y CD-ROM cargadas desde microSD
  • Display: pantalla virtual 640×360 o 640×400 escalada 2x hasta la nativa 1280×720/800; profundidades de color 1, 2, 4 y 8 bits a 24 FPS
  • Video: pipeline optimizado con marcado dirty en escritura, DMA double-buffered y renderizado por tiles
  • Audio: salida de sonido clásica del Mac vía códec ES8388, activable desde la GUI de arranque
  • Red: acceso a internet por WiFi a través de un router NAT con soporte para TCP, UDP, ICMP, DHCP y más
  • Input: touchscreen capacitiva usada como mouse, más teclado y mouse USB
Sistema 7 corriendo en ESP32-P4 con navegación web vía WiFi
Sistema 7 corriendo en ESP32-P4 con navegación web vía WiFi

El emulador es compatible con System 7.1, System 7.5.x, Mac OS 8.0 y Mac OS 8.1.

¿Cómo reparte el trabajo entre los dos núcleos del ESP32-P4?

Cada tarea del emulador se ancla a un núcleo específico del ESP32-P4:

  • Core 0 - Video e I/O: tarea de renderizado de video, DMA double-buffered, escalado 2×2 de píxeles, tarea de input a 60 Hz, procesamiento USB HID, salida de audio (ES8388) y polling RX de red. Evento-driven a 24 FPS.
  • Core 1 - Emulación de CPU: intérprete del 68040, fast-path para acceso a memoria, marcado dirty en escritura, ejecución batch de instrucciones, parcheo de ROM y disk I/O.

El rendimiento del emulador 68040 sobre el ESP32-P4 es comparable a una Macintosh Quadra 610 con 68040 a 25 MHz. Renderiza video a 24 FPS y entrega 2 a 3 MIPS de CPU.

Emulador Macintosh corriendo en ESP32-P4
Emulador Macintosh corriendo en ESP32-P4

El código fuente, portado con la asistencia de Claude de Anthropic, y la documentación detallada de la implementación están en el repositorio del proyecto en GitHub. El descubrimiento del proyecto fue vía Hackaday.

Disponibilidad y precio del hardware en Chile

El M5Stack Tab5 se puede conseguir directo del sitio oficial de M5Stack en aproximadamente USD 89 en configuración base, más envío internacional. En Chile no hay stock local permanente todavía, pero varios makers reportan importaciones vía AliExpress con tiempos de 20 a 30 días. El costo aterrizado con envío e IVA suele quedar cerca de los CLP 105.000 a 120.000.

La Waveshare ESP32-P4-WIFI6-Touch-LCD-10.1 se vende directo en el sitio de Waveshare por aproximadamente USD 125 en la versión sin case y USD 155 con carcasa completa. Es una placa más pesada porque la pantalla de 10,1 pulgadas manda el costo. La disponibilidad en Chile vía distribuidores locales de electrónica es escasa; el canal habitual sigue siendo importación directa.

Comparativa con alternativas del mismo nicho:

  • M5Stack Tab5 (5" 1280×720): USD 89, este proyecto lo usa como plataforma principal
  • Waveshare ESP32-P4-WIFI6-Touch-LCD-10.1 (10,1"): USD 125, más grande, mismo ESP32-P4
  • Raspberry Pi 5 + pantalla táctil oficial (7"): USD 145 (Pi 5 8GB) + USD 60 pantalla ≈ USD 205
  • MiSTer FPGA con core Macintosh Plus: USD 250 aprox, hardware dedicado retro más maduro

El ESP32-P4 es notablemente más barato que un Raspberry Pi 5, aunque con un enfoque distinto: la Pi va a correr Linux completo, mientras que el ESP32-P4 embebido reserva su MCU dual-core para la emulación pura sin sistema operativo intermedio. Para uso didáctico y proyectos maker que quieran mostrar cómo era una Macintosh de los 90 con touch moderno, el port de McChord entra directo en la conversación.