PDA

Просмотр полной версии : Вектор-06Ц: Эмуляция - бордюр и скроллинг



ivagor
09.10.2009, 22:38
Эмуляторы все ближе к реальному вектору, надо бы разобраться и со скроллингом. Вот как бы тестик
13680
В b2m, VV и ve27 работает по-разному, а на реале, надеюсь, совсем иначе :).

Еще забыл в readme написать, что шрифт взят у b2m :)

Ramiros
09.10.2009, 22:59
Чес говоря непонял в чем тест заключается и что должно быть?

b2m
09.10.2009, 23:24
А я, в свою очередь, выдернул шрифт из тестов таймера i8253*.rom :)
Как я понял этот тест проверяет, а что же будет, если скролл изменить в определённый момент, когда "луч" находится в определённой точке с определённой координатой X, которая зависит от задержки. Сразу скажу, у меня в эмуляторе это не предусмотрено.

Tim0xA
10.10.2009, 00:10
В b2m, VV и ve27 работает по-разному, а на реале, надеюсь, совсем иначе
На реале при любых задержках картинка стабильна. Прилагаю три скриншота. Халтурите, господа эмуляторщики ;)

ivagor
10.10.2009, 06:47
Честно говоря я надеялся, что изменение регистра скроллинга, если не в любой момент, то хотя бы в некоторые моменты при отрисовке картинки будет успешным. Т.е. думал, что будет ближе к b2m или VV, а оказалось, что правильно работает только ve27 :(.

---------- Post added at 08:47 ---------- Previous post was at 08:39 ----------

Мне все же интересно, почему так? svofski, b2m - скажите что-нибудь умное по этому поводу.
А может, если сделать дискретность изменения задержки меньше, то найдется "уязвимый" момент, или все же дергать экран при его отрисовке на векторе принципиально невозможно?

b2m
10.10.2009, 12:08
Блин, я ведь видел, как организован скролл, но почему-то не задумался о том, он задаётся на весь кадр - значение порта скроллера записывается в счётчик адреса по кадровому импульсу, а дальше счётчик просто увеличивается. Но это сделать как раз проще простого.

Ramiros
10.10.2009, 13:13
Tim0xA, а запусти macsit.rom на реале, там в заставке растровый эффект на бордюре, и что интересно на шесть линий там тратится 1140 тактов, что соответствует 190 тактам на линию (должно быть 192), теоретически должен быть косяк внизу с права на бордюре, хотелось бы увидеть скриншот

svofski
10.10.2009, 15:19
partscrl у меня держится четко (если то, что надо было сделать, это понажимать CC пока не переберутся все цифирки?). Скролл -- это просто значение, которым инициализируется счетчик строк. В середине кадра его можно менять, но в следующий раз оно занесется только в начале следующего кадра.

Это, кстати, вопрос невыясненный: по кадровому импульсу, или сигнал защелкивания снимается в момент начала видимой области. Нужен еще тест.

ivagor
10.10.2009, 15:37
Это, кстати, вопрос невыясненный: по кадровому импульсу, или сигнал защелкивания снимается в момент начала видимой области.
Это почти телепатия - как раз сижу и пялюсь в схему и техническое описание.
Момент важный, т.к., если я все правильно понял, можно опрашивать клавиатуру без ущерба для изображения не только сразу после прерывания, но и во время отрисовки изображения. Главное - чтобы к моменту (который нужно уточнить) переписывания в счетчик в порту 3 было нужное значение.

---------- Post added at 17:37 ---------- Previous post was at 17:25 ----------

Вроде сигнал /WVA, по которому, судя по описанию, осуществляется запись в счетчик экранного адреса, не совпадает с сигналом, по которому происходит прерывание проца.

b2m
10.10.2009, 16:46
Судя по тому, что счётчик адреса вычитается всегда, то запись ведётся по строчному СИ перед началом видимой области.

ivagor
10.10.2009, 18:42
Tim0xA, если не затруднит, сделай еще фотку с результатом тестика
13694
Это не про скроллинг, но тоже интересно (по крайней мере мне, а b2m и svofski может уже разобрались с этим вопросом).

svofski
10.10.2009, 21:26
ivagor, если бы ты вслух прокомментировал суть теста, может быть b2m и svofski могли бы понять с каким вопросом они уже разобрались, чтобы второй раз уже к нему не возвращаться =)

ivagor
10.10.2009, 21:36
Там практически нечего комментировать - вверху экрана риски, относительно которых видно, где на бордюре нечто.

