Transforming an M5Stack Tab5 Into a Retro Macintosh
Austin McChord ported the Basilisk II emulator to the ESP32-P4, letting the M5Stack Tab5 boot classic Mac OS.
I don’t know about you, but some of the best Macs I know have Motorola 68000 processors. Machines such as the Macintosh 128K, Macintosh Classic, and the Macintosh SE all sported this 32-bit CPU throughout the 1980s and early 1990s. Sure, they may all be seriously outdated computers these days, but for those who cut their teeth on them back in the day, that doesn’t matter. Through the rose-tinted glasses of nostalgia, these machines are still the best around.
However, there are fewer and fewer of them to go around as the years go by. So those who still love them, like Austin McChord, have turned to emulation to get their retro fix. McChord has gone one better than mere emulation with his recent hack, however. He has turned the M5Stack Tab5 IoT Development Kit into a Motorola 68040 emulator that can boot real Macintosh ROMs and run classic Mac OS software.
The project is built around a full port of the well-known Basilisk II Macintosh emulator, adapted to run on Espressif’s ESP32-P4 microcontroller. The Tab5’s hardware makes it well suited for the job. Its main processor is a dual-core 400 MHz RISC-V chip paired with 32 MB of PSRAM, enough to comfortably host both the emulated Mac’s memory and the graphics buffers needed to drive the display. A secondary ESP32-C6 handles wireless duties on the board, though Wi-Fi and Bluetooth aren’t required for the emulator itself.
The emulator reproduces a Motorola 68040 CPU, allowing it to run System 7.x through Mac OS 8.1 using genuine ROMs. Configurable RAM sizes between 4 MB and 16 MB are carved out of the PSRAM, while disk images and optional CD-ROM ISOs are loaded directly from a microSD card. In practice, that means the Tab5 can boot a real Mac OS desktop in around 15 seconds and run classic productivity software at a usable pace.
McChord makes good use of the ESP32-P4’s dual cores. One core is dedicated to CPU emulation, memory access, and disk I/O, while the other handles video rendering and input. The original Mac’s 640×360, 8-bit indexed framebuffer is converted in real time to RGB565, scaled up 2 times, and pushed via DMA to the Tab5’s 1280×720 MIPI-DSI touchscreen at roughly 15 frames per second. Touch input maps neatly to a single-button mouse, and USB keyboards and mice can be plugged straight into the board’s host port for a more authentic experience.
No one is going to be fooled by McChord’s faux Mac, so retro computing purists may not be impressed. But if you just want to toy around with some vintage tech and relive old times, this little emulator looks like a great way to do it.