Tous les articles par CoinOpLegacy

Les bornes d’arcade de Coin-Op Legacy ont besoin de vous !

Depuis 6 ans l’association Coin-Op Legacy s’efforce de promouvoir et de préserver les bornes d’arcade des années 70-90 en les restaurant, en organisant des soirées et en participant à des évènements publics. C’est au total plus de 200 bornes, dont les 2/3 en état de marche, que l’association et ses membres peuvent mettre à disposition de tous.

Suite à la crise sanitaire cette collection est en péril. Faute d’une vraie solution nous n’aurons pas d’autre choix que d’arrêter l’association et de vendre les machines. Pour éviter d’en arriver là nous lançons une campagne de crowdfunding sur KissKissBankBank afin de préserver ce patrimoine.

Et voilà ! C’est parti !



Pour monter ce beau projet nous avons prévu des cadeaux exclusifs pour nos soutiens : un livre « Coin-Op Legacy – Electronic Dreams » édité par Omaké Books , des émissions vidéos par Alex Pilot avec Gamekult.com , et un numéro de l’émission mythique de Florent Gorges : Collector’s Quest.

v v v v v v v v v v v


Si l’arcade et l’histoire video-ludique sont importantes pour vous, ce projet n’attend plus que votre soutien afin que cette aventure continue. Toutes les participations sont les bienvenues !

Team Coin-Op Legacy

Soirée anniversaire, 5 ans déjà ! Samedi 06 Avril !

Salut à tous, ça y est nous y sommes ! Nous avons le plaisir de vous annoncer que la soirée des 5 ans de Coin-op Legacy aura lieu le samedi 6 avril !

Venez célébrer cet anniversaire dans notre salle à Vitry-sur-Seine, ça sera l’occasion pour vous de découvrir ou re-découvrir plus de 80 bornes d’Arcade d’époque restaurées par nos soins !

Comme expliqué dans un précédent article, cette soirée est réservée aux membres. Si vous souhaitez y participer il faut d’abord adhérer à l’association (onglet adhésion) puis remplir le formulaire en bas de cette page pour réserver votre place. Au delà de votre indéfectible soutien, être membre vous permettra  de participer aussi à la soirée de rentrée qui aura lieu après l’été !

L’anniversaire se déroulera de 17h à 23h45 et il sera possible de se restaurer sur place (pensez à prendre de la monnaie).

A très bientôt, en espérant vous voir nombreux !

La team Coin-op

Formulaire d’inscription :

Propulsé par HelloAsso

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

REPARATION PCB DONKEY KONG 3

Cette magnifique borne de Donkey Kong 3 a un petit souci : elle ne démarre pas du tout ! L’écran est figé sur un amas de chiffres multicolores.

Quand l’écran est ainsi rempli de Sprites ou Tiles, c’est bien souvent que le CPU est bloqué au démarrage. Je sors donc la PCB de sa cage de Faraday pour pouvoir l’inspecter.

Selon le manuel, le jeu à besoin de 5 volts, -5 volts et 24 volts. Cette dernière tension est embêtante car non standard. Mais après quelques recherches il s’avère qu’elle ne sert qu’à faire fonctionner le compteur de pièces ! Ouf, je me lance donc dans la fabrication d’un adaptateur pour pouvoir lancer le jeu en dehors de la borne.

Je branche le tout et je lance la PCB sur mon supergun. J’arrive sur le même écran fixe que dans la borne.

Enfin presque… les PCBs Nintendo utilisaient des couleurs inversées! Ici je n’ai pas pris la peine de faire un inverseur, ce qui explique pourquoi l’affichage est en nuances de noir.

J’inspecte le CPU, il ne Reset pas et a une bonne horloge. Par contre il y a  8 adresses qui pulsent de façon très bizarre ainsi que la broche WR (write). Elles pulsent pendant un quart de seconde puis se figent à High ou Low un moment et ainsi de suite. Visiblement le CPU tente d’écrire quelque chose mais n’y arrive pas. Il s’agit probablement d’un problème de RAM car ce sont les seuls composants de mémoire dans lesquels on peut écrire. Je sors les schémas et inspecte le circuit CPU/RAMs/ROMs.

Il n’y a que deux RAMs reliées à la broche WR (via un buffer). Je ne vois donc que quatre possibilités :
– une RAM est défectueuse (voire les deux),
– une/des EPROMs reliées à l’Address Bus des RAMs en question est fautive,
– le CPU ou le DMA (Direct Memory Access) sont défectueux,
– l’Address Decoding est mauvais.

Concernant les RAMs, il s’agit d’une TMM2115AP et d’une MB8416A. Je n’en ai malheureusement pas sous la main donc je préfère investiguer sur les autres possibilités d’abord.

Je commence par dumper les EPROMs et je les compare avec MAME. Tout est ok.

Je tente de mettre un CPU et un DMA que je sais fonctionnels. Cela ne change absolument rien.

J’inspecte minutieusement le circuit de l’Address Decoding. Tous les TTLs impliqués se révèlent être bons.

