Konami SCC

Konami SCC ( Sound Custom Chip nebo Sound Creative Chip ) je elektronická součástka, čip generátoru zvuku, vyvinutý společností Konami společně s Yamahou pro použití ve spotřebitelských počítačích MSX . Možným důvodem jeho vzniku byly omezené možnosti čipu General Instrument AY-3-8912 (PSG), který se používá jako standardní zvukový generátor v počítačích MSX, což nevyhovovalo potřebám Konami .

Popis

Hry používající SCC obsahovaly tento čip na desce herní kazety . Kromě samotných funkcí generování zvuku měl SCC vestavěný obvod pro řízení rozšířené paměti, který umožňoval obejít se bez samostatného mikroobvodu pro správu paměti. Téměř všechny pozdější hry MSX od Konami od roku 1987 používají čip SCC. Jsou mezi nimi hry jako Gradius 2 a Metal Gear 2 . Kromě použití v počítačích MSX se čip SCC používal také v některých hracích automatech, například: Haunted Castle, City Bomber, Hexion, Nyan Nyan Panic.

Na obalu každé z her používajících SCC je nápis "...new 8 voice polyphonic LSI Custom Sound Chip Mounted." („... byl nainstalován nový osmihlasý polyfonní BIS.“). SCC však obsahuje pouze 5 audio kanálů. Zbývající tři kanály jsou kanály běžného čipu PSG, který je přítomen v jakémkoli počítači MSX.

Mikroobvod je vyroben v pouzdře DIP48 . Na těle každého mikroobvodu je označení KONAMI 051649 2212P003 JAPAN , za kterým následuje kód pro datum a místo výroby, například 8750AAA . První dvě číslice jsou rok, další dvě jsou týden v roce. Písmena jsou kódové označení výrobního závodu a šarže.

Mírně vylepšená verze, nazvaná SCC-I nebo neformálně SCC+ , byla použita v rozšiřující kazetě Konami Sound Cartridge , která přišla s hrami Snatcher a SD Snatcher . Kromě čipu SCC obsahuje tato kazeta dalších 64 kilobajtů paměti RAM .

Specifikace


Seznam her

Čip SCC se nachází na desce kazet následujících her MSX (kód kazety a rok vydání v závorkách):

Oficiální hry, které podporují SCC, vydané na jiných médiích:

Kromě oficiálních her je SCC podporováno řadou programů vytvořených amatéry - hry, elektronické časopisy, hudební disky. Nechyběly ani hudební editory pro MSX, plně orientované na použití čipu SCC a podporující jej spolu s dalšími zvukovými zařízeními.

Emulace

Emulace SCC je implementována v mnoha moderních počítačových emulátorech MSX , stejně jako v emulátoru multisystémového hracího automatu MAME . SCC je také podporován pluginy pro přehrávání hudby ve formátu KSS .

Technické detaily

Zvuková část čipu SCC je primitivní pětikanálový syntezátor založený na vlnové syntéze . Každý z kanálů má možnost programově zapínat/vypínat, měnit hlasitost a frekvenci, stejně jako přiřazovat libovolný průběh, definovaný 32bajtovým vzorkem . Kanály 4 a 5 sdílejí jeden vzorkovací buffer, takže čip obsahuje 128 bajtů paměti na čipu.

Zvuk je generován plně digitálním obvodem a je vysílán jako paralelní 6bitový kód, převedený externím 11bitovým DAC (jednoduchý řetězový obvod R-2R) na analogový signál.

Následuje technický popis procesu programování čipu na počítačích MSX. Protože oficiální dokumentace k mikroobvodu nebyla veřejně dostupná, byly všechny tyto informace získány reverzním inženýrstvím .

Řídicí registry

SCC je řízen přes I/O porty mapované v paměti. Pro inicializaci mikroobvodu je nutné zapsat číslo 3Fh (horní dva bity se nepoužívají, lze tedy použít i číslo FFh) do libovolné paměťové buňky v adresním rozsahu 9000h ... 97FFh. Po inicializaci můžete ovládat SCC zápisem a čtením dat v adresové oblasti 9800h…9FFFh.

