ZX-Spectrum из Arduino: стоит-ли?

В ноябре 2021-го я задался вопросом, можно ли собрать Спектрум из Ардуинки. Через год собрал, правда не из Ардуинки, и он до сих пор живой. Грабли сборки лежат ниже, а настоящий Спектрум можно запустить прямо на этой странице.

Запустить Спектрум в браузере

Ну а ниже всё по порядку, с того самого утра.

Этим утром решил наконец проанализировать возможность создать аналог ZX-Spectrum из Arduino.

Почему?

Ну во-первых сам Спектрум. Это полноценный компьютер, умеющий работать с текстом, музыкой, графикой и играми. Насчёт текста особых вопросов нет. Музыка там специфическая и задействовать её получится только при наличии музыкального сопроцессора. Графика — откровенно слабая. Игры… Вообще их полно, но при этом, Спектрум не является игровым компьютером.

Главное, чем подкупает эта машинка, возможность качать программы с аудиокассет, виниловых дисков и даже по радио. Плюс, огромное количество софта, который фанаты пишут до сих пор. И это при том, что машинка ну очень слаба по современным меркам.

Во-вторых, Ардуино. Это дешёвая и доступная плата с микроконтроллером. Собрать из неё полноценный, хоть и весьма устаревший комп, было бы весело.

Давай проанализируем техническую возможность.

Характеристики ZX-Spectrum

  • Процессор Z80A, 3,5 МГц,
  • ОЗУ — 48 кБайт (у модели 128K, понятно, 128),
  • ПЗУ — 16 кБайт,
  • Звук — бипер, музыкальный процессор AY появился в модели 128K

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

Характеристики Arduino Nano

  • Флэш- память 16 Кб или 32 Кб, в зависимости от чипа
  • ОЗУ 1 Кб или 2 Кб, в зависимости от чипа
  • EEPROM 512 байт или 1 Кб
  • Частота 16 МГц

Смотри как здорово! И частота выше, и ПЗУ (в нашем случае EEPROM и флэш-память) очень даже… И тем не менее, Илья Ильич (Обломов) грустно машет нам рукой в пункте ОЗУ. Памяти у Ардуино Нано меньше чем нужно в 24 раза даже для 48K-версии. А для 128K и вовсе в 64.

А если попробовать Arduino Mega? Да, она в разы дороже, но… нет. Тут всего 8 Кб.

Конечно можно было бы попытаться допаять Ардуинке памяти и… Но зачем? Это и лишняя морока, и удорожание всей поделки.

Т.е. по факту, Arduino пролетает. Впрочем, есть микроконтроллеры с более крутыми характеристиками, но там и цена будет сопоставима с Распбери Пай. А нужно максимально дёшево, иначе проще будет купить оригинальную машину на каком-нибудь Авито.

ESP32

Какие ещё варианты? Может ESP32?

Характеристики ESP32

  • Двух- или одноядерный 32-битный процессор Tensilica Xtensa LX6;
  • Тактовая частота – 160 или 240 МГц;
  • 520 Кб SRAM;
  • Стандарты беспроводной связи – Wi-Fi: 802.11 b / g / N, Bluetooth: v4.2 BR/EDR and BLE;

Обращаем внимание на частоту и объём памяти. Теоретически, сюда можно впихнуть эмуляцию Спектрума.

Ну а что? Эмулятор NES в неё уже умудрились засунуть. Кроме того, тут имеется Wi-Fi, что тоже довольно здорово.

Эмулятор Спектрума для ESP32 обнаружился на GitHub.
Т.е. странные мысли приходят не только в эту голову.

Не знаю насколько это всё будет рабочим, но рассмотреть определённо можно.

Правда, там нужна не простая ESP32, а с VGA (TTGO VGA32 v1.2). В 2021-м подобные на Али стоили почти 1300 руб.

С другой стороны, старые Спектрумы на барахолках шли тогда от 4000 руб, а типовая цена была 8500 руб. Дороговато, рискованно (за годы хранения электролитические конденсаторы нередко вытекают, а при «первом включении» догорает остальное). Да и замаешься потом искать куда эту древность подключить, ибо древние клоны Спектрума хорошо подходили только к древним же телевизорам. Сейчас, при попытке эмуляции такого, могут вылезать самые разные сложности.