A ce stade je suis quasiment sûr que la panne vient d’une des 2 RAMs. La Fujitsu est unique sur le jeu, par contre la Toshiba TMM2115 se retrouve ailleurs sur la PCB. Je vérifie celle en position 6F (sur le circuit du son) à la sonde logique et remarque que toutes ses broches pulsent correctement. Je décide d’essayer des les interchanger, comme ça si l’une est défectueuse je devrais observer des différences de comportement. Je les dessoude et les swappe.

Moment de vérité : j’allume le jeu et… il démarre !

C’était donc bien la RAM en 7F qui était fautive. Il ne me reste plus qu’à trouver une RAM de remplacement car j’ai des bug de son à cause de la mauvaise RAM (certaines notes manquent dans les mélodies).

Je constate que c’est en fait une simple 16kbits avec le même pinout que les célèbres 6116. J’en profite alors pour tester la RAM en question avec le programmateur d’EPROM qui gère les 6116. Pas moins de 6 broches ne répondent pas, elle est complètement morte !

Je commande un lot de RAM sur le net, mais en attendant que cela arrive j’aimerais  m’assurer que le son marche bien malgré tout. Je cherche dans les PCBs chez moi et trouve une IDT6116 sur un boot de Street Fighter II. Elle fera parfaitement l’affaire.

Le jeu démarre et cette fois les musiques sont complètes ! Je teste les inputs, et malgré la difficulté pour voir ce qu’il se passe à l’écran tout à l’air de marcher, la PCB peut dorénavant rejoindre sa borne !

Bonus Stage

La borne a marché une bonne vingtaine d’heures avant de présenter un comportement bizarre : au bout d’un certain temps de jeu l’écran commence à onduler doucement, puis l’effet s’accélère ainsi que l’amplitude des vagues jusqu’à ce que la synchro soit complètement perdue. A partir de là le son ralentit progressivement et s’arrête…

Ma première intuition est d’aller vérifier la clock du CPU pour voir s’il elle ne ralentirait pas progressivement. Mais l’oscilloscope m’infirme cette hypothèse, l’horloge principale reste bien fixe.

Qu’est ce qu’il pourrait bien y avoir en commun entre la synchro vidéo et le son ? Je scrute les plans et je remarque que le signal vblank est relié aux pins NMI des 2 puces sonores !

Le signal vblank est l’intervalle de rafraîchissement vertical durant lequel le faisceau des canons à électrons remonte en haut de l’écran. S’il vient à changer il est normal que l’écran perde la synchro. Quant au NMI il s’agit d’un Non-Maskable Interrupt, un signal qui a la priorité absolue,  il peut donc affecter le son. Je m’empresse de sonder la piste du vblank, au début tout est normal.

Puis le signal commence à ralentir doucement jusqu’à complètement s’arrêter. Voici notre coupable !

Le signal vblank vient du plateau vidéo. Je remonte la piste à l’oscilloscope et étonnamment les TTLs s’avèrent être bons les uns après les autres. J’arrive finalement à l’horloge principale du plateau vidéo. Chose intéressante, plus je travaille sur la PCB plus la synchro lâche rapidement, le composant responsable de tout ça est littéralement en train de mourir !
Le circuit de l’horloge est enfermé dans un petit boîtier métallique.

Les pattes du quartz sont quand même accessibles donc je tente de les sonder à l’oscillo. J’ai à peine le temps de poser les sondes que l’image perd la synchro et je n’ai aucun signe de vie sur l’oscilloscope. Le coupable est mort…
Un quartz c’est assez robuste,  je ne pense pas que ce soit lui… je soupçonne plutôt un autre composant relié à lui. Je dé-soude le boîtier et selon le schéma le transistor Q1 est le suspect numéro un.

Je le retire du circuit pour le tester. C’est bien lui le coupable !

Je mets un transistor neuf et la PCB part comme en 40… euh pardon, 83.

Voilà, espérons que cela soit la dernière réparation avant un moment sur ce super jeu !

A.M. aka A-M

REPARATION PCB DIG DUG

Dig Dug est un grand classique qu’on ne présente plus. Ce jeu de Namco a été distribué en dehors du Japon par Atari. Originalement sur 2 plateaux dans sa version japonaise, la PCB d’Atari est sur un seul plateau. Attention la connectique n’est pas la même entre ces deux versions !

Voici une version japonaise du jeu qui visiblement ne marche pas correctement :

Je commence par inspecter la PCB minutieusement et je remarque que la carte a déjà eu droit à quelques réparations hasardeuses auparavant. Une diode a été remplacé avec un gros excédent d’étain. La carte est trouée juste en dessous et est complétement noircie.

Du coté soudure on voit bien que les pastilles sont noires aussi et la piste est partiellement décollée.

Il y a surement eu une surintensité à cet endroit, l’ancienne diode a dû chauffer très fort et endommager la plaque. Un condensateur du coté du son a également été changé et soudé de manière chaotique.

Il est temps de faire un adaptateur pour brancher le jeu sur mon supergun. La carte dispose d’un connecteur 44 broches ainsi que de 2 connecteurs AMP. Celui du plateau inférieur est la sortie vidéo, je dois donc le connecter.

Par contre celui du dessus (à côté de la diode endommagée) n’est pas nécessaire car il sert à l’alimentation qui peut aussi passer par le connecteur 44 broches.

