Gamoover

Si vous êtes nouveau, n'hésitez pas à vous présenter ici et à poser toutes vos questions, meme si elles vous paraissent ridicules... Gamoover regroupe une communauté de passionnés prêts à vous aider ! Bienvenue à vous ;)

Adaptateur 16bit GQ-4x + Lecture maskroms Toshiba TC5332024AP/TC5364205AP

Démarré par Ptchnk, Lundi 15 Février 2021, 22:03:46 PM

Ptchnk

Ayant quelques jeux MVS à réparer, j'ai besoin de tester les maskroms Toshiba TC5332024AP et TC5364205AP qui n'ont pas d'équivalent en eproms DIP42.

J'avais trouvé sur le net les procédures pour lire ces maskroms en plusieurs fois avec mon valeureux GQ-4X. C'est fastidieux mais ça fait le job.

EDIT: je remets ci-dessous les procédures trouvées sur le net pour la lecture indirecte des TC5332204AP et TC5364205AP

Pour lire les TC5332204AP (cf pinout de la TC5332205AP ci-dessous qui est identique):
1- Relever la pin 30 (Q15) et la relier avec un fil au +5V (pin 22). Lire en tant que M27C322 et sauvergarder en tant que odd.bin. (lecture des octets impairs seulement)
2- Relier  la pin 30 (Q15) avec un fil au GND (pin 12 ou 31). Lire en tant que M27C322 et sauvergarder en tant que even.bin. (lecture des octets pairs seulement)
3- utiliser un programme pour éliminer les 00/FF des 2 fichiers, ici romwak:
       - 'romwak_x64.exe /b odd.bin split1 split2'  (split1 contient les octets impairs et split2 seulement des 00/FF)
       - 'romwak_x64.exe /b even.bin split3 split4' (split3 contient les octets pairs et split4 seulement des 00/FF)
4- utiliser un programme pour reconstruire la rom à partir des fichiers contenant les octets pairs et impairs ci-dessus:
       - 'romwak_x64.exe /m split3 split1 fullrom.bin'

Alternative: Créer 2 fichiers octets pairs et octets impairs à partir du romset du jeu pour vérifier directement les maskroms sur le programmateur:
1- Utiliser romwak sur une rom V pour séparer les octets pairs et impairs:
      - 'romwak_x64.exe /b NGH-Vx.Vx even.bin odd.bin.'
2- Insérer un bit vide 00/FF pour compléter les fichiers à 4Mo. Ici, le fichier blank-2Mo.bin ne contient que des FF.
     - 'romwak_x64.exe /m even.bin blank-2Mo.bin Vx-even.bin'
     - 'romwak_x64.exe /m odd.bin blank-2Mo.bin Vx-odd.bin'
3- Relever la pin 30 (Q15) et la relier avec un fil au +5V (pin 22). Lire en tant que M27C322 et vérifier le contenu avec le fichier Vx-odd.bin.
4- Relier  la pin 30 (Q15) avec un fil au GND (pin 12 ou 31). Lire en tant que M27C322 et vérifier le contenu avec le fichier Vx-odd.bin.

Pour lire les TC5364205AP (cf pinout ci-dessous):
1- Relever la pin 11 (A21) et la relier avec un fil au GND (pins 12 ou 31) et lire en tant que 27C322.
2- Puis, relier la pin 11 (A21) au +5V (pin 22) et lire en tant que 27C322.
3- Puis concaténer les deux moitiés en utilisant le commande 'copy /b read1.bin + read2.bin read.bin'



Mais c'est le bordel pour faire les shunts quand il y a plusieurs maskrom à tester.

Du coup j'ai commencé à bosser sur un adaptateur 16bit incluant les shunts en question sous forme de jumpers pour lire les TC5364205AP et les TC5332204AP

Le but est de pouvoir lire et programmer les 27C1024/4096/400/800/160/322 et Maskroms équivalentes comme sur l'adaptateur ADP-054 classique.

Puis en jouant sur les jumpers, on peut lire les bits pairs ou impairs sur les TC5332204AP (8bit - 32Mo) utilisées pour les V-roms ou encore lire les TC5364205AP (16bit - 64Mo) en 2 fois (1ère et 2ème moitié) en utilisant une 27C322 comme modèle sur le programmateur. Plus besoin de s'emmerder avec les shunts etc...

