Посмотрите на Boulder Dash. И еще я где-то видел hacked by nemo. А ведь у Boulder Dash была пусть и ужасная, но заставка! Теперь она утеряна...Zelya wrote:Можно подробнее?
Multicolor для ПК-01 "Львов"
- liberation
- Posts: 1405
- Joined: 11 Aug 2008, 17:05
- Location: Украина
- Contact:
-
sadfsdfsdaf
- Posts: 227
- Joined: 07 Dec 2010, 16:54
там спец-загрузчик во многих играх был, т.к. сливалось всё эмулятором в дампы ОЗУ, то потом модифицировалось (чтобы можно было загрузить). Что-то я восстановил до .LVT формата, что-то так и осталось в дампах. Что-то было переделано до уровня имитации загрузки с магнитофона (не мной, это было в присланном архиве). Так оно и осталось. Я не смешивал данные из разных источников, поэтому могу отследить "что откуда".Zelya wrote:Хаер Немо, подпоявший мозги? Можно подробнее?
- liberation
- Posts: 1405
- Joined: 11 Aug 2008, 17:05
- Location: Украина
- Contact:
Неожиданное продолжение темы мультиколора для "Львова". Запустил в виртуальной машине эмуль e3000, где обнаружил любопытную настройку:

"Multicolor support" - что это такое?!

"Multicolor support" - что это такое?!
Carthago delenda est, Carthaginem delendam esse
Может, уважаемый Антон Игнатичев подскажет? Все-таки автор эмулятора благодарит именно его за помощь по "Львову".
Ну а с моей точки зрения, поддержка мультиколора как-то завязана на синхронизацию видеопамяти и формирования изображения (приближаясь к реалу). Как я подозреваю, фича мультиколора заключалась в изминении палитры (байтов видеопамяти?) в процессе вывода изображения на экран. Например, в эмуляторе Калашникова (напомню, что наш эмуль на его основе) этой фичи нет. Там память выгребается полностью 50 раз в секунду, т.е. кадр формируется "мгновенно".
Ну а с моей точки зрения, поддержка мультиколора как-то завязана на синхронизацию видеопамяти и формирования изображения (приближаясь к реалу). Как я подозреваю, фича мультиколора заключалась в изминении палитры (байтов видеопамяти?) в процессе вывода изображения на экран. Например, в эмуляторе Калашникова (напомню, что наш эмуль на его основе) этой фичи нет. Там память выгребается полностью 50 раз в секунду, т.е. кадр формируется "мгновенно".
Неее... по части "мультиколора" Евгений со мной не советовался. В моём эмуляторе (который на современных ОС приходится эмулировать))) для эмуляции OUT 0C1H устанавливались значения DAC-регистров через int 10h. При этом, конечно же, точность эмуляции скорости выполнения программы была весьма приблизительной.
- liberation
- Posts: 1405
- Joined: 11 Aug 2008, 17:05
- Location: Украина
- Contact:
Суть в том, что нет никакого мультиколораliberation wrote:А в чем суть этого мультиколора? Это аппаратное или программное решение?
Просто можно при эмуляции отрисовывать экран целиком при палитре, установленной на момент начала отрисовки, а можно учитывать возможность изменения палитры в ходе отрисовки, если потоки эмуляции и отрисовки жёстко не синхронизированы.
Если б у "Львова" было прерывание по обратному ходу луча, можно было б менять палитру для части экрана, а так это будут горизонтальные полосы, скользящие вверх или вниз.
Re:
Если подобрать задержки таким образом, чтобы цикл смены цветов точно уложился в кадр, то скольжения не будет, картинка будет неподвижной.a99 wrote:горизонтальные полосы, скользящие вверх или вниз
Остается еще одна проблема - положение "расцветки" относительно картинки (или относительно границ экрана). При отсутствии прерываний вижу только один выход - дать возможность пользователю нажатием клавиши "сдвинуть расцветку" (просто по нажатию клавиши выждать некий интервал).
В E3000 (не нравится мне этот эмулятор, но альтернативы для мультиколора на львове я не знаю) получилось сделать примерно то, что я описал, но к реалу, конечно, это практически не имеет отношения.
На реале могут быть и дополнительные засады:
1. Разное торможение в активной области и "на бордюре". Это сильно затруднило бы отладку, но если сдвинуть в правильное положение, то все должно стать нормально. К слову, если время выполнения команд меняется в зависимости от того, какая часть экрана отображается, это может сильно портить биперную музыку букетом левых гармоник.
2. В любой ли момент можно изменить палитру? Понятно, что в ВВ55 можно записать в любой момент, но сразу ли это скажется на изображении? Это я предполагаю по аналогии со скроллингом на векторе, где значение из вв55 берется 1 раз за кадр.
3. Может еще что забыл.
Re: Multicolor для ПК-01 "Львов"
Слегка доделал первоначальный вариант мультиколора, добавил "интерактивности". Теперь можно считать это заготовкой и для реала.
Реагирует на 3 кнопки:
1. Пробел - сместить мультиколор "вниз" относительно экрана
2. Вверх - увеличить задержку
3. Вниз - уменьшить задержку
Текущая величина задержки отображается на экране в 16ричном виде.
Этот вариант подогнал так, чтобы при задержке 80h картинка была неподвижной в E3000 при включенной опции мультиколора.
Если диапазона регулирования задержки не хватит для остановки картинки на реале, то можно менять DELAY1 и DELAY2. Если картинка почти остановится, но при одной пограничной задержке полосы пойдут вниз, а при соседней - вверх, то можно еще изменить фрагмент "Точная подстройка" (добавить или убрать оттуда команды, делающие задержку).
Реагирует на 3 кнопки:
1. Пробел - сместить мультиколор "вниз" относительно экрана
2. Вверх - увеличить задержку
3. Вниз - уменьшить задержку
Текущая величина задержки отображается на экране в 16ричном виде.
Этот вариант подогнал так, чтобы при задержке 80h картинка была неподвижной в E3000 при включенной опции мультиколора.
Если диапазона регулирования задержки не хватит для остановки картинки на реале, то можно менять DELAY1 и DELAY2. Если картинка почти остановится, но при одной пограничной задержке полосы пойдут вниз, а при соседней - вверх, то можно еще изменить фрагмент "Точная подстройка" (добавить или убрать оттуда команды, делающие задержку).
- Attachments
-
- frame.zip
- (1.36 KiB) Downloaded 1480 times
Who is online
Users browsing this forum: No registered users and 1 guest

