Mengulas M5Tab-Macintosh: Menghidupkan Kembali Era Klasik Mac OS di Genggaman Anda

Mengulas M5Tab-Macintosh: Menghidupkan Kembali Era Klasik Mac OS di Genggaman Anda

By Reggi, 22 Jul 2026

Mengenang kembali era emas Macintosh klasik kini bukan lagi impian yang hanya bisa terwujud di komputer desktop. Berkat proyek ambisius bernama M5Tab-Macintosh, Anda bisa menjalankan emulator BasiliskII 68k secara penuh di perangkat embedded portabel berbasis ESP32-P4. Proyek ini membawa nuansa Mac OS klasik, dari System 7.x hingga Mac OS 8.1, ke perangkat mungil dengan layar sentuh dan dukungan periferal USB.

Perangkat yang Didukung

M5Tab-Macintosh dirancang untuk dua jenis board utama, dengan konfigurasi display dan performa yang dioptimalkan:

BoardDisplay FisikLayar Mac (Virtual)Lingkungan PlatformIO
M5Stack Tab55" 1280x720640x360 @ 2xesp32p4_pioarduino
Waveshare ESP32-P4-WIFI6-Touch-LCD-10.110.1" 800x1280 (putar ke 1280x800 lanskap)640x400 @ 2xwaveshare_p4_101

Kedua varian ini berbagi inti BasiliskII yang sama, pipeline video, penanganan USB HID, dan antarmuka boot grafis. Driver spesifik untuk setiap board dikelola melalui lapisan abstraksi hardware (HAL) yang ramping.

Performa yang Mengejutkan

Jangan remehkan perangkat kecil ini. Emulator M5Tab-Macintosh ini menargetkan performa yang sebanding dengan Macintosh Quadra 610 (dengan CPU 68040 25 MHz). Anda bisa mendapatkan video 24 FPS dan kecepatan CPU 2-3 MIPS, yang lebih dari cukup untuk bernostalgia dengan aplikasi dan game klasik.

Emulator ini menghadirkan:

  • CPU: Emulasi Motorola 68040 dengan FPU (68881).
  • RAM: Dapat dikonfigurasi dari 4MB hingga 16MB, dialokasikan dari 32MB PSRAM ESP32-P4.
  • Display: Layar virtual 640x360, diskala 2x ke layar fisik 1280x720 (untuk Tab5), mendukung kedalaman warna 1/2/4/8-bit pada 24 FPS.
  • Penyimpanan: Gambar hard disk dan CD-ROM dimuat dari kartu SD.
  • Input: Layar sentuh kapasitif, keyboard atau mouse USB, dan keyboard resmi Tab5 yang terdeteksi otomatis.
  • Audio: Suara Mac klasik via codec ES8388 atau ES8311, yang bisa diaktifkan atau dinonaktifkan di GUI boot.
  • Jaringan: Akses internet WiFi melalui router NAT, termasuk TCP, UDP, ICMP, dan DHCP.

Arsitektur Dual-Core yang Optimal

M5Stack Tab5 memiliki arsitektur dual-chip yang unik, menjadikannya pilihan ideal untuk proyek ini:

  • ESP32-P4: Prosesor Aplikasi Utama, ditenagai dual-core RISC-V 400MHz, 32MB PSRAM, dan display MIPI-DSI.
  • ESP32-C6: Co-prosesor Nirkabel, menyediakan WiFi 6 dan Bluetooth LE 5.0 untuk akses internet ke Mac OS klasik.

Emulator ini memanfaatkan arsitektur dual-core ESP32-P4 untuk kinerja optimal:

CORE 0 (Video & I/O Core)CORE 1 (CPU Emulation Core)
• Tugas rendering video• Interpreter CPU 68040
• DMA double-buffered• Akses memori fast-path
• Penskalaan piksel 2x2• Penandaan kotoran write-time
• Tugas input (60Hz)• Eksekusi instruksi batch
• Pemrosesan USB HID• Penambalan ROM
• Output audio (ES8388)• I/O Disk
Polling RX jaringan
Event-driven @ 24 FPS

