6
« le: Vendredi 25 Novembre 2005, 21:29:58 pm »
Aïe hi aïe ho!
J'ai eu une borne avec ArcadeVGA et écran standard 15 Khz, puis maintenant une borne avec écran VGA seulement 31 Khz en 640x480 en 60 Hz. J'ai potassé (potaché?) sur les options de Mame afin d'avoir le moins possible d'effect de pixelisation, surtout en vertical. L'idée de base c'était d'avoir un fullscreen vertical, mais de tomber pile poil sur le nombre de ligne d'origine (ArcadeVGA+moniteur 15 Khz), ou pile 2 fois le nombre de ligne d'origine (moniteur VGA en 31 Khz, 480 lignes en 60 Hz). J'ai pas trouvé d'info sur çà sur le net, je peux développer si nécessaire. Suffira de demander.
Bon, par l'exemple, le plus flagrant ce serait ce qui suit. Imaginons que je n'ai qu'un moniteur VGA avec dans le BIOS (sans utiliser Powerstrip donc) que du 640x480. Et maintement je lance un jeu comme euh Super Puzzle Fighter 2 Turbo, nativement en 384x224. En le lançant sans étirement hardware de l'image, c'est loin d'être plein écran: çà occupe que 384 sur 640 pixels sur une ligne, et 224 sur 240 lignes. Avec l'étirement de la carte vidéo, c'est certes étiré et une ligne occupe une pleine ligne d'écran (384 pixels étirés sur 640 et c'est acceptable vu le filtre physique (mouarf!) d'un pixel au suviant sur un raster / une ligne) mais l'effet d'étirement de 244 sur 240 lignes, çà m'est particulirement insupportable. Beurk!
Bref, comment avoir un full screen horizontal, mais n'occuper que 224 lignes, fois 2 pour laisser un effect scanline comme sur ancien moniteur?
Réponse: l'option -screen_aspect 1788:1434 (avec -hws et -effect scan75 par exemple) ou options similaire dans le fichier ini.
C'est pas une formule magique, c'est pas empirique, c'est calculable et applicable à d'autres cas. En fait, c'est juste une règle de trois. 1788:1434 correspondent à 4:3 avec le rapport/multiplié par 447:478. En effet, quand on utilise le stretch, il n'étire pas sur la totalité des lignes, car il en garde une en haut et une en bas, mise à 0 par le principe même de son calcul. Ici: 480 lignes --> 478 lignes. Or donc (c'est joli comme expression "or donc", non?), je ne veux pas que l'écran soit étiré verticalement de 224 à 478 lignes, mais je veux dans le cas présent pile poil les 224 lignes d'origine, plus exactement 223 lignes de scanlines entre ces 224 lignes. Soit 224+223=447 lignes. Je fais donc croire à l'émulateur qu'en fait mon écran c'est pas du 4/3 mais que c'est du 4/3 fois (224+223)/(480-2) afin d'aplatir l'écran (480 lignes) d'un rapport pile poil pour tomber sur le nombre de ligne d'origine (224).
Ahem! soyons franc: qui a compris? qui trouve çà intéressant? C'est au passage un test perso pour valider ma fumeuse théorie qu'il y a des choses qui ne peuvent pas s'expliquer sans schéma...
A+
Bb (0.743g d'alcool dans le sang)