Comments 12
Спасибо за отличную работу и статью. Очень круто.
Хочу предложить в качестве варианта запуска ОС Embox.
Мы уже проделали большую работу в плане запуска графического стека на легких платформах (Разбираемся в особенностях графической подсистемы микроконтроллеров, Запуск Qt на STM32. Часть 2. Теперь с псевдо 3d и тачскрином) И конечно уже есть поддержка RISC-V RV32I (Добавляем в Embox новую платформу с архитектурой RISC-V , Embox дает (RISC)-пять на платформе VOSTOK)
Мне кажется лучше брать стабильные ядра, у вас уже есть SCR1. Можно в железе запустить, если вы этого еще не сделали. А если нужно ядро на чистом verilog, то лучше PicoRV32, там и коммунити побольше и он de facto стандарт в "e-fabless".
YRV это всетаки учебное ядро, и со слабым коммунити (((.
Понял, спасибо!
Запустить Ваш пример на на MIK32 (без SDL) не представляет труда, вопрос скорее был в экранчике. То есть, предлагается взять SPI экранчик с приемлемым разрешением, и добавить его поддержку в SDL и уже на него вывести?
*del
raycasting- есть уже довольно устоявшаяся терминология - трассировка луча называется
Мне тоже разанул ухо термин "отсечение лучей", просто не хотелось обижать автора, он добивается хороших результатов.

В 1994 году этот алгоритм был опубликован в книге Андре Ламота именно под таким названием.(вот на хабре еще есть про эту книжку https://habr.com/ru/articles/693660/) Других рускоязычных названий я не знаю. Можно использовать англицизм Raycasting, но мне почему-то сразу представляется супермен с лучами из глаз.
Raycasting (https://en.wikipedia.org/wiki/Ray_casting) это же сильно-сильно упрощенный алгоритм трассировки лучей ( raytracing - https://ru.wikipedia.org/wiki/Трассировка_лучей) (или один из множества алгоритмов трассировки лучей). А так как в данном случае речь идет о 2D алгоритме рускоязычное название на мой взгляд очень удачно(да и просто, спустя столько лет, мне книжка нравится).
А как различать между собой разные алгоритмы трассировки лучей?
Андре Ламота американец, термин в 1994 году придумал переводчик этой книги. А трассировка лучей действительно понятие рястяжимое, различия скорее в пространственной группировке (классическая растеризация полигонов - тоже в каком то смысле трассировка лучей, с особым упорядочиванием). Давайте замнём тему, пусть будет как есть.

В 2023 году, аккурат на тридцатилетие Doom, запускал его на Марсоход3. Из готового/чужого только сам Doom и riscv ядро picorv32. Весь дизайн, ядро + самописная периферия (контроллер клавиатуры, spi-flash, SD card, frame buffer, dma, sdram, cache) заняли меньше 5000 ячеек (10% от max10). В OMDAZZ тоже влезть должно, но там нет hdmi а VGA однобитный.
В 320х200 выдавало чуть больше 10фпс. Причем добрую треть времени тратит на софтовое преобразование из палитры в 16 бит.
Больше всего времени убил на подобие libc. Но все равно закостылить десяток функций которые использует Doom, оказалось проще чем собрать newlib под самодельный soc…
HDMI на OMDAZZ у меня есть. Если ссылка на репу есть, то запущу, )) и инструкцию напишу, тем более что всеравно хотел picoRV32 на OMDAZZ сделать
Когда хочется портировать старые игры, но нет ни сил, ни времени: запускаем отсекатель лучей на RISC-V RV32I