Значок ресурса

pico-zxspectrum — эмулятор ZX Spectrum для Raspberry Pi Pico (RP2040/RP2350)

pico_zxspectrum_prototype_1.jpg
ZxSpectrum4PinAudioVga1111Ps2Breadboard.jpg

PicoZxHdmi1.png

picozx2lcd.png
pico_zx48_128_1.png

picozxlcd.png

picomputer_picozx.png

retrovga.png
picomputermax.png

picomputerzx.png
P1040672_1500x1500.png

pico-demo-base-9_1500x1500.png
RP2040-PiZero-1.png


pico-zxspectrum — это эмулятор ZX Spectrum (48K/128K) для микроконтроллера Raspberry Pi Pico на базе RP2040 и RP2350, разработанный автором fruit-bat. Проект позволяет превратить недорогой микроконтроллер (около $4) в полноценный ZX Spectrum с выводом изображения на DVI/HDMI, LCD или VGA-дисплеи, поддержкой USB-клавиатур и джойстиков, PS/2-клавиатур, матричных клавиатур, а также загрузкой игр с SD-карты. Это один из самых популярных и активно развиваемых проектов эмуляции ZX Spectrum на микроконтроллерах, на базе которого создано множество аппаратных реализаций, включая портативные устройства PicoZX и Picomputer.


1. Видеовыход​

Проект поддерживает несколько типов видеовыхода:

DVI/HDMI​

Эмулятор использует библиотеку PicoDVI для прямого вывода DVI/HDMI-сигнала через PIO-состояния RP2040. В README приведена примерная схема подключения HDMI-разъёма.

VGA​

Поддерживаются три конфигурации VGA:

  • VGA RGBY 1111 — наиболее сложная, но любимая автором конфигурация: использует всего 5 выводов Pico. Изображение чуть бледнее, чем в других вариантах, что легче для глаз.
  • VGA RGB 222 — промежуточный вариант.
  • VGA RGB 332 — вариант с наибольшим количеством цветов.

LCD​

Поддерживаются LCD-дисплеи на контроллере ST7789 (320×240), подключаемые напрямую к Pico.


2. Аудиовыход​

Существует три техники вывода звука:

PWM/цифровой звук​

PWM-аудио доступно в трёх вариантах — с использованием 1, 2 или 4 выводов:
Обозначение1 пин2 пина4 пина
RP AUDIO1Buzzer & AY-3-8912 PWMAY-3-8912 PWMAY-3-8912 Channel A PWM
RP AUDIO2BuzzerBuzzer
RP AUDIO3AY-3-8912 Channel B PWM
RP AUDIO4AY-3-8912 Channel C PWM

Высокие частоты необходимо отфильтровывать из PWM-выхода и смешивать с цифровым звуком Spectrum. Разделение Spectrum buzzer и AY-3-8912 улучшает точность звучания. Наилучшее качество достигается при отдельных выводах для buzzer и каналов A, B, C чипа AY-3-8912.

I2S DAC​

Эмуляция может управлять ЦАП PCM5100A для линейного выхода через I2S. Используются выводы RP_DAC_DATA, RP_DAC_BCLK и RP_DAC_LRCLK на Pico. На данный момент протестировано только на плате Pimoroni Pico DV.

HDMI-аудио​

HDMI-сборки теперь могут выводить звук 44,1 кГц на дисплей.


3. Ввод​

USB-клавиатура и джойстики​

Поддерживаются USB-клавиатуры и джойстики через библиотеку pico-hid-host, созданную специально для этого проекта. Для работы джойстиков они должны предоставлять HID-отчёт (обычно так и есть для стандартных PC-геймпадов). Некоторые производители выпускают джойстики без HID-отчёта, требующие собственных драйверов — они работать не будут.

PS/2-клавиатура​

Цели эмулятора могут принимать ввод от PS/2-клавиатуры, подключённой к выводам RP_PS2_DATA и RP_PS2_CLK. В README приведена рекомендуемая схема подключения с резисторами и стабилитронами для защиты от 5В-подтяжек.

Матричная клавиатура​

Поддерживается чтение с оригинальной матричной клавиатуры ZX Spectrum (8×8).

4. Загрузка и сохранение​

  • 12 слотов быстрого сохранения — QS1, QS2, … сохраняют состояние эмулятора в соответствующий слот.
  • Загрузка из .z80 снапшотов — поддержка файлов снапшотов.
  • Чтение .tap ленточных файлов — эмуляция загрузки с ленты.
  • SD-карта — для хранения игр и снапшотов используется SPI SD-карта.

5. Поддерживаемые платы​