Pipeline Video yang Efisien

Sistem video menggunakan pipeline yang sangat dioptimalkan dengan pelacakan kotoran write-time untuk meminimalkan beban CPU. Saat CPU 68040 menulis ke framebuffer, sistem memori langsung menandai tile yang terpengaruh sebagai "kotor". Ini menghilangkan perbandingan mahal per-frame.

Layar dibagi menjadi grid 16x9 tile berukuran 40x40 piksel. Hanya tile yang "kotor" yang akan di-render ulang setiap frame, mengurangi waktu CPU video hingga 60-90%. Teknologi double-buffered DMA dan per-tile render locks juga memastikan tampilan yang lancar dan bebas glitch.

Memulai Nostalgia Anda

Untuk memulai perjalanan Anda ke masa lalu Mac OS, Anda perlu menyiapkan beberapa hal.

Persyaratan

  • Hardware: M5Stack Tab5 atau Waveshare ESP32-P4 10.1".
  • Software: PlatformIO (CLI atau ekstensi IDE).
  • Kartu SD: Kartu microSD format FAT32 (disarankan 8GB+). Perhatian: exFAT tidak sepenuhnya didukung dan akan meminta Anda untuk memformat ulang ke FAT32.

Penyiapan Kartu SD

Anda bisa memilih cara cepat atau manual:

1. Mulai Cepat (Disarankan)

  • Unduh sdCard.zip dari repositori proyek.
  • Format kartu microSD Anda sebagai FAT32.
  • Ekstrak isi ZIP ke root kartu SD Anda.
  • Masukkan ke Tab5 dan nyalakan.

2. Penyiapan Manual Atau, buat penyiapan Anda sendiri dengan file-file ini di root kartu SD:

/
├── Q650.ROM              # ROM Macintosh Quadra (wajib)
├── Macintosh.dsk         # Gambar hard disk (wajib)
├── System753.iso         # CD instalasi Mac OS (opsional)
└── DiskTools1.img        # Floppy boot untuk instalasi (opsional)

Untuk membuat gambar disk kosong, Anda bisa menggunakan perintah dd:

bash
dd if=/dev/zero of=Macintosh.dsk bs=1M count=500

Ini akan membuat gambar disk kosong berukuran 500MB yang kemudian bisa Anda format saat instalasi Mac OS.

ROM dan Sistem Operasi yang Didukung

Emulator ini bekerja paling baik dengan ROM seri Macintosh Quadra. Q650.ROM adalah yang paling direkomendasikan untuk kompatibilitas terbaik. File ROM harus memiliki kata versi 16-bit di offset 8 yang berbunyi 0x067C (keluarga Mac II 32-bit clean) atau 0x0276 (Classic).

Sistem Operasi yang didukung meliputi:

  • System 7.1
  • System 7.5.x
  • Mac OS 8.0
  • Mac OS 8.1

Mem-flash Firmware

Anda bisa mengunduh firmware yang sudah dibuat sebelumnya atau membangunnya dari sumber.

Opsi 1: Firmware Pra-bangun (Termudah) Unduh rilis terbaru dari GitHub. Lalu, flash biner tunggal menggunakan esptool.py:

bash
pip install esptool esptool.py --chip esp32p4 \ --port /dev/ttyACM0 \ --baud 921600 \ write_flash \ 0x0 M5Tab-Macintosh-v4.0.bin

Ingat untuk mengganti /dev/ttyACM0 dengan port serial perangkat Anda yang sebenarnya, misalnya /dev/cu.usbmodem* di macOS, COM3 di Windows, atau /dev/ttyUSB0 di Linux.

Opsi 2: Build dari Sumber