---------- Post added at 23:36 ---------- Previous post was at 23:33 ----------

Проще запустить в разных эмулях и посмотреть чем отличается. В старых и новых версиях b2m (я их коллекционирую) тоже не одинаково.

Tim0xA
10.10.2009, 23:08
Скриншоты с реала

ivagor
11.10.2009, 07:13
Риска не совпала - еще один момент, который нужно поправить в эмуляторах.

---------- Post added at 09:09 ---------- Previous post was at 09:01 ----------

Насчет macsitа - вполне возможно, что на большинстве обычных ТВ "недорисованности" бордюра справа внизу не было видно, т.к. отображаемая область была уже, чем захватывает тюнер.

---------- Post added at 09:13 ---------- Previous post was at 09:09 ----------

Обратил внимание, что в border не только несовпадение с риской, но и в верхнем левом углу "черный пробел" - этого я не понимаю.

ivagor
11.10.2009, 15:04
Вернемся к скроллингу
13706
CC - увеличение задержки
УС - уменьшение
РУС - начальное значение (я задал 7Ah)
Цель теста - найти момент, когда в D24 и D25 записывается значение из порта 3. В ve27 это 7Eh (последнее до) и 7Fh (первое после). Для большей наглядности еще можно следить за моментом и по бордюру.
Возможна ситуация, когда момент записи попадет не между mvi a,127/ out 3 и mvi a,255/ out 3, а между mvi a,255/ out 3 и mvi a,127/ out 3 - тогда скачка не будет. Простейший способ борьбы с этим - "подстроить фазу" nopами, которые закомментированные стоят до метки delay. Т.е. надо их раскомментировать по одному и перекомпилировать тест, и так пока не появится скачек.

b2m
11.10.2009, 15:28
Обратил внимание, что в border не только несовпадение с риской, но и в верхнем левом углу "черный пробел" - этого я не понимаю.
Шириной в левую часть бордюра. Видимо, это сигнал гашения запаздывает, такая вот логика. Опять где-то сэкономили.

ivagor
11.10.2009, 15:31
Шириной в левую часть бордюра. Видимо, это сигнал гашения запаздывает, такая вот логика. Опять где-то сэкономили.
Может это доработка синхры, которую сделал Tim0xA, чтобы сигнал лучше соответствовал ТВ-стандарту, так сказалась?

b2m
11.10.2009, 16:24
Нет, это похоже связано с тем, что цвет бордюра задерживается в сдвиговом регистре на 8 точек, прежде чем он на экран попадает. У меня тоже теперь такая полоска есть, после того как я подвинул бордюр в соответствие с реальным скриншотом. Только вопрос, почему нужно было задержать на 10 точек, а не на 8. Хотя по скриншоту трудно сказать - 10 или 9.

Ramiros
11.10.2009, 16:38
Чето я невкурю, почему в тесте clrspace.rom в сдвиговый регистр записано 0, что соответствует максимальному сдвигу вниз, а на реале и в b2m его невидно? или порт проинициализировать забыли?
Нуда, порт 0 непроинициализирован :(

В общем разобрался, инициализация портов происходит в начальном загрузчике, а в програмке clrspace.rom вообще нет обращения к порту скролинга. Это ни есть гуд.

b2m
11.10.2009, 19:18
Ещё раз просматривал схему, не нашёл подтверждения наличия полоски вверху. Не буду я её делать. :)

Tim0xA
11.10.2009, 22:56
Вернемся к скроллингу
scrltst.zip
На реале, как в ve27: 7Eh (последнее до) и 7Fh (первое после) для теста с 4-мя NOP-ами.

ivagor
12.10.2009, 06:49
На реале, как в ve27: 7Eh (последнее до) и 7Fh (первое после) для теста с 4-мя NOP-ами.
Скорее почти как в ve27, т.к. пришлось раскомментировать 4 nopа, т.е. задержать дополнительно на 16 тактов.

b2m
12.10.2009, 11:56
Обновил эмулятор, подвинул бордюр.
А с последним тестом я так и не понял, правильно у меня или нет.

ivagor
12.10.2009, 12:30
А с последним тестом я так и не понял, правильно у меня или нет.
Пока нет. В scrltst раскомментировал 4 nopа (т.е. привел к варианту, результаты которого написал Tim0xA) и попробовал в твоем эмуляторе - у тебя скачек при переходе от 81 к 82, а на реале - при переходе от 7E к 7F.