En vérifiant les continuités je remarque que le 12v est relié à la masse. Ce n’est pas normal, il doit y avoir ce qu’on appelle un « short to ground », c’est à dire un composant défectueux qui court-circuite le 12v et la masse ensemble. Ce genres de pannes peuvent être fastidieuses à réparer quand cela arrive sur le 5v qui alimente 95% de la carte. Le 12v ne sert généralement qu’à alimenter l’ampli son, j’espère donc réussir à trouver le coupable rapidement. Je termine l’adaptateur, le jeu est enfin prêt à être testé !

Le jeu entre bien dans sa séquence de démarrage, il affiche que le test des rams est ok, par contre il reboote lors du test des roms. C’est déjà pas mal !

Je dumpe toutes les eproms et les compare avec Mame pour m’assurer que leurs données sont intègres. Les eproms se révèlent être toutes bonnes, le problème vient donc d’ailleurs. Malheureusement il n’y a pas de schéma pour cette PCB. La version Atari a eu le droit à des plans détaillés mais pas la version de Namco. En fouillant sur le net j’ai quand même trouvé quelque chose d’intéressant : visiblement les bornes Atari de Dig Dug distribuées en Europe ont eu la PCB à 2 plateaux à l’intérieur. Le manuel européen du jeu ne laisse aucun doute là dessus, on y trouve bien la liste des tous les composants de la PCB japonaise mais malheureusement pas de schéma…

Tant pis, je vais devoir faire sans. A la sonde logique je vois que le main CPU reçoit l’ordre de reseter lors du check des eproms. Avant de me lancer dans des recherches plus approfondies, je commence par appuyer sur les composants sur supports pour voir si cela change quelque chose à l’écran. Renfoncer les composants dans leur support ne pas fait de mal, j’arrive pendant quelques secondes à aller plus loin avec une rom 5 error avant que le jeu ne redémarre. Et en appuyant sur le CPU Z80 en position 1A  le jeu démarre enfin !

Il y a clairement des problèmes graphiques mais je m’occupe d’abord de stabiliser le démarrage. Le comportement est le même avec un Z80 neuf, c’est donc la socket qui est défectueuse. Je la remplace et le jeu boote maintenant à tous les coups !

Concernant le souci d’affichage, je constate qu’appuyer sur l’eprom numéro 11 suffit à régler le problème. Je nettoie ses pattes comme il faut et le problème semble réglé. Mais quelques minutes plus tard le problème refait son apparition, je décide donc de changer la socket de cette eprom pour en finir avec ce bug. Je peux donc maintenant tenter une partie et voir si tout va bien.

Les inputs marchent tous bien, mais comme je m’y attendais je n’ai aucun son. Je mesure le 12v et je n’ai que 0.3v. Le courant qui censé alimenter l’ampli s’enfuit dans la masse à cause du « short to ground », ce qui explique qu’il n’y ait pas de son. Je suis les pistes du 12v pour voir les composants sur son chemin susceptibles d’être responsables. Le condensateur qui avait été remplacé avant peut être coupable. Je l’enlève et par curiosité je regarde sur le manuel européen si sa valeur est la bonne. J’ai eu raison de vérifier car il s’agit d’un 47 microfarads alors qu’il faut un 100 selon le manuel ! Je le remplace par un condensateur neuf de la bonne valeur mais cela ne change rien.

J’en profite aussi pour m’assurer que la diode qui a été remplacée est la bonne mais les inscriptions dessus sont illisibles, ce qui est mauvais signe concernant son état. Dans le doute je préfère l’enlever et remettre la bonne diode qu’il faut. J’en profite pour essayer de faire un peu plus propre qu’avant mais ce n’est pas chose aisée car les pastilles sont très fragiles et je ne veux pas risquer de les abimer plus.

Le deuxième coupable potentiel du « short to ground » est l’ULN2064 en position 7J. Je le remplace et bingo le son refait son apparition !

Je joue un peu et manque de chance le jeu finit pas freezer et/ou rebooter au bout d’un moment. Je suspecte les sockets des autres CPU d’être fatiguées elles aussi. Je les remplacent, comme ça les trois CPU sont sur des supports tulipe et il n’y a plus aucun risque de faux contact.

Je reteste le jeu un bon moment et je n’ai plus aucun souci ! Pour finir je souhaite m’assure que les inputs du deuxième joueur fonctionnent bien. Le seul moyen de tester cela est de mettre le jeu en mode table cocktail car en mode upright les deux joueurs partagent les mêmes contrôles. On a l’habitude d’utiliser un dip switch pour cela mais à cette époque il y avait aussi la technique de relier une broche spécifique du jeu à la masse. Les connecteurs des tables cocktails avaient ce câble en plus et permettaient de passer automatiquement en mode cocktail, plutôt malin comme système.

Les inputs du P2 marchent bien aussi, c’est parfait la PCB est donc réparée !

A.M. aka A-M

NEWS COL ET PROCHAINE SOIRÉE LE 24 MARS !!!

Bonjour à tous !