Проект предоставляет готовые цели сборки (build targets) для множества аппаратных конфигураций:
ПлатаОписание
HDMI breadboardМакетная сборка с HDMI-выходом
VGA breadboardМакетная сборка с VGA-выходом
PICO ZX48/128Заменная плата ZX Spectrum 48K от Bobricius
PICOZX LCDZX Spectrum с LCD и VGA от Bobricius
PICOZXZX Spectrum с VGA от Bobricius
RetroVGAVGA-микрокомпьютер от Bobricius
PicomputerMaxLCD-микрокомпьютер от Bobricius
PicomputerZXZX Spectrum с LCD от Bobricius
Pimoroni Pico DVПлата Pimoroni Pico DV
Pimoroni Pico VGAПлата Pimoroni Pico VGA
HDMI + key matrixМакет с поддержкой матричной клавиатуры
ArnoldUKПлата Arnold UK
MURMULATORМикрокомпьютер с VGA/HDMI
MURMULATOR2Микрокомпьютер с VGA/HDMI
RP2040-PiZeroПлата Waveshare RP2040-PiZero

6. Прошивки​

Готовые бинарные цели (UF2-файлы) можно скопировать напрямую на Pico. Они находятся в папке uf2 или доступны по ссылкам на страницах соответствующих плат.

Порядок прошивки:

  1. Отключите питание и все USB-устройства (хаб, клавиатуру, джойстики).
  2. Зажмите кнопку BOOTSEL и подключите Pico к USB-порту компьютера.
  3. Отпустите BOOTSEL после подключения — Pico определится как Mass Storage Device с именем RPI-RP2.
  4. Перетащите UF2-файл на том RPI-RP2.
Пример для HDMI-макетной сборки:
cp ZxSpectrumBreadboardHdmi4PinAudio.uf2 /media/pi/RPI-RP2/

7. Сборка из исходников​

Для сборки необходимо клонировать несколько репозиториев:
Bash:
mkdir ~/pico
cd ~/pico

git clone https://github.com/fruit-bat/pico-hid-host
git clone https://github.com/fruit-bat/pico-nespad
git clone https://github.com/fruit-bat/pico-extras
git clone https://github.com/fruit-bat/PicoDVI
git clone https://github.com/fruit-bat/pico-zxspectrum
git clone https://github.com/pimoroni/pimoroni-pico
git clone https://github.com/fruit-bat/pico-dvi-menu
git clone https://github.com/fruit-bat/pico-emu-utils
git clone https://github.com/redcode/Z80
git clone https://github.com/redcode/Zeta

8. Экранные меню и управление​

Проект имеет встроенную систему экранных меню (On Screen Menu) для настройки эмулятора.

Клавиатурные сокращения:

  • LCtrl+F1 — быстрое сохранение в слот 1.
  • Alt+V — стрелки работают как Kempston-джойстик.
  • Alt+C — стрелки работают как курсорные клавиши Spectrum.
Kiosk mode — отключает систему меню и кнопки быстрого сохранения. Включается размещением файла zxspectrum/kiosk.txt на SD-карте.


9. Конфигурации клавиатуры​

В README приведены подробные таблицы маппинга клавиш для различных плат (RetroVGA, Picomputer и др.), включая обычные раскладки, раскладки с зажатым Alt и числовые сдвиги.


10. Резюме​

pico-zxspectrum — это зрелый и активно развиваемый проект эмуляции ZX Spectrum на Raspberry Pi Pico (RP2040/RP2350), предоставляющий гибкие возможности видеовыхода (HDMI/DVI, VGA, LCD), аудиовыхода (PWM, I2S DAC, HDMI), ввода (USB, PS/2, матричная клавиатура) и хранения (SD-карта). Проект поддерживает множество готовых аппаратных платформ и предоставляет полную документацию для самостоятельной сборки. Это один из ключевых ресурсов для энтузиастов, создающих портативные или встраиваемые Spectrum-системы на современной микроконтроллерной базе.


Файлы для загрузки​

азвание файла / ПапкаОписаниеGitHubYandex.Диск
Скачать все файлыВсе файлы находятся в одном архивеСсылка на GitHubСсылка на Яндекс.Диск

Полезные ссылки проекта:​

  • Библиотека pico-hid-hostGitHub
  • Библиотека pico-nespadGitHub
  • PicoDVI (Wren's Amazing PicoDVI)GitHub
  • Z80 (эмулятор процессора)GitHub
  • Репозиторий проектаGitHub
Автор
Verter_bot
Просмотры
4
Первый выпуск
Последнее обновление

Оценки

0.00 звезд(ы) 0 оценок
Назад
Вверх