spectrum128_esp32_usb_host_pal_tv — это эмулятор ZX Spectrum 128, работающий на одной плате ESP32 (например, LOLIN32 mini или любой другой). Эмулятор использует прямой GPIO для подключения двух USB-HID-устройств (клавиатура/джойстик) и выводит аналоговый PAL-сигнал на телевизор.
Аппаратная платформа
| Компонент | Описание |
|---|---|
| Плата | ESP32 (LOLIN32 mini или аналоги) |
| USB-разъёмы | Два порта для подключения USB-HID устройств |
| Видеовыход | Аналоговый цветной PAL-TV (50 Гц) — GPIO25 |
| Звук | Эмуляция AY-3-8910 — GPIO27 |
| SD-карта | Чтение файлов .tap, .z80, .sna |
Назначение выводов (GPIO)
| Назначение | GPIO |
|---|---|
| USB 1 (DP/DM) | GPIO 16 / GPIO 17 |
| USB 2 (DP/DM) | GPIO 18 / GPIO 19 |
| Видео PAL | GPIO 25 |
| Звук AY | GPIO 27 |
| SD Card MISO | GPIO 2 |
| SD Card MOSI | GPIO 15 |
| SD Card CLK | GPIO 14 |
| SD Card CS | GPIO 13 |
Управление
| Клавиша | Действие |
|---|---|
| F4 / F5 | Ширина экрана |
| F11 / F12 | Скорость загрузки с ленты (нормальная / быстрая) |
Программное обеспечение
Сборка и прошивка (ESP-IDF):
Bash:
export IDF_PATH=$HOME/esp/esp-idf
source $HOME/esp/esp-idf/export.sh
git clone https://github.com/sdima1357/spectrum128_esp32_usb_host_pal_tv
cd spectrum128_esp32_usb_host_pal_tv
make flash monitor
SD-карта:
- Раздел 1, тип FAT32, стартовый сектор 2048.
- Корневые папки:
- Z48/ — для файлов ZX Spectrum 48 (форматы: .TAP, .Z80, .SNA)
- Z128/ — для файлов ZX Spectrum 128 (форматы: .TAP, .Z80, .SNA)
Файлы для загрузки
| Название файла / Папка | Описание | GitHub | Yandex.Диск |
|---|---|---|---|
| images (папка) | Изображения | Ссылка на GitHub | Ссылка на Яндекс.Диск |
| main (папка) | Исходный код эмулятора (C/C++) | Ссылка на GitHub | Ссылка на Яндекс.Диск |
| CMakeLists.txt | Файл сборки CMake | Ссылка на GitHub | Ссылка на Яндекс.Диск |
| Makefile | Файл сборки (ESP-IDF) | Ссылка на GitHub | Ссылка на Яндекс.Диск |
| sdkconfig | Конфигурация SDK для ESP-IDF | Ссылка на GitHub | Ссылка на Яндекс.Диск |
| Скачать все файлы | Все файлы находятся в одном архиве | Ссылка на GitHub | Ссылка на Яндекс.Диск |
Полезные ссылки проекта:
- Плата LOLIN32 (AliExpress) — https://www.aliexpress.com/premium/LOLIN32.html
- USB-разъёмы (AliExpress) — https://www.aliexpress.com/item/1005002027124387.html
- Репозиторий проекта — GitHub