Чтобы поставить точку в разборках со скроллингом, сделал прецизионный тест 13717. В нем дискретность изменения задержки 4 такта (1 nop).
Результаты в эмуляторах:
ve27
Первый скачек: 0F - 10
Второй скачек: 13 - 14
b2m
Первый скачек: 3F - 40
Второй скачек: 43 - 44

Не хватает результата на реале, Tim0xA :v2_wink2:

ivagor
12.10.2009, 12:50
b2m, еще одно пожелание по эмуляции вектора - у тебя сейчас ширина бордюра по бокам - 16 точек с каждой стороны. Вместе с активной областью это 48 мкс, что, конечно, соответствует ширине реально отображаемой большинством ТВ, но:
1. Тюнер (как видно на скриншотах Tim0xи) может захватывать практически всю активную ширину строки
2. В техописании вектора сказано, что ширина бордюра по 32 точки с каждой стороны (стр. 7 из 124 страничного сборника, справа внизу)
3. Для некоторых компов у тебя отображается фактически 51,2 мкс :)

Может добавишь, если не по 16, то хотя бы по 8 точек справа и слева?

b2m
12.10.2009, 13:17
Можно и добавить. Я сначала по 32 с каждой стороны сделал, но смотрится это отвратительно :) Мне не понравилось, и я сделал по 16, так как подумал, что всё равно телевизор отъедает часть бордюра.

ivagor
12.10.2009, 13:59
Тогда может так - добавь в конфиг настройку full/wide/complete/"или еще как-нибудь"border=0/1. Нормальные люди будут использовать вариант 0 (наверно лучше если он будет по умолчанию), а извращенцы вроде меня будут включать полный бордюр.

Ramiros
12.10.2009, 20:06
Это получается что здвиговый регистр перезаписывается только во время обратного хода 16-й строки т.е. перед самым началом отрисовки изображения ?

Tim0xA
13.10.2009, 00:50
Не хватает результата на реале, Tim0xA
1й скачок - из 13 в 14
2й скачок - из 17 в 18

Ramiros
13.10.2009, 09:05
1й скачок - из 13 в 14
2й скачок - из 17 в 18

получается самое начало 16-й строки

b2m
13.10.2009, 13:02
Обновил эмулятор. У меня получается за 8 точек до начала информационной части 16-той строки, хотя может это фича только моего эмулятора, но тест теперь правильно "скачет". :)

ivagor
14.10.2009, 21:33
Попробовал bord и scrltst2 - результаты как у Tim0xи, т.е. его доработка не повлияла на временные параметры бордюра и скрола.
Запускал nqsnail (последний вариант). Все ОК, только улитка шахматная, но я думаю, что это не является неожиданностью.
Результаты Теста Устройств кратко в ветке с барахолкой.
Еще запускал tank, тест техпрогона (недолго), все ОК.

svofski
21.10.2009, 14:43
Я чего-то не могу скачать ни одного вложения из этой ветки, наверное они испортились. Можно мне заново залить тест с рисками и прецизионным скроллом?

ivagor
21.10.2009, 15:03
Пардон, это я их испортил, думал все уже скачали

svofski
21.10.2009, 15:12
Спасибо! Ты уж их не удаляй, вдруг когда еще кому пригодятся.

Tim0xA
21.10.2009, 15:38
Я думаю, надо эти тесты в картотеку выложить, если ivagor не против.

ivagor
21.10.2009, 16:04
он не против

Tim0xA
27.07.2012, 00:05
Обещанного три года ждут. Наконец-то тест в картотеке ----> (http://www.sensi.org/~svo/scalar/ware/861/)

Господа эмуляторщики, Ramiros, b2m, может все-таки сделаете в своих эмуляторах бордюр реального размера? Слева-справа по 32 точки, а сверху-снизу по 16. Можно опционально.

А то взялся освежить свой эмулятор Вектора для Dingoo, надо с чем-то сравнивать, отлаживать растровые и бордюрные эффекты, а у вас бордюр обрезанный.

b2m
27.07.2012, 10:50
Господа эмуляторщики, Ramiros, b2m, может все-таки сделаете в своих эмуляторах бордюр реального размера? Слева-справа по 32 точки, а сверху-снизу по 16.
Сверху-снизу у меня именно столько и есть, да и слева-справа тоже по 32 точки, в режиме 512х256 :)

Tim0xA
27.07.2012, 13:07
слева-справа тоже по 32 точки, в режиме 512х256
Да мне бы в режиме 256х256