Skip to the content
PCBKitNew board
2 layers133.4 × 105.9 mmGame blaster, the printed circuit board in 3D

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

4

README

README.md

Game 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.

Game Blaster layout photo

Schematic

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:

text
8827
CT 1302 A
CTPL 8708
text
CT1302A
CTPL8708
28840HA05
text
CT1302A
CTPL8708
28844HA05

Some cards have a chip that has been sanded down and labeled with a plain paper sticker:

text
C.M.S.
CT1302

If 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

PinDirectionDescription
1Gnd
2Input, active lowLatches the data bus on port A
3-10OutputPort A, output only?
11Input, active lowLatches the data bus on port B
12-19OutputPort B, output only?
20VCC
21Gnd
22InputUnknown, strapped to VCC. Chip select?
23InputUnknown, strapped to VCC. Chip select?
24, 25Inputs, active lowOne could be a R/W# line and the other a register select.
26OutputUnknown, output of a shift register?
27Input, active lowUnknown, asserted to read the contents of port B
28Input, active lowUnknown, asserted to reset the shift register?
29Input, active lowSelects the shift register for access, or perhaps acts as the shift clock for the shift register
30, 31Unknown, likely no connect pins
32-39BidirectionalConnection to ISA data bus
40VCC

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
QtyValueFootprintReferences
10?GameBlaster:CAPAC200C15, C16, C17, C18, C19, C20, C21, C22, C23, C24
70.1uFGameBlaster:CAPAC200C4, C8, C13, C31, C32, C33, C34
410KGameBlaster:RESA400R5, R7, R11, R12
41KGameBlaster:RESA400R3, R4, R9, R10
3100uF 16VGameBlaster:CAPAP100C3, C6, C9
3680pFGameBlaster:CAPAC200C37, C38, C39
3tantGameBlaster:CAPAP100C14, C25, C28
21.5KGameBlaster:RESA400R1, R2
210uF 16VGameBlaster:CAPAP100C1, C11
222uF 16VGameBlaster:CAPAP100C2, C10
2470uF 16VGameBlaster:CAPAP200C5, C7
274LS138GameBlaster:DIP254P762X635-16IC5, IC10
2?GameBlaster:CAPAP100C29, C30
2DNIGameBlaster:CAPAC200C35, C36
2FERRITEGameBlaster:INDA500P780X750L1, L2
2MHGameBlaster:SB_MH_125F1, F2
2SAA1099GameBlaster:DIP254P762X635-18IC2, IC3
2grnGameBlaster:CAPAC200C26, C27
1100uFGameBlaster:CAPAP100C12
13.5mmGameBlaster:SJ1-3553NGS3
14.7KGameBlaster:RESA400R6
1470GameBlaster:RESA400R8
15V2?GameBlaster:DIOA400Z1
174LS08GameBlaster:DIP254P762X635-14IC8
174LS125GameBlaster:DIP254P762X635-14IC7
174LS32GameBlaster:DIP254P762X635-14IC9
174LS74GameBlaster:DIP254P762X635-14IC6
1?GameBlaster:DIP254P1524X635-40IC4
1ADDRESSGameBlaster:SB_HDR_2X6J1
1Conn_ISA_8bitConn:BUS_PC_8BITJ2
1LEFTGameBlaster:RCA_KYCON_KLPXS2
1RIGHTGameBlaster:RCA_KYCON_KLPXS1
1TEA2025GameBlaster:DIP254P762X635-16IC1
1VOLGameBlaster:SB_ALPS_RK08_DUALS4

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 mmSnark barker, the printed circuit board in 3D

    Snark barker

    schlae/snark-barker

    A 100% compatible replica of the famed SB 1.0 sound card

    199 parts687
  • 4 layers337.6 × 105.7 mmISA CGA, the printed circuit board in 3D

    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 mmZ80-SBC, the printed circuit board in 3D

    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 mmIBMExtender, the printed circuit board in 3D

    IBMExtender

    schlae/ibm-extender

    IBM 5161 expansion chassis extender and receiver cards

    44 parts33
  • 2 layers279.4 × 203.2 mmZ180GDC, the printed circuit board in 3D

    Z180GDC

    lynchaj/rhyophyre

    Single Board Computer featuring Zilog Z180 processor and NEC µPD7220 Graphics Display Controller

    249 parts12
  • 2 layers190.5 × 77 mmGreengateDS3, the printed circuit board in 3D

    GreengateDS3

    schlae/goodgreat-ds3

    Clone of the Greengate DS3 sampler

    74 parts10
  • 2 layers478 × 183 mmHC2000, the printed circuit board in 3D

    HC2000

    badrianiulian/HC2000

    HC2000 Project

    259 parts9
  • 2 layers239.6 × 239.9 mmTK3000, the printed circuit board in 3D

    TK3000

    clemarfolly/TK3000

    Réplica do Microdigital TK3000

    329 parts7GPL-3.0