Просмотр полной версии : 16 цветов в БК0010
Одно время занимался раскраской игр для Spec256 и ULAX.
А в последнее время увлекся отечественными компьютерами БК0010 и УКНЦ.
Сделал FPGA клон для БК0010, так как он самый простой.
https://zx-pk.ru/threads/30578-bk001kh-na-fpga.html
И подумал. А было бы хорошо, если бы на эмуляторе или в железе на FPGA
можно было бы тоже раскрашивать игры с большим количеством цветов.
У БК0010 в цветовом режиме цвет кодируется двумя разрядами на точку,
что дает четыре цвета. Если будут работать в параллель два процессора,
то цветов будет уже 16. Если три - то 64. А при четырех - 256 цветов.
Решил проверить пока для простоты принцип работы на двух процессорах.
Модифицировал свой проект на FPGA, добавив второй процессор и ОЗУ.
ПЗУ по адресу о140000 тоже продублировал, так как там расположил коды
палитры. В VGA контроллер добавил 16ти цветную палитру, работающую
от двух экранных областей. Четыре цвета из палитры сохранил стандартными,
для совместимости с нераскрашенными по новой играми. Остальные 12 цветов
можно сделать любыми или даже загружаемыми. Пока назвал проект БК1610,
где цифра 16 означает количество цветов.
Вот что получилось:
https://youtu.be/973cqwY1PwM
Чтобы увидеть разницу, сделал переключаемую палитру со стандартных цветов
на новые и обратно, а также включение и отключение цвета.
Для чего я это выкладываю. Программу для раскраски игр я не осилю.
Хорошо бы подключились разработчики эмуляторов.
Если это сделают, я раскрашу несколько игр.
Lethargeek
20.01.2020, 18:09
Хорошо бы подключились разработчики эмуляторов.
Если это сделают, я раскрашу несколько игр.
а зачем для этого эмуляторы, если у тебя железка рабочая? тебе нужен пиксельный редактор бинарника
или, самое простое и быстрое, хотя бы консольный конвертер в алфавит 16 символов и обратно
уже сможешь редактировать картинки просто в блокноте
а зачем для этого эмуляторы, если у тебя железка рабочая?
А чтобы можно было в них играть не только тем, у кого есть железка рабочая, а всем желающим.
Lethargeek
20.01.2020, 21:12
А чтобы можно было в них играть
про "играть" ты выше не говорил, а только про свои возможности по раскраске
не только тем, у кого есть железка рабочая, а всем желающим.
всем желающим ждать для этого появления железки у кого-то было необязательно
- - - Добавлено - - -
кстати, для быкашки с безатрибутной графикой тупая схема расширения цветобитности в стиле спека-256 более оправданна, чем для спектрума
Ynicky, а БК1610 в железе то можно повторить?
с двумя процессорами, 64 кб памятью и 16 цветами
прям в корпус бк
или тольк фпга
а эмуль - можно попросить gid a, думаю не откажет, дело то хорошее
http://gid.pdp-11.ru
А коды своих 16 цветов можно будет вставлять или палитры менять, как на БК0011(М)?
С начало цвета по умолчанию, а если не нравятся, то заменить программно на свои цвета из своей программы.
Переделайте тему в "16 цветов в эмуляторе БК0010" а то вводите всех в заблуждение
Ynicky, а БК1610 в железе то можно повторить?
с двумя процессорами, 64 кб памятью и 16 цветами
прям в корпус бк или тольк фпга
Теоретически можно, но сложно. Придется решать такие вопросы, как загрузка и сохранение новых программ, изменение программного обеспечения. Это уже будет не совместимый комп. На PC такие вопросы кроссразработки легко решаются.
- - - Добавлено - - -
Переделайте тему в "16 цветов в эмуляторе БК0010" а то вводите всех в заблуждение
Я не знаю, как поменять название темы.
- - - Добавлено - - -
А коды своих 16 цветов можно будет вставлять или палитры менять, как на БК0011(М)?
С начало цвета по умолчанию, а если не нравятся, то заменить программно на свои цвета из своей программы.
А так и планируется, сначала код удваивается, при этом цвета стандартные. Затем надо раскраску поменять на новую в одном "плане" или в двух. Вот только что означает в своей программе? Если имеются в виду исходники, то я так и делаю в своей программе вывода новой палитры. Сначала на ассемблере вставляю информацию о цвете для одного процессора, получаю код программы, затем для второго - и получаю код программы для второго процессора.
Уже думал как это применить в БК0011. Можно будет менять палитру как там. В этом случае будет 16 палитр по 16 цветов. Таким образом количество цветов увеличится до 256.
Я не знаю, как поменять название темы.
такие права только у модераторов, надо им написать с прямой ссылкой на тему и новым желаемым названием
Добавил переключение палитр как в БК0011.
Это конечно не 256 цветов на экран, а только выбор из 16 палитр по 16 цветов,
но тоже не плохо.
https://youtu.be/A1qnShuo43k
Просто класс!!!
Разрешение какое для цветного режима?
256x256?
Или 512х256? (Тогда круть)
А, боковой скроллинг возможно приделать?
а NEW LODE (http://hobot.pdp-11.ru/tmp/newlode.rar) раскрасить \ перекрасить ?
https://pic.maxiol.com/thumbs2/1580304062.787615662.20200129131944311.png (https://pic.maxiol.com/?v=1580304062.787615662.20200129131944311.png&dp=2)
Просто класс!!!
Разрешение какое для цветного режима?
256x256?
Или 512х256? (Тогда круть)
А, боковой скроллинг возможно приделать?
Разрешение - 256х256.
Можно сделать и 512х256, но тогда при 2х процессорах будет только 4 градации яркости в черно-белом режиме и 4 цвета в цветном режиме. Если надо 16 цветов при таком разрешении, то это уже 4 процессора. В моей девборде таких ресурсов не хватит.
Если под боковым скроллингом имеется в виду горизонтальная прокрутка, то в принципе можно. Но тогда надо будет переписывать игры под него.
- - - Добавлено - - -
а NEW LODE (http://hobot.pdp-11.ru/tmp/newlode.rar) раскрасить \ перекрасить ?
https://pic.maxiol.com/thumbs2/1580304062.787615662.20200129131944311.png (https://pic.maxiol.com/?v=1580304062.787615662.20200129131944311.png&dp=2)
Если спрайты найдутся в бинарнике, то можно.
Я сейчас хочу раскрасить вот эту игру.
https://zx-pk.ru/threads/30985-eshche-odin-variant-klassicheskogo-sokoban.html
Хочу пока запустить ее из ПЗУ, а если не получится, то написать загрузчик, переносящий ее из ПЗУ в ОЗУ (а-ля картридж).
Хочу пока запустить ее из ПЗУ, а если не получится, то написать загрузчик, переносящий ее из ПЗУ в ОЗУ (а-ля картридж).тут (возможно) придётся учитывать наличие или
отсутствие в играх таблицы рекордов, даже в кассетных версиях игр - рекорды могли меняться, сначала в памяти, затем (не везде конечно) ТР можно было на ленте сохранить.
512х256 - 4 цвета (палитры не будут работать?), в полне нормально.
Да, горизонтальный скроллинг, это было бы впечатляюще.
Можно новые игры под это написать, желающие я думаю найдутся.
512х256 - 4 цвета (палитры не будут работать?), в полне нормально.
Да, горизонтальный скроллинг, это было бы впечатляюще.
Можно новые игры под это написать, желающие я думаю найдутся.
но общая тормознутость БКашеньки никуда не денется ведь.
Если под боковым скроллингом имеется в виду горизонтальная прокрутка, то в принципе можно
Было бы интересно посмотреть на реализацию. Я как ни думал, так и не смог придумать, как сделать аппаратный попиксельный горизонтальный скроллинг. (Даже побайтный как-то не получается из-за словной организации памяти)
Допустим заводим регистр горизонтального смещения, например 177666, где младший байт - значение попиксельного смещения для цветного режима (2 бита на единицу значения регистра). Содержимое ячейки памяти, которое помещается в сдвиговые регистры D24, D25 стробируются сигналом WTI из ВП1-037, адрес выставляется внутри ВП1-037, т.е. нужно как-то придумать модификацию выдачи адреса цикличного счётчика адресов, чтобы задать смещение слова в строке, которое выводить в текущий момент на экран. А вот как задать начальное смещение в регистрах сдвига - непонятно.
Теоретически можно, но сложно. Придется решать такие вопросы, как загрузка и сохранение новых программ, изменение программного обеспечения.
да вроде zx-poly показал как можно организовать несколько процов и при этом сохранить совместимость и загрузку программ с обычных носителей, надо просто добавить какой-то программный синхронный ресет с нужного адреса для всех процов
как сделать аппаратный попиксельный горизонтальный скроллинг
Сравнительно традиционный вариант:
1. Вводим отключаемую маскировку отображения крайних столбцов
2. Добавляем промежуточный регистр с возможностью сдвига на 0-15 точек (в режиме 512). Сдвиг в этом регистре будет тонкой настройкой, а изменение адреса начала сканирования видеопамяти - грубой. Вместе грубая и точная настройка обеспечивают попиксельный скролл.
- - - Добавлено - - -
Как вариант вместо промежуточного регистра со сдвигом можно использовать регулируемую задержку начала отображения, при правильной организации эффект будет одинаковый. Но в любом случае нужно разделение регистров выборки и отображения.
Хочу пока запустить ее из ПЗУ, а если не получится, то написать загрузчик, переносящий ее из ПЗУ в ОЗУ (а-ля картридж).
программа должна работать из ПЗУ, если нужно, могу для этого изменить адреса переменных и буфера
Lethargeek
30.01.2020, 20:19
да вроде zx-poly показал как можно организовать несколько процов и при этом сохранить совместимость и загрузку программ с обычных носителей, надо просто добавить какой-то программный синхронный ресет с нужного адреса для всех процов
я не помню, а можно для 1801 отличить цикл выборки опкода от цикла просто чтения, как в z80?
если да, то, возможно, проще делать выборку всем процам по адресу одного ведущего
кстати, и в zx-poly можно попробовать добавить такой режим, и проблем синхронизации в нём не будет
512х256 - 4 цвета (палитры не будут работать?)
Сделал цвет в режиме 512х256:
https://youtu.be/lghwSUziUe0
- - - Добавлено - - -
программа должна работать из ПЗУ, если нужно, могу для этого изменить адреса переменных и буфера
Было бы хорошо.
- - - Добавлено - - -
да вроде zx-poly показал как можно организовать несколько процов и при этом сохранить совместимость и загрузку программ с обычных носителей, надо просто добавить какой-то программный синхронный ресет с нужного адреса для всех процов
А как сделать загрузку с обычных носителей? С двумя процессорами нужно сохранять программу, размером в два раза бОльшую, и загружать ее в память разных процессоров.
А как сделать загрузку с обычных носителей? С двумя процессорами нужно сохранять программу, размером в два раза бОльшую, и загружать ее в память разных процессоров.
Со стерео-кассеты, разумеется =)
А как сделать загрузку с обычных носителей? С двумя процессорами нужно сохранять программу, размером в два раза бОльшую, и загружать ее в память разных процессоров.
я вот тут описал как делается (https://zx-pk.ru/threads/24856-reverse-u16-zx-poly.html?p=794953&viewfull=1#post794953)
Lethargeek
30.01.2020, 23:01
я вот тут описал как делается (https://zx-pk.ru/threads/24856-reverse-u16-zx-poly.html?p=794953&viewfull=1#post794953)
все CPU имеют по 128 кБт, сразу после старта активен только модуль CPU0 остальные в WAIT,
...последовательно считывая блоки с диска записывает их содержимое в память других модулей,
а вот кстати, а кто память будет регенерировать? или эта схема только для статики?
а вот кстати, а кто память будет регенерировать? или эта схема только для статики?
вроде как пребывание ЦПУ в WAIT не сказывается на регенерации в текущих решениях
Lethargeek
31.01.2020, 01:18
вроде как пребывание ЦПУ в WAIT не сказывается на регенерации в текущих решениях
смотря в каких; на z80 точно нельзя надеяться, если он под вайтом так долго, и тогда доступ ко всей памяти, включая сильно расширенную, должен быть у другого регенератора
Для решения проблемы горизонтального скролла есть несколько опосредованное решение - поднятие быстродействия БК11М с ~267 т. рег-рег до 1.1 млн ( 5.5 мгц Н1806ВМ2 ) или даже до 1.5 млн на М1801ВМ3А-6 мгц.
Насчет увеличения глубины цвета - в БК11Мn ( новоделе ) - есть несколько решений, например одновременное сканирование 5 и 6 страницы ОЗУ.
В любом случае необходим патч софта и железа.
*
Если не переделывать ДОЗУ на СОЗУ, можно в цикле RAS для 565РУ5 в цикле видеовывода приделать 7-бит сумматор с регистром на МПИ - с чем собственно складывать. Решение только для пословного шага, и возникает скользкая проблема соответствия таймингам регенераци для ДОЗУ - т.е. для надежности все-таки нужен отказ от ДОЗУ.
Сделал загрузчик игры Sokoban из ПЗУ в ОЗУ.
Раскрасил немного игру. Пока использую первую палитру из 16 цветов.
Если сделать специальную палитру для этой игры, то она будет выглядеть лучше.
Пока не работает клавиатура. Еще не разбирался.
https://youtu.be/x1RVrLwB9Qk
Lethargeek
08.02.2020, 23:45
Ynicky, наезжай иногда поближе, когда снимаешь
под такую "цветастую" и многопроцессорную БКашку, надо что то
https://youtu.be/s74hffCldv4
цветастое портировать )
Сделал новую раскраску игры. Данные первого процессора оставил со стандартными цветами. А для работы с двумя процессорами выбрал такие цвета, чтобы менять данные только во втором процессоре. Палитру взял свою первую 16-ти цветную. Стандартные 4 цвета получаются, когда данные у двух процессоров одинаковые.
Т.е. при черном - это 0000, синем - 0101, зеленом - 1010 и красном - 1111. Она у меня такая:
mk_spalette:process (spalindx)
begin
case spalindx is
when x"00" => spalette <= x"000000"; --- черный
when x"01" => spalette <= x"555555"; --- темносерый
when x"02" => spalette <= x"AAAAAA"; --- светлосерый
when x"03" => spalette <= x"FFFFFF"; --- белый
when x"04" => spalette <= x"00007F"; --- темносиний
when x"05" => spalette <= x"0000FF"; --- яркосиний
when x"06" => spalette <= x"00FFFF"; --- циановый
when x"07" => spalette <= x"FF00FF"; --- пурпурный
when x"08" => spalette <= x"007F00"; --- темнозеленый
when x"09" => spalette <= x"007FFF"; --- голубой
when x"0A" => spalette <= x"00FF00"; --- яркозеленый
when x"0B" => spalette <= x"7F3F00"; --- коричневый
when x"0C" => spalette <= x"7F0000"; --- темнокрасный
when x"0D" => spalette <= x"7F00FF"; --- фиолетовый
when x"0E" => spalette <= x"FFFF00"; --- желтый
when x"0F" => spalette <= x"FF0000"; --- яркокрасный
...
Где старшие 4 разряда индекса - выбор палитры. 3 и 2 разряды - цвет от первого процессора, а 1 и 0 разряды - цвет от второго процессора. 24 разряда цвета палитры имеют формат RGB888.
Спрайты раскрасил следующим образом:
71497
А вот как это выглядит на экране монитора:
https://pic.maxiol.com/thumbs2/1581535234.1845248946.20200211221727.jpg (https://pic.maxiol.com/?v=1581535234.1845248946.20200211221727.jpg&dp=2)
А вот как это выглядит на экране монитора
а вот этот белёсый фон - только на заставке или постоянно?
а вот этот белёсый фон - только на заставке или постоянно?
Это якобы пол. Можно сделать другим, или убрать.
Это якобы пол. Можно сделать другим, или убрать.
я бы убрал, просто потому, что ИМХО: на таком фоне голубой и зеленый (особенно голубой),
очень не выгодно смотрятся. А ещё есть вариант "инверсии", сделать пол "жёлтым" сплошной
заливкой, а для ГГ и объектов взять тёмные цвета (чёрный, синий и ещё какой-нибудь полутон) например.
В общем - текущая картинка немного "слепая" ИМХО: получилась, на большом телеке возможно другое впечатление?
https://pic.maxiol.com/thumbs2/1582828968.1845248946.20200227213446.jpg (https://pic.maxiol.com/?v=1582828968.1845248946.20200227213446.jpg&dp=2)
К сожалению, пока не могу поиграть в игру.
Что-то еще не отлажено в процессоре.
https://youtu.be/sZUhu2wp-dE
Что-то еще не отлажено в процессоре.
а тест ВМ1 он проходит?
или какие-то другие запускались, что показывают ?
К сожалению, пока не могу поиграть в игру.
Что-то еще не отлажено в процессоре.
Такое впечатление, что происходит выполнение команд BIC, BICB, BISB с аномальным результатом в части кода
MAKESTEP$: ; ОБРАБОТКА СМЕЩЕНИЯ ПО ИГРОВОМУ ПОЛЮ
Такое впечатление, что происходит выполнение команд BIC, BICB, BISB с аномальным результатом в части кодаЭто же известный баг процессора ВМ1: инструкция BICB сбрасывает бит C, хотя не должна.
https://habr.com/ru/post/471020/
не вводите людей в заблуждение. BICB работает корректно, и в указанной статье ничего нового про BICB не добавили, как было: movb, mfps, swab, так и осталось.
Помню, в телеграм-чате обсуждали, что BISB под подозрением. Значит, не подтвердилось.
не вводите людей в заблуждение
В этом проекте процессор используется оригинальный или FPGA?
Процессор на FPGA из проекта PDP2011 с моими исправлениями байтовых команд.
Проверял на тесте, который нашел в интернете, 791401.MAC.
Проверил игры Express и Newlode - они работают.
Проверял на тесте, который нашел в интернете, 791401.MAC
Я выше предлагал тест ВМ1 Титуса, есть возможность его прогнать?
Подключил третий процессор и сделал палитру на 64 цвета.
https://youtu.be/qd_viOLVAe0
Нашел ошибочку в процессоре.
https://youtu.be/PELx6y8WqD0
Нашел ошибочку в процессоре.
Пожалуйста, развейте интригу. В чем была проблема?
Ошибки были две. Первая касалась команды MOVB. При записи в регистр байта, не было расширения знака (эта ошибка исходника PDP2011). Вторая - моя. При записи из регистра байта в память по нечетному адресу не было подстановки младшего байта регистра в старший байт памяти. Эти ошибки нашел после написания своей программы тестирования байтовых команд. В исходнике PDP2011 половина байтовых команд работала не правильно.
https://youtu.be/aXaCZs6-xqo
LeoN65816
31.03.2020, 23:27
Неужели игруха такая тормозная?
Неужели игруха такая тормозная?
Выбрал наименьшую скорость при старте игры. И частоту у процессоров какую поставить не знаю, скорость ГГ всегда одинаковая, а у врагов меняется от частоты процессоров. Выбрал такую, чтобы враги не успевали меня достать.
Сделал палитру на 256 цветов, такую, чтобы можно было раскрашивать игры и конвертировать картинки. Вот пример:
https://pic.maxiol.com/images2/1586120428.1845266183.avatar512x256c242.
https://pic.maxiol.com/images2/1586120700.1845266183.avatar5512x256c242.
А реально это выглядит так (64 цвета вместо 256, так как только 3 процессора вместо 4х):
https://pic.maxiol.com/images2/1586120742.1845266183.20200405232501.jpg
https://pic.maxiol.com/images2/1586120774.1845266183.20200405234740.jpg
Lethargeek
06.04.2020, 01:51
совершенно на оригинальные цвета не похоже, пробуй диффузию
Ynicky, МОЩНО!!!,
а как происходит
1.процесс раскрашивания игр из классики?
2.как и чём конвертяться картинки?
как выглядит этот БК многопроцессорный и что у него со звуком и переферией (клавиатура!носитель инф!)
три виртуальных ВМ1?
А есть предел кол-ву процессоров, если каждый рассм. как ядро = возможна ли 4 6 8 16 ядерная БКашка?
Насколько в данный момент процессор идентичен реальному ВМ-1 ?
По поводу игрушек, посмотри Галерею (http://hobot.pdp-11.ru/gamgal.htm) на сайте архива - там есть заведомо цветные игры,
можно ли их сделать ещё краше???
To Lethargeek:
Мне диффузия глаза режет.
To hobot:
По хорошему, для раскраски игр нужен бы специальный редактор. Но кто будет его делать?!
Поэтому я делаю так. Использую эмулятор EmuZWin для раскраски в 256 цветов игр ZXspectrum. Своим конвертором конвертирую bin файл для БК в sna файл для EmuZWin. Там раскрашиваю спрайты. И полученный многоцветный gfx файл, затем, своим же конвертором преобразую в формат пзу многопроцессорного БК. А картинки делаю (извлекаю) обычным встроенным в Windows редактором Paint. Сохраняю в формате 24 бита bmp размером 512х256. Опять, своим же конвертором преобразую в формат пзу для БК, и обратно, в bmp файл, чтобы сразу видеть результат преобразования с текущей палитрой.
https://pic.maxiol.com/images2/1586156376.1845266183.bk1610colour1.jpg
А вот как выглядит моя плата с FPGA:
https://pic.maxiol.com/images2/1586156436.1845266183.20200406093421.jpg
Звук работает, но загрузка с магнитофона пока нет (нужно время чтобы разобраться). Клавиатура - PS2 со своим контроллером на vhdl. Процессор был взят из проекта PDP2011. Он совершенно не соответствует ВМ1 по тактам выполнения команд. Но понравился тем, что в нем есть плавающая точка. Сначала хотел его переделать на 32х разрядный, поэтому и решил сначала проверить его в простом проекте БК. Но увлекся раскраской старых игр. С четырьмя виртуальными процессорами можно получить 256 цветов в палитре с разрешением 256х256 точек, а с восемью процессорами разрешение уже будет 512х256.
По поводу игрушек, посмотри Галерею (http://hobot.pdp-11.ru/gamgal.htm) на сайте архива - там есть заведомо цветные игры,можно ли их сделать ещё краше???
Интересный вариант для приведения к многоцветности - это игра Остров обезьян (https://r-games.net/857-ostrov-obezyan.html). Вот такой игре крайне не хватает цветности БК. Для этой игры результат мог бы быть потрясающим.
https://youtu.be/alKIvdKXvoU
Интересная тема, моё мнение что вполне 16 цветов для раскраски старых игр хватит. Подскажите пожалуйста какую плис вы используете?
Интересная тема, моё мнение что вполне 16 цветов для раскраски старых игр хватит. Подскажите пожалуйста какую плис вы используете?
Плата Марсоход3 с FPGA MAX10: 10M50SAE144C8GES
Серьёзная плис, подскажите сколько ЛЕ занимает проект с двумя процессорами?
Серьёзная плис, подскажите сколько ЛЕ занимает проект с двумя процессорами?
+---------------------------------------------------------------------------------+
; Flow Summary ;
+------------------------------------+--------------------------------------------+
; Flow Status ; Successful - Wed Mar 18 08:07:19 2020 ;
; Quartus II 64-Bit Version ; 15.0.0 Build 145 04/22/2015 SJ Web Edition ;
; Revision Name ; bk1610 ;
; Top-level Entity Name ; bk1610 ;
; Family ; MAX 10 ;
; Device ; 10M50SAE144C8GES ;
; Timing Models ; Preliminary ;
; Total logic elements ; 14,842 / 49,760 ( 30 % ) ;
; Total combinational functions ; 14,011 / 49,760 ( 28 % ) ;
; Dedicated logic registers ; 3,699 / 49,760 ( 7 % ) ;
; Total registers ; 3711 ;
; Total pins ; 25 / 101 ( 25 % ) ;
; Total virtual pins ; 0 ;
; Total memory bits ; 1,114,112 / 1,677,312 ( 66 % ) ;
; Embedded Multiplier 9-bit elements ; 4 / 288 ( 1 % ) ;
; Total PLLs ; 1 / 1 ( 100 % ) ;
; UFM blocks ; 0 / 1 ( 0 % ) ;
; ADC blocks ; 0 / 1 ( 0 % ) ;
+------------------------------------+--------------------------------------------+
Получается почти 15000, но он же получается ещё не до конца реализован? Как считаете, реально использовать внешний оригинальный процессор с целью экономии на плис?
Получается почти 15000, но он же получается ещё не до конца реализован? Как считаете, реально использовать внешний оригинальный процессор с целью экономии на плис?
Там процессор с командами с плавающей точкой, без них будет меньше LE.
Конечно, сделать проект на 2х оригинальных процессорах можно, но как загружать раскрашенные игры. Тут надо думать над современными интерфейсами (например, контроллером SD), которые нужно поддержать программным обеспечением.
Там процессор с командами с плавающей точкой, без них будет меньше LE.
А почему не захотели попробовать отреверсенный 1801ВМ1? Он вроде достаточно компактный.
CodeMaster
15.04.2020, 09:18
Тут надо думать над современными интерфейсами (например, контроллером SD), которые нужно поддержать программным обеспечением.
Ну, вот это и оставить на откуп ПЛИС / МК, а процы сделать железными.
Я к чему это всё спрашиваю. На вашей платке Плис стоит около 4500 а того и больше, если в какую ни будь более раннюю версию в 10000 ле уложиться было бы идеально, учитывая то что они чуть более 1000 стоят. Судя по вашему описанию, раскраска игры не такой уж и муторный процесс. Думаю если умеющий человек сможет создать по для более удобной раскраски, то и игр будет больше, я лично несколько штук точно раскрасил бы. Ну естественно если будут игры, то и железо появится. Щас мне кажется следующий шаг должен быть именно в программе для раскраски. Имеются люди которые смогут это сделать?
А почему не захотели попробовать отреверсенный 1801ВМ1? Он вроде достаточно компактный.
Другие проекты не смог у себя запустить. И с отреверсенным тоже пока не получается, хотя я с него и начинал.
- - - Добавлено - - -
Ну, вот это и оставить на откуп ПЛИС / МК, а процы сделать железными.
Это, на мой взгляд, лучший вариант. Т.е. БК со стандартным ПО обращается к магнитофону/линии, а ПЛИС/МК подставляет разные данные к каждому процессору.
- - - Добавлено - - -
Имеются люди которые смогут это сделать?
Я пока обратился к одному программисту, но он не изъявил желания. К другим не обращался.
S_V_B на мой взгляд мог бы это осилить.
И с отреверсенным тоже пока не получается, хотя я с него и начинал.
А в чем там был затык? Марсохода-3 у меня нет, но есть Терасиковская плата на MAX10, сделаю порт ВМ1 на нее, возможно это будет более удобной точкой "на попробовать".
А в чем там был затык? Марсохода-3 у меня нет, но есть Терасиковская плата на MAX10, сделаю порт ВМ1 на нее, возможно это будет более удобной точкой "на попробовать".
Брал оттуда:https://github.com/sorgelig/BK0011M_MIST/tree/master/VM1
Не могу разобраться с сигналами процессора (полярности, диаграммы). Никогда с реальным процессором не имел дело. Было бы хорошо взять ваш проект на Терасиковской плате с MAX10 и попробовать его портировать на Марсоход3.
Было бы хорошо взять ваш проект на Терасиковской плате с MAX10 и попробовать его портировать на Марсоход3.
Хорошо, поставлю в ближайшие планы перенести ВМ1 на MAX10.
@S_V_B на мой взгляд мог бы это осилить.
Легко раскрасить игрушку у которой есть исходники и графика лежит в открытом виде.
Как вы собираетесь раскрашивать старые игрушки?? Ребята тогда изощрялись друг перед другом в упаковке, шифровке графики, чтобы не дай Боже кто-нибудь обидное вставит :)
Пол года будешь только эту графику выковыривать, а потом в том же виде ее обратно запихивать и всякие защиты от изменений вылавливать.
Это вы кстати правильно сказали. Я даже и не подумал если честно что люди замарачивались с шифровкой. Тогда нужно сначала провести анализ на количество игр подающихся раскраске. Чем порекомендуете это сделать?
Чем порекомендуете это сделать?
Manwe спросите он больше в теме БК и ковыряния защит.
Это вы кстати правильно сказали. Я даже и не подумал если честно что люди замарачивались с шифровкой. Тогда нужно сначала провести анализ на количество игр подающихся раскраске. Чем порекомендуете это сделать?
хорошо раскрашиваются при таком подходе, игры в которых объекты выводятся в маскируемую область, в памяти они хранятся тоже как маска+спрайт, все остальные игры раскрашиваются плохо, так как мало того что они отрисовываются бывает какимнить ксором для видимости, но еше бывает что проверяют столкновение объектов через это дело прямо на экране и при таком игра рассинхронихируется на процессорах, поэтому скажем не получается раскрашивать тот же спектрумовский Chronos под ZX-Poly, на БК в отличии от Спектрума памяти так мало что там даже не знаю в каких играх можно было встретить маска+спрайт подход
Ну в общем получается в итоге из всего обилия игр получится раскрасить единицы, я имею ввиду не тратя кучу времени.
Ну в общем получается в итоге из всего обилия игр получится раскрасить единицы, я имею ввиду не тратя кучу времени.
для БК0010 скорее всего да, может для БК0011 поболее
у БК0010 надо посмотреть на играх Бортника как раскрас пойдет
у БК0010 надо посмотреть на играх Бортника
ну вот - и сразу почему то вспоминают это неиграбельное УГ )
Игры писал Савин, Марков, АСПэшники и ещё много людей, а кто такой Бортник? Что он написал? Я в то время не видел ни одной его игры,
так откуда эта дутая популярность, что при каждом обсуждении игр для БК0010-01 приходит некто и говорит про игры Бортника -
как будто это значит некий класс профессионализма или играбельности. Чушь! Ни одной его игры на кассетах мне не попалось
за три-четыре года плотного использования БК и обмена кассетами с другими владельцами БКашек, и никто не обсуждал его игры, а вот
Савина игры обсуждали, появление озвученного (музыкального) и цветастого Lode Runner 2 вообще был ажиотаж (как новая часть кинг-конга)
... короче говоря добавить тут нечего.
а что у него за игры за игры такие?
Взял процессор оттуда:
https://github.com/1801BM1/cpu11
Вот что получилось с двумя процессорами:
+---------------------------------------------------------------------------------+
; Flow Summary ;
+------------------------------------+--------------------------------------------+
; Flow Status ; Successful - Mon Apr 20 17:11:55 2020 ;
; Quartus II 64-Bit Version ; 15.0.0 Build 145 04/22/2015 SJ Web Edition ;
; Revision Name ; bkv1610 ;
; Top-level Entity Name ; bkv1610 ;
; Family ; MAX 10 ;
; Device ; 10M50SAE144C8GES ;
; Timing Models ; Preliminary ;
; Total logic elements ; 4,599 / 49,760 ( 9 % ) ;
; Total combinational functions ; 4,324 / 49,760 ( 9 % ) ;
; Dedicated logic registers ; 1,214 / 49,760 ( 2 % ) ;
; Total registers ; 1226 ;
; Total pins ; 25 / 101 ( 25 % ) ;
; Total virtual pins ; 0 ;
; Total memory bits ; 919,552 / 1,677,312 ( 55 % ) ;
; Embedded Multiplier 9-bit elements ; 0 / 288 ( 0 % ) ;
; Total PLLs ; 1 / 1 ( 100 % ) ;
; UFM blocks ; 0 / 1 ( 0 % ) ;
; ADC blocks ; 0 / 1 ( 0 % ) ;
+------------------------------------+--------------------------------------------+
https://pic.maxiol.com/thumbs2/1587398729.1845266208.bk1610colour2.jpg (https://pic.maxiol.com/?v=1587398729.1845266208.bk1610colour2.jpg&dp=2)
а что у него за игры за игры такие?
как правило передранные по сюжету и графике, но там как раз и можно понять как будет жить параллельность на БК
он издавал игры под лейблом BIL corp
Ynicky, по канонам интерфейса цвет знакоместа у однотипных объектов должен быть одинаков - иначе просто каша из цветов.
Конечно у тебя там экранище и объекты выглядят крупно, но всё равно, представь поле игровое больших размеров ???
Да я пока экспериментирую(с процессорами, палитрой). Раскраской потом займусь.
Вот при 3х процессорах:
https://pic.maxiol.com/thumbs2/1587495300.1845266208.bk1610colour3.jpg (https://pic.maxiol.com/?v=1587495300.1845266208.bk1610colour3.jpg&dp=2)
Ynicky, а ты мог бы просто запустить для проверки https://zx-pk.ru/threads/31292-16-tsvetov-v-bk0010.html?p=1043805&viewfull=1#post1043805она сама по себе цветная и с музыкой, интересно будет ли играбельна скорость игры на твоей железочке, физика объектов в игре классика (Марков), в отличие от первой части - управление надо бы задать перед началом. Другие версии и игры в Галерее Игрушек для БК0010 на сайте Архива
>>> (http://hobot.pdp-11.ru/gamgal.htm)
Ошибки были две. Первая касалась команды MOVB. При записи в регистр байта, не было расширения знака (эта ошибка исходника PDP2011)
В исходнике PDP2011 половина байтовых команд работала не правильно.
Можно поподробней?
Потому как сильные сомнения. Я на PDP-2011 запустил и RT-11 и RSX-11, причём с генерацией систем - вряд это это дело было возможным, если бы такое количество и таких серьёзных ошибок было.
- - - Добавлено - - -
Вот кусок кода
alu_output_signext <= alu_output(7) & alu_output(7) & alu_output(7) & alu_output(7) & alu_output(7) & alu_output(7) & alu_output(7) & alu_output(7) & alu_output(7 downto 0);
...
if ir(15 downto 12) = "1001" then -- movb? movb needs to sign extend if the result is moved to a register
rbus_d <= alu_output_signext;
elsif have_mtps = 1 and ir_mfps = '1' then -- mfps needs sign extend if the result is moved to a register
rbus_d <= alu_output_signext;
- - - Добавлено - - -
Причём этот кусок кода есть во всех четырёх версиях кода, которые у меня есть, начиная с самого раннего - от 13.09.2014 года.
Ynicky, а ты мог бы просто запустить для проверки https://zx-pk.ru/threads/31292-16-tsvetov-v-bk0010.html?p=1043805&viewfull=1#post1043805она сама по себе цветная и с музыкой, интересно будет ли играбельна скорость игры на твоей железочке, физика объектов в игре классика (Марков), в отличие от первой части - управление надо бы задать перед началом.
https://youtu.be/VCbO-gx_7H4
Ynicky, хаха! да слишком быстро - придётся замедлять, Никита даже УК-НЦ вариант замедлял, в управлении надо пробивание пола четко уточнять, из за повышенной скорости фоновые "мяуканье" в звон превратилось, а звуки лабиринта 1 в 1 с оригиналом ;-)
спасибо.
Можно поподробней?
Потому как сильные сомнения. Я на PDP-2011 запустил и RT-11 и RSX-11, причём с генерацией систем - вряд это это дело было возможным, если бы такое количество и таких серьёзных ошибок было.
- - - Добавлено - - -
Вот кусок кода
alu_output_signext <= alu_output(7) & alu_output(7) & alu_output(7) & alu_output(7) & alu_output(7) & alu_output(7) & alu_output(7) & alu_output(7) & alu_output(7 downto 0);
...
if ir(15 downto 12) = "1001" then -- movb? movb needs to sign extend if the result is moved to a register
rbus_d <= alu_output_signext;
elsif have_mtps = 1 and ir_mfps = '1' then -- mfps needs sign extend if the result is moved to a register
rbus_d <= alu_output_signext;
- - - Добавлено - - -
Причём этот кусок кода есть во всех четырёх версиях кода, которые у меня есть, начиная с самого раннего - от 13.09.2014 года.
Согласен, накосячил при исправлении байтовых команд.
Сделал по другому. Во всех выражениях state_mtpa, state_dstХ и state_srcХ изменил следующим образом:
when state_dst1 =>
dest_addr <= addr;
--- Ynicky --- alu_input <= datain;
if ir_byte = '1' then
if addr(0) = '1' then
alu_input <= datain(15 downto 8) & datain(15 downto 8);
else
alu_input <= datain;
end if;
else alu_input <= datain;
end if;
-----------------------------------------------------
state <= pdststate;
when state_src1 =>
--- Ynicky --- alus_input <= datain;
if ir_byte = '1' then
if addr(0) = '1' then
alus_input <= datain(15) & datain(15) & datain(15) & datain(15) & datain(15) & datain(15) & datain(15) & datain(15) & datain(15 downto 8);
else alus_input <= datain(7) & datain(7) & datain(7) & datain(7) & datain(7) & datain(7) & datain(7) & datain(7) & datain(7 downto 0);
end if;
else alus_input <= datain;
end if;
-----------------------------------------------------
state <= psrcstate;
rbus_ix <= ir(2 downto 0);
Согласен, накосячил при исправлении байтовых команд.
Всё равно не понял, что там было исправлять? Вроде всё работает и так.
Всё равно не понял, что там было исправлять? Вроде всё работает и так.
При запуске теста 791401.MAC на моделирование затыкается на halt:
;_________________________________________________ ____________________________
;
incb1: cmp @R5, #66 ; тест 66, incb decb
bne eincb1 ;
inc @R5 ;
mov #temp, R4 ;
movb #177, @R4 ;
sec ;
incb @R4 ;
jsr PC, @#$cc13 ;
mov #376, @R4 ;
mov #$cc11, R0 ;
incb (R4)+ ;
jsrR0 ; jsr PC, (R0)+ избегаем ошибки Z
;
tstb -(R4) ;
tst -(SP) ;
mov R4, (SP)+ ;
clc ;
incb @-(SP) ;
jsr PC, @#$cc4 ;
cmpb @(SP)+, @(R4)+ ;
sec ;
incb -1(R4) ;
jsr PC, @#$cc1 ;
cmpb -(R4), #1 ;
beq 1$ ;
mov #241, -(R5) ;
inc -(R5) ;
halt ; ошибка incb -1(R4)
;
1$: sec ;
Как вариант, могу предположить, что у меня в проекте БК1610 что-то не правильно сделано.
Но без правок cpu у меня проект не работает.
При запуске теста 791401.MAC на моделирование затыкается на halt:
Посмотрю, что там такое
https://youtu.be/iAFUauVWrMk
Ynicky, враги стали выглядеть забавно - не обычно, как такие демоны в пустых мешках с пикселями рук - ножек. звук как в оригинале 1 в 1 !!! Скорость игры конечно всё ещё быстрая слишком, стрелочки на "мостиках" не плохо не плохо ) Зачем ты не выберешь в упрравлении кнопку пол пробить?
слушай а что с классикой и поздними версиями > http://archive.pdp-11.org.ru/gamgal.html
https://youtu.be/BG7-4tr60IY
Попробуйте "Africa" посмотреть на возможность раскраски. Забавная игра.
Попробуйте "Africa" посмотреть на возможность раскраски. Забавная игра.
удобнее когда игра-файл во вложении или прямая ссылка. И для истории темы в том числе ;-)
https://r-games.net/uploads/posts/2017-01/1484725086_5.png
(https://r-games.net/30133-spisok-igr-dlya-bk0010-11m.html)
- - - Добавлено - - -
Ynicky, Bolder Dush красота !!! ;-)
Ynicky, не пойму, в раскраске болдера во сколько цветов уложились?
- - - Добавлено - - -
hobot, согласен, исправлюсь. Так в африке всё таки возможна окраска?
Ynicky, не пойму, в раскраске болдера во сколько цветов уложились?
Пока 15 цветов из 64 (3 процессора).
Так в африке всё таки возможна окраска?
Пока не смог запустить. Похоже прерывание IRQ1 по кнопке СТОП не так обрабатывается.
Сделал возможность раскрашивать черно-белые игры 512х256. С тремя процессорами - 8 цветов на точку.
https://youtu.be/usybgnKIs-k
Сделал возможность раскрашивать черно-белые игры 512х256. С тремя процессорами - 8 цветов на точку. игрушки от ASPcorp. надо бы видео делать для обоих видов, нормал+инверсия,
по поводу конкретной игры LAND, строго ИМХО:я бы клады оставил жёлтого цвета основное тело сундука, конечно красочный назревает Garden? Там овощи фруктики всякие ))) такой же "монохромный" РАЙ внизу самом в галерее...про чертей и вседержителя молниями карающего поползновенцев )))
Вот вопрос про бильярд, где графа вроде бы "векторная" как он по ум. выглядит на вашем железе при старте?
А Land кстати какие то негодяи уже красили для КЦГД вставив туда совсем неуместный оранжевый фон и заменив клады на какие то фурики...
игрушки от ASPcorp. надо бы видео делать для обоих видов, нормал+инверсия
Я красил только для одного вида, для инверсии надо подбирать цвета другие.
https://pic.maxiol.com/thumbs2/1589007920.1845267016.landnegpos1.jpg (https://pic.maxiol.com/?v=1589007920.1845267016.landnegpos1.jpg&dp=2)
Вот вопрос про бильярд, где графа вроде бы "векторная" как он по ум. выглядит на вашем железе при старте?
Игра из галереи не запускается ни у меня, ни в BKBTL. Из другого места:
https://pic.maxiol.com/thumbs2/1589008271.1845267016.billiardcolorwhite.jpg (https://pic.maxiol.com/?v=1589008271.1845267016.billiardcolorwhite.jpg&dp=2)
А Garden получится, наверное, красивой. Будет время - займусь раскраской.
https://pic.maxiol.com/thumbs2/1589008496.1845267016.gardenwhite1jpg.jpg (https://pic.maxiol.com/?v=1589008496.1845267016.gardenwhite1jpg.jpg&dp=2)
Игра из галереи не запускается
проверю, поправлю архив, если что...
А Garden получится, наверное, красивой.
ещё бы! столько фруктов - вот типа него же может очень красиво получиться
https://r-games.net/349-digger-the.html - by Piton
https://r-games.net/348-digger.html - можно сказать классический
- - - Добавлено - - -
Ynicky, архив с бильярдом заменил в галерее, благодарю за сообщение о невозможности запуска!
Я тут вспомнил ещё Пирамиду
http://hobot.pdp-11.ru/gamimg/piram00.png (http://hobot.pdp-11.ru/tmp/piram.rar)
и конечно же PIF-PAF от ASPcorp. - да в целом не так уж мало годных игрушек для компьютера, который совсем
не для игрушек )))
https://youtu.be/bBMc5airWBM
Смотрится очень красиво. Персы двигаются рывками - это в самой игре так?
Персы двигаются рывками - это в самой игре так?
Понятия не имею. Реала никогда не было. В эмуляторе BKBTL так же.
SuperMax
13.05.2020, 15:11
Смотрится очень красиво. Персы двигаются рывками - это в самой игре так?
это так в игре
Как вариант, могу предположить, что у меня в проекте БК1610 что-то не правильно сделано.
Кажется я понял корни Вашей проблемы.
Реальный PDP-11 при байтовом обмене ожидает байт на его месте (то есть младший всегда по битам 7..0, старший - по битам 15..9) и выбор нужного (грубо говоря - увод его в биты 7..0 делается в процессоре (очень условно, просто для понимания).
Автор PDP-2011 поступил своебразно. У него эту операцию делает MMU - то есть если взять ТОЛЬКО модуль CPU из PDP-2011 (Вы же взяли только модуль CPU?) - то по идее как раз и вылезет ошибка в байтовых операциях.
И судя по тому, как Вы её решили - причина проблема действительно в этом.
Я сейчас гоняю (в том числе) модуль процессора из PDP-2011, но из за немного другого подхода к соединению модулей мне ПРИШЛОСЬ взять и MMU, но поскольку я на очень раннем этапе своего тестирования и модуль CPU мне нужен для другого, да и процессор у меня не предполагает полноценный MMU - я MMU порезал, оставив только нужные мне функционал. И там осталась авторская перестановка байт, так что у меня всё нормально работает.
- - - Добавлено - - -
Блин, и похоже этот создаст проблемы и мне...
- - - Добавлено - - -
Хотя нет, в ZeroMMU переставляется в обеих направлениях
Кажется я понял корни Вашей проблемы.
Похоже на то. Я использую только cpu без mmu. Прием в процессоре я исправил в самом процессоре. А выдача в память из процессора у меня исправлена извне.
При переходе на процессор Vslav -а пришлось убрать эти внешние исправления.
Похоже на то.
Я теперь на 100 процентов уверен :)
Я использовал первоначально полный вариант PDP-2011 - и если бы была ТАКАЯ проблема - я думаю, даже загрузочное ПЗУ от автора не сработало - а я прогонял в своё время генерацию RT и RSX - это очень нехилый комплексный тест.
Ну а навело меня на эту мысль - использование отдельных модулей из PDP-2011 - когда убирал из MMU всё лишнее - там очень чётко всплывают эти перестановки :)
Так как больше не планирую заниматься проектом, то выкладываю его как есть.
В текущей версии реализован режим 512 точек на строку и 8 цветов на точку,
так как ресурсов (внутренней памяти) FPGA на плате Marsohod3 хватило только для 3-х процессоров. Из прилагаемых раскрашенных игр только три имеют разрешение 512х256 (Garden, Land, Bolder2Dash). Остальные на 256х256, так как они были раскрашены для старой версии проекта. Я его не стал восстанавливать.
https://cloud.mail.ru/public/33VS/hNbYEnuVx
Просьба к hobot-у, если не сложно, положить проект у себя на сайте, чтобы не пропал.
Так как больше не планирую заниматься проектом, то выкладываю его как есть.
В текущей версии реализован режим 512 точек на строку и 8 цветов на точку,
так как ресурсов (внутренней памяти) FPGA на плате Marsohod3 хватило только для 3-х процессоров. Из прилагаемых раскрашенных игр только три имеют разрешение 512х256 (Garden, Land, Bolder2Dash). Остальные на 256х256, так как они были раскрашены для старой версии проекта. Я его не стал восстанавливать.
https://cloud.mail.ru/public/33VS/hNbYEnuVx
Просьба к @hobot (https://zx-pk.ru/member.php?u=7347)-у, если не сложно, положить проект у себя на сайте, чтобы не пропал.
Там! ;-)
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot