сделал такое один отчаянный парень из Франции. но через такие дикие извращения, что я не стал идею развивать ) не люблю я магию, да и квалификация низковата для такого. стараюсь все делать на уровне школьного курса С/С++ и официальной документации, без реверсинжениринга и извращений )
но у меня при компиляции внутри каждого основного кода добавляется еще код AppStore, который запускается, если стартануть консоль с зажатой кнопкой А или Б и таким образом всегда по OTA можно прошивку обновить, выбрав нужное из списка, если конечно доступен WiFi. потому, что каталог и приложения конечно же тоже из сети подгружаются и если я туда чего-то добавляю, у всех пользователей оно становится тоже доступно
можно в моих исходниках ESPboy на Github поглядеть, как я рендерю быстро. в последней реализации рендера GB эмулятора, например, так вообще используется рендер, который исключает простои шины SPI.
Но так приходится извращаться потому, что DMA нету. А если есть DMA, все гораздо проще, но тогда приходится кучу памяти тратить на буфер экрана. Но если рендерить вручную, то буфер экрана можно делать под любую удобную грубину цвета, экономя память, но на лету преобразуя построчно вывод на дисплей... еще есть методика слайсами рендерить и игру и ее потом на дисплей, имея размер буфера скажем 1/4 экрана или 1/8. вообще разные методики есть которые "не в лоб"
еще более свежее достижение - парни научились на ЧБ OLED рисовать градации серого и сделали под это библиотеку, https://community.arduboy.com/t/arduboyg-grayscale-library теперь новые игры делаются еще более крутые с учетом 4 полутонов и FX памяти
tindie.com запретил российским разработчикам публиковаться и paypal тоже всех залочил. на моем офф сайте www.espboy.com западным ребятам можно купить и они покупают. но я советую купить на Aliexpress копеечные детальки и на perfboard запаять согласно схемы с сайта. Или если что-то поприличнее, то взять Gerber DIY версию c easyeda.com и заказать у китайцев удобные готовые платки
в ESPboy есть слот расширения. штатную схему лучше не менять, чтобы сохранялась совместимость со всем стандартным ESPboy софтом, но в слот расширения я втыкал кучу разных экранов, есть на эту тему в Discord чате проекта в разделе Hardware отчеты с видео и фотками. поэтому решение - вставить нужный экран в слот расширения и в самом эмуляторе чуть поправить строку инициализации второго дисплея и функцию рендера
есть. через интернет прям с самого девайса с выбором в менюшке платформы, категории и прошивки. это и есть AppStore, который постоянно пополняется. на youtube в канале проекта кажись есть демонстрация старой версии без подкаталогов...
есть еще куча, например PlayDate, но еще более специфические
мой ESPboy может практически любой софт воспринимать от вышеперечисленных после перекомпиляции и небольших правок кода (а понаписано за последние годы для этих девайсов тонны всякого и комьюнити довольно активные, пришлось переделать основные их библиотеки под ESPboy), а для удобства загрузки приложений есть AppStore и WebAppStore, чего больше ни у одного проекта пока нет
а вообще еще больший перечень консолей на MCU тут:
на всех видео канала ESPboy одно и то же устройство, но в разных реинкарнациях. но все имеют одну и ту ж схему подключений, детали и соответственно совместимость
картинка интерполируется до 128x128
а в эмуляторе GameBoy есть выбор, обрезать края или тоже интерполировать
отличные планы! но esp8266 тоже кое что может )) почти все из перечисленного опробовано. можете брать мои исходники и адаптировать. а может захочется собрать ESPboy и опробовать фирменные AppStore/WebAppStore и фирменные IDE -- LittleGameEngine/MicoJS? ))
прекрасная статья, отличный проект! идея собственных консолей продолжает расширяться ) я свой тоже продолжаю ковырять )) https://www.espboy.com https://habr.com/ru/articles/558954/
собственно похоже я ее переместил в папочку поглубже, а этот сделал private. и так давно это было, что забыл. но поиск нормально работает кстати https://github.com/ESPboy-edu/ESPboy_Classes
сделал такое один отчаянный парень из Франции. но через такие дикие извращения, что я не стал идею развивать ) не люблю я магию, да и квалификация низковата для такого. стараюсь все делать на уровне школьного курса С/С++ и официальной документации, без реверсинжениринга и извращений )
но у меня при компиляции внутри каждого основного кода добавляется еще код AppStore, который запускается, если стартануть консоль с зажатой кнопкой А или Б и таким образом всегда по OTA можно прошивку обновить, выбрав нужное из списка, если конечно доступен WiFi. потому, что каталог и приложения конечно же тоже из сети подгружаются и если я туда чего-то добавляю, у всех пользователей оно становится тоже доступно
если рендерить по точкам, то это адски медленно
можно в моих исходниках ESPboy на Github поглядеть, как я рендерю быстро. в последней реализации рендера GB эмулятора, например, так вообще используется рендер, который исключает простои шины SPI.
https://github.com/xsrf/nbSPI
Но так приходится извращаться потому, что DMA нету. А если есть DMA, все гораздо проще, но тогда приходится кучу памяти тратить на буфер экрана. Но если рендерить вручную, то буфер экрана можно делать под любую удобную грубину цвета, экономя память, но на лету преобразуя построчно вывод на дисплей... еще есть методика слайсами рендерить и игру и ее потом на дисплей, имея размер буфера скажем 1/4 экрана или 1/8. вообще разные методики есть которые "не в лоб"
на Arduboy порядка 300 игр старой школы https://arduboy.ried.cl
штук 150 я портировал уже на ESPboy и потихоньку остальные добиваю
но последняя версия ArduboyFX имеет еще мегабайт флеша на борту и стали возможны игры совсем другого уровня, например https://community.arduboy.com/t/prince-of-arabia-fx
еще более свежее достижение - парни научились на ЧБ OLED рисовать градации серого и сделали под это библиотеку, https://community.arduboy.com/t/arduboyg-grayscale-library теперь новые игры делаются еще более крутые с учетом 4 полутонов и FX памяти
https://community.arduboy.com/t/untitled-grayscale-rpg-dev-log
https://community.arduboy.com/t/dark-under-ii
tindie.com запретил российским разработчикам публиковаться и paypal тоже всех залочил. на моем офф сайте www.espboy.com западным ребятам можно купить и они покупают. но я советую купить на Aliexpress копеечные детальки и на perfboard запаять согласно схемы с сайта. Или если что-то поприличнее, то взять Gerber DIY версию c easyeda.com и заказать у китайцев удобные готовые платки
в ESPboy есть слот расширения. штатную схему лучше не менять, чтобы сохранялась совместимость со всем стандартным ESPboy софтом, но в слот расширения я втыкал кучу разных экранов, есть на эту тему в Discord чате проекта в разделе Hardware отчеты с видео и фотками. поэтому решение - вставить нужный экран в слот расширения и в самом эмуляторе чуть поправить строку инициализации второго дисплея и функцию рендера
ота
есть. через интернет прям с самого девайса с выбором в менюшке платформы, категории и прошивки. это и есть AppStore, который постоянно пополняется. на youtube в канале проекта кажись есть демонстрация старой версии без подкаталогов...
еще можно через веб загружать https://espboy.m1cr0lab.com/demo/appstore/ через Arduino IDE и через tool от Espressif
на RP2040 есть подобная консоль. кажись в том году сделали
https://shop.pimoroni.com/products/picosystem?variant=32369546985555
основные проекты по этой теме в мире это:
www.arduboy.com
www.pokitto.com
www.gamebuino.com
ну и мой
4. www.espboy.com,
есть еще куча, например PlayDate, но еще более специфические
мой ESPboy может практически любой софт воспринимать от вышеперечисленных после перекомпиляции и небольших правок кода (а понаписано за последние годы для этих девайсов тонны всякого и комьюнити довольно активные, пришлось переделать основные их библиотеки под ESPboy), а для удобства загрузки приложений есть AppStore и WebAppStore, чего больше ни у одного проекта пока нет
а вообще еще больший перечень консолей на MCU тут:
https://github.com/oshaboy/awesome-indie-handhelds
а более крутых тут:
https://en.wikipedia.org/wiki/List_of_handheld_game_consoles
на всех видео канала ESPboy одно и то же устройство, но в разных реинкарнациях. но все имеют одну и ту ж схему подключений, детали и соответственно совместимость
картинка интерполируется до 128x128
а в эмуляторе GameBoy есть выбор, обрезать края или тоже интерполировать
спасибо!
часики прекрасны! а исходник доступен? хочу сконвертировать для своего мульти-девайса )
отличные планы! но esp8266 тоже кое что может )) почти все из перечисленного опробовано. можете брать мои исходники и адаптировать. а может захочется собрать ESPboy и опробовать фирменные AppStore/WebAppStore и фирменные IDE -- LittleGameEngine/MicoJS? ))
https://youtu.be/Us3U-DFOUJQ
https://youtu.be/fPyr4FFCSZI
https://youtu.be/qqwesfUvMiA
https://youtu.be/bzgAMhvfRJU
https://youtu.be/dR8sXnjZ5G4
прекрасная статья, отличный проект! идея собственных консолей продолжает расширяться ) я свой тоже продолжаю ковырять )) https://www.espboy.com
https://habr.com/ru/articles/558954/
и даже уже есть для самостоятельной сборки упрощенный комплект https://oshwlab.com/espboy/espboy-easy-v1_copy
собственно похоже я ее переместил в папочку поглубже, а этот сделал private. и так давно это было, что забыл. но поиск нормально работает кстати https://github.com/ESPboy-edu/ESPboy_Classes
не удалял, только что вот клацнул, вполне работает
когда статья писалась - работал. сейчас - нет )
Монументально конечно.
Вообще объем работы и то, сколько труда остается за кадром.
Вся история удивительно занимательная, особенно технические подробности и результат, не смотря на все трудности по пути!