Aller au contenu

Converts PGM (IGS PolyGame Master)

Le PGM est une plateforme à cartouches (façon Neo-Geo) : une carte-mère commune + une cartouche par jeu. Convertir/préserver bute sur la protection : les jeux récents embarquent un IGS027A (ARM7 avec ROM interne « execute-only ») qui participe au jeu. Une fois la protection dumpée et patchée, le PGM sait faire tourner du code non chiffré sur une cartouche sans ARM.

Champ Valeur
Plateforme IGS PGM (PolyGame Master, 1997)
Type de convert reprog EPROM cartouche + contournement de la protection
Difficulté 🟠 (EPROM) → 🔴 (jeux à IGS027A non dumpés)
Suicide ? pas de « suicide à pile » classique, mais protection ARM = même effet pratique

La carte-mère (commune)

Bloc Puce Notes
CPU 68000 @ 20 MHz
Son Z80 @ 8,4 MHz + ICS2115 (WaveFront) échantillons
Vidéo IGS023 256 sprites zoom/shrink, tilemaps, palette 15 bits
Interne 128 Ko BIOS (68000) + 2 Mo ROM tuiles interne

La carte-mère peut exécuter du code non chiffré — c'est ce qui rend les conversions possibles une fois la protection levée.

Anatomie d'une cartouche (2 PCB)

PCB ROM Rôle Taille max
PROG (dessus) P programme 68000 (header + vecteurs + init) 16 Mo
T tuiles (fonds 32×32, texte 8×8) 16 Mo
ASIC(s) de protection selon le jeu
CHAR (dessous) A couleur des sprites (5 bits/pixel, 3 px/mot) 64 Mo
B masques/visibilité des sprites 16 Mo
M échantillons ADPCM (vers l'ICS2115) 16 Mo

Le mur : la protection IGS

Trois familles, de la plus simple à la plus coriace :

Protection Nature Impact conversion
IGS025 (+ IGS022) ASIC(s) de protection early contournable, bien documenté
IGS027A ARM7 avec ROM interne (jeux tardifs) l'ARM participe à la logique de jeu → il faut sa ROM interne
IGS027A « execute-only » début de la ROM interne exécutable mais non lisible dump partiel longtemps ; XingXing a trouvé comment dumper entièrement

Le problème du dump ARM

Beaucoup d'IGS027A ont leur ROM interne protégée en « execute-only » : le code s'exécute mais ne se lit pas comme données. Des trojans (code injecté qui fait recracher le contenu) ont permis des dumps partiels dès les années 2010 ; XingXing a ensuite trouvé une méthode de dump complet — d'où la préservation récente de nombreux titres dans MAME.

Convertir / dé-protéger (le principe)

  1. Obtenir un programme « dé-protégé » : une P patchée dont tous les accès à l'ARM sont neutralisés (les routines qui appelaient l'IGS027A sont remplacées par du code natif 68000, à partir du dump de la ROM interne).
  2. Graver ce programme non chiffré sur une EPROM 27C160 (2 Mo) ou 27C322 (4 Mo).
  3. Le poser sur une cartouche sans dispositif ARM (carte donneuse simple).
  4. La carte-mère PGM exécute le code natif → plus besoin de l'ASIC.

→ Un multi PGM sans ARM est possible, mais chaque jeu doit avoir sa P hackée pour contourner l'ARM (patch spécifique par titre). C'est là toute la difficulté.

Fichiers de dé-protection : PAS dans MAME → à préserver à part

Les artefacts qui rendent une cartouche de repro dé-protégée possible — la P patchée (programme sans ARM) et la logique GAL/PAL de la carte donneuse (décodage d'adresses .jed) — ne font pas partie des romsets MAME (MAME conserve le jeu protégé d'origine + le dump de la ROM interne IGS027A, pas les fichiers de repro). Ce sont des artefacts communautaires (releases de dé-protection, ex. Arcade-Projects). On ne les héberge pas ici (contenu protégé), mais leur existence et leur source doivent être connues : c'est typiquement le genre de fichiers qui disparaît — à archiver de son côté avec ses propres dumps. Voir aussi la règle générale DIP/fichiers.

Cartes donneuses & EPROM

  • PROG : réunir P (68000) + T (tuiles).
  • CHAR : A (couleur sprites, la plus grosse), B (masques), M (son).
  • EPROM courantes : 27C160 (2 Mo) / 27C322 (4 Mo) pour P/T ; les A/B/M suivent les tailles du jeu (souvent mask ROM d'origine réutilisées si on ne change que le programme).

Ne changer que ce qui doit l'être

Sur certaines conversions, seules P (+ contournement ARM) et éventuellement T changent ; les grosses A/B/M peuvent parfois être conservées si le jeu cible partage des assets — mais en général une vraie conversion = toutes les ROM du jeu cible.

Préservation (l'enjeu principal)

Le PGM est un cas d'école de préservation : sans dump des ROM internes IGS027A, des jeux resteraient injouables en émulation et inconvertibles. Les dumps (trojan → XingXing) alimentent MAME et les cœurs FPGA (MiSTer), et rendent possibles les cartouches dé-protégées.

Avant / après

  • Jeu à IGS027A dumpé + P patchée : la cartouche tourne sans ARM, en code natif → conversion/multi possible.
  • Jeu non encore dumpé : conversion impossible proprement tant que la ROM interne n'est pas extraite.

Où se documenter

Doc technique archivée chez nous

Reverse-engineering du hardware PGM (memory map 68000/Z80, brochage cartouche, ROM P/T/A/B/M, ASIC de protection) : PGMTech.tar.gz · README — upstream : https://github.com/laoo/PGMTech. On n'héberge ni ROM ni fichier de dé-protection.

Sources & attribution

Relecture & corrections

À quoi sert cet espace

Une valeur fausse, une procédure dépassée, une référence de puce qui ne colle pas à ta carte ? Signale-le ici, avec ce que tu as constaté (modèle, révision de carte, numéro de série, mesure). Chaque signalement est recoupé avec une source avant toute modification — une correction invérifiable est publiée en tant que « signalé par …, non recoupé » plutôt qu'appliquée en silence.

La lecture est ouverte à tous ; écrire demande une connexion Discord. Les signalements des relecteurs déclarés du wiki sont traités en priorité ; les autres sont lus aussi, mais passent par un humain avant toute modification.