bash
git clone https://github.com/amcchord/M5Tab-Macintosh.git cd M5Tab-Macintosh pio run # Membangun firmware pio run --target upload # Mengunggah ke perangkat pio device monitor # Memantau output serial

Pengalaman Pengguna: Pre-Boot GUI dan Input

Setiap kali Anda menyalakan atau me-reset perangkat, Anda akan disambut oleh layar konfigurasi pre-boot bergaya Mac klasik. Ini adalah tempat Anda memilih disk, CD, ukuran RAM, WiFi, folder bersama, dan mode USB Disk (khusus Tab5). Cukup ketuk "Change Settings" selama hitungan mundur 3 detik untuk masuk ke menu ini. Pengaturan Anda akan disimpan ke file /basilisk_settings.txt di kartu SD.

Input yang Fleksibel

  • Layar Sentuh: Berfungsi sebagai mouse single-button, tap untuk klik dan drag untuk klik dan seret.
  • Overlay Keyboard & Gaming (v4.0):
    • Tiga jari tap: Menampilkan/menyembunyikan overlay keyboard QWERTY lengkap dengan pengubah sticky Shift, Ctrl, Option, dan Command.
    • Empat jari tap: Menampilkan/menyembunyikan overlay D-pad gaming dengan tombol aksi Esc, Return, Space, dan Option.
    • Overlay ini "transparan" berkat teknik sub-pixel stipple sehingga Anda tetap bisa melihat konten Mac di baliknya.
  • Keyboard USB: Hubungkan ke port USB Type-A Tab5 untuk pengalaman mengetik penuh dengan pemetaan kunci Mac yang benar.
  • Mouse USB: Hubungkan mouse USB untuk input gerakan relatif, lengkap dengan dukungan tombol kiri, kanan, dan tengah. Versi v4.1 beta 2 menambahkan parser descriptor HID untuk mouse modern dan meneruskan scroll wheel sebagai tombol panah Mac.
  • Keyboard Resmi Tab5 (beta, v4.1 beta 2): Keyboard 70 tombol resmi Tab5 yang terpasang ke Ext.Port1 akan terdeteksi otomatis dan mendukung hot-plugging.

Dukungan Jaringan WiFi

M5Tab-Macintosh memiliki fitur jaringan TCP/IP melalui co-prosesor WiFi ESP32-C6. Ini menyediakan akses internet berbasis NAT untuk aplikasi Mac klasik dengan dukungan server DHCP.

Konfigurasi Jaringan Virtual:

  • IP Mac OS: 10.0.2.15 (ditetapkan via DHCP)
  • Gateway: 10.0.2.2
  • DNS: 10.0.2.3 (diteruskan ke DNS sesungguhnya)

Anda dapat mengkonfigurasi WiFi melalui GUI pre-boot. Setelah terhubung, IP Anda akan ditampilkan, dan pengaturan akan disimpan untuk boot berikutnya. Di Mac OS, cukup buka TCP/IP Control Panel dan atur "Connect via: Ethernet" dan "Configure: Using DHCP Server".

Pembaruan Penting

Proyek ini terus berkembang dengan pembaruan yang signifikan.

Apa yang Baru di v4.1 beta 2?

  • Keyboard Tab5 Plug-and-play (beta): Deteksi otomatis keyboard resmi Tab5 di Ext.Port1, mendukung hot-plugging.
  • Semua revisi display Tab5 (beta): Mendukung revisi ST7121, ST7123, dan ILI9881C secara otomatis.
  • Flush SD + sinkronisasi shutdown lebih cepat: Gambar disk di kartu sekarang di-flush setiap 2 detik dan setelah guest idle, mengurangi potensi kehilangan data.
  • Parser descriptor HID: Memperbaiki masalah gerakan kursor pada mouse USB modern dengan tata letak bit X/Y non-standar, serta meneruskan scroll wheel sebagai tombol panah Mac.
  • Boot dari CD: Opsi "Boot from CD" di GUI pre-boot memungkinkan boot langsung dari file ISO.
  • Pemilih file CD/disk yang lebih luas: Kini mendukung file .cdr dan .toast untuk CD-ROM, serta .hfv untuk hard disk.
  • Tombol rotasi layar: Kotak centang "Rotate 180" di GUI pre-boot memungkinkan rotasi layar 180° untuk Tab5.
  • Reset codec audio yang kuat: Melakukan urutan mute, power-down, dan reset chip penuh untuk memulihkan audio setelah soft reboot.
  • Deteksi kartu exFAT: Jika kartu SD diformat sebagai exFAT, sistem akan mendeteksinya dan memberikan pesan yang jelas untuk memformat ulang ke FAT32.