Adresa Psát/číst Účel
9800h - 981Fh Psaní a čtení Průběh kanálu 1
9820h - 983Fh Psaní a čtení Průběh kanálu 2
9840h - 985Fh Psaní a čtení Průběh kanálu 3
9860h - 987Fh Psaní a čtení Průběh kanálu 4 a 5
9880h - 9881h Pouze záznam Frekvence kanálu 1
9882h - 9883h Pouze záznam Frekvence kanálu 2
9884h - 9885h Pouze záznam Frekvence kanálu 3
9886h - 9887h Pouze záznam Frekvence kanálu 4
9888h - 9889h Pouze záznam Frekvence kanálu 5
988ah Pouze záznam Hlasitost kanálu 1
988 bh Pouze záznam Hlasitost kanálu 2
988Ch Pouze záznam Hlasitost kanálu 3
988 Dh Pouze záznam Hlasitost kanálu 4
988Eh Pouze záznam Hlasitost kanálu 5
988 Fh Pouze záznam Kanály povolují/zakazují bity 1..5
9890h - 989Fh Podobné jako adresy 9880h...988Fh
98A0h - 98DFh Nepoužívá
98E0h - 98FFh Psaní a čtení Registrovat zkreslení

Průběh kanálu je definován 32 bajty se znaménkem a je vzorkem jedné periody průběhu. Přímo určuje barvu zvuku kanálu. Přehrávání probíhá cyklicky, od bytu 0 do bytu 31 a znovu.

Frekvence kanálu se nastavuje stejným způsobem jako u PSG. Jedná se o 12bitovou hodnotu hodinového děliče čipu, čím větší je hodnota děliče, tím nižší je generovaný tón. První bajt obsahuje nižších 8 bitů, druhý vyšší 4 bity Bity 4...7 druhého bajtu se nepoužívají.

Vzorec pro výpočet děliče pro získání požadované frekvence je také podobný PSG:

 - taktovací frekvence počítače (vždy rovna 3579545 Hz na MSX ), P - výsledný 12bitový dělič.

Hlasitost kanálů je také nastavena stejným způsobem jako PSG, ale chybí podpora amplitudové obálky. Spodní 4 bity obsahují hlasitost, 0 je minimum (ticho), 15 je maximum. Horní 4 bity se nepoužívají.

Registr povolení/zakázání kanálu používá pět bitů. Bit 0 odpovídá prvnímu kanálu, bit 4 pátému. Nastavením bitu se kanál zapne, resetem se vypne. Zbývající tři bity se nepoužívají.

Registr zkreslení (98E0h)

Tento registr nebyl použit v žádné hře od Konami . Všechny adresy v oblasti paměti 98E0h…98FFh odkazují na stejný registr. Resetování SCC nastaví jeho hodnotu na 0.

Spodní dva bity registru řídí hodinový předdělič a podle toho ovlivňují frekvence produkované kanály. Pokud jsou tyto dva bity nastaveny na 01, všechny generované frekvence se vynásobí 256. Pokud jsou nastaveny na 11 nebo 10, frekvence se vynásobí 16.

Pokud je nastaven bit 5, přehrávání vzorku průběhu začne od začátku pokaždé, když je zapsán frekvenční registr odpovídajícího kanálu.

Pokud je nastaven bit 6, data tvaru vlny se začnou posouvat rychlostí danou:

To znemožňuje zápis do vyrovnávací paměti průběhu.

Pokud jsou bity 6 a 7 nastaveny na 01, kanály 4 a 5 generují šum. Pokud jsou nastaveny na 11, generuje se šum amplitudové obálky.

Čtení z tohoto registru vždy vrátí FFh při nastavení bitu 6 registru. Protože se poté data tvaru vlny posunou, hodnoty načtené na adresách 9800h..987Fh se změní při každém dalším čtení.

Podrobnosti o adresách paměti

Oblast paměti 9800h..987Fh obsahuje RAM, zatímco registr zkreslení je resetován. Paměťová oblast 9880h..98FFh je dostupná pouze pro zápis, pokud se pokusíte provést čtení, bude vždy vrácena hodnota FFh. Při čtení registru zkreslení je třeba dávat pozor, protože tím se nastavuje jeho bit 6.

Paměťová oblast 9900h..99FFh má přesně stejný účel jako paměťové oblasti 9800h..98FFh, 9900h..99FFh a tak dále až do 9F00h..9FFFh. To je způsobeno neúplným dekódováním adresy pro čip SCC, adresní linky A8..A10 se neúčastní dekódování adresy.

Viz také

Odkazy