Konami Sound Cartridge

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

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

Описание

Картридж содержит немного улучшенный вариант микросхемы звукогенератора 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Не используется

См. также

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.