Index du forum




Un petit coup de main... Vous pouvez nous aider à mettre ce site à jour: n'hésitez pas à me contacter !!!

* Connexion   * Inscription

* FAQ
Nous sommes actuellement le 08 Déc 2025, 05:26

Index du forum » Hardware

Le fuseau horaire est UTC+1 heure


Gate Array Timmings !

Modérateur: poulette73



Publier un nouveau sujet Répondre au sujet  Page 2 sur 2
 [ 29 message(s) ]  Aller vers la page Précédent  1, 2
  Aperçu avant impression Sujet précédent | Sujet suivant 
Auteur Message
Megachur
 Sujet du message : Re: Gate Array Timmings !
Message Publié : 06 Avr 2014, 20:43 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 12 Juin 2008, 20:29
Message(s) : 1726
@Lone : ou trouver cette documentation de Pierre Guerrier sur le CRTC ?


Haut
 Profil  
 
Lone
 Sujet du message : Re: Gate Array Timmings !
Message Publié : 06 Avr 2014, 21:03 
Hors-ligne
Rulezzzz
Rulezzzz

Inscription : 25 Fév 2013, 13:56
Message(s) : 648
Localisation : Ardèche
Je l'avais récupéré par ici, je crois...
Dans le doute, je la poste.

Il reste quelques points sujet à questions (sur le CRTC 1 notamment ), mais c'est une mine d'information inestimable


Vous n’êtes pas autorisé(e) à consulter les fichiers insérés à ce message.


Haut
 Profil  
 
Megachur
 Sujet du message : Re: Gate Array Timmings !
Message Publié : 06 Avr 2014, 21:27 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 12 Juin 2008, 20:29
Message(s) : 1726
Ah oui, je me souviens maintenant ! je vais relire cela, dommage que ce soit une version traduite et pas les 'vrai' travaux de cette homme en français ! :kiss:


Haut
 Profil  
 
Megachur
 Sujet du message : Re: Gate Array Timmings !
Message Publié : 18 Avr 2014, 21:42 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 12 Juin 2008, 20:29
Message(s) : 1726
Bon, je galère pour l'émulation du moniteur... le code du CRTC semble bon mais par contre je ne comprends pas comment le moniteur se resynchronise...

en gros pour la synchro horizontale ont a trois périodes

52us = 832 pixels, on affiche.
puis y'a trois périodes :
// horizontal sync front porch : 1.65 us +- 0.3 us
// horizontal sync pulse : 4.7 us +- 0.2 us
// horizontal sync back porch : 5.65 us +- 0.3 us
// ------------------
// horizontal line blanking interval : 12.00 us +- 0.3 us = 192 pixels (ou GA clock) !

et 832+192= 1024 = 64us

mais que se passe-t-il exactement pendant l'horizontal sync pulse ? si on reçoit le signal de synchro du CRTC/GA à ce moment là, c'est nickel, mais si on le reçoit pas, je comprends qu'on doit forcément pas exactement revenir à 0 à gauche de l'écran et que ça décale jusqu'à recevoir la synchro au bon moment ?
en gros, le tube cathodique décharge son condo, revient pas exactement à gauche dans ce cas ? mais avec quel équation ?

et si on change R0, que se passe-t-il exactement ? comme c'est de l'électronique, ça doit réagir avec des équations ?!

idem pour la partie verticale avec ces timmings, que se passe-t-il donc si on reçoit pas la synchro comme il faut ?!
// vertical sync Pre-equalisation pulses : 2.5 lines
// vertical sync pulse : 2.5 lines
// vertical sync Post-equalisation pulses : 2.5 lines
// vertical blanking end : 17.5 lines
// vertical sync blanking interval : 25 lines (PAL Standard)

Help les amis ! :biere:


Haut
 Profil  
 
Overflow
 Sujet du message : Re: Gate Array Timmings !
Message Publié : 19 Avr 2014, 08:41 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 05 Oct 2010, 17:55
Message(s) : 84
Megachur a écrit :
Bon, je galère pour l'émulation du moniteur... le code du CRTC semble bon mais par contre je ne comprends pas comment le moniteur se resynchronise...

