

Game blaster
Reverse-engineered CT-1300 Game Blaster card
- Size
- 133.4 × 105.9 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 72
- Nets
- 142
- Pads
- 379
- Tracks, vias
- 888, 99
- Pours
- 4
- Routed
- Yes
- KiCad
- KiCad 6 (file 20211014)
- Created
- 10 Feb 2023
- Updated
- 10 Feb 2023
Overview
Game blaster is an open-source printed circuit board by schlae, from the schlae/game-blaster repository on GitHub. It is a 2-layer board of 133.4 × 105.9 mm with 72 parts on 142 nets, routed with 888 tracks and 99 vias.
It is built around the 74LS125DC, TEA2025N and 74LS32SC, with the 74LS74PC among its other parts. Its parts include 39 capacitors, 12 resistors, 10 ICs, 4 switches and 2 connectors.
Main components
474LS125DC
-0℃~+70℃ 1 10ns@5.5V,50pF 15mA 18mA 24mA 4 4.5V~5.5V 74LS Power-off isolation、Output enable Tri-State Unidirectional - Buffers, Drivers, Receivers, TransceiversTexas InstrumentsBuffers, Drivers, Receivers, TransceiversTEA2025N
DIP-160.3% 1.3Wx2@8Ω、2.3Wx2@4Ω、0.1Wx2@4Ω、1.0Wx2@4Ω、0.6Wx2@8Ω、2.3Wx2@8Ω 2-Channel 3V~12V 40mA 46dB Built-in audio processing DIP-16 Audio Amplifiers ROHSHGSEMIAudio Amplifiers74LS32SC
-- Logic Gates ROHSTexas InstrumentsLogic Gates74LS74PC
DIP-140ns 0℃~+70℃ 1 2 20MHz 3.5pF 35ns@5V,50pF 4.5ns 4.75V~5.25V 400uA 74LS Series 8mA 8mA Asynchronous Complementary D-Type Rising Edge Set and Reset DIP-14 Flip FlopsTexas InstrumentsFlip Flops
README
README.mdGame Blaster (CT-1300)
Here's the partially reverse engineered Game Blaster/Creative Music System card. Some information is still missing, particularly for the ID chip, but also the values of a few capacitors. Some guesses were made about traces on the top layer hidden from view by chips or other components. That's right, this is based on a few photos of the card I was able to find.
This isn't a complete design. Don't expect to be able to fab it out and have a working card. I'm putting this up in the hopes that someone might find it a useful reference for further reverse engineering work.

