PC-01 Lviv
http://pc01.lviv.ua/forum/

Multicolor для ПК-01 "Львов"
http://pc01.lviv.ua/forum/viewtopic.php?f=3&t=57
Page 2 of 2

Author:  liberation [ 21 Dec 2011, 16:32 ]
Post subject: 

Quote:
Можно подробнее?
Посмотрите на Boulder Dash. И еще я где-то видел hacked by nemo. А ведь у Boulder Dash была пусть и ужасная, но заставка! Теперь она утеряна... :lol:

Author:  sadfsdfsdaf [ 23 Dec 2011, 20:20 ]
Post subject: 

Quote:
Хаер Немо, подпоявший мозги? Можно подробнее?
там спец-загрузчик во многих играх был, т.к. сливалось всё эмулятором в дампы ОЗУ, то потом модифицировалось (чтобы можно было загрузить). Что-то я восстановил до .LVT формата, что-то так и осталось в дампах. Что-то было переделано до уровня имитации загрузки с магнитофона (не мной, это было в присланном архиве). Так оно и осталось. Я не смешивал данные из разных источников, поэтому могу отследить "что откуда".

Author:  liberation [ 23 Apr 2012, 21:38 ]
Post subject: 

Неожиданное продолжение темы мультиколора для "Львова". Запустил в виртуальной машине эмуль e3000, где обнаружил любопытную настройку:
Image
"Multicolor support" - что это такое?! :shock:

Author:  Zelya [ 24 Apr 2012, 10:57 ]
Post subject: 

Может, уважаемый Антон Игнатичев подскажет? Все-таки автор эмулятора благодарит именно его за помощь по "Львову".
Ну а с моей точки зрения, поддержка мультиколора как-то завязана на синхронизацию видеопамяти и формирования изображения (приближаясь к реалу). Как я подозреваю, фича мультиколора заключалась в изминении палитры (байтов видеопамяти?) в процессе вывода изображения на экран. Например, в эмуляторе Калашникова (напомню, что наш эмуль на его основе) этой фичи нет. Там память выгребается полностью 50 раз в секунду, т.е. кадр формируется "мгновенно".

Author:  a99 [ 24 Apr 2012, 19:12 ]
Post subject: 

Неее... по части "мультиколора" Евгений со мной не советовался. В моём эмуляторе (который на современных ОС приходится эмулировать))) для эмуляции OUT 0C1H устанавливались значения DAC-регистров через int 10h. При этом, конечно же, точность эмуляции скорости выполнения программы была весьма приблизительной.

Author:  a99 [ 26 Apr 2012, 00:56 ]
Post subject: 

Quote:
Неее... по части "мультиколора" Евгений со мной не советовался.
Хе-хе, что-то с памятью моей стало...
В общем, в марте 2002-го Евгений реализовал мультиколор, который был опробован на Graphics.lvt, ожидаемо привёл к "тормозам" и был вынесен в опцию.

Author:  liberation [ 26 Apr 2012, 01:00 ]
Post subject: 

Quote:
В общем, в марте 2002-го Евгений реализовал мультиколор, который был опробован на Graphics.lvt, ожидаемо привёл к "тормозам" и был вынесен в опцию.
А в чем суть этого мультиколора? Это аппаратное или программное решение?

Author:  a99 [ 26 Apr 2012, 01:13 ]
Post subject: 

Quote:
А в чем суть этого мультиколора? Это аппаратное или программное решение?
Суть в том, что нет никакого мультиколора :)
Просто можно при эмуляции отрисовывать экран целиком при палитре, установленной на момент начала отрисовки, а можно учитывать возможность изменения палитры в ходе отрисовки, если потоки эмуляции и отрисовки жёстко не синхронизированы.
Если б у "Львова" было прерывание по обратному ходу луча, можно было б менять палитру для части экрана, а так это будут горизонтальные полосы, скользящие вверх или вниз.

Author:  ivagor [ 05 Sep 2012, 16:02 ]
Post subject:  Re:

Quote:
горизонтальные полосы, скользящие вверх или вниз
Если подобрать задержки таким образом, чтобы цикл смены цветов точно уложился в кадр, то скольжения не будет, картинка будет неподвижной.
Остается еще одна проблема - положение "расцветки" относительно картинки (или относительно границ экрана). При отсутствии прерываний вижу только один выход - дать возможность пользователю нажатием клавиши "сдвинуть расцветку" (просто по нажатию клавиши выждать некий интервал).
В E3000 (не нравится мне этот эмулятор, но альтернативы для мультиколора на львове я не знаю) получилось сделать примерно то, что я описал, но к реалу, конечно, это практически не имеет отношения.
На реале могут быть и дополнительные засады:
1. Разное торможение в активной области и "на бордюре". Это сильно затруднило бы отладку, но если сдвинуть в правильное положение, то все должно стать нормально. К слову, если время выполнения команд меняется в зависимости от того, какая часть экрана отображается, это может сильно портить биперную музыку букетом левых гармоник.
2. В любой ли момент можно изменить палитру? Понятно, что в ВВ55 можно записать в любой момент, но сразу ли это скажется на изображении? Это я предполагаю по аналогии со скроллингом на векторе, где значение из вв55 берется 1 раз за кадр.
3. Может еще что забыл.

Author:  ivagor [ 05 Oct 2012, 20:47 ]
Post subject:  Re: Multicolor для ПК-01 "Львов"

Слегка доделал первоначальный вариант мультиколора, добавил "интерактивности". Теперь можно считать это заготовкой и для реала.
Реагирует на 3 кнопки:
1. Пробел - сместить мультиколор "вниз" относительно экрана
2. Вверх - увеличить задержку
3. Вниз - уменьшить задержку
Текущая величина задержки отображается на экране в 16ричном виде.
Этот вариант подогнал так, чтобы при задержке 80h картинка была неподвижной в E3000 при включенной опции мультиколора.
Если диапазона регулирования задержки не хватит для остановки картинки на реале, то можно менять DELAY1 и DELAY2. Если картинка почти остановится, но при одной пограничной задержке полосы пойдут вниз, а при соседней - вверх, то можно еще изменить фрагмент "Точная подстройка" (добавить или убрать оттуда команды, делающие задержку).

Attachments:
frame.zip [1.36 KiB]
Downloaded 1003 times

Page 2 of 2 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/