Donc voici la v1.0 du NEO-DOCTOR pour GQ-4X. Pour les Willem et GQ-2X/3X, il suffit de monter les 8 pins du haut au niveau du connecteur qui va sur la programmateur afin de pouvoir raccorder les pins au BUS du programmateur

Le fichier est dispo ici



Je suis en train de regarder pour améliorer un peu le truc. Je pense avoir trouvé pour lire en une seule fois les TC5364205AP et je cherche pour voir si c'est possible de la faire pour les TC5332204AP (plus galère).

Enfin, je voudrais aussi ajouter la possibilité de programmer de PSOP44 type MX29L3211 ou équivalent en 64Mo montée du adaptateur DIP44 pour les réparation sans avoir à investir dans de multiples adaptateurs. Surtout qu'il n'en existe pas pour les 64Mo pour le GQ-4X même si il doit pouvoir le faire d'après les specs.


EDIT: La lecture des TC5364205AP est assez simple en fait sur le GQ-4X. Je viens de faire un test sur mon vieil adaptateur 16bit. En relevant la pin 11 et en la renvoyant sur le pin A22 du ZIF du programmateur. C'est à priori valable aussi pour les Willem et GQ-2X/3X via le BUS du programmateur sur lequel sont déjà renvoyés A19 et A20 pour l'adaptateur 16bit

Pour le "device", il suffit de créer un nouveau modèle sur la base de celui pour les 27C322 et de juste doubler la taille de la rom comme si dessous.

Name="27C322",ID="XXXX",Class="27C322",Category="EPROM",MFG="ALL(Generic)",CodeSize="4194304",Adapter="ADP-054, ADP-055 16 BIT EPROM ADAPTER";

Name="TC5364205AP",ID="XXXX",Class="27C322",Category="EPROM",MFG="ALL(Generic)",CodeSize="8388608",Adapter="ADP-054, ADP-055 16 BIT EPROM ADAPTER";

La modif est déjà faite sur la v1.5 de la carte en cours

Ptchnk

#1
J'ai mis à jour les fichiers en ligne (Annotations, instructions, etc...).

J'ai également ajouté la version v1.5 de l'adaptateur 16bit qui permet de lire directement les TC5364205AP après avoir créé le modèle quand le fichier 'devices.txt"

Tout est ICI

tilowil

Bonjour,

Voila un projet très interessant. Je le suis car je pense qu'un jour il me sera utile. Il faut juste que je relise tout à tête reposée.

^-^ ^-^ ^-^  :-*

A+

Ptchnk

Je pense avoir trouver comment désactiver la gestion 16bit de l'adaptateur pour pouvoir récupérer les données des TC5332204AP en une lecture.

Le BC547 sert de switch sur la carte pour activer/désactiver alternativement les 74HC245. Quand la pin OE de celui qui gère les données D0/D8 est à l'état bas, il est activé et le BC547 maintient l'OE de l'autre 74HC245 et le désactive donc. Et inversement.

Du coup, il suffirait de mettre la pin OE du premier à la masse pour l'activer et désactiver l'autre de façon permanente (le temps d'une lecture s'entend). Le A0 du programmateur servira alors à piloter le mode de transmission 8bit de la rom via la pin 30 (Q15 A-1).

Je devrais pouvoir tester ça assez facilement sur mon vieil adaptateur 16bit pour voir si cela fonctionne. Les modifs sur la carte en cours serait minime (re-routage d'une piste de J3 et affectation de J4 pour bloquer les transmetteurs).


Fred G5

Intéressant, j'ai un GQ4X et cela pourrait bien me servir un jour 

Merci pour le partage  ^-
Flipper: DE "Laser War"- WMS "F14-Tomcat"- GTB " Hollywood Heat" - Bally "Black Pyramid"
Borne: Konami "Lethal Enforcers" - New Game "N'Styl"- René Pierre 1982 - Jeutel Neo Geo 16/9 - Simulateur Twin Konami "Midnight Run Road Fighter 2"
Jeu/Système de jeu: 53 PCB Jamma, 7 cartouches MVS, slot Neo-Geo MV-1T, MV-2F, MV-4F, MV-6F
Console: Nintendo SNES 2CHIP, SNES 1CHIP-02 + 43 jeux

sushy18

si j'ai bien compris je vais pouvoir lire avec mon GQ4X et ce pcb ma rom  TBM 27C4096 de mon bootleg de Ms PACMAN/PACMAN et GLALGA3 ????
et y remettre les bonnes versions des roms ??? :-)= :-)= :-)=

