Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пн мар 24, 2025 17:24

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 68 ]  На страницу Пред.  1, 2, 3, 4, 5
Автор Сообщение
 Заголовок сообщения: Re: Консольные войны Z0Z5
СообщениеДобавлено: Вт фев 04, 2025 01:38 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 8001
Благодарил (а): 26 раз.
Поблагодарили: 144 раз.
А вот интересно, внешняя SRAM для видеобуфера считается соответствующей правилам?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Консольные войны Z0Z5
СообщениеДобавлено: Вт фев 04, 2025 12:45 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 543
Откуда: Москва
Благодарил (а): 58 раз.
Поблагодарили: 28 раз.
Hishnik писал(а):
А вот интересно, внешняя SRAM для видеобуфера считается соответствующей правилам?
Да, безусловно. Категорически приветствуются любые реализации. Мы не приемлем миропорядок, основанный на правилах :D


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Консольные войны Z0Z5
СообщениеДобавлено: Вт фев 04, 2025 22:22 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 543
Откуда: Москва
Благодарил (а): 58 раз.
Поблагодарили: 28 раз.
Что-нибудь попроще. Гоголь-дино с Ардуино, например:
https://github.com/flaki/arduboy-rund-ino/blob/master/rund/rund.ino - исходник
https://felipemanga.github.io/ProjectABE/?hex=https://raw.githubusercontent.com/eried/ArduboyCollection/master/Arcade%2FChrome%20Dino%2FChrome%20Dino.hex - в эмуляторе
Тут вообще можно почти не переделывать, т.к. исходник не слишком сильно обмазан объектно-ориентированным программированием. :)


Вложения:
dino.png
dino.png [ 793 байт | Просмотров: 1224 ]


Последний раз редактировалось Total Vacuum Ср фев 05, 2025 23:32, всего редактировалось 1 раз.
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Консольные войны Z0Z5
СообщениеДобавлено: Вт фев 04, 2025 22:28 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 543
Откуда: Москва
Благодарил (а): 58 раз.
Поблагодарили: 28 раз.
В моем форт-процессоре на полутора мегагерцах отлично работает.
Можно поиграть в Starter Kit: http://totalvacuum.ru/BATTLE/dino.bit
Качество фоток по старой доброй традиции позорное, вживую намного лучше.


Вложения:
dinof44.jpg
dinof44.jpg [ 10.6 Кб | Просмотров: 1224 ]
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Консольные войны Z0Z5
СообщениеДобавлено: Вт фев 04, 2025 22:40 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 543
Откуда: Москва
Благодарил (а): 58 раз.
Поблагодарили: 28 раз.
Ну и для Irbis Forth за компанию, т.к. другого Форта с графикой под рукой не оказалось: http://totalvacuum.ru/IRBIS/dino.zip
В архиве оригинал исходника с Ардуины (rund.ino), переделанный исходник для трансляции в Форт (dino.c, убрал из шапки все #include и добавил реализацию нужных функций и заглушки для не особо нужных), результат трансляции в Форт (dino.f), батник для перекомпиляции примера (rebuild.bat), а также зачаточный вариант препроцессора Си (ucp.exe) и сам транслятор (uc.exe)
Слова IMAGE.BOX и С, с наскока не заработали. Первое хотел использовать для очистки экрана, а второе для инициализации массивов, так что в коде рабоче-крестьянский вариант через попиксельную заливку и C!
Ах, да, подключаемый файл с реализацией сишных примитивов (c.f) должен лежать в одной папке с irbis.exe, иначе ругается и не работает. А прыгать пробелом.


Вложения:
dinoirbis.jpg
dinoirbis.jpg [ 39.58 Кб | Просмотров: 1224 ]
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Консольные войны Z0Z5
СообщениеДобавлено: Ср фев 05, 2025 23:07 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 543
Откуда: Москва
Благодарил (а): 58 раз.
Поблагодарили: 28 раз.
Flappy Bird теперь тоже летает. Как в прямом, так и в переносном смысле. :)
Взято отсюда: https://github.com/ingegno/RetroGames/blob/master/ArduinoFlappyBird_NL/ArduinoFlappyBird_NL.ino