Je me présente, je suis Adrien M., le nouveau président de Coin-op Legacy. Cela fait un moment que l’association n’a pas organisé de soirée et nous en somme sincèrement désolé. Cela va bientôt faire 4 ans que Coin-op Legacy existe et nous allons profiter de cette date pour reprendre du service. Je vous annonce donc que le samedi 24 mars aura lieu la soirée d’anniversaire des 4 ans de l’association !

Save the date !

Cette année nous allons malgré tout lever un peu le pied sur les soirées. Nous n’en prévoyons que deux pour le moment : une en mars et une en septembre. Pourquoi me direz-vous ? Et bien organiser une soirée demande beaucoup de temps, d’efforts et de stress. Cela ne se voit pas trop en tant que visiteur mais il y a un gros travail de préparation. Et surtout, ces soirées sont très fatigantes pour les machines, principalement les vielles dédiées. Il y a en moyenne une borne qui tombe en rade par soirée, parfois plus… Nous montons certes en compétence en ce qui concerne les réparations mais cela nécessite beaucoup de temps et parfois d’argent.

En parlant de réparation vous avez peut être vu quelques repair logs sur le site ces derniers temps. Nous essayons en effet de renforcer le côté préservation de l’Arcade au sein de l’association. C’est véritablement indispensable car toutes les bornes et jeux sont voués à tomber en panne un jour ou l’autre. Nous n’avons pas les moyens de mettre à l’écrit tout ce que l’on répare mais nous essayons de partager régulièrement à ce sujet. Enfin, lors d’événements extérieurs nous commençons à exposer des pièces pour sensibiliser le grand public à la richesse et la complexité des bornes d’Arcade. Coin-op Legacy c’est de la borne d’Arcade originale, et ça le restera.

Enfin nous sommes en train de mettre en place un système d’adhésion à l’association pour ceux qui souhaiteraient nous soutenir. Nous vous en reparlerons bientôt quand tout sera prêt 🙂

Aller, bon jeu et à bientôt !


COIN-OP LEGACY vous propose un rassemblement Arcade spécial 4e Anniversaire de l’Association samedi 24 mars 2018, de 17H00 à 01H00.

Vous retrouverez une salle unique en France disposant de plus de 80 classiques de l’âge d’Or de l’Arcade, dans leur version 100% originale !

TOURNOI

Nous vous concoctons encore une fois un tournoi ‘secret’. Comme à l’accoutumée les gagnants remporteront de nombreux lots de nos partenaires Pix’n Love, DC Shoes,  SmallCab & DL Compare !

INFORMATIONS PRATIQUES

– Notre salle est située à Vitry-sur-Seine. Accès RER Les Ardoines ou Bus 182 départ Mairie d’Ivry. L’adresse exacte sera communiquée par email aux participants quelques jours avant la soirée.
– Le rassemblement démarrera à 17H00, soyez aussi ponctuels que possible svp.
– Participation aux frais de 15€ en prévente, payable uniquement par Paypal à la suite du remplissage du formulaire / 20€ sur place en espèces avant l’entrée en salle.
– Des boissons soft en canettes, ainsi que des plats et desserts seront disponibles à la vente sur place. Produits 100% frais et réalisés par un chef cuisinier pâtissier. Paiement en espèces uniquement.

FORMULAIRE

Inscriptions closes

N’hésitez pas à nous contacter pour toute question, à l’adresse suivante : contact@coinoplegacy.com. Nous vous répondrons dans les plus brefs délais.

A bientôt !
L’équipe Coin-op Legacy

TRADUCTION VALKYRIE NO DENSETSU

Introduction & mini repair log

Valkyrie no Densetsu est un jeu que j’adore! J’y ai beaucoup joué mais malheureusement ma PCB présentait des bugs sonores dans certains niveaux. Par exemple, la ligne de basse dans le Stage 3 était bizarre et il manquait des notes dans la mélodie du Stage 4.

Un jour je me dis qu’il est grand temps que je tente de réparer tout ça !

Vu à quel point ces bugs sont spécifiques, je soupçonne une corruption de données dans la rom de son. Je la dumpe, la compare avec Mame et en effet elle est défectueuse !

Je programme une nouvelle rom avec les bonnes données et voici ma PCB réparée !

J’y joue un peu et je me dis qu’il serait peut être temps aussi de fabriquer l’adaptateur pour profiter du jeu en stéréo.  Le connecteur est difficile à trouver de nos jours mais par chance j’en ai un sous la main. Un peu de soudure et je constate alors que les sorties stéréo ne sont pas amplifiées. Ne possédant pas d’ampli dans mes bornes je tente de faire la connectique pour un casque. Et oui, les Namco System 1 et 2 ont non seulement une connectique HP stéréo mais aussi casque !

Cette fois c’est parfait, le son est amplifié. Je le fais passer par un petit set d’enceintes PC pour régler le son et je profite enfin du jeu avec la qualité sonore maximale ! Puis après quelques heure de jeu je réalise une chose : malgré le fait que je comprenne le japonais, je n’ai jamais pris le temps de traduire l’histoire… et je me rend compte aussi que les gens ne comprenant pas du tout cette langue ne doivent pas vraiment profiter du jeu. Quel dommage ! Je me souviens avoir vu quelques personnes faire des hacks sous Mame pour mettre des jeux en Freeplay notamment. Je n’ai aucune connaissance là dedans mais ce n’est pas grave, le défi est lancé : essayons de traduire le jeu !