en fait je serais incapable de le faire... :D :'( meme si j'ai le matos....


l'incompétence est un fléau....
Si tu ne sais pas demande, si tu sais partage !!
Faudrait pas perdre de vue qu'une borne d'arcade c'est pas une console, c'est rarement plug n play, plus souvent plug n pschitt... (Funkycochise 2008)
"Gratuit ? C'est déjà trop cher !!" ( Crying Freeman 2016)

Ptchnk

Bonne nouvelle, ça fonctionne comme prévu. J'ai réussi à faire une adaptateur 8bit pour un programmateur 8bit   ;D

Il lit bien les V de 32Mbit en un passage avec comme modèle une 27C322, donc pratique pour les vérifications à la volée  ^-

Ca permet surtout de profiter du routage de l'adaptateur pour le lecture des TC5332204. Toujours 4 jumpers, J3 sert à envoyer le A0 sur le pin 30 (A-1) pour gérer le mode 8bit et J4 met le OE du premier 74HC245 à la masse (activation permanente)

J'ai mis le fichier en ligne et en ai profité pour compléter les annotations sur la carte. C'est ICI


Ptchnk

#7
La version 3 pour lire et programmer les MX29L3211 et MX26L3220/6420/12811 en PSOP44 sur support DIP est en cours, le routage et les jumpers sont déjà en place mais je dois encore voir si il faut rajouter des composants pour le gestion de la lecture et écriture de ses puces donc je ne sais pas encore si cela sera possible. De plus, le GQ-4x peut déjà programmer les MX29L3211 avec un autre adaptateur mais les MX26LXXX ne sont pas implémentés même si le programmateur devrait pouvoir les gérer. Donc je dois d'abord voir ce qu'il est possible de faire.

Du coup, je vais commander une série de PCB (10) pour le v2 qui peut lire directement les TC5332204AP et TC5364205AP pour tester la carte et parce que j'en ai besoin pour réparer un jeu.

Si cela intéresse du monde, dites le moi.

Fred G5

Beau travail.  ^-

Un PCB vierge peut m'intéresser, même si pas forcément besoin dans l'immédiat, je suis sûr qu'un de ces jours ça servira.
Flipper: DE "Laser War"- WMS "F14-Tomcat"- GTB " Hollywood Heat" - Bally "Black Pyramid"
Borne: Konami "Lethal Enforcers" - New Game "N'Styl"- René Pierre 1982 - Jeutel Neo Geo 16/9 - Simulateur Twin Konami "Midnight Run Road Fighter 2"
Jeu/Système de jeu: 53 PCB Jamma, 7 cartouches MVS, slot Neo-Geo MV-1T, MV-2F, MV-4F, MV-6F
Console: Nintendo SNES 2CHIP, SNES 1CHIP-02 + 43 jeux

Little_Rabbit

Salut,

Intéressant comme projet !  ^-

Je ne connais pas bien ces EPROM 16 bits, mais en lisant en diagonal tes explications, j'avais un peu de mal à te suivre. Je pense que tu fais la confusion entre "bits" et "bytes" non ? :)

1 bit (en français) = 1 bit (en anglais)

1 octet (en français), c'est à dire 8 bits = 1 byte (en anglais)

Sur une bécane avec bus de données 16 bits comme le sont les systèmes architecturés autour d'un 68000, on peut séparer les données 16 bits en 2 paquets de données 8 bits, en lisant les octets aux adresses paires (even bytes) et les octets aux adresses impaires (odd bytes).

Plus haut du dis lire tantôt les bits pairs, et tantôt les bits impairs : on est d'accord que c'est en fait tantôt les octets pairs (c'est à dire situés à des adresses paires), et tantôt les octets impairs (c'est à dire situés à des adresses impaires) ? :)

