User Tag List

Страница 19 из 24 ПерваяПервая ... 151617181920212223 ... ПоследняяПоследняя
Показано с 181 по 190 из 234

Тема: YM2203 = AY8910+FM

  1. #181

    Регистрация
    04.08.2005
    Адрес
    Nizhnevartovsk
    Сообщений
    1,086
    Спасибо Благодарностей отдано 
    102
    Спасибо Благодарностей получено 
    151
    Поблагодарили
    99 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SMT
    что-то я не подумал: можно пересчитывать при записи в регистр делителя
    Делитель не даст нужной точности. Не изменяя частоту вызова ay.flush() качественно не получится сделать...
    И вообще - я решил этот вопрос уже, без лишних переинициализаций: после изменения всех коэффицентов меняю пропорционально изменению частоты переменную t (в пределах одного фрейма). Все встает ровно, никаких подвисонов и дыр.
    Цитата Сообщение от SMT
    ищи глюк у себя. я раз 20 на такое нарывался: ну всё думаю, точно глюк ms-компилятора. и каждый раз (кроме одного случая, причём глюк исправили в 7-й версии без моего участия) оказывалось, сам дурак
    хотя, бывает, переменная хитро меняется вне функции в обход поля видимости оптимизатора - попробуй компильнуть без /Oa
    Вот без оптимизации глобальной все нормально и получается... А глюк этот явно не у меня - а в МАМЕвском эмуле. И не глюк это вовсе.. Часто такое бывает, в дебаге работает, в оптимизированной версии - глючит.

    Сделал автоматом приоритет HIGH, и попробовал инверсию левого-правого канала.. получается интересно...
    для нулевого чипа коэффиценты L:-0.8,R:0.6 для первого L:0.8,R:-0.6
    Последний раз редактировалось Dexus; 29.08.2005 в 21:29.

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

  3. #182

    Регистрация
    16.01.2005
    Адрес
    Бобруйск
    Сообщений
    1,267
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Dexus
    Часто такое бывает, в дебаге работает, в оптимизированной версии - глючит
    значит, глюк в программе, а работает - случайно

  4. #183

    Регистрация
    04.08.2005
    Адрес
    Nizhnevartovsk
    Сообщений
    1,086
    Спасибо Благодарностей отдано 
    102
    Спасибо Благодарностей получено 
    151
    Поблагодарили
    99 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SMT
    значит, глюк в программе, а работает - случайно
    Да нет же. Это компилятор просто убивает видимо места которые все-таки нужны.
    Это багофича компилера. Отключаешь глобальную оптимизацию и все работает.

  5. #184

    Регистрация
    16.01.2005
    Адрес
    Бобруйск
    Сообщений
    1,267
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а локализовать ошибку сможешь? типа, сделать маленький кусок кода, который работал бы по-разному при разных оптимиациях

  6. #185

    Регистрация
    04.08.2005
    Адрес
    Nizhnevartovsk
    Сообщений
    1,086
    Спасибо Благодарностей отдано 
    102
    Спасибо Благодарностей получено 
    151
    Поблагодарили
    99 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SMT
    локализовать ошибку сможешь? типа, сделать маленький кусок кода, который работал бы по-разному при разных оптимиациях
    А нафига? просто убираю глобальную оптимизацию, как советуют все программисты.
    Я лучше на что-нибудь более полезное время убью, чем на копание в чужом абсолютно непонятном коде (MAME) и отлавливание багофич компилятора.

    У меня сейчас другой глюк всплыл - время от времени (в определенных случаях) 100% проца жрет. Судя по всему из-за вызова sound.flush().
    Иногда почему-то tick оказывается БОЛЬШЕ endtick. А последствия этого очень неприятны.
    И вообще не могу разобраться с этим SOUND_STREAM::flush(). Непонятно че за фильтры, че за скейлы, каким макаром она умудряется работать на два звуковых потока (для обоих чипов), ни комментариев... ничего...
    Не странно что никто альтернативные ветки не делает, просто разобраться в этом абсолютно нереально. Дохрена мест в которых ВООБЩЕ ничего не понятно.
    Последний раз редактировалось Dexus; 30.08.2005 в 10:25.

  7. #186

    Регистрация
    04.08.2005
    Адрес
    Nizhnevartovsk
    Сообщений
    1,086
    Спасибо Благодарностей отдано 
    102
    Спасибо Благодарностей получено 
    151
    Поблагодарили
    99 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    http://inatix.com/spool/2203test2.zip - снап с примером
    http://inatix.com/spool/unreal031b_YM2203_001.zip - обновление версии (ехешник only):
    - добавил LED'ы (все 6 каналов, все операторы и алгоритмы цветами)
    - вроде как победил переключение частоты в рилтайме
    - сделал PROIRITY_HIGH, чтобы звук не рвался (правда при нумлоке винда становится однозадачной ... потом попробую подфиксить )
    - поправил по просьбе SMT строки при запуске

    Вопрос к lvd или тому кто пробовал вообще с реальным работать - интересует - действует ли переключение частоты (регистры 2d-2f) в реалтайме для FM или нужно переинициализировать ноту чтобы новая частота задействовалась?
    Тот же вопрос и по поводу AY.
    Последний раз редактировалось Dexus; 30.08.2005 в 15:45.

  8. #187

    Регистрация
    16.01.2005
    Адрес
    Бобруйск
    Сообщений
    1,267
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Иногда почему-то tick оказывается БОЛЬШЕ endtick
    ищи ошибку в движке 2203, потому что внутри flush в конце присваивается endtick=tick
    вообще не могу разобраться с этим SOUND_STREAM::flush(). Непонятно че за фильтры, че за скейлы, каким макаром она умудряется работать на два звуковых потока (для обоих чипов)
    да, тут очень злая оптимизация. для примера можно посмотреть, сколько жрёт AY_Emul при порядке fir-фильтра 64 (у меня на все фильтры менее 1%), к тому же если вспомнить сколько независимых потоков у unreal... (beeper, tape, 4xGS, 2xAY, covox/SD...)
    Последний раз редактировалось SMT; 30.08.2005 в 18:42.

  9. #188

    Регистрация
    04.08.2005
    Адрес
    Nizhnevartovsk
    Сообщений
    1,086
    Спасибо Благодарностей отдано 
    102
    Спасибо Благодарностей получено 
    151
    Поблагодарили
    99 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    http://inatix.com/spool/unreal031b_YM2203_001a.zip
    Сделал чтобы автоматически приоритет менялся. Отключил проверку на NT.
    Т.е. на 98 запустится, но работа не гарантируется. Я на виртуалке запускал - звук то рваный то нормальный был. В общем - на свой страх и риск
    Цитата Сообщение от SMT
    ищи ошибку в движке 2203, потому что внутри flush в конце присваивается endtick=tick
    Ну почему сразу 2203? он всего лишь генерит один такт. И не виснет. А Flush так глючит начинает когда переключаешь частоту посреди такта, и текущий указатель мог назад перенестись - пофиксил я это но и чисто технически неверно: внутри flush нет проверки на то что endtick<tick. В этом случае ведь подвисает все.
    Цитата Сообщение от SMT
    да, тут очень злая оптимизация. для примера можно посмотреть, сколько жрёт AY_Emul при порядке fir-фильтра 64 (у меня на все фильтры менее 1%),
    Да я "примерно" врубился че к чему. но слишком "примерно"... Немного не понимаю зачем такие сложности

  10. #189

    Регистрация
    16.01.2005
    Адрес
    Бобруйск
    Сообщений
    1,267
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Dexus
    Немного не понимаю зачем такие сложности
    сделай проще
    Цитата Сообщение от Dexus
    внутри flush нет проверки на то что endtick<tick
    потому что предполагалось, что движок работает только вперёд по времени, зачем тормозить лишними проверками (кстати, в прошлых версиях unreal проверка была, пока я не отладил звук полностью). я бы всё-таки сделал например изменение шага счётчиков не на 1, а на делитель, если пересчитывать границы счёта не хочешь. а такты генератора бы не трогал...
    Цитата Сообщение от Dexus
    на 98 запустится, но работа не гарантируется. Я на виртуалке запускал
    ну-ну. а файл пробовал открыть/сохранить?

  11. #190

    Регистрация
    04.08.2005
    Адрес
    Nizhnevartovsk
    Сообщений
    1,086
    Спасибо Благодарностей отдано 
    102
    Спасибо Благодарностей получено 
    151
    Поблагодарили
    99 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SMT
    ну-ну. а файл пробовал открыть/сохранить?
    кнопки f2/f3 не работают
    Я же ничего не правил, просто убрал запрет запуска на 98х ради проверки. Но полноценной 98й нету. только через VMWare. Потом еще попробую на VirtualPC. Может быть что и получится в результате. Но сильно сомневаюсь.Потому как основа не очень расширябельная и не приспособленная для подобного.

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

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

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

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

Ваши права

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