The DPC: A Coprocessor in the Cartridge#

Bankswitching adds ROM and the Superchip adds RAM, but both are still just memory — passive storage the CPU does all the work against. Pitfall II: Lost Caverns (1984) took the idea to its conclusion: David Crane designed a custom chip, the DPC — officially the Display Processor Chip, though the initials are also his own (David Patrick Crane) — and built it into the cartridge. It was the first — and in the commercial 2600 era, essentially the only — game cartridge with a coprocessor of its own. The console did nothing new; the cart did the new thing.

The DPC marks the birth of the smart cartridge. Until then, cartridges simply stored more code and data — they could make the 6507’s job easier with more ROM or RAM, but they never performed work themselves. The DPC crossed that line: for the first time the cartridge became an active participant in running the game, with dedicated hardware doing specialized tasks while the 6507 stayed focused on gameplay. The cartridge had become a co-processor.

Data fetchers: streaming graphics without the CPU#

Recall what an ordinary kernel spends its 76 cycles on: a great deal of it is pointer bookkeepinglda (ptr),y, decrement, check, repeat — just to walk through a graphics table one byte per scanline, per object. That overhead is the ceiling on how much a kernel can draw.

The DPC’s headline feature is eight “data fetchers” that do this walking in hardware. Each fetcher is an address counter pointing into a block of graphics ROM on the cartridge. The program reads a fixed fetcher register; the DPC hands back the byte the counter currently points at and advances the counter on its own. The CPU no longer maintains the pointer — it just reads the next byte, already served up. Some fetchers can also increment by a fraction each step, so a shape can be smoothly scaled or scrolled with no CPU arithmetic, and others carry a windowing mask that draws only across a chosen band of scanlines. The net effect is a kernel freed of its housekeeping, with cycles left over to put far more on screen than the bare machine allows.

Three voices of music, in parallel with the game#

The TIA has two audio channels, and a busy game can rarely spare the cycles to drive them as continuous music while everything else races the beam. The DPC sidesteps that entirely. Three of its data fetchers can be switched into a music mode, where they’re clocked by an oscillator on the chip — independent of the CPU — and act as three programmable frequency dividers, i.e. three square-wave voices. The program samples their combined output and pours it into the TIA’s volume register, so Pitfall II’s well-known three-part theme plays on, steady, while the kernel gets on with the picture. The cartridge is, in effect, keeping the beat the console couldn’t hold.

(The DPC still uses bankswitching underneath for its ROM — the coprocessor sits alongside the paging logic, not instead of it.)

The first smart cartridge — not the last#

Every escape before the DPC expanded what the hardware has — more ROM, more RAM. The DPC expanded what the cartridge does: it offloaded computation, the one thing a passive chip never could. Commercially it was a dead end — almost nothing else ever used it — but the idea didn’t die. Decades on, it comes back at a scale Crane couldn’t have built in 1984: a cartridge carrying its own ARM processor, emulating the DPC and going far, far beyond it.

In Practice#

  • You will almost certainly never write for the original DPC. One commercial game used it, its display ROM and registers are specific to that design, and there’s no assembler-level “DPC mode” you reach for. It’s here as the idea’s furthest point, not a technique to adopt.
  • Stella emulates it. If you want to see the data fetchers and music engine at work, the DPC is a supported cartridge type in the emulator — load Pitfall II and watch the audio run free of the kernel.
  • The lesson generalizes. Whenever a per-line cost is the thing capping your kernel, “move the bookkeeping off the CPU” is the instinct the DPC distilled — and it’s exactly what modern enhancement chips do at scale.