7 MSX

Every other page here has let you poke the chip directly. On a real MSX it takes more work. The SCC is built into the game cartridge rather than the machine, tucked behind the ROM mapper that squeezes a 512 kB Gradius 2 into the MSX's 64 kB of address space. Before a program can write even one volume register, it has to get that mapper to swap the sound chip in where the ROM normally sits.

The four bank registers

The cartridge maps 8 kB of its ROM into each of four windows in the address space, and each window has a write-only register that chooses which 8 kB segment appears there. Write a segment number to 9000h and the Z80 sees a different slice of ROM at 8000h–9FFFh. One value, though, does not select ROM at all.

Why 3Fh?

Only the low six bits of the value pick a segment, so the mapper reads 3Fh as "all of them at once" — a combination no ordinary segment number needs, which left Konami free to give it a second job. Write it to 9000h and 256 bytes of SCC take the ROM's place at 9800h–9FFFh. The other three windows carry on serving code and graphics, so the game keeps running while it plays.

One block, eight times over

Inside that window the chip only looks at the low eight address bits, A7–A0, so its 256-byte block repeats over and over up to 9FFFh: 9800h, 9900h and 9A00h all reach the same registers. Type any address from 8000h to BFFFh below to see where it actually lands, given how the mapper is set right now.

The program for what you are hearing

Here is the Z80 code that would put the chip into the state it is in now. It is built from the live memory block, so changing a waveform on any page, or switching to the SCC+, rewrites the listing to match.

Finding one in the first place

There is no ID register to ask. A driver has to go looking: in each cartridge slot it writes 3Fh to 9000h, then writes a byte to 9800h and reads it straight back. Waveform RAM gives back what you wrote; ROM does not. Checking for the AB cartridge header will not do either, since plenty of SCC cartridges boot with the game ROM disabled. The same read-back test finds an SCC+ as well.

One address to leave alone: the deformation register at 98E0h. Just reading it writes FFh straight back into it.

And on the Sound Cartridge

Snatcher's SCC+ sits on the same four bank registers, only over RAM rather than ROM. Unlock it through 9000h and you get the SCC-compatible layout at 9800h, so drivers written for the original chip still work; unlock it through B000h and you get the native layout at B800h, where channel 5 finally gets a waveform table of its own. A register on the cartridge, not on the chip, decides which of the two you are talking to.