Есть задачи для программистов для НГС

NeoGS software and hardware

Postby Grey » 07 Oct 2018, 02:46

отправил тесты в личку , но уже и сам проверил - вроде все нормально.
Спецкоманлы в плеере ещё не раелизованы, поэтому ноты лажают, но звук во всех 8 канала есть

https://cloud.mail.ru/public/AZgd/jHYbPbW8p

'эмулятор использовать этот https://dlcorp.nedopc.com/viewtopic.php?p=38826#p38826
Grey
 
Posts: 82
Joined: 01 Mar 2011, 21:07
Group: Registered users

Postby deathsoft » 07 Oct 2018, 18:42

Круто, и музон прикольный из демки unreal2/second reality.
Только както непонятно в эмуляторе индикаторы громкости каналов работают, как будто какойто рандом показывают (те которые вверху слева).

PS. Налажал я там вчера с копипастом, каналы мапятся неверно:
Code: Select all
  // ngs 8ch
  if(ngs_cfg0 & M_8CHANS)
  {
      l += gs_v[4] + gs_v[5];
      l += gs_v[6] + gs_v[7]; <=====
  }

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

Перезалил пофикшенный эмуль в тот же пост.
User avatar
deathsoft
 
Posts: 357
Joined: 07 Apr 2007, 01:58
Group: Registered users

Postby Grey » 07 Oct 2018, 22:12

обновление https://cloud.mail.ru/public/7CK4/waB5xtTac

ещё https://cloud.mail.ru/public/Ek5Z/2jZvxvsXc

по ентеру можно вернуться в каталог и загрузить другой модуль
убрана куча багов первой версии , вызывающих зависвание на распаковке патернов и инициализации инструментов и сэмплов,
Last edited by Grey on 07 Oct 2018, 23:08, edited 1 time in total.
Grey
 
Posts: 82
Joined: 01 Mar 2011, 21:07
Group: Registered users

Postby Grey » 07 Oct 2018, 22:28

deathsoft wrote:Все суммируется в левый канал

спасибо
А общую громкость NGS можно повысить? там наверно из за 6 битной громкости NGS тихо получается - её бы сдвинуть влево на пару бит. В настройках эмулятора на максимум и все равно намного тише всех остальных звуков в винде,
Grey
 
Posts: 82
Joined: 01 Mar 2011, 21:07
Group: Registered users

Postby deathsoft » 07 Oct 2018, 23:03

Grey wrote:В настройках эмулятора на максимум и все равно намного тише всех остальных звуков в винде,

Это потому что общая громкость 16бит поделена на целую кучу источников звука (там в ини файле задаются максимальные громкости каждого источника)
типа такого (если у остальных источников поставить громкость 0, то думаю можно для GS поставить чтото типа 65000):
GSVol=8000 ; general sound (for both high- and low- level emulation modes)

Исправил тут рисование статистики (рисовалась полная ахинея, мгновенные значения которые брались 1 раз вкадр, статистика обнулялась при каждой записи в ЦАП, а должна была обнуляться только после вывода статистики (1 раз в кадр)). При этом обнаружил, что s3m_2 использует не полный диапазон громкости, вместо 0-255, использует только 0-127, регистры громкости выставляются на полную 63, а вот сами выводимые байты в ЦАПы видимо никогда полный диапазон не получают, потому что после деления суммы байтов в канале на число выводов в ЦАП больше 127 не получается.
User avatar
deathsoft
 
Posts: 357
Joined: 07 Apr 2007, 01:58
Group: Registered users

Postby Grey » 07 Oct 2018, 23:13

я не понял, это в эмлуторе так или в памяти №6000-7fff буфер подготовлен уже с заниженной громокостью ? У меня там программно до 3 унможений громкости может быть, но для s3m 2 - глобальная 0-64 умноженная на громоксть канала 0-63 , но вроде трассировал, там нормально умножается
Grey
 
Posts: 82
Joined: 01 Mar 2011, 21:07
Group: Registered users

Postby deathsoft » 07 Oct 2018, 23:15

Вот версия с отладочной печатью громкости (печатает в консоль в виде горизонтальных столбиков и в начале пишет значение громкости приведенное к диапазону 0-15, на s3m больше 7 не выводит).
Attachments
unreal.exe.7z
(469.76 KB) Downloaded 11 times
User avatar
deathsoft
 
Posts: 357
Joined: 07 Apr 2007, 01:58
Group: Registered users

Postby deathsoft » 07 Oct 2018, 23:16

Grey wrote:я не понял, это в эмлуторе так или в памяти №6000-7fff буфер подготовлен уже с заниженной громокостью ?

Это я смотрю то что приходит в ЦАП (видимо да, байты из памяти). Байты то в буфере должны быть от 0 до 255, а по статистике за несколько кадров получается что там 0-127, иначе бы результирующая громкость на графиках была бы не 7 а 15.

Сейчас статистика подсчитывается так:
Code: Select all
   for (int ch = 0; ch < 8; ch++)
   {
      gsleds[ch].level = (led_gssum[ch] * gsvol[ch]) / (led_gscnt[ch]*((255*63)/15)+1);
      gsleds[ch].attrib = 0x0F;
   }

led_gssum - сумма выводимых байтов
led_gscnt - число выводов в ЦАП
gsvol - громкость канала
255 - максимальное значение байта (соответствует единице)
63 - максимальное значение громкости (соответствует единице)
15 - максимальное значение приведенной громкости (соответствует единице) (результаты приводятся к показометру для AY у которого диапазон 0-15).
1 - хак чтобы не было деления на ноль

Обнуление статистики делается раз в кадр (после вывода на экран).
Last edited by deathsoft on 07 Oct 2018, 23:24, edited 1 time in total.
User avatar
deathsoft
 
Posts: 357
Joined: 07 Apr 2007, 01:58
Group: Registered users

Postby deathsoft » 07 Oct 2018, 23:23

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

Кроме того надо учесть что (цитата из доки про 8 каналов):
Внимание! В 8-канальном режиме относительная громкость отдельно взятого канала в 2
раза меньше, чем в 4-канальном.


Т.е. сейчас громкость получается в 4 раза ниже.
User avatar
deathsoft
 
Posts: 357
Joined: 07 Apr 2007, 01:58
Group: Registered users

Postby deathsoft » 07 Oct 2018, 23:42

Вообще странно, запустил игры для GS, там проигрыввание mod и эффектов тоже громкости больше 7 не дает, возможно гдето в эмуляторе статистика неверно считается.
User avatar
deathsoft
 
Posts: 357
Joined: 07 Apr 2007, 01:58
Group: Registered users

PreviousNext

Return to NeoGS - софт и железо

Who is online

Users browsing this forum: No registered users and 1 guest

cron