С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
В демке Binary Love тоже можно выбирать pentagon/scorpion, мультиколоров там достаточно
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Vladimir Kladov,
Версия GL действительно смотрится гораздо лучше. К сожалению, в тестах на тайминги дает примерно то же. В Aquaplane правый край горизонта дрожит. В Dark Star значек на верхнем бордюре не по середине, сполз вправо. Floatspy показывает странные значения при чтении из нечетных портов в диапазоне 0x4000-0x7fff. Линии на тесте BBG тоже не на месте. В ShockMegademo справа видна дефектная полоса. В Vectron сверху вылезла синяя полоса и последняя красная линия на правом бордюре тоже дрожит.
С эффектом снего интересно получилось. Сам по себе тест прошел нормально, и снег я увидел. Но после загрузки (без сброса) очередного снапшота (.z80) снег продолжает идти как ни в чем не бывало. ;-) Это видно на одном из скриншотов.
На всякий случай. По моим расчетам получается следующее.
При ширине 64 пикселя на бордюр будет. На реальном экране не было столько пикселей. К примеру, эмулятор Spectaculator максимум показывает 48. Скорее всего, остальные он не показывает, чтобы не портить картинку, потому что в мультиколорных программах бордюр изменяется с небольшим запасом, на экране-то всё равно не было видно. Я 64 показываю, потому что рассчитываю на другие видеорежимы, в частности 384х304. И для отладки мультиколора тоже интересно глянуть, где бордюр переходит.
FloatSpy: читаться должны значения с шины. Т.е. пиксели и атрибуты. Вот я сейчас выбрал 128К, загрузил FloatSpy, нажал T, он мне спустя время выдал Floating bus OK for ULA 128K. Кстати, там у меня изначально показывает IN() BYTE: 0, и во время и после теста тоже. Кстати, для модели 48К картинка совершенно аналогичная, только он там 48К пишет.
BBG я не в курсе, что такое. DarkStar никогда не смотрел (и не знаю, что там мультиколорного, и в чём дефект). Может, был баг, а может модель не та.
Про это я уже сказал. А вот то, что посредине ступенька, это или действительно баг (я уже так далеко убежал от последней выложенной версии, что уже не помню). А может, просто неправильно выбрана модель. Хотя если грузить с ленты, то на модель (48, 128 или +3, остальные модели не знаю точно) шок настраивается сам. Тогда был баг. Сейчас этой ступеньки у себя я не вижу. Vectron у меня тоже работает нормально, раньше снег включался для любой модели и не только когда надо, это я у себя несколько дней как поправил, не помню точно уже, но примерно так выглядело, если загрузить в пентагоне.
Я вообще давно не обновлял, потому что очень глубоко забурился в видеовывод: захотел реализовать если не все видеорежимы сразу, то сделать так, чтобы по таблицам они легко могли настраиваться, и добавление нового видеорежима стоило копейки времени и усилий. Даже вроде получилось, осталось только довести до ума гигаскрин для тех режимов, где оно есть. Доделаю не спеша, так и выложу.
Добавлено через 11 часов 36 минут
Явных мультиколоров не обнаружил. Если выбрать не тот фикс, мало что меняется. В одном месте полоски кривые (рисунок из красных кирпичей), в другом полоска на экране дрожит, хотя в правильном фиксе нет её (это где морфинг и около).
Аналогичная ситуация. Полезноа оказалась только, чтобы обнаружить, что в варианте эмулятора флопа с nodelay=0 не грузит эту демку. Пришлось вместе с FastDisk включать NoDelay.
Кстати, если известно хоть что-то реально использующее хардверный гигаскрин по порту EFF7, тоже буду рад получить инфу о таких демах/играх/просмотрах. А то реализовать вроде реализовал (а может и не дореализовал), а проверять не на чем.
Ну вот, собственно, теперь выкладываю версию 206K. Добавлено: Scorpion (с мультиколором), видеорежим 256x192 байт атрибутов на байт пикселей (hardware multicolor), Gigascreen+ (и по порту EFF7 бит 4, и автоопределением програмного гигаскрина). Полупрозрачное меню, индикация текущей модели и объёма памяти в верхнем правом углу. Улучшена загрузка с ленты и с диска, поправлен кое-где мультиколор, исправлено отцепление от захваченной кемпстон-мыши при неактивном окне эмулятора, выделение регистров мышью в отладчике.
Это похоже на правду. Я попробовал у себя ширину бордюра в 64 пикселя, и наблюдал то же самое дрожание справа.
Да, должны читаться значения с шины. Но: по нечетным портам в диапазоне [0x4000;0x8000) они читаются с задержками, и значения дают другие. Посмотрите на скриншот и не нажимайте T (в этом режиме всегда читается порт 0xff). Еще одно замечание: я говорю о модели 48K и выбираю эту модель на вашем эмуляторе на всех тестах.
Смотрите чуть выше в этой же теме, я давал ссылки. Очень полезный тест.
Скриншот был приложен в прошлом сообщении. На верхнем бордюре генерируется цветной значок.
Но здесь есть тонкость: когда прерывания ловятся в течение 32-х тактов считая с последнего такта предыдущей инструкции (INT sampling), как это и должно быть, он у меня тоже сползает, если сравнивать с тем, что дает Fuse. Но Fuse сам не безгрешен (и тому у меня набралось уже достаточно примеров), и лучше всего было бы посмотреть на реальной машине, как это должно быть.
Здесь ситуация такая. Ступенька по середине экрана -- это проблема самого снапшота. На самом деле ее не видно, но по-другому снять скриншот не получается. А полоса справа -- это тоже из-за ширикого бордюра, и у меня на широком бордюре она тоже видна. Поэтому здесь проблемы нет никакой.
Тут два пункта: синяя полоса наверху и дрожание бордюра справа внизу. Полоса, очевидно, -- это от размера бордюра (у себя не пробовал). А вот дрожание есть, и его видно на стандартном бордюре (эта линия действительно заканчивается в видимой области), и его быть не должно.
Теперь дополнения.
1) Человечек в SideWize мерцает. Мерцать не должен.
2) Тест на тайминги (см. приложение) показывает, что IR contentions не реализованы вообще.
3) Тест на Z80 (тоже приложен) находит проблемы и на флагах, и на MEMPTR. Хотя на моей реализации, сделанной по вашему же описанию, проходит оба без ошибок.
Задержки по нечётным портам я не учитывал, решил, что для мультиколора это не очень существенно. Если найдётся демка, где существенна, тогда реализую.
Первый раз слышу-вижу. Какие могут быть контенции на IR, это же просто регистры?
Теперь увидел. Позднее добавили? У меня новые темы отражаются вверху, без особой надобности вниз не листаю, поэтому не увидел. А тест действительно полезный. После того, как я подправил задержку между бордюром и изображением, сначала вроде BBG пошла, но при этом съехала MDA demo (по фотографии с оригинального реала, пульсы стоят строго симметрично). Тогда я сравнил со спектакулятором, и обнаружил, что Джон утаил секретик, а именно, в описании контенций махонькая ошибка (а он, судя по всему, её нашёл, и у себя поправил). Потом, когда я её поправил, я нашёл ещё одну ошибку, уже на игре Black Lamp мультиколор съехал. Вот поправки (но это не по данным реала, а по данным спектакулятора, получается):
PUSH dd pc:4,sp-1:4,sp-2:3 //BlackLamp old-incorrect:/pc:5,sp-1:3,sp-2:3
OUT (n),A pc:4,pc+1:4,IO:3 //corrected! (BBG)// old-incorrect: pc:4,pc+1:3,IO:4 (like IN A,(n))
И, кстати, после этих поправок на демке EEL (48К) пульсации больше не прыгают ходуном, как в спектакуляторе, а стоят ровненько. Видать, Джон что-то ещё не учёл.
Нет, все области дрожания - только из-за широкого бордюра. Достаточно поставить Large (48 пикселей), и все дрожи уходят за край. Кстати, у наших клонов, похоже, видимый бордюр был намного шире ихнего (иначе непонятно как влез режим 384х304, да и на наших мультиколорах демомейкеры область дрожания явно старались сдвигать дальше).
Вот с этим поподробнее. Я сначала поправил глупую ошибку в ADC16, а потом начал смотреть на LDA I/R, и обнаружил такую штуку. Или этот тест не учитывает баг в Z80 с установкой в флаге P/V значения 1, пока на вход ~INT активен (кроме случая, когда предыдущая команда была EI), независимо от значения IFF2. Либо тест делался на машине с коротким интом (у меня 23, а там могло быть даже 22, и то уже существенно: разница нашлась как раз когда выполнялась загрузка LD A,R, и T было 22). Но это даже не важно. А важно то, что тест несколько некорректен по отношению к командам BIT n,(HL/IX+k/IY+k) - результат зависит от предыдущих тестов. Наверняка автор не знал, как стереть memptr и привести его в начальное состояние перед выполнением тестов. Так вот, если пройти тест LD A,R/I на другом эмуляторе (я использовал EmuZWin 2.7/build 2.8), остановиться и сбросить Z80-снапшот и загрузить в EmuZGL, то дальше все тесты на memptr проходят на ура. LD A R/I я исправлять не буду, т.к. полагаю, что сделал эту команду правильно (есть даже прога какая-то, которая виснет, если баг Z80 не реализован, жаль, не помню, какая именно).
sidewiz я нашёл только в SCL, из чего вывод сделал, что он для Пентагона, мультиколор тут ни при чём тогда. А если это просто кто-то в SCL загнал, то надо оригинальный образ искать (на ВОСе не нашёл).
И вообще, граждане-господа спектрумисты! Надеюсь на вашу помощь (опять с памятью туго). Где-то мне уже разок давали тесты для 384х304 и если не ошибаюсь 512х192, но хоть убей не помню куда задевал. Куда-то сгинули. И ещё нужна какая-нибудь инфа по режиму 16с для пентагона (если такой есть). Есть куча описаний 384х304 атрибут на знакоместо, 512х192 и 256х192 атрибут на байт, и ничего такого 16с. Ну, кроме АТМовского 320х200х16с.
токо в пенте и есть пока , какая-нить инфа есть здесь: http://zx.clan.su/forum/7-28-1 , см. п.п. 4.2 16 color per pixel. К сожалению ничего более подробного нет..
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)