Cracking Trivia Quest (1984)
Techstar / Sunn's Trivia Quest, one of the earliest English electronic trivia cabinets, stored every question and answer as plaintext ASCII behind a 21-byte pointer-table header. No encryption, no scramble. 489 questions recovered across Trivia and Sports.
April 24, 2026 · crack, alliedleisure, trvquest, 6809
Trivia Quest
Techstar / Sunn Electronics · 1984 · Motorola 6809 · dual AY-3-8910 · 489 records
The Cabinet
Trivia Quest1 shipped in 1984, squarely inside the Trivial Pursuit
board-game craze that had hit North America a year earlier. While Greyhound
Electronics and Status Game Corporation were busy carving up the
U.S. bar-top trivia market with their own cabinets, Trivia Quest came
out of Techstar Inc. (incorporated July 1981, dissolved Nov 1988),
a small Florida outfit that also published under the Sunn Electronics
imprint. MAME files the driver under alliedleisure/ because the
cabinet hardware traces back to Allied Leisure (Hialeah, FL) by way
of Ed Miller, who founded Allied in 1968, renamed it Centuri in 1980,
and left in 1982 to license cabinets through Telko Properties / Techstar.
Allied / Centuri and Techstar are separate companies linked only by
shared personnel; Trivia Quest itself is a Techstar release.
The hardware is unusual for a trivia cabinet of that era: a Motorola
6809 CPU, dual AY-3-8910 sound chips, and, critically, a question
daughterboard with a socket for up to nine 8KB ROMs (roma..romi).
Each ROM is a standalone question pack; swap one to swap the trivia. The
main driver sits at scripts/roms/alliedleisure/trvquest.cpp in MAME.
Two question packs shipped:
- Trivia (general knowledge), 201 records across roms a, b, c, d
- Sports (baseball, football, hockey, etc.), 288 records across roms e, f, g, h, i
The Data
All 489 records browse live at /browse?source=alliedleisure_trvquest . splittable by chip, plaintext questions and answers. Three questions are stored twice with different wrong answers; both copies are kept.
How We Cracked It
No Encryption At All
This is the surprise. After the year we’ve spent cracking GEI’s T3 5-bit packing , Bally Sente’s base-40 radix , Status Games’ OR-0x40 + bit-6 word boundaries , Kramer’s bigram-plus-phrase compression , Enerdyne’s LZ-style phrase table , Merit’s dual-LUT address scramble , and Exidy’s bit-rotation , Trivia Quest just stores the questions as plain ASCII.
$ xxd roma | head -2
00000000: f0a5 5452 4956 4941 2020 0401 1401 b101 ..TRIVIA ......
00000010: d501 d601 de01 df01 eb01 ec01 f501 f601 ................
$ xxd -s 0x1b0 -l 0x30 roma
000001b0: 0157 6861 7420 6973 2074 6865 206c 6172 .What is the lar
000001c0: 6765 7374 206c 616e 6420 6361 726e 6976 gest land carniv
000001d0: 6f72 653f 0404 476f 7269 6c6c 6104 044b ore?..Gorilla..K
You can see it right in the hex: What is the largest land carnivore?, a
full trivia question sitting in the clear. The \x04 ends each
screen line; everything else is ASCII.
The Record Format
Each question-ROM is sliced into one or more blocks. A block begins
with the two-byte magic \xF0\xA5, followed by an 8-char category name
(space-padded) and 3 more bytes: a \x04, the level (Scholar or
Genius) and the number of questions in the block. After that, records
are a fixed 21 bytes each:
offset 0x00..0x13 ten big-endian 16-bit pointers (p0..p9), relative to block base
offset 0x14 answer index (which pointer holds the correct answer)
The pointers mark where each field begins inside the block’s text area:
p0 p1, question, screen line 1 and line 2p2 p3, first choice, line 1 and line 2p4 p5, second choicep6 p7, third choicep8 p9, fourth choice
Each pointer is one screen line, running up to the next \x04. Line 2
is usually empty; when it isn’t, it holds the rest of the text and we
join the two lines with a space.
The answer byte at 0x14 tells the CPU which choice slot (0..3) to score as correct. Every other byte of the ROM is question text, stored in the clear.
The Parse
Blocks are variable length. The count byte in the block header says
how many 21-byte records follow. Read that many, then look for the next
\xF0\xA5, repeat.
Yield
roma=66 romb=60 romc=60 romd=15 (Trivia)
rome=58 romf=65 romg=40 romh=65 romi=60 (Sports)
-------
total: 489 records (490 in the ROM, 1 left out as broken in the ROM itself)
The distribution tells its own story: romd is a short pack at 15
records, probably a late-addition chip the operator could slot in
alongside the others. The rest land in the 40-66 range, about right
for an 8KB ROM carrying plaintext question bodies plus choice text.
What It Tells Us
Trivia Quest is a reminder that not every 1980s arcade ROM is encrypted. Before the trivia wars escalated and operators started pirating each other’s question packs, some manufacturers just… wrote the questions down. The 21-byte pointer header is pure efficiency. the 6809 CPU can jump straight to any field with a single pointer dereference, no parsing, no decoding.
By 1986 nobody was shipping plaintext anymore. Trivia Quest is a snapshot of a two-year window where the market hadn’t yet decided that question text was a trade secret worth protecting.
References
Related
Cross-archive analyses
Trivia Quest (1984, Techstar / Sunn Electronics) · Arcade-Museum · MAME romset:
trvquest↩︎