Mot-clé - Vidéos

Fil des entrées - Fil des commentaires

Décapotes -02-, circuit de positionnement d'image pour écran TV

Suite de la conception précédente :

Le premier circuit ayant donc montré ses limites et défauts, nous allons ici tenter de les corriger.

Un deuxième circuit d'essais :

  • À force d'expérimentations, j'ai fini par aboutir à ce schéma :


Ce circuit fonctionne relativement bien, mais avant de tirer les conclusions (oui je ne suis pas un politique ou un journaleux qui tire les conséquences, faut arrêter avec ça !), regardons comment il fonctionne, car encore une fois, ce sera salutaire pour la suite à donner.

  • Nous avons donc à nouveau l'étage de séparation de synchro basé sur le circuit intégré LM1881, nécessaire pour récupérer le signal V−Sync.

Cet étage est cette fois connecté à des PLL (boucle à verrouillage de phase) CD4046, le type de montage à système bouclé dont la théorie me donnait des sueurs froides à l'école… Mais bon c'est plus facile à expérimenter… un peu.

  • La PLL est ici employée afin de générer un signal carré d'une fréquence égale au signal d'entrée. Une fois la fréquence « accrochée » par le VCO (oscillateur contrôlé en tension), led témoin allumée par l'entremise du potentiomètre, ce système bouclé va nous permettre de déphaser le signal carré en continuant de jouer du potentiomètre. La limite étant le décrochage du VCO au delà d'une certaine plage de fonctionnement où l'on perd alors la fréquence.

Les composants R1, R2 et C1 sont donc calculés et vérifiés expérimentalement pour offrir la plage de fonctionnement la plus large possible sans décrocher de la fréquence d'entrée.
Pour H−Sync et ses 15,625 kHz, R1 = 100 kΩ, R2 = 100 kΩ, C1 = 1 nF.
Pour V−Sync et ses 59 Hz, R1 = 8,2 kΩ, R2 = 18 kΩ, C1 = 1 µF.

  • Voici une démo vidéo de la phase d'accrochage de la PLL, avec le signal zoomé sur V−Sync, on regarde la sortie 3 du CD4046.

On prend soin d'observer attentivement la valeur de fréquence affichée en bleu sur l'oscilloscope, ainsi que la réaction de la led.

  • La sortie de chaque PLL est ensuite envoyé à un monostable, pour, comme nous l'avons étudié précédemment, générer une impulsion de largeur fixée grâce au potentiomètre associé.

Voyons cela avec des oscillogrammes :

  • Ici nous voyons le déphasage obtenu pour H−Sync. Le signal C−Sync (en jaune), la sortie 3 de la PLL (en bleu), et la sortie Q7 du monostable (en vert) qui déclenche son impulsion sur le front montant du signal de sortie du CD4046.


  • Et de la même manière, nous voyons le déphasage obtenu pour V−Sync. Le signal V−Sync (en jaune), la sortie 3 de la PLL (en bleu), et la sortie Q9 du monostable (en vert).


Lire la suite

Décapotes -01-, circuit de positionnement d'image pour écran TV

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 ??

Étudions la chose…
Une fois trouvé le bon mot clef, rgb shifter, on commence à tomber sur des choses intéressantes, comme sur ce site présentant un montage censé permettre de décaler l'image horizontalement : https://playoffline.wordpress.com/cable/rgbshifter/
Et concomitamment, un forum où les membres s'organisent pour réaliser le montage, ici non plus via le standard Jamma, mais en Péritel : https://circuit-board.de/forum/index.php/Thread/15207-RGB-Shifter/

  • 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.

L'occasion de consulter quelques ressources sur le signal vidéo :
http://f5ad.free.fr/ATV-QSP_F5AD_Le_signal_video.htm
http://tvandco.free.fr/tpe-tvandco/4/4-signal-synchronisation.html
https://www.nutsvolts.com/magazine/article/video_basics
https://www.analog.com/en/resources/technical-articles/understanding-analog-video-signals.html
https://www.retrogamingcables.co.uk/composite-video-vs-composite-sync

  • 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.


Lire la suite

IGS−PGM - Cartouche de jeu DIY N°3

Suite de l'aventure précédente :

  • On termine le travail, ici avec le jeu Ketsui.

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)

  • Exécuter ensuite :
python3 rom_gen.py -b pgm_bios_single_pcb_vxxxJP.u42 PGM\ Program\ Files.zip


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 » :


À suivre…

IGS−PGM - Cartouche de jeu DIY N°2

Suite de l'aventure précédente :

  • 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…

  • La carte program:


  • La carte character :


Lire la suite

Haut de page