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 - хак чтобы не было деления на ноль
Обнуление статистики делается раз в кадр (после вывода на экран).