Des débuts difficiles

Je trouve donc quelques tutos concernant le hacking sous Mame, mais il n’y a pas grand chose pour être honnête. Je lance le jeu sous Debuggeur et je commence à rechercher des textes anglais pour essayer de comprendre un peu comment c’est programmé. J’essaie de trouver le texte « PLEASE PRESS ONLY 1P BUTTON » qui s’affiche après avoir inséré un crédit. Mais j’ai beau utiliser la fonction de recherche « find » je ne trouve rien. (find 0x0, 0x10000,« PLEASE » )

Intrigué je regarde le code source avec le Debuggeur et il ne correspond pas avec le code dans les eproms du jeu… je suis complètement perdu. Je mets de côté le Debuggeur et je continue de chercher directement dans les fichiers des roms pendant un bon moment. Grâce à un script trouvé sur le net je finis enfin par trouver un texte anglais ! Il est dans la rom du main program numéro 1 (MPR1) les caractères sont codés en hexadécimal sur un octet (de 00 à FF). Ici je fais disparaître le mot « PLEASE » en mettant des FF à la place.

C’est une avancé mais je ne sais toujours pas comment chercher les mots en japonais… jusqu’à ce que je découvre qu’il existe un moyen de voir les Sprites et Tiles sous Mame avec la touche F4 !

On peut y voir tous les caractères utilisés et par chance les lettres de l’alphabet latin correspondent exactement au code ASCII en hexa ! Ce qui veut dire que j’ai peut être trouvé ma pierre de rosette pour le japonais ! J’essaie de chercher dans le code le premier mot du jeu : « SHIAWASE ». Selon la table cela donnerait BC B1 DC BE, je m’empresse de le chercher dans la rom MPR1 et je trouve en effet cette string. Je la modifie avec le mot « TEST » en ASCII, je relance le jeu et bingo !

Je peux alors commencer à traduire les textes en remplaçant simplement les caractères japonais par des caractères anglais. Le saut de ligne se fait grâce à l’octet 0D, et le séparateur de bulle est 0D FF. Jusque là rien de bien compliqué. Sauf que je me frotte à mon premier gros souci : je ne peux pas mettre plus de caractères que ceux d’origines car tous les textes sont les uns à la suite des autres et je ne peux pas déplacer les séparateurs de bulles… L’exercice de traduction devient compliqué car l’anglais nécessite généralement plus de place que le japonais pour dire la même chose. Je dois donc faire des coupes franches et des arrangements pour que le sens principal soit conservé.

Tout se passe bien jusqu’à ce que je tombe sur les premiers mots utilisant le second alphabet japonais : les katakanas.

Le résultat n’est pas du tout le bon ! Je remarque que les katakanas sont au delà du simple octet (de 100 à 13F), c’est donc une histoire d’offset différent mais comment cela marche-t-il ?

Les octets des lettres sont collés les uns aux autres, comment spécifier un complément d’adresse dans ce cas ? Je ne trouve aucune réponse et je finis par opter pour une solution de fortune : je remplace en mémoire les Tiles des katakanas par les Tiles de notre alphabet. Ces Tiles sont situées dans la rom CHAR0, je copie donc les caractères de 40 à 7F et je les colle entre 100 et 13F.

Cela me permet de continuer ma traduction mais le problème est triple :

– je dois modifier une rom supplémentaire (CHAR0),
– les nouveaux caractères ne correspondent pas au code ASCII,
– je ne peux pas faire de saut de ligne à l’endroit où un katakana se trouve.

Dans l’attente de trouver une meilleure solution, je continue avec ce système. J’arrive à la fin du premier niveau et je rencontre un nouveau format de texte sur fond noir

Ces textes sont gérés de la même façon que les bulles. Par contre les balises changent : le saut de ligne devient FF 05 1D, et la début d’un texte devient FF 0x 05 1B (x étant le nombre de lignes de ce que j’ai compris). C’est plus complexe et surtout je n’arrive pas à déplacer les sauts de ligne sans créer de gros bugs ! Je suis obligé de les laisser à leur place et cela me rajoute une difficulté supplémentaire dans mes traductions.

Pour compliquer le tout, je ne peux pas utiliser de Save State pour retourner rapidement à un niveau avancé après un changement de traduction. Les Save States conservent bien sûr en mémoire l’état des rams mais aussi celle des roms du programme principal ! Je ne comprends pas trop pourquoi mais du coup je dois recommencer une partie après chaque modification, ce qui devient vite fatiguant. Mais je continue malgré tout et je finis par traduire le jeu en entier.

Je suis à la fois content et déçu de cette première version. J’ai du faire des manipulations pas très propres et surtout je manque d’espace à de nombreux endroits pour mettre la traduction idéale.


La vraie V1.0

