Auteur Sujet: [WIP] PCB bootleg Gyruss  (Lu 719 fois)

Hors ligne Little_Rabbit

  • ✌(◕‿◕)✌ Donateur 2019
  • Dieu de l' Arcade
  • *
  • Messages: 5133
  • Localisation: Nantes
  • The early 80's : the arcade golden age !!
    • Voir le profil
[WIP] PCB bootleg Gyruss
« le: Mardi 07 Mai 2019, 22:05:33 pm »
  • Salut,

    Allez, en plein combat contre la procrastination, je poursuis mes comptes-rendus de WIP histoire d'être à jour, et passer ensuite à autre chose ! ;)

    Il y a quelques mois, Houpela m'a confié un PCB qu'il a récupéré dans une petite borne générique. Le tout était dans son jus, et le PCB inconnu.



    J'ai commencé par dumper une EPROM, et demander à MAME de me l'identifier, à l'aide de la commande :

    mame -romident mondump.bin

    mais sans succès, la ROM n'était pas reconnue :'(

    J'ai dumpé toutes les ROM mais pareil. J'ai jeté un œil aux fichiers dumpés avec un éditeur hexadécimal de fichier, histoire de voir si il apparaissait des zones avec de l'ASCII qui évoquent quelque chose. Résultat : rien de très parlant, mais une zone toutefois évoquait vaguement une séquence de caractères :

    RNFR@LDD BX RNFR@LDD BX TN HHN @RHL@ BRD@THV  BX XNRHHJH NJ@LNTN BH@R@@TDR BX HHDDJH NNXAL@ RNTND BX L@R@HHRN HNNTD VD @RD L@JDD THLD PHLNT

    L'idée derrière cette exploration, c'était que l'EPROM était certainement malade, et qu'en forçant tel bit à 0 ou à 1, cela pourrait peut-être faire apparaître un motif plus parlant :). Mais non, quelque soit les bits forcés à 1 ou 0, cela ne m'évoquait rien. J'ai tout de même envoyé à Houpela le petit fichier Excel qui simulait ces forçages de bit, et sa grande culture vidéoludique fit le reste :D !

    À partir de cette séquence (1er bit D0 toujours forcé à 1):

    SOGSAMEE!CY!SOGSAMEE!CY!UO IIO!ASIMA!CSEAUIW !CY!YOSIIKI!OKAMOUO!CIASAAUES!CY!IIEEKI!OOYAMA!SOUOE!CY!MASAIISO!IOOUE!WE!ASE!MAKEE!UIME!QIMOU

    il décrypta : « YOSHIKI OKAMOTO “

    Balaise le Houpela hein !? :D

    Si l'EPROM avait été valide, j'aurais dumpé :

    PROGRAMED BY TOSHIO ARIMA CREATIVE BY YOSHIKI OKAMOTO CHARACTER BY HIDEKI OOYAMA


    J'avoue ma grande inculture, mais tout de suite Houpela lui pensa à Gyruss !

    Yeah, un de mes jeux préférés ! Plus grande encore était la motivation pour le réparer :).

    Rétrospectivement, je reconnais avoir été très mauvais sur cette identification de PCB mystère, car si j'avais seulement regardé d'un peu plus près le PCB, un indice flagrant crevait pourtant les yeux :



    Cinq composants AY-8910 de General Instrument ! C'est typique de Gyruss !! Le AY-8910 est un processeur sonore qu'on trouvait sur de nombreuses bécanes dans les années 80 (Amstrad CPC, Oric, la vectrex, les MSX, ATARI ST, etc.). Chaque AY dispose de 3 canaux pour la musique, plus une voie supplémentaire pour les bruits blancs. Avec 5 exemplaires, le PCB Gyruss peut donc produire une polyphonie sur 15 voies simultanées (quoiqu'il faudrait vérifier cela car je vois sur le schéma que 2 des AY-8910 sont utilisés différemment, je n'ai pas bien compris comment...) ! Il y a en plus un autre circuit dédié à la reproduction de samples 8 bits (je ne sais pas comment il est utilisé dans le jeux : je me suis amusé à l'enlever, et n'ai pas remarqué de différence !... :-\). Quoiqu'il en soit, ce n'est pas pour rien que la bande son de ce jeu est géniale ! :-*

    Et tant qu'on y est, je vous montre la seconde carte :



    Le PCB est plutôt propre, même si comme nous le verrons un peu plus loin, il y a par endroit de l'oxydation. Et il fût aussi habité autrefois...



    ;)

    Notez qu'il s'agit d'un boot et pas d'un original Konami, mais la copie est très très proche de l'original (et sans le 6809 custom de Konami qui encryptait certains opcodes !... au moins si il faut changer des pièces, elles seront standards ;)).

    Vu que le dump était pourri, j'ai commencé par effacer toutes les EPROM aux UV. Tentative de re-programmation sur mon programmateur Wellon : ça ne marche pas :'(. En fait cela me donnait des trucs complètement incohérents : je lisais plusieurs fois l'EPROM et chaque lecture me donnait un truc différent ! La programmation quant à elle échouait également :'(.

    Au point que j'ai cru mon programmateur HS. Pourtant, si je lançais la procédure d'autotest, il ne trouvait rien d'anormal. Je me suis même fabriqué le support spécial où les broches face à face sont reliées entre elles pour permettre l'auto-test avancé : pareil, il ne détectait pas de problème ;D. Cette histoire d'EPROM mis un léger coup d'arrêt à ce WIP car sans programmateur j'étais coincé.

    Voici les EPROM :



    Et là encore j'ai manqué de présence d'esprit !... Vous remarquerez qu'il s'agit d'EPROM Mistubishi, et plus particulièrement celles de la génération qui ont leur fenêtre UV légèrement surélevées de la surface de l'EPROM. Cette génération d'EPROM chez ce fabricant ont très mauvaise réputation : avec le temps, elles sont souvent défectueuses !

    Il semblerait donc que le comportement erratique que j'obtenais sur mon programmateur ne venait pas d'un dysfonctionnement du programmateur, mais des EPROM elles-mêmes !

    Toutefois, cette affaire demeure curieuse, car il me vint l'idée de les tester sur mon autre programmateur, le vieux sur ATARI ST :



    Et bien figurez-vous que là j'ai pu les programmer du 1er coup sans problème ! J'en conclus pour l'instant que ces EPROM vieillissent peut être mal, mais surtout qu'elles ne conviennent pas à tous les programmateurs !

    Gyruss est une création Konami, je me suis donc fabriqué un harnais Konami pour tester le PCB dans mon atelier (là encore, une veille DB25 bricolée me sert à brancher 2 joystick ATARI CX40 ;)):



    Avant de faire un premier branchement, je crois me souvenir que j'ai enlevé tous les composants sur support pour les désoxyder (essentiellement les EPROM et les PROM), car certains étaient carrément noirs ! :-\



    Après un petit coup de stylo fibre de verre, c'était déjà mieux 8)



    Première mise sous tension, et...


    Suspens !....


    Yeah ! Y a de la vie à l'écran ! ^-^

    Bon, il manque quand même pas mal de chose, et il ne semble pas y avoir de son : calmons un peu notre joie ! ;)

    On a semble-t-il les sprites, mais il manque tout le reste ! J'avais un peu regardé les schémas, et constaté qu'en étage de sortie RVB, il y avait plusieurs PROM qui font office de composant palette, et un multiplexeur 74LS157 qui prend soit les pixels « sprite », soit les pixels « tilemap » (jeu de caractères en couleur si vous préférez).



    Cela me donnait une première piste d'exploration. J'inspecte le PCB, et rigole un bon coup :D :



    Ah bah oui, avec une patte en dehors de son support, ça va moins bien marcher ! :D

    C'est la PROM de palette des tilemap ! Je replace la PROM correctement sur son support, et nouveau test :


    Ah, nettement mieux ! À présent, tout semble  OK au niveau vidéo, mais par contre, toujours pas de son.

    Sur un PCB Gyruss, il y a deux cartes :
    - celle du dessous, architecturée autour d'un Z80 + un 6809, s'occupe de la vidéo et du jeu dans son ensemble
    - celle du dessus, architecturée autour d'un Z80, s'occupe uniquement du son et de la musique

    Pourquoi n'y aurait-il aucun son ?

    Remontons tous les étages successifs responsables de la production des musiques et effets sonores :
    - mon harnais avec ses HP est-il correctement câblé ?
    - les amplis de la carte son sont-ils fonctionnels ?
    - les processeurs audio fonctionnent-ils ?
    - le système à base de Z80 qui orchestre tout ça fonctionne-t-il ?
    - la communication avec la carte principale, et qui envoie les « ordres audio » à la carte son est-elle opérationnelle ?

    Autant de pistes qu'il va me falloir explorer et vous expliquer dans le prochain volet de ce WIP :).

    A+
    « Modifié: Vendredi 10 Mai 2019, 18:46:15 pm par Little_Rabbit »
    Recherche bornes dédiées ou PCB originaux: Miss Pacman, Dig Dug, Galaga, Mappy, Asteroids, Battlezone, Missile Command, Tempest, Star Wars, Donkey Kong (+ Jr), Mario Bros, Moon Patrol, Defender, Joust, Frogger, Gyruss, Pooyan, Space Tactics, Zaxxon, etc. Flip : Gottlieb des années 80 (Spirit, Amazon Hunt, ...), Baby Pac Man. Divers :  Ice Cold Beer
    Trois fois rien quoi ! :D

    Hors ligne lencouet

    • ✌(◕‿◕)✌ Donateur 2019
    • Confirmé
    • *
    • Messages: 141
    • Localisation: Lot et Garonne
      • Voir le profil
    PCB inconnu, touche à ton…
    « Réponse #1 le: Mardi 07 Mai 2019, 22:51:07 pm »
  • Toujours aussi passionnant tes wip  ^-^
    Tu est le mac lesggy du pcb :D

    Hors ligne michel29

    • Addict
    • *
    • Messages: 309
    • Localisation: Quimperlé - Bretagne
    • Passionné depuis 1976 avec Breakout
      • Voir le profil
    PCB inconnu, touche à ton…
    « Réponse #2 le: Mardi 07 Mai 2019, 23:00:46 pm »
  • Bravo Little  <:) J'ai hâte de voir la suite  :D
    Sauvegardons notre patrimoine arcade !!!

    Hors ligne AsPiC

    • Admin
    • Dieu de l' Arcade
    • *****
    • Messages: 8509
    • Localisation: Les Herbiers (85)
    • Present pour Koh Lanta Retrogaming Party 2069 !
      • Voir le profil
      • Mon compte Instagram !!
    PCB inconnu, touche à ton…
    « Réponse #3 le: Mardi 07 Mai 2019, 23:05:18 pm »
  • J'adore ce jeux et sa bande son :-*


    Recherche tout élément de Jeutel Galaktron - "AsPiC c'est : no WIP but just RIP" - kos71 2014

    Hors ligne rygar

    • Grand Pilier
    • *
    • Messages: 851
    • Localisation: argentan
    • World record in progress...
      • Voir le profil
    PCB inconnu, touche à ton…
    « Réponse #4 le: Mercredi 08 Mai 2019, 08:39:38 am »
  • Merci mon Little pour tes wip toujours aussi passionnant. Digne d'un épisode de Columbo. On sait que tu vas trouver la solution alors on lit et on essaye de comprendre ...
    J'adore !!!!

    Quand tu auras du temps, il faudra que tu regardes mon bootleg Rygar qui est chez mon Chelnov, il aurait besoinde tes soins  :-*
    Paiement en cidre et pommeau de Normandie ...  ;)

    Bon continuation, tu es sur une bonne dynamique !!!!

    Hors ligne Cid2Nice

    • ✌(◕‿◕)✌ Donateur 2019
    • Addict
    • *
    • Messages: 313
    • Localisation: Nice
    • WIPeur lent
      • Voir le profil
    PCB inconnu, touche à ton…
    « Réponse #5 le: Mercredi 08 Mai 2019, 09:38:35 am »
  • Respect, c'est tout ce qui me vient à l'esprit en lisant ce sujet :)

    Hors ligne tikibzh

    • alias François Pignon
    • Pilier
    • *
    • Messages: 727
    • Localisation: Sérent(56)
      • Voir le profil
    PCB inconnu, touche à ton…
    « Réponse #6 le: Mercredi 08 Mai 2019, 10:06:58 am »
  • Je comprends toujours la moitié du quart du dixième de ce que LIttle raconte, mais je trouve toujours ça passionnant, tout comme quand je pouvais admirer la "bête" à l’œuvre sur ma première borne... "Alors tu vois, quand je branche l'oscillo ici, ça fait ça, alors que ça devrait faire ça..."... Heuuuuuuuu si tu le dis, je te crois sur parole  :D

    Je commente pas toujours, mais je lis systématiquement  ^-^ ^-^ ^-^
    Il est mignon Monsieur Pignon, il est méchant Monsieur Brochant...

    Hors ligne Little_Rabbit

    • ✌(◕‿◕)✌ Donateur 2019
    • Dieu de l' Arcade
    • *
    • Messages: 5133
    • Localisation: Nantes
    • The early 80's : the arcade golden age !!
      • Voir le profil
    [WIP] PCB bootleg Gyruss
    « Réponse #7 le: Mercredi 08 Mai 2019, 14:53:32 pm »
  • Salut,

    Merci à tous pour vos commentaires ! :-*

    Digne d'un épisode de Columbo. On sait que tu vas trouver la solution alors on lit et on essaye de comprendre ...
    J'adore !!!!

    Merci beaucoup, c'est très flatteur ! :-* Mais Colombo lui trouve à tous les coups, alors que moi cela finit parfois en impasse ;).

    Quand tu auras du temps, il faudra que tu regardes mon bootleg Rygar qui est chez mon Chelnov, il aurait besoin de tes soins  :-*
    Paiement en cidre et pommeau de Normandie ...  ;)
    Si les schémas existent, je me pencherai volontiers sur le malade ! :)
    Mais il ne faudra pas être pressé, et le résultat n'est pas garanti ;).

    A+
    Recherche bornes dédiées ou PCB originaux: Miss Pacman, Dig Dug, Galaga, Mappy, Asteroids, Battlezone, Missile Command, Tempest, Star Wars, Donkey Kong (+ Jr), Mario Bros, Moon Patrol, Defender, Joust, Frogger, Gyruss, Pooyan, Space Tactics, Zaxxon, etc. Flip : Gottlieb des années 80 (Spirit, Amazon Hunt, ...), Baby Pac Man. Divers :  Ice Cold Beer
    Trois fois rien quoi ! :D

    Hors ligne rygar

    • Grand Pilier
    • *
    • Messages: 851
    • Localisation: argentan
    • World record in progress...
      • Voir le profil
    [WIP] PCB bootleg Gyruss
    « Réponse #8 le: Mercredi 08 Mai 2019, 21:36:14 pm »
  • Tu as carte blanche mon Little !!!
    B
    On courage pour tes wip à venir, garde la dynamique que tu as en ce moment   ^-^  :-)=

    Hors ligne mariopourlavie

    • _- R.I.P. -_
    • Grand Pilier
    • *
    • Messages: 925
      • Voir le profil
      • Notre retro gameroom Tetris
    [WIP] PCB bootleg Gyruss
    « Réponse #9 le: Mercredi 08 Mai 2019, 21:41:18 pm »
  • Salut et bravo  ^-^ je suis admiratif  <:)

    Hors ligne Vieille_Loutre

    • Passionné
    • *
    • Messages: 196
    • Localisation: Limoges
      • Voir le profil
    [WIP] PCB bootleg Gyruss
    « Réponse #10 le: Mercredi 08 Mai 2019, 21:56:32 pm »
  • C'est tellement bien rédigé, même en étant une quiche on a l'impression de comprendre. C'est beau!  ^-^  (et gyruss est excellent comme jeu, bonne résurrection!)

    Hors ligne Sunn

    • ✌ Donateur depuis 2018
    • Arcade Killer
    • *
    • Messages: 2873
    • Localisation: B’sançon
      • Voir le profil
    [WIP] PCB bootleg Gyruss
    « Réponse #11 le: Jeudi 09 Mai 2019, 00:11:36 am »
  • Bravo !

    Jai tellement d’affect pour ce jeu...  :-*

    Hors ligne Little_Rabbit

    • ✌(◕‿◕)✌ Donateur 2019
    • Dieu de l' Arcade
    • *
    • Messages: 5133
    • Localisation: Nantes
    • The early 80's : the arcade golden age !!
      • Voir le profil
    [WIP] PCB bootleg Gyruss
    « Réponse #12 le: Jeudi 09 Mai 2019, 23:08:11 pm »
  • Salut,

    Merci encore pour vos commentaires qui font chaud au cœur :-*.

    Je suis content également de voir que pour beaucoup d'entre vous Gyruss est un jeu à part ! :) Cela vient-il des très bons portages qui en avait été fait sur pas mal de micro-ordinateurs 8 bits au début des années 80 ? :) En tous cas j'en ai d'excellents souvenirs sur 800XL ! :-* Et puis sa bande son est vraiment fantastique !

    Comme je le disais il y a quelques jours, les pistes à explorer sont nombreuses, alors par où commencer ?

    Avec l'oscilloscope, j'examine les signaux qui arrivent aux amplis : c'est simple, il n'y a absolument rien ! Cherchons donc en amont.

    J'ai examiné les signaux vitaux arrivant au Z80 : tensions, RESET, horloge => cela semblait bon. J'ai regardé les bus d'adresses et de données, les signaux R/W, ou encore les interruptions, mais je ne voyais rien de flagrant... Le décodage d'adresse qui permet d'adresser les RAM, les ROM ou composants périphériques (processeurs audio) semblaient bons.

    Comme, je ne savais pas trop par où commencer j'ai voulu vérifier si la carte « jeu » communiquait bien avec la carte « son ». La carte « jeu » envoie ses ordres via un buffer bidirectionnel 8 bits, un 74LS245. Je l'ai dessoudé :



    et remplacé par un neuf, mais sans effet :'(

    Quand on n'est qu'un amateur en électronique comme moi, pas un professionnel, il est parfois plus simple de procéder par comparaison. Or il s'avère que parmi mes nombreux cartons de PCB, j'en ai un de Gyruss acheté il y a déjà pas mal d'années, et jamais testé. Je le sors de son carton, l'observe et là un large sourire s'invite sur mon visage : assez incroyable, c'est rigoureusement le même que celui d'Houpela ! :)



    Comme le harnais est prêt, je peux le tester immédiatement : il y a des problèmes sur la vidéo (je vous en parlerai dans un autre sujet ;)), mais oh joie, le son et la musique fonctionnent à peu près !

    Du coup, comme mon PCB et celui d'Houpela sont les mêmes, et qu'ils ont des pannes différentes, cela me permet de faire des permutations de cartes et de composants, et ainsi fortement élaguer ma liste de pistes à explorer. En mettant ma carte son sur le PCB d'Houpela, je peux répondre à plusieurs questions :

    - mon harnais avec ses HP est-il correctement câblé ? => oui !
    - les amplis de la carte son d'houpela sont-ils fonctionnels ? => à approfondir, mais rien ne semble y arriver
    - les processeurs audio fonctionnent-ils ? => oui !
    - le système à base de Z80 qui orchestre tout ça fonctionne-t-il ? => à explorer
    - la communication avec la carte principale, et qui envoie les « ordres audio » est-elle opérationnelle ? => oui du côté de la carte « jeu », côté carte « son » à creuser !

    Je peux donc me concentrer sur 2 points : les amplis et le système Z80.

    Mes observations préliminaires de l'ampli ne montrant aucun signal arrivant aux amplis, cela m'incite à me pencher sur le Z80 et ce qui gravite autour.

    Le Z80 lui-même est sur support, j'ai donc pu le permuter avec le mien : il n'est pas en cause.

    Je me suis alors penché sur les schémas pour essayer de comprendre comment cela fonctionnait, et comment la carte son recevait-elle ses ordres de la carte « jeu ».



    En analysant tout ça, il me semblait bien que la carte « jeu » dialoguait avec la carte « son » via le registre 74LS374 en 5C, et le signal « Sound On » provenant de la carte « jeu » génère visiblement une interruption au niveau du Z80. Une interruption est un signal qui permet de dérouter temporairement le Z80 de sa tâche en cours pour faire autre chose : ici on peut imaginer que c'est pour lire la valeur mise dans le registre en 5C, qui est certainement l'ordre audio souhaité (« joue tel bruitage », « joue telle musique », « coupe tous les sons », etc.).

    Je regardais à l'oscillo les signaux impliqués dans ces différents modules, mais j'avoue que je pataugeais un peu. Rien ne se dessinait clairement.

    J'ai même fait un cap-kit partiel de la carte car certains condo électrochimiques de découplage de la carte avaient un air louche :



    Mais cela n'a rien changé.

    Sans grandes convictions, je trouvais que le bus de donnée était bruité :



    Pour élaguer les sources possibles de parasitage du bus de données, j'ai enlevé un maximum de AY-8910 et composants périphériques (sur ma carte, j'enlevais tel composant, et constatais que j'avais encore des sons, ainsi de suite pour arriver au minimum vital :)).

    Mais cela ne changeait rien.

    Du coup j'ai tenté le remplacement du 74LS374 en 5C, celui qui sert de registre aux ordres provenant de la carte « jeu ». Sans succès :'(.

    Ensuite, j'ai examiné la gestion des interruptions : je voyais bien que l'arrivée d'un son générait un signal d'interruption, mais j‘avais l'impression que le système se verrouillait ensuite : notamment le signal d'interruption restait actif alors qu'il aurait dû disparaître une fois l'interruption servie par le microprocesseur (dans une telle situation, la broche IOREQ change d'état pour indiquer à l'entourage du microprocesseur que l'interruption a été acceptée).

    De mes observations à l'oscillo, la porte NOR (Non Ou) 74LS02 en 6D semblait impliquée. Je l'ai dessoudé et remplacé par une neuve mais sans succès une fois encore ! :'(


    (ces 2 composants mis sur support s'avéraient donc un coup d'épée dans l'eau :'()

    Donc, pour ce qui est de se faire passer pour Colombo, là c'était plutôt l'inspecteur La Bavure !


    :D

    Me trouvant à cours d'idée, j'ai laissé passer quelques jours avant de m'y remettre.

    Puis me vint la réflexion suivante : pourquoi l'interruption ne semble pas pouvoir être servie ? Quand une interruption survint, pour que le processeur arrête ce qu'il est en train de faire pour aller servir l'interruption, il doit au préalable mettre en mémoire l'adresse de l'instruction qu'il devra exécuter en revenant de l'interruption. Cette adresse est stockée dans la « pile », c'est-à-dire en RAM. Et si la RAM était mauvaise, tout le système serait bien sûr en mauvaise posture, mais ne pourrait absolument pas revenir là où il était avant l'interruption => le système planterait assurément.

    Sans trop y croire, je tente le coup et dessoude les 2 RAM :


    (ces RAM contiennent chacune 1024 mots de 4 bits, soit à elles deux, 1 kilo octet ! ;))

    Et en met deux neuves sur supports :



    Nouveau test, et... ça marche !!  :-)=

    Après vérification, une seule des 2 RAM était défectueuse :).

    Voilà, super content que le son soit revenu ! Car un Gyruss sans son ni musique, ce n'est plus Gyruss !! :)

    Une petite partie s'impose !

    (ok, je le sais, je suis hyper nul à Gyruss ! :D)

    Il reste un petit problème vidéo dont je ne vous ai pas encore parlé : une des couleurs n'est pas la bonne :



    Normalement, le titre n'est composé que de tons de gris, or ici on a du vert :-\. Après vérification, j'ai exactement le même problème sur mon PCB, et j'ai trouvé des tas de témoignages similaires sur le net !

    Le problème est hyper simple à identifier et à corriger sur le papier, mais plus compliqué dans la pratique par le matériel que cela nécessite !... C'est ce dont je vous parlerai dans le prochain et dernier épisode :).

    A+
    « Modifié: Vendredi 10 Mai 2019, 17:18:54 pm par Little_Rabbit »
    Recherche bornes dédiées ou PCB originaux: Miss Pacman, Dig Dug, Galaga, Mappy, Asteroids, Battlezone, Missile Command, Tempest, Star Wars, Donkey Kong (+ Jr), Mario Bros, Moon Patrol, Defender, Joust, Frogger, Gyruss, Pooyan, Space Tactics, Zaxxon, etc. Flip : Gottlieb des années 80 (Spirit, Amazon Hunt, ...), Baby Pac Man. Divers :  Ice Cold Beer
    Trois fois rien quoi ! :D

    Hors ligne lencouet

    • ✌(◕‿◕)✌ Donateur 2019
    • Confirmé
    • *
    • Messages: 141
    • Localisation: Lot et Garonne
      • Voir le profil
    [WIP] PCB bootleg Gyruss
    « Réponse #13 le: Vendredi 10 Mai 2019, 07:25:50 am »
  •  :salut
    Une bonne chose  =:)) je me lasse pas de te lire
    Une petite question le bus de donnée c'est amélioré après le remplacement de la RAM?

    Hors ligne rygar

    • Grand Pilier
    • *
    • Messages: 851
    • Localisation: argentan
    • World record in progress...
      • Voir le profil
    [WIP] PCB bootleg Gyruss
    « Réponse #14 le: Vendredi 10 Mai 2019, 07:31:00 am »
  • Ça a l'air si simple mais compliqué à la fois ... en tous les cas j'adore, ça m'occupe bien de te lire au boulot, je passe le temps agréablement et je m'instruis un peu ...
    Milles merci mon Little  :-*

    Le démon des pannes n'a qu'à bien se tenir !!!!

    Hors ligne Little_Rabbit

    • ✌(◕‿◕)✌ Donateur 2019
    • Dieu de l' Arcade
    • *
    • Messages: 5133
    • Localisation: Nantes
    • The early 80's : the arcade golden age !!
      • Voir le profil
    [WIP] PCB bootleg Gyruss
    « Réponse #15 le: Vendredi 10 Mai 2019, 17:06:39 pm »
  • Salut,

    Une petite question le bus de donnée c'est amélioré après le remplacement de la RAM?

    Je crois que non, sans doute est-ce là l'allure classique d'un bus de données de Z80 :).


    Me voilà donc avec un PCB tout à fait fonctionnel, mais il y a cette histoire de palette qui ne semble pas conforme sur l'écran titre !



    Dans le cadre de ce WIP, j'ai fait pas mal de recherches sur le net et lu d'autres « repair logs » sur Gyruss, et j'en ai trouvé plusieurs qui avaient exactement le même problème de palette erronée !

    Sur mon PCB le problème étant également présent, j'en suis arrivé à la conclusion qu'il ne s'agit pas d'une panne à proprement parler, mais plus d'un défaut de fabrication de la part de l'entreprise qui fabriqua ce bootleg ! À moins que cela n'ait été intentionnel pour se couvrir un peu sur le plan juridique : « Ah bah non Monsieur le juge, vous voyez bien que ce n'est pas une copie du jeu dont vous me parlez, regardez, ce n'est pas de la même couleur ! :-\ »

    :D

    Je vous en avait parlé dans le premier épisode : la carte jeu possède plusieurs composants palettes. Celui qui nous intéresse est celui fixant la palette finale, situé en 2A sur le schéma :



    En quoi consiste ce composant palette ? C'est tout simplement une PROM ! Une PROM (pour Programmable Read Only Memory) est une mémoire morte programmable une seule fois (contrairement à une EPROM que l'on peut effacer aux UV et ensuite reprogrammer).

    Une PROM, aussi appelée « PROM à fusibles » consiste en une matrice de fusible de tungstène. Chaque fusible fixe l'état d'un bit de la mémoire.



    Quand la PROM sort d'usine, tous les fusibles sont intacts et donnent à chaque bit une valeur à 0 (contrairement à l'EPROM où un bit vierge est à 1). À l'aide d'un programmateur spécial, on vient adresser chaque bit, et lui appliquer un courant d'une intensité telle qu'on va griller le fusible dont le bit doit être à 1 ! En jargon d'électronicien, on parle de « claquer une PROM », sous entendu lui griller les fusibles une fois pour toute.

    Leur capacité mémoire est dérisoire face aux standards d'aujourd'hui. On a par exemple :
    - 256 mots de 4 bits (soit l'équivalent de 128 octets !...)
    - 32 mots de 8 bits (soit 32 octets)
    - 256 mots de 8 bits (soit 256 octets)

    Par contre leur temps de réponse est bien supérieur à celui des EPROM qui leurs sont contemporaines :
    - de l'ordre de 50 à 70 ns pour une PROM 82S129 par exemple
    - de l'ordre de 350 à 450 ns pour une EPROM 2716 !
    => une PROM est donc jusqu'à 7 fois plus rapide qu'une EPROM !

    La démarche est donc toute simple (vous allez voir :) !...), pour avoir la bonne palette, il suffit de programmer une nouvelle PROM !

    Mais deux obstacles viennent se dresser sur la route du wippeur de PCB :
    - les PROM sont des composants très anciens, il n'est pas toujours aisé d'en trouver
    - la très grande majorité des programmateurs d'EPROM modernes ne supportent plus du tout ces générations de composants :'(

    La quête de composants vierges est d'autant plus compliquée qu'ils ont des références complètement différentes selon le fabricant ! Quelque soit le fabricant d'un 74LS244, il porte toujours cette référence, ou une très proche. Mais dans le domaine des PROM, chacun fait à sa propre sauce :

    - 6301 = 82S129 = 63S14N, etc. => 256 x 4 bits
    - 6331 = 82S123 = 7051 = 7603 = 18S030 = 74S288 = 27S19AC, etc. => 32 x 8 bits
    - 6309 = 82S135 = 29601 = 18S22 = 74S471 = 27S23, etc. => 256 x 8 bits

    Pas simple de s'y retrouver, d'autant que certains vendeurs affichent telle référence, et en livre une autre !...

    Par chance, j'avais fait début 2018 une commande de composants chez Arcade Chips aux USA, et j'avais pris par précaution un assortiment de PROM !

    Par contre, mes programmateurs d'EPROM ne gèrent pas les PROM :'(, et pourtant j'en ai trois :

    1)   mon bon vieux programmateur OMIKRON sur ATARI ST ne supporte que quelques rares EPROM, des PROM ce n'est même pas la peine d'y penser :


    2)   mon VP-280 de chez Wellon ne fait aucune PROM non plus '-( :


    3)   et enfin j'avais quelques espoirs avec un 3ème dans mes cartons : le SEP-84 de chez Hi-Lo System. J'avais utilisé ce modèle professionnellement au début des années 90, et avais quelque espoir que cela puisse le faire, mais non, après vérification de la « device list », il fallait se résoudre au fait qu'il ne faisait pas les PROM :'( :


    Non, il faut d'une part un modèle professionnel, et ensuite qu'il soit « haut de gamme » pour supporter un maximum de composants. En modèle contemporain, comptez par exemple 600 EUR pour un GALEP-5 (et encore, il fait certaines PROM, mais pas toutes celles qui m'intéressent !)



    Avant de me résoudre à faire un tel investissement (j'étais aussi à l'époque convaincu que mon VP-280 était HS comme je vous le disais au début, donc j'y songeais sérieusement...), j'ai cherché autour de moi qui pourrait bien avoir un programmateur compatible à même de me programmer des PROM... J'ai demandé à Aje_fr, mais il n'en n'avait pas.

    J'en ai longuement discuté avec mikebrandt, et on envisageait d'acheter à 2 un « Xeltek SUPERPRO 6100 » d'occasion, ou encore une  copie Chinoise.



    Il fallait là aussi compter 700 EUR pour un modèle d'occaz, idem pour une copie (alors que l'original aux US coûte la bagatelle de $1795.00 !...). Et ces contrefaçons allaient-elles véritablement me programmer mes PROM ?...

    Mais mikebrant avait aussi un ALL-03 de chez Hi-Lo system. Toutefois sa carte d'interface était HS, et le programmateur n'avait jamais été testé depuis qu'il l'avait eu dans un lot de matos. Après quelques recherches, il s'avérait que la carte d'interface du ALL-03 était la même que celle du SEP-84 en ma possession ! ^-^ Je me suis donc rendu chez mikebrandt avec ma carte (et le câble, au cas où). On branche, on se familiarise avec l'appareil qui fonctionne sous DOS et une myriade de petits programmes dédiés à telle ou telle famille de composants. 1er essai infructueux, 2nd idem, 3ème... et on finit par sentir une odeur de cramé ! :-\ On arrête tout, on ouvre le ALL-03 et on trouve un transistor qui se balade au fond du boîtier... Bon, ce n'est pas gagné : il va falloir wipper le programmateur avant d'espérer wipper mon PCB !

    En parallèle de tous ces essais, j'en avais parlé à spectro qui m'avait dit « Ah mais je dois avoir un ALL-07 – encore un modèle de chez Hi-Lo system – au fond d'un carton que je n'utilise pas, je peux te le filer ! ». Le ALL-07 était autrefois le haut de gamme de chez Hi-Lo System, et il faisait bien sûr les PROM qui m'intéressaient ! Ho ho ho, ce serait trop beau !! J'accepte donc la généreuse proposition de Spectro.

    Un peu plus tard je reçois un joli colis aux odeurs d'alcool anisé (non je déconne :D). J'ouvre fébrilement le colis :
    - Ohhh,un joli carton de ALL-07 ! ^-^
    - Ahhh, mais dedans ce n'est pas un ALL-07, mais un ALL-03 :-\
    - Ahhh, mais ce n'est pas le bon câble :-\
    - Ahhh, mais le CD ne contient pas le logiciel du ALL-03 :-\
    - Ahh, mais ce n'est pas le bon manuel
    - Et un peu plus tard, après un premier essai, je m'aperçu que  « Ahh, mais la carte d'interface est en panne !... »

     :-[

    Petite déconvenue sur le coup ! :D

    Mais il en faut plus pour me décourager ! ;)

    Autre obstacle à surmonter, ces programmateurs fonctionnent associés à un PC. Et vu l'âge de ces bestiaux (années 90), leur carte d'interface est au format ISA !... Or les PC ne sont plus équipés de bus ISA depuis plus de 20 ans je pense. Il faut donc commencer par trouver un vieux PC qui pourrait faire l'affaire. J'avais d'abord pensé à un joli spécimen de ma collection, un Amstrad ALT-286 :



    Stocké depuis des années, jamais testé, pouvait-il seulement fonctionner ? Oui ! Même le disque dur fonctionne et boote sous DOS ^-^. Petit bémol, son lecteur de disquette refuse de lire tout autre disquette que les siennes, et refuse également d'en formater une nouvelle :'(. Bah oui, n'oubliez pas qu'à l'époque les clefs USB n'existaient pas, ces bécanes n'avaient pas de carte réseau, donc les échanges de données devaient souvent se faire par disquette !... Me voici à nouveau dans une impasse :'(.

    Autre piste, j'ai un vieux PC Gateway 2000, à base de Pentium 133, une grande tour qui date de 1995 environ.



    Bon candidat ! ^- Je sors la bête de sa réserve (putain, j'avais oublié le poids que faisaient les bécanes à l'époque ! :-\). Branchement, mise en route, et... le disque dur est mort !   >:(

    Bon, ne désespérons pas ! :D Je surfe sur quelques sites d'archives et parvient à me faire des disquettes de boot MS-DOS, et pour plus de confort, j'achète un adaptateur Compact-Flash IDE qui remplacera avantageusement l'ancien disque dur HS ! :)

    Me voici avec un PC à bus ISA, sous MS-DOS 6.2, fin prêt à en découdre avec ces PROM ! Dans l'énumération que j'avais faite un peu plus haut, listant tout ce qui ne correspondait pas à ce que je m'attendais recevoir de spectro, ce n'était en réalité pas si catastrophique que ça car :

    - le câble nécessaire au ALL-03 est le même que celui de mon SEP-84 !
    - j'ai pu télécharger depuis un site le soft et le manuel du ALL03

    J'installe donc la carte ISA dans un slot ISA, j'installe le soft, je branche le programmateur ALL-03,



    je lance le soft, et... s'affiche un truc du genre « Communication error, interface card not detected ! »  :(

    Je vérifie les DIP Switch qui fixent l'adresse de la dite carte, et qui doit correspondre à celle paramétrée dans le soft, mais non, tout est censé être bon. Comme évoqué un peu plus haut, il fallait finir par admettre que la carte d'interface fournie avec le programmateur était HS :'(.

    Mais par chance, la carte équipant mon SEP-84 était identique, et cela allait pourvoir marcher non ?  :?

    Ne soyons pas trop optimiste, allons-y par étapes :
    - commençons par une chose basique et maîtrisée : programmons une EPROM 27C2001 => ça marche !  ^-
    - j'essaye ensuite la fameuse PROM 82S123 qui m'intéressait ici => erreur de programmation, dès le premier octet ! :'(
    - ensuite je tente le coup avec une PROM 82S129 => la programmation démarre... les 1er octets sont programmés, puis échec au 16ème octet ! :( Plusieurs essais se soldèrent par le même échec toujours au 16ème octet :'(
    - puis j'essayai de programmer une PROM 82S135 dont j'avais besoin pour réparer une carte contrôleur de disquette d'un Apple //e :) => programmation en cours, et... ça fonctionne ! ^-^ Ouf, se programmateur serait donc bien fonctionnel pour les PROM !
    - j'ai ensuite essayé la programmation d'un second 82S129, identique à celui qui échouait au 16ème octet un peu plus haut => ça marche aussi ! :-*

    Par contre, toutes mes tentatives de programmation des 82S123 dont j'avais besoin pour la palette finale de Gyruss ne passaient pas :'(. Ils venaient de chez Arcade Chips, et étaient de la marque Intersil, référence IM5610CPE en réalité.



    Il est vrai que ce modèle ne figure pas dans la « device list » du ALL-03. Peut être ce modèle de PROM est-il fonctionnellement parlant identique à une PROM 82S123, mais requiert pour sa programmation des spécifications électriques différentes ?... Ou bien mes exemplaires sont HS.

    Je disais plus haut qu'il n'était pas aisé de trouver des PROM à acheter, mais par chance ils en ont à présent chez E44 ! J'y fais un saut et achète quelques 82S123.

    Survint ensuite une longue période de travaux de parquet dans la maison qui fit que je n'avais plus d'atelier. Un mois après les avoir achetés, j'allais enfin pouvoir les tester ! J'ouvre le sachet, regarde de près les composants, vais même prendre une loupe :

     :-X ??

    Le vendeur s'est trompé et m'a refilé un 82S23, c'est-à-dire le modèle collecteur ouvert au lieu du 82S123 !  :-((

    Je suis bon pour retourner chez E44, et 16 km à vélo plus tard (oui, je veille au bilan carbone de mes WIP et vais acheter mes composants à vélo ! :D), me voici enfin en possession du précieux composant tant attendu !

    Je le place sur le ALL-03,


    lance la programmation, et...



    ça marche !!! ^-^ Vous rendez-vous compte :pas moins de 32 octets de programmés !!! :D

    Je place le composant sur le PCB et le mets sous tension.

    Taaadhaaa :



     :-)=  :-)=


    Vous devez penser que je rallonge la sauce, que j'en fais des tonnes, etc. Certes, j'aurais pu résumer tout cela par un « J'ai bien galéré ! », mais je vous assure que tout s'est déroulé comme ça ! Il y a parfois comme ça une accumulation d'obstacles sans fin qui font qu'on croit que cela n'aboutira jamais :). Entre le moment où je me suis dit "Bon, facile, je remplace la PROM !" et le moment où j'y suis vraiment parvenu, il s'est écoulé plus de 4 mois ! Mais à présent je suis équipé, et cela ne m'a rien coûté ou presque : j'adresse à nouveau mes chaleureux remerciements à spectroman pour son cadeau ! :-*

    Bilan de cette réparation : bien des péripéties pour finalement ne remplacer que très peu de composants :



    - une RAM
    - une PROM
    - et quelques condensateurs électrochimiques (pour la forme, n'était pas indispensable)

    Ah j'oubliais, il aura fallu aussi une bonne dose de persévérance, l'ingrédient finalement le plus indispensable à ces WIP ;).

    Voilà, houpela va pouvoir récupérer son PCB et nous faire j'espère un beau WIP de sa borne ! ;)

    Merci à ceux qui auront pris le temps de lire ces longueurs (inutiles, je sais) :).

    A+
    « Modifié: Dimanche 12 Mai 2019, 16:21:23 pm par Little_Rabbit »
    Recherche bornes dédiées ou PCB originaux: Miss Pacman, Dig Dug, Galaga, Mappy, Asteroids, Battlezone, Missile Command, Tempest, Star Wars, Donkey Kong (+ Jr), Mario Bros, Moon Patrol, Defender, Joust, Frogger, Gyruss, Pooyan, Space Tactics, Zaxxon, etc. Flip : Gottlieb des années 80 (Spirit, Amazon Hunt, ...), Baby Pac Man. Divers :  Ice Cold Beer
    Trois fois rien quoi ! :D