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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 110 ]  На страницу Пред.  1 ... 4, 5, 6, 7, 8  След.
Автор Сообщение
 Заголовок сообщения: Re: Консольные войны Z0Z5
СообщениеДобавлено: Вс июн 08, 2025 14:59 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 637
Откуда: Москва
Благодарил (а): 61 раз.
Поблагодарили: 30 раз.
Конечно, скорость работы самого Бейсика очень низкая. В этом смысле интересна частота процессора 3KHz, т.к. на этой частоте на глаз выполняется примерно одна простая (let, poke) команда Бейсика в секунду. А это означает, что на простую команду тратится примерно 3K тактов. Аналогичная команда на Форте или Си займет тактов 8. А print "string" может занимать пару сотен тактов, но даже это капля в море в сравнении с 3K тактов. На частоте 763Hz красно-зеленый helloworld выполняется 3:35, а mario за 3:45. Если убрать предварительную очистку экрана, то получится 180 и 190 секунд соответственно.
А если эти же примеры дословно перевести на Си и скомпилировать
Код:
...
int r,g;

inline void test () {
   r = 57350; g = 57351;
   *(int*)57346 = 88; *(int*)57345 = 120;
   *(int*)57353 = 30224;
   *(int*)57347 = 16; *(int*)57348 = 16;
   *(int*)r =  1984; *(int*)g = 63551;
   *(int*)r =  4088; *(int*)g = 61447;
   *(int*)r =   416; *(int*)g = 61887;
   *(int*)r =  3000; *(int*)g = 60351;
   *(int*)r =  2524; *(int*)g = 59871;
   *(int*)r =  1920; *(int*)g = 59271;
   *(int*)r =  2032; *(int*)g = 65535;
   *(int*)r =   512; *(int*)g = 61503;
   *(int*)r =   576; *(int*)g = 57351;
   *(int*)r =   960; *(int*)g = 49155;
   *(int*)r = 14316; *(int*)g = 62031;
   *(int*)r = 16380; *(int*)g = 63519;
   *(int*)r = 16380; *(int*)g = 61455;
   *(int*)r =  3696; *(int*)g = 61839;
   *(int*)r =     0; *(int*)g = 58311;
   *(int*)r =     0; *(int*)g = 50115;
   *(int*)57347 = 252; *(int*)57348 = 8;
}

void main () {
   setup();
   while (1) {
      *(int*)PALETTE = 0b0000000000000100;
      cls();
      test();
   }
}
, то за вычетом очистки экрана время отрисовки на частоте 763Hz составит 3 секунды и меньше 1 секунды соответственно, т.е. Бейсик медленнее Си в 60 раз в первом случае и примерно в 200 во втором.

upd. Сделал быструю заливку, о которой писал постом ниже. На частоте 763Hz скомпилированный код (попеременная очистка экрана и рисование Марио) выполняется 100 раз в минуту. Т.е. 0.6 секунд на cls+Марио против 190 секунд в интерпретаторе. А значит разница не в 200 раз, а в 300 с лишним.


Последний раз редактировалось Total Vacuum Ср июн 11, 2025 13:25, всего редактировалось 1 раз.

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

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 637
Откуда: Москва
Благодарил (а): 61 раз.
Поблагодарили: 30 раз.
Что касается заливки экрана, то у меня еще есть ферзь в рукаве, просто пока не доделал :) В текущем исполнении для заливки экрана 256x192 кусками по 16 пикселов нужно 256*192/16=3072 записи в регистр 0xE007. В идеальном варианте, если предварительно записать по адресу 0 число 0xE007, то 3072 фрагмента кода 0 0 @ ! дадут 3072*4=12288 тактов. Т.е. не может быть и речи о том, чтобы даже в самом быстром варианте очистить экран за разумное время на сверхнизких частотах. А сейчас очистка сделана через цикл, поэтому она примерно в 2 раза медленнее в сравнении с быстрым вариантом.
Но я завел регистр FILL, будет достаточно записать в него нужное количество пикселов, после чего модуль VGA сам зальет цветом нужную область экрана. Тогда даже на частоте 763Hz будет летать.


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

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 637
Откуда: Москва
Благодарил (а): 61 раз.
Поблагодарили: 30 раз.
Total Vacuum писал(а):
P.S. Кто-нибудь знает, у какого серийного компьютера в природе самая низкая частота процессора? Мне пока нагуглился 1MHz в C64, но наверняка где-то должны быть и более низкие частоты.
Если верить этой статье https://en.wikipedia.org/wiki/Microprocessor_chronology, то самая низкая частота процессора 200KHz.
Если поискать по строке "MHz" в калькуляторном тесте с ферзями https://www.hpmuseum.org/cgi-bin/articles.cgi?read=700, то там минимальное значение 0.36MHz.
Наверняка есть более медленные процессоры, которые не попали в таблицы. И понятно, что если на входе поставить "кварц" на 10Гц, процессор может работать и на такой частоте. Но, вероятнее всего, на заре компьютеростроения ставили максимально возможную для процессора частоту (а иногда даже превышали ее, как, например, в Вектор-06Ц).
Поэтому будем считать, что самые медленные процессоры работали на частоте 200KHz.
А чтобы играть в более-менее нормальные игры, скорее всего, нужен был процессор с частотой ну хотя бы 1MHz. Взять тот же C64, который не был популярен у нас в стране. Там 1МГц и много игр наштамповано. А все прочие компьютеры/игровые консоли из тех, что более-менее на слуху, имеют более высокую частоту.
Поэтому если на частоте 100/200KHz заведется какая-нибудь приличная игра и/или Бейсик будет выглядеть достойно, победа будет безоговорочной :)