Un peu plus tard, lors d’un week-end arcade fort sympathique je rencontre Neocps1 qui s’y connaît bien en hacking et je lui parle de ma problématique. Il me donne alors une solution simple mais géniale : il y a souvent des zones non remplies dans les roms, je peux alors y mettre mes nouveaux textes sans me soucier du nombre de lettres. Il faut ensuite réussir à trouver la table d’adressage contenant les adresses de tous les textes et les modifier pour faire pointer vers les nouveaux textes !

Je relance le Debugger pour essayer de trouver la table. Je ne sais pas si c’est cette petite pause qui m’a aidé mais je comprends rapidement mon erreur initiale. Je pensais que les codes des deux roms (MPR0 et MPR1) étaient mis à la suite pour n’en former qu’un. Mais en fait les codes sont imbriqués ensembles octet par octet. Les instructions et mémoires du Debugger font enfin sens pour moi !

Cela me permet de comprendre comment marche les katakanas : à chaque octet dans MPR1 que je modifie pour mettre une autre lettre, il y a aussi un autre octet lié dans MPR0 qui est à 00 la plupart du temps et à 01 dans le cas des katakanas. Voilà donc l’offset que je cherchais et qu’il me suffit de modifier pour avoir un code plus propre et éviter de modifier la rom CHAR0.

Je localise rapidement deux grands espaces vides dans le code qui me laissent assez de place pour mettre tous les textes, il ne me reste plus qu’à trouver la table d’adressage…

Pour cela j’ai utilise un Breakpoint pour stopper Mame quand l’adresse de la première lettre de la première bulle est accédé par le code (wp 0x32A54,1,r). Cela me permet de connaître l’adresse de l’instruction qui accède à cette valeur (0x0246FC). J’utilise alors la fonction trace qui exporte dans un fichier toutes les instructions du CPU dans l’ordre et en format clair (trace >>instruction.tr). Je couple cela avec un Breakpoint pour stopper Mame à l’instruction trouvée précédemment (bp 0x0246FC). J’obtiens ainsi le code exécuté juste avant d’afficher la première lettre

Il suffit de remonter les instructions pour trouver l’adresse de la table d’adressage. Malheureusement je ne connais rien à la programmation sous 68000… je place donc des Breakpoints pour remonter progressivement dans le code et en observant les registres je finis enfin par trouver ce que je cherche ! Le registre A1 qui contenait l’adresse de la première lettre contient ici l’adresse de la table, soit 0x0325B8.

J’ai maintenant toutes cartes en main pour faire une vraie V1.0 digne de ce nom. Mais plutôt que de coder à nouveau directement dans les roms, je me dis qu’il faut peut-être passer directement à l’étape finale : créer un script qui va aller modifier à ma place le code. Cela demande plus d’efforts au départ mais après la maintenance devient très facile et surtout je peux le partager car ce n’est qu’un simple patch !

Je me lance donc dans l’apprentissage express du Python qui semble le langage idéal pour ce job. C’est une entreprise fastidieuse mais une fois terminée, je suis enfin satisfait de mon travail !

Les traductions sont de meilleure qualité et n’importe qui peut facilement changer les textes. J’ai pour cela implémenté des codes de vérifications qui empêchent toute erreur de dépassement.

De plus si vous avez un programmateur d’eprom vous pouvez profiter du jeu traduit sur la PCB originale ! Il n’y a que 2 eproms à remplacer, toutes les instructions sont dans le fichier read me.

Voilà, j’espère que vous apprécierez ce super jeu dorénavant accessible à tous !

Vous pouvez vous procurer le script ici :

Valkyrie_to_english


Bonus : des découvertes dans le code !

En fouillant dans le code, j’ai fait quelques découvertes intéressantes. Il y a par exemple des dialogues qui n’ont pas été implémentés dans la version finale du jeu :

La déesse :

どうか、あなたの
ちからで
ひとびとを
すくってください

Please save the people with your strength (at 0x032AEE)

Il s’agit d’une variante de la deuxième bulle de la déesse au début du jeu qui demande de sauver les gens. Dans la version finale elle demande de sauver le monde.

Le mammouth :

さっさっといくがよい。

Go now/quickly (at 0x01F00C)

Vu son emplacement dans le code, il s’agit sûrement d’un phrase dites après que le joueur ait échoué au test mental (juste après « Terrible! Only a miracle can save us »). J’ignore pourquoi elle a été retirée.

ここでさんびきの
かいぶつと
たたかって
ちからをみせてもらおう!

Fight here against those three monsters and show me your strength! (at 0x033D46)

Cette phrase devait accompagner le joueur quand il entrait dans la salle du test de force. Mais le nombres d’ennemis a été revu à la hausse depuis !

よくここまできた。しかし きょうは
ここまでで おわりじゃ!
またつぎのきかいにあおう!
さらばじゃ!

Well done. But that’s all for today! We’ll meet again! Bye! (at 0x033CCE)

Une fois les ennemis du test de force vaincus, le mammouth devait sûrement dire cela.

Le marchand :

まいど
ありがとう
ございました。

Thank you very much (at 0x0336F4)

Le marchand devait à l’origine nous dire merci après chaque achat ! Mais je pense que cela devait un peu trop casser le rythme.

なんでも
あく かぎ だよ

This key opens everything (at 0x033888)

