L'atelier [RESOLU] Soft Synchro :Fixer la stabilité de l'image sur 8280 + VDP9958 + acquisition vidéo. Recherche d'une méthode pour fixer la Syncro d'un 8280 Sans soudure.
igal
Membre non connecté
Conseiller Municipal
Vous hésitez à Uprader vôtre 8280 en MSX2+ à cause d'un Fixe hardware de la Synchro assez lourd à réaliser!
Ce qui suit vous fera changer d'avis
En cherchant à améliorer la vitesse des cycles [(Numérisation Screen 8 + Stockage CF) à la volée], je suis arrivé (par un heureux hasard) à fixer la Synchro verticale du 8280.
A défaut de vous expliquer Pourquoi ça marche, je vais vous démontrer que cela marche.
Voici déjà la vidéo démontrant ce petit exploit
La semaine prochaine je mettrai en ligne l'intégralité du code permettant la Stabilisation Software de la vidéo.
Je dois d'abord faire des testes croisés afin de déterminer si l'exploit fonctionne aussi sur une Carte Vidéo 8280 d'origine ou seulement sur la carte modée.
Au vu du comportement des cartes, je suis très optimiste sur l'issu du résulta.
Edit: 24/06/2013
Quelques testes ont suffit à isoler la commande qui stabilise la Synchronisation du VDP 9958 sur MSX2 NMS8280.
Il suffit de faire [CTRL + STOP] Lorsque l'image est centrée pour fixer l'écran dans cette bonne position. Edité par igal Le 15/01/2018 à 12h05
Ce qui suit vous fera changer d'avis
En cherchant à améliorer la vitesse des cycles [(Numérisation Screen 8 + Stockage CF) à la volée], je suis arrivé (par un heureux hasard) à fixer la Synchro verticale du 8280.
A défaut de vous expliquer Pourquoi ça marche, je vais vous démontrer que cela marche.
Voici déjà la vidéo démontrant ce petit exploit
La semaine prochaine je mettrai en ligne l'intégralité du code permettant la Stabilisation Software de la vidéo.
Je dois d'abord faire des testes croisés afin de déterminer si l'exploit fonctionne aussi sur une Carte Vidéo 8280 d'origine ou seulement sur la carte modée.
Au vu du comportement des cartes, je suis très optimiste sur l'issu du résulta.
Edit: 24/06/2013
Quelques testes ont suffit à isoler la commande qui stabilise la Synchronisation du VDP 9958 sur MSX2 NMS8280.
Code TEXT :
0 'SAVE"SYNC.ASC",A 10 SCREEN 8,,,,,3:GOTO 10
Il suffit de faire [CTRL + STOP] Lorsque l'image est centrée pour fixer l'écran dans cette bonne position. Edité par igal Le 15/01/2018 à 12h05
igal
Membre non connecté
Conseiller Municipal
Voici deux vidéos avant fixe software
Il y a deux sortes de symptômes.
Soit la source Vidéo est à une fréquence identique au MSX et on peut voir une barre noir se déplacer lentement:
De Haut en bas pour 50Hz.
De Bas en haut pour 60Hz.
Voici un exemple en 50Hz Msx et Source Vidéo:
Nb: En 60Hz, la barre aurait défilé vers le haut.
Nb2: Ne pas prêter attention au graphisme, il s'agit d'un essai en SCREEN12
Si la source Vidéo est à une fréquence différente du MSX on peut voir 4 barres clignoter rapidement sur la totalité de l'écran.
Voici en image:
Edité par igal Le 21/06/2013 à 22h08
Il y a deux sortes de symptômes.
Soit la source Vidéo est à une fréquence identique au MSX et on peut voir une barre noir se déplacer lentement:
De Haut en bas pour 50Hz.
De Bas en haut pour 60Hz.
Voici un exemple en 50Hz Msx et Source Vidéo:
Nb: En 60Hz, la barre aurait défilé vers le haut.
Nb2: Ne pas prêter attention au graphisme, il s'agit d'un essai en SCREEN12
Si la source Vidéo est à une fréquence différente du MSX on peut voir 4 barres clignoter rapidement sur la totalité de l'écran.
Voici en image:
Edité par igal Le 21/06/2013 à 22h08
igal
Membre non connecté
Conseiller Municipal
Je vous livre les deux codes (en vrac) qui exécutés l'un après l'autre ont pour effet de Fixer la Synchro du 8280.
Forcément, une fois qu'on enlève ce qui sert à rien il restera pas grand chose et c'est tant mieux
Notez qu'une pression sur le [bouton Reset] annihile la synchro et il est donc nécessaire de relancer les commandes.
Faudra que je fasse une batterie de testes dans la semaine
Code TEXT :
10 'SAVE"AAA.ASC",a 20 COLOR1,15:WIDTH 80 30 'INITIALISE N ET LA BOUCLE CTRL + STOP 40 ON STOP GOSUB170: STOP ON:N=1 50 'INITIALISE LE MODE GRAPHIQUE, COULEUR D'ECRAN ET SUPERIMPOSE 60 SCREEN8:COLOR,,255:'OUT&HF6,INP(&HF6)XOR16:'SECAM<=>PAL 70 SETVIDEO 2,1,1:'OUT&HF6,INP(&HF6)XOR 4:SET VIDEO2,1,1 80 'COPY LA VIDEO DANS LA V-RAM ET AFFICHE SON CONTENU 90 COPYSCREEN0:N$=RIGHT$(STR$(N),LEN(STR$(N))-1):BSAVE"IMAGE"+N$+".SC8",0,&HD3FF,S:N=N+1:GOTO90 170 SET VIDEO 2,0,0:COLOR 1,15:WIDTH 80
Code TEXT :
10 'SAVE"DIGIT.ASC",a 20 'PERMET DE CENTRER (VERTICALEMEMT) LA NUMERISATION 30 SETADJUST(8,-0):SET VIDEO 2,0,0 40 'INITIALISE N ET LA BOUCLE CTRL + STOP 50 ON STOP GOSUB110: STOP ON:N=1 60 'INITIALISE LE MODE GRAPHIQUE, COULEUR D'ECRAN ET SUPERIMPOSE 70 SCREEN8,,,,,3:COLOR,,255 80 'COPY LA VIDEO DANS LA V-RAM ET AFFICHE SON CONTENU 90 SETVIDEO2,0,0,0:COPYSCREEN0:N$=RIGHT$(STR$(N),LEN(STR$(N))-1):BSAVE"IMAGE"+N$+".SC8",0,&HD3FF,S:N=N+1:GOTO90 110 SET VIDEO 2,0,0:COLOR 1,15,15:WIDTH 80
Forcément, une fois qu'on enlève ce qui sert à rien il restera pas grand chose et c'est tant mieux
Notez qu'une pression sur le [bouton Reset] annihile la synchro et il est donc nécessaire de relancer les commandes.
Faudra que je fasse une batterie de testes dans la semaine
igal
Membre non connecté
Conseiller Municipal
Quelques testes ont suffit à isoler la commande qui stabilise la Synchronisation du VDP 9958 sur MSX2 NMS8280.
Il suffit de faire [CTRL + STOP] Lorsque l'image est centrée pour fixer l'écran dans cette bonne position.
J'ai interprété de la façon suivante:
La Synchro est alternativement [Fixée <=> Dé-fixée] avec un "glissement" de l'image entre chaque opération.
Cette alternance "Fixe-défixe" donne la possibilité de [Stopper] l'opération au moment choisi très facilement.
Il est bon de noter que même la forte distorsion générée par le passage du PAL au NTSC est stabilisée par cette commande.
Evidemment, MSX et SOURCE VIDEO doivent être dans le même format à savoir 50Hz ou 60Hz sur les deux machines. Je le précise même si ce n'est pas un Bug mais un fonctionnement normal.
@Jipe: Même si cela ne me sert pas personnellement, tu penses pouvoir écrire un petit SYNC.COM de sorte à en profiter sous DOS sans avoir à aller sous BASIC
Sachant que [CTRL+STOP] fonctionne aussi sous DOS
Edit: Cette méthode pourrait être utile pour synchroniser plusieurs couches de VDP en cas de nécessité Edité par igal Le 24/06/2013 à 10h36
Code TEXT :
0 'SAVE"SYNC.ASC",A 10 SCREEN 8,,,,,3:GOTO 10
Il suffit de faire [CTRL + STOP] Lorsque l'image est centrée pour fixer l'écran dans cette bonne position.
J'ai interprété de la façon suivante:
La Synchro est alternativement [Fixée <=> Dé-fixée] avec un "glissement" de l'image entre chaque opération.
Cette alternance "Fixe-défixe" donne la possibilité de [Stopper] l'opération au moment choisi très facilement.
Il est bon de noter que même la forte distorsion générée par le passage du PAL au NTSC est stabilisée par cette commande.
Evidemment, MSX et SOURCE VIDEO doivent être dans le même format à savoir 50Hz ou 60Hz sur les deux machines. Je le précise même si ce n'est pas un Bug mais un fonctionnement normal.
@Jipe: Même si cela ne me sert pas personnellement, tu penses pouvoir écrire un petit SYNC.COM de sorte à en profiter sous DOS sans avoir à aller sous BASIC
Sachant que [CTRL+STOP] fonctionne aussi sous DOS
Edit: Cette méthode pourrait être utile pour synchroniser plusieurs couches de VDP en cas de nécessité Edité par igal Le 24/06/2013 à 10h36
"SCREEN ,,,,,3" sert seulement à mettre en mode entrelacé avec affichage d'écran Even/Odd2 en alternance.
On peut mettre de 0 à 3.
0 = non-entrelacé
1 = entrelacé
2 = non-entrelacé avec affichage d'écran pair/impair en alternance
3 = entrelacé avec affichage d'écran pair/impair en alternance
Rien à voire avec la synchro.
http://www.msxvillage.fr/wiki/wiki.php?title=screen
On peut mettre de 0 à 3.
0 = non-entrelacé
1 = entrelacé
2 = non-entrelacé avec affichage d'écran pair/impair en alternance
3 = entrelacé avec affichage d'écran pair/impair en alternance
Rien à voire avec la synchro.
http://www.msxvillage.fr/wiki/wiki.php?title=screen
igal
Membre non connecté
Conseiller Municipal
Maintenant ce me revient...
J'avais relevé cette commande qui à ce que j'avais compris, donne la possibilité de Numériser une Seule image sur 2.
L'idée était de ne générer/numériser deux fois moins d'images pour diminuer le nombre d'images à opérer.
Merci pour cette précision.
C'est peut être la raison pour laquelle personne n'a pensé à cette commande pour stabiliser la Synchro!
Pour rappel, j'ai trouvé cette solution par un heureux hasard.
J'avais relevé cette commande qui à ce que j'avais compris, donne la possibilité de Numériser une Seule image sur 2.
L'idée était de ne générer/numériser deux fois moins d'images pour diminuer le nombre d'images à opérer.
GDX :
Rien à voire avec la synchro.
Rien à voire avec la synchro.
Merci pour cette précision.
C'est peut être la raison pour laquelle personne n'a pensé à cette commande pour stabiliser la Synchro!
Pour rappel, j'ai trouvé cette solution par un heureux hasard.
igal
Membre non connecté
Conseiller Municipal
Voici la formule qui permet de numériser une source vidéo en 50Hz.
30 SET VIDEO 2,0,0: ' Le 8280 perd la synchronisation de son affichage graphique lorsqu'il synchronise avec la source vidéo externe.
50 A$=INKEY$:IFINKEY$=""THEN30ELSE70:' Cette boucle maintient la désynchronisation jusqu'à ce que l'utilisateur décide de stabiliser synchronisation dans l'état.
70 SCREEN8,,,,,3:COLOR,,255:N=1: ' Cette ligne active le mode entrelacé qui stabilise la syncrhonisation des graphismes du VDP au moment voulu.
90 COPYSCREEN0:N$=RIGHT$(STR$(N),LEN(STR$(N))-1):BSAVE"IMAGE"+N$+".SC8",0,&HD3FF,S:N=N+1:GOTO90
110 SET VIDEO 0,0,0
Voici la formule qui permet de numériser une source vidéo en 60Hz.
29 VDP(10)=4: ' Permet de synchroniser le VDP(60Hz) avec la source vidéo(60Hz) externe.
30 SET VIDEO 2,0,0: ' Le 8280 perd la synchronisation de son affichage graphique lorsqu'il synchronise avec la source vidéo externe.
50 A$=INKEY$:IFINKEY$=""THEN30ELSE70:' Cette boucle maintient la désynchronisation jusqu'à ce que l'utilisateur décide de stabiliser synchronisation dans l'état.
70 SCREEN8,,,,,3:COLOR,,255:N=1: ' Cette ligne active le mode entrelacé qui stabilise la syncrhonisation des graphismes du VDP au moment voulu.
90 COPYSCREEN0:N$=RIGHT$(STR$(N),LEN(STR$(N))-1):BSAVE"IMAGE"+N$+".SC8",0,&HD3FF,S:N=N+1:GOTO90
110 SET VIDEO 0,0,0: SCREEN0,,,,,0:VDP(10)=3:VDP(10)=2: ' Stoppe la vibration de l'écran voir ici ou demander GDX
30 SET VIDEO 2,0,0: ' Le 8280 perd la synchronisation de son affichage graphique lorsqu'il synchronise avec la source vidéo externe.
50 A$=INKEY$:IFINKEY$=""THEN30ELSE70:' Cette boucle maintient la désynchronisation jusqu'à ce que l'utilisateur décide de stabiliser synchronisation dans l'état.
70 SCREEN8,,,,,3:COLOR,,255:N=1: ' Cette ligne active le mode entrelacé qui stabilise la syncrhonisation des graphismes du VDP au moment voulu.
90 COPYSCREEN0:N$=RIGHT$(STR$(N),LEN(STR$(N))-1):BSAVE"IMAGE"+N$+".SC8",0,&HD3FF,S:N=N+1:GOTO90
110 SET VIDEO 0,0,0
Voici la formule qui permet de numériser une source vidéo en 60Hz.
29 VDP(10)=4: ' Permet de synchroniser le VDP(60Hz) avec la source vidéo(60Hz) externe.
30 SET VIDEO 2,0,0: ' Le 8280 perd la synchronisation de son affichage graphique lorsqu'il synchronise avec la source vidéo externe.
50 A$=INKEY$:IFINKEY$=""THEN30ELSE70:' Cette boucle maintient la désynchronisation jusqu'à ce que l'utilisateur décide de stabiliser synchronisation dans l'état.
70 SCREEN8,,,,,3:COLOR,,255:N=1: ' Cette ligne active le mode entrelacé qui stabilise la syncrhonisation des graphismes du VDP au moment voulu.
90 COPYSCREEN0:N$=RIGHT$(STR$(N),LEN(STR$(N))-1):BSAVE"IMAGE"+N$+".SC8",0,&HD3FF,S:N=N+1:GOTO90
110 SET VIDEO 0,0,0: SCREEN0,,,,,0:VDP(10)=3:VDP(10)=2: ' Stoppe la vibration de l'écran voir ici ou demander GDX
Présenté tel que ici, on arrive à capter le problème que tu as (contrairement à l'autre post). Le fait de mettre en mode entrelacé puis en sortir résout le problème temporairement. C'est déjà pas mal. Peut-être qu'on pourra en déduire quelque chose pour trouver une meilleur solution, qui sait...
igal
Membre non connecté
Conseiller Municipal
Par contre, il ne faut pas se méprendre.
Il faut dissocier trois problèmes qui sont peut être liés mais dont je ne saurais expliquer la cause mais simplement trouvé la solution.
Premier problème résolu:
1) Le fait de basculer le 8280 par SET VIDEO 2,X,X (avec la présence d'une source vidéo Externe 50Hz) désynchronise l'affichage de MSX. La "stabilisation" de l'affichage du MSX est rétabli par SCREEN X,,,,,3.
Nb: La boucle sur SET VIDEO 2,X,X sert seulement maintenir le BUG jusqu'à ce que l'écran soit correctement cadré.
Second problème résolu:
2) Le fait de Basculer le 8280 pas SET VIDEO 2,X,X (avec la présence d'une source vidéo Externe 60Hz) désynchronise l'affichage de MSX. Pour rétablir la syncrhonisation avec la source vidéo externe, il faut commencer par basculer le VDP en 60Hz avec VDP(10)=4.
Après quoi, il faut procéder à SCREEN X,,,,,3.
Nb: La boucle sur SET VIDEO 2,X,X sert seulement maintenir le BUG jusqu'à ce que l'écran soit correctement cadré.
Troisième problème résolu:
3) Brancher un 8250 / 55 / 80 sur un LCD, l'image vibre terriblement. Les commandes VDP(10)=3:VDP(10)=2 permettent de solutionner ce problème.
Nb: VDP(10)=3:VDP(10)=2 devra être réitéré si le MSX bascule à un moment sur du 60Hz.
Ces Solutions sont software donc effectivement, cela résout le problème "que" temporairement, mais évite un lourd passage sur la table d'opération en suivant le protocole rapporté par Jipe
En conclusion:
Je ne maîtrise pas le processus et ne saurai donc pas expliquer le pourquoi de ces solutions.
Cependant, je suis tout ouïe pour des explications constructives Edité par igal Le 26/10/2013 à 14h57
Il faut dissocier trois problèmes qui sont peut être liés mais dont je ne saurais expliquer la cause mais simplement trouvé la solution.
Premier problème résolu:
1) Le fait de basculer le 8280 par SET VIDEO 2,X,X (avec la présence d'une source vidéo Externe 50Hz) désynchronise l'affichage de MSX. La "stabilisation" de l'affichage du MSX est rétabli par SCREEN X,,,,,3.
Nb: La boucle sur SET VIDEO 2,X,X sert seulement maintenir le BUG jusqu'à ce que l'écran soit correctement cadré.
Second problème résolu:
2) Le fait de Basculer le 8280 pas SET VIDEO 2,X,X (avec la présence d'une source vidéo Externe 60Hz) désynchronise l'affichage de MSX. Pour rétablir la syncrhonisation avec la source vidéo externe, il faut commencer par basculer le VDP en 60Hz avec VDP(10)=4.
Après quoi, il faut procéder à SCREEN X,,,,,3.
Nb: La boucle sur SET VIDEO 2,X,X sert seulement maintenir le BUG jusqu'à ce que l'écran soit correctement cadré.
Troisième problème résolu:
3) Brancher un 8250 / 55 / 80 sur un LCD, l'image vibre terriblement. Les commandes VDP(10)=3:VDP(10)=2 permettent de solutionner ce problème.
Nb: VDP(10)=3:VDP(10)=2 devra être réitéré si le MSX bascule à un moment sur du 60Hz.
Ces Solutions sont software donc effectivement, cela résout le problème "que" temporairement, mais évite un lourd passage sur la table d'opération en suivant le protocole rapporté par Jipe
En conclusion:
Je ne maîtrise pas le processus et ne saurai donc pas expliquer le pourquoi de ces solutions.
Cependant, je suis tout ouïe pour des explications constructives Edité par igal Le 26/10/2013 à 14h57
igal
Membre non connecté
Conseiller Municipal
Pour ce qui est du Problème 1) et 2), c'est un problème Hardware bien connu et dont la solution définitive passe par plusieurs modifications.
Par contre, le problème de "Vibration" de l'image 3) quant à lui est probablement le résulta de ces MSX (8250 /55 /80) et de certains TV LCD et donc rien à voir avec la super-impose.
C'est la raison pour laquelle j'ai créé un autre post
Cela me rappel que jipe parlait d'une modification Hardware pour Numériser dans un SCREEN autre que SCREEN8!
Je me demande si cette modification permet de Numériser par exemple en SCREEN 5 avec 16 couleur (automatique) sur 256
Si vous avez des éclaircissements sur ce fonctionnement/modification, cela peut être très intéressant. Edité par igal Le 27/10/2013 à 13h10
Par contre, le problème de "Vibration" de l'image 3) quant à lui est probablement le résulta de ces MSX (8250 /55 /80) et de certains TV LCD et donc rien à voir avec la super-impose.
C'est la raison pour laquelle j'ai créé un autre post
Cela me rappel que jipe parlait d'une modification Hardware pour Numériser dans un SCREEN autre que SCREEN8!
Je me demande si cette modification permet de Numériser par exemple en SCREEN 5 avec 16 couleur (automatique) sur 256
Si vous avez des éclaircissements sur ce fonctionnement/modification, cela peut être très intéressant. Edité par igal Le 27/10/2013 à 13h10
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie