EPROM: read, burn & reproduce¶
Replacing a blown EPROM, duplicating a healthy ROM, or reprogramming a board: the basic move of hardware preservation. This page = method; the per-game/board references (which density for which socket) live on the conversions/PCB pages.
Families & density → part mapping¶
| Size | Bits | 27C part (27C = CMOS) | Note |
|---|---|---|---|
| 2 KiB | 16 Kbit | 2716 | quartz window |
| 4 KiB | 32 Kbit | 2732 | |
| 8 KiB | 64 Kbit | 2764 / 27C64 | |
| 16 KiB | 128 Kbit | 27128 / 27C128 | |
| 32 KiB | 256 Kbit | 27C256 | very common |
| 64 KiB | 512 Kbit | 27C512 | |
| 128 KiB | 1 Mbit | 27C010 | |
| 256 KiB | 2 Mbit | 27C020 | |
| 512 KiB | 4 Mbit | 27C040 | |
| 1 MiB | 8 Mbit | 27C080 / 27C801 | |
| 2 MiB | 16 Mbit | 27C160 (16-bit) | 16-bit bus (68000…) |
- 8-bit (2764→27C801): 8-bit data bus (Z80, 6502, sound). 16-bit (27C16x): 16-bit word (68000) — mind the package/organisation.
epr-vsmpr-(Sega marking, but a general principle):epr-= reprogrammable EPROM → directly replaceable.mpr-= factory mask ROM → needs a pinout adapter (mask pinout ≠ EPROM) to drop a 27Cxxx in its place.
Reading (dumping) a healthy ROM¶
- Universal programmer (TL866 II Plus / T48) + software; select the correct part (pinout/algorithm).
- Adapter if needed (PLCC→DIP, wide DIP 32/40, 16-bit).
- Read → save the dump, note the checksum. Compare to a known set (MAME = the durable reference) to validate integrity.
Erase & burn¶
- Erase: a quartz-window EPROM erases under UV (eraser, a few minutes); OTP (no window) and Flash do not UV-erase.
- Burn: load the binary, choose the exact part, program, then verify (the programmer re-reads and compares). A checksum matching the source dump = OK.
- Stick a label over the quartz window after burning (prevents light erasure).
Replacing a blown EPROM¶
- Identify the original part and the required density (system PCB/conversion page; otherwise read the marking + pinout).
- Desolder cleanly (EPROM often on a socket → simple extraction); if soldered, see traces & vias and fit a turned-pin socket.
- Burn a compatible EPROM (same organisation, speed ≤), verify, insert (mind the pin-1 mark).
- Dead mask ROM (
mpr-): use a 27Cxxx + pinout adapter, or a dedicated adapter board.
Reprogramming / converting a board¶
- Many conversions = reburn another title's ROM set on the same system + set some jumpers (EPROM size, mapping). Per-game densities and jumpers: conversions (e.g. System 16, CPS-2).
- ⚠️ Do not host ROMs/BIOS/keys: we describe the method and hardware references, not the protected content. The data comes from your own board or a legal source; MAME is a verification reference.
Pitfalls¶
- Speed (ns): pick ≤ the original (too-slow EPROM = crashes).
- 8/16-bit organisation and pinout (the 27C160 is not wired like two 27C801s).
- Oxidised legs: re-tin / new socket.
- OTP sold as EPROMs: don't erase — fine for a production run, not for testing.
See also¶
Sources & attribution¶
- Synthesis of established EPROM practice; the density table = standard 27Cxxx mappings; per-game references = MAME (durable source) on the conversions pages.
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.