Unknowns
Here's a list of everything that is not currently known about the card.
- Values of C14, C21, C22, the bodge capacitor on the back of the board, C23, C24, C25, C26, C27, C28, C36, zener diode Z1
- Traces on the top layer underneath IC4, IC8, and IC9 are mostly guesses
- The identity of the mystery chip, IC4.
- Differences between revision A and revision B.
Mystery ID chip
Identifiers
This chip is a 40-pin DIP marked as follows:
8827
CT 1302 A
CTPL 8708CT1302A
CTPL8708
28840HA05CT1302A
CTPL8708
28844HA05Some cards have a chip that has been sanded down and labeled with a plain paper sticker:
C.M.S.
CT1302If we believe the markings, we might assume that this is an OTP gate array device or potentially a mask-programmed gate array. "CTPL" might stand for "Creative Technology Programmable Logic" and "8708" might refer to the year 1987 and the work week 8, which implies that this is when Creative released the data files to the company who manufactured the chip.
The remaining lines on the chip, "28844HA05" or "28840HA05" or "8827" seem to imply several different manufacture dates for the chips, all in 1988, work weeks 27, 40, and 44.
Of course, since chip markings are easily customizable, this might all be designed to throw competitors off the trail, and it's an off-the-shelf device that has been repurposed.
Functionality
The chip provides several different functions:
- 8-bit data bus connection (bidirectional). This is wired directly to the ISA data bus.
- Two 8-bit ports. One each is wired to the SAA1099 sound generator chips. Each port has a control line that seems to be used to latch data into the port from the ISA data bus.
- Card ID register. When writing port 226h or reading port 22Ah, external logic selects some sort of internal 8-bit latch in the chip. Basic on the connections of AND gate IC8D, this latch may be shared with port B, which implies that the values latched in each port can be read back.
- Some type of shift register. It is not known if the shift register is coming from one of the existing port registers or is standalone. This is accessed by reading from port 224h and examining bit 7 (the MSB). Plenty of software assumes this is always 7Fh, but the CMSDRV.COM driver program checks for a pattern of 1s and 0s on the MSB when performing 8 consecutive read operations from this port.
Partial Pin Description
| Pin | Direction | Description |
|---|---|---|
| 1 | Gnd | |
| 2 | Input, active low | Latches the data bus on port A |
| 3-10 | Output | Port A, output only? |
| 11 | Input, active low | Latches the data bus on port B |
| 12-19 | Output | Port B, output only? |
| 20 | VCC | |
| 21 | Gnd | |
| 22 | Input | Unknown, strapped to VCC. Chip select? |
| 23 | Input | Unknown, strapped to VCC. Chip select? |
| 24, 25 | Inputs, active low | One could be a R/W# line and the other a register select. |
| 26 | Output | Unknown, output of a shift register? |
| 27 | Input, active low | Unknown, asserted to read the contents of port B |
| 28 | Input, active low | Unknown, asserted to reset the shift register? |
| 29 | Input, active low | Selects the shift register for access, or perhaps acts as the shift clock for the shift register |
| 30, 31 | Unknown, likely no connect pins | |
| 32-39 | Bidirectional | Connection to ISA data bus |
| 40 | VCC |
CMSDRV.COM Code
I've reverse engineered parts of the CMS driver provided with the card, and learned a few things.
- The program performs a partial checksum of itself, writes the value out to the card ID register, and reads it back later on. The value is expected to be A0h.
- The program attempts to disguise the results of card detection by "encrypting" the card not detected string. The string is just XORed with 07h.
- The program uses self-modifying code in a few places, presumably to hamper reverse engineering efforts. Typically it just overwrites literal values that are part of MOV instructions. This is used to change the INT 21h from a 4Ch command (exit) to a 31h command (terminate and stay resident).
- After initializing the SAA1099 registers, the program reads from 224h eight times and checks bit 7. the first four values are ignored, but the last four must match the pattern
1100. - Right before terminating (and staying resident) the program stores a magic number at 228h.
Next Steps
We need someone who has a card to examine it and provide photos from different angles so we can read the values of a bunch of the capacitors. Photos at extreme angles next to the column of chips on the left side of the board could help us follow the top layer traces. As an alternative, someone with a multimeter/continuity tester could help by measuring a few points to confirm connectivity.
Learning more about the mystery ID chip has a few paths forward:
- Someone out there may recognize the chip from the partial pinout
- Connect a logic analyzer to every pin of the chip, start CMSDRV.COM, and observe the waveforms
- Desolder the chip and experiment with unused functionality (strapped pins, unconnected pins, and so on)
- Destructively decapping the chip would be the simplest, but I doubt anyone would want to sacrifice a card for that. :)
Parts
72| Qty | Value | Footprint | References |
|---|---|---|---|
| 10 | ? | GameBlaster:CAPAC200 | C15, C16, C17, C18, C19, C20, C21, C22, C23, C24 |
| 7 | 0.1uF | GameBlaster:CAPAC200 | C4, C8, C13, C31, C32, C33, C34 |
| 4 | 10K | GameBlaster:RESA400 | R5, R7, R11, R12 |
| 4 | 1K | GameBlaster:RESA400 | R3, R4, R9, R10 |
| 3 | 100uF 16V | GameBlaster:CAPAP100 | C3, C6, C9 |
| 3 | 680pF | GameBlaster:CAPAC200 | C37, C38, C39 |
| 3 | tant | GameBlaster:CAPAP100 | C14, C25, C28 |
| 2 | 1.5K | GameBlaster:RESA400 | R1, R2 |
| 2 | 10uF 16V | GameBlaster:CAPAP100 | C1, C11 |
| 2 | 22uF 16V | GameBlaster:CAPAP100 | C2, C10 |
| 2 | 470uF 16V | GameBlaster:CAPAP200 | C5, C7 |
| 2 | 74LS138 | GameBlaster:DIP254P762X635-16 | IC5, IC10 |
| 2 | ? | GameBlaster:CAPAP100 | C29, C30 |
| 2 | DNI | GameBlaster:CAPAC200 | C35, C36 |
| 2 | FERRITE | GameBlaster:INDA500P780X750 | L1, L2 |
| 2 | MH | GameBlaster:SB_MH_125 | F1, F2 |
| 2 | SAA1099 | GameBlaster:DIP254P762X635-18 | IC2, IC3 |
| 2 | grn | GameBlaster:CAPAC200 | C26, C27 |
| 1 | 100uF | GameBlaster:CAPAP100 | C12 |
| 1 | 3.5mm | GameBlaster:SJ1-3553NG | S3 |
| 1 | 4.7K | GameBlaster:RESA400 | R6 |
| 1 | 470 | GameBlaster:RESA400 | R8 |
| 1 | 5V2? | GameBlaster:DIOA400 | Z1 |
| 1 | 74LS08 | GameBlaster:DIP254P762X635-14 | IC8 |
| 1 | 74LS125 | GameBlaster:DIP254P762X635-14 | IC7 |
| 1 | 74LS32 | GameBlaster:DIP254P762X635-14 | IC9 |
| 1 | 74LS74 | GameBlaster:DIP254P762X635-14 | IC6 |
| 1 | ? | GameBlaster:DIP254P1524X635-40 | IC4 |
| 1 | ADDRESS | GameBlaster:SB_HDR_2X6 | J1 |
| 1 | Conn_ISA_8bit | Conn:BUS_PC_8BIT | J2 |
| 1 | LEFT | GameBlaster:RCA_KYCON_KLPX | S2 |
| 1 | RIGHT | GameBlaster:RCA_KYCON_KLPX | S1 |
| 1 | TEA2025 | GameBlaster:DIP254P762X635-16 | IC1 |
| 1 | VOL | GameBlaster:SB_ALPS_RK08_DUAL | S4 |
Questions
How big is the Game blaster PCB?
It measures 133.4 × 105.9 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Game blaster use?
72 parts, built around the 74LS125DC, TEA2025N, 74LS32SC and 74LS74PC. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Game blaster KiCad files?
From the schlae/game-blaster repository on GitHub, at the commit this page was made from: the board is GameBlaster.kicad_pcb and its schematic GameBlaster.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Game blaster design in my own project?
Its repository states no licence, so its author keeps all rights: ask schlae before reusing the design.
Similar boards
- 2 layers231.1 × 106.7 mm

- 4 layers337.6 × 105.7 mm

ISA CGA
hkzlab/CGA_Redux
The Color Graphics Adapter Redux board is a more or less faithful clone of the original IBM CGA, based on the original schematics
170 parts56 - 2 layers170.2 × 100 mm

Z80-SBC
skiselev/zeta_sbc
Zeta SBC is an Zilog Z80 based single board computer. It is inspired by Ampro Little Board Z80 and N8VEM project. Zeta SBC is software compatible with RomWBW Firmware
75 parts53GPL-3.0 - 4 layers203.2 × 105.4 mm

- 2 layers279.4 × 203.2 mm

Z180GDC
lynchaj/rhyophyre
Single Board Computer featuring Zilog Z180 processor and NEC µPD7220 Graphics Display Controller
249 parts12 - 2 layers190.5 × 77 mm

- 2 layers478 × 183 mm

- 2 layers239.6 × 239.9 mm
