Solved advance mame 4.1
-
Une TV n'affiche pas toujours 224 ligne exactement.
Une des mienne affiche 236 lignes, une autre 230 lignes.
Mais c'est souvent proche des 224 lignes.-
En 525 lignes, on affiche en moyenne 228 lignes.
525/2 car on est en non entrelacé. Ça donne 262 lignes (on arrondi).
262-6 lignes de synchro, il reste 0 lignes pour les porchs.
On peut baisser la syncho verticale ou augmenter la vitesse horizontale si la TV a besoin de porchs. -
En 625 lignes, on affiche en moyenne 280 lignes.
625/2 car on est en non entrelacé. Ça donne 312 lignes (on arrondi).
312-6 lignes de synchro, il reste 50 lignes pour les porchs.
=> Conclusion : nous ne sommes pas tous egaux, et on peut se dire qu'une TV sur 2 aura de l'overscan si on veut du "pixel perfect". Sinon on doit adapter le nb de lignes, et là ca sent le tearing.
Oui.Donc un jeu en 256 lignes (a moins de 57Hz sinon c'est dur de passer en 625 lignes) aura :
Soit des parties en overscan (en haut et en bas) pour un total de 256 - 228 = 28 liges.
Soit des bandes noires (en haut et en bas) pour un total de 280 - 256 = 24 lignes.Les TV ont, soit un châssis analogique, soit un châssis numérique.
- Pour les TV a châssis analogique, il faut toucher aux potards dans la TV. Je le déconseille fortement aux non électriciens.
ME suis pris un coup de 25000 volts de la THT, ça démonte - Pour les TV a châssis numerique, il faut trouver le Service Menu a l'aide de la télécommande (faut trouver les infos sur le net, impossible de trouver par hazard) et toucher au reglages.
La aussi je dis attention, une de mes TV (acheté 10€ sur les brocantes, une magnifique Philipps 55cm) à tenu 1 heure. J'ai activé par erreur une option hardware donc elle ne disposait pas. La TV boot en boucle, elle cherche le matos, le trouve pas, reboot... Plus rien a faire....
(Mes autres TV ne permettent pas de faire de conneries dans le Service Menu).
Pour le fameux triplet.
Je suis parti d'un HDMI_Timings qui apparemment passe chez tout le monde :
hdmi_timings 1920 1 48 192 240 240 1 8 5 9 0 0 0 60.0 0 37728000 1
Les Porchs horizontaux + la synchro horizontale = 1/4 de la résolution.
Le Front Porch = 1/10 de cette valeur.
La synchro = 4/10 de cette valeur.
Le Back Porche = 5/10 de cette valeur.La 1ere valeur du triplet, celle qui permet de décaler l’écran, joue sur les Porchs horizontaux.
Valeur positive = décalage vers la droite
A 0, on a 48 et 240
A 1 on a 48-4 et 240+4
A 2 on a 48-8 et 240+8
...
Le script ne gère pas parfaitement les débordements, il met 0 si on a une valeur négative.
J’améliorerais ça quand j'aurais des retour, moi je le sais, ça me suffit.Je recommande de commencer par la 2eme valeur.
Elle joue sur le zoom, elle ressert les Porchs horizontaux.
Valeur négative = rétréci l'image horizontalement tout en gardant les 1920 pixels de résolution.
A 0, on a 48 et 240
A -1 on a 48+4 et 240+4
A -2 on a 48+8 et 240+8
A -10 on a 48+40 et 240+40La 3eme valeur joue sur la position verticale et donc sur les Porchs verticaux.
Valeur positive = décalage vers le bas
A 0, on a 9 et 10 (sauf si on passe en 626 lignes).
A 1, on a 8 et 11.
A 2, on a 7 et 10.Bien-sur, à chaque changement de ces valeurs, la fréquence horizontale et le pixel clock est recalculé.
- J'ai mis ces valeurs pour chaque jeux car elle permet d'adapté chaque jeux en fonction des contrainte de la TV.
J'aurais du mettre 0, 0, 0 partout mais j'ai laissé mes reglages car il sont pus proche de la moyenne des TV.
A 0, 0, 0, l'image a un enorme overscan.
Voila les valeurs que j'ai pour les consoles. Il ne faut pas oublier que certaines consoles on besoin d'un overscan.
Les 2 premires valeurs sont le nombre de ligne et la frequence.
neogeo="224 59.1856 6 -22 4"
pcengine="240 59.94 6 -24 6"
playstation60="240 60 6 -24 6"
playstation50="240 50 6 -24 6"
megadrive60="240 59.92 5 5 4"
megadrive50="288 49.70 5 5 5"
mastersystem60="240 59.92 5 5 5"
mastersystem50="288 49.70 5 5 5"
n6460="240 60 6 -24 6"
n6450="240 50 6 -24 6"
nes60="240 60.10 6 -22 5"
nes50="240 50.01 6 -22 4"
snes60="224 60.10 6 -22 4"
snes50="239 50.01 6 -22 4"
amiga="270 50 -3 -26 6"
msx60="240 60 6 -22 4"
msx50="240 50 6 -22 4"Vous pouvez voir que les SEGA on un zoom positif.
=> quels sont les critères pour dire "ca y est je suis calé". Çà m'échappe toujours.
Alors ça, ça dépend des gouts.
Je reprend l’exemple des SEGA, avec une console originale, il arrive très souvent qu'il y ai un décalage de l’écran.
(Bande d'un coté, gros overscan de l'autre).
Je pestais a l’époque quand je tombait sur une TV qui décalait l'image de façon inconsidérée.
La, on ne veut pas reproduit ce probleme, donc on cale l'image a sont gout.
Pour l'arcade, j'ai jamais vu un aspect ratio respecté a la perfection, les gars qui réglaient les moniteurs faisait ça a l'arrache.
Donc idem, on règle a l’œil en partant de paramètre de basse.=> Dans ton fichier de DB, toutes les fréquences horizontales sont identiques. Je ne suis pas sûr que dans la réalité ce soit le cas.
Exacte, je prends cette valeur comme valeur de basse et après je la recalcule.
Pour du 240 par 60, on a bien du 15720
15720/60 = 262 lignes
Mais pour du 59Hz, on a pas 262 lignes mais plus. (plus on baisse en fréquence, plus on a de nombres de lignes)
Ne pas confondre lignes affichables (fixe) et lignes totales (variables).
15720/59 = 266.6 lignes..
J’arrondis a la valeur supérieur, soit 267 lignes. (J'aurais pu faire l’inverse, le temps me donnera, j’espère, raison).
Et je recalcule la fréquence horizontale.
267*59=15753HzFaut pas oublier qu'on est limité niveau pixel clock, donc pour les Porchs horizontaux, on peut pas respecté l'original.
On peut au mieux, les multiplier.Pour les Porch verticaux (à 240p60)
- Nombre de lignes 262.
- Synch vertical, j'ai mis 5 partout, mais cela fonctionne de 3 a 9 chez moi.
C'est la que plus d'essais permettront de comprendre ou sont les limites des CRT, surtout les PVM. - Reste 262-5=257 lignes.
- 257-240=17 lignes.
Ces 17 lignes sont a repartir entre le Front et Back Porch vertical.
Je divise par deux (Parce que je ne connais aucune de ces valeurs et quelles servent uniquement a positionner l’écran verticalement) et j’arrondis la valeur supérieur le Back Porch si il y a lieu. (Car j'ai remarqué qu'il fallait plus souvent descendre l'ecran que le monter) - 17/2=8.5
Soit Front Porch = 8 et Back Porch = 9
Donc, on a pour notre HDMI_Timings de basse :
hdmi_timings 1920 1 48 192 240 240 1 8 5 9 0 0 0 60.0 0 37728000 1
Plus qu'a calculer le Pixel Clock
(1920 + 48 + 192 + 240) * 15720 = 37728000On est pas obligé d’être en 1920, on peut être en, par exemple, 1600 (multiple de la resolution).
Parfait pour des jeux comme Mortal Kombat qui est en 400x254.
J'ai fais le choix de rester en 1920 pour le moment, pour pas compliquer les chose et pas etre obligé de gérer les resolutions horizontale des jeux. Mais ça fonctionne sans probleme.Quand tu parles de Pixels Clock bas (déjà on a une limite basse), tu parles forcement de résolution et donc de pixels a afficher. Tu a surement raison mais dans la mesure ou le jeux a 60Hz affiche bien du 60Hz, c'est que tout est calculé et affiché dans les temps et que l’éventuel input lag ne doit pas dépasser 1 frame. Le "fb" du Pi excelle dans la mise a l’échelle.
Je testerais a l'occase...
Pour les PVM, je ne sais pas, j’attends des retour, je pense qu'il faut monter le Sync vertical a plus de 10.
J'ai 2 Sony Trinitron 36cm, c'est parfait, que du bonheur...Le liens que tu as posté et la base de mes recherche
Si tu prends les VRAI Timings de la NeoGeo AES, tu peux multiplier par 5 horizontalement pour etre utilisé par le RPi
hdmi_timings 1920 1 80 175 255 224 1 16 3 16 0 0 0 59.583393 0 37502190 1
Pixel Clock limité = concession a faire... -
-
@ironic rahhhhhh lovely ma culture TV t'en remercie
-
@ironic Je vais te passer en CRT maniac mec
L'approche de neo-arcadia etait l'inverse, à savoir partir des informations du driver mame, et tout recalculer à partir de là. Pourquoi ne pas avoir appliqué cette méthode ? OK c'est bcp plus long, mais ca permet d'être plus proche du système arcade, quitte à arrondir un chouia la fréquence pour s'en tenir à un pixel clock "faible" quand c'est possible. Exemple bete : c'est dommage de tout recalculer si le pixel clock de la board d'origine est quasiment egale à une du pi ...
Bon faut que je continue à mettre tout ca en équations, la stable de la 4.1 à faire parce que si je me disperse, je ne vais rien finir. Des joueurs sur PVM il y en a un certain nombre, j'aimerais autant essayer de leur faciliter à eux aussi la tâche, et jai besoin d'écrire et théoriser tout ca pour comprendre
-
Magique
Bon je vais quand même relire une seconde fois, y'a pas mal d'info à intégrer.
Merci pour votre job