Кстати, по поводу Бейсика или Форта. Т.к. архитектура Гарвардская, сегмент кода для чтения/записи командами @/! недоступен, а значит невозможна и трансляция в нативный код процессора интерпретатором Бейсика/Форта. Это в текущем исполнении, если не вводить какие-то хитрые команды для работы с сегментом кода. Поэтому не стоит ожидать, что скорость работы кода в интерпретаторе сравняется со скомпилированным на стороне. Тем не менее, простор для оптимизации скорости работы текущей версии Бейсика огромный.


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

Зарегистрирован: Ср фев 06, 2008 16:29
Сообщения: 17
Благодарил (а): 8 раз.
Поблагодарили: 1 раз.
Цитата:
P.S. Кто-нибудь знает, у какого серийного компьютера в природе самая низкая частота процессора? Мне пока нагуглился 1MHz в C64, но наверняка где-то должны быть и более низкие частоты.

Встречал в какой-то книжке упоминание что в серии К145 был эмулятор Электроники 60. Там результирующая частота получалась катастрофически низкая, сотни Гц, емнип. Сейчас поиск выдает: https://kiloom.ru/spravochnik-radiodetalej/microsxema/k145ik1810.html и https://kiloom.ru/spravochnik-radiodetalej/microsxema/k145ik1809.html - частота 70-200 кГц.
https://forum.ixbt.com/topic.cgi?id=64:3394:4925#4925 - а тут обсуждение куда это собирались применять.



За это сообщение автора 4myke поблагодарил: Total Vacuum
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Консольные войны Z0Z5
СообщениеДобавлено: Вс июн 08, 2025 22:40 
Не в сети
Аватара пользователя

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 637
Откуда: Москва
Благодарил (а): 61 раз.
Поблагодарили: 30 раз.
Да, спасибо :) Я тоже где-то недавно встречал упоминание про 145 серию. Ага, вот тут: https://habr.com/en/articles/467501/
Пишут, что в советских программируемых калькуляторах Б3-34 и МК-52 стояла микросхема К145ИК1302 и работала на частоте 75-100кГц. Т.е. да, частота 70кГц где-то даже использовалась, но вот сделать на таком процессоре игровой компьютер, наверное, было бы проблематично, т.к. АЛУ было однобитное. Наверное, программируемые калькуляторы - это потолок применения для таких процессоров. Ну может еще что-нибудь типа "волк ловит яйца". Надо, кстати, будет разузнать, какой процессор был в "волк ловит яйца". :)