J'ai parfaitement compris (et je ne dois pas être le seul) tes questions. En réaction première, je dirai comme TotO:
TotO a écrit :
Utiliser un émulateur pour tester des comportements de VSync, c'est un peu une blague en fait ? :sweatingbullets:

Pas de méprise: beaucoup de respect pour ce que tu fais. Ceci dit, à toi de voir directement avec le hardware ce qu'il se passe, non? Ce qui me permet d'enchainer: "hardware" ici c'est le moniteur du CPC, il peut être règlé bien différemment d'un moniteur à l'autre (rien que la synchro VBL derrière l'écran, histoire par exemple de supporter le flipping à 60Hz de l'Asic Inside). Ajoute à cela, déjà à l'époque: ceux qui branchaient le CPC sur une télévision, ou le comportement était/est encore différent (anecdotique: le "true color" que Longshot avait pu généré sur une télé en jouant sur la largeur de la HBL, et qui ne donna rien sur le moniteur CPC). Ajoutons à cela les problématiques plus actuelles quand tu branches le CPC sur un projo ou un moniteur "numérique" (LCD, plasma,...): pas systématique, mais souvent çà requiert alors une synchro parfaite pour fonctionner (exemple: 19968us précisément, et sans "jump" de l'écran si tu changes la position de la VBL sinon t'as un écran noir derrière; ou encore sans HBL au milieu de ligne pour changer de mode).

Retour à tes questions: comment qu'il se comporte le moniteur du CPC? je sais pas, me semble judicieux que tu zyeutes par toi-même et fais au mieux. Pour aller plus loin: zyeutes aussi sur la télévision, les projos et les écrans LCD, çà se comportera différemment. Bon courage (sans arrière pensée).

_________________
Demomaker à la retraite.
CPC en 2012, MSX en 2015, CPC Pâques 2017
et puis un petit truc sur GX4000 en novembre 2017 à l'Alchimie mais chut! c'est un secret.


Haut
 Profil  
 
Megachur
 Sujet du message : Re: Gate Array Timmings !
Message Publié : 19 Avr 2014, 10:38 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 12 Juin 2008, 20:29
Message(s) : 1726
En fait, mon problème principal c'est que je n'ai pas d'oscilloscope... donc pas évident de créer une émulation sans réel mesure de l'existant...

par exemple, je ne peux pas voir si le signal émis par le CRTC est émis tout de suite par le GA au monitor où s'il y a un décalage dans le temps...

mais bon, comme on est samedi, je vais voir sur le vrai 'hardware' de mon bon vieux CTM 644... si cela m'inspire... :magic: :magic: :magic:


Haut
 Profil  
 
Megachur
 Sujet du message : Re: Gate Array Timmings !
Message Publié : 15 Mai 2014, 19:36 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 12 Juin 2008, 20:29
Message(s) : 1726
J'aurai souhaité que quelqu'un m'aide à ce sujet car je ne possède pas d'oscilloscope...

J'espère que quelqu'un pourra juste faire cette 'petite mesure' de timming pour m'aider (et aussi Lone) ?! :biere:


Haut
 Profil  
 
Megachur
 Sujet du message : Re: Gate Array Timmings !
Message Publié : 17 Mai 2014, 07:18 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 12 Juin 2008, 20:29
Message(s) : 1726
J'ai trouvé cette page qui parle du timming GA-CRTC-Z80...

http://svn.lanowski.de/pub/8-Bit/Amstrad/CPC/HTML/crtcsumm.html

par contre, il manque le schéma et je n'arrive toujours pas à savoir le timming exact !

Je vous remercie par avance de votre aide ! :biere:


Haut
 Profil  
 
Gerald
 Sujet du message : Re: Gate Array Timmings !
Message Publié : 17 Mai 2014, 07:48 
Hors-ligne
Rulezzz
Rulezzz

Inscription : 20 Août 2013, 18:03
Message(s) : 258
Megachur a écrit :
J'ai trouvé cette page qui parle du timming GA-CRTC-Z80...

http://svn.lanowski.de/pub/8-Bit/Amstrad/CPC/HTML/crtcsumm.html

par contre, il manque le schéma et je n'arrive toujours pas à savoir le timming exact !

Je vous remercie par avance de votre aide ! :biere:

