Victor Luchitz has been at it again! This time he’s create a sound driver for the Mega Drive that allows the Sega CD’s PCM sound hardware to be accessed when running a cart based game.
The driver supports playback of up to 8 mono sound streams played via the Ricoh RF6C164 chip. Samples are uploaded from cart to the Sega CD’s program RAM and channels are mixed by the Sub CPU of the Sega CD, while the Sega Genesis / Mega Drive is used to control playback.
There are several supported formats: WAV IMA ADPCM, WAV SB4 ADPCM and raw 8-bit PCM.
The source code and demo project which can be found on GitHub showcase how the driver can be used to start and control playback of multiple PCM streams. The code is based upon the SEGA CD Mode 1 CD Player created by Chilly Willy.
There are a few important notes regarding restrictions.
- Each sample must fit into 128KiB.
- There is a total reserve of 480KiB for samples.
- If ADPCM is used only mono samples are supported.
- IMA ADPCM is heavy work for the Sub-CPU to decode. This realistically means you get seven IMA ADPCM streams not eight without degradation.
- The driver also included CDDA music support.
So why is this a big deal?
With homebrew cart releases reaching the dizzy heights of 120MEG there is now a clear opportunity to take advantage of the Sega CDs PCM without needing to rely on the systems aging CD drive. The PCM produced by the Sega CD is far cleaner than the scratchy efforts produced by the Genesis / Mega Drive. If homebrew picks up this driver, Sega CD owners could be in for some very nice SFX and speech in future releases!