Je viens à peine de démarrer le Python alors soyez indulgent.
Voici le script que j'utilise pour calculer mes Timings à la volée.
Il reste beaucoup de chose à faire mais il fonctionne.
Jusque maintenant, j'utilisais le Bash mais je reconnais que le Python est plus adapté.
Je l'utilise avec une base de donnée de jeux dans laquelle il va piocher les paramètres dont il a besoin.
Cette version ne fait que calculer les Timings, le plus important.
-> Pour un test rapide et sans Rpi.
J'utilise les paramètres (H_Pos=6, H_Zoom=-25, V_Pos=5) sur un SONY Trinitron KV-M1400B (36cm).

(image de 320x240, on peut voir que l'écran affiche environ 232 lignes).
Pas de service menu, pas de mode 16/9, le strict minimum mais ... une qualité de fou...
Ça serait cool de trouver un "Timings" moyen qui passe sur toutes les TV et qui soit centré au mieux.
Je ne peux pas le tester sur mes autres TV car j'ai déjà modifié les paramètres de base via le service menu.
(Et bien sur, j'ai rien noté, grrr...)
Difficile de vous expliquer pourquoi j'utilise cette méthode de calcule de Timings, elle est basée sur mes innombrables recherches et tentatives.
Apparemment, les écrans PVM sont très récalcitrants aux grandes variations de Timings.
-> Concernant Retroarch et le "pixel perfect", c'est vrai que c'est un peut la galère.
Exemple : Moon Patrol. Ce jeux est en 240x252@56.737589 Hz
En activant le Integer Scale, il passe en 248p.
De plus, difficile de se fier aux informations trouvées sur le net, de versions en versions, les émulateurs corrigent certaines résolutions de jeux.
Ex : Mortal Kombat.
Depuis la version 0.114u1, la résolution est passée de 400x254 à 399x253. Mème la fréquence à changée.
C'est pas grand chose mais ya pire...
Avec une base de donnée de jeux, je peux corriger le nombres de scanlines de chaque jeux si je vois un probleme de tearing.
De plus, ça me permet de centrer l’écran au mieux.
Pour Retroarch, j'utilise :
NEOGEO 224p à 59.186Hz (Core fba_libretro_0.2.97.37.so)
PCENGINE 240p à 59.94Hz (Core pce_libretro.so)
PLAYSTATION 240p à 60Hz et 288p à 50Hz (Core pcsx_libretro.so)
MEGADRIVE 240p à 59.92Hz et 288p à 49.70Hz (Core genesisplusgx_libretro.so)
MASTER SYSTEM 240p à 59.92Hz et 288p à 49.70Hz (Core genesisplusgx_libretro.so)
NES 240p à 60.10Hz et 240p à 50.01Hz (Core fceumm_libretro.so et nestopia_libretro.so)
SNES 224p à 60.10Hz et 239p à 50.01Hz (Core snes9x_next_libretro.so)
@julien-carpezat
Et meme si tu la torture, elle encaissera longtemps...
La mien a laché mais j'en lui ai mis plein la tete, vraiment plain.......
J'y suis allé sans pitié car j'ai 4 TV et ca se trouve pour rien, presque partout.
Rien à craindre tant que tu joues pas à l'apprenti sorcié 