Les deux seules porte verrouillées du jeu sont dans le donjon du château. La clé se trouve dans un coffre à proximité mais peut être que les développeurs voulaient au départ nous la faire acheter…

やみよをてらす
ランプ
つかえるかもよ?

Maybe you can use a lamp to light the darkness? (at 0x0337F0)

Oho ! Un objet intéressant qui laisse supposer qu’un endroit devait être plongé dans le noir ! Je pense que l’endroit idéal devait être le marécage à la fin du Stage 5. Le jeu s’assombrit un peu à cet endroit d’ailleurs et j’imagine bien Namco faire un clin d’œil à The Tower of Druaga avec ce labyrinthe plongé dans le noir. En plus il y a un marchand juste avant…

スピ-ドアップする
スーパーシューズ
やすく しとくぜ

I’ll sell you those speed boost Super Shoes for a good price (at 0x033984)

Ça c’est dingue ! Des chaussures augmentant la vitesse de déplacement étaient prévues à l’origine ! Je ne sais pas pour quelles raisons elles n’ont jamais vu le jour dans la version finale mais j’aimerais bien les essayer:)

Enfin, grâce à l’outil qui permet de voir les Sprites j’ai trouvé d’autres choses plutôt cools :

Il y a beaucoup d’animations de personnage non utilisées, mais la plus marquante est sans doute Quarckman qui dispose de tout un panel d’attaque notamment ! Était il censé nous attaquer ? Nous aider au combat ?

On peut aussi voir ces lettres qui se lisent ougon no tane (The Gold Seed). Là ils ne sont pas bien colorés car certains Sprites voient leurs couleurs modifiées selon les besoins du jeu. Mais vu le travail porté sur ces caractères je me demande s’il ne s’agissait pas d’un sous titre du jeu finalement abandonné ? (Valkyrie no Densetsu – Ougon no Tane)

Enfin j’ai trouvé les Sprites de la clé, de la lampe et des chaussures que le marchand aurait pu nous vendre. Et il y a visiblement une arme qui n’a pas été implémentée. On dirait un boomerang et il ressemble fortement à ceux utilisés par certains monstres.

Voilà, c’est tout ce que j’ai trouvé. Si quelqu’un de doué et motivé arrive à voir si on peut activer les bottes de vitesse je suis preneur ! J’aimerais vraiment voir ce que cela aurait pu donner…

A.M. aka A-M

REPARATION PCB TAPPER

Après l’article sur Discs of Tron, voici Tapper, un autre jeu sur le système MCR3 de Bally Midway.

Ce jeu vous met dans la peau d’un barman qui doit servir le plus rapidement possible des bières à ses clients. C’est fun et le panel est vraiment sympa avec sa tireuse de bière siglée Budweiser.

La PCB a eu un gros accident. Lors de son premier test après achat, un composant a littéralement explosé sur le plateau son.

Il s’agit d’un condensateur au tantale. Ces condensateurs ont de nombreux avantages comparés à ceux en céramique et électrochimiques ; mais ils ont aussi un gros souci : leur explosion est beaucoup plus violente et dangereuse. On constate que cela a carrément fait un trou dans la plaque !

Par chance, il n’y avait aucune piste en dessous et celles d’à côté n’ont pas été coupé ; il ne reste qu’à remplacer le condensateur. Je change aussi le petit condo. céramique à proximité qui avait peut-être subit des dégâts lors de l’explosion.

Mais ce n’est pas le seul problème. De nombreux composants ont été endommagé un peu plus loin.

C’est un vrai massacre, la carte a dû être violemment cognée pour sectionner des composants de la sorte… Je les dessoude ainsi que tout ceux qui présentent la moindre faiblesse.

Je les remplace et la PCB est de nouveau prête à partir. Je branche le jeu et soulagement, il se lance sans encombre. Enfin presque, j’ai un souci de synchro. sur mon supergun.

Je tente de brancher le tout dans une borne générique et là l’image est stable. Le souci d’enroulement sur le côté vient d’un mauvais réglage de platine, rien de grave.

Je joue un peu pour voir si tout marche bien. Le son fonctionne mais les boutons « action » et « haut » ne répondent pas… Je vérifie à la sonde logique et ces inputs sont en effet flottants. Mais ce ne sont pas les seuls. Sur le connecteur J4, pas moins de cinq inputs sont flottants. C’est beaucoup et je suspecte le pack de résistances « pull up » d’être défectueux. En plus on peut voir un petit impact sur le dessus.

Je le dessoude et l’enlève du circuit. Mais à ma grande surprise je me retrouve avec seulement un bout du pack dans ma main !

Le « petit » impact avait dû être assez violent, suffisamment pour sectionner le pack de l’intérieur. Je ne veux pas savoir ce que cette pauvre PCB a enduré comme traitement. Je mets de nouvelles résistances et les inputs marchent tous à nouveau !

Par contre je remarque un petit détail qui m’avait échappé jusque-là : sur certains écrans il y a de tout petits artefacts graphiques sous la forme de points blancs qui apparaissent et disparaissent de manière aléatoire.

C’est ennuyeux. Je ne sais pas si cela vient de la borne ou de la PCB. J’essaie de relier l’alimentation directement au Jamma (au lieu d’utiliser une alim externe comme jusqu’à présent) ; mais le résultat est encore bien pire. Les sprites des personnages sont découpés « en tranches » et éparpillés n’importe comment sur l’écran.