Apa yang Baru di v4.0?

  • Keyboard on-screen multi-touch dan overlay gaming.
  • Overlay "transparan" tanpa perhitungan alpha, menggunakan penulisan sub-pixel 25%.
  • Penetapan PlatformIO per-board untuk stabilitas yang lebih baik.
  • USB Disk Tab5 melalui USB-A: Sekarang Anda dapat mengakses kartu SD Tab5 sebagai perangkat USB Mass Storage melalui port USB-A.

Optimasi Performa Mendalam

M5Tab-Macintosh mencapai kinerja desktop yang mulus berkat serangkaian teknik optimasi tingkat rendah:

  • Pelacakan Kotoran Write-Time: Menandai tile sebagai kotor pada saat CPU menulis, menghindari perbandingan mahal per-frame.
  • Pemisahan Dual-Core: Emulasi CPU (Core 1) berjalan secara independen dari video/input (Core 0) dengan sinkronisasi minimal.
  • Akses Memori Fast-Path: Pemeriksaan inline untuk RAM/ROM melewati pencarian bank memori yang mahal.
  • Eksekusi Instruksi Batch: CPU mengeksekusi 32 instruksi per iterasi loop sebelum memeriksa tick.
  • DMA Double-Buffered: Rendering video menggunakan tile dan row buffer double-buffered.
  • Kunci Render Per-Tile: Kunci atomik mencegah kondisi race selama snapshot tile.
  • Penjadwalan CPU/IO Adaptif: Emulasi CPU, I/O disk, rendering video, dan polling jaringan diseimbangkan di kedua core dengan timing adaptif.
  • Optimasi Kompiler Agresif: Proses build menggunakan -O3, -funroll-loops, -ffast-math, dan inlining agresif untuk jalur cepat.

Pemecahan Masalah Umum

Jika Anda mengalami masalah, berikut beberapa solusi cepat:

MasalahSolusi
"SD card initialization failed"Pastikan kartu SD diformat FAT32 dan terpasang dengan benar.
"Q650.ROM not found"Letakkan file ROM di direktori root kartu SD.
Layar hitam setelah bootPeriksa output serial untuk kesalahan, verifikasi kompatibilitas ROM.
Layar sentuh tidak meresponsTunggu GUI boot menyelesaikan inisialisasi.
Keyboard USB tidak berfungsiHubungkan ke port USB Type-A (bukan Type-C).
Keyboard Tab5 tidak terdeteksiPastikan terpasang sepenuhnya pada Ext.Port1 dan alamat I2C di 0x6D.
Tampilan lambat/terputus-putusPeriksa statistik [VIDEO PERF] di output serial, 60-90% pembaruan parsial adalah normal.
Tidak ada output audioPastikan audio diaktifkan di layar pengaturan GUI boot.

Proyek ini adalah contoh bagaimana inovasi open-source dan perangkat keras modern dapat membawa kembali pengalaman klasik yang berharga. M5Tab-Macintosh bukan hanya emulator, melainkan sebuah jembatan waktu yang memungkinkan kita merasakan kembali keajaiban Mac OS generasi pertama.

Referensi

https://github.com/amcchord/M5Tab-Macintosh


🔥 Sedang Ramai Dibaca