Кстати, такие вот портирования абсолютно левых программ от разных людей - это очень полезная в хозяйстве вещь, как оказалось. Оно помогает искать ошибки в компиляторе (уже отловил парочку и исправил), а также постоянно тыкает носом в еще не реализованный в компиляторе функционал. :)

И забавное наблюдение: мой шрифт 6x8 (взято когда-то давно уже и не вспомню где), оказывается, в точности совпадает со шрифтами 6x8 для Dr.Mario под UzeBox и Dino под Arduboy :)


Вложения:
flappy.jpg
flappy.jpg [ 4.27 Кб | Просмотров: 1141 ]
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Консольные войны Z0Z5
СообщениеДобавлено: Сб фев 22, 2025 19:40 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 543
Откуда: Москва
Благодарил (а): 58 раз.
Поблагодарили: 28 раз.
Dino и Flappy Bird в браузере:
http://totalvacuum.ru/BATTLE/dino.htm
http://totalvacuum.ru/BATTLE/flappy.htm
Вместо традиционной консоли Форта там Еdit, в котором уже вставлен скомпилированный транслятором Си-в-Форт код, запуск по нажатию Run. Dino вообще без проблем в браузерной версии Форта работает, а Flappy Bird немного пришлось подправить, т.к. браузер не любит, если в коде встречается вечный цикл, который ждет чего-нибудь, например, нажатия кнопки. Но в остальном сишный код не трогал, просто добавил в шапке реализацию некоторых использованных в коде библиотечных функций и затычки для тех функций, без которых пока можно обойтись. Оригиналы под Ардуино тут:
https://github.com/flaki/arduboy-rund-ino/blob/master/rund/rund.ino
https://github.com/ingegno/RetroGames/blob/master/ArduinoFlappyBird_NL/ArduinoFlappyBird_NL.ino
В телефоне работать не будет, но можно дописать
Код:
: "ontouchstart" 1 key ! ;
: "ontouchend" 0 key ! ;
Хотя в телефоне играть - сомнительное удовольствие, т.к. он норовит при каждом нажатии поменять масштаб.
Можно очки в Flappy Bird вывести (например, каждые 100мс):
Код:
: 100 clr "score:" . score @ . ;


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Консольные войны Z0Z5
СообщениеДобавлено: Чт мар 06, 2025 14:41 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 543
Откуда: Москва
Благодарил (а): 58 раз.
Поблагодарили: 28 раз.
Доктор Марио для коллекции:
http://totalvacuum.ru/BATTLE/drmario.htm
Скомпилировал под свой браузерный Форт на скорую руку, кое-где пришлось сишный код поменять, чтобы убрать из кода длинные циклы. Отличий в поведении от оригинала с UzeBox почти нет, за исключением вывода чисел (у них десятичные, а у меня hex, лень было переделывать) и почему-то не подбрасывает сопернику "мусор", если за раз собрать 2 или больше линий.
Форт-код накомпилировался жирный, почти 500Kb, но там из 25K строк кода собственно код программы занимает меньше 1000 строк, а все остальное - инициализация массивов с картинками, которые почти в неизменном виде взяты из оригинальных исходников и подключаются через #include. Причем картинки в формате байт на точку, хотя вполне достаточно 2 бита.
А, например, в версии под Форт-процессор для Spartan-3E Starter Kit все это безобразие в скомпилированном виде весило 16Kb: 8Kb картинки (3 бита на точку) и 8Kb код программы.
Управление кнопками wasd. В телефоне не поиграть, но можно заставить его раз в секунду жать случайные кнопки, чтобы само с собой играло:
Код:
: 1000 rand button ! ;


Оригинал в эмуляторе UzeBox для сравнения:
https://nicksen782.net/UAM/APP_emu/emu.php?gameid=122

upd. И за компанию заготовка под Irbis. Хотя это лишь proof of concept, а не полноценный порт игры, т.к. почему-то не работают вложенные конструкции switch (вложенность убрал, но в причинах пока не разбирался), управление кривое (вот бы заиметь событие onkeyup) и иногда может зависнуть (сложность лучше не увеличивать). Управление wasd.
http://totalvacuum.ru/IRBIS/drmario.zip


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 68 ]  На страницу Пред.  1, 2, 3, 4, 5

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB