System 16/18/24: FD1094 / FD1089 (de-suicide & conversion)¶
Many Sega System 16B/18/24 games (and Outrun/X-Board) run on a security CPU: an encrypted 68000. The FD1094 keeps its key in an internal battery-backed SRAM → dead battery = dead game (suicide). Good news: the security has been fully reverse-engineered (MAME), so you can restore a board, replace the battery without losing the key, or convert an FD1094 to any game.
| Field | Value |
|---|---|
| Platforms | Sega System 16B / 18 / 24, Outrun, X-Board… |
| Chips | FD1094 (68000 + SRAM key) · FD1089 A/B (variant) |
| Specific | System 18 adds an 8751 MCU → see System 18 conversions |
| Difficulty | 🟡 (battery swap) → 🟠 (Arduino re-key / ROM de-suicide) |
| Suicide? | Yes — key in battery-backed internal SRAM |
How the FD1094 works¶
- It is a Hitachi security module: a 68000 core + an internal SRAM of ~8 KB holding the decryption key, battery-backed.
- The program is encrypted at the opcode level: the decryption state depends on the current address (not a simple global XOR).
- Removing / draining the battery wipes the SRAM → the 68000 no longer decrypts anything → dead screen.
- The FD1089 is a variant; note: its A and B flavours are not interchangeable (an "A" key only fits "A" hardware).
Three routes (from most "original" to most "practical")¶
1. Replace the battery without losing the key (preservation)¶
As long as the board still boots, you can hot-swap the battery: wire the new battery in parallel (piggyback) before removing the old one, so the SRAM never loses power. A fresh battery lasts 20–30 years.
Never cut SRAM power
If the SRAM loses power for even a fraction of a second during the operation, the key is lost. Measure, prepare, and solder the new battery in parallel first.
2. Re-key: rewrite the key into a dead FD1094 (the "clean" method)¶
Since the keys are known (extracted by MAME), you can reprogram the key into a suicided FD1094 → the board becomes an unmodified, encrypted original. The ideal preservation.
Hardware (ArcadeHacker guide):
- Arduino Mega 2560 Rev 3
- 64-pin socket (ZIF or turned-pin)
- a dedicated PCB shield (files available, PCBway fab) + headers
Procedure:
- Assemble the shield (headers + 64-pin socket).
- Load the FD1094/FD1089 firmware in the Arduino IDE.
- Select the target game in the code, compile, upload.
- Insert the security module into the socket.
- Command
w= write the keys. - Command
v= verify.
FD1089: verification is destructive
v (verify) is safe on FD1094 but erases the data on FD1089. On
FD1089, do not verify.
📋 Which key for which game? → System 16 keys-per-game table (138 sets, 317-xxxx number per game, transcribed from MAME).
An FD1094 converts to ANY game
An FD1094 can be reprogrammed for any game (the label need not match) → it is also a conversion route: re-key the module to the wanted game + fit that game's encrypted ROMs. The FD1089, however, is limited by its A/B variant.
3. De-suicide via decrypted ROMs + bare 68000 (the simplest)¶
You replace the encrypted program ROMs with their decrypted versions (from MAME dumps, identical to the originals once decrypted) and replace the FD1094 with a standard 68000. The board has no security at all — no battery, no suicide.
- Pro: permanent, simple, no Arduino.
- Con: the board is no longer "original" (bare 68000 + decrypted EPROMs).
- Ready-made kits exist (see SEGA Resurrection): true decrypted ROMs (MAME-based) + a 68000 adapter.
Converting to another game (summary)¶
- Encrypted route: re-key the FD1094 to the target game (Arduino) + that game's encrypted ROMs. Stays an "original" build.
- Decrypted route: bare 68000 + the target game's decrypted ROMs. Simpler, non-original.
- Also check the board differences (System 16A vs 16B, customs, ROM format) — see System 16.
The 4 ROM board types (System 16B) — a game is tied to its board¶
On System 16B the game lives on a ROM board plugged into the main board. Each game is
tied to a ROM board type: converting = swap the ROM board + the protection chip. You
generally cannot move a game from one board type to another (different wiring/banking).
(Source: MAME sega/segas16b.cpp, Guru's notes.)
(Board architecture & faults: Sega System 16 PCB.)
| ROM board | Program EPROMs | How to identify | Examples |
|---|---|---|---|
| 171-5358 | A1-A6 as 27C256 (64K) or A1/A2/A4/A5 as 27C512 | 32K/64K ROMs only, no tile banking | Shinobi, Passing Shot, Sonic Boom, Alien Syndrome, Dunk Shot, SDI, Time Scanner, Tough Turf |
| 171-5521 | A5/A7 (or A5-A8) as 27C010 (128K) | = 171-5704 bar one jumper | Altered Beast, Dynamite Dux, Heavyweight Champ, Ryu Kyu, Tetris |
| 171-5704 | A5-A8 as 27C010 | tile-banking register in region #2 ($xx0001/3) | Aurail, Bay Route, Cotton, Flash Point, Wonder Boy III, Wrestle War, Riot City |
| 171-5797 | only A1 & A2 ≥ 128K (27C010/020) | tile banking region #1 ($xx2001/3), 2 program ROMs | ESWAT, Golden Axe, MVP, Toryumon |
Which program EPROM, game by game?¶
Size → EPROM: 32 KB → 27C256 · 64 KB → 27C512 · 128 KB → 27C010 · 256 KB → 27C020. The protection (type + exact 317-xxxx number) is on the System 16 key table; here we give the board + program sockets. (Main set; regional revisions vary — see the key page.)
| Game | ROM board | Program sockets (EPROM) | Protection |
|---|---|---|---|
| Ace Attacker | 171-5358 | A1/A2/A4/A5 = 27C512 | FD1089B |
| Alien Syndrome | 171-5358 | A1-A6 = 27C256 | — (aliensyn7 = MC-8123) |
| Altered Beast | 171-5521 | A5/A7 = 27C010 | 8751 or MC-8123 depending on set |
| Aurail | 171-5704 | A5-A8 = 27C010 | — (unprotected) |
| Bay Route | 171-5704 | A5-A8 = 27C010 | FD1094 |
| Bullet | 171-5358 | A1-A6 = 27C256 | FD1094 |
| Cotton | 171-5704 | A5-A8 = 27C010 | FD1094 |
| Dunk Shot | 171-5358 | A1-A6 = 27C256 | FD1089 |
| Dynamite Dux | 171-5521 | A5-A8 = 27C010 | — (ddux1 = 8751) |
| ESWAT | 171-5797 | A1/A2 = 27C020 | FD1094 |
| Excite League | 171-5358 | A1-A6 = 27C512 | FD1094 |
| Flash Point | 171-5704 | A5/A7 = 27C512 | FD1094 (fpoint1) |
| Golden Axe | 171-5797 | IC1/IC2 = 27C020 | 8751 (goldnaxe) |
| Heavyweight Champ | 171-5521 | A5/A7 = 27C010 | — (unprotected) |
| MVP | 171-5797 | A1/A2 = 27C020 | FD1094 |
| Passing Shot | 171-5358 | A1/A4 = 27C512 | FD1094 |
| Riot City | 171-5704 | A5-A8 = 27C010 | — |
| Ryu Kyu | 171-5521 | A5/A7 = 27C512 | FD1094 |
| SDI | 171-5358 | A1-A6 = 27C256 | FD1089 |
| Shinobi | 171-5358 | A1/A2/A4/A5 = 27C512 | — (shinobi3/4 = MC-8123) |
| Sonic Boom | 171-5358 | A1/A2/A4/A5 = 27C512 | FD1094 |
| Super League | 171-5358 | A1-A6 = 27C512 | FD1094 |
| Tetris | 171-5521 | A5/A7 = 27C010 | FD1094 (317-0092) |
| Time Scanner | 171-5358 | A1-A6 = 27C256 | — |
| Toryumon | 171-5797 | A1/A2 = 27C010 | — |
| Tough Turf | 171-5358 | A5/A7 = 27C010 | 8751 |
| Wonder Boy III | 171-5704 | A5/A7 = 27C010 | 8751 |
| Wrestle War | 171-5704 | A5-A8 = 27C010 | 8751 (or FD1094 depending on set) |
System 16A (171-5307/5304 boards, older)
The System 16A games (Shinobi 16A, Fantasy Zone, Alex Kidd, Quartet, SDI 16A,
Time Scanner, Wonder Boy III 16A, Tetris 16A, Passing Shot 16A…) use an earlier ROM
board family, program EPROMs in 27C256/27C512. Protection: FD1089 / 8751 depending on
the game (Bodyslam, Quartet, Fantasy Zone rev = 8751) → see the key table.
Source detail: MAME sega/segas16a.cpp.
Before / after¶
- Re-key: a suicided board becomes a working encrypted original again.
- ROM de-suicide: the board runs battery-less, permanently (bare 68000).
Hardware / where to read more¶
- Programming guide (Arduino re-key): ArcadeHacker — http://arcadehacker.blogspot.com/2018/12/sega-system16-security-programming-guide.html
- Decrypted ROM + 68000 kits: SEGA Resurrection — http://www.segaresurrection.com/
- Background & chip/game list: Arcade Otaku Wiki / Sega Retro — https://segaretro.org/FD1094
- Arduino Mega 2560, 64-pin ZIF socket, PCB shield (PCBway).
Sources & attribution¶
- ArcadeHacker (Eduardo Cruz) — Sega System16/18/24/X Security Programming Guide
(Arduino Mega 2560,
w/v, FD1094 repurposable, FD1089 A/B, destructive verify) — http://arcadehacker.blogspot.com/2018/12/sega-system16-security-programming-guide.html - junkerhq / Arcade Otaku — FD1094 and FD1089 suicide battery (operation, battery replacement, MAME ROM de-suicide) — https://www.junkerhq.net/xrgb/index.php/FD1094_and_FD1089_suicide_battery
- SEGA Resurrection — FD1094 repair kits — http://www.segaresurrection.com/
- Internal page: System 16
Review & corrections
How this space is used
Spotted a wrong value, an outdated procedure, a chip reference that does not match your board? Say so here, with what you observed (model, board revision, serial number, measurement). Every report is cross-checked against a source before anything changes — an unverifiable correction is published as “reported by …, not cross-checked” rather than silently applied.
Reading is open to everyone; posting requires signing in with Discord. Reports from the wiki's declared reviewers are handled first; anyone else's are read too, but go through a human before anything is changed.