Le schema (8.gif) devrait se trouver dans le zip de lone plus haut. Sinon tu le trouvera sur amstrad.eu -> ressources/server ftp -> Documentation/CPC-Hardware/doc_Pierre_Guerrier_CRTC.zip

Sinon, ci-joint les timings de quelques signaux mesuré sur CPC :
16MHz : oscillateur a 16MHz
CPUn : signal servant a différencier les acces mémoire CPU / GA, sert aussi de clock pour l'AY
CCLK : clock du CRTC, sert aussi de LSB pour l'adresse mémoire fetché par le GA. Le CRTC fonctionne sur front descendant. Sur le 40010, l'etat haut est plus court d'un cycle de 16MHz (en rouge)
4MHz : clock du Z80
WAITn : = READY du GA


Vous n’êtes pas autorisé(e) à consulter les fichiers insérés à ce message.


Haut
 Profil  
 
Megachur
 Sujet du message : Re: Gate Array Timmings !
Message Publié : 17 Mai 2014, 20:31 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 12 Juin 2008, 20:29
Message(s) : 1726
[quote="Gerald"][/quote]

Merci 1000 fois Gerald !

Je vais regarder tout cela avec attention.


Haut
 Profil  
 
Megachur
 Sujet du message : Re: Gate Array Timmings !
Message Publié : 15 Juin 2014, 07:20 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 12 Juin 2008, 20:29
Message(s) : 1726
Cela marche impeccable avec ces timmings !

j'ai mis un peu de temps à répondre, car j'avais deux bugs sur l'émulation z80 à trouver et cela n'a pas été facile !

Par contre, je lis sur les forums, cpcwiki, les sources d'émulateur, etc. que le GA n'envoie pas de HSYNC si < 2 us et qu'il envoi un max de 6us de HSYNC pas plus... ou qu'il n'envoie pas de VSYNC avant 1 HSync, etc...

pour moi, la seule chose que fait le GA, c'est d'attendre la fin de HSYNC pour incrémenter son compteur.
si compteur = 52, il envoi un signal d'interruption au Z80
après la VSYNC et deux fin de HSYNC, il envoi le signal d'interruption au Z80 si son compteur de HSYNC >= 32 (compteur&0x20).

donc le GA envoi directement le HSYNC|VSYNC (signal SYNC) au monitor dès qu'il les reçoit...

