User Tag List

Страница 19 из 20 ПерваяПервая ... 151617181920 ПоследняяПоследняя
Показано с 181 по 190 из 192

Тема: Эмулятор БК-0010-01, БК-0011 и БК-0011М

  1. #181
    Master
    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    546
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    137
    Поблагодарили
    106 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от nzeemin Посмотреть сообщение
    Uptime
    Сделал я эту штуку. Но результатом не удовлетворён. Точность - ±секунда. Так то оно считает примерно точно, но из-за того что таймер работает по сообщению ON_WM_TIMER с интервалом 1 секунда, обрабатывается как бы с низким приоритетом, когда ничего другого важного не надо на экран вывести. Лаг большой получается. Тут надо бы ввести механизм измерения времени, как свойство контрольных точек.

  2. #181
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #182
    Activist
    Регистрация
    29.03.2005
    Адрес
    Москва
    Сообщений
    296
    Спасибо Благодарностей отдано 
    361
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    18 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Пользуясь возникшей активностью, хочу спросить - а VSync будет реализовано? А то у меня вместо монитора FHD телевизор и развёртка как раз 50 Гц. А плавного скроллинга, увы, нет...
    Как говаривал старик Палсекамыч (которого некоторые историки ошибочно называют Пепсиколычем или даже, прости Господи, Бублегумычем): "Не клади все яйца в одну... мошонку!"

  4. #183
    Master
    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    546
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    137
    Поблагодарили
    106 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Doronetty Посмотреть сообщение
    а VSync будет реализовано?
    Я не знаю, как его делают, простых примеров в интернете не нашёл, что нашёл из советов - не работает, так что не будет.

  5. #184
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,580
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    278
    Спасибо Благодарностей получено 
    234
    Поблагодарили
    183 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    Я не знаю, как его делают, простых примеров в интернете не нашёл, что нашёл из советов - не работает, так что не будет.
    а что, D3DPRESENT_INTERVAL_ONE не прокатывает?
    Прихожу без разрешения, сею смерть и разрушение...

  6. #185
    Master
    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    546
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    137
    Поблагодарили
    106 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    D3DPRESENT_INTERVAL_ONE не прокатывает?
    Неа, в DirectX9 как было, так и осталось, ну т.е. у моего монитора 60Гц кадровая, а у эмулятора - 49 генерируется, работы VSyncа не заметил. А в DirectX11 этого вообще нету.
    К тому же VSync всё равно не поможет. Однажды я пытался понять, почему скроллинг дёргается. И заморочился, вывел каждый кадр в отдельный файл с таймлайном. И увидел, что сама генерация кадров неравномерная. Там генерируется 2-3 одинаковых кадра, потом пропуск кадра, потом снова 2-3 одинаковых. С чем это связано, понять не смог. И забил.

  7. #186
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,580
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    278
    Спасибо Благодарностей получено 
    234
    Поблагодарили
    183 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    Неа, в DirectX9 как было, так и осталось, ну т.е. у моего монитора 60Гц кадровая, а у эмулятора - 49 генерируется, работы VSyncа не заметил. А в DirectX11 этого вообще нету.
    кстати, а зачем тебе directx11? да и вообще directx, когда есть упрощённые кроссплатформенные либы как SDL/SFML

    Цитата Сообщение от gid Посмотреть сообщение
    К тому же VSync всё равно не поможет. Однажды я пытался понять, почему скроллинг дёргается. И заморочился, вывел каждый кадр в отдельный файл с таймлайном. И увидел, что сама генерация кадров неравномерная.
    что ты понимаешь под "генерацией"?

    Цитата Сообщение от gid Посмотреть сообщение
    Там генерируется 2-3 одинаковых кадра, потом пропуск кадра, потом снова 2-3 одинаковых. С чем это связано, понять не смог. И забил.
    так то не винда скорее всего, а сам эмуль подгоняет кадры под звук, мб вовсе грубо по таймеру
    в таком случае логику подгонки надо заменить на обратную

    - - - Добавлено - - -

    (исхожу из предположения, что оригинал ты глубоко не перерабатывал)
    Прихожу без разрешения, сею смерть и разрушение...

  8. #187
    Master
    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    546
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    137
    Поблагодарили
    106 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    зачем тебе directx11?
    Чтобы было.
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    да и вообще directx
    Чтобы было.
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    когда есть упрощённые кроссплатформенные либы как SDL/SFML
    Я в интернете сходу нашёл, как прикрутить D3D, D2D, OpenGL. А как прикрутить SDL/SFML в винде, не нашёл.
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    что ты понимаешь под "генерацией"?
    Буквально генерацию. У меня в эмуляторе эмулируется точная работа формирования экрана, в конце происходит кадровое прерывание, судя по нормально звучащему AY, происходит равномерно. В это время, из содержимого экранного буфера формируется битмап соответствующего формата для одного из выбранных способов отображения на экран: D3D, D2D, OpenGL, VfW, и отправляется соответствующему драйверу. Дальше не моё дело как и когда оно отобразится на экране монитора, этим виндозные драйвера уже занимаются.
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    а сам эмуль подгоняет кадры под звук
    Не то чтобы подгоняет, синхронизация со звуком, единственный способ привязки к реальному времени в винде, который я нашёл. Все остальные способы со всякими таймерами как-то не получились. При повышении нагрузки начинались лаги.
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    в таком случае логику подгонки надо заменить на обратную
    Ну я не настоко крутой программист. Не умею.

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    оригинал ты глубоко не перерабатывал
    Не знаю, что ты имеешь в виду под оригиналом, поэтому тут ничего ответить не могу.

  9. #188
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,580
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    278
    Спасибо Благодарностей получено 
    234
    Поблагодарили
    183 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    Чтобы было.
    было что? даже если хочешь напрямую мучиться с иксом, никаких наворотов 10-11 не нужно

    Цитата Сообщение от gid Посмотреть сообщение
    Я в интернете сходу нашёл, как прикрутить D3D, D2D, OpenGL. А как прикрутить SDL/SFML в винде, не нашёл.
    например
    https://lazyfoo.net/tutorials/SDL/01...dows/index.php
    там же и туториалы по кодингу

    Цитата Сообщение от gid Посмотреть сообщение
    Буквально генерацию. У меня в эмуляторе эмулируется точная работа формирования экрана, в конце происходит кадровое прерывание, судя по нормально звучащему AY, происходит равномерно. В это время, из содержимого экранного буфера формируется битмап соответствующего формата для одного из выбранных способов отображения на экран: D3D, D2D, OpenGL, VfW, и отправляется соответствующему драйверу. Дальше не моё дело как и когда оно отобразится на экране монитора, этим виндозные драйвера уже занимаются.
    в одну кучу свалил уровень и эмулятора, и системы
    а они в общем случае работают несинхронно

    Цитата Сообщение от gid Посмотреть сообщение
    Не то чтобы подгоняет, синхронизация со звуком, единственный способ привязки к реальному времени в винде, который я нашёл. Все остальные способы со всякими таймерами как-то не получились. При повышении нагрузки начинались лаги.
    так vsync и есть такой же способ привязки, таймер не нужен

    Цитата Сообщение от gid Посмотреть сообщение
    Ну я не настоко крутой программист. Не умею.
    ничего крутого, даже я справился))
    подготовил в буфере картинку - вызвал функцию рендера с vsync параметром, она и будет ждать начала нового кадра
    когда эмуль отстал от дисплея больше чем на кадр дисплея (частоту которого знаешь) - повторяешь вызов рендера, пока не догонишь
    звук готовишь и кидаешь на вывод кратно частоте эмуля (то есть для повторных рендеров не кидаешь)
    синхру звука с видео контролируешь по длине очереди сэмплов, чтоб не выходила за очерченные пределы
    (при необходимости в следующем кадре эмуля слегка корректируешь кол-во сэмплов в кадре эмуля)

    Цитата Сообщение от gid Посмотреть сообщение
    Не знаю, что ты имеешь в виду под оригиналом, поэтому тут ничего ответить не могу.
    вот это
    Цитата Сообщение от Doronetty Посмотреть сообщение
    основанного на исходниках эмулятора Юрия Калмыкова
    Прихожу без разрешения, сею смерть и разрушение...

  10. #189
    Master
    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    546
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    137
    Поблагодарили
    106 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    было что?
    Было DirectX.
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    если хочешь напрямую мучиться с иксом
    Не хочу. Поэтому взял самый простой и доступный для понимания пример из интернета, а не фреймворк с мегабайтами исходников, которые непонятно что делают, и непонятно как их прикрутить к эмулятору.
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    никаких наворотов 10-11 не нужно
    Конечно не нужно, но если есть, почему нет?
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    там же и туториалы по кодингу
    Ок, почитаю.
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    в одну кучу свалил уровень и эмулятора, и системы
    Потому что одно без другого не работает.
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    а они в общем случае работают несинхронно
    Они в принципе работают не синхронно, но повторюсь, у меня эмулятор уже сам по себе генерирует рваную картинку с пропусками кадров. А рендер показывает то, что ему дают, с vsyncом или без.
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    так vsync и есть такой же способ привязки, таймер не нужен
    А в оконном режиме vsync уже начал работать? А то раньше не работал, только в полноэкранном работал.
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    подготовил в буфере картинку - вызвал функцию рендера
    Я именно так и делаю, только без vsyncа, потому что фиг знает, как его включить что в OpenGLе, что в DirectXе 11-м.
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    когда эмуль отстал от дисплея больше чем на кадр дисплея
    Он всегда будет отставать чуть меньше, чем на кадр. Ведь все знают что в БК самый кривой контроллер видеосигнала, и генерирует самую кривую раскадровку, не совместимую с многими мониторами и телевизорами. Вот и эмулятор в точности повторяет работу этого контроллера, потактово синхронизированного с процессором. Из-за этого я не могу генерировать кадров больше, чем возможно.
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    (частоту которого знаешь)
    Не знаю и знать не хочу, пусть об этом драйвер видеокарты думает. Есть ведь мониторы и с 240Гц кадровой, и больше уже есть.
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    звук готовишь и кидаешь на вывод кратно частоте эмуля (то есть для повторных рендеров не кидаешь)
    чё-то слишком сложно.
    Цитата Сообщение от Lethargeek Посмотреть сообщение
    вот это
    А, это, ну да, я там вообще ничего не трогал, только имя своё в "О программе" приписал и всё.

  11. #190
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,580
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    278
    Спасибо Благодарностей получено 
    234
    Поблагодарили
    183 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от gid Посмотреть сообщение
    Было DirectX.
    ...чтобы от него было что?

    Цитата Сообщение от gid Посмотреть сообщение
    Конечно не нужно, но если есть, почему нет?
    потому что прикручивать нужно только то, что собираешься применять
    и какие же из новейших наворотов ты собираешься?

    Цитата Сообщение от gid Посмотреть сообщение
    Потому что одно без другого не работает.
    работает - с не такими "другим" или "одним" соответственно

    Цитата Сообщение от gid Посмотреть сообщение
    Они в принципе работают не синхронно,
    в принципе можно как угодно, синхронно тоже

    Цитата Сообщение от gid Посмотреть сообщение
    но повторюсь, у меня эмулятор уже сам по себе генерирует рваную картинку с пропусками кадров. А рендер показывает то, что ему дают, с vsyncом или без.
    что значит "сам по себе"? это унаследованный код или уже твой?
    и почему "с пропусками", когда следует с добавлением?
    а для начала сделай просто 1:1 с дисплеем пк

    Цитата Сообщение от gid Посмотреть сообщение
    А в оконном режиме vsync уже начал работать? А то раньше не работал, только в полноэкранном работал.
    не знаю, где в оконном не работал, у меня в SDL работает
    да и рассуждая логически, это же просто ожидание глобального события
    а стало быть, какая разница, что и как при этом отображается

    Цитата Сообщение от gid Посмотреть сообщение
    Я именно так и делаю, только без vsyncа, потому что фиг знает, как его включить что в OpenGLе, что в DirectXе 11-м.
    так он у тебя в полноэкранном даже вроде бы и включён
    (правда, в менее точном варианте D3DPRESENT_INTERVAL_DEFAULT)
    https://learn.microsoft.com/en-us/wi...3d9/d3dpresent
    видимо, проблема не в нём, а в логике отображения в эмуле

    Цитата Сообщение от gid Посмотреть сообщение
    Он всегда будет отставать чуть меньше, чем на кадр.
    во-1, больше, если больше 100гц видеорежим
    во-2, с виндой никогда нельзя быть ни в чём уверенным

    Цитата Сообщение от gid Посмотреть сообщение
    Ведь все знают что в БК самый кривой контроллер видеосигнала, и генерирует самую кривую раскадровку, не совместимую с многими мониторами и телевизорами. Вот и эмулятор в точности повторяет работу этого контроллера, потактово синхронизированного с процессором. Из-за этого я не могу генерировать кадров больше, чем возможно.
    человек-то тут хотел плавный скроллинг, если моник держит 50/100/144гц - ну, пусть немножко отличается от реала, будет ровно 50 или 48

    Цитата Сообщение от gid Посмотреть сообщение
    Не знаю и знать не хочу, пусть об этом драйвер видеокарты думает. Есть ведь мониторы и с 240Гц кадровой, и больше уже есть.
    ну вот, видимо, потому картинка и рваная, что ты с частотой дисплея не соотносишь

    Цитата Сообщение от gid Посмотреть сообщение
    чё-то слишком сложно.
    что конкретно? смысл, что звук всегда синхронизируешь с эмулируемым дисплеем, а не с реальным

    Цитата Сообщение от gid Посмотреть сообщение
    А, это, ну да, я там вообще ничего не трогал, только имя своё в "О программе" приписал и всё.
    ну, тебе виднее, какая там каша из топора, а другим нетелепатам-то нет
    Прихожу без разрешения, сею смерть и разрушение...

Страница 19 из 20 ПерваяПервая ... 151617181920 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Отличия БК-0011М от БК-0010(01)?
    от nzeemin в разделе БК-0010/0011
    Ответов: 22
    Последнее: 30.03.2021, 18:47
  2. БК-0010/0011: Разное
    от CD-Inc в разделе БК-0010/0011
    Ответов: 73
    Последнее: 30.07.2012, 16:58
  3. Начало выпуска БК-0011 и БК-0011М
    от dk_spb в разделе БК-0010/0011
    Ответов: 6
    Последнее: 14.10.2010, 14:22
  4. Отличие 0011 и 0011М
    от Kronshou в разделе БК-0010/0011
    Ответов: 11
    Последнее: 17.01.2010, 22:24
  5. Москва - куплю все связанное с БК-0010/0011
    от kt315b в разделе Барахолка (архив)
    Ответов: 0
    Последнее: 04.10.2008, 05:09

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •