Quelques personnes ont réalisés des scans et partagés des créations originales d'étiquettes sur les forums que j'ai visité pour construire tout ça.
Il y a des étiquettes à coller sur les EEPROMS et des étiquettes de tranche de cartouche pour identifier les jeux.
J'ai rassemblé toutes celles qui me plaisaient bien pour en faire une planche A4 (en annexe à ce billet), imprimée sur un papier spécial étiquette.
L'encre est censée résister aux rayures sur ce papier, mais j'ai pu constater sur les petites étiquettes que ce n'était pas si évident. J'ai donc apposé un film transparent autocollant sur les étiquettes de tranche afin de les protéger. Quant aux petites, il était trop tard pour cela.
J'en ai aussi imprimé sur papier standard pour évaluation, en les disposants ainsi sans collage, car je ne parviens pas à me décider ^^;
Je vous laisse avec une galerie de photo des cartouches, qui montre un peu comment elles sont construites.
J'évoquais dans le premier billet de la série IGS−PGM le petit soucis que provoquait l'utilisation de cette machine sur un écran de téléviseur plutôt que sur un écran d'arcade.
L'image est trop à gauche, et présente une bande verticale noire sur la droite de l'écran, et ce malgré le maximum des possibilités de réglages du TV.
Et effectivement en recherchant sur le sujet, on fini par trouver de l'info fiable et des produits proposants des solutions au problème, par exemple avec cette Carte de positionnement image pour écran tv.
Il y a une vidéo de démo bienvenue où tout est bien expliqué :
Mais comment ça marche !??
On trouve des photos et analyses d'objets de ce type chez retrorgb, pour constater que les références de composants sont caviardées pour rendre impossible leur identification… Pratique qui m'agace toujours très fortement.
Et si on recherche sur des sites marchands asiatiques, même constat… Quel est donc ce secret qu'on s'acharne à si bien garder ??
En étudiant ces circuits on fini par comprendre que le concept de ce type de montage est relativement simple.
Il consiste à déphaser le signal de synchronisation horizontal.
Imaginons qu'on ait une image bien cadrée sur l'écran,
Théoriquement un déphasage de π du signal de synchro déplacerait l'image vers la droite sur une moitié de l'écran, c'est à dire qu'on aurait une moitié gauche noire et la moitié droite avec l'image.
Un déphasage de 2π, reviendrait enfin à replacer l'image au complet dans le cadre, puisqu'elle aurait fait le tour de l'écran, l'image réapparaissant par la gauche du cadre.
Pour résumer, il y a deux cas de figures qui vont nous intéresser :
− La vidéo contenue dans un seul câble (les couleurs + les deux synchro, tout mélangées), qu'on appelle le Composite.
− La vidéo contenue dans trois câbles (rouge, vert, bleu) et un câble de synchro (horizontal + vertical mélangé), donc qu'on nomme communément le RGB, mais devrait-on préciser, le RGB + C−Sync.
C−Sync désignant le mélange de H−Sync et V−Sync, respectivement signal de synchronisation horizontal et vertical.
En effet, le système IGS−PGM fonctionne en RGB + C−Sync, ainsi que quasiment toutes les consoles 8 et 16 bits sorties en Europe : snes, master system, megadrive, pc engine (sodipeng). Et aussi la gamecube et le PC d'émulation Mame. Certaines machines fonctionnent aussi en Composite, c'est le cas pour : snes, gamecube, pc engine (en NTSC).
J'ai donc réalisé un premier circuit pour expérimenter et comprendre la chose.
Nous allons l'analyser et décrire son fonctionnement.
J'ai ensuite eu d'autres ambitions, que je détaillerais dans cette série d'articles.
L'idée étant de concevoir mon propre circuit de décalage de l'image − le Décapotes − pour aller sur ma Péritel multiple où j'ai prévu un emplacement pour une carte fille de traitement du signal. Ce qui permettra donc de recaler non seulement le système IGS-PGM (qui à la base motive tout ça), mais aussi toutes les consoles qui passeront par ce bloc multi−péritel.
Un premier circuit d'essais :
Je me suis donc basé le rgbshifter dont je parlais plus haut, et l'ai modifié dans l'intention de pouvoir décaler l'image horizontalement, mais aussi verticalement.
Principe de fonctionnement :
− Le signal de synchro C−Sync provenant de l'IGS−PGM entre dans l'étage séparation des signaux basé sur un LM1881.
− Puis deux monostables U18A et U18B vont traiter C−Sync en sortie du LM1881 afin de le déphaser, ce qui décalera l'image horizontalement par rapport au cadre de l'écran de TV.
− Deux autres monostables U17A et U17B vont traiter V−Sync en sortie du LM1881, ce qui décalera l'image verticalement.
− Enfin, deux portes NAND sont chargées de ré−assembler les deux signaux afin de recréer le C−Sync qui sera envoyé à la péritel.
Fluffy a prévu la possibilité de pouvoir jouer aussi au « mode arrange » (à priori un mode de jeu non officiel bricolé par un bidouilleur).
On utilisera un petit interrupteur branché sur le cavalier « JP2 » pour l'activer, suivit d'un reset du système IGS−PGM.
Il faut à nouveau souder 2 cartes ! Pas de photos à exposer, c'est la même chose que montré dans le billet précédent…
La programmation :
1 − Extraire les binaires pour les EEPROM 27c322 :
Télécharger sur le net la rom mame avec la mention « BL », ici : ketbl.zip
À priori celle-ci devrait peser 22,1 Mio (23240460 octets)
À l'aide du script python rom_gen.py qu'on aura pris soins d'extraire préalablement, exécuter :
python3 rom_gen.py ketbl.zip
Qui va générer le dossier « ketsui_rg » contenant les binaires à flasher sur les puces. (le dossier « bios_rg » n'est pas utile)
Qui va générer dans le dossier « ketsui_rg » le fichier « ketsui_p1_trap.bin ».
Utiliser le fichier « ketsui_p1_trap.bin » à la place du fichier « ketsui_p1.bin » précédemment généré par la rom, permet d'utiliser le cavalier « JP2 » pour activer le « mode arrange ».
2 − Programmer les EEPROM 27c322 :
Se référer au billet précédent pour plus de détails sur la procédure de programmation et obtenir l'archive de scripts.
3 − Placer les EEPROM 27c322 sur les PCB :
Se référer pour cela aux sérigraphies, et faire attention au sens d'orientation des puces !
4 − Programmer la GAL : ATF16V8B qui va en position U6 :
Écrire le fichier PGM-RG-U6.jed.
5 − Programmer la GAL : ATF16V8B qui va en position U5 :
Écrire le fichier PGM_RG_U5_ESP.jed. Oui c'est le même fichier que ESPgaluda pour Ketsui.
NB :JP2 permet de sélectionner la ROM normale ou la rom Arrange 1.7 : Sans cavalier > Jeu original et Avec cavalier > mode Arrange.
Mise en cartouche et tests :
Pour que ce soit donc plus pratique, j'ai collé un micro-switch à l'intérieur de la cartouche, relié aux « pins headers » de JP2. On peut le basculer de l'extérieur, alors que la cartouche est insérée dans le système de jeu, à l'aide d'un truc fin comme un cure-dents.
Dans la vidéo, d'abord le mode normal, puis j'ai basculé le micro-switch avant de faire le reset pour redémarrer le système et montrer le « mode arrange » :
On reprend le travail, ici avec le jeu Dodonpachi Dai-ou-jou, appelé aussi Dodonpachi 3.
Ce jeu a la particularité, comme d'autre jeux édités par CAVE d'exister en deux versions. L'habitude chez cet éditeur c'est qu'à la sortie d'un jeu, il s'appelle simplement par son nom, et quelques temps plus tard il peut arriver que le jeu ressorte en version « Black Label ». Celle-ci venant améliorer le gameplay et en revoir la difficulté par exemple. La version du jeu précédente est alors re-nommée « White Label ».
Nous allons construire la version du jeu qui contient la White et la Black label, nommés simplement « Version-A (Old) » et « Version-B (New) » depuis le tableau d'accueil proposé dans la rom spécifique.
Mais d'abord, il faut souder les 2 cartes ! Cette fois-ci j'ai quelques photos…