Не могу найти какую-нибудь вразумительную прогу для Pentagon 128 для проверки видео таймингов.
На одном из сайтов нашел скрин:
http://zx-pk.ru/attachment.php?attac...&thumb=1&stc=1
Что это за прога и где скачать можно?
Вид для печати
Не могу найти какую-нибудь вразумительную прогу для Pentagon 128 для проверки видео таймингов.
На одном из сайтов нашел скрин:
http://zx-pk.ru/attachment.php?attac...&thumb=1&stc=1
Что это за прога и где скачать можно?
Неужели хочешь проверить правильность таймингов в MiSt-e ?
Ну именно этот тест от великого VNN не нашелся сразу,земля ему пухом, но другой нашелся, в архиве.
Там же есть парочка тестов для проверки таймингов 48к и 128к.
А вообще то тайминги Пентагон-а правильно проверять в Rage в полной версии, но доооолго.. Поэтомуу в архиве только усеченная.
А что в этом удивительного?
Я написал эмулятор ZX Spectrum 128 с таймингами идентичными оригинальному с ULA.
Теперь хочу сделать опцию переключения на тайминги Pentagon 128, а каких-то понятных тестов не нашел. Есть некоторые демки, но по ним сложно понять как должно выглядеть и что именно неправильно.
Кстати, а на Speccy2010 тайминги идентичные оригинальному Pentagon 128?
Так я буду проверять на соответствие таймингам Speccy2010 или Pentagon 128? Или они одинаковы?
ну как бы сказать поточнее...
Если считать дему RAGE идеалом для Pentagon 128, то на всех без исключения эмуляторах , сам можешь проверить, вертикальные линии совпадают.
Но реальщики говорят, что вроде как есть расхождение на 1 пиксель. Или у авторов Rage был другой Пятногон, или будем все же равняЦЦа на эту демку , и примем ее за эталон. 1 пиксель можно подвинуть в эмулях, в программе его не подвинешь, там шаг 2 пикселя минимуум. Так что будем считать, что "Ашхабад - ТАМ!" (с) Кин-Дза-Дза
ULA48 и ULA128 - это для оригинального Spectrum с ULA чипом или всё-таки для Pentagon?
Что не верится, потому как на обоих вариантах кракозябры на бордюре.
Причем проверенные тесты ввиде Shock Megademo, Auquaplane и Darkstar выглядят правильно.
- - - Добавлено - - -
Test Border выглядит вот так:
http://zx-pk.ru/attachment.php?attac...&thumb=1&stc=1
Понятно, что синяя полоса как бы намекает что нужно сдвинуть влево. Но вот других реперных знаков я не наблюдаю.
Я, так понял, вы сами такие тесты можете делать. Не моли бы вы сделать тест бордюра с рамкой вокруг самого скрина. Таким образом будет понятно сколько надо сдвинуть по горизонтали и вертикали.
по Rage как-то непонятно. Такой впечатление там быстродействия сильно нехватает, ибо на бордюре картинка раза в 2 больше чем надо.
При этом скриншот выше показывает, что нужно только сдвинуть сигнал вертикальной развертки.
В Rage помимо бордюра используются какие-то еще особенности железа Pentagon 128?
- - - Добавлено - - -
zebest,
в Darkstar не линии а рисунок из квадратиков в верхней части бордюра.
Я не знаю какой эмулятор правильный. Попробую в спекуляторе, если говорите что там правильно.
А... понял из-за чего тормоза. В ULA 312 строк, а в Pentagon 128 - 320.
Теперь только надо сдвинуть INT.
- - - Добавлено - - -
Хмм. Похоже, у меня как у оригинального Pentagon 128 (судя по вашим словам) не получается совместить бордюр точно с пиксельным изображением. Либо туда один пиксел, либо сюда.
В моем эмуляторе используется точная модель Z80 (A-Z80), а не примерная как T80 - поэтому и недочет как у железа.
А в какую сторону сдвиг у бордюра? на пиксель вправо или влево?
ну по поводу точности эмулирования процов - это можно отдельно поспорить, кто точнее и на совсем других тестах. Поэтому слово "примерная" - это пусть останеЦЦа частным мнением :) К формированию картинки и растра - это никаким боком.
В оригинальном Speccy2010 у SYD-a тоже сдвиг на один пиксель. Я уж не помню, как "извратился" и подвинул ровно - вроде как фазу тактирования перевернул, надо бы в исходники глянуть, может что и вспомниЦЦа.
Так что 1 пиксель несхождения - это нормально. В какую сторону в нативных - а х.з. , надо по форуму поискать, вроде была картинка. Ну или попросить владельцев...
Так а что с оригиналом Spectrum 128 с таймингами?
Я пока занимаюсь таймингами Pentagon 128. Как только закончу, вернусь к Spectrum 128.
тут какая-то странная картина вырисовывается.
Смотрите два скрина.
Я подогнал начало INT по Rage. Получилось практически точно (за исключением сдвига на пиксел).
А вот в ZebestTest сдвиг очень сильный.
Как так может быть?
Вложение 55860Вложение 55861
- - - Добавлено - - -
что интересно, в случае Rage, смещение на 1 пиксел стабильно. А вот в Zebest при каждом запуске разное. Как-то заколдованный тест. Не могу понять почему так.
Желательно запустить несколько раз. Для удостовериЦЦа. Может быть запросто. Настройка на первый такт не работает или слетает. Тем не менеее большинство эмулей с моей прогой согласны :) и можно и других пару-тройку найти, в которых будет ровно работать...
Скрытый текст
А вот этот вопрос уже к точности эмууляции процессора и команд)) В т.ч. недокументированных) а такие в тесте точно есть))
Расскажите как происходит настройка на первый такт. Если там не большой участок кода, то не могли бы его тут привести чтобы мне знать где искать. Это же ваш тест?
zebest,
у вас все демки в scl формате, который не поддерживается в моем эмуляторе. Приходится извращаться конвертирую в trd или sna.
Причем, похоже в trd не всегда корректно конвертируется.
Вообщем, судя по всему все ваши демки синхронизируются нестабильно. То есть, каждый раз разное смещение, как вы и сказали.
Приведите пример обоих настроек, если не уверены какую именно использовали.
Мне хотя бы понять что используется для этого и где искать.
Что интересно, Rage всегда одинаково синхронизируется. Еще EyeAche правильно работает. Там, правда эффекты не на бордюре, а на самом экране, но тоже очень точно надо выдерживать тайминги.
- - - Добавлено - - -
Сравнивать с компьютерными эмуляторами неправильно, ибо там принцип эмуляции "оффлайновый", в отличие от FPGA.
goodboy,
А в чем подвох может быть в этой простой команде? Объясните.
хмм.. ничего особенного не вижу. Думал, что там какие-то хитрые чтения с портов или еще что-то.
- - - Добавлено - - -
Расскажите поподробнее, что за TS-Conf?
Судя по всему этот unreal распространяется в разобраном виде: ни РОМов ни конфигов. Там хрен поймешь что и куда. Я уж даж не говорю чтобы что-то протестировать в нем и увидеть разницу.
- - - Добавлено - - -
zebest2016 не работает. Появляется скрин с черным бордюром, а через секунду ресет наступает.
Это еще одна из сказок Шахеризады. Можно 1000 и одну ночь рассказывать. Конфа Пентевы с блек-джеком, институтками, тайлами и спрайтами, которую вполне можно попытаЦЦа портировать да жи на MiSt. Адепты оной есть по обе стороны баррикад:) Unreal настроенный, из-каропки, там же
http://zx-pk.ru/showthread.php?t=261...l=1#post854800
Скрытый текст
http://s1.micp.ru/cSiP0.jpg[свернуть]
так по идее выглядел бы тест на реальной Пентеве, и на правильном эмууле, но чет в последней версии они кое-что поломали, или оптимизировали. Художникам - виднее.
ну что, не поленился, включил Speccy2010. Обе версии работают ровно. Какая отсюда мораль ?
Запустил Shock Megademo на якобы самом правильном эмуляторе Spectacular в режиме Spectrum 128 и... упс... Не работает первая часть с цветными полосами. Эмулятор в ресет уходит. Зато ваш тест ULA128 на нем работает правильно. Такое впечатление, что тест этот для эмуляторов написан, а не для реального Spectrum 128.
У Spectrum 128 и Pentagon 128 одинаковое количество тактов в строке 224. Однако ваш ULA128 на моем эмуляторе имеет косые искажения вертикальных линий, что по определению быть не может. Рисунок может сдвинуться вверх/вниз, но никак не по диагонали.
Но и по вертикали он сдвинуться не может, потому как Shock Megademo 100% писан для Spectrum 128 и несовпадение даже на одну линию по вертикали сильно исказит радугу.
Отсюда вывод - ваш ULA128 тест не для Spectrum 128.
Я в своем эмуляторе использовал модель ZX_ULA с Opencores - он основан на восстановлении модели посредством спиливания реального кристалла.
- - - Добавлено - - -
Выводы по SNA файлу делать нельзя. Нет уверенности в полной совместимости системы. Вы-то наверняка снапшот на прошивке Pentagon 128 делаете, а уменя прошивка Spectrum 128. В ОЗУ могут мешать какие-то данные, не совпадающие между прошивками.
Нужно TAP или TRD чтобы прога загрузилась правильно и выполнилась сначала, а не с сохраненного момента.
- - - Добавлено - - -
Ан нет. 224 это у ZX48.. 228 у ZX128 Опять ребус... Но Shock Megademo на Spectacular в ZX128 не работает. Только в ZX48 и без звука.
[off]
Где баг репорты? :) То, что ваш тест неправильно показывается - это беда, и уже догадываюсь почему. В ближайшее время постараюсь исправить. По идее, если загрузить с диска, например, то будет работать правильно (главное чтобы сервис меню отрабатывало и настраивало "железо").
А out (c), 0 в конфиге настраивается.
[/off]
Кстати, раз разговор про тесты таймингов, не подкинете аналогичных для скорпиона?
zebest,
я совсем недавно на этом форуме, потому не весь жаргон улавливаю.
Где искать этого zst. Это его ник на данном форуме или где?
- - - Добавлено - - -
Кстати, тайминги в Shock Megademo переключаются автоматически между ZX48 и ZX128. То есть поддерживаются режимы 224х312 и 228х311. Однако, это не значит что тайминги могут быть +-лапоть. Я подвинул INT на пару тактов и сразу куча артефактов вылезла.
Но ваши тесты ULA48 и ULA128 всё равно неправильно показывают на моем эмуляторе. Диагонального сдвига больше нет, но вертикальный сдвиг неравномерный. Нижняя часть намного сильнее вверх сдвинута чем верхняя. То есть тут простыми подстройками вверх/вниз/влево/вправо не поможешь. Даже не могу понять в чем именно нестыковка получается. Вы эти тесты пробовали на реальных ZX48 и ZX128 с ULA чипом?
http://savepic.net/3410274.jpg
Кто нибудь, да и на реалах пробовал. ФСЕ!! эмуули не могут ошибаться, (и сто тысяч бурундучков - то жи) ,уж они то в этих режимах точно проверены
Просто примите за аксиому, что вот ТАК должно быть, и "пилите Шура, пилите..."(с)
Вложение 55869Вложение 55870
Судя по характерным признакам, данные тесты предполагают что тормоза Contended Memory происходят только в момент вывода пикселей, а в моем эмуляторе это происходит всегда.
Осталось найти где-то инфу на этот счет чтобы понять какой вариант правильный.
вот это предположение ближе к истине. про Contended Memory писано-переписано за последние столетия куча всего.
но это что касается 48го. в 128 вроде тут другая проблема . Скорее всего проблема и в процессоре, попробуйте заменить на "приблизительный" :))) Т80, и посмотреть, будет ли разниЦЦа.
http://zx-pk.ru/member.php?u=4746
Довольно часто появляется. Напишите в личку, может поделится программкой для народа:)
Баг-репорты?? так будут. Мне много не надо. Мне тайминги Пентагона чтобы были а5 нормальные, снапшоты грузились, zip архивы. В ts-conf-у я не лезу:)
Про "out (c), 0 в конфиге " - не знал. посмотрю, видимо недавно опция.
Про аналогичные картинки для Скорпиона - сложно. Вернее нарисовать не сложно, сложно живых владельцев найти, для тестирования. А так еще рисовал для ZXM c его замороченными таймингами, для Профи с родной разверткой, для турбо в конфе вроде тоже пробовал, интересно получается)
Это бы у эмуулеписателей поспрашивать, которые уже все знают, и которые тут есть на форуме.
а по поводу ссылок - ну из общеизвестных
http://www.worldofspectrum.org/faq/r...htm#Contention
http://www.zxdesign.info/memContRevision.shtml
http://scratchpad.wikia.com/wiki/Contended_memory
Парочка тестов существует, насколько помню. А если в исходниках и коде смотреть - попробуйте в Speccy2010 посмотреть как сделано, там ПОЧТИ правильно работает в части 48 и 128, мелочи есть, но это я придираюсь, да и попрАвлять все равно некомуу :(((
Там же, тест fusetest и contention
http://www.zxdesign.info/cpld/
Собственно проблема как раз в ts-conf'е, при загрузке снапшотов машина сбрасывается и заодно сбрасываются настроенные под пентагон тайминги.
У пентагона на данный момент в конфиге только неправильно задано начало инта (должно быть 1 вместо 13), если это поправить и задать пятногоновскую модель памяти, то казать будет правильно.
Помнится были демки предлагающие выбрать пентагон или скорпион, вот только теперь уже не уверен что это про тайминги. Могу и так посчитать, на основе старых значений анрила, но хотелось бы и проверить.
Тоже интересная вещь которую надо бы цивильно оформить. Нет ли точных цифр сколько тактов на строку, размеры бордюра, где начинается инт и всякое такое? До "расшифровки" ПЗУ синхрогенератора руки пока не доходят.
это всё по профи проверяли в zxmak2, вроде получилось. вот тема - http://zx-pk.ru/showthread.php?t=16830 . еще я ковырял синхрогенератор от тройки, вот тут описание и ссылка на пдф - http://zx-pk.ru/showthread.php?t=117...l=1#post555428
Дико извиняюсь что развёл тут злостный оффтоп, но есть ещё один вопрос по профику.
solegstar, спасибо за ссылки, стандартный режим оригинального синхрогенератора интересен, но расширенный режим гораздо интереснее. Пробежался по ссылкам, но информации по нему практически не нашёл. Кажется в теме про ZXMAK посты почищены. Или я что-то проглядел?
Если в биос-е INT Offset:1 - тогда вроде кажет ровно..Но!!!... Но другая проблема. Проверял все на том же rage_fix.trd
Если подгрузить образ, и резет-ить, чтобы он подхватился - то:
1.Если войти в биос Shift+F12 и выйти по F12 - то все Ок.
2.Если жать Ctrl+F12 - то фигня((, я так думаю врубается режим Pent512, в котором Rage не работает, или работает неправильно.
Ну и снапшоты как то не так работают, пока не разобрался
zebest, но это всё, я так понимаю, при включённой TS-Conf. Собственно, как я и писал, при сбросе куда угодно кроме Service ROM всякие регистры, в том числе отвечающие за INT Offset оказываются не настроенными. Значит надо сделать чтоб при ресете выставлялись дефолтные настройки под пентагон. Или брать их из вкладки ULA, надо подумать...
Но я всё-таки говорил про чистый пентагон, как, например, в этом конфиге: https://yadi.sk/d/g1WUndQFoKpzG
- - - Добавлено - - -
Поглядел исходники, так понимаю что:
- тактов на строку: 192
- бордюр сверху: 8 строк
- бордюр снизу: 8 строк
- бордюр слева: 16 тактов (64 точки), в комменте - real 3.xx=6
- бордюр справа: 16 тактов (64 точки), в комменте - real 3.xx=10
- 64 строки (72 - 8) вертикального бланкирования (слово-то какое, никак blanking не могу из головы выкинуть)
- 32 такта (128 точек) горизонтального бланкирования
Смущает что итого 320 строк на кадр, это как-то по пентагоновски.
рекомендую ветку прочитать вот здесь с середины страницы:
http://forum.tslabs.info/viewtopic.p...t=20&start=225
может многое проясниться.
Вообщем смотрел синхрогенератор SAMX6 от третьего Профи, наверняка в 5.0х тоже самое. прошива у пятерки чуть измененная, но на построенние изображения оно не влияет. Итак:
1. начало кадра:
- 16 строк невидимого бордюра + кадровый импульс.
- еще 16 строк невидимого бордюра.
2. Верхний видимый бордюр:
- 16 строк.
3. экран:
- 240 строк
4. Нижний видимый бордюр + начало Int:
- 16 строк.
5. Нижний невидимый бордюр:
- 8 строк.
Всего: 312 строк. :)
Далее:
- 8 тактов проца = 32 пиксела.
- длина строки в тактах: 24 байта х 8 = 192 такта.
- невидимый правый бордюр: 32 пиксела.
- видимый правый бордюр: 32 пиксела.
- невидимый левый бордюр: 32 пиксела.
- видимый левый бордюр: 32 пиксела.
такс, немного просчитался. тактов таки 192. левый невидимый бордюр 32 пиксела, а не 96. это если следовать аналогии с первой половиной.
получается так: 32 + 32 + 512 + 32 + 32 + 64 (строчный импульс) + 64 бланк = 768/4 = 192.
да, именно так.
- - - Добавлено - - -
посмотри схему профи 3.2 и картинку из 42 сообщения, когда меняется кварц на 12мгц, то тактирование счетчиков синхрогенератора не меняется, по сравнению с синклер-режимом, там один байт прошивки соотв. 8 тактам Z80. теперь смотрим картинку и сигнал FLD1 - он определяет папер(1)/бордюр(0), считаем байты и зная, что папер у нас 512 точек получаем 32 пиксела на байт, т.е. 4 точки на такт.