TL;DR

A full port of the BasiliskII 68k Macintosh emulator has been adapted to run on the ESP32-P4 inside the M5Stack Tab5, bringing System 7.1 through Mac OS 8.1 to a 5" touchscreen device. The build uses the Tab5's dual-chip architecture, SD card disk images, and USB HID support for keyboard and mouse.

What happened

Developers have completed a full port of the BasiliskII Macintosh 68k emulator to the ESP32-P4 microcontroller and demonstrated it running on the M5Stack Tab5 hardware. The port implements a Motorola 68040 interpreter (including 68881 FPU support), boots real Macintosh ROM files, and runs classic Mac OS releases from System 7.1 up to Mac OS 8.1. The project allocates Mac RAM from the Tab5's 32MB PSRAM (configurable between 4MB and 16MB), uses a virtual 640×360 framebuffer that is scaled 2× to the panel's native 1280×720 MIPI-DSI display, and loads HDD/CD images from an SD card. Input is supported via the capacitive touchscreen (mapped to a single-button Mac mouse) and USB host for keyboards and mice. The emulator takes advantage of the ESP32-P4's dual-core setup to offload video and I/O tasks to one core while running CPU emulation on the other.

Why it matters

  • Puts legacy Macintosh software and operating systems onto a compact, battery-powered device, aiding software preservation and hands-on retro computing.
  • Demonstrates the practical performance of the ESP32-P4's dual-core RISC-V system for non-trivial emulation workloads.
  • Integrates modern embedded features—touchscreen, MIPI-DSI display, USB host, SD storage—into a portable retro platform.
  • Provides an accessible reference for building other emulator ports to resource-constrained microcontrollers.

Key facts

  • Emulated CPU: Motorola 68040 interpreter with 68881 FPU support.
  • Configurable Mac RAM: 4 MB, 8 MB, 12 MB, or 16 MB allocated from 32 MB PSRAM.
  • Virtual framebuffer: 640×360 at 8-bit indexed color, scaled 2× to the Tab5's 1280×720 RGB565 panel.
  • Storage: Hard disk and CD-ROM images are loaded from a FAT32 microSD card; sample sdCard.zip image is provided.
  • Input: Capacitive touchscreen mapped to Mac mouse actions; USB Type-A host supports keyboard and mouse with Mac key mapping.
  • Hardware: M5Stack Tab5 with ESP32-P4 (main) and ESP32-C6 (wireless coprocessor) — the wireless chip is not used by the emulator.
  • Architecture: Dual-core division — Core 0 handles video, I/O, and ~15 FPS refresh; Core 1 runs the 68040 CPU emulator with a 40,000-instruction quantum.
  • Supported ROMs: Quadra series ROMs (Q650 recommended) provide best compatibility; other ROMs may work with caveats.
  • Supported OS versions: System 7.1, System 7.5.x, Mac OS 8.0, and Mac OS 8.1 are listed as working.

What to watch next

  • ESP32-C6 on the Tab5 provides Wi‑Fi 6 and Bluetooth LE but is not used by the emulator; future builds may change that.
  • Battery life under sustained emulation: not confirmed in the source.
  • Compatibility and performance with non-Quadra ROMs or heavier Mac OS software: not confirmed in the source.

Quick glossary

  • BasiliskII: An open-source emulator for 68k Macintosh computers that can run classic Mac OS on non-Apple hardware.
  • ESP32-P4: A RISC-V-based microcontroller used in the M5Stack Tab5 as the primary application processor in this project.
  • PSRAM: Pseudo-static RAM used in embedded systems to provide additional volatile memory for tasks like emulated system RAM and frame buffers.
  • MIPI-DSI: A display interface standard (Mobile Industry Processor Interface — Display Serial Interface) commonly used for connecting panels in mobile and embedded devices.
  • ROM image: A file that contains a copy of a system's read-only memory contents, used by emulators to reproduce firmware behavior.

Reader FAQ

Which Mac OS versions can this run?
The port lists System 7.1, System 7.5.x, Mac OS 8.0, and Mac OS 8.1 as working.

What hardware do I need to reproduce this?
A M5Stack Tab5 and a FAT32-formatted microSD card (8GB+ recommended); source also provides prebuilt images and firmware.

Does the emulator use Wi‑Fi or Bluetooth on the Tab5?
No — the ESP32-C6 wireless co-processor is present on the board but is not used by the emulator.

Can it boot real Macintosh ROMs?
Yes; the port can boot genuine Macintosh ROM files such as Q650.ROM (Quadra 650 recommended).

How do I install the firmware?
Prebuilt binaries can be flashed with esptool.py; the project can also be built from source using PlatformIO.

BasiliskII ESP32 — Classic Macintosh Emulator for M5Stack Tab5 A full port of the BasiliskII Macintosh 68k emulator to the ESP32-P4 microcontroller, running on the M5Stack Tab5 hardware. This project…

Sources

Related posts

By

Leave a Reply

Your email address will not be published. Required fields are marked *