Pixelrat (обсуждение | вклад) |
Bitblit (обсуждение | вклад) (Добавлен перевод описания) |
||
Строка 43: | Строка 43: | ||
|} | |} | ||
− | + | 20-битные значения частот и счётчиков хранятся в порядке начиная с наименьшего значащего полубайта. Каналы #2 и #3 не имеют регистра для наименьшего значащего полубайта, и его значение для этих каналов предполагается равным нулю. | |
− | + | Регистры обычно отображаются в адресное пространство памяти процессора. В аппаратном обеспечении Pacman регистры отображены в ячейки памяти с адресами 5040-505Fh, так что, например, запись значение по адресу 505Ah производит установку уровня громкости канала #2. | |
− | + | Генерация звука основана на таблице, содержащей 8 различных форм волны, где каждая из них описывается 32 4-битными записями. Для гибкости и возможности повторного использования, таблица хранится вне звукового чипа, на 256-байтном модуле PROM. | |
− | + | Звуковой чип тактируется частотой 96 кГц, равной частоте основного процессора (3.072 МГц), поделенной на 32. В ходе цикла частотный счётчик каждого из канала увеличивается на текущее значение частоты, после чего 5 наиболее значащих битов используются как индекс для получения текущего сэмпла волны из таблицы. После этого призводится умножение сэмпла на значение громкости канала, и результат отправляется на усилитель для воспроизведения. Стоит отметить, что канал заглушен, если его частота или громкость установлены в 0. | |
− | |||
− | |||
[[Категория:Звукогенераторы]] | [[Категория:Звукогенераторы]] |
Версия 21:34, 19 февраля 2015
Namco 3-channel Waveform Sound Generator (WSG) использовался в аркадных платформах Pac Man и Galaga. Позволяет использовать три канала с независимой регулировкой громкости, частоты и формы. Все функции зависят от 4-я битных регистров:
Регистр | За что отвечает |
---|---|
00h-04h | Частотный счётчик Voice #1 |
05h | Форма волны Voice #1 (использует 3 бита) |
06-09h | Частотный счётчик Voice #2 |
0Ah | Форма волны Voice #2 (использует 3 бита) |
0Bh-0Eh | Частотный счётчик Voice #3 |
0Fh | Форма волны Voice #3 (использует 3 бита) |
10h-14h | Частота Voice #1 |
15h | Громкость Voice #1 |
16h-19h | Частота Voice #2 |
1Ah | Громкость Voice #2 |
1Bh-1Eh | Частота Voice #3 |
1Fh | Громкость Voice #3 |
20-битные значения частот и счётчиков хранятся в порядке начиная с наименьшего значащего полубайта. Каналы #2 и #3 не имеют регистра для наименьшего значащего полубайта, и его значение для этих каналов предполагается равным нулю.
Регистры обычно отображаются в адресное пространство памяти процессора. В аппаратном обеспечении Pacman регистры отображены в ячейки памяти с адресами 5040-505Fh, так что, например, запись значение по адресу 505Ah производит установку уровня громкости канала #2.
Генерация звука основана на таблице, содержащей 8 различных форм волны, где каждая из них описывается 32 4-битными записями. Для гибкости и возможности повторного использования, таблица хранится вне звукового чипа, на 256-байтном модуле PROM.
Звуковой чип тактируется частотой 96 кГц, равной частоте основного процессора (3.072 МГц), поделенной на 32. В ходе цикла частотный счётчик каждого из канала увеличивается на текущее значение частоты, после чего 5 наиболее значащих битов используются как индекс для получения текущего сэмпла волны из таблицы. После этого призводится умножение сэмпла на значение громкости канала, и результат отправляется на усилитель для воспроизведения. Стоит отметить, что канал заглушен, если его частота или громкость установлены в 0.