Инджой: https://zx-pk.ru/threads/23797-testi...l=1#post958611
Вид для печати
Интересно, на пентеве этот глюк есть, или же только на классическом Пентагоне?
Точная эмуляция - это не только возможность отследить всякие 'малоприятные нюансы'. Это так же переносит на PC абсолютно точную копию реала, что дает возможность этот самый реал убрать на антресоли или же не иметь его вовсе.
На пентеве нету, насколько я знаю, по крайней мере пока. Но реализовать, скорее всего, несложно.
Абсолютно точной копии реала не получится. Эмулятор есть эмулятор, реал есть реал - он имеет форму, дизайн, теплоламповость. В плане эмуляции тоже всегда есть куда расти обычно. Вот вчера я узнал, что вроде бы у Пентагона тоже возможны полоски на границах знакомест при одинаковых цветах пикселей слева/справа. Тоже можно сэмулировать, если озадачиться. А завтра ещё какая-нибудь особенность может всплыть. Неподдерживаемые 50Гц на многих современных мониторах тоже ограничивают точность эмуляции.Цитата:
Точная эмуляция - это не только возможность отследить всякие 'малоприятные нюансы'. Это так же переносит на PC абсолютно точную копию реала, что дает возможность этот самый реал убрать на антресоли или же не иметь его вовсе.
Но да, я тоже считаю, что хороший эмулятор дает возможность убрать реал на антресоли, или не иметь его вовсе.
Да, у моего пентагона такое было. И не только у моего. Поэтому, когда релизили игры, картинки преобразовывали так, чтобы не было двух соседних по горизонтали знакомест, у которых взаимоинверсные атрибуты. После этого преобразования всякие вертикальные полосы на границах знакомест пропадали.
- - - Добавлено - - -
Кому-то нужен дизайн корпуса для аутентиности, а кому-то и нет.
Лично мне нужен абсолютно точный функционал. А уж какая там клавиатура - без разницы.
Да, и, заметь, реверсинжениринг ВГ93 еще так никто и не доделал. А без него о точной эмуляции TR-DOS можно пока забыть.
Абсолютная точность эмуляции - вещь хорошая, но, насколько я понял в процессе разработки, она как ассимптота - к ней можно приближаться бесконечно близко, но достигнуть невозможно. Всплывают новые детали работы реалов, появляются более сложные тесты, и т.п., код эмуляции дополняется, и т.д. Но всегда можно поставить планку достаточной точности эмуляции.
Возможно, но тем не менее, ВГ93 как-то эмулируется, более или менее точно. С каждым годом точнее) 90+% софта работает ок, если всплывает неработающий, эмуляция фиксится.
Кроме ВГ93, есть масса другой периферии, и ожидать абсолютно точной эмуляции всей этой периферии, я считаю, неправильно. Есть достаточная точность эмуляции, и ок. Выкрутасы с недокументированными возможностями дело интересное, но времяёмкое, и малополезное, я не думаю, что сейчас кто-то будет писать демы, программируя напрямую ВГ93. Приходится ведь учитывать и эмуляторщиков при разработке софта.
- - - Добавлено - - -
Ну что сказать. Теоретически в Эмбаркадеро Делфи код можно перекомпилить и под Linux, и под MacOS. Практически я пока не вижу тенденций для выхода релиза даже под винду.
Вот тут я с тобой не соглашусь. Если есть точный реверс Z80, ВГ93, AY, то при грамотном эмуляторописателе можно получить эталонный эмулятор, в котором все будет эмулироваться идеально. Это в случае Пентагона, сехма которого проста и доступна. Про Юлу не знаю, не интересовался.
Кстати, обрати внимание на то, как сделан эмулятор ZXMAK2. Там есть целых 3 (если я точно помню) режима синхронизации с кадровой разверткой и звуком, и один из них дает очень хороший результат на 60Гц мониторе, при том, что эмулируется, скажем, пентагон с его 48Гц. Всякие там Spectaculator'ы и т.д. при таком биении частот ощутимо дергаются.
Теоретически да. Теоретически можно любое устройство разложить по полочкам и сэмулировать детально. Практически эмуляторы часто пишут программисты, не особо близкие к железу, на основании спецификаций и экспериментов.
Попробовал, на своем 60гц мониторе особой разницы не заметил на всех трех режимах.
хреново оно эмулируется.
я даже больше скажу - нормальной эмуляции FD17xx-подобных контроллеров еще не существует в природе, и это доставляет проблемки при эмуляции множества самых разных компьютеров, в которых они использовались.
суть в том, что FDC это такой простенький процессор / стейтмашина / DSP, работающий по внутренней микропрограмме, шагает по ней как и обычный проц.
ну а имеющиеся реализации являются "HLE уровня комманд" разной степени паршивости, основанные на имеющейся документации, довольно скудной, уровня "для пользователей", не раскрывающей детали внутреннего устройства.
Ну а что делать - что есть, то есть, а чего нет, того нет. Может, кто-то озаботится реверсом, рано или поздно. Эмулировать по микропрограмме всяко проще и удобнее, чем на основе скудной документации.
High Level Emulation, я так понимаю.
к сожалению, не так и много - на этом форуме пару человек ВГ93 занимались вроде, но больше года как ни слуху и духу.
плюс, еще один знакомый француз (Olivier Galibert) разбирал фотки импортных FD17xx (или WD17/WD27 ?), и тоже медленно и печально, сколько лет прошло а прогресса нет.
и всё, больше заинтересованных вроде не было...
Ты предлагаешь в какой-то мере кота в мешке. С чего обычному пользователю вдруг вдохновиться каким-то новым эмулятором и поверить, что он будет на голову выше и удобнее? И за это заплатить денюшки вперед.
Вот если бы ты его сперва выпустил, все поняли, какой он крутой, и если бы захотели задонатили тебе денюшку после.
Только что нашелся ещё один человек, с этого форума, заинтересованный в новом релизе Спектрамина, который даже не стал заморачиваться с пледжем, а просто задонатил, причем довольно крупную сумму.
Спасибо ещё раз! Это мотивирует) Ник не указываю (не знаю, как на это посмотрит донатор), но это земляк)
Я не помню, обсуждалось то или нет - как ты синхронизируешь видео и звук?
Да, конечно - планируемый интерфейс монитора можно увидеть на скриншоте в правом верхнем углу здесь: https://zx-pk.ru/threads/28130-novyj...=1#post1011452
Мощный монитор для меня изначально был одним из стимулов к разработке своего эмуля.
Я же даже тему открывал здесь: https://zx-pk.ru/threads/25563-spons...adchikom).html
Ну собственно shurik-ua и есть этот щедрый донатор)
не знаю как там в эмузвине - но лучший дизайн отладчика это x64dbg - https://github.com/x64dbg/x64dbg/releases - имхо
хотя идея с отдельными окнами выглядит неплохо
видимо - sprite-finder или font-finder - чтото в этом духе
довольно интриги - колись уже )
Про гигаскрин я вообще молчу.
Нужна плавность скроллов и всего такого прочего пофреймового. Спектакулятор, например, такое не может. А тот же ZXMAK2 справляется гораздо лучше. И это именно в случае 50Гц спек, 60Гц моник.
А есть еще проблема синхронизации, когда и спек, 50, и моник, 50, а все равно хорошей синхронизации видео и звука нет, т.к. всплывает много раз обсуждаемая тут проблема точного подсчета проигранных семплов за кадр.
Не знаю. Возможно я не настолько гурман, но я особо не замечал проблем с плавностью скроллов у большинства нормальных эмуляторов.
И проблем синхронизации видео со звуком тоже особо не замечал. За один кадр эмуляции выводится одна картинка и один звуковой отрезок, какие проблемы?
Плюс-минус один звуковой сэмпл в кадре вроде бы не мешает.
Если не трудно, озвучь названия дем/игр, на которых заметны вышеописанные проблемы, и ссылку на обсуждения точности подсчёта проигранных сэмплов за кадр.
В любой деме, интре, где есть плавный скролл, будет заметна эта самая неплавность.
- - - Добавлено - - -
Это огромная проблема)
Сложно все пересказать. Почитай темы про это на нашем форуме, там очень долго все это мусолили и эксперементировали.
Если очень кратко, то, невозможно знать точно, сколько аудиосемплов выведено звуковой картой за время одного видеокадра. Это только в теории кажется, что если, допустим, частота семплов 48000Гц, а частота кадров, 60Гц, то за один кадр будет выведено 800 семплов. Но на практике это будет не 60Гц, а, скажем, 60.01Гц, и число выведенных семплов будет какое-нибудь 799.8. Таким образом, начнется рассинхрон. И, самое главное, узнать точно, сколько семплов у тебя в кадре - практически невозможно, т.к. звуковая карточка дает информацию о числе выведенных за определенное время семплов только в эксклюзивных режимах типа WASAPI Exclusive.
Возможно, но тогда я не замечаю разницы между неплавностями на разных эмуляторах, и разных режимах синхронизации ZMAK2.
Неплавность скроллов, мне кажется, всё так же обусловлена наложением 50Гц эмуляции на 60Гц монитора.
(Странно, но с фрейм-ресамплером неплавность скроллов в анриале возрастает в разы).
Даже не знаю. Синхронизация звука с видео важна для воспроизведения видеофайлов. А на играх/демо обычно музыка не особо завязана с картинкой, и даже если музыка вдруг по какой-то причине начнет отставать, этого никто на слух не заметит. Потом, даже у дем, где анимация завязана с звуковыми эффектами, я никогда не замечал рассинхронизации.
Похоже, это актуально для суперточной эмуляции, где идет подвязка синхронизации кадров эмулируемого Спектрума к кадрам монитора, у которого есть 50Гц. Тогда постепенно может накапливаться рассинхрон видео со звуком, за счет погрешностей частот звуковой карты и монитора. Но если не париться с привязкой кадра Спектрума к кадру монитора (а это малополезно для 60Гц мониторов), рассинхрона не будет. А неплавность будет в любом случае (для не 50Гц мониторов), только она будет чуть более неравномерной.
В том-то и дело, что я, и многие другие спектрумисты юзают 50Гц.
Когда я писал свой эмулятор EmuStudio, мне было принципиально важна абсолютная плавность 'скроллов' и полный синхрон звука. Звуковая карточка у меня была Audigy, которая позволяла отслеживать текущую позицию в аудиобуфере с точностью до семпла, и я привязывал кадровую Пентагона (или УКНЦ) к кадровой своего монитора (50Гц), а звук в реальном времени натягивал на эти самые 960 сеплов, которые были на самом деле дробные, схождение-расхождение которых вычислялось каждый кадр.
Однако на Win7 и старше, стандартная аудиосистема уже не давала возможности отслеживать позицию в буфере с точностью до семпла, а только с кратностью до 480 семплов (если я правильно помню). Однако, появился режим WASAPI с эксклюзивным замком, который такую возможность опять же давал.
например, в SDL2 можно запросить размер очереди еще не отправленных на карточку сэмплов для подгонки числа сэмплов нового кадра
что-то схожее можно навелосипедить и самому; минус - дополнительная задержка, но в принципе работать должно везде?