Konami Sound Cartridge

Микросхема Konami SCC-I, год выпуска 1988

Konami Sound Cartridge — специальный картридж расширения для бытовых компьютеров стандарта MSX, поставлявшийся в комплекте с играми Snatcher и Super Deform Snatcher (сами игры поставлялись на трёх дискетах формата 3,5 дюйма) фирмы Konami.

Описание

Картридж содержит немного улучшенный вариант микросхемы звукогенератора Konami SCC, имеющий официальное обозначение SCC-I, но обычно неофициально называемый SCC+, и 64 КБ оперативной памяти. Вероятно, дополнительная память была включена в состав картриджа по причине наличия у большинства MSX-совместимых компьютеров в Японии (на момент выхода упомянутых игр) небольшого объёма основной оперативной памяти (обычно 64 КБ).

Микросхема SCC+, использующаяся в картридже, отличается от обычной микросхемы SCC наличием памяти для хранения формы сигнала для всех пяти каналов (по 32 байта для каждого). Обычная микросхема SCC имела память только для четырёх каналов, каналы 4 и 5 использовали одну и ту же память.

Картридж, поставлявшийся в комплекте с игрой Snatcher отличается от поставлявшегося с игрой Super Deform Snatcher. Отличия заключаются только в различном распределении памяти. Возможной причиной этих различий является желание разработчика сделать эти картриджи несовместимыми между собой. Некоторые эмуляторы MSX эмулируют этот вариант картриджа (например, эмулятор MAME).

Большинство игр, входящих в сборники Konami Games Collections, могут использовать картридж, поставлявшийся с игрой Snatcher, для воспроизведения более качественного звука. За исключением этих игр, картридж не поддерживается другими программами.

Микросхема SCC+ выполнена в корпусе DIP48. На корпусе каждой микросхемы имеется маркировка KONAMI 052539 SCC-I 2312P001 JAPAN (отличается от маркировки обычных микросхем SCC), после которой следует код даты и места производства, например 8951EAI. Первые две цифры означают год, следующие две — номер недели в году. Буквы являются кодовым обозначением завода-производителя и партии.

Технические характеристики

  • Звукогенератор:
    • 5 каналов, генерирующие сигнал определяемой пользователем формы:
      • Каждый канал имеет 32 байта ОЗУ, в котором хранится описание формы генерируемого сигнала
      • 16 уровней громкости
      • Диапазон генерируемых частот от 27 Гц до 111.25 КГц
  • ОЗУ: 64 КБ
  • Управление памятью:
    • 4 окна по 16 КБ в адресном пространстве процессора

Звук генерируется полностью цифровой схемой, и выдаётся в виде параллельного 6-разрядного кода, преобразуемого внешним 11-разрядным ЦАП (простейшая цепная R-2R схема) в аналоговый сигнал.

Технические подробности

Увеличение объёма памяти

Существует возможность увеличить объём оперативной памяти картриджа до 128 КБ. На печатной плате предусмотрено два неиспользованных места для установки микросхем памяти типа 4464 (каждая имеет объём 4x64K). Когда дополнительные микросхемы памяти установлены, оба типа картриджей становятся полностью идентичными, и могут работать как с Snatcher, так и с Super Deform Snatcher.

Несколько неожиданным побочным эффектом расширения памяти становится то, что картридж начинает работать в точности как обычный картридж на основе ПЗУ объёмом 128 КБ и микросхемы SCC. При этом становится возможной загрузка в ОЗУ картриджа любых игр, распространявшихся на картриджах подобного типа (например, Gradius 2, F1 Spirit, Quarth, и другие) в ОЗУ картриджа, и они будут работать как оригинальные картриджи. Разумеется, при выключении питания информация, загруженная в ОЗУ, теряется, и требуется повторная загрузка. Возможно, что микросхема SCC+ изначально была разработана для внутренних нужд при разработке и тестировании игр в Konami.

Также возможно сделать картридж совместимым с обеими играми без добавления микросхем ОЗУ. Для этого требуется соединить вывод 16 одной из установленных микросхем ОЗУ с контактной площадкой для того же вывода одной из отсутствующих микросхем. При этом установленное ОЗУ станет отображаться в оба банка по 64 КБ.

Использование памяти

Программирование SCC+ осуществляется через порты ввода-вывода, отображённые в адресное пространство памяти, и в целом очень близко к программированию обычных картриджей с ПЗУ и SCC.

Как и на обычных картриджах с использованием микросхемы SCC, память делится на четыре банка по 8 КБ:

Банк 1
4000h — 5FFFh
Банк 2
6000h — 7FFFh
Банк 3
8000h — 9FFFh
Банк 4
A000h — BFFFh

Для изменения раскладки памяти, требуется произвести запись по одному из следующих адресов:

Банк 1
5000h — 57FFh
Банк 2
7000h — 77FFh
Банк 3
9000h — 97FFh
Банк 4
B000h — B7FFh

Биты с третьего по седьмой игнорируются. Значения от 0 до 7 выбирают 8-килобайтные страницы в младших 64 КБ ОЗУ картриджа (вариант с игрой Snatcher), значения от 8 до 15 — в старших 64 КБ (как с игрой Super Deform Snatcher).

