Pyk, а можно объяснить смысл этого vsync? Вот закончил ВГ75 кадр и что дальше?
Pyk, а можно объяснить смысл этого vsync? Вот закончил ВГ75 кадр и что дальше?
uart, ВГ75 тут ни при чем, это имеет отношение к обновлению экрана на PC. Позволяет избежать tearing (как это по-русски?) и избыточных обновлений экрана.
А для gigascreen-программ, работающих на частоте, совпадающей с частотой монитора ПК, позволяет увидеть gigascreen-эффект (хотя и нестабильный из-за неточного совпадения частоты - см., например, заставку Lines от vinxru: если кадровая частота монитора 60 Гц, то эффект будет заметен).
Ну и внутренняя продолжительность фрейма эмуляции совпадает также с периодом обновления экрана. А ВГ75 работает асинхронно.
Pyk, вот это и не понятно. В играх, которые сами генерят картинку, 24P в телевизоре и в подобном - понятно. Либо генератор контента подстраивается под возможности изображения, либо наоборот.
А в эмуляторе что? ВГ75 даёт 50 кадров, на мониторе 60.
Или это просто настройка OpenGL и эмулятор ничего больше и не делает?
uart, постараюсь объяснить.
На платформах, которые не содержат ВГ75 и не имеют программного опроса КСИ, экран отрисовывается упрощенно, без привязки к реальной частоте кадров эмулируемого компьютера. В этом случае эмулятор работает как генератор контента - тут должно быть понятно.
Этот же механизм был оставлен и для ВГ75. В этом случае контент генерится дискретно, отдельными кадрами ВГ75, но тем не менее смысл некоторый в таком отображении есть: если частота монитора ПК и частота ВГ75 совпадут (реально это может быть 50 или 60 Гц), то это автоматически даст более плавную картинку и эффект gigascreen. И другое соображение: просто отрисовываем каждый кадр на мониторе ПК - чаще нет смысла, а реже приведет к более "дерганому" изображению... Более того, без vsync, чтобы увидеть полноценный gigascreen, частота должна быть как минимум в 2 раза больше частоты монитора.
А у тебя как сделано?
Pyk, да я как то и не задумывался об этом. Просто как ВГ75 заканчивает кадр вызываю вывод, в конце вывода вызывается glFlush, который по идее должен отработать во время смены кадров. Без ВГ75 тоже самое, но вызывается 50 раз в секунду.
Наверное стоит отвязаться от константы и посадить на callback от синхронизации монитора, хуже не будет.
Да и с подергиваниями в lines наверное можно побороться, хотя у меня и TV с реальным Апогеем дергается
Некоторым (например, мне) важен режим, когда кадровая эмулятора полностью синхронна с кадровой моника. И пусть при этом звук будет чуть быстрее или медленнее.
Но это, разумеется, актуально при эмуляции машинок, где софт активно использует one-frame эффекты. Например, Спектрум, или игровые консоли.
Что-то затишье... Для тех, кто пропустил: тестируем Qt-версию эмулятора:
http://zx-pk.ru/threads/27488-emu80-...l=1#post961498
У всех все работает? Проблем нет?
вроде ошибок не заметно, но если какие-то найду - сообщу обязательно.
заметил в эмуляторе "emu" от b2m ошибку в игре descent для радио 86 - не отображаются предметы замедляющие экран.
в emu80 работает как надо.
нашёл кое-что.
1 - игрушка FORMULA.RK - при запуске экран искажается свернувшись в узкую полосу.
2 - игра GLASS1.GAM - игра запускается, могу двигать фигуры влево и вправо, но эмулятор отказывается реагировать на клавиши F1, F2 (поворот фигуры).
обе игры для радио 86.
Последний раз редактировалось ZEman; 29.04.2018 в 19:49.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)