Skip to content

PGM converts (IGS PolyGame Master)

PGM is a cartridge platform (Neo-Geo-style): a common motherboard + a cartridge per game. Converting/preserving hits the protection: late games carry an IGS027A (ARM7 with an "execute-only" internal ROM) that takes part in the game. Once the protection is dumped and patched, the PGM can run unencrypted code on an ARM-less cartridge.

Field Value
Platform IGS PGM (PolyGame Master, 1997)
Convert type cartridge EPROM reprogram + protection bypass
Difficulty 🟠 (EPROM) → 🔴 (games with undumped IGS027A)
Suicide? no classic "battery suicide", but the ARM protection = same practical effect

The motherboard (common)

Block Chip Notes
CPU 68000 @ 20 MHz
Sound Z80 @ 8.4 MHz + ICS2115 (WaveFront) samples
Video IGS023 256 sprites zoom/shrink, tilemaps, 15-bit palette
Internal 128 KB BIOS (68000) + 2 MB internal tile ROM

The motherboard can execute unencrypted code — that's what makes conversions possible once the protection is lifted.

Cartridge anatomy (2 PCBs)

PCB ROM Role Max size
PROG (top) P 68000 program (header + vectors + init) 16 MB
T tiles (32×32 backgrounds, 8×8 text) 16 MB
protection ASIC(s) per game
CHAR (bottom) A sprite colour (5 bits/pixel, 3 px/word) 64 MB
B sprite masks/visibility 16 MB
M ADPCM samples (to the ICS2115) 16 MB

The wall: IGS protection

Three families, from simplest to toughest:

Protection Nature Conversion impact
IGS025 (+ IGS022) early protection ASIC(s) bypassable, well documented
IGS027A ARM7 with internal ROM (late games) the ARM takes part in game logic → you need its internal ROM
IGS027A "execute-only" start of the internal ROM executable but unreadable partial dump for a long time; XingXing found how to fully dump it

The ARM dump problem

Many IGS027A have their internal ROM protected as "execute-only": the code runs but can't be read as data. Trojans (injected code that spits out the content) gave partial dumps from the early 2010s; XingXing then found a full dump method — hence the recent preservation of many titles in MAME.

Converting / de-protecting (the principle)

  1. Get a "de-protected" program: a patched P where all ARM accesses are neutralised (the routines that called the IGS027A are replaced by native 68000 code, based on the internal-ROM dump).
  2. Burn this unencrypted program to a 27C160 (2 MB) or 27C322 (4 MB) EPROM.
  3. Fit it on an ARM-less cartridge (a simple donor board).
  4. The PGM motherboard runs the native code → no more ASIC needed.

→ A PGM multi without ARM is possible, but each game needs its hacked P to bypass the ARM (a per-title patch). That's the whole difficulty.

De-protection files: NOT in MAME → preserve them separately

The artifacts that make a de-protected repro cartridge possible — the patched P (ARM-less program) and the donor board's GAL/PAL logic (address decoding .jed) — are not part of the MAME romsets (MAME keeps the original protected game + the IGS027A internal-ROM dump, not the repro files). They are community artifacts (de-protection releases, e.g. Arcade-Projects). We don't host them (protected content), but their existence and source must be known: exactly the kind of files that disappear — archive them yourself with your own dumps. See also the general DIP/files rule.

Donor boards & EPROM

  • PROG: gather P (68000) + T (tiles).
  • CHAR: A (sprite colour, the biggest), B (masks), M (sound).
  • Common EPROMs: 27C160 (2 MB) / 27C322 (4 MB) for P/T; A/B/M follow the game's sizes (often the original mask ROMs are reused if you only change the program).

Change only what must change

On some conversions, only P (+ ARM bypass) and possibly T change; the big A/B/M can sometimes be kept if the target game shares assets — but in general a real conversion = all the target game's ROMs.

Preservation (the main stake)

PGM is a textbook preservation case: without dumping the IGS027A internal ROMs, some games would remain unplayable in emulation and unconvertible. The dumps (trojan → XingXing) feed MAME and the FPGA (MiSTer) cores, and enable the de-protected cartridges.

Before / after

  • Game with dumped IGS027A + patched P: the cartridge runs ARM-less, in native code → conversion/multi possible.
  • Not-yet-dumped game: a clean conversion is impossible until the internal ROM is extracted.

Where to read more

Technical doc archived here

PGM hardware reverse-engineering (68000/Z80 memory map, cartridge pinout, P/T/A/B/M ROMs, protection ASICs): PGMTech.tar.gz · README — upstream: https://github.com/laoo/PGMTech. We host no ROMs or de-protection files.

Sources & attribution

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.