По умолчанию (после сброса) устанавливается следующее соответствие банков и областей памяти: 1=0, 2=1, 3=2, 4=3. Такое распределение памяти аналогично обычным ПЗУ-картриджам с микросхемой SCC. Если младшие 64 КБ ОЗУ отсутствуют (в случае с Super Deform Snatcher), чтение из соответствующей им области памяти будет возвращать значение FFh, а запись будет игнорироваться.

По умолчанию, содержимое ОЗУ не может быть изменено (запись в него запрещена, режим ПЗУ). Для выбора режима доступа к памяти, а также для выбора режима работы звукогенератора (режим SCC+, в котором каналы 4 и 5 полностью независимы, или режим совместимости с SCC, в котором эти каналы используют общую форму сигнала) существует специальный регистр, называемый регистр режима. Он всегда находится в адресах BFFEh и BFFFh. возможно перевести память в режим ОЗУ, однако в этом режиме нет возможности изменить соответствие банков областям памяти.

Бит 7
не используется
Бит 6
не используется
Бит 5
если установлен, звукогенератор работает в режиме SCC+, иначе в режиме совместимости с SCC
Бит 4
если установлен, банки с 1 по 3 находятся в режиме ОЗУ, иначе в режиме выбора области памяти
Бит 3
не используется
Бит 2
если установлен, и бит 5 сброшен, банк 3 находится в режиме ОЗУ, независимо от значения бита 4
Бит 1
если установлен, банк 2 находится в режиме ОЗУ, независимо от значения бита 4
Бит 0
если установлен, банк 1 находится в режиме ОЗУ, независимо от значения бита 4

Ячейки памяти BFFEh и BFFFh не могут быть изменены даже в режиме ОЗУ, так как в них всегда отображается регистр режима.

Игры от Konami всегда используют значения 20h и 3Fh для регистра режима, так как они всегда используют режим SCC+. 30h также будет работать для режима ОЗУ.

Использование звукогенератора

Если банк 3 находится в режиме выбора области памяти, и бит 5 регистра режима сброшен, режим SCC может быть активирован записью значения 3Fh в любой адрес в диапазоне 9000h…97FFh. Набор управляющих регистров аналогичен обычным картриджам с SCC, и отличается только адресами регистров и возможность чтения формы сигнала канала 5. Регистры SCC отображаются памяти в диапазоне адресов от 9800h до 9FDFh.

Адрес Запись/чтение Назначение
9800h — 981Fh Запись и чтение Форма сигнала канала 1
9820h — 983Fh Запись и чтение Форма сигнала канала 2
9840h — 985Fh Запись и чтение Форма сигнала канала 3
9860h — 987Fh Запись и чтение Чтение: форма сигнала канала 4
Запись: форма сигнала каналов 4 и 5
9880h — 9881h Только запись Частота канала 1
9882h — 9883h Только запись Частота канала 2
9884h — 9885h Только запись Частота канала 3
9886h — 9887h Только запись Частота канала 4
9888h — 9889h Только запись Частота канала 5
988Ah Только запись Громкость канала 1
988Bh Только запись Громкость канала 2
988Ch Только запись Громкость канала 3
988Dh Только запись Громкость канала 4
988Eh Только запись Громкость канала 5
988Fh Только запись Биты включения-выключения каналов 1..5
9890h — 989Fh Только запись Аналогично адресам 9880h…988Fh
98A0h — 98BFh Только запись Форма сигнала канала 5
98C0h — 98DFh Запись и чтение Регистр искажения
98E0h — 98FFh Не используется

Если банк 4 в режиме выбора области, и бит 5 регистра режима установлен, режим SCC+ может быть активирован записью любого значения с установленным старшим битом в любой адрес в диапазоне B000h…B7FFh. После этого регистры SCC+ становятся доступными в диапазоне адресов B800h…BFDFh.

Адрес Запись/чтение Назначение
B800h — B81Fh Запись и чтение Форма сигнала канала 1
B820h — B83Fh Запись и чтение Форма сигнала канала 2
B840h — B85Fh Запись и чтение Форма сигнала канала 3
B860h — B87Fh Запись и чтение Форма сигнала канала 4
B880h — B89Fh Запись и чтение Форма сигнала канала 5
B8A0h — B8A1h Только запись Частота канала 1
B8A2h — B8A3h Только запись Частота канала 2
B8A4h — B8A5h Только запись Частота канала 3
B8A6h — B8A7h Только запись Частота канала 4
B8A8h — B8A9h Только запись Частота канала 5
B8AAh Только запись Громкость канала 1
B8ABh Только запись Громкость канала 2
B8ACh Только запись Громкость канала 3
B8ADh Только запись Громкость канала 4
B8AEh Только запись Громкость канала 5
B8AFh Только запись Биты включения-выключения каналов 1..5
B8B0h — B8BFh Только запись Аналогично адресам B8A0h…B8AFh
B8C0h — B8DFh Запись и чтение Регистр искажения
B8E0h — B8FFh Не используется

См. также

Ссылки