Titus(09.03.2025)
Странно, что у тебя работает классическая версия, т.к. ни у кого другого на Win7 она еще не работала нормально.
То, что DWM-версия не работает, это нормально при отключенной композиции рабочего стола.
Значит отмечу, что не все Win7 имеют блокирующий вызов ожидания VBlank. Может быть от драйверов зависит.
И не стоит автоматически переключаться с ожидания VBlank на DWM на Win7.
Благодарю, да, то что надо.
Ну заработала только DWM, но на 75Гц ускоренно работает. Остальные запускаются, звук идет, картинка даже первая тоже появляется, потом идет потеря всех остальных кадров, в консоли Resync и куча звездочек, картинка замирает. Все, как у человека выше. Потом может обновиться одним кадром, и снова замереть, было такое. В общем, если там что-то исправить, то заработает.
Ну это не очень корректное сравнение. Плавности не будет, потому что это 50Гц. Если выставить у ЖК-монитора 50Гц, это выглядит все равно плохо, хоть и аутентично. А несоответствие частот развертки эмулируемой системы и развертки монитора влияет только на линии разрыва, их количество, расположение и их движение по экрану. Ну хотя тут от реализации зависит... Если ждать вертикальной синхронизации, то будут рывки, да.
Последний раз редактировалось cafedead; 09.03.2025 в 21:33.
Нужны скриншоты полного консольного окна и окна графиков
- - - Добавлено - - -
Это понятно, потому что у большинства людей (до @Bedazzle думал, что у всех), синхронизация VBlank под Win7 блокирующая, поэтому поток останавливается. А DWM не блокирующая, хотя и худшей точности.
- - - Добавлено - - -
Тут понятие 'плохо' слишком абстрактное.
Для меня выглядит прекрасно)
А если я включаю 100Гц, то еще прекраснее.
Повторюсь - тем, кому нравится другое соотношение частот, никто не мешает использовать их. Когда они будут поддерживаться, разумеется. Или на других эмуляторах.
Я же няшку делал прежде всего для своего удовольствия, а если она кому-то еще пригодится, я тоже только рад.
Но мне нужен график и консольное окно для статистики)
- - - Добавлено - - -
Не эмулируется. Это чисто номинальное ядро Z80 только для теста движка эмулятора.
- - - Добавлено - - -
Все еще актуален запрос к @Enigmatic о полной информации, которая вывелась в окно консоли.
- - - Добавлено - - -
И к @cafedead тоже самое.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
IT FOUND A VOICE... NOW IT NEEDS A BODY
Titus(10.03.2025)
Опа. А а вот внешняя звуковуха USB мне первый раз попадается.
И сразу бросается в глаза то, что ее размер буфера подкачки не равен 10мс, а равен общему размеру буфера 22мс.
Интересно погонять эмулятор хотя бы минут 5-10, и посмотреть, сколько раз напишет Resync в консольном окне.
Если много раз напишет, то запустить версию с аудиобуфером 3.5 вместо 1.5.
Titus(10.03.2025)
Всё бы хорошо, но в нашем случае ситуация обратная - в спектруме видео и звук тактируются от одного клока, поэтому они строго синхронизированы. А на ПК тактирование видео и звука идёт от разных, асинхронных источников.
Если использовать аналогию с конвейером, то у нас две линии – для муки и сахара. На входе строго синхронно, каждую секунду, подаётся ровно по 1 литру муки и 1 литру сахара. Но на выходе муку забирают ложкой объёмом 1.1 литра в секунду, а сахар - 0.9 литра в секунду.
Очевидно, что мука расходуется быстрее, чем сахар, хотя поступают они с одинаковой скоростью. Мы не можем изменить скорость забора, она фиксирована и не поддается регулировке. Единственное, что нам доступно - регулировать подачу на входе, но подача всё равно должна быть строго равными объёмами муки и сахара.
И хуже того, скорость забора муки не синхронизирована со скоростью забора сахара и случайным образом меняется со временем, поэтому в какой-то момент времени соотношение скоростей забора может измениться и мука будет забирается со скоростью 0.8 литра в секунду, а сахар 1.15 литра в секунду.
И вот главный вопрос - откуда брать недостающую муку или куда девать лишний сахар?
Второй момент - точность измерения частоты видео и звука. Любой пропуск кадра может вносить значительные ошибки, особенно при высокой нагрузке системы. Также, по моим тестам, некоторые драйверы звуковых карт ведут себя нестабильно - уведомления о позиции воспроизведения могут приходить нерегулярными порциями (например, сначала 1 сэмпл, затем 1024, потом 7 сэмплов, потом 1600 и т. д.), а иногда обновления могут даже группироваться в серии без задержек. Все эти факторы значительно снижают точность определения реальной частоты дискретизации звука, поскольку затрудняют точное измерение объёма аппаратного буфера и частоты его обновления в процессе воспроизведения.
Последний раз редактировалось ZXMAK; 10.03.2025 в 02:27.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)