Konami Viper¶
Konami's PowerPC + 3Dfx platform (1999-2002): Police 911, Silent Scope EX, Thrill Drive 2, Jurassic Park III. Technically a specialised PC. For preservation it carries a built-in time bomb — a timekeeper RAM whose contents cannot be recreated by hand.
Identification¶
| Field | Value |
|---|---|
| Manufacturer | Konami |
| Years | 1999-2002 |
| CPU | Motorola XPC8240LZU200E (MPC8240, PPC603e core) — TBGA352 at U38 |
| CPU clock | 33.868 MHz input, ×6 → ~200 MHz |
| Graphics | 3Dfx Voodoo III 3500 (BGA at U54), clock input 14.31818 MHz |
| Main RAM | 64 MB SDRAM (2 × Micron 48LC2M32B2, U28/U45) |
| Graphics RAM | Fujitsu MB81G163222-80 ×4 (U53, U56, U59, U60) |
| Save | ST M48T58Y Timekeeper (DIP28 at U39) — ⚠️ see below |
| Protection | Dallas DS2430 (serial number, U37); dongle on some games |
| Analogue inputs | ADC0838 (SOIC20 at U13) |
| Programmable logic | Xilinx XC9536 ×2, XC9572XL, XCS10XL Spartan |
| Network | two RCA jacks (CN4/CN5) |
| PCB format | Konami proprietary — not JAMMA |
⚠️ The real trap: the M48T58Y¶
This is what to know before touching a Viper.
A timekeeper RAM that cannot be reconstituted
The M48T58Y is a Timekeeper RAM with an internal battery and a stated ten-year life. When it dies the game shows “RTC BAD” and resets in a loop.
And the contents cannot be made by hand — MAME says so explicitly. A new M48T58Y has to be programmed with the correct data for that game and fitted to the board. Without that data the board stays dead: this is not an electronic fault, it is a lost key.
What MAME documents of the contents, useful to anyone restoring one:
- the “RTC OK” check covers 0x0000-0x0945; past that, the contents can be cleared and the game still boots;
- the NVRAM is split into chunks, each with its own 16-bit checksum — two consecutive bytes summed must come to 0xFFFF, the last two bytes of the chunk making up the difference;
- there is no overall checksum: chunks from different sources coexist as long as each one is self-consistent;
- the first chunk (0x0000-0x000F) is a game/region identifier and will not take modification — a Mocap Boxing NVRAM will not pass Police 911's checks even with a correct checksum.
Architecture¶
A Viper is a dedicated industrial PC: a PowerPC, an off-the-shelf 3Dfx graphics chip, standard SDRAM. What makes it an arcade board is the periphery — the Xilinx CPLDs, the ADC0838 for analogue controls (guns, wheels), the two network jacks, and the two locks (DS2430 + M48T58Y).
Voodoo III, not Banshee
The physical chip is marked 3Dfx Voodoo III 3500. MAME emulates it through its Voodoo Banshee device — the two families are close, but the marking on the board is what counts when ordering a part.
Notable games¶
Police 911 (and 911 2) · Silent Scope EX · Thrill Drive 2 · GTI Club 2 · Jurassic Park III · Mocap Boxing · Mocap Golf · Tsurugi · ParaParaParadise 2nd Mix · Code One Dispatch.
Common faults¶
| Symptom | Probable cause | Next step |
|---|---|---|
| “RTC BAD” then reset loop | M48T58Y at end of life | Programme a new M48T58Y with the game's data — see the box |
| Silent board, no picture | power, CPU, or a CPLD | PCB diagnosis |
| Security check failed | DS2430 or a missing/wrong dongle | Check the board/dongle pairing for that game |
| Analogue controls wrong | ADC0838 (U13) or wiring | Compare input voltages against a good board |
| Stuck on network check | link between cabinets (linked games) | Check CN4/CN5 and the game's configuration |
| Corrupt graphics | Fujitsu SGRAM or the Voodoo III | A single corrupt area points at one of the four chips |
Repair (technician)¶
- The M48T58Y first. On a Viper stuck in a loop it is almost never anything else. Replace it with the right data — a blank new part will not do.
- This is not JAMMA: the wiring is proprietary. Nothing that holds for a JAMMA board applies as-is on the connector side.
- Off-the-shelf parts: the SDRAM, the Voodoo III and the regulators are period PC components, so they can still be found — unlike the customs on 16-bit platforms.
→ Methods: PCB diagnosis · Recap · Backup batteries
Procedure — a dead board, step by step ✅¶
What this adds
The general method lives in PCB diagnosis. This is its application to this platform: the same order, but with the values actually expected here, so you do not have to go back and forth.
Tools: multimeter, oscilloscope (or frequency counter), current-limited bench supply, desoldering braid. → Tooling
If the board is still in a cabinet
A CRT holds its charge with the machine unplugged. → CRT safety
1. Inspection, power off. Corrosion, cut tracks, oxidised EPROM legs, leaking SMD capacitors, dubious earlier repairs.
2. The connector, before anything else. A large share of "dead boards" are a contact problem, not a fault. Clean the contacts with isopropyl alcohol and reseat — not with an abrasive eraser on a gold edge, which takes the plating off and brings the problem back worse. It costs two minutes and settles the question.
3. Power, measured on the board. Aim for +5.0 V measured as close as possible to where power reaches the board — not at the PSU output: the drop is in the loom, and that is exactly what makes a board boot on the bench and not in the cabinet. Where you probe depends on this board's connector — JAMMA edge, JVS loom or a proprietary harness — plenty of makers kept one long after JAMMA arrived — see Identification above. → Wiring Check −5 V and +12 V too if the sound stage uses them. Suspected short: bring it up current-limited and find the hot spot.
4. /RESET. It must release after power-up. Held low = the CPU never starts. A 1–2 Hz loop is not the reset circuit, it is the watchdog: the CPU is crashing at boot, so look at the bus, not at the reset.
5. Clocks. There is no measurement table for this platform — MAME's sources yield nothing usable for it. Any frequency quoted under Architecture on this page serves as a marker; otherwise compare against a working board rather than against a number: an invented value condemns healthy parts. → PCB diagnosis
6. Bus. Activity on the main CPU's address lines tells you whether it is running or frozen. Frozen with good clocks and good reset → work RAM, bus buffers, ROMs.
7. It boots but the picture or the sound is wrong — that is another job: see Common faults on this page, then signal tracing.
Modernisation & mods¶
- Anti-suicide 🔴: the M48T58Y is the platform's suicide point, and it has no “decrypted ROM” equivalent the way an FD1094 does. Preservation runs through archiving the NVRAM contents game by game.
- ⚠️ Do not host ROMs or NVRAM dumps — method only.
Emulation & FPGA¶
MAME emulates the platform (konami/viper.cpp), with caveats: some games remain
stuck on checks (networking for World Combat). Most of the reverse-engineering
effort went into the structure of the NVRAM — which is what lets anyone today
understand why a board says “RTC BAD”.
Photos / assets¶
(To take: bare board, the M48T58Y at U39 — the part to know about —, the DS2430 at U37, the Voodoo III 3500 and its heatsink, the CN4/CN5 network jacks.)
Archived original documents ✅¶
A manual already in the wiki, attached here after checking its title page.
- PDF — silent-scope-ex-kit-400875-gea13.pdf — KONAMI — Original Video Game Operator's Manual — silent scope ex kit, ref. 400875 GEA13, 42 pp. Silent Scope EX is a Viper game.
⚠️ The GTI Club manual archived in this wiki does not belong on this page: its cover reads GTI-CLUB Rally Côte d'Azur, © 1996 Konami — that is the first GTI Club, not the Viper's GTI Club 2. Two games, two platforms, four years apart.
Sources & attribution¶
Text (synthesised here; sources listed for attribution):
- MAME —
src/mame/konami/viper.cpp(BSD-3-Clause / GPL): full component identification with board designators (U38 CPU, U54 3Dfx, U39 M48T58Y, U37 DS2430, U13 ADC0838, U25 29F002), CPU clock (33.868 MHz input × 6 ≈ 200 MHz), Voodoo III clock input (14.31818 MHz), and above all the detailed description of the M48T58Y's behaviour — the 0x0000-0x0945 check range, per-chunk 16-bit checksums, the unmodifiable game/region first chunk, and the finding that the contents cannot be created by hand — https://github.com/mamedev/mame/blob/master/src/mame/konami/viper.cpp
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.