The Codemasters CD was a compilation of games from Codemasters which came on a Audio CD, bundled with a special connection cable to connect an Audio CD Player to the Joystick Port. Since the computer can't boot from the Joystick Port, it also included boot software on cassette. The Codemasters CD was announced for ZX Spectrum, Commodore C64, and Amstrad CPC.
The Spectrum and Commodore versions have been actually released, but - as far as known - the Amstrad version wasn't ever released. According to the Oliver Twins (the makers of the CD), the Amstrad CPC hardware did exist, too. Though this seems to have been an unreleased prototype.
Pictures
Info from http://www.olivertwins.com/
ACU writes about Codemasters CD
Schematic
José Leandro Novellón did some reverse engineering on the Spectrum cable in 2008. The results were released on http://www.speccy.org/trastero/cosas/JL/CableCD/CableCD.html (spanish). According that results, the cable is assumed to contain hardware like this:
| C---------- Joystick.Pin1 (Up) |/ Audio Left (Tip) ------o----[330]----B| BC549B | |\ [1K] | E--+ | | Audio Gnd (Base) ------o----[470]----------o------- Joystick Pin8 (Common) | | [1K] | E--+ | |/ Audio Right (Mid)------o----[330]----B| BC549B |\ | C---------- Joystick.Pin6 (Fire)
The above circuit was rev-engineered by measuring the resistance between the cable pins, but without opening (=destroying) the moulded plastic connector that houses the original circuit - so far, it isn't fully confirmed if the original cable does really contain the above components (not to mention that multimeter tests can't reveal any additional small capacitors).
The material of the connector is still unknown, but if it's soft/elastic then it should be extremly easy to peal off the plastic with a knife and pincers, for revealing what is really in there. You are welcome to add your own results here if you like to combine research with some minor destruction!
Audio Signals
Below screenshots are showing some interesting sections of the Tracks on a Codemasters CD (screenshots are based on WAV files, recorded from the Spectrum version).
- Theoretically the audio signals should contain perfect rectangular waveforms - the tested WAV files did contain some analog dirt (the source of that dirt is unknown, either the original CD was mastered using analog equipment, or the CD-to-WAV conversion was done using analog sound input - or both).
- As seen on the screenshots, the stereo signals contain the same data on both left and right channel, so it's effectively a mono signal (without a clock signal or second data bit on one of the channels).
- Track 1 contains a repeated Test Signal consisting of two long and two short pulses, intended to be used with the volume calibration function in the cassette loader. The length of the test signal is about 110 seconds, and it's a 'raw' waveform without preceeding header or pilot pulses.
- Track 2-33 contain 32 spectrum games (average length 45 seconds each). Track 34 contains a slide show demo (about 390 seconds). Track 35-66 contain backup-copies of Track 2-33.
- For whatever reason, the first block on each Track (except Track 1) is Low Speed Block, using about the same pilot/sync/data pulse timings as normal Spectrum Cassette files. However, it is NOT a cassette file (which would consists of TWO such blocks, and which would contain other header/filetype values), the low speed block is around 6 seconds in length.
- All further block(s) on each track are High Speed Blocks, pilot/data pulses are shorter as on cassette blocks, the two sync files are longer as on cassettes.
Info Fragments on Spectrum CD Games Pack (Code Masters) (1989)
The pack consists of a Audio CD with about 30 spectrum games (each one recorded twice), and a connection cable (cd player's 3.5mm (or 6.3mm via adapter) stereo headphone socket to spectrum 9pin DSUB joystick port) (for Spectrum 128/+2/+3 or 48K with Kempston or sinclair joystick interface), and loading software on tape, to start loading or after a game is loaded one can press Q,U,I,T on keyboard to load (without needing to load tape loader again).
The loader has instructions and calibration so you can adjust the volume from the CD for optimal and error-free loading.
The loader asked the user to choose to use kempston or sinclair joystick interface.
A dissassembly of the Spectrum loader reveals the following:
- For kempston: Bit 4 (joystick fire) (pin6 on a atari-style kempston port) of port &1f is data.
- For sinclair: Bit 1 (joystick right/key '2') (pin6 on amstrad's non-atari-style spectrum +2 joystick port) of port &f7fe is data.
The loader is patched according to the interface chosen and appears to be a modified version of the normal cassette loading functions in the Spectrum BIOS. It seems to load the standard tape data structure: pilot, sync byte, data bytes and checksum byte. The loader uses only 1 bit (mono).
The CD capacity is said to be "12 Megs" (presumably meaning 12 Megabit = 60 tracks with 25Kbytes each).
It is quite probable that the Amstrad loader is similar to the Spectrum loader: 1. The CPC has same CPU as the Spectrum 2. The CPC already has a number of loaders based directly on the Spectrum ROM loader, so a conversion of this loader to CPC would be easy.
Links
- https://worldofspectrum.org/ - has a review about the Spectrum version
- https://www.olivertwins.com/ - according to this webpage, the Oliver Twins created "The CD Games Pack" in December 1989, for Amstrad CPC, Spectrum, and Commodore 64, published by Codemasters
- https://www.speccy.org/trastero/cosas/JL/CableCD/CableCD.html Rev-engineering the wire of the CD Games Pack for Spectrum.