REPARATION PCB MAPPY

Aujourd’hui je me lance dans la réparation d’un Mappy version américaine. Le jeu a été importé aux US par Bally Midway et la PCB est quasiment la même que la version Namco originale.

Une filter board a été ajoutée pour stabiliser et filtrer les entrées/sorties. Bally Midway a tout simplement re-utilisé celle de Super Pacman vu que le système est le même.

Le jeu tourne bien : le son est là, les contrôles marchent, mais l’image a de sérieux problèmes de couleurs. Certaines ne sont pas les bonnes et d’autres sont tout simplement absentes. Le jeu est difficilement jouable dans ces conditions.

Le plateau supérieur du jeu est le celui du CPU, le problème ne vient clairement pas de là et je me penche donc sur le plateau vidéo situé en dessous.

Vu que de nombreux éléments graphiques sont touchés il s’agit d’un problème global de couleur et je commence par vérifier le suspect numéro un : les color palette ROMs. Ces ROMSs se trouvent juste avant la sortie vidéo et contiennent une table de valeurs RGB. Grâce à ces combinaison de couleurs le jeu peut choisir d’afficher la couleur qu’il souhaite pour chaque pixel.

Malheureusement il s’agit de bipolar PROMs dans le cas présent. Ces roms sont obsolètes depuis longtemps et nécessitent des tensions spécifiques pour être programmées. Les programmateurs actuels ne gèrent plus du tout cette technologie (à l’exception de quelques très haut de gamme) et je me retrouve donc dans l’incapacité de vérifier le contenu de ces roms. Je tente malgré tout de regarder l’état des entrées/sorties avec une sonde logique. Je remarque alors que l’adresse A7 de la PROM 4C est constamment à zéro volt ! C’est peut-être un problème, je remonte la piste et j’arrive sur un TTL 74LS377 (un flip-flop).

La sortie en question est bien bloquée à zéro volt alors que l’entrée et la clock pulsent. Aha ! Sûr d’avoir trouvé le coupable je déssoude le composant et le remplace par un neuf.

J’allume le jeu et…. pas de chance, rien n’a changé ! Les couleurs sont toujours mauvaises et la sortie du TTL reste invariablement basse. Je branche l’analyseur logique pour visualiser précisément l’état des pattes dans le temps et le fonctionnement du composant est bon. Cette piste d’adressage n’est tout simplement pas utilisée par le jeu… je me suis bien fait avoir !

Je reste quand même convaincu que le problème vient de cette partie du circuit, mais je suis bloqué à cause de ces fichues bipolar PROMs que je ne peux pas vérifier… Afin de m’éviter d’aller plus loin dans le circuit et risquer de perdre du temps je demande à un ami qui possède la version japonaise du jeu de me le prêter pour faire quelques tests et comparaisons (merci beaucoup à lui !).

Les plaques sont identiques à 99 % et le contenu des color palette ROMs est le même selon Mame. Par chance ces deux composants sont sur supports, je prends donc ceux de la version japonaise que je sais fonctionnels et je les mets sur la PCB américaine.

Confiant, j’allume le jeu et ….le résultat est exactement le même qu’avant ! Le problème ne vient donc pas de la palette de couleurs. Je suis déçu mais soulagé en même temps car remplacer ces composants obsolètes eu été compliqué. Je continue alors d’inspecter la plaque à la sonde logique à la recherche d’anomalies. Avoir un jeu fonctionnel en parallèle est un grand confort et me permet d’aller vite. Dès que j’ai un doute je peux vérifier le comportement normal et cela m’évite de tomber dans des pièges similaires à celui décrit précédemment.

J’arrive sur le composant en position 5K et je réalise qu’il s’agit d’une autre bipolar PROM.

Je tente de la remplacer par celle de la version japonaise et enfin les couleurs reviennent à la normale !

Ouf j’ai trouvé… mais zut, c’est une bipolar PROM que je ne sais pas comment remplacer ! Ces mémoires ne se font plus et même si je venais à trouver des anciens stocks je ne pourrais pas la programmer. Je pense alors à utiliser des ROMs plus récentes comme des EPROMs par exemple, mais je réalise après quelques recherches que cela n’est pas possible à cause de leur temps d’accès aux données. Les bipolar PROMs sont très rapides : de l’ordre de 50 nano-secondes, voire moins. Les EPROMs par contre sont plutôt vers les 100 nano-secondes pour les plus rapides. C’est beaucoup trop lent et ça ne pourra pas faire un bon remplaçant.

Je continue de chercher une solution et visiblement je ne suis pas le premier à avoir eu ce genre de souci. Certaines personnes douées ont réussi à utiliser des GAL (des circuits logiques programmables) pour remplacer ces composants problématiques. Il s’agit d’une belle performance mais malheureusement Mappy n’a pas encore été adapté de la sorte.
Je continue mes recherches et je tombe sur quelqu’un qui a trouvé des EPROMs suffisamment rapides pour faire l’affaire. Il s’agit en réalité d’OTPROMs (One-Time Programmable ROM) qui ne sont donc programmables qu’une fois mais ont un temps d’accès record de 45 nano-secondes !

Je vérifie sur la datasheet de la PROM que je souhaite remplacer (une M3-7611-5) et par chance sa vitesse est de 50 nano-secondes. La chance ne s’arrête pas là pour moi car je réalise que j’ai en stock ces fameuses OTPROMs ! Il est temps de faire un adaptateur pour mettre ce monstre de 28 pattes dans un support 16 pattes.

J’utilise une plaque de prototypage et des supports tulipe pour relier les pattes au bon endroit et faire un petit module propre. Les pattes non utilisées sont reliées à la masse.

Je programme la gigantesque OTPROM avec le mini bout de code récupéré sur Mame (le code n’occupe qu’1/250e de l’espace disponible) et je monte le tout sur la PCB.

J’allume le jeu et les couleurs s’affichent comme il faut, hell yeah ça marche !

Le jeu est donc réparé, je suis content d’avoir trouvé cette solution de fortune en attendant d’avoir un jour les connaissances/le temps de faire l’adaptation sur un GAL. Cette technique facile à mettre en œuvre peut sauver de nombreux jeux et est à garder en mémoire.

A.M. aka A-M

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.