А Электронику-60, кстати, незаслуженно обошли вниманием :) Она достойна упоминания в этой теме хотя бы потому, что именно на ней Алексей Пажитнов сделал первую версию Тетриса. А у нас как-никак тема про ретро-компьютеры с уклоном в игровую тематику. :) Если верить википедии https://ru.wikipedia.org/wiki/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%B0-60, первая версия процессора М1 состояла из нескольких микросхем 581 серии. И пишут, что производительность была 250тыс. оп./c, а значит тактовая была явно выше 250кГц.


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

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 637
Откуда: Москва
Благодарил (а): 61 раз.
Поблагодарили: 30 раз.
Да, забыл :) Если у кого есть Spartan-3E Starter Kit, VGA-монитор (еле нашел такой) и PS/2-клавиатура (тоже достаточно раритетная вещь, как оказалось), то можно вживую пощупать Бейсик: http://totalvacuum.ru/UB/basic.bit
За основу взята грамматика из Tiny BASIC (https://en.wikipedia.org/wiki/Tiny_BASIC), пока реализованы операторы:
print выражение
print "строка"
if выражение операция-сравнения выражение оператор
goto метка
let переменная = выражение
gosub метка
return
end
Плюс добавлены оператор poke адрес значение и функция peek адрес. И еще at x y, чтобы двигать "курсор".
Редактор понимает команды clear, list и run. А кроме того имитируется сохранение/загрузка текущей программы по командам save/load: пока код программы сохраняется/читается в/из массива tape (это как регистр М в калькуляторе, только гигантский :) ), но потом можно будет сделать, например, запись на SD-карту.
Процессор стартует на частоте 1.5MHz, но можно поменять прямо на лету. Например, чтобы поставить 50MHz/512=100kHz, надо ввести 2 строки, нажимая после каждой <enter>
Код:
poke 32767 511
run
А дальше либо загружаем "с кассеты" командой load сохраненную ранее программу, либо clear и вводим новую.


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

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 637
Откуда: Москва
Благодарил (а): 61 раз.
Поблагодарили: 30 раз.
А примерно так выглядит тот же самый Бейсик, но уже на борту Tang Nano 9K.
Изображение
ссылка на изображение
Периферия, понятное дело, здесь совсем другая. Сейчас прикручены только GPIO, TIMER и UART с базовыми адресами 0x8000, 0x9000 и 0xA000 соответственно. Делителя частоты по адресу 0x7FFF нет, работает на фиксированной 20MHz, оператора at тоже нет, а ввод/вывод через терминал. Для иллюстрации добавлены led и delay, хотя вполне можно было обойтись poke/peek через регистры периферии. "На кассету" "зашита" дефолтная однократно пробегающая по светодиодам волна, но можно поменять на тест с ферзями (закомментировать одну и раскомментировать другую строку под char tape [1024] = в файле FIRMWARE\BASIC\basic.c) или любой другой свой тест, пересобирается через rebuild.bat.
:) Пока сырое, но пусть будет:
http://totalvacuum.ru/UB/tbasic.zip


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

Зарегистрирован: Пн окт 05, 2009 18:21
Сообщения: 450
Откуда: Минск SotnikSTO@mail.ru
Благодарил (а): 51 раз.
Поблагодарили: 3 раз.
https://habr.com/ru/articles/917156/

_________________
Сотник. SotnikSTO@mail.ru


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

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 637
Откуда: Москва
Благодарил (а): 61 раз.
Поблагодарили: 30 раз.
Sotnik писал(а):
https://habr.com/ru/articles/917156/
Интересная статья (эта и 3 предыдущих про 4004, 4040 и 8008, на которые отсылки в самом начале). Правда 8080 как-то неожиданно слабоват оказался в бенче Dhrystone: всего лишь 0.06 DMIPS (0.02 DMIPS/MHz). У меня даже самый слабый из процессоров будет в несколько раз быстрее на той же частоте. Может, конечно, дело в компиляторе z88dk, но не думаю, что он слабее моего наколенного.


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

Зарегистрирован: Пн окт 05, 2009 18:21
Сообщения: 450
Откуда: Минск SotnikSTO@mail.ru
Благодарил (а): 51 раз.
Поблагодарили: 3 раз.
Total Vacuum писал(а):
Sotnik писал(а):
https://habr.com/ru/articles/917156/
Интересная статья (эта и 3 предыдущих про 4004, 4040 и 8008, на которые отсылки в самом начале). Правда 8080 как-то неожиданно слабоват оказался в бенче Dhrystone: всего лишь 0.06 DMIPS (0.02 DMIPS/MHz). У меня даже самый слабый из процессоров будет в несколько раз быстрее на той же частоте. Может, конечно, дело в компиляторе z88dk, но не думаю, что он слабее моего наколенного.
Какие максимальные частоты для твоих процов в FPGA?
С поправками для всех делителей и таймеров. :)

Хотелось бы увидеть AVR на 100+ МГц и сколько таких влезет!