В ESP32 с VGA (TTGO VGA32 v1.2) всё-таки полноценный VGA-выход и клавиатура PS/2.

Хм… А может вместо всего этого добра просто скачать эмулятор на компик и не париться?

Или лучше найти подходящий эмулятор для Orange Pi? Она у меня есть, а значит ничего докупать не нужно. Тут тебе ещё и линукс на борту, со всеми его плюшками. Останется только корпус напечатать и разъёмы нужные вывести. А если туда ещё и эмулятор Атари поставить, да найти ту самую игру, то сбудется давняя детская мечта. Ну почти сбудется.

Тогда хотел собрать Атари без клавиатуры (в максимально убогой комплектации), поставить на неё космическую стрелялку, приехать летом в деревню и сделать вид, что это у меня такой пульт управления от собственных космических войск. А чтобы было достоверно, к корпусу данного поделия крепилась бы антенна.
В те годы эта мысль казалась очень прикольной. Сейчас — сущий бред. Да и нет уже ТОЙ деревни. Она осталась в 90-х и вряд ли когда-нибудь повторится.

В общем, здесь есть над чем поразмыслить, но внезапно стартовал рабочий день. Так что… ушёл трудиться на нивах кодинга и тестинга. Вернусь не скоро. Возможно к вечеру, но не факт.

А ведь к Оранж Пай у меня ещё и трёхдюймовый экран где-то лежит пылится. Это ж какую можно штуку из этого дела соорудить!

Впрочем, эмулятор это не то. Может потому, что ZX-Spectrum это не столько игры, сколько артефакт из одной особенной эпохи. Ну не хочет сознание принимать эмулятор. Или это только у меня так?

Ещё один ZX-Spectrum на ESP-32

А вот тут, на канале Алекса Екб, был видос, где собирают шикарнейший спектрум на микроконтроллере ESP32. Ещё нужно добавить немного рассыпухи и разъёмы. Можно подключить USB-клавиатуру и геймпад. Программы загружаются с магнитофона.

ZX Spectrum на ESP32 из видео

Видео было, а потом исчезло. Зачем, почему? Понятия не имею. Но на том же канале нашёлся другой вариант. Читай дальше.

UPDATE 07.01.2023

Собрал вариант с ESP32. Не за вечер, как на видео, но особо и не спешил. Кроме того, пришлось ждать пока пришлют некоторые детали.

Фоточки того что получилось можно найти по ссылке.

Собранный ZX Spectrum на ESP32 в напечатанном корпусе

Звук есть. Загрузка с магнитофона работает. Цвета более-менее. USB-клавиатура подключается. В общем доволен.

Гладко не вышло. Вот на что я наступил:

  • Распиновка. ESP32 у меня и на схеме по маркировке одинаковые, а ножки на разных местах. Выручили обозначения на плате: они совпадают.
  • Детали. На магнитофонный вход на складе не нашлось резистора и конденсатора, пришлось заказывать и ждать.
  • Корпус. Разъёмы заранее не проектировал, высверливал по факту. И правильно сделал: на намеченные места вставало далеко не всё. VGA пришлось перенести, иначе корпус не закрывался, а лишнюю дыру заделал логотипом.
  • Провод. Когда почти всё свинтил, оборвался провод загрузки с кассет. Туда было уже не подлезть, подпаялся с другой стороны.
  • Полярность. Включил и… не работает. Перепутал полярность. Контроллер, к счастью, выжил.
  • Питание. Как подвести его напрямую, так и не нашёл, поэтому припаял гнездо к штекеру Micro-USB и воткнул в контроллер. Работает и ладно.
Нижняя часть корпуса ZX Spectrum на ESP32 Логотип закрывает лишнее отверстие в корпусе ESP32 с распиновкой, отличной от схемы

Вместо магнитофона выступил смартфон с программой ZX Tape Player. Игры идут в него через аудиоканал телефона, для загрузки этого хватает. Записать программу обратно на кассету, может, и можно, но для этого надо заморочиться и проверить, выдаёт ли аудиоканал звук кода, а не только слушает. Я не проверял.

UPDATE 26.05.2023

Ещё один шикарный вариант Спектрума нашёлся на канале Алекса Екб. Здесь используется плата Raspberry Pi Pico, а проект называется Мурмулятор.

