• 08Nov

    J’ai acquis il y a quelques semaines une Monaco GP, célèbre borne de SEGA par son âge et sa technologie : entièrement en logique cablée, il n’y a donc pas de programme chargé sur une EPROM, le jeu n’est donc pas “dumpable” et on ne peut bien évidemment pas l’émuler (il y a des projets en ce sens, mais aucun n’a abouti à ma connaissance).

    Monaco_gp_flyer

    flyer Monaco GP

    Le gameplay est absolument d’enfer, tester cette borne, c’est l’adopter. Le plaisir est immédiat, les commandes très réactives, on comprend très rapidement que le but du jeu est de réussir à éviter les obstacles et véhicules sur la route… Route qui change souvent de forme : terrain verglacé, pont, tunnel avec vision limitée à la zone des phares, etc.

    107000804

    Dans une première phase de jeu, vous avez 90 secondes pour atteindre 2000 points. Vous pouvez vous crasher à loisir, les vies sont infinies. Si une fois le temps écoulé, vous n’avez pas atteint 2000 points, vous êtes bon pour réinsérer 2 francs.

    Si au contraire, vous avez atteint 2000 points (ou plus), vous avez alors une “vie” et chaque crash vous décompte 1 vie. Tous les 2000 points suivants, une nouvelle vie est accordée.

    Il existe 3 modèles de cab différents pour le même jeu : upright (le modèle que j’ai), cockpit et cocktail. Merci de prendre rendez-vous avec Bernard Banel pour voir les 3 modèles d’un seul coup 🙂

    107000802

    293000101

    293000102

    Maintenant que les présentations sont faites, voici le tour du propriétaire pour ma Monaco GP.

    Au niveau décoratif, les 2 sides, le bezel et le CPO sont soient endommagés, soient absents. Je vais voir dans un second temps pour refaire tout ça.

    IMG_8126.resized

    IMG_8124.resized

    IMG_8125.resized

    La partie qui m’intéresse actuellement : l’électronique.

    Ouvrons la bête…

    IMG_8127.resizedLe tube

    IMG_8128.resized

    Une vue d’ensemble

    IMG_8129.resized

    L’alim + ampli audio (qui est normalement au fond du cab)

    IMG_8133.resized

    Présentation des cartes… Tout à gauche, la carte qui gère les scores (afficheurs en haut de la borne).

    IMG_8130.resized

    Puis à droite, un rack contenant 3 cartes. De gauche à droite : gestion des graphismes, gestion du jeu et gestion des sons

    IMG_8131.resized

    Les 3 cartes sont sur un rack, avec des cartes interboard à l’arrière pour relier les cartes entre elle (notamment graphisme avec jeu et jeu avec son). En débranchant quelques cables, on peut avoir un peu de mou et tirer le rack (voir carrément le sortir).

    IMG_8132.resized

    Par contre, à cause des interboards, les 3 cartes sont solidaires, pour avoir accès à la carte jeu ou son, il faut la désenficher, ce qui est loin d’être pratique pour le dépannage…

    Une vue de la carte jeu hors du rack :

    IMG_8141.resized

    Au niveau jeu lui-même, au moment où je l’ai acheté, cette Monaco GP avait quelques soucis :

    • le jeu ne tient pas compte des points du joueur, et même si on dépasse les 2000 points en moins de 90 secondes, un magnifique game over apparait.
    • un petit bug graphique sur les voitures des adversaires
    • le jeu n’affiche pas les décors autre que la route de base (pas de tunnel, de pont, de verglas, …)
    • pas de sons ni de fanfares

    On décide de commencer par l’aspect “son” en espérant que ça soit lié à un des autres problèmes et qu’on fasse d’une pierre 2 ou 3 coups.

    Par chance, les schémas électroniques de cette borne sont disponibles. Sans ces derniers, le dépannage serait vraiment compliqué.

    Voici un des schémas de la carte son (carte 96598, “oscillator”) :

    schema-oscillator-mixerAlors au niveau des schémas, ce qu’il faut retenir :

    • ils ne sont pas tout à fait exacts, certaines réf vers des portes logiques sont fausses, ne pas hésiter à vérifier si d’autres pattes du circuit que vous souhaitez tester mènent bien à d’autres composants alentours
    • sur chaque page, il y a la référence de la carte (ici 96598-P), suivi du nombre de page sur le total pour la carte en question (ici c’est donc la 4ème page sur 7 pages disponible pour la carte son)
    • quand il y a un petit carré (ici juste à gauche de sound out), ça signifie que ça part (ou que ça rentre) du bornier de la carte

    Mais revenons en à notre carte son. Sur ce bout de schéma, on voit qu’une résistance 100 Ohms est activée dans certains cas, juste avant l’ampli du cab (sound out), ce qui a pour effet de “muter” le son. La porte logique qui gère ça est de type “OR” et c’est le composant IC67 avec en entrée les pattes 9 et 10 et la sortie sur 8. J’ai mis en fluo jaune les 2 entrées qui contrôlent cette porte logique : NON – COIN IN (ou /COIN IN) et une autre référence en japonais. Je donne cet exemple pour que que ça puisse servir à d’autres, le principe est toujours le même.

    Après mesure du /COIN IN, on suspecte une mauvaise valeur. On part donc du côté de la “carte CPU” et on retrouve sur notre schéma qu’est-ce qui gère le signal COIN IN.

    schema-cpu

    J’ai mis en fluo (à droite) les 2 sorties COIN IN et /COIN IN qui proviennent du composant IC37 (toujours en fluo à gauche). Ce composant est une bascule, à chaque coup d’horloge (entrée CK), il recopie la valeur de l’entrée D sur Q et /Q (Q et /Q étant toujours opposés, si l’un vaut 0, l’autre vaut 1 et inversement). L’entrée CL (patte 1), met la bascule à 0, quel que soit l’état en entrée.

    On voit donc à gauche du schéma que cette bascule permet de savoir que le joueur a payé (ou qu’on a utilisé le switch de service) pour créditer une partie. Puisque D est toujours à 1 (relié à Vcc), dès qu’un coup de clock va arriver (l’insertion de la pièce ou du bouton service), la bascule va recopier la valeur 1 en sortie Q. Q et /Q correspondent à COIN IN et /COIN IN.

    Bon tout ça c’est la théorie, mais en pratique, comment visualiser si ça fonctionne alors que la carte est enfichée dans un rack ?

    Nous avons utilisé un analyseur logique, avec 16 entrées possibles (il peut aller jusqu’à 32). Voici la merveille :

    IMG_8144.resized

    Pour ceux que ça intéresse, on peut le trouver ici : http://www.seeedstudio.com/depot/open-workbench-logic-sniffer-p-612.html?cPath=61_68

    N’hésitez pas à fouiller leur site, ils font plein de matos sympathique à prix très accessible, par exemple cet oscilloscope portatif numérique : http://www.seeedstudio.com/depot/dso-nano-v2-p-681.html?cPath=104_108

    Pour en revenir à l’analyseur, c’est du hardware open source, il est livré sous licence CC-BY-SA-NC

    licence-open-workben

    Le soft qu’on a utilisé est celui-ci : http://www.lxtreme.nl/ols/ (il y a des screenshots si vous voulez voir comment ça tourne)

    On s’est donc branché sur le composant douteux (je rappelle pour ceux du fond qui ont du mal à suivre, qu’on suspecte le COIN IN de ne pas changer d’état lorsque le joueur lance la partie).

    IMG_8114.resized

    IMG_8116.resized

    IMG_8117.resized

    (les photos ne correspondent pas au test de ce composant là, mais le principe est là)

    L’énorme avantage avec l’analyseur, c’est qu’on peut voir d’un coup, tout se qui se passe sur les entrées / sorties de plusieurs portes à la fois et mettre le doigt sur le problème de manière rapide.

    On renfiche la carte dans son rack, et on peut lancer une partie avec l’analyseur qui capture les signaux. Voici le résultat du test pour cette bascule :

    changement-bascule-ko

    Je n’ai laissé visibles que les sorties Q et /Q. On voit clairement qu’il y a un souci : elles devraient être tout le temps opposées. Cette bascule est donc défectueuse !

    On la déssoude, mise en place d’un socket avant de remettre un nouveau composant.

    IMG_8118.resized

    IMG_8119.resized

    On peut maintenant retester les valeurs de sorties de la bascule avec l’analyseur logique :

    changement-bascule-ok

    Les signaux de sorties sont maintenant corrects (le premier front montant correspond à la mise sous tension de la borne).

    Après le détail du changement de cette porte en particulier (j’espère avoir été le plus didactique possible, toujours dans l’optique que ça puisse servir à d’autres), voici dans les grandes lignes ce qui s’est passé ensuite :

    • recherche de la panne de la carte son
    • on remonte sur la porte logique que je viens de détailler, mais entre temps, un nouveau problème apparait : impossible de lancer une partie.
    • on se met à la recherche de ce nouveau bug : quand on crédite une partie, le compteur de temps s’initialise bien à 90 secondes, mais le jeu reste en game over.
    • on finit par tomber sur l’IC74 qui est assez central pour la gestion du game over. C’est une triple porte triple-non-ou.

    IMG_8121.resized

    • après test à l’analyseur, ce composant est HS.
    • impossible pour l’instant de le changer (pas de composant identique en stock), on se débrouille pour que la porte renvoi “toujours vrai” de manière à ce que le jeu ne puisse plus être en gameover.

    IMG_8140.resized

    • on trouve enfin le problème du composant IC37 (que j’ai détaillé plus haut), mais le son est toujours muté.
    • on finit par identifier que l’ampli (LM2902) est HS. A commander également.

    IMG_8139.resized

    A ce moment, le jeu peut être lancé, en shuntant l’ampli HS, on obtient le son (10x plus faible), tous les bruitages semblent être là.

    Il reste encore un problème très génant, le fait que le jeu ne défile pas au niveau des décors : pas de flaque d’eau, de tunnel, de pont, etc.

    Après analyse des schémas, c’est la carte de score qui tient au courant la carte graphique de l’avancement des points et en fonction lance l’affichage des différents paysages. Il y a notamment un changement de décors qui s’opère tous les 100 / 500 points

    Le dernier circuit qui envoie les informations de points à la carte graphique (S-100-A / B / C / D) est l’IC 2E-1 (sur la carte de score, les circuits sont numérotés en ligne / colonne).

    On regarde sur la carte et… Il y a déjà un socket pour ce composant ! Ahah, ça sent bon, sauf que ce socket est là d’usine, ce n’est pas une réparation faite ultérieurement. Il s’agit d’une porte 7417.

    IMG_8137.resized

    On la remplace par un équivalent, une 7407 et voilà le résultat en place :

    IMG_8136.resized

    On teste et … Le problème des décors a disparu ! Le jeu défile normalement : pont, tunnel avec éclairage, verglas, …

    Sega avait-il prévu que ce composant lâche “régulièrement” ? Si d’autres possesseurs de Monaco GP peuvent confirmer la présence de ce socket d’origine ?

    Il reste encore un petit bug graphique sur les voitures des adversaires, à suivre avec plus de photos du problème et bien sûr, la restauration esthétique du cab !

    Posted by admin @ 1:37 pm

One Response

WP_Cloudy
  • Dav Says:

    Bravo pour ton travail ça a l Air si simple quand c est expliqué comme ça sauf que ça représente des heures de fouille en amont.
    Belle resto et joli tuto.
    Dav

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.