_________________
Сотник. SotnikSTO@mail.ru


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

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 637
Откуда: Москва
Благодарил (а): 61 раз.
Поблагодарили: 30 раз.
Sotnik писал(а):
Хотелось бы увидеть AVR на 100+ МГц
Зачем? Во-первых, не спортивно. :) А во-вторых, слишком много, тут и пары мегагерц за глаза, более того подозреваю, что и 100KHz вполне хватит, чтобы и Бейсик шустро работал, и игры вроде Super Mario в слайд-шоу не превращались.
А всё потому, что даже медленный процессор зачастую оказывается слишком быстрым, когда дело доходит до общения с периферией: допустим, отправил он байт в условный UART/I2C/SPI/..., а потом (если без софтового буфера) приходится ждать, пока тот закончит передачу и будет готов к приему следующего байта. Да, можно, конечно, аппаратный буфер организовать и утрамбовать туда сразу всё сообщение, но все равно байты наружу уйдут на определенной ооочень медленной по меркам процессора скорости.
Sotnik писал(а):
Какие максимальные частоты для твоих процов в FPGA?
Когда-то давно для 1- и 2-ядерного (2 ядра+общая RAM) было 72MHz. Для варианта с 4 ядрами в кольце было 69MHz, а для 8 ядер частота падала до 55MHz. (https://fforum.winglion.ru/viewtopic.php?p=50696#p50696)
Ну а сейчас вообще не парюсь по поводу тактовой частоты. В платах, которые на руках, в ПЛИС извне заходят частоты:
- Spartan-3E Starter Kit - 50MHz;
- рабочая плата (Spartan-3E) - 20MHz;
- Tang Nano 9K/20K - 27MHz.
В Starter Kit оставил 50MHz, т.к. из нее легко получаются 25MHz, которые нужны для стандартного видеорежима VGA 640x480 (использую его для отрисовки 256x192 с пикселами 2x2). А в Tang Nano 9K/20K всегда ставлю 20MHz, чтобы было 1-в-1 как в рабочей плате, чтобы не перенастраивать постоянно UART, TIMER и т.д.
Sotnik писал(а):
С поправками для всех делителей и таймеров.
Не уловил смысл фразы. Вообще, 72MHz и 8 ядер - это для "тепличных" условий, когда на шине не очень много периферийных устройств, а каждому отдельному ядру не нужно слишком много RAM. Сверху количество ядер ограничено количеством умножителей в ПЛИС (10 шт) и количеством доступных блоков BRAM (20 шт). Да, можно сделать процессор без умножения (у меня есть и такой, вполне достойно смотрится, кстати), а некоторым ядрам не выделять память в BRAM, чтобы обойти эти ограничения, но зачем? Короче, чем больше ядер и периферии, тем сильнее падает частота и увеличивается потребление умножителей и BRAM. А еще есть другие ресурсы ПЛИС (Slices/Flip-flops/LUTs). Тут примерно то же самое: чем больше ядер, чем сложнее периферия, чем толще стеки данных/возвратов в ядрах, тем больше расход этих ресурсов. В любом случае надо смотреть по месту: добавлять там, где не хватает, и что-то убирать/уменьшать, если не лезет. :)
upd. Да, еще момент. В Xilinx ISE есть настройка Project/Design Goals and Strategies. И цифры по максимальной частоте и впихуемости ядер были получены для сценария Balanced. Но еще есть профили Timing Performance, Power Optimization и Minimum Runtime, а можно и свой придумать. Так вот с ними и частота будет другой, и потребление ресурсов. Там целый ворох настроек, пока даже не начинал с этим разбираться. Но почти наверняка и ускорить можно, и утрамбовать.


Последний раз редактировалось Total Vacuum Ср июн 25, 2025 15:23, всего редактировалось 2 раз(а).

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

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 637
Откуда: Москва
Благодарил (а): 61 раз.
Поблагодарили: 30 раз.
Немного экзотики в ленту: https://dzen.ru/a/Z4o9tG4Y3UMbvVmL
Тут из интересного https://ru.wikipedia.org/wiki/Entex_Adventure_Vision и https://en.wikipedia.org/wiki/Microvision
Entex Adventure Vision примечательна тем, что в ней вместо дисплея использовался столбец из 40 светодиодов и вращающееся зеркало. И да, здесь была монохромная графика 150x40, а процессор 8048 работал на частоте 733KHz. По формальным признакам это серийное игровое изделие на микропроцессоре с какой-никакой графикой. Таким образом, оно обходит в антирейтинге самых неторопливых игровых изделий C64, у которого была частота 1MHz. :)
А в Microvision забавно, что процессор (Intel 8021 или TMS1100) стоял не в консоли, а на картридже. И работал процессор на частоте 100KHz. :) Ну а графика (если ее можно так назвать) всего лишь 16x16 пикселов. :)

Total Vacuum писал(а):
разузнать, какой процессор был в "волк ловит яйца". :)
В интернетах пишут, что в культовой советской игре "Ну, погоди!" был процессор КБ1013ВК1-2, который тактировался от часового кварца 32768Гц. Допускаю, что это самая низкая частота процессора среди всех существовавших когда-либо игровых изделий.

