Эмулятор Macintosh работает на отладочных платах с дисплеем ESP32-P4 от M5Stack и Waveshare

Чипы ESP32 используются для ретро-игр и ретро-вычислений   уже много лет, но Остин Маккорд (Amcchord) пополняет эту нишу, портировав эмулятор Macintosh на несколько отладочных плат с дисплеем на ESP32-P4.

Его проект представляет собой полный порт эмулятора Macintosh 68k BasiliskII, который приносит классическую Mac OS (System 7.x — Mac OS 8.1) на портативные встраиваемые устройства на ESP32-P4 с сенсорным экраном, USB-периферией и поддержкой WiFi через ESP32-C6 на платах.

ESP32-P4 MacOS emulator

Основной платформой разработки выступает M5Stack Tab5 с 5-дюймовым сенсорным дисплеем разрешением 1280×720. Однако если вам нужно устройство с большим экраном, поддерживается также Waveshare ESP32-P4-WIFI6-Touch-LCD-10.1 с 10,1-дюймовым дисплеем разрешением 1280×800 и емкостным сенсорным экраном на 10 касаний. Фактические разрешения Mac OS составляют 640×360 и 640×400 соответственно, после чего они масштабируются вдвое до собственного разрешения дисплея.

Основные моменты проекта:

  • CPU – эмуляция Motorola 68040 с FPU (68881) — 2–3 MIPS
  • RAM – от 4 до 16 МБ (конфигурируется); выделяется из 32 МБ PSRAM ESP32-P4
  • Память – образы жёсткого диска и CD-ROM загружаются с microSD-карты
  • Дисплей – виртуальный дисплей 640×360 или 640×400 (масштабируется 2× до физического 1280×720/800); глубина цвета 1/2/4/8 бит при 24 кадрах/с
  • Видео – оптимизированный конвейер с отслеживанием изменений при записи, двухбуферным DMA и тайловой отрисовкой
  • Аудио – вывод звука классического Mac через кодек ES8388; переключается в загрузочном GUI
  • Сеть – доступ в интернет по WiFi через NAT-роутер с поддержкой TCP, UDP, ICMP, DHCP…
  • Ввод
    • Емкостный сенсорный экран используется как мышь
    • Поддержка USB-клавиатуры и USB-мыши
System 7 ESP32-P4 WiFi web browsing
Эмулятор совместим с System 7.1, System 7.5.x, Mac OS 8.0 и Mac OS 8.1.

Каждая задача привязана к конкретному ядру ESP32-P4:

  • CORE 0 – ядро видео и ввода/вывода
    • Задача отрисовки видео
    • Двухбуферный DMA
    • Масштабирование пикселей 2×2
    • Задача ввода (60 Гц)
    • Обработка USB HID
    • Вывод аудио (ES8388)
    • Опрос RX сети
    • Событийно-ориентированная @ 24 кадра/с
  • CORE 1 – ядро эмуляции CPU
    • Интерпретатор CPU 68040
    • Быстрый доступ к памяти
    • Пометка изменений при записи
    • Пакетное выполнение инструкций
    • Патчинг ROM
    • Ввод/вывод диска

Производительность эмулятора Motorola 68040, работающего на ESP32-P4, сравнима с Macintosh Quadra 610 (25 МГц 68040). Он также может выводить видео при 24 кадрах/с и обеспечивает скорость CPU 2–3 MIPS.

ESP32-P4 Macintosh emulator

Исходный код, портированный с помощью Anthropic Claude, и подробную документацию по реализации можно найти в репозитории проекта на GitHub .

Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

5 1 vote
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Oldest
Newest Most Voted
Inline Feedbacks
View all comments