Просмотр полной версии : ESPboy ZX48k & AY3-8910 emulator (ZX Spectrum on ESP8266 MCU)
В прошлом году спроектировал и собрал девайс ESPboy на микроконтроллере ESP8266 в качестве развлечения
подробное описание на hackaday (https://hackaday.io/project/164830-espboy-games-iot-stem-for-education-fun)
71201
Александр, который Shiru, сделал для девайса удивительное:
эмулятор спекки 48к
https://www.youtube.com/watch?v=706eqjNm-x8
эмулятор AY-3-8910 через доп.модуль DAC
https://www.youtube.com/watch?v=zYsDjjNx5j0
Получилось прикольно :)
не смотря на то, что экранная клавиатура имеется, в дополнении можно пристыковать отдельную, с полным набором клавиш.
и даже с подсветкой :)
с микроскопом, при большом желании, можно на бейсике кое что написать.
ну и в многокнопочные игры без проблем играть.
позже еще сделаю поддержку bluetooth клавиатур. есть портативные, маленькие. должно быть более-менее удобно.
https://www.youtube.com/watch?v=1jOmfhBrPog
andykarpov
09.01.2020, 22:04
Получилось прикольно
Круто! Только я не совсем понимаю, экранчик 128х128, получается, что не все спектрумовские пиксели видно?
Круто! Только я не совсем понимаю, экранчик 128х128, получается, что не все спектрумовские пиксели видно?
интерполяция 1/2. с читаемостью текста проблема, а в играх ничего так, своеобразное сглаживание получается )
CityAceE
10.01.2020, 11:08
экранчик 128х128, получается, что не все спектрумовские пиксели видно?
Решал (https://zx-pk.ru/threads/21181-emulyator-zx-pilot-dlya-palm-os.html) аналогичную задачу, правда на экране 160*160, но зато с бордюром. Вполне себе всё видно:
http://pdasoft.0catch.com/Palm/emul/pic384.gif http://zx.pk.ru/attachment.php?attachmentid=3497&d=1153911175 http://zx.pk.ru/attachment.php?attachmentid=3498&d=1153911179 http://zx.pk.ru/attachment.php?attachmentid=3526&d=1154330460
С чем связано ограничение 128х128 точек? 320х200 было бы проще портировать игрушки, да и экранчик можно побольше было поставить (со зрением совсем беда).
Это загадка. Почему бы не взять экран, в который вписывается разрешение Спектрума, и почему бы не взять ESP32 WROVER, которого с запасом хватит на 128 спектрум? Надеюсь, не из-за экономии двух-трёх сотен, возможно есть весткие причины?
Ответ конечно есть. Простой и одновременно странноватый, как впрочем и вопрос )
Во первых эта фиговина делалась не для спектрума совсем, а для возни с IoT.
Спектрум к ней позже прикрутил Александр по приколу.
https://hackaday.io/project/164830-espboy-games-iot-stem-for-education-fun
Во вторых если уж ESP32, то там и до всяких АРМов уже не далеко, ОллВинеров, Рапсбери и прочих суперзверей.
Этот 8266 взят из любви к извращениям, изворотливости и возне с железками с ограниченными возможностями.
На 32м можно что угодно делать практически без всякой необходимости хоть что-то оптимизировать
В третьих "почему бы не взять" что угодно другое и не сделать что угодно третье.
Это может любой в принципе )
SoftLight
22.06.2020, 10:12
Именно для этой темы норм ответ - возьми да сделай. Но мне вот аналогично не понятно почему под esp32 так до сих пор и не нахожу полноценной реплики Спека 128. Ну и экран тут прям совсем ужасный. Годится только как демонстрации концепции.
Собственно оба утверждения вполне верны.
Действительно ESPboy не для реальных игр, а скорее для прикола и "повозиться с железом и софтом".
Тем более, что упрощенную схему на макетке можно собрать за 10 минут и оно вполне будет работать.
На мой так взгляд это справедливо для всех самоделок такого рода.
Вполне комфортная игра в ZX получается на старом добром PSP в эмуляторе. Сейчас они на ebay копейки стоят.
Поэтому заново извращаться никакого разумного смысла нет, только если душа просит )
Ну и да, действительно непонятно, почему до сих пор ни кто не запилил на esp32 полноценный zx128к или даже zs256 тем паче, что исходников ядер полно. Бери да портируй.
У меня есть мысли касательно того, как сделать эмулятор 128к и на ESP8266 не смотря на 80к ОЗУ (в реальности даже меньше).
Эмуляция AY на DAC уже есть https://www.youtube.com/watch?v=zYsDjjNx5j0
А с памятью можно так:
Хранить игру на встроенном flash и подгружать блоки скажем по 1к динамически в ОЗУ, замораживая те, в которых произошла запись...
Скорость конечно упадет, но теоретически должно работать на большинстве игр )
Если учесть, что в zx128 в играх страницы памяти переключаются на смене уровней или меню, а работа по записи в ОЗУ ведется локальными блоками в основном, то идея перестает казаться безумной.
А есть еще задача корректной обработки мултиколора.
Сейчас рендер сделан довольно просто и влоб и конечно с мультиколором творится полный трэш.
Это ли не вызовы?
Это ли не творчество через ограничения )
Может кто хочет попробовать или хотя бы поучаствовать в эксперименте? :)
Следующим шагом можно сделать анализатор использования памяти.
то есть сначала игру запускаешь в режиме анализа, где собирается статистика работы с памятью и создается карта работы с ней, карта сохраняется в отдельном файле. в потом уже при последующих запусках эмулятор сможет использовать данные анализа и заранее выделять блоки нужного размера и перебрасывать нужные куски из флэша в ОЗУ в правильное время (когда естественные игровые задержки происходят).
Это сделает работу эмулятора еще более оптимальной.
Ну и рекомпиляция спектрум кода в более оптимальный байт-код эмулятора тоже возможный вариант.
Вообщем смысл уже много лет не в том, чтобы "поиграть в спектрум игры", а именно в таких вот извращениях )
А кому поиграть, ну так нормальных девайсов миллион есть уже. На коленках лучше PSP хрен что соберешь.
Отвлеченный вопрос, но тоже может быть кому интересно касательно экрана
когда выбирал экран (а их было перебрано штук 30), то были такие требования
1. Доступность (можно "хотеть" экран любой, но в свободной продаже на али и ебее их не так уж и много)
2. Наличие всех SPI пинов (i2c не пойдет, он тормозной, а SPI не на всех есть нога CS-ChipSelect, а мне это важно)
3. Размеры под плату девайса (захотелось именно такой вот , причины исторические, может позже расскажу)
4. Небольшая цена (есть крутые OLED по цене в 10 раз больше, но на круг и так девайс стоит не мало, если не самому собирать на макетке)
5. Адекватное скорости ESP разрешение (есть такого же размера экраны более крутые IPS с разрешением 240х240 но как его рефрешить и найфига такая мелкотня при таких физических размерах и у него нет ноги CS)
так что экран - это результат многих компромиссов.
и опять же, девайс не для профессиональных игр )
так что экран - это результат многих компромиссов.
и опять же, девайс не для профессиональных игр )
https://aliexpress.ru/item/32960934541.html?spm=a2g0s.9042311.0.0.264d33edb9G YnL&_ga=2.221364504.1607553941.1592821286-1917992450.1590594321
CS есть, сам такой покупал.
Беглый поиск показал наличие желаемой самодельной железки на ESP32 с "правильным" экраном и встроенным DAC
https://hackaday.io/project/166707-esplay-micro
https://www.tindie.com/products/makerfabs/esplay-micro-open-source-esp32-game-console/
не говоря уже про вполне заводские Odroid Go )
Odroid Go
Цены конские :)
Беглый поиск показал наличие желаемой самодельной железки на ESP32 с "правильным" экраном и встроенным DAC
А LGE на них пойдет?
https://aliexpress.ru/item/32960934541.html?spm=a2g0s.9042311.0.0.264d33edb9G YnL&_ga=2.221364504.1607553941.1592821286-1917992450.1590594321
CS есть, сам такой покупал.
для моих целей он конски здоровый.
у вас какие то иные приоритеты и поэтому вам кажется, что "этот лучше".
нет, для моего проекта не лучше )
но ведь это отличный шанс сделать свой, с другими приоритетами
- - - Добавлено - - -
Цены конские :)
А LGE на них пойдет?
цены - штука субъективная.
вот в ESPboy вроде деталей на 12USD, а как начинаешь считать логистику, комплектацию, пайку, сборку, коробочки, пакетики, наклеечки, транспортировку и прочую фигню... не говоря уже про комиссии tindie, paypal, банков, потом налоги, растаможка и вообще геморрои с таможней (у меня например арестовали 10штук и отправили в фсб на экспертизу, уже два месяца делают. потому, что прочитали в одной из статей, что там в одном из модулей криптошифрование)
а собственно еще есть затраты на доменные имена, хостинг сайта под форум и отдельного сервака под прошивки для онлайн обновления, поддержка всего этого добра, r&d всего проекта, маркетинг и прочее...
это я свой собственный труд вообще не расцениваю, беготня на почту, переписки и прочая суета, хотя если по рыночным ценам посчитать, там еще три цены сверху получившейся надо набрасывать )
я например не понимаю, каким образом китайцы умудряются продавать некоторые свои девайсы за сущие копейки
https://pocket-go.com/
у меня даже при всей не малой цене, которая вышла, я все равно смотрю на все это, как на весьма не дешевое хобби за свои собвтенные деньги...
LGE не компилял под ESP32 потому, как целевой платформой все же ESP8266 является.
Об этом нужно говорить с Игорем, который автор https://hackaday.io/project/164205-esp-little-game-engine
или форкать исходники ESP эмулятора и их править, там лицензия это позволяет https://github.com/corax89/esp8266_game_engine
Теоретически не много переделок будет. Камни сильно похожие.
я например не понимаю, каким образом китайцы умудряются продавать некоторые свои девайсы за сущие копейки
Вы один бегаете, а их много и скорее всего за рис.. :) Массовое производство + минимум качества.
LGE
LGE интересная штука, еще бы в массы продвинулась.
Я так для души.. хотел игрушки "по портировать", да и ретро концепции проверять на LGE наверняка проще. (на ПЦ не интересно) :)
Единственное как раз разрешения не хватает, да и для играбельности экранчик побольше.
китай сегодня уже совсем не тот, что даже 10 лет назад.
там люди в массе своей за рис не работают ) именно в массе своей.
да экономия на еде для развития производственной инфрастрктуры (у них именно производственная инфраструктура, со станками, современнейшим оборудованием, помещениями, электроснабжением, канализациями, дорогами и прочим таким) - это так же не реально, как наэкономить на завтраках на новый майбах
иные механизмы экономики.
очень мощная гос.поддержка и ежегодные трилионные инвестиции в развитие производств, обучения людей, продвижения услуг.
у нас то все больше махание флажками и строительство газовых трубопроводов через моря да ракетных стратегических атомоходов.
никому не охота заниматься всей этой мелочной суетой и мелкими людишками )
да и не умеют.
LGE штука клевая https://corax89.github.io/esp8266Game/index.html
, но пока что более-менее массовый отлаженный девайс под него - это мой
в упрощенной версии под макетку (там всего несколько деталей) и в полной. со схемами, описаниями, видео и прочим.
у Игоря тоже есть свой вариант железки похожий, но он его бросил развивать, когда мой появился.
Но тоже можно легко собрать на коленке.
за разрешение вы зря переживаете.
наиболее массовая fantasy console - pico8 https://www.lexaloffle.com/pico-8.php именно с таким разрешением
вещи делаются уникальные и тысячами
еще другая массовая (кстати конвертер кода есть под LGE но не все фичи правда поддерживает) - bitsy с таким же разрешением
https://ledoux.itch.io/bitsy
не смотря на примитивность, более 2000 игр наклепали уже https://itch.io/games/tag-bitsy
вот список известных фентезийных консолей
https://github.com/paladin-t/fantasy
там много у кого 128х128, а есть еще меньше
кстати там можете подобрать что-то удобное для прототипирования подходящего вам разрешения
у известных мировых Arduboy, Gamebuino, Pokitto тоже меньше моего разрешение, а игрушки попадаются наиувлекательнейшие
https://arduboy.ried.cl
[https://gamebuino.com/creations
https://www.pokitto.com/games/
да что говорить, на древнем CHIP8/SCHIP все еще шедевры попадаются https://johnearnest.github.io/chip8Archive/
так что разрешение - это скорее предрассудки )
если есть интерес к LGE - попробуйте https://corax89.github.io/esp8266Game/gamelist/index.html
и если действительно что получаться начнет, я вам в подарок пришлю экземпляр своего девайса, как у таможенников арестованные отобью. в рамках программы поддержки разработчиков )
Игрухи с вашего позволения попадут в общий репозиторий LGE на сайте LGE IDE и в набор ESPboy эмулятора, который по умолчанию заливается во все заказанные на tindie.com консоли и в онлайн ESPboy AppStore ).
документация на LGE приличная, примеров довольно много уже http://segamiga.com/esplge/doc/#/
в Discord чате и форуме поддержка от разработчика и сочувствующих гарантирована https://discord.gg/fNnXzUg
А то кроме Игоря, который уже штук 20 игрушек сделал и одной простенькой от француза - больше нет желающих.
Хотя IDE вполне удобный и не сложный.
за разрешение вы зря переживаете.
Просто все что у меня есть готового для переноса расчитанно на разрешение 320x200, я имею в виду, что будут сложности с переносом карт, лабиринтов.
Некоторые места критичны (размеры тайлов 8х8) просто масштабировать не получится (320/128=2.5) в проходах будет застревать.
Нужно пробовать.
- - - Добавлено - - -
Все детали у меня есть, соберу на макетке.
расчитанно на разрешение 320x200.
просто отображаться будет меньше тайлов на экране и это может потребовать некоторой корректировки игровой механики
но парни на pico8 вполне выкручиваются
к примеру прекрасная celeste https://www.lexaloffle.com/bbs/?tid=2145 была прототипом на pico8 а потом перекочевала на кучу платформ и не сильно по дороге поменялась )
Да будет много ручной работы, просто конвертнуть не получится. Но в некоторых картах уменьшать количество тайлов не получится поскольку все они значимы, единственный вариант выводить экран в битмэп, масштабировать, разбивать на нужное кол-во, дорабатывать напильником :)
Для развлечения собрал на макетке эту игрушку по схеме 3.1, без клавиатуры только с 8 кнопками.
С актуальным софтом с гитхаба https://github.com/ESPboy-edu/ESPboy_ZX48_LinKeFong не работал выбор файла из списка.
Пришлось повесить выбор файла на кнопку PAD_ACT:
if (myESPboy.getKeys() & PAD_ACT)
{
strncpy(fname, &namesList[file_cursor*sizeof(filename)], fname_len);
break;
}
Решил добавить в список свои любимые игры, но три игры на этом эмуляторе не заработали:
https://www.planetemu.net/rom/sinclair-zx-spectrum-z80/r-type-1988-activision-8
https://www.planetemu.net/rom/sinclair-zx-spectrum-z80/green-beret-1986-imagine-software-22
https://www.planetemu.net/rom/sinclair-zx-spectrum-z80/hysteria-1987-software-projects-17
Хотя на других 48К эмуляторах эти игры работают.
Видимо где то баг, скорее всего при загрузке игры из файла.
Может кто посмотрит в чём дело?
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot