Konami Sound Cartridge
|This article does not cite any references or sources. (December 2009)|
The Konami Sound Cartridge is supplied with the MSX video games Snatcher and SD Snatcher. Sometimes it is known as the SCC+. It includes a slightly improved Konami SCC sound chip and 64kB of volatile RAM. It is likely that the RAM was included since most MSX computers in Japan at the time of release had very little memory (mostly 64kB).
Like the normal SCC, the chip has 5 audio channels. The waveform is set by 32 bytes of 8 bit samples. Each channel has its own 32 bytes of waveform, unlike the SCC where channel 4 and 5 share the waveform.
The cartridge included with Snatcher is different from the one included with SD Snatcher, but only in memory layout. It was probably done to make it incompatible. Some MSX emulators emulate this cartridge, MESS and OpenMSX for example.
Most video games on the Konami Games Collections for the MSX can use the cartridge that is included with Snatcher for better sound. Apart from those the Sound Cartridge is not used by any other programs.
The print on the chip is: KONAMI 052539 SCC-I2312P001 JAPAN followed by a fabrication location/date number, like 8951EAI. The first two digits are the year, followed by the week. The letters after that are some location/lot code.
It is possible to expand the memory to 128kB by adding 64kB of RAM to the cartridge. There are two open places on the PCB. When the RAM is added, both types of cartridges become identical. The cartridge will work with both the SD Snatcher and Snatcher video games.
Surprisingly enough, a cartridge with 128kB RAM can behave exactly like a SCC ROM cartridge of 128kB. This means you can load those games into the RAM (e.g. Gradius 2, F1 Spirit, Quarth and so on) and it will behave like the original ROM cartridge until the power is turned off, since it is volatile RAM. It is possible that this chip was originally developed for internal development and testing use at Konami.
The RAM ICs are of type 4464. They are four bits wide and a 64K range. There might still some solder in the holes, you can use a solder sucker for that.
If you would like the cartridge to work with both video games then you can also connect the memory banks (so they are mirrored). Connect CAS (pin 16 of RAM IC) of one of the RAM ICs with one of the empty slots.
Using the memory
Everything is done using memory-mapped I/O and it is much like the SCC ROM cartridges.
As with SCC cartridges, the memory is divided into four memory banks of 8kB:
- Bank 1
- 4000h - 5FFFh
- Bank 2
- 6000h - 7FFFh
- Bank 3
- 8000h - 9FFFh
- Bank 4
- A000h - BFFFh
To change the mapping, write to one of these addresses:
- Bank 1
- 5000h - 57FFh
- Bank 2
- 7000h - 77FFh
- Bank 3
- 9000h - 97FFh
- Bank 4
- B000h - B7FFh
Bits 3 through 7 are ignored. Values 0 to 7 select 8kB pages of the lower 64kB (which is included with Snatcher) and values 8 to 15 the higher 64kB (which is included with SD Snatcher).
By default (after reset) bank 1 selected area 0, bank 2 area 1, bank 3 area 2 and bank 4 area 3. Again this is the same as SCC ROM cartridges. If the lower 64kB is empty (as it is with the Super Deform Snatcher cartridge) then the memory will be empty (reads FFh).
By default, the RAM cannot be changed. By setting a bit somewhere else the areas can no longer be changed (ROM mode) but can be written to (RAM mode). This is done by writing to the mode register, which is always accessible through address BFFEh and BFFFh. The SCC can be put in also be put in SCC+ mode through this register, where channel 4 and 5 do not share a waveform.
- bit 7
- no function
- bit 6
- no function
- bit 5
- if set, sound chip is in SCC+ mode otherwise SCC compatibility
- bit 4
- if set, banks 1 to 3 are in RAM mode otherwise area select
- bit 3
- no function
- bit 2
- if set and bit 5 reset, bank 3 is RAM mode irrespective of bit 4
- bit 1
- if set, bank 2 is RAM mode irrespective of bit 4
- bit 0
- if set, bank 1 is RAM mode irrespective of bit 4
Even in RAM mode the memory under BFFEh and BFFFh cannot be changed through those addresses as that will always end up in the mode register.
Konami uses 20h and 3Fh for the mode register as they always use SCC+ mode. 30h would also work for RAM mode.
Using the sound chip
If bank 3 is in area select mode and bit 5 of mode register is reset, the SCC can be activated by writing 3Fh to one address 9000h through 97FFh. The layout is very similar to the SCC and the meaning of the registers is the same although the address differ somewhat and the waveform of channel 5 can be read. The SCC is visible at 9800h through 9FDFh.
|9800h - 981Fh||rw||waveform channel 1|
|9820h - 983Fh||rw||waveform channel 2|
|9840h - 985Fh||rw||waveform channel 3|
|9860h - 987Fh||rw||read: waveform channel 4
write: waveform channel 4 and 5
|9880h - 9881h||w||frequency channel 1|
|9882h - 9883h||w||frequency channel 2|
|9884h - 9885h||w||frequency channel 3|
|9886h - 9887h||w||frequency channel 4|
|9888h - 9889h||w||frequency channel 5|
|988Ah||w||volume channel 1|
|988Bh||w||volume channel 2|
|988Ch||w||volume channel 3|
|988Dh||w||volume channel 4|
|988Eh||w||volume channel 5|
|988Fh||w||on/off switch channel 1 to 5|
|9890h - 989Fh||w||same as 9880h to 988Fh|
|98A0h - 98BFh||w||waveform channel 5|
|98C0h - 98DFh||rw||deformation register|
|98E0h - 98FFh||no function|
If bank 4 is in area select mode and bit 5 of the mode register is set, the SCC+ can be activated by writing a value with bit 7 set to anywhere to B000h through B7FFh. Now the SCC+ becomes active at B800h through BFDFh.
|B800h - B81Fh||rw||waveform channel 1|
|B820h - B83Fh||rw||waveform channel 2|
|B840h - B85Fh||rw||waveform channel 3|
|B860h - B87Fh||rw||waveform channel 4|
|B880h - B89Fh||rw||waveform channel 5|
|B8A0h - B8A1h||w||frequency channel 1|
|B8A2h - B8A3h||w||frequency channel 2|
|B8A4h - B8A5h||w||frequency channel 3|
|B8A6h - B8A7h||w||frequency channel 4|
|B8A8h - B8A9h||w||frequency channel 5|
|B8AAh||w||volume channel 1|
|B8ABh||w||volume channel 2|
|B8ACh||w||volume channel 3|
|B8ADh||w||volume channel 4|
|B8AEh||w||volume channel 5|
|B8AFh||w||on/off switch channel 1 to 5|
|B8B0h - B8BFh||w||same as B8A0h to B8AFh|
|B8C0h - B8DFh||rw||deformation register|
|B8E0h - B8FFh||no function|