Просмотр полной версии : ESP8266 ZX Spectrum Emulator
Продукт итальянских ардуинщиков - эмулятор ZX Spectrum 48K на ESP8266 с LCD-экраном.
Собрано на модуле TFT-экрана с SD-картой (320x240, $10) и NodeMCU (Ардуино-подобная плата с ESP8266 на борту, $2).
Поддерживаются
Звук
Кемпстон-джойстик
Загрузка .Z80 с SD-карты и внутренней памяти
Сохранение файлов .Z80 на карту
https://www.youtube.com/watch?v=D_M-rMHq4L0
Схема и исходники здесь.
https://github.com/aldolo69/esp8266_zxspectrum_emulator
Код грязный, схема просто ужасная, но вообще штука любопытная.
Перерисовываю в KiCAD потихоньку. Клавиатуру планирую задействовать от Karabas Nano.
Ну что же им не даёт использовать ESP32? Там и памяти дофига и даже цап есть, с которого стереозвук можно забирать. Стоит слегка дороже 8266, зато весь фарш в избытке. И вайфай и блютус.
polikarpov76
18.02.2020, 22:26
Ну что же им не даёт использовать ESP32?
Вот и я не пойму, кучу более требовательных NES и PC-XT напилили, а толковой реализации спека так и нет.
Ну что же им не даёт использовать ESP32? Там и памяти дофига и даже цап есть, с которого стереозвук можно забирать. Стоит слегка дороже 8266, зато весь фарш в избытке. И вайфай и блютус.
Есть уже, odroid go назыветься
Ну что же им не даёт использовать ESP32? Там и памяти дофига и даже цап есть, с которого стереозвук можно забирать. Стоит слегка дороже 8266, зато весь фарш в избытке.
Ну это же особое удовольствие — использовать чип ценой меньше ста рублей. Это ж как спектрум против msx :)
Может кто-нибудь переделает схему в файлах с расширением dsn в обычную картинку?
Может кто-нибудь переделает схему в файлах с расширением dsn в обычную картинку?
Картинки в README на гитхабе - это оно и есть.
- - - Добавлено - - -
https://raw.githubusercontent.com/aldolo69/esp8266_zxspectrum_emulator/master/zx_esp8266.JPG
https://raw.githubusercontent.com/aldolo69/esp8266_zxspectrum_emulator/master/zx_keyboard_joystick.JPG
https://raw.githubusercontent.com/aldolo69/esp8266_zxspectrum_emulator/master/zx_display_sdcard.JPG
- - - Добавлено - - -
Ну или вот докуда я дорисовал
https://b.radikal.ru/b25/2002/31/c6e461c046ea.png (http://radikal.ru/big/keudz9ms33osa)
Это ж как спектрум против msx
или против геймбоя :)
https://hackaday.io/project/164830-espboy-games-iot-stem-for-education-fun/log/164747-esp8266-little-game-engine-by-igor-on-espboy
или против геймбоя :)
https://hackaday.io/project/164830-espboy-games-iot-stem-for-education-fun/log/164747-esp8266-little-game-engine-by-igor-on-espboy
Тогда уж можно сразу сюда ссылаться - https://zx-pk.ru/threads/31252-espboy-zx48k-amp-ay3-8910-emulator-(zx-spectrum-on-esp8266-mcu).html
Интересное подключение LCD шилда. Обычно задействуют 3 или 4 сигнала управления и 16 или 8 проводов данных. Здесь же я не нашёл шину данных (стандарт подключения LCD 8080).
Понял. Задействован интерфейс SPI. Включение по CS SD карты = 0. При CS=1 - работает SD карта.
- - - Добавлено - - -
Код грязный, схема просто ужасная, но вообще штука любопытная.
Перерисовываю в KiCAD потихоньку. Клавиатуру планирую задействовать от Karabas Nano.
Хорошее начинание. Мне тоже понравился проект. Нужно теперь правильный экранчик на али найти, подходящий.
А кроме того не дорого, 2 бакса за esp, 3-5 за экранчик (экранчики брал давно по какой-то скидке)
кстати да не просто по spi экран подключаеться а по хардварному spi для обеспечения максимального fps.
А вот 2,2 или 2,4 дюйма по диагонали? Первый попавшийся (https://aliexpress.ru/item/32961284118.html?spm=a2g0o.productlist.0.0.302855e e44QtwH&algo_pvid=e8487c4b-9561-4872-9275-e88782e0c0d4&algo_expid=e8487c4b-9561-4872-9275-e88782e0c0d4-28&btsid=0b8b034e15821113683975660e746e&ws_ab_test=searchweb0_0,searchweb201602_,searchweb 201603_) сразу нашёл.
А вот 2,2 или 2,4 дюйма по диагонали? Первый попавшийся (https://aliexpress.ru/item/4000001484082.html?spm=a2g0o.productlist.0.0.30285 5ee44QtwH&algo_pvid=e8487c4b-9561-4872-9275-e88782e0c0d4&algo_expid=e8487c4b-9561-4872-9275-e88782e0c0d4-15&btsid=0b8b034e15821113683975660e746e&ws_ab_test=searchweb0_0,searchweb201602_,searchweb 201603_) сразу нашёл.
На гитхабе 2.2 судя по картинке, я на 100 не уверен но должны подойти оба главное чтобы ili9341
Очень компактная плата получится, если подгадывать под размер LCD шилда и располагать её под дисплеем. Клавиатуру/джойстик можно сделать выносными.
А какой тип wi-fi модуля используется? Не на одном фото нет его.
- - - Добавлено - - -
Вот такой есть миниатюрный и по количеству выводов подходит.
71581
Очень компактная плата получится, если подгадывать под размер LCD шилда и располагать её под дисплеем. Клавиатуру/джойстик можно сделать выносными.
А какой тип wi-fi модуля используется? Не на одном фото нет его.
- - - Добавлено - - -
Вот такой есть миниатюрный и по количеству выводов подходит.
71581
в Гитхабе NodeMcu , пойдет любой кроме esp-01 там выводом мало.
У меня экраны вообще 2.8", ещё и с тачем. В идеале надо плату, конечно, универсальной сделать.
Не все экраны подойдут. Смотрите, чтобы были разные шины SPI, на сам экран и на SD карту. А если шина данных (8 или 16) выводов на разъём идёт - вообще не подойдёт, там SPI отключен.
SoftLight
19.02.2020, 17:10
А вот это на ESP32 все таки не интереснее?
ZX-ESPectrum (https://github.com/rampa069/ZX-ESPectrum)
Features
VGA output, 8 or 16 bits.
Beeper digital output.
Accurate Z80 emulation.
Spectrum 16/48 achitecture emulation without PSRAM.
Spectrum 128/+2/+3 architecture emulation with PSRAM.
PS/2 Keyboard.
VGA OSD menu: Configuration, and architecture selection, ROM and SNA.
Tape save and loading.
SNA snapshot loading.
Internal SPIFFS support.
Work in progress
AY-3-8910 emulation and sound output with dedicated chip.
SD card support.
DivIDE emulation.
Dedicated motherboard design.
Joystick support.
USB keyboard.
OTA: Over the Air updates.
VGA output, 8 or 16 bits.
Да оно ж без набортного экрану! Спектрумов без экрана у меня, например, и так навалом :)
Ежели хочется готового карманного Спектрума размером с пачку сигарет (даже меньше) и с экраном - берите наебеях прикольную хрень под названием LDK Game. Есть вертикальная и горизонтальная редакции. Проц внутре под 700 мгц, два ведра; кроме хорошего эмулятора Спектрума с тырдосом и всеми нужными штуками там эмуляторы чего угодно, нес-снес, сеги, ц64, атари, амиги, мсх и дофига других, вплоть до пс1 и портов кваки1,2 (третей нету потому как опенгл нету) всяких дюкенюкемов и прочего. Кроме того несколько софтин типа плеера аудио и видео, файловый манагер и текстовый едитор. В-общем, очень себе неплохой карманный бильярд (ой, что-то не то сказал). Посмотрите обзоры на ютубах. Стоит около 3 тыр.
Достаточно посмотреть 4PDA и увидеть отзывы на LDK Game:
1) Отсутствует установщик пакетов ipk. Дополнительно ничего не установить и не обновить... Обновлений эмуляторов и софта не будет - тупиковая ветвь.
2) Некоторые эмуляторы не работают (и работать не будут, читай пункт "1"). Например, Amiga 500.
3) Если вам достаточно эмуляторов GB, GBA, GBC, PS1, NES, SNES, NeoGeo, MAME, ZX Spectrum, FBA, Sega, DosBox, SVN и вы просто хотите играть, то стоковой прошивки вполне достаточно.
Только нахрен нужен этот экранчик 2,6 дюймов за 3 с лишнем тысяч рублей и без клавиатуры?
Это какие-то древние отзывы. Пакеты устанавливаются, обновления выходят регулярно. Для карманного устройства там вполне себе удобное управление в стиле геймбоя или psp (в зависимости от версии корпуса). Нахрена на таком малыше ещё и клавиатура - непонятно. Штучка же чисто для поиграться в игрули/демки. Она весьма мощная для своих габаритов. Но, конечно, если для кого-то 3 тыр - это чудовищные деньги, то да, лучше не заморачиваться.
CodeMaster
19.02.2020, 21:32
В-общем, очень себе неплохой карманный бильярд (ой, что-то не то сказал). Посмотрите обзоры на ютубах. Стоит около 3 тыр.
Уже проходили это с Dingoo - поиграли и забыли. Этот проект интересен для тех кому своими руками интересно собрать.
Ежели хочется готового карманного Спектрума размером с пачку сигарет (даже меньше) и с экраном - берите наебеях прикольную хрень под названием LDK Game.
Чуть улучшенная Dingoo A320 десятилетней давности. Норм для своей до-андроидной эры, но готовые устройства, на которых нет логотипа Sinclair Research Ltd — это вообще не спортивно.
А вот это на ESP32 все таки не интереснее?
ZX-ESPectrum (https://github.com/rampa069/ZX-ESPectrum)
Features
VGA output, 8 or 16 bits.
Beeper digital output.
Accurate Z80 emulation.
Spectrum 16/48 achitecture emulation without PSRAM.
Spectrum 128/+2/+3 architecture emulation with PSRAM.
PS/2 Keyboard.
VGA OSD menu: Configuration, and architecture selection, ROM and SNA.
Tape save and loading.
SNA snapshot loading.
Internal SPIFFS support.
Work in progress
AY-3-8910 emulation and sound output with dedicated chip.
SD card support.
DivIDE emulation.
Dedicated motherboard design.
Joystick support.
USB keyboard.
OTA: Over the Air updates.
Это круто спасибо, не мобильный вариант но очень навороченный с 128 и AY,
жаль что только VGA и модули только с Psram подходят а они подороже будут.
Там у Zx-ESPectrum последний коммит 9 месяцев назад, как бы автор вообще не забил на это дело. А так то проект крутой, у ESP32 дофига портов, хватило бы и на экран по SPI да и на спекоклаву тоже. Может, фичареквест замутить?
Я для себя дисплейчик и Wi-Fi модуль отложил в корзину на али. Начал рисовать схему для создания потом печатки. Вот если что аналоги микросхем из проекта: CD4017 -> К561ИЕ8, CD4503 -> К561ЛН3, CD4081 -> КР1561ЛИ2.
Я свою схему дорисовал (https://github.com/atsidaev/quorum-8266/tree/master/schematics)
https://d.radikal.ru/d27/2002/24/f9e3dddfc055t.jpg (https://radikal.ru/big/2vik9svrewfdw)
https://c.radikal.ru/c41/2002/4b/1e25582ca6b0t.jpg (https://radikal.ru/big/nknx50rx1v9o5)
Добавил ещё и линии на тачскин. Все равно он тоже на SPI висит.
Ещё добавил поддержку расширенной клавиатуры. Правда, для линии её выбора не осталось нормальных GPIO, пришлось задействовать UART RX. Посмотрим потом, что важнее. Без неё будет работать просто с 40-кнопочной от Карабас-нано, с ней - с моей 88-кнопочной мини-клавой для "Кворума" (выложу её в свет, когда соберу и убежусь, что работает). По этому случаю обозвал свой проект Quorum-8266, впрочем, это пока условно, т.к. ещё не уверен, что хватит оперативы под теневое ОЗУ.
Остался свободным ADC. Не пропадать же добру, туда можно повесить вход магнитофона - с другой стороны, впрочем, будто он кому-то нужен в настолько эмуляторе.
По схеме. А где С9 и С10 на клавиатуру? Это через диоды выводы 9 и 11 первой CD4017.
По схеме. А где С9 и С10 на клавиатуру? Это через диоды выводы 9 и 11 первой CD4017.
Я хочу использовать нормальную 8x5 клавиатуру, а не авторский 10x4 самопал.
У andykarpov в Карабасе-нано всё уже сделано в подходящем форм-факторе
https://raw.githubusercontent.com/andykarpov/karabas-nano/master/docs/photos/revC-1.png
Нижнюю часть отпилить и готово.
Счетчикам же всё равно, что считать. Нужно будет только в коде поменять декодирование полученных с SPI данных. Ну и в случае использования расширенной клавы добавить опрос дополнительных бит D0*-D5*.
Посмотрел все файлы проекта. Не нашёл сам файл для прошивки Wi-Fi модуля. Ещё вопросик (я кроме ESP под Специалист/Радио не имел дело) - какой модуль использовать - этот (https://aliexpress.ru/item/32367355945.html?spm=a2g0o.cart.0.0.3ef23c00TGixyy&mp=1)?
Посмотрел все файлы проекта. Не нашёл сам файл для прошивки Wi-Fi модуля.
Это же ардуина. Надо открыть в IDE .ino-файл и нажать кнопку запуска, дальше оно само.
Ещё вопросик (я кроме ESP под Специалист/Радио не имел дело) - какой модуль использовать - этот (https://aliexpress.ru/item/32367355945.html?spm=a2g0o.cart.0.0.3ef23c00TGixyy&mp=1)?
Должен подойти, но, насколько я знаю, более каноничен NodeMcu на CH340, а не на CP210x.
Я же закладываюсь на "голый" модуль ESP-12F, с ним компактней получится, и можно запаять как SMD, в итоге лишние отверстия сверлить не придется. Ненавижу сверлить :)
Это же ардуина. Надо открыть в IDE .ino-файл и нажать кнопку запуска, дальше оно само.
Ну не совсем так. Там написано "Compiled using https://github.com/uli/Arduino_nowifi"
А по самой ссылке написано This is a modified Arduino core that uses the SDKnoWifi SDK, но для установки этого надо добавить в
board manager "http://arduino.esp8266.com/stable/package_esp8266com_index.json" который сам по себе обычный esp8266 для ардуины, а не "nowifi".
И, соответственно, не компилится из-за нехватки памяти :(
Выложите кто плиз hex готовый. А? Не охота с файлами мутить ради одного раза компилирования.
И вообще, когда уже сделают 128к со звуком, ili9341 И PS/2 КЛАВОЙ??!! Это же так логично! Клаву пс2 каждый может сделать как хочет под себя.
Ну не совсем так. Там написано "Compiled using https://github.com/uli/Arduino_nowifi"
А по самой ссылке написано This is a modified Arduino core that uses the SDKnoWifi SDK, но для установки этого надо добавить в
board manager "http://arduino.esp8266.com/stable/package_esp8266com_index.json" который сам по себе обычный esp8266 для ардуины, а не "nowifi".
И, соответственно, не компилится из-за нехватки памяти :(
Действительно. Там README ниже первого абзаца - это от оригинальной ESP8266 Arduino.
Даже замена оригинального 2.4.0 SDK на патченный в %APPDATA%\Local\Arduino15\packages\esp8266\hardwar e\esp8266\ проблему не решает - "Board nodemcuv2 (platform esp8266, package esp8266) is unknown"
Ну и проект, с какой стороны не подступись, везде проблемы :v2_dizzy_facepalm:
И вообще, когда уже сделают 128к со звуком
На 8266 никогда, памяти не хватит. Если только второй дисплей подключить и использовать его как RAM-over-SPI :)
Ну, примерно как здесь - https://habr.com/en/post/412325/
Вот кстати на нашем же форуме
ESPboy ZX48k & AY3-8910 emulator (ZX Spectrum on ESP8266 MCU)
https://zx-pk.ru/threads/31252-espboy-zx48k-amp-ay3-8910-emulator-(zx-spectrum-on-esp8266-mcu).html
На 8266 никогда,
И esp8266 и esp32 отлично открываются и перепаивается флешка вплоть до 25q128 -> 16 мегов.
(вот например моё же https://zx-pk.ru/threads/28973-retro-kompyutery-na-esp8266.html?p=982580&viewfull=1#post982580)
Ещё есть esp8285...
ESPboy
Там экран извращенский 128х128 :(
Да флеш память это никогда не проблема, имеется ввиду озу не хватит.
Короче вот до чего я дошёл. Главное, чтоб версия esp8266com стояла 2.4.0. Тогда на неё поверх записать файлы из "nowifi".
Потом поставить SdFat от greiman.
А "TFT_eSPI.h" должны быть версии 1.4.4 или 1.4.5, не последняя версия. Потом надо внимательно прочитать файл GlobalDef.h:
###### DON'T FORGET TO UPDATE THE User_Setup.h FILE IN THE LIBRARY ######
И поставить пины в User_Setup.h в библиотеке.
Тогда компилиться и даже в сериал дебажит следующее:
OpenLoaderSDK v1.3⸮
SAVE start
WRITE:
512
WRITE:
298
WRITE END END
WRITE OK
listfiles
0
11
Dizzy4.z80
Dizzy4_.z80
RpZ.z80
rZpspp.z80
И даже создаёт 3 файла небольших на флешке. (Кстати флешка у меня class 2 всего).
Но добиться хоть чего-то от экрана не удалось. Горит белым и всё.
(Готовый bin я шил esp_flash_tool т.к. хз почему не находит esptool.exe из ардуины самой)
Есть какие мнения?
Есть!!! Скомпилилось и работает!!! Терпение. Скоро напишу рецепт!
Значит так. Оказывается несложно там.
1. Ставим esp8266 версию 2.4.0
2. Поверх кладём файлы из "no wifi"
3. Запускаем ардуину, ставим SdFat от greiman.
4. Ставим "TFT_eSPI" версии 1.3.8 или ниже.
5. Исходники эмулятора можно вообще не трогать ни байта, а вот "User_Setup.h", где пины, должен выглядеть так:
#define TFT_CS PIN_D1
#define TFT_DC PIN_D4
#define TFT_RST -1
(прикол в том, что пины так и нумеруются "PIN_Dx". Не "Dx", как обычно..)
6. По железу. Забудьте про ламерские проводочки. Всё должно быть припаяно!
7. На ресет экрана нафик не надо отдельный выход. Цепляем его к ресету 8266.
Ну и вот готовый bin. Шить в DIO mode (во всяком случае для nodeMCU так).
Клаву ещё не городил. Почему-то не работает "//simulation of zx keyboard from serial data", а жаль.
Хотелось бы проверить сначала с таким костылём.
Для начала норм :v2_dizzy_roll:
Ну и вот готовый bin. Шить в DIO mode (во всяком случае для nodeMCU так).
А вот здесь (https://mikrotok.ru/nodemcu-esp8266-%D0%BA%D0%B0%D0%BA-%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D 1%82%D1%8C-%D0%B8-%D0%BF%D1%80%D0%BE%D1%88%D0%B8%D0%B2%D0%BA%D0%B0/) вроде описывается такой режим прошивки?
А вот здесь вроде описывается такой режим прошивки?
Да, именно.
Во вкладке config просто файл bin по адрессу 0х0.
Скорость ставьте спокойно в мегабит. (921600) остальное как на скрине.
Ещё можно так (http://iot-bits.com/esp32/esp32-flash-download-tool-tutorial/).
Кнопки flash + reset, потом ресет отпускаем, затем флэшь отпускаем. Он ждёт прошивки. После ресетнуть.
Размер экрана, как выше было сказано, не имеет значения. Главное spi ili9341. У меня 2.2" без тача.
Вот есть версия для дебага ТОЛЬКО! Притормаживает и отключена обычная клава, зато через терминал
или саму ардуино serialmonitor можно управлять с клавы с компа. Все кнопки-цифры можно слать плюс:
`\` = enter
"|" = menu
ещё есть кнопки "< и >", "!" - kempston left, "@" - kempston right, "#" - kempston up, "$" - kempston down, "%" - kempston fire2, "^" - kempston fire
Для оценки сойдёт. Тормозит из-за serial.available. В нормальной версии будет быстрее.
Вообще выглядит вполне хорошо. Претендент номер один пока для реализации в корпусике.
Разводил плату под ЛУТ, но на двадцатом переходном отверстии стало ясно, что проще на макетке :) Собрал, в общем.
Почему-то оба моих 2.8" дисплея показывают лишь чередующиеся серые и белые вертикальные полосы толщиной в 1 пиксель. Я когда их купил, проверял на Arduino Uno и они вели себя так же, но тогда я это списал на то, что Uno пятивольтовая, а дисплей к 5V не толерантен.
С ESP8266 такой проблемы быть не должно было, однако ж всё равно не работают. Что удивительно - они у разных продавцов куплены, так что вряд ли это брак.
А у меня было такое, до того как заработало.. Ресет экрана точно к ресету esp подключен?
71641
D1-tft_cs
D2-sd_cs
D3-
D4-tft_dc
Вот и все подключения. Без клавы не нужно использовать ни одной микросхемы дополнительной, оба spi вместе (экран и карта).
Более того, для теста sd карта тоже не нужна: miso, mosi, clk, dc, cs от экрана и ресет на ресет. И уже должно быть заветное "(c)1982..."
(Подозреваю, что и miso даже не надо! Ничего из экрана не читается.)
В дисплее есть свой конвертер 5->3.3 и его надо закоротить (обычно J1), т.к. у нас всё идёт на 3.3.
Там на обратной стороне дисплея толи место под 7805 мелкий, толи под перемычку бывает, я с таким сталкивался когда делал всякие karadio на esp8266 и esp32.
Там на обратной стороне дисплея толи место под 7805 мелкий, толи под перемычку бывает, я с таким сталкивался когда делал всякие karadio на esp8266 и esp32.
Да, J1, я её закоротил. А до этого и 5V подавал на VCC - всё без толку.
А у меня было такое, до того как заработало.. Ресет экрана точно к ресету esp подключен?
Точно, при нажатии "лесенка" из полосок с экрана пропадает.
Попробовал запустить пример из либы AdaFruit_ILI9341, который регистры экрана читает. На выходе всё вперемешку с мусором, и каждый раз - с разным. Погляжу сегодня логическим анализатором, что там на SPI творится.
- - - Добавлено - - -
Ах ты ж наука о контактах! :D
https://d.radikal.ru/d37/2002/2b/1b0c4f6d0010.png (https://radikal.ru)
DC убежал на GPIO15 вместо GPIO2 :o
Ах, руки чешутся... Но я хочу сделать на печатке. Сейчас закажу дисплей и модуль. Раздобыл точные данные по печаткам шилда и ESP-12F.
Если расположить печатную плату под TFT шилдом, то на ней можно расположить все детали. Вот начал делать печатку.
Нижний разъём - под клавиатуру. Использована панель на 2,4 дюйма. Размер шилда - 77,18 на 42,72 мм.
71657
https://ae01.alicdn.com/kf/HTB19j0ejHsTMeJjSsziq6AdwXXaB.jpg
Все-таки не понимаю ажиотажа вокруг этого девайса. Был бы 128+AY+TR-DOS - другое дело, но это - смысл?
Если расположить печатную плату под TFT шилдом, то на ней можно расположить все детали. Вот начал делать печатку.
Я доразводился вот до такого состояния. 100x60. Всё было хорошо, пока не дошел до добавленных мной для поддержки расширенной клавиатуры мультплексоров, переходные отверстия поперли на каждый чих. Доразведу потом, но уже с прицелом на заводское производство платы, а не ЛУТ.
https://b.radikal.ru/b27/2002/b1/eb80472b2c17.png
Потенциально сможет работать с 2.2", 2.4", 2.8". Ну, если в размерах нигде не накосячил, они все с каких-то сомнительных источников взяты.
- - - Добавлено - - -
ажиотаж
Слишком громкое слово для 14 звезд на GH и троих заинтересованных форумчан :)
Слишком громкое слово для 14 звезд на GH и троих заинтересованных форумчан :)
4-x
4-x
Точно :) И еще пара человек на hackaday пытались хотя бы скомпилять.
Маловато для ажиотажа. Не NEXT :)
У проекта настолько странные тайминги всего, что я не очень понимаю, как он вообще работает.
1. Крутим не глядя проц на 50 тыщ тактов.
2. Смотрим, нет ли прерывания. Если есть - пересылаем его процессору.
3. Повторяем п. 1
В процессе выполнения пункта 1 крутим ещё пустые циклы на глазок, чтобы не работать уж слишком быстро :v2_dizzy_facepalm:
А в фоне по прерыванию работает отрисовка экрана с частотой... 10 кадров в секунду :)
Но вообще экран может общаться по SPI на огромных частотах - стабильно запустился у меня на 120 МГц, да и на 160 Мгц лишь артифачит при касаниях.
При условии, что занимаемся только экраном, нам потребовалась частота бы всего в 320 * 240 точек * 16 бит * 50 кадров = 61 мегагерц
Понятно, что накладные расходы, проц, клавиатура etc съедят ещё столько же. Но наших 160 МГц должно быть с запасом.
Перепилил главный цикл и прерывания, добился 50 Герц. Но пиксельной точности всё же не будет: SPI у ESP8266 может отсылать сразу по 16 32-битных слов, в них влезают 32 точки. Поэтому вместо обычного спектрумского чередования один такт CPU - одна точка экрана, нам приходится чередовать 32 точки и 32 такта процессора. Самые злые мультиколоры в демах уплывут. Но о демах ли нам думать с 48 килобайтами ОЗУ? :) А сделанные на "нирване" игры вроде бы должны работать.
Убил неделю, добился 50 Герц. Точнее, мне казалось, что добился. А потом заметил, что при разгоне c 80 МГц до 160 МГц частоты системных таймеров почему-то не удваиваются :v2_dizzy_facepalm:
А с правильными делителями снова в один фрейм отрисовка не укладывается. Копаем дальше.
Архитектура у ESP8266 такая, что у него случаются непредсказуемые тормоза из-за того, что код перед исполнением должен быть скопирован в кэш инструкций. Причем, эти тормоза прозрачны для программиста, и отлавливать их жутко муторно.
Что только эти студенты не придумают, лишь бы не доплатить 100 руб за ESP32 :)
Что только эти студенты не придумают, лишь бы не доплатить 100 руб за ESP32 :)
Да ну челлендж же. Весь наш ретрокомпьютинг - это челлендж на то, чтобы делать что-то в жестких аппаратных ограничениях.
доплатить 100 руб за ESP32 :)
Во, на ESP32 надо делать вот на такой платформе: https://aliexpress.com/item/4000527495064.html
Экран 160x80, должно быть относительно читаемо. Кемпстон замаппить на акселерометр, клаву прицепить как-нибудь через wi-fi :)
Тогда хоть какая-то интересность появляется.
Да ну, разрешение же никуда не годится. Есп32 должна тащить полноценный пиксель-в-пиксель экран с бордером.
порты можно дергать ?
Там ног свободных не осталось
ну те которые есть, наверное можно подергать из бейсика
poke out
Я не понял, экран у автора сенсорный но сенсор не задействован ?
И до какой частоты можно разогнать виртуальный z80?
ну те которые есть, наверное можно подергать из бейсика
Нельзя. Почему "наверное"? Тут не наверное, тут конечно нельзя. По ним экран подключен и клава, как вы их дергать будете? Да и порты Z80 же не адруинка, где ноги дергаются.
Я не понял, экран у автора сенсорный но сенсор не задействован ?
Нет, а как? Использовать как эмулятор светового пера в пяти предназначенных для этого программах?
И до какой частоты можно разогнать виртуальный z80?
При полностью отключенном экране я получал 18 мегагерц.
Прекрасно!
А если не отключать экран ?
b это где-то описано как частоту поднять ?
А если не отключать экран ?
Если не отключать, то даже 3.5 MHz не вытягивает. Надо кадры скипать.
это где-то описано как частоту поднять ?
Ну в оригинальной версии надо вырезать вот это недоразумение (https://github.com/aldolo69/esp8266_zxspectrum_emulator/blob/master/source/z80.c#L717)
Но там фреймрейт всего 10 fps.
Но там фреймрейт всего 10 fps.
А если ESP8266 разогнать до 160МГц ?
будет около 7МГц
Очень скромно конечно...
А если ESP8266 разогнать до 160МГц ? будет около 7МГц
А она и так на 160 МГц
Штатная 80МГц у модулей
а 160МГц негарантируемый предел
Прошивка выставляет 160?
Прошивка выставляет 160?
В самой ардуино-среде галочку в менюшке перещелкнул и готово
Да и сама прошивка пытается (правда, на этом этапе работы это уже бесполезно):
https://github.com/aldolo69/esp8266_zxspectrum_emulator/blob/master/esp8266_zx_emulator_marat.ino#L70
А у себя я через Makefile сделал - https://github.com/atsidaev/quorum-8266/blob/master/firmware/Makefile#L28
Спасибо.
Что-то как-то слабоватенько для 160МГц
Могли бы и DMA сделать для SPI в ESP8266
Ну почему везде какое-нибудь да говнецо
А зачем эти разговоры про разгон процессора? Вы как потом будете на компьютере работать?
А зачем эти разговоры про разгон процессора? Вы как потом будете на компьютере работать?
Никак, зачем работать? Теоретический спектрумизм, спектрумистим коня в вакууме!
Каком компьютере ?
И что с ним может случится после разгона ?
Каком компьютере ?
И что с ним может случится после разгона ?
Ну, к примеру, нажмете вы J, и ещё не успеете отпустить, как полэкрана забьется повторяющимся LOAD.
krikunoff
20.06.2020, 16:46
Здравствуйте! Подскажите может кто встречал схему шилда для Спектрума на ESP8266 с подключением клавиатуры и телевизора?
А в этой теме Вас что не устраивает? Отсутствие подключения к телевизору (как бы клава уже есть)? Тогда можно глянуть здесь (https://zx-pk.ru/threads/28973-retro-kompyutery-na-esp8266.html).
krikunoff
26.06.2020, 15:34
А в этой теме Вас что не устраивает? Отсутствие подключения к телевизору (как бы клава уже есть)? Тогда можно глянуть здесь (https://zx-pk.ru/threads/28973-retro-kompyutery-na-esp8266.html).
Мне бы хотелось полноценную PS/2 клаву и подключение к телевизору или VGA монитору, а такое мне не попадалось
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot