DemonId7, а можно черно-белый вариант clbfs0_704x576.BMP сделать без кодера? В цветном варианте этой картинки я вижу 241й столбец, а в ч/б - непонятно.
DemonId7, а можно черно-белый вариант clbfs0_704x576.BMP сделать без кодера? В цветном варианте этой картинки я вижу 241й столбец, а в ч/б - непонятно.
ivagor, спасибо!
В общем, если дойдет дело до потактовой эмуляции, уже есть правдоподобный алгоритм.
(Я правда, не сверял еще выполнение из ПЗУ, но надеюсь, что там тоже все будет ок)
Но лично я пока не готов делать потактовую эмуляцию, к сожалению
А ч/б вариант - это и есть без пал-кодера. Если посмотреть цветную и ч/б картинки в режиме наложения (быстрого переключения между картинками), то видна абсолютная схожесть, просто у ч/б некоторые близкие цвета почти не различимы.
Вот и выходит, что 241-й столбец есть, просто почему-то в режиме 720x576 не виден.
Я думал, что паразитные узоры на ч/б вариантах - от пал-кодера. Но в ч/б s0in4_704x576.BMP этих узоров не вижу. Что это могут быть за "узоры"? При делании ч/б скриншотов видеовыход ПК8000 был напрямую соединен со входом тюнера и кодер был выключен?
Pyk, не знаю, насколько тебя это утешает/успокаивает, но потактовой же эмуляции 8080 ни у кого нет. С другой стороны у тебя получилась весьма точная эмуляция SCR0, которая, как я думал, без потактовой невозможна.
ivagor, ну, насчет потактовой эмуляции я немного погорячился, но примеры качественной поцикловой эмуляции есть.
Этого было бы, пожалуй, даже достаточно, чтобы учесть все нюансы этого компьютера, но у меня мотивация на это пока отсутствует
В общем, сделал новую сборку для тестирования работы с экраном и циклов ожидания:
http://emu80.org/temp/Pk8000_test_40419.zip
Исходники уже на github.
Подытожу, что сделано:
Вейты:
Длительности команд приведены в соответствие с результатами, полученными ivagor. Дробные длительности при выполнении из ПЗУ округлены до целых тактов.
В режимах 0/UNDC, если команда начинается на бордюре и заканчивается в активной области или наоборот, длительность команды берется по началу.
Ситуации, когда в разных циклах идет обращение к разным типам памяти, не обрабатываются, предполагается, что операнды всегда в ОЗУ.
Экран:
Точность эмуляции различных параметров:
- Цвет фона и текста - с точностью до точки
- Буфер знакогенератора - с точностью до скан-линии
- Остальные буферы и палитра - с точностью до 2-х скан-линий (может быть опережение на 1 скан-линию)
- Режим экрана - с точностью до кадра (некоторые параметры - до скан-линии)
- 241-я и гипотетическая 242-я точки в режиме 0 не эмулируются
Сделал более точной эмуляцию тех параметров, которые, как мне кажется, могут быть реально использованы при написании демок и т.п.
Можно, конечно, и остальными заняться, но не уверен, есть ли в этом реальная необходимость. Накручивать фичи можно долго, но нужно же на чем-то остановиться
Также поправил EI и еще кое-что по мелочи.
Если нужно сразу по горячим следам еще что-то сделать, жду соображений (и, конечно, всегда можно будет вернуться к эмуляции ПК8000 и потом)
Pyk, все круто, но я вот смещение цвета фона на 1 точку на скриншотах DemonId7 вижу только на полосе с голубым фоном. Может DemonId7 сможет сделать ч/б скриншот без "узоров" или надо попробовать другое сочетание цветов, например с черным.
Кстати, DemonId7, возник еще вопрос по ч/б скриншоту clbfs0_704x576.BMP (или 720, тут без разницы). Что-то с яркостями не то, самая яркая должна быть желтая полоса, потом голубая, потом зеленая. А у тебя самая яркая - голубая, потом сиреневая/пурпурная, потом синяя, что вобще невероятно.
- - - Добавлено - - -
Сейчас попробовал цветные скриншоты в оттенках серого - там действительно практически везде выглядывают полточки.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
ivagor, вот для сравнения:
Скрытый текст
[свернуть]
И сборка, отличающаяся от предыдущей смещением на 1 точку:
http://emu80.org/temp/Pk8000_test_40419_2.zip
Наверное так все-таки лучше?
В режимах 1/2 тоже бы проверить ± 1 точку... В сборке по ссылке выше сделал сдвиг на 1 точку как в режиме 0, так и в 1,2.
После того, как увидел в серых вариантах цветных скриншотов пол-точки (или даже меньше, треть или четверть), уже не уверен, как лучше.
Но лично мне этот вариант нравится больше, хотя это, конечно, не критерий.
Эмулировать пол-точки - это пожалуй перебор, лучше наверно как 40419_2
- - - Добавлено - - -
Я до исходников доберусь только во вторник, если DemonId7 не истратит запас терпения к тому времени, можно будет и scr1/2 попробовать. В scr1 есть еще источник потенциальных проблем точной эмуляции - 155РУ2. В оригинальных прогах РУ2 в активной области вроде никто не программировал, там могут вылезти особенности.
Смещение в режимах 1/2 будет не так заметно, так как оно будет видно только на стыке бордюра и активной области.
А с РУ2 можно, конечно, поэкспериментировать, не уверен только, что это может оказаться полезным на практике: можно ведь вместо извращений в режиме 1 просто использовать режим 2. Разве что для экономии памяти?
Практического смысла в программировании РУ2 на лету особого нет, разве что действительно довести косплей спека (PICSC1) до логического конца и раскрасить. Там возможно вылезет бяка, например на векторе программирование РУ2 в активной области сопровождается светлой точкой, которая несколько портит картину. Но ни один эмулятор такую ерунду не эмулирует и это даже хорошо. Нормальные люди рисовали бы в SCR2. А может окажется, что на ПК8000 РУ2 и нельзя программировать в активной области.
- - - Добавлено - - -
Pyk, просмотрел начало темы и увидел прикол. Рассуждения там рядом далекие от правды, а вот картинка интересная тем, что теперь в emu80 можно получить почти такую. Надо включить смешивание кадров и удачно выбрать момент для клика курсором на заголовок окна эмулятора (кликаем, держим и похожая картинка застывает). Регулировка бордюра клавишами вверх и вниз.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)