ce qui est logique parce que :
- le signal CRTC.VSYNC est disponible directement par le PPI, donc le programme Z80 peut l'avoir dès que disponible.
- le moniteur ne se soucis du HSYNC qu'en fin de ligne affiché lors du retour de ligne, si le HSYNC est inférieur à la durée de détection à ce moment là, c'est le moniteur qui gére (ou qui n'affiche pas) !
- le moniteur mets 2 lignes de VSYNC pour être sur que c'est bien une VSYNC et pas une HSYNC de reçu (même signal sur SYNC COMPOSITE (HSYNC|VSYNC)) !

par contre, si on envoi pas de signal de HSYNC du tout, le GA ne compte pas de fin de HSYNC, donc pas d'interruption et pas d'affichage ! ce qui généralement abouti à un écran noir !

il faudrait pouvoir mesurer les signaux avec un oscillo qui sortent du CRTC et celui de GA et voir si l'envoi se fait bien en même temps !

sur le site de Grimware, on voit bien que le GA, envoi tout de suite le signal d'interruption à la fin du HSYNC sur cette image http://www.grimware.org/lib/exe/fetch.php/documentations/devices/gatearray.pal/misc/illustration.gatearray.hsync.int.png

si quelqu'un peut m'aider (ainsi que les autres auteurs d'émulateur) cela serait super sympa !

Gerald, j'espère que tu as déjà pris cette mesure ;-) !!!

Je vous en remercie par avance les amis :biere: !


Haut
 Profil  
 
Megachur
 Sujet du message : Re: Gate Array Timmings !
Message Publié : 24 Juin 2014, 06:19 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 12 Juin 2008, 20:29
Message(s) : 1726
un petit up car personne ne m'a encore aidé à ce sujet ! :?

Je vous remercie par avance de votre aide :sigh:

en complément, et d'après quelques tests. Le GA semble changer de mode de 2us après le début de la HSYNC et non à la fin de la HSYNC comme j'avais compris dans les documentations ?! ?


Haut
 Profil  
 
Gerald
 Sujet du message : Re: Gate Array Timmings !
Message Publié : 24 Juin 2014, 09:48 
Hors-ligne
Rulezzz
Rulezzz

Inscription : 20 Août 2013, 18:03
Message(s) : 258
Megachur a écrit :
Cela marche impeccable avec ces timmings !
Par contre, je lis sur les forums, cpcwiki, les sources d'émulateur, etc. que le GA n'envoie pas de HSYNC si < 2 us et qu'il envoi un max de 6us de HSYNC pas plus... ou qu'il n'envoie pas de VSYNC avant 1 HSync, etc...
Pour une configuration du CRTC par le FW :
HSYNC en sortie du GA est de 6us (celle du CRTC est de 10us)
La syncro est décalée de 2us par rapport a celle du CRTC.
Maintenant, je n'ai pas fait de test spécifique avec des synchro plus courte.

Pour d'autre mesure, il va falloir attendre ! pas d’accès au CPC pour les 3 semaine a venir.


Haut
 Profil  
 
Megachur
 Sujet du message : Re: Gate Array Timmings !
Message Publié : 24 Juin 2014, 22:02 
Hors-ligne
VIP
VIP
Avatar de l’utilisateur

Inscription : 12 Juin 2008, 20:29
Message(s) : 1726
Ok, merci de ton aide -> j'attends cela avec impatience...

je mets mon code actuel du GA à ce sujet, si quelqu'un peut aider :winner:

Code :
crtc.clock(); // others

         if(this.gaModeafterHS) {
            this.gaModeafterHS--;
            if(!this.gaModeafterHS){
               this.SMODE=this.SMODEtoSet;// Changing the mode will take effect after the next HSync is issued.
            }
         }
         
         if(this.HSYNC!=crtc.HS) {

            this.HSYNC=crtc.HS;

            if(!this.HSYNC) {// On every falling edge of the HSync signal, the Gate Array will increment the counter by one. When the counter reaches 52, the Gate Array raise the INT signal and reset the counter. With 50Hz PAL CRTC settings (one HSync every 64us) this will produce a 300Hz interrupt rate.

               // this.gaHsyncCounter=(this.gaHsyncCounter+1)&0x3f;
               this.gaHsyncCounter++;

               if (this.gaHsyncCounter==52) {//>=52
                  this.gaHsyncCounter=0;
                  cpu.INT=true;
               }

            } else {
               this.gaModeafterHS=2;

               if(this.gaHSafterVS) {
                  this.gaHSafterVS--;
                  if(!this.gaHSafterVS){
                     if(this.gaHsyncCounter&0x20) {//this.gaHsyncCounter>31
                        cpu.INT=true;
                     }
                     this.gaHsyncCounter=0;
                     this.VSYNC=false;
                  } else {
                     this.VSYNC=true;
                  }
               }

               if(this.VSYNCDetect!=crtc.VS) {
                  this.VSYNCDetect=crtc.VS;
                  
                  if(this.VSYNCDetect) {// Z80 Interrupt synchronised to 2 HSYNCs after VSYNC
                     this.gaHSafterVS=2;
                  }
               }
               
            }
            this.SYNC=this.HSYNC|this.VSYNC;
         }


ce que j'ai trouvé à force d'essayer :magic: c'est que le GA envoie la VSYNC après une ligne (prochaine HSYNC après détection) et elle dure une ligne...

d'après mes essais, cela permet l'affichage au moins de ces deux démos : Madness (UK) (128K) (1994) [DEMO] et Sea You Soon (UK) (128K) (1993) [DEMO] ! les plupart des autres testent pas la durée de la vsync, mais juste son début !


Haut
 Profil  
 
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  Page 2 sur 2
 [ 29 message(s) ]  Aller vers la page Précédent  1, 2

Index du forum » Hardware

Le fuseau horaire est UTC+1 heure


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 42 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Aller vers :  
cron
Powered by phpBB® Forum Software © phpBB Group
Traduit en français par Maël Soucaze.