ZX Spectrum на Raspberry Pi Pico

Там можно задать вопросы участникам, найти прошивки и даже скачать готовые файлы для заказа печатных плат.

Ну а меня пока полностью устраивает тот, который был собран на базе ESP32.

Не хочешь паять? Запусти прямо здесь

Это тот самый компромисс, который я в 2021-м не хотел принимать: эмулятор. Обычный Спектрум 48K, только в браузере.

Сначала появится надпись Sinclair Research. Дальше клавиши работают как на оригинале: ключевое слово ставится одним нажатием, раскладка нужна английская.

  1. Жми 1, 0, P (появится PRINT), затем кавычки, своё имя, снова кавычки и Enter.
  2. Жми 2, 0, G (GO TO), 1, 0 и Enter.
  3. Жми R (RUN) и Enter.

Вот что получится на экране перед запуском, только вместо ALEX твоё имя (русских букв у Спектрума нет):

10 PRINT "ALEX"
20 GO TO 10

Команда RUN в программу не входит: она её запускает.

На вопрос scroll? отвечай любой клавишей, а остановит программу N. Пока экран эмулятора на виду, клавиши уходят ему.

Под экраном лежит клавиатура Спектрума: на ней подсвечивается то, что ты нажал, а все надписи видны как на оригинале. Нажимать её можно и мышью, и пальцем.

Просто поиграть? Жми кнопку Gioco di EM над клавиатурой, а потом любую клавишу. Это две маленькие игры на одной кассете, автор начал их в 8 лет, а закончил в 44.

В первой водишь змейку стрелками или цифрами: 5 влево, 6 вниз, 7 вверх, 8 вправо. После game over клавиша Y запускает игру заново, а N переключает на вторую: там уворачиваешься от звёздочек клавишами вверх и вниз.

Есть своя игра? Кнопка Open file на панели под экраном или меню File → Open откроет файлы .tap, .tzx, .z80, .sna, .szx и .zip, а ещё файл можно перетащить на экран. Он читается прямо в браузере и на сайт не загружается.

Работает на JSSpeccy 3 от Мэтта Уэсткотта. Игра Gioco di EM от oloturia, автор отдал её в общественное достояние.

UPDATE 31.10.2026: что изменилось за пять лет

Вопрос из заголовка оказался живучим: люди до сих пор приходят сюда с ним из поиска. Поэтому свёл в одно место, что есть на сегодня.

  • Обычная Arduino (Uno, Nano, Mega). По-прежнему нет. Даже у новой Uno R4 всего 32 КБ оперативки, до 48K не дотягивает.
  • Arduino UNO Q. Новая плата с процессором Qualcomm: четыре ядра до 2 ГГц, 2 или 4 ГБ памяти и Debian на борту. Формально это тоже Arduino, и Спектрум в такие объёмы влезет с запасом. Только это уже маленький компьютер на линуксе, а не та самая дешёвая Ардуинка. Сам не пробовал.
  • ESP32. Появился ESPectrum: автор обещает потактовую эмуляцию 48K, 128K и Пентагона 128K. Работает на той самой TTGO VGA32, паять ничего не надо. Сам не пробовал.
  • Raspberry Pi Pico. Мурмулятор вырос в целую платформу. На сайте проекта лежат несколько прошивок ZX Spectrum, а для новой платы M2 используется уже чип RP2350.
  • Готовое из коробки. В ноябре 2024-го вышел The Spectrum от Retro Games: полноразмерный корпус, резиновые клавиши, HDMI, 48 игр и 89 фунтов на старте. Внутри, естественно, эмуляция. Настоящие ценители смотрят на ZX Spectrum Next на FPGA, третий тираж которого собирали на Kickstarter летом 2025-го.

Итого, на заголовок теперь можно ответить так: Arduino не стоит, ESP32 или Pico стоят, а если паять не хочется, всё продаётся готовым.

И да, в 2021-м я писал, что сознание не хочет принимать эмулятор. Потом собрал эмулятор на ESP32 и остался доволен.

Хиторо (h 100px)
Кто не принимал? Я не принимал.

Напишите комментарий

Введите имя

Введите адрес электронной почты

Введите адрес вашего сайта

Нажмите эту кнопку, чтобы отправить комментарий.

Введите текст комментария