User Tag List

Страница 4 из 7 ПерваяПервая 1234567 ПоследняяПоследняя
Показано с 31 по 40 из 66

Тема: ZX DevStudio

  1. #31

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,374
    Спасибо Благодарностей отдано 
    1,695
    Спасибо Благодарностей получено 
    2,214
    Поблагодарили
    868 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Lion17 Посмотреть сообщение
    ЗЫ: За достоверность позиции маркера как раз и отвечает драйвер звуковухи.
    Драйвер звуковухи, аппаратная часть звуковухи и сама винда.
    Например, начиная с висты, нельзя определять позицию точнее, чем с дискретностью 480 отсчетов (при 48000кГц). Т.е. 10мс.

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

  3. #32

    Регистрация
    29.03.2005
    Адрес
    Москва
    Сообщений
    300
    Спасибо Благодарностей отдано 
    392
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    19 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Долго разбирался с отсутствием экрана: оказывается, он по умолчанию отключён(!). У меня звук работает на "ура", а вот плавного скроллинга почему-то нет (при том, что у меня экран работает на родной частоте 50 Гц). Да, и при попытке выйти эмуль зависает, приходится его "гасить" вручную.

    P.S: Конфигурация: Vista x64, ASUS P5E, Core2Quad 2.8 GHz, NVidia GF GTX 560, звуковуха Supreme FX II (идёт в комплекте с материнкой), FullHD TV через HDMI 50 Hz

  4. #33

    Регистрация
    18.01.2005
    Адрес
    Ростов-на-Дону
    Сообщений
    577
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    8
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Doronetty Посмотреть сообщение
    Долго разбирался с отсутствием экрана: оказывается, он по умолчанию отключён(!). У меня звук работает на "ура", а вот плавного скроллинга почему-то нет (при том, что у меня экран работает на родной частоте 50 Гц). Да, и при попытке выйти эмуль зависает, приходится его "гасить" вручную.
    Так как синхронизация идет по звуку, то скролинг не будет плавным. К тому же частота кадров в эмуляторе меньше пятидесяти герц. 3500000/71680=48.828Hz

    Про зависания при выходе на семерке и висте знаю. Ищу причину.

  5. #34

    Регистрация
    16.01.2005
    Адрес
    Moscow
    Сообщений
    799
    Спасибо Благодарностей отдано 
    437
    Спасибо Благодарностей получено 
    42
    Поблагодарили
    25 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lion17 Посмотреть сообщение
    Про зависания при выходе на семерке и висте знаю. Ищу причину.
    Windows 7 x64, зависаний при выходе нет.
    IT FOUND A VOICE... NOW IT NEEDS A BODY

  6. #35

    Регистрация
    17.01.2005
    Адрес
    Старый Оскол
    Сообщений
    537
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    8
    Поблагодарили
    4 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Windows 8.1 pro x64, эмулятор завершается только принудительно.

  7. #36

    Регистрация
    30.01.2006
    Сообщений
    1,921
    Спасибо Благодарностей отдано 
    73
    Спасибо Благодарностей получено 
    119
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lion17 Посмотреть сообщение
    Дык, я не про звуковуху говорю, а про драйвер.

    Звук вывожу через DirectSound. Три буфера длиной 1/50 секунды.
    Синхронизируюсь по звуку при помощи GetCurrentPosition.
    3 буффера мало, в zxmak2 насколько помню 8 по 1/50, DirectSound поддерживает маленькие буфера и даже ивенты кидает правильно, но для бесперебойной работы требует чтобы в буффере висело как Минимум около 0.1 сек, т.е. как минимум 4 буфера по 1/50 сек. Но на синхронизацию по ивентам на таких маленьких интервалах полагаться не стоит - раз в 1-2 секунды будет приходить несколько ивентов подряд. Это можно увидеть отключив vblank sync в тестовой версии нового zxmak2 или в unreal - на мерцающих мультиколорах происходит смена кадров, на которых производится пропуск.
    Синхронизация по getcurrentposition врядли будет успешной, т.к. у кода не будет возможности отдать процессор системе заблаговременно, чтобы получить его назад вовремя. С Directsound оптимальный вариант - ивенты о достижении нужной позиции
    Последний раз редактировалось ZXMAK; 07.05.2014 в 14:54.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  8. #37

    Регистрация
    18.01.2005
    Адрес
    Ростов-на-Дону
    Сообщений
    577
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    8
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  9. #38

    Регистрация
    30.01.2006
    Сообщений
    1,921
    Спасибо Благодарностей отдано 
    73
    Спасибо Благодарностей получено 
    119
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lion17 Посмотреть сообщение
    Переведи.
    В windows процессор выполняет код не непрерывно, периодически система забирает процессор на некоторое время (порядка10-50 мс), чтобы отдать его другим процессам. Время это довольно существенное для эмулятора. Если эмулятор в цикле опрашивает позицию буффера, дожидаясь нужного момента, для системы это выглядит как выполнение полезной работы и она может прервать этот процесс прямо в момент когда воспроизведение буффера подойдет к нужной позиции.
    Чтобы получить идеальную эмуляцию, процессор должен обработать фрейм и долить буффер в нужный момент, после чего сразу добровольно отдать процессор системе, чтобы она успела вернуть его к началу следующего фрейма...
    По scanline синхронизация на несколько порядков точнее, чем по позиции аудиобуффера. Но ивентов о событии vblank в windows к сожалению не предусмотрено

    Т.е. идеальных средств для такой синхронизации в windows нету. Ивенты нотификации о достижении нужной позиции аудиобуффера были бы таким идеальным решением. И они работают почти идеально, но к сожалению не достаточно стабильно для синхронизации с видеоразверткой дисплея. Точнее, для идеального звука они работают отлично, но плавные скроллы на дисплее по ним не получить.

    Я вот тут выкладывал тестовый снапшот http://zx.pk.ru/showpost.php?p=705099&postcount=1183
    Если усредненный цвет мультиколора на нем периодически меняется (обычно раз в секунду-две, зависит от стабильности синхронизации), значит есть проблема синхронизации кадров.
    Включив debug info, отключая и включая vblank sync в zxmak2, по колебаниям fps можно посмотреть, насколько менее стабильна синхронизация по ивентам от позиции аудиобуффера.


    Последний тестовый билд zxmak2 умеет держать синхронизацию стабильно (при включенном vblank), но это пока работает хорошо только на многоядерных процессорах достаточной производительности. Чтобы достичь этого приходится кушать одно ядро на 100% (для отслеживания текущей scanline видеокарты, в твоем случае это GetCurrentPosition). К сожалению даже если вставить Sleep(0) сразу после начала развертки, система иногда не успевает отдать процессор назад до начала следующего кадра. Если у процессора недостаточно ядер, чтобы обслуживать остальные процессы системы, то захватить ядро на 100% не получится и с синхронизацией будут проблемы.

    Эмуляторов которые стабильно держут синхронизацию фактически нет, если не считать последнюю версию zxmak2. Ктото писал что для unreal вроде есть такой мод, но можно ли его включить на стандартной сборке не знаю. У меня не получилось.

    ---------- Post added at 03:24 ---------- Previous post was at 02:36 ----------

    PS: кстати, раз уж разобрался, можешь поподробнее описать алгоритм выборки видеобайтов в pentagon? Заранее спасибо
    Последний раз редактировалось ZXMAK; 08.05.2014 в 04:13.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

  10. #39

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,374
    Спасибо Благодарностей отдано 
    1,695
    Спасибо Благодарностей получено 
    2,214
    Поблагодарили
    868 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Эмуляторов которые стабильно держут синхронизацию фактически нет, если не считать последнюю версию zxmak2.
    EmuStudio, хотя вариант ZX чисто тестовый, лучше смотреть EmuStudio ТИА-МЦ-1 или какие-то другие. Так вот, EmuStudio в принципе построен так, что главное для него - это 100% синхронизация.

  11. #40

    Регистрация
    18.01.2005
    Адрес
    Ростов-на-Дону
    Сообщений
    577
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    8
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    Эмуляторов которые стабильно держут синхронизацию фактически нет, если не считать последнюю версию zxmak2. Ктото писал что для unreal вроде есть такой мод, но можно ли его включить на стандартной сборке не знаю. У меня не получилось.
    Есть! Мой ZX-Emul под DOS . Синхронизация по обратному ходу луча и ФАПЧ звука. Видеорежим нестандарный 50Hz.

    ---------- Post added at 06:20 ---------- Previous post was at 06:19 ----------

    Цитата Сообщение от ZXMAK Посмотреть сообщение
    PS: кстати, раз уж разобрался, можешь поподробнее описать алгоритм выборки видеобайтов в pentagon? Заранее спасибо
    Сегодня после обеда напишу.

Страница 4 из 7 ПерваяПервая 1234567 ПоследняяПоследняя

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

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

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

Ваши права

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