Cracking Trivia Madness (1985)
M. Kramer Manufacturing's bar-top trivia with two chip formats on one board. Long listed as undumped; turned up on archive.org in 2021. 3,790 questions across 8 category chips. The True/False chips' phrase dictionary hid inside a graphics ROM.
April 19, 2026 · crack, kramer, thunderhead, trivia-madness, z80
Trivia Madness
M. Kramer Manufacturing / Thunderhead Inc. · 1985 · Z80 · 8 category chips · 3,790 records

The Cabinet
Trivia Madness1 shipped in 1985 from Thunderhead Inc., built on a countertop board designed by M. Kramer Manufacturing of Asbury Park, NJ. Kramer was a tiny player in the bar-trivia boom, their catalog totals only two known cabinets, the other being the almost-impossible-to-find LA Beer Trivia Challenge, an Anheuser-Busch-licensed machine that debuted at the 1985 AMOA Expo. Both run the same basic hardware. The trivia was the product; the Kramer board was the delivery vehicle.
For decades Trivia Madness was on the “never dumped” list at
mameworld.info/maws
. The cabinet was rare
enough, and Kramer obscure enough, that nobody with an EPROM reader had
ever pulled its chips, until May 2021, when an uploader called “Sketch
the Cow” dropped a complete dump onto the Internet Archive as
arcade_trvmadns
.
Playable in a browser immediately. Extractable, with effort.
The Data
All 3,790 records browse at /browse?source=kramer_trvmadns . a mix of True/False (2,124) and Multiple-Choice (1,666) questions across eight category chips.
- Extractor:
scripts/thunderhead/extract.py - Original ROM dump: archive.org/details/arcade_trvmadns
- MAMEWorld unMAMEd entry (historical): non_other80.html
How We Cracked It
The Hook: Two Formats, One Cabinet
The Trivia Madness board accepts question ROM chips in any of 16 bank positions. Operators could mix-and-match chips across categories. Most bar-top trivia cabinets of this era use one format; Kramer used two, depending on the category:
- True/False chips (sex, soaps, rebel, star trek) store short
statements followed by
.*Tor.*F. Players answer TRUE or FALSE. - Multiple-Choice chips (entertainment, sports, TV, travel) store
four-option records:
\<question>*<correct>*<wrong1>*<wrong2>*. Players pick A, B, or C.
Same cabinet, same Z80, same ROM socket, the game code dispatches on
a marker at the start of the chip (“MC” for multiple-choice, a plain
\ for True/False).
The True/False Format
TF chips have no header. Records run top-to-bottom:
\SEXUAL ACTIVITY ELICITS<HORMONAL RESPONSES.*T
\A WOMAN CANNOT RAPE<A MAN.*F
\THE CLITORIS HAS OTHER<PURPOSES BESIDES<PROVIDING PLEASURE.*F
\KAI TEK AIRPORT<IS IN CHINA.*T
\marks the start of a record.<is a display line break, the monitor wrapped text at fixed character positions and the designers pre-computed where to break. Stripped to a space on extract..*Tor.*Fterminates the record with the answer.
Bytes in the 0x80-0xFF range inside a TF chip are inline word tokens.
Unlike the MC chips, TF chips carry no dictionary of their own, the
Z80 dispatches through a board-wide phrase table baked into one of
the program ROMs.
Finding the TF Dictionary
An initial pass at the TF chips left every question peppered with
high-bit bytes that we couldn’t expand. The dictionary had to exist
somewhere, the cabinet obviously renders full English on screen.
but program ROM u5 (the main Z80 code) held only code, strings,
and the attract-mode text. We almost shipped with the TF tokens
stripped and moved on.
The fix was to scan every ROM on the board for a specific structural signature: a byte sequence where a high-bit token byte (0x80, 0x81, 0x82…) is followed by a short ASCII phrase, which is followed by the next sequential token byte, and so on. The pattern lands on a real dictionary and ignores incidental ASCII runs. Exactly one hit across 40 KB of ROM:
u6 “green” at offset 0x1EC0, a 49-entry phrase table:
0x80 WHO 0x81 WHERE 0x82 WHAT 0x83 WHEN 0x84 HOW
0x85 WAS 0x86 THE 0x87 IN 0x88 OF 0x89 IS
0x8A AS 0x8B AN 0x8C WHICH 0x8D AND 0x8E HAD
0x8F TO 0x90 ON 0x91 ARE 0x92 DID 0x93 FOR
0x94 HAVE 0x95 WITH 0x96 FROM 0x97 YOU 0x98 SPENDING
0x99 WHO WAS THE 0x9A WHEN WAS THE
0x9B HOW MANY 0x9C 19 0x9D LEAD
0x9E WHERE WAS THE 0x9F WAS THE 0xA0 MOST
0xA1 YEAR 0xA2 HIGHEST 0xA3 THAT
0xA4 TIME 0xA5 ONLY 0xA6 I SAY LA 0xA7 I SAY LA WHEN
0xA8 AT 0xA9 I'VE 0xAA GOT 0xAB I'M 0xAC LONG
0xAD IT'S 0xAE DAY 0xAF WORK 0xB0 PARTY
u6 is labelled “green” on the board, ostensibly the green colour plane of the character ROM, but Kramer quietly parked the dictionary in the tail of the file where the graphics would otherwise be all 0xFF padding. That is why the earlier pass missed it: nobody looks for phrase tables inside a colour ROM.
With the dict applied, TF questions read as full English. Byte 0x86
alone (the most common token, 2,125 occurrences) is “THE”, two
thousand missing THEs. The MC chips layer their per-chip 0xC0+
dictionary on top of the same board-wide table, so words like “WHO
WAS THE” get a token in the global table and chip-specific entries
like “ALL MY CHILDREN” get a token in the per-chip table.
About ~130 high-bit bytes in the 0xB1-0xEF range remain unmapped. per-chip category tokens (things like “SEXUAL”, “ONCE MARRIED”, “SOAP OPERA”) we haven’t located a storage site for. Those are silently dropped during extraction rather than rendered as placeholders.
The Multiple-Choice Format
MC chips carry their own per-chip phrase dictionary. The layout:
0x0000 "MC" magic
0x0004 category name + "*"
0xFF padding (~250 bytes)
0x0100 Token dictionary
- Each token entry is <byte 0xC0-0xFE><ASCII text>
- Runs until the next 0xC0-0xFE byte or 0xFF padding
~0x0380 0xFF padding
~0x0400 Records
\<question>*<correct>*<wrong1>*<wrong2>*
Reading the Entertainment chip’s dictionary:
0xC0: 'PLAYED THE TITLE ROLE'
0xC1: 'WHO RECORDED THE THEME SONG'
0xC2: ' BALLAD'
0xC4: '\x86\x9c53' ← garbage (chained to another token)
0xC5: 'LORRETTA LYNN*\x82\x85 CHARLIE CHAPLIN\'S<'
0xC7: 'CHARLES BRONSON'
0xC8: 'DUSTIN HOFFMAN'
0xC9: 'BURT LANCASTER'
0xCA: 'JACK NICHOLSON'
0xCB: 'CLINT EASTWOOD'
0xCC: 'WHAT ACTOR PLAYED'
...
0xE4: 'JAMES'
0xE5: 'FIRST'
0xE6: 'OSCAR'
0xE7: 'JACK'
0xE8: 'JOHN'
Every chip defines roughly 50 tokens, mostly actor names, common film/music vocabulary, and short connectives. Each category has its own vocabulary because the space savings are category-specific: sports chips define “TOUCHDOWN”, “QUARTERBACK”, team names; travel chips define “CAPITAL”, “OCEAN”, “CONTINENT”.
After token expansion, a record reads:
\WHO CO-STARRED WITH ELVIS IN THE MOVIE, "VIVA LAS VEGAS"
*ANN-MARGRET*LANA TURNER*RITA HAYWORTH*
Correct answer is always the first field after the question.
What Tripped Us Up
Three false starts before the real solve:
Mis-identifying the MC dictionary. The records themselves contain bytes in the 0xC0-0xFE range (from token references), so a naive dict-scanner that looks for “consecutive 0xC0+ bytes” will latch onto the record section instead of the real dictionary. The fix was to find the first 0xC0 in the file, because the dictionary always sits before the records, the first occurrence is always the real dictionary start.
Looking in the wrong ROM for the TF table. A first pass searched u5 (the main Z80 code) and u7 (graphics) for a phrase table, nothing there. The table lives in u6 (“green” colour ROM), which no one normally scans for text.
Treating TF chips as “dictionary-less”. A second pass just stripped all high-bit bytes from TF records rather than expand them, producing readable-ish English with words missing. That got shipped briefly before the u6 scan turned up the real table.
The Eight Categories
After decoding both formats with the merged dictionary stack, the 3,790 records fall into eight category chips:
| Chip | Format | Records | Content |
|---|---|---|---|
| Rebel | T/F | 707 | Guns, hunting, bourbon, fuel injection, outdoorsman |
| Star Trek | T/F | 605 | Original series + first movies |
| Travel | MC | 478 | World geography + landmarks |
| Soaps | T/F | 407 | All My Children, Guiding Light, Days of Our Lives |
| Sex | T/F | 405 | 1980s adult-trivia (aged poorly in places) |
| Entertainment | MC | 400 | Film & music |
| Sports | MC | 400 | NFL / NBA / MLB |
| TV | MC | 390 | Sitcoms, Happy Days, Gunsmoke, Cheers |
The Rebel name is period slang, the chip is Southern-masculine trivia (guns, bourbon, pickups, pop country). Not Confederate iconography, despite the name; just bar-top content aimed at the demographic the operator would drop a Trivia Madness cabinet in front of.
Output
3,790 records across the eight chips. Questions are a mix of True/False (2,124 records) and Multiple-Choice (1,666 records). The MC format carries 2-3 wrong answers; the TF format carries only the opposite boolean.
References
Related
Cross-archive analyses
Trivia Madness (1985, Thunderhead Inc. (M. Kramer Mfg. board)) · Arcade-Museum · MAME romset:
trvmadns↩︎