С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Это наверняка связано с операционкой+драйверами+же лезом.
В своей шумогенерилке я постоянно ловил подобную хрень запуская на XP. Приходилось увеличивать буфер (и, соответственно, лаг). Совокупность обстоятельств, короче.
Это формирование звука для GB. Снятие громкости с GB не изменилось, как и помещение этого сэмпла в буфер звука для вывода.
Хотя, наверное, все-таки нашёл одно изменение - то ли SDL1 то ли SDL2 вместо требуемого кол-ва сэмплов начал ставить число в 2 раза меньшее. Из-за этого я увеличил запрашиваемое число сэмплов. Попробую вернуть его обратно.
Все любят гипножабу
еще заметил - звук так может вылечиться/испортиться после отключения fast режима (кнопкой insert)
- - - Добавлено - - -
а иногда - еще и после возврата из отладчика; короче, когда звук стартует после тишины заново
Прихожу без разрешения, сею смерть и разрушение...
до есть такое
- - - Добавлено - - -
бага с инсертом повторяется на
0.6.20191007_qt5.5.1_win32
0.6.20190712_Qt5.5.1_win32
0.6.20190625_qt4.7.4_win32
0.6.20190612_qt4.7.3_win32
0.6.20190531_qt4.7.3_win32
версии между не могу проверить
тк не работают на ХРю
0.6.20180121_win32 - бага не повторяется
0.6.20180106_win32 - но при выходе из fast секунду можно иногда наблюдать похожее явление
и звук иногда запинается (буфер играется по несколько раз на слух)
но на них прогресс качества звука за год весьма ощутимый
все конфиги\эмули были новые только распакованные из оригинального архива
во всех ручками каждый раз включал звук в настройках
Последний раз редактировалось NEO SPECTRUMAN; 03.11.2019 в 19:19.
хмммм... попробую ещё раз пересмотреть заполнение/воспроизведение буфера. по идее во время паузы буфер всё равно заполняется последним полученным до паузы сэмплом (без смены амплитуды получается тишина) и воспроизводится так же как при запущенной эмуляции.
Все любят гипножабу
Чего там со звуком? Дык, я скажу пускай сначала починят свой ОС авторы мегамиллионных состояний.
У меня просьба в другом. Хочу эмулятор с окошками, и чтобы окошки можно настраивать, а еще хочу супер продвинутый дебагер, не хуже оpenMSX. А еще хочу плагины писать железа.
И под занавес, хочу мульти-эмулятор.
Это так сложно? Мне реальщику, точность не важна (это не возможно в эмуляторе). Точность я дожму на реале. Вот он эмулятор мечты! Просто тупо нет времени, железо и эмулятор окучивать.
Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...
Вот кинул выход на вход
https://dropmefiles.com/0byTH
на записи видно что в буфер попадают данные из предыдущего буфера
глюки на нижней
можно поймать понажимав инсерт
потом при открытии файла
бага тоже продолжает работать
3Ы
как по мне
качество звука (в сравнение с версиями двух летней давности)
уже позволяет включать его по дефолту
Последний раз редактировалось NEO SPECTRUMAN; 04.11.2019 в 01:56.
Может мне кажется, но в этой новой версии лаг звукового тракта увеличился. Когда в реале звук и картинка синхронной может быть, здесь где-то треть секунды проходит прежде чем звук появится.
В 7рке после Инсерта тоже пурген периодически случается. Просто этот Инсерт не использовал, поэтому даже не замечал (Xpeccy использую только для отладки, ибо дебагер топовый, ну а для тестирования - Unreal, ибо и звук и 50fps тайминги заметно лучше).
На предыдущей версии тоже. Регулярносьть этого странного эффекта - 880 сэмплов. То есть ровно 50Гц, фреймрейт. Каждый раз после выхода из инсерта это смещение другое (в основном 0). Но может быть чуть заметнее, может быть более крепко. Ещё заметил, что после окончания воспроизведения, когда в микшеры и громкости записывается 0, этот хвост вылазит.
Такое чувство, что в буфере воспроизведения наслаиваются и текущие, и предыдущие. И в основном это предыдущие, с небольшим вкраплением текущих. Какая-то дичь. Почему вообще такая дичь происходит? Я вообще не думаю что это связано с операционкой. Ибо на 7рке то же самое.
==добавлено==
Короче как я увидел схема такая:
4 фрейма буферизируются (это ~3520 сэмплов).
Каждые N сэмплов каждого фрейма (который 880 сэмплов) попадают в текущий буфер, но в какой-то момент буфер переключается, и они уже попадают в следующий. На следующей итерации происходит то же самое, и поэтому звук разрывается между двумя буферами с дискретностью в 1 фрейм.
1 фрейм - это как раз момент изменения значения портов. Получается, что при каких-то обстоятельствах вместе с впихиванием значения в регистры AY происходит и переключение буфера? Причём вначале фрейма буфер правильный. Или же наоборот - вначале фрейма буфер "не тот" и только с впихиванием регистров он переключается на правильный.
И, кстати, эта сбивка буфера происходит ДО даунсемплинга, потому что границы несмотря на резкие перескоки - сглажена.
И ещё проверил дигиталы. В них сбой каждые 2 фрейма (1760 сэмплов). Может дело в конкретном регистре, который в итоге служит причиной переключения буфера? Иначе оцифровки бы совсем иначе "рвались".
В любом случае, эта регулярная сбивка выглядит как арпеджированное эхо в 4 фрейма.
Еще одна мысль посетила, что возможно после инсерта таймер фреймов CPU оказывается рассинхронизированным с фреймами SDL (при том что звуковые и графические фреймы вообще не должны идти "независимо").
Я почти уверен, что все эти сложности и сбои с буферами происходят из-за того, что рендеринг звука происходит не как во всех остальных эмуляторах (с частотой дискретизации звуковухи * FIR window), а на основе частоты работы CPU, и уже потом это downsample'ится до 44100. И сделано это как-то "не так", скорее всего из-за Qt.
Неравномерность графики кстати адская. Хоть он показывает что там 50гц, но там jitter такой идёт, что и на 2 фрейма запросто может заморозиться и потом сразу 3 фрейма выдать меньше чем за кадр.
Последний раз редактировалось Dexus; 04.11.2019 в 04:27.
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)