ZX-Spectrum из Arduino: стоит-ли?
Этим утром решил наконец проанализировать возможность создать аналог ZX-Spectrum из Arduino.
Почему?
Ну во-первых сам Спектрум. Это полноценный компьютер, умеющий работать с текстом, музыкой, графикой и играми. На счёт текста особых вопросов нет. Музыка там специфическая и задействовать её получится только при наличии музыкального сопроцессора. Графика — откровенно слабая. Игры… Вообще их полно, но при этом, Спектрум не является игровым компьютером.
Главное, чем подкупает эта машинка, возможность качать программы с аудиокассет, виниловых дисков и даже по радио. Плюс, огромное количество софта, который фанаты пишут до сих пор. И это при том, что машинка ну очень слаба по современным меркам.
Во-вторых, Ардуино. Это дешёвый и доступный микроконтроллер. Собрать из него полноценный, хоть и весьма устаревший комп, было бы весело.
Давай проанализируем техническую возможность.
Характеристики ZX-Spectrum
- Процессор Z80B (3.5 / 7.0 MHz),
- ОЗУ — 48 кБайт (до 256 кБайт),
- ПЗУ 64 — 512 кБайт,
- Музыкальный процессор AY8910/12 (не обязателен)
Плюс ряд аппаратных особенностей, но их пока не учитываем.
Характеристики Arduino Nano
- Флэш- память 16 Кб или 32 Кб, в зависимости от чипа
- ОЗУ 1 Кб или 2 Кб, в зависимости от чипа
- EEPROM 512 байт или 1 Кб
- Частота 16 МГц
Смотри как здорово! И частота выше, и ПЗУ (в нашем случае EEPROM и флэш-память) очень даже… И тем не менее, Илья Ильич (Обломов) грустно машет нам рукой в пункте ОЗУ. Памяти у Ардуино Нано меньше чем нужно примерно в 48-128 раз.
А если попробовать 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 обнаружился на https://github.com/rpsubc8/ESP32TinyZXSpectrum/blob/main/readmeEnglish.md
Т.е. странные мысли приходят не только в эту голову.
Не знаю насколько это всё будет рабочим, но рассмотреть определённо можно.
Правда, там нужна не простая ESP32, а с VGA (TTGO VGA32 v1.2). Подобные на Али стоят почти 1300 руб. https://aliexpress.ru/item/4001066501355.html
С другой стороны, старые Спектрумы на барахолках идут от 4000 руб, а типовая цена сейчас 8500 руб. Дороговато, рискованно (за годы хранения электролитический конденсаторы нередко вытекают, а при «первом включении» догорает остальное). Да и замаешься потом искать куда эту древность подключить, ибо древние клоны Спектрума хорошо подходили только к древним-же телевизорам. Сейчас, при попытке эмуляции такого, могут вылезать самые разные сложности.
В ESP32, а с VGA (TTGO VGA32 v1.2) всё-таки полноценный VGA-выход и клавиатура PS/2.
Хм… А может вместо всего этого добра просто скачать эмулятор на компик и не париться?
Или лучше найти подходящий эмулятор для Orange Pi? Она у меня есть, а значит ничего докупать не нужно. Тут тебе ещё и линукс на борту, со всеми его плюшками. Останется только корпус напечатать и разъёмы нужные вывести. А если туда ещё и эмулятор Атари поставить, да найти ту самую игру, то сбудется давняя детская мечта. Ну почти сбудется.
Тогда хотел собрать Атари без клавиатуры (в максимально убогой комплектации), поставить на неё космическую стрелялку, приехать летом в деревню и сделать вид, что это у меня такой пульт управления от собственных космических войск. А чтобы было достоверно, к корпусу данного поделия крепилась бы антенна.
В те годы эта мысль казалась очень прикольной. Сейчас — сущий бред. Да и нет уже ТОЙ деревни. Она осталась в 90-х и вряд-ли когда-нибудь повторится.
В общем, здесь есть над чем поразмыслить, но внезапно стартовал рабочий день. Так что… ушёл трудиться на нивах кодинга и тестинга. Вернусь не скоро. Возможно к вечеру, но не факт.
А ведь к Оранж Пай у меня ещё и трёхдюймовый экран где-то лежит пылится. Это ж какую можно штуку из этого дела соорудить!
Впрочем, эмулятор это не то. Может потому, что ZX-Spectrum это не столько игры, сколько артефакт из одной особенной эпохи. Ну не хочет сознание принимать эмулятор. Или это только у меня так?
Ещё один ZX-Spectrum на ESP-32
А вот тут был видос от Алекса Екб, где он собирает шикарнейший спектрум на микроконтроллере ESP32. Ещё нужно добавить немного рассыпухи и разъёмы. Можно подключить USB-клавиатуру и геймпад. Загрузка программ, по задумке автора, осуществляется с магнитофона.
Видео было, а потом исчезло. Зачем, почему? Понятия не имею. Но есть другой вариант от того-же автора. Читай дальше.
UPDATE 07.01.2023
Собрал вариант с ESP32. Не за вечер, как на видео, но особо и не спешил. Кроме того, пришлось ждать пока пришлют некоторые детали.
Фоточки того что получилось можно найти по ссылке.
Звук есть. Загрузка с магнитофона работает. Цвета более-менее. USB-клавиатура подключается. В общем доволен.
UPDATE 26.05.2023
Есть ещё один шикарный вариант Спектрума от Алекса Екб. Здесь используется микроконтроллер Рапсберри Пай Пико.
Рекомендую канал этого автора в телеграмме.
Там можно задать вопросы участникам, найти прошивки и даже скачать готовые файлы для заказа печатных плат.
Ну а меня пока полностью устраивает тот, который был собран на базе ESP32.
Напишите комментарий