Pour qu'on comprenne mieux ton exposé, il serait intéressant que tu nous mettes le schéma de principe plutôt que le routage du PCB ;).

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
Ma séance sur le divan : c'est grave Docteur ? :-\
Ma gaming room, ma storage room

Ptchnk

Yep tu as raison pour la confusion bits/bytes. Je vais corrigé ça.

Pour l'adaptateur, j'ai repris celui déjà disponible à base de 2 74HC245 (transciever, je ne suis pas sur de l'équivalent en français) pour renvoyer les données 16bit de l'eprom par paquets en 8bit comme tu le mentionnes. J'ai juste rajouté des jumpers et pistes pour pouvoir lire quelques maskroms en plus non gérées d'origine.

Je n'ai pas le schéma de la v2 car j'ai refait le routage des pistes directement sur le PCB par rapport à la V1 ci-dessous.


Ptchnk

 J'ai regarder un peu pour le routage pour rajouter la gestion d'eprom flash en boitier PSOP44, cela pourrait fonctionner avec une config à 5 ou 6 jumpers (le dernier ne servant que pour les 26L12811). Il faudrait que les PSOP soient déjà montées sur support DIP44 avec les diodes pour la conversion de tension et alimenter la carte en 5V (pour le bon fonctionnement des 74HC).

Maintenant, faut combiner tout ça pour avoir une borne de jumpers propre et surtout voir comment définir le modèle pour les 26LXXX.

Je me suis basé sur les adaptateurs PSOP44 vers DIP pour le GQ-4X qui gèrent les MX29L3211. Par contre pour les MX26LXXX, la lecture devrait être OK mais je ne sais pas trop comment gérer l'écriture. Pour l'instant, je suis parti de ce qui est fait pour l'adaptateur existant (gestion du WE de l'eeprom par le CE du programmateur en passant par une resistance de 50-100ohms).

Les positions de pins associées aux jumpers J1à6 dans le tableau sont données pour une empreinte à 44 pins.

Ptchnk

J'ai reçu les cartes de la V2 ce soir mais il me manquait un peu de pièces pour tester que tout est OK. Je verrai ça demain :)

La rouge est juste un adaptateur RVBS avec connecteur pour les boutons 4/5/6 et les boutons test et service pour ma borne équiper d'une chassis TV.


Ptchnk

Montage terminé et carte testée OK en lecture sur différentes maskroms neogeo du bios au 64Mb et 32Mb en 8bit ou 16bit.

Cela fonctionne. Juste une petite coquille de routage sur J4 avec une inversion de pin. Cela ne change rien pour le position 1, mais pour la position 2, faut relier les pins 1 et 3 du bornier pour que cela fonction car le pin aurait due être au centre est en position 1 :(. C'est pas dramatique et c'est corrigé sur le version en ligne.

Faut que je prenne le temps de tester en programmation sur quelques eproms.

Enfin, c'est tout de même bien pratique de pouvoir vérifier les C roms de 64Mb et les V roms de 32 Mb aussi simplement :)

J'ai presque tous les bouts pour tester la prochaine étape avec les 26L6420... manque juste le ZIF sop44 qui est en route.


Fred G5

Flipper: DE "Laser War"- WMS "F14-Tomcat"- GTB " Hollywood Heat" - Bally "Black Pyramid"
Borne: Konami "Lethal Enforcers" - New Game "N'Styl"- René Pierre 1982 - Jeutel Neo Geo 16/9 - Simulateur Twin Konami "Midnight Run Road Fighter 2"
Jeu/Système de jeu: 53 PCB Jamma, 7 cartouches MVS, slot Neo-Geo MV-1T, MV-2F, MV-4F, MV-6F
Console: Nintendo SNES 2CHIP, SNES 1CHIP-02 + 43 jeux

ldindon

J'ai une question peut-être complètement stupide mais je tente quand même:

Est-ce qu'il serait possible de tester une maskrom TC5332204AP en la lisant en tant que M27C322 MAIS en mode 16 bits, puis de comparer le binaire obtenu avec celui d'une autre TC5332204AP elle aussi dumpée en mode 16 bits ?