А еще продолговатый китайский тетрис вспомнился
https://www.ixbt.com/live/games/istoriya-i-obzor-portativnoy-videoigry-brick-game-tetris-chernyy-kirpichik-kotoryy-izmenil-mir.html
https://habr.com/ru/articles/767520/
Там какой-то 4-битный процессор от Holtec, точно никто не знает :) HT200, HT943E5, HT443A0 или какой-то еще. И частоту где-то указывают 1МГц, а где-то 4МГц.

Куча игр и не только под разные ретро-платформы в браузере:
https://dtf.ru/retro/91368-biblioteka-retro-igr-s-zapuskom-pryamo-v-brauzere
https://archive.org/details/softwarelibrary
В том числе для совсем уж древних вроде упомянутой выше Entex Adventure Vision: https://archive.org/details/adventurevision_library
Поиграл "на ней" немного в Defender, управление стрелками, стрельба пробелом: https://archive.org/details/advision_Defender_1982_Entex_Industries

:D Там даже Конек-Горбунок есть!
https://archive.org/details/arcade_konek


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

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 637
Откуда: Москва
Благодарил (а): 61 раз.
Поблагодарили: 30 раз.
:) А вот, например, шахматы в Форт-процессоре:
Изображение
ссылка на изображение
Пока только режим Demo (компьютер vs. компьютер), да и цвета какие попало, но всё это не так важно: главное, что движок avr_umax.c практически с наскока заработал. :)
Оригинал:
https://uzebox.org/wiki/Chess4uzebox - описание
https://github.com/Uzebox/uzebox/tree/master/demos/chess4uzebox - исходники


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

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 637
Откуда: Москва
Благодарил (а): 61 раз.
Поблагодарили: 30 раз.
:) Порт симпатичной игры, к которой приложили руку два мастодонта (в хорошем смысле этого слова :) ) отечественной демосцены:
http://totalvacuum.ru/BATTLE/alterego.htm

Изображение
ссылка на изображение

Оригинал под ZX Spectrum сделал Денис Грачев:
https://www.retrosouls.net/?page_id=614
А Shiru сделал порт под NES:
https://shiru.untergrund.net/files/src/alter_ego.zip
https://shiru.untergrund.net/files/src/ ... go_src.zip
Именно этот порт и адаптировал, хотя можно было и порт под UzeBox за основу взять.

Пока только в браузере, но будет и в Форт-процессоре, как только до платы с ПЛИС доберусь. Сейчас есть только игровой режим, а все прочие gameover'ы, title'ы и welldone'ы пока отсутствуют. И с палитрой не заморачивался: всё отрисовано в лампово-вырвиглазной фиолетово-бирюзовой ретро-палитре CGA. Управление: wasd - стрелки, x - swap главного героя и его альтер эго. Разрешение мелкое, но можно Ctrl-+ понажимать.

upd. И почти то же самое в Irbis Forth:
http://totalvacuum.ru/IRBIS/alterego.zip
Изображение
ссылка на изображение
Пока черновик, но уже можно играть, управление wasdx


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

Зарегистрирован: Ср июл 03, 2019 11:10
Сообщения: 637
Откуда: Москва
Благодарил (а): 61 раз.
Поблагодарили: 30 раз.
Картридж Alter Ego под NES весит 40Kb, но, к сожалению, в чистом виде в Spartan-3E Starter Kit не лезет. :) Там одни только карты уровней (пожаты RLE) весят 11Kb, а еще 8Kb на 2 банка тайлов, а все прочее - код программы. А в Starter Kit лишь 20 блоков BRAM (40Kb), из которых сейчас 9 занимает видеопамять (18Kb), еще 1 блок под системный шрифт (2Kb), в итоге на RAM, код и данные остается 10 блоков BRAM. Код при переходе к Форт-процессору жмется очень хорошо, в отведенные ему 4 блока BRAM влезает спокойно, а вот ресурсы почти не жмутся (тем более, что они уже сжаты). Можно убрать один из 2-х банков тайлов, они между собой отличаются лишь несколькими спрайтами, в NES используется переключение банков для мигания звезд и шевеления воды. Но даже в этому случае на игровые карты остается лишь 4Kb, так что если оставить credits/title/gameover/welldone, то еще влезет 8 уровней из 25. Так что под Starter Kit будет урезанный вариант. Ну либо повторять "в железе" тайловый видеорежим NES, он сильно меньше BRAM требует.
А вот в Tang Nano 9K/20K влезет целиком.


Последний раз редактировалось Total Vacuum Пн окт 13, 2025 21:00, всего редактировалось 2 раз(а).

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

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


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

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


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

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