Важная информация

User Tag List

Страница 4 из 21 ПерваяПервая 12345678 ... ПоследняяПоследняя
Показано с 31 по 40 из 208

Тема: EmuZGL alpha preview

  1. #31
    Banned
    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vladimir Kladov Посмотреть сообщение
    эмуляторщиков вводят в заблуждение неточными описаниями.
    ну, тут согласен.

    Цитата Сообщение от Vladimir Kladov Посмотреть сообщение
    Вот спрашивается, зачем мне горы документации по GS с описанием его софтверных команд, тогда как не хватает гораздо более важной и существенной информации?
    и тут согласен. изначально инфа была закрытой, минимум описали, все это лежит в инете. остальное берется из схемы..

    Цитата Сообщение от Vladimir Kladov Посмотреть сообщение
    А именно, мне неизвестна длительность его int'а, в каких бы то ни было единицах (миллисекундах, тактах основного компа, или тактах GS).
    сейчас мне сложно сказать точно, но я думаю, что длину инта надо сделать минимальную и достаточную. например, 32 такта гс (т.е. гарантированно длиннее самой длинной команды).

    Цитата Сообщение от Vladimir Kladov Посмотреть сообщение
    уровень сигнала в регистрах Volume у GS - это не беззнаковое число, а знаковое, т.е. 80h - это минимальное возможное значение (а может и написано, но мельком).
    так, вроде генераторы звука давно разобраны по полочкам. поясняю: звуковые ЦАПы в гс 8 битные БЕЗзнаковые, т.е. значения 0-255. ЦАПы громкости 6 битные БЕЗзнаковые (0-63). старшие 2 бита вообще ничего не значат.
    значение канала считается как ЦАП_звук*ЦАП_громк. т.е. в канале есть постоянная составляющая! соответственно, если в звук.цап отправить "середину" ("типа 0") (==128), то при рулении громкостью будут щелчки. это глюк гс'а.

    в последних unreal сделан фикс: значение из звукового ЦАПа приводится к знаковому виду, потом умножается на громкость - щелчков нет! пусть не как в оригинальном гс, но звучит явно лучше (а в новом гс это уже тоже пофиксено).

    да! не забываем, что в правом канале звучит 100% правый канал + 50% левый! в гс сделано именно так!


    вот. если есть еще вопросы, спрашивайте.

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

    например: девайсов 3, у каждого стоит максимальная громкость. значит на всех уйдет 33,3% громкости. причем, стоит заметить, никаких перегрузов не будет! просто звук будет тише. чтоб он был громче, надо просто громкости ненужных убрать в 0 (ну или сильно убавить), тогда, например, уже на 2 девайса будет по 50%.

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

  3. #32
    Master Аватар для Vladimir Kladov
    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от psb Посмотреть сообщение
    звуковые ЦАПы в гс 8 битные БЕЗзнаковые, т.е. значения 0-255. ЦАПы громкости 6 битные БЕЗзнаковые (0-63). старшие 2 бита вообще ничего не значат.
    значение канала считается как ЦАП_звук*ЦАП_громк. т.е. в канале есть постоянная составляющая! соответственно, если в звук.цап отправить "середину" ("типа 0") (==128), то при рулении громкостью будут щелчки. это глюк гс'а.
    Совсем запутали. Так ЦАПы звука всё-таки знаковые или беззнаковые? Я вот сейчас сделал как знаковые (и выложил), а громкость - беззнака и звука получился совсем не плохой, даже я бы сказал - хороший. Но к значению в ЦАПе я добавляю 128 как к байту, в итоге $80 -> 0, 0 -> $80, $40 -> $C0. Тоже сам себя уже запутал, это получается, всё-таки, знаковое. Кажется. Осталось спросить: звук правильный теперь (мне-то он кажется правильным, в сегодняшней версии)?

    Заодно пофиксил смешивание с прочими звуками, вместо xor применил через-самплинг, что-то вроде интерлейса. Чуть тише звучит GS, чем раньше, но - не вдвое, а где-то на четверть. И если так пришлось, то (AY+MIC/Covox)/2AY одновременно с GS слышно, если что. Настройки для ресета и запуска GS в ini-файле.

    Добавлено через 4 минуты
    Цитата Сообщение от psb Посмотреть сообщение
    да! не забываем, что в правом канале звучит 100% правый канал + 50% левый! в гс сделано именно так!
    А ещё чуть подробнее! в левом - то же, но наоборот, или нет? Что-то я про такое вообще первый раз узнаю...
    Последний раз редактировалось Vladimir Kladov; 17.04.2008 в 17:54. Причина: Добавлено сообщение
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

  4. #33
    Guru Аватар для AAA
    Регистрация
    06.04.2005
    Адрес
    Земля, Москва, Марьино
    Сообщений
    21,509
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    16 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Проверил новую версию. Гс перестал глючить. Музоны технотайма в диджитал плеере глючат по страшному.

  5. #34
    Master Аватар для Vladimir Kladov
    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от psb Посмотреть сообщение
    громкости всех девайсов в долях.
    Я это уже проходил. Нафиг-нафиг. Потом выкручивай ручку громкости на максимум, и всё равно прислушивайся, что там где-то далеко за рекой поёт... Ведь одновременно все звуки не звучат. Я думаю, последний вариант для смешивания вполне сносный, и достаточно громкий (и всё равно намного тише, чем mp3 в медиаплеере, но это уже не поправить: амплитуду можно растягивать, только заранее зная, где минимумы/максимумы).
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

  6. #35
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    11,442
    Спасибо Благодарностей отдано 
    193
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    62 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vladimir Kladov Посмотреть сообщение
    Я это уже проходил. Нафиг-нафиг. Потом выкручивай ручку громкости на максимум, и всё равно прислушивайся, что там где-то далеко за рекой поёт... Ведь одновременно все звуки не звучат. Я думаю, последний вариант для смешивания вполне сносный, и достаточно громкий (и всё равно намного тише, чем mp3 в медиаплеере, но это уже не поправить: амплитуду можно растягивать, только заранее зная, где минимумы/максимумы).
    Странные какие-то проблемы.
    Запускаю одновременно 3 плеера, и ничего тише не становится.
    Так почему в эмуляторе такие баги?

  7. #36
    Banned
    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vladimir Kladov Посмотреть сообщение
    Совсем запутали.
    так. число 0=0В, 128=2.5В, 255=5В. примерно так. при проигрывании модулей, серединой считается число 128. при уменьшении его волна идет вниз до 0, при повышении - вверх до насыщения.

    это беззнаковое число. т.е. чтоб получить знаковое число, надо вычесть 128 (ну или прибавить, для байта разницы нет). тогда получим от -128 до +127.

    и вообще, если б перепутал что, ни один бы модуль нормально не звучал

    Цитата Сообщение от Vladimir Kladov Посмотреть сообщение
    звук правильный теперь (мне-то он кажется правильным, в сегодняшней версии)?
    пока не смотрел.. пока некогда..

    Цитата Сообщение от Vladimir Kladov Посмотреть сообщение
    А ещё чуть подробнее! в левом - то же, но наоборот, или нет? Что-то я про такое вообще первый раз узнаю...
    да, именно так. а вообще, может проще строчку из Unreal'a взять? там все точно.


    Цитата Сообщение от Vladimir Kladov Посмотреть сообщение
    Потом выкручивай ручку громкости на максимум, и всё равно прислушивайся, что там где-то далеко за рекой поёт...
    не, кажется, ты не так меня понял. допустим, имеем 3 источника: AY, GS, Covox. ставлю я для каждого громкости: 100%, 100% и 25% соотв. Получаем, что в сумме они займут все 16 бит, но ковокс будет звучать только на 1/4, т.е. тихо. если кому-то надо только AY, то он все остальное убирает в 0% и получает чистых 16 бит AY.

    т.е. суммируем все проценты, далее находим долю каждого из них в общей сумме (получаем 0 целых и сколько-то еще). потом каждый из источников умножаем на долю и складываем. и всех все устраивает.

    п.с. я бы с удовольствием потестил эмуль, погонял всякие хитрые моды на нем, но у меня сейчас реально нет свободного времени.. может попозже.. пока только на словах могу.

    Добавлено через 3 минуты
    Цитата Сообщение от newart Посмотреть сообщение
    Запускаю одновременно 3 плеера, и ничего тише не становится.
    Так почему в эмуляторе такие баги?
    это все тайны мелкософта)) они делают какой-то хитрый микшинг, т.е. может у них там выдается не 16 бит, а 24. тогда да, складывай сколько хошь этих 16 битных каналов, тише не будет, тока громче. но в данном случае 16 бит - предел, надо в него вписать.

    п.с. со старыми карточками такой фокус не прокатит, с 3мя плеерами
    Последний раз редактировалось psb; 17.04.2008 в 19:16. Причина: Добавлено сообщение

  8. #37
    Master Аватар для Vladimir Kladov
    Регистрация
    09.02.2005
    Адрес
    Новосибирск
    Сообщений
    933
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от psb Посмотреть сообщение
    не, кажется, ты не так меня понял. допустим, имеем 3 источника: AY, GS, Covox. ставлю я для каждого громкости: 100%, 100% и 25% соотв. Получаем, что в сумме они займут все 16 бит, но ковокс будет звучать только на 1/4, т.е. тихо. если кому-то надо только AY, то он все остальное убирает в 0% и получает чистых 16 бит AY.
    Тогда постоянно крутить ручки настройки, что не легче (колёсико громкости и то ближе обычно). Я думаю, сейчас нормально, только AYx2 стоит по умолчанию выключить. Походу, это именно он портит картинку в дигитальной музыке из сборки DIGIT.ZIP (Disk59.SCL). Причём, здесь-то смешивание уже не при чём, там уже обработка выводов в порты меняет картинку.

    Смешивание каналов GS и AY я добавлю. Но насчёт взять строчку из анрил, я её там просто не нашёл:
    void flush_gs_sound()
    {
    if (temp.sndblock) return;
    sound.mix_l = gs_v[0] + gs_v[1], sound.mix_r = gs_v[2] + gs_v[3];
    unsigned endtick = lastint + gscpu.t - zxframe;
    endtick = (endtick*mult_gs) >> MULT_C; // (endtick*temp.snd_frame_ticks)/GSCPUFQI;
    sound.flush(endtick);
    }
    Никакого смешивания не наблюдаю, два канала налево, два направо.

    Цитата Сообщение от alexeenko Посмотреть сообщение
    плеер первой мелодии: Chip Player 1.01
    мелодии: Cognitio
    chipy126
    Диск доступен тут:
    Ну вот, спасибо, теперь я смог более точно настроить это дело. И выложил, второй раз за сегодня. Учёл заодно и смешивание левого-правого каналов GS, и фильтр подогнал, чтобы звучало практически одинаково, что у меня, что в выложенном мп3-шнике. Без фильтра, оказывается, нельзя. Он заменяет конденсаторы (или паразитную ёмкость, или ещё что-то, что сглаживает реальный звук). Заодно добавил параметр смешивания в AY (и включил по умолчанию). Там значение подобрано из других соображений: чтобы все деления-умножения можно было сдвигами замениь, поэтому процент перетекания фиксированный: 1/8. Вспомнил про параметр в ini - общий звук, выключил по умолчанию AYx2 (побаловаться включить всегда можно), и ещё поправил смешивание GS+прочее: интерлейсинг теперь только если детектируется наличие звука GS и одновременно прочих. Т.е. если играет только GS, то только он родимый и слышен, без всякого интерлейса, и аналогично, если GS нету, то и не смешивается. Int выставил в 32 (стояло 24, впрочем, особо не заметил, чтобы что-то опменялось по этой причине). Качество звучания вполне удовлетворительное, на мой взгляд, теперь. Если есть какие-то ещё претензии по звуку, просьба указывать конкретно "плохой" трак, и мп3 можно уже не писать, достаточно, если правильный звук можно услышать в каком-нибудь ещё эмуляторе из анрил, спектакулятор, спин, клив, zemu и (кххм) EmuZWin какой-нибудь версии. Проще всего сравнить конечно со спектакулятором, всётаки виндовый интерфейс да и нет странной привычки продолжать играть GS при включённой паузе.
    Последнюю версию EmuZWin (2.7) можно получить по этой ссылке, а "официальная" страница с описанием здесь. Если что-то не пашет, берите там же версии 2.6 или старше. [B]

  9. #38
    Banned
    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vladimir Kladov Посмотреть сообщение
    Тогда постоянно крутить ручки настройки, что не легче (колёсико громкости и то ближе обычно).
    ну, дело ваше а я бы 1 раз настроил и не парился.


    Цитата Сообщение от Vladimir Kladov Посмотреть сообщение
    Но насчёт взять строчку из анрил, я её там просто не нашёл:
    а я нашел письмо Alone Coder'у с исправлениями. исправления были внесены не так давно.

    исправление микширования каналов GS (gsz80.cpp):

    inline void flush_gs_sound()
    {
    unsigned l,r; //!
    l=gs_v[0]+gs_v[1]; //!
    r=gs_v[2]+gs_v[3]; //!

    if (temp.sndblock) return;
    sound.update(gscpu.t + (unsigned) (gs_t_states - gscpu_t_at_frame_start), (l+r/2)/2, (r+l/2)/2); //!
    for (int ch = 0; ch < 4; ch++) {
    gsleds[ch].level = led_gssum[ch] * gsvol[ch] / (led_gscnt[ch]*(0x100*0x40/16)+1);
    led_gssum[ch] = led_gscnt[ch] = 0;
    gsleds[ch].attrib = 0x0F;
    }
    }

    т.е. половина правого канала слышна в левом и наоборот. по скорости, наверное,
    медленно, но можно не создавать переменные l и r, а вставить в формулу.
    деление суммы в этой формуле сделано на 2 для быстроты, так-то надо делить на 1.5.

    исправление щелчков громкости (опционально! в GS не так!) (gsz80.cpp):

    void gs_byte_to_dac(unsigned addr, unsigned char byte)
    {
    flush_gs_sound();
    unsigned chan = (addr>>8) & 3;
    gsbyte[chan] = byte;
    gs_v[chan] = ((signed char)(gsbyte[chan]-0x80) * (signed)gs_vfx[gsvol[chan]]) /256 +gs_vfx[33]; //!
    //gs_v[chan] = (gsbyte[chan] * gs_vfx[gsvol[chan]]) >>8; //!
    led_gssum[chan] += byte;
    led_gscnt[chan]++;
    }

    тут байт звука берется знаковый, т.е. 0х80 - это 0, при этом как не меняй
    громкость, на выходе будет 0. в конце формулы прибавляется середина громкости,
    чтоб в результате число было в тех же самых пределах, что и раньше.

    точно такую же замену сделать в void out(unsigned port, unsigned char val).
    сравнивать как звучит гс можно с последней версией анрила, там очень похоже.

    Добавлено через 36 минут
    Цитата Сообщение от Vladimir Kladov Посмотреть сообщение
    Int выставил в 32 (стояло 24, впрочем, особо не заметил, чтобы что-то опменялось по этой причине).
    дык.. ничего поменяться и не должно было а вот если б стояло не 24, а тактов 10, тооо...
    Последний раз редактировалось psb; 18.04.2008 в 13:09. Причина: Добавлено сообщение

  10. #39
    Guru Аватар для AAA
    Регистрация
    06.04.2005
    Адрес
    Земля, Москва, Марьино
    Сообщений
    21,509
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    16 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот есть гифтинг для тестинга:
    Gift 4 Vel

    Самое интересное во всех эмуляторах ведет себя по разному, не говоря уже про реал. Там типа Ковокс звучать должен в конце...

    Вообщем если попробовать во всех эмулях, то можно примерно услышать нечто среднее.

  11. #40
    Veteran Аватар для ZXMAK
    Регистрация
    30.01.2006
    Адрес
    Харьков
    Сообщений
    1,406
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    20
    Поблагодарили
    14 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    микширование xor'ом или "интерлейсом" это глупость, звук будет очень далек от того что должно быть.
    Правильное микширование - это только сложение. Чтобы избежать переполнения от сложения нескольких каналов, результат сложения нужно получать большей разрядности, а затем компадировать (сжать динамический диапазон) до нужной разрядности.

    в принципе можно и наоборот, вначале компадировать, а потом складывать, тогда не нужна обработка с высокой разрядностью, но качество будет похуже.
    Последний раз редактировалось ZXMAK; 19.04.2008 в 00:18.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

Страница 4 из 21 ПерваяПервая 12345678 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. MEMos alpha demo
    от jim в разделе Софт
    Ответов: 11
    Последнее: 16.09.2007, 14:18
  2. Quick Commander v4.00 (preview)
    от Знахарь в разделе Софт
    Ответов: 12
    Последнее: 11.11.2005, 13:40

Ваши права

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