Closed GoogleCodeExporter closed 8 years ago
Кажется я разобрался в этой проблеме.
Сдается мне, что в "sound_mixer.cpp" в строках "*p++ =
(*s0++) + (*s1++) + (*s2++);" возникает элементарное
переполнение.
В Tetris 2 это заметно потому, что
соответствующий бит бипера там установлен
в 1 и получается, что к максимальной
громкости AY (по дефолту 32767) добавляется
значение spk_vol (по дефолту = 8192), что и
вызывает закономерное переполнение
знакового int'а => слышимые хрипы и щелчки.
Если приглушить бипер (spk_vol в "beeper.cpp") и/или AY
(ay->SetVolumes()) чтобы суммарная громкость не
привышала 32767, то хрипы пропадают! Еще на
это теоретически может Tape влиять (с ним я
вообще не разбирался), так что его тоже
необходимо учитывать чтобы не было
переполнения.
Original comment by volga...@gmail.com
on 26 Nov 2012 at 9:50
Нашел время опять вернутся к данному
вопросу.
Пофиксить переполнение в "sound_mixer.cpp" можно
так (см diff в аттаче).
Частоты за пределами допустимых просто
обрезаются. На слух эта обрезка не заметна
и щелчков/хрипов больше нет.
Считать сумму частот пришлось в short -
отдельно для левого/правого канала. Код
получается правда значительно тормознее,
но моя динга и так все тянет (а Андроид имхо
тем более должен потянуть), и не надо
уменьшать громкость саунддевайсов.
Просьба включить этот diff в репозиторий, а
также включить микширование звука на динге
(опцию выбора саунддевайса имхо лучше
вообще убрать). На освободившуюся кнопку
"правый шифт" повесьте плз паузу. И будет
все круто.
Original comment by volga...@gmail.com
on 28 Nov 2012 at 10:14
Attachments:
Привет :) обязательно все прикрутим, только
.rzx доделаем...
Original comment by djd...@gmail.com
on 29 Nov 2012 at 6:58
Да, rzx - это супер. Я накачал с www.rzxarchive.co.uk
файликов и смотрю как мультики. :)
Багрепорты на эту тему нужны (когда в игре
что-то идет не так)?
Original comment by volga...@gmail.com
on 30 Nov 2012 at 5:22
А ты собирал версию с новым .rom-ом?)
Пока еще тестирую и вылавливаю
рассинхронизацию...
Original comment by djd...@gmail.com
on 30 Nov 2012 at 10:43
Вроде бы да - я скомпилил под дингу
последнюю версию с репозитория (плюс мои
патчи для микшера).
Надеюсь в андроид-версии будет функция
онлайн загрузки rzx?
Original comment by volga...@gmail.com
on 1 Dec 2012 at 6:45
угу)
Original comment by djd...@gmail.com
on 1 Dec 2012 at 11:28
Когда этот баг пофиксите?
Original comment by volga...@gmail.com
on 11 Mar 2013 at 3:31
Сейчас посмотрим...
Original comment by djd...@gmail.com
on 11 Mar 2013 at 7:44
Странно - послушал dizzy 4, untouchables the, tetris 2 -
щелчков не услышал %) а есть возможность
протестить на другом девайсе?
Original comment by djd...@gmail.com
on 11 Mar 2013 at 8:19
Я сей глюк слышу на телефоне LG Optimus One P500, на
планшете Samsung Galaxy Tab 7.0+ P6200, и на Dingoo A320 (под
дингу я собрал версию со своим патчем и
стало нормально). Особенно хорошо заметно в
наушниках. Попробуй загрузить Tetris 2 и в меню
нажать 4 (включить AY-музыку) - в мелодии
будут временами слышны хрипы.
Там реально переполнение в микшере
возникает.
Original comment by volga...@gmail.com
on 12 Mar 2013 at 6:13
Да я понял, что переполнение есть. Вопрос в
том, почему я его не слышу. Ведь там треск
должен быть нереальный. Плюс если там сразу
2 канала одним сложением складываются, и
возникает переполнение, оно должно с
левого на правый перекидывать треск и
наоборот.
Original comment by djd...@gmail.com
on 12 Mar 2013 at 8:50
Я понял почему ты треск не слышишь!
Послушай в режиме mono AY. В стерео
действительно треска нет. Сорри, что не
сообразил сразу сказать про моно.
Original comment by volga...@gmail.com
on 12 Mar 2013 at 11:41
О, теперь слышу))
Original comment by djd...@gmail.com
on 12 Mar 2013 at 1:18
пофиксил нормализацией громкости в режиме
моно (оно было громче, чем в других режимах)
http://code.google.com/p/unrealspeccyp/issues/detail?id=48#c21
Original comment by djd...@gmail.com
on 12 Mar 2013 at 11:06
Отлично! Спасибо!
Original comment by volga...@gmail.com
on 13 Mar 2013 at 4:58
Original comment by djd...@gmail.com
on 14 Mar 2013 at 4:35
Original issue reported on code.google.com by
volga...@gmail.com
on 26 Nov 2012 at 7:07