
Afficher du 384x224@59,583393Hz sur un LCD, on le sait tous, c'est mission impossible.
Non seulement, l'étirement est disgracieux, mais en plus, la synchro est délicate et impossible de n'avoir aucun tearing à haute résolution.
Mamesick a developpé une version de MAME fonctionnant avec OpenGL.
Cette version OpenGL est plus fluide que pour Direct3D, et gère son propre système de shader, le GLSL.
Dites adieu au tearing ! Le GLSL ne nécessite aucun paramétrage sur le synchronisation verticale.
Contrairement au DirectDraw, vous pouvez faire tourner vos roms en 1080P sans souci.
Seul point négatif, le Input Lag sera le prix à payer. Toutefois, il n'est pas plus important qu'en Direct3D.

Le OpenGL, c'est bien joli, mais à part la synchro, qu'est-ce que ça a de mieux ?
Des shaders de qualité.
Timothy Lottes a lui développé un shader personnalisable permettant de s'approcher au mieux du rendu du CRT sur un LCD.
Le résultat est bluffant.
On se rapproche énormément du rendu du CRT.
Vous pouvez gérer :
- L'intensité des scanlines
- L'intensité du mask
- La netteté de l'image
- La géométrie de l'image (incurvée ou non)
L'image peut ainsi être étirée au maximum tout en respectant le ratio original.
Le fait de pouvoir jouer à la fois sur la netteté des pixels visibles, mais aussi de façon distincte sur les pixels masquants, permet d'éliminer subtilement tout effet Moiré indésirable.
Extrait du contenu de Lottes CRT_rgb32_dir.fsh :
Code : Tout sélectionner
//Comment these out to disable the corresponding effect.
//#define VERTICAL //rotates shadow mask effect to fix vertical games on landscape monitors
//#define CURVATURE //Screen curvature effect.
#define YUV //Tint and Saturation adjustments. You adjust the settings in Lottes_CRT.vsh now...
#define GAMMA_CONTRAST_BOOST //Expands contrast and makes image brighter but causes clipping.
//#define BLOOM //enables a bloom effect very resources demanding. Disabled by default.
#define MASK_APERTURE_GRILL //Only uncomment one of the MASK patterns at a time...
//#define MASK_TV
//#define MASK_VGA
//#define ORIGINAL_SCANLINES //Enable to use the original scanlines.
//#define ORIGINAL_HARDPIX //Enable to use the original hardPix calculation.
//CRT Filter Variables
const float hardScan=-24.0; //-8,-12,-16, etc to make scalines more prominent.
const vec2 warp=vec2(1.0/64.0,1.0/48.0); //adjusts the warp filter (curvature).
const float maskDark=0.2; //Sets how dark a "dark subpixel" is in the aperture pattern.
const float maskLight=0.75; //Sets how dark a "bright subpixel" is in the aperture pattern.
const float hardPix=-16.0; //-1,-2,-4, etc to make the upscaling sharper.
const float hardBloomScan=-2.5;
const float hardBloomPix=-1.75;
const float bloomAmount=1.0/12.0; //Lower this if there is too much bloom!
const float blackClip = 0.02;
const float brightMult = 1.2;
const float maskStrength = 0.5; //This sets the strength of the shadow mask effect
const vec3 gammaBoost = vec3(1.0/1.15, 1.0/1.15, 1.0/1.15);
Vous voulez un rendu plutôt flou ou au contraire avec des pixels bien francs, aucun soucis, vous avez la main sur tous les paramètres. C'est à vous de jouer.
MAMEUIFX 0.166 est disponible en version 32bits ou 64bits.
Il prend en charge hiscore.dat, la gestion des samples pour les roms : SAME SAME, GHOX, TEKI PAKI, et VIMANA, ainsi que d'autres améliorations comme l'Autofire.
Testez le vite !
Téléchargement : http://mame32fx.altervista.org/download.htm