Ne comprenant pas trop ce qu’il se passe, je rajoute un adaptateur Jamma pour essayer de capturer l’image du jeu sur un ordinateur. Le signal passe par un X-RGB mini puis une carte d’acquisition AverMedia Live Game Portable. Visiblement le X-RGB n’arrive pas à interpréter le signal vidéo, mais par contre l’image sur la borne s’affiche dorénavant parfaitement, sans aucuns artefacts !

Là je suis perdu !

Il s’agit peut-être d’un problème de masse… Je débranche le système d’acquisition et relie la masse vidéo à la masse général sur le peigne Jamma. Et là l’image s’affiche enfin comme il faut de manière stable. Ouf, il ne s’agissait donc pas d’un problème de la PCB.

Le jeu est maintenant prêt à rejoindre sa borne !

A.M. aka A-M & O.V. aka Olisan

RÉPARATION PCB TWIN COBRA

Aujourd’hui c’est une PCB Kyukyoku Tiger qui est sur le bench.

Connu sous le nom Twin Cobra en dehors du Japon, ce shmup est rigide et punitif mais agréable à jouer malgré tout. Malheureusement la plaque que nous avons là souffre d’un gros problème de positionnement de sprites. Les deux tiers supérieurs de l’écran n’affichent aucun sprite de premier plan et les tirs du vaisseau partent de tout en bas.

Il s’agit probablement d’un simple problème d’adressage mais je ne trouve aucun schéma de la PCB pour m’aider. Je n’ai pas d’autre solution que d’y aller à l’aveugle, je commence donc à sonder tous les composants à la sonde logique. En me servant des datasheets de chaque composant je regarde si leur comportement semble correct. Je note ceux qui me paraissent suspects et je finis par arriver sur le TTL 74LS74 en position D11.

Alors que les signaux en entrées sont bons, les quatre signaux de sorties sont bloqués à high. Ce n’est pas normal, de plus je remarque que certaines des pattes sont légèrement rouillées alors que les autres composants de la plaque sont nickels. Je tente la technique du piggybacking qui consiste à mettre un composant neuf à califourchon sur un autre supposé défectueux. Cela ne marche pas à tous les coups mais cela ne coûte rien d’essayer.

Je lance le jeu et le problème n’est plus là, tous les sprites sont au bon endroit !

C’est donc bien ce TTL qui ne marche plus, il ne reste qu’à le dessouder et à en mettre un neuf sur support.

Et voilà, le jeu est à nouveau pleinement fonctionnel !

A.M. aka A-M & B.H. aka Bat

ARCADE WEEKND

COIN-OP LEGACY déménage à Paris le temps d’un week-end ! Retrouvez nous au POINT ÉPHÉMÈRE, le long du Canal St Martin, les samedi 19 et dimanche 20 août 2017, pour un évènement 100% Arcade !

Le Point Éphémère se définit comme un ‘fournisseur officieux de contenus culturels’. Avec son bar, c’est également un endroit où vous pourrez vous désaltérer, entre deux parties de Street Fighter.

********************************************
COIN-OP LEGACY / ARCADE WEEKND
********************************************

« De Pac-Man à Slam Dunk en passant par Virtua Racing, les jeux d’arcades ont comblé nos moments d’ennuis les plus moroses dans les campings Pierre & Vacances des années nonantes. Grâce à COIN-OP LEGACY, Point F devient une salle de jeux et accueillera une douzaine de bornes retro, pour du free play et des tournois à base de joysticks vénères ! »


PROGRAMME

Venez jouer, samedi de 14h à 00h et dimanche de 14h à 20h.
Prix d’entrée = 5€ sur place = freeplay en illimité !
À votre disposition, une douzaine de bornes d’Arcade génériques et dédiées 100% originales.

TOURNOIS

Quatre jeux emblématiques seront à l’honneur ce week-end. Des classiques de l’Arcade sur leur support original où vous pourrez vous affronter pour remporter de nombreux lots de nos partenaires !

Horaires des tournois :
WINDJAMMERS : samedi à 15H
PUZZLE BOBBLE : samedi à 18H
STREET FIGHTER 2X : dimanche à 15H
VIRTUA TENNIS : dimanche à 18H

Soyez là 30 min avant l’horaire indiqué pour les inscriptions !

PARTENAIRES

DC Shoes
http://dcshoes.com/
https://twitter.com/dcshoes

Pix’n Love
https://www.editionspixnlove.com/
https://twitter.com/Pixnlove

SmallCab, votre Arcade Shop !
http://www.smallcab.net/
https://twitter.com/SmallCab_net

dlcompare
http://www.dlcompare.fr/
https://twitter.com/dlcompare_fr


INFOS PRATIQUES

Point Éphémère, 200 Quai de Valmy 75010 Paris
Tél. : 
01 40 34 02 48
www.pointephemere.org

Accès Métro Jaurès (lignes 5, 2 et 7 bis), Louis Blanc (ligne 7)
Bus 26 /46 / 48

B.H. aka Bat