MDA/CGA/EGA vers... LCD

Placez ici vos trucs et astuces, étalez sans retenue votre savoir-faire et votre science qui va nous permettre de redonner une apparence neuve et fonctionnelle à nos bouzes.

Modérateurs : Carl, Papy.G, fneck

Avatar de l’utilisateur
xmamat
Messages : 283
Inscription : 31 août 2020 15:02
Localisation : Paris

MDA/CGA/EGA vers... LCD

Message par xmamat »

Bonsoir à tous,

Je suis en ce moment en train de chercher la meilleure (moins mauvaise ?) solution pour afficher une source MDA, CGA ou EGA (par ordre croissant d'intérêt en ce qui me concerne, car ma principale utilisation pour ces vieilles bécanes reste le jeu :)) sur un écran LCD.
Je sais, je sais... rien ne vaut un bon CRT, sauf qu'il faut reconnaître un grand nombre d'avantages au LCD :
- faible encombrement/poids;
- bonne disponibilité et faible prix;
- ne fatigue pas les yeux.
Les principaux inconvénients étant la moindre réactivité (embêtant pour les jeux) mais surtout les problèmes de scaling (image déformée, barres noires sur les cotés, artefacts...)

Concernant la réactivité, un temps de réponse inférieur à 10 ms (idéalement 5) me paraît un compromis acceptable. Pour cela il vaut mieux se rabattre sur des modèles d'écran plat plus récents.
Pour pallier aux problèmes de scaling, tout va dépendre de la source, et donc pour afficher sur du VGA/DVI/HDMI (les LCD EGA industriels coutent une fortune), du scaler utilisé.

Pour mes tests j'ai retenu 2 écrans Belinea : le 1970 S1 (TN 5 ms, 1280x1024, à droite) et le 2080 S1 (MVA 8 ms, 1600x1200, à gauche) qui présentent tous les deux des entrées VGA et DVI :
IMG_3032.JPG
IMG_3032.JPG (569.49 Kio) Consulté 6393 fois
J'utilise comme machines de test mes Toshiba pour pièces/de rechange 1200 (CGA, à droite) et 3200 (EGA, à gauche).

Pour les scalers, j'utilise principalement les 2 suivants :
- MCE2VGA : je ne m'appesantirais pas trop dessus car il est déjà détaillé dans ce thread;
- RGBtoHDMI : une alternative plus récente issue de ce projet open-source.

J'ajouterais peut-être plus tard des tests avec le CGA2SCART de Serdashop quand j'aurais mis la main sur un convertisseur SCART>HDMI digne de ce nom (je compte dans le futur m'acheter un OSSC).

Le RGBtoHDMI est très prometteur car il permet de faire du scaling en mode "entier" (sans interpolation) et donc de fournir une image très pointue sans artefact. Nous verrons en revanche que tout va dépendre des résolutions d'entrée et de sortie.
IMG_3031.JPG
IMG_3031.JPG (649.91 Kio) Consulté 6393 fois

A noter que ce projet était à la base destiné au BBC Micro d'Acorn, mais sa compatibilité a été étendue à un grand nombre d'autres machines vintage, dont le PC.
Le paramétrage est aussi beaucoup plus riche que pour le MCE2VGA comme en atteste le wiki. La configuration repose essentiellement sur des profils (regroupant scaling, géométrie, couleurs, etc) : l'un de mes buts ici sera de trouver les valeurs idéales en fonction des sources et du LCD utilisé.

Voici mes premiers tests avec le profil existant "Standard PC" (les photos ne rendent pas justice à la qualité, surtout en mode "integer"). J'affiche le résumé de la configuration pour infos.

Integer scaling (sharp) / EGA 640x200 > LCD 1280x1024 :
1280x1024-integer-infos.JPG
1280x1024-integer-infos.JPG (758.06 Kio) Consulté 6393 fois

Integer scaling (sharp) / EGA 640x200 > LCD 1600x1200 :
1600x1200-integer-infos.JPG
1600x1200-integer-infos.JPG (753.91 Kio) Consulté 6393 fois

Interpolated scaling (soft) / EGA 640x200 > LCD 1600x1200:
1600x1200-interpolate-infos.JPG
1600x1200-interpolate-infos.JPG (765.8 Kio) Consulté 6393 fois
Avatar de l’utilisateur
xmamat
Messages : 283
Inscription : 31 août 2020 15:02
Localisation : Paris

Re: MDA/CGA/EGA vers... LCD

Message par xmamat »

J'ai eu mon RGBtoHDMI via le forum stardot.co.uk. Pour ceux que ça intéresse, il est maintenant en vente sur eBay.
A noter qu'il faut rajouter un Raspberry Pi Zero et une carte Micro SD.
Zebulon
Messages : 2106
Inscription : 02 nov. 2020 14:03

Re: MDA/CGA/EGA vers... LCD

Message par Zebulon »

Merci pour cette présentation et les références des scalers. Le rendu m'a l'air très clean en effet.
Avatar de l’utilisateur
xmamat
Messages : 283
Inscription : 31 août 2020 15:02
Localisation : Paris

Re: MDA/CGA/EGA vers... LCD

Message par xmamat »

La plupart des jeux anciens (CGA, EGA et même VGA) utilisent la résolution 320x200 (CGA et VGA) et 640x200 (EGA) ce qui correspond à un ratio 16:10. Sauf que les CRTs des joueurs de l'époque étaient évidemment en 4:3. Les graphismes étaient donc conçus pour s'afficher sur de tels moniteurs et utilisait un rapport d'aspect de pixel non pas carré mais étiré verticalement (5:6). Ce qui était possible sur les CRTs mais ne l'est pas sur les LCDs où les pixels sont carrés et ne peuvent pas être étirés.
Pour en savoir plus sur ce sujet, voir cet article.

Le mode "Standard PC" du RGBtoHDMI qui est un compromis permettant d'afficher toutes les résolutions du MDA/CGA/EGA sur la plupart des LCDs, utilise en scaling entier pour le CGA et l'EGA un ratio de pixel de respectivement 4:5 pour du 320x200 et de 2:5 pour du 640x200.
2 (x2)/5=0,8 contre 5/6= 0,8333... d'où l'aspect légèrement étiré verticalement de l'image sur Monkey Island en scaling entier (le cadran de la tour de l'horloge n'est pas rond). Sur le scaling interpolé on a du 2,17(x2)/5,13=0,846... un peu plus proche du 5:6 quoique très légèrement écrasé.

Pour un rendu sans aucune déformation sur du LCD, il nous faut donc respecter au plus près ce rapport d'aspect de pixel de 5:6 en multipliant par la résolution de base des anciens programmes.
En CGA, ça fait : 5:6 x 320x200 = 1600x1200... Ca tombe bien, c'est la résolution exacte du Belinea 2080 S1 :idea:

J'ai donc pour l'occasion créé un profil special CGA 320x200 > 1600x1200 (fichier ci-joint) adapté au integer scaling (sharp) et dont voici les résultats.

Photo de l'écran avec le résumé des infos (on voit d'ailleurs que toute la surface de l'écran est utilisée :)) :
IMG_3033.JPG
IMG_3033.JPG (525.89 Kio) Consulté 6331 fois

Le scaler permet de faire des captures d'écran. Celles-ci rendent mieux compte de l'excellente qualité de l'image sans interpolation.
capture1.png
capture1.png (9.7 Kio) Consulté 6331 fois
Le rendu réel sur l'écran est vraiment aussi bon que sur la capture :P


Planet X3 est un jeu récent conçu avec et pour des pixel carrés, donc pour le coup il peut paraître étiré. Mais avec un programme ancien, le rapport est parfaitement adapté. Dans Deluxe Paint II (1988), ont voit que les cercles sont bien ronds.
capture0.png
capture0.png (6.88 Kio) Consulté 6331 fois

Juste pour le plaisir des yeux, avec les 4 palettes CGA :
palettes.png
palettes.png (83 Kio) Consulté 6331 fois

Avoir un aussi bon rendu pour les jeux EGA est plus compliqué car il faudrait une résolution de 5:(6 x2) x 640x200 = 3200x2400. Il existe des écrans avec cette résolution (QUXGA) mais ils sont rares, chers et probablement pas adaptés en terme de réactivité.
Donc si on veut garder la qualité d'image avec le integer scaling il faut se résigner au pixel ratio 2:5 pas parfait du profil "Standard PC" : 2:5 x 640x200 = 1280x1000 (auquel cas le 1280x1024 du Belinea 1070 S1 utilise mieux la taille de l'écran). Ou bien on passe en mode interpolé (moins bonne qualité d'image) avec un pixel ratio de (5 /2):6 x 640x200 = 1600x1200 mais sans déformation et qui a l'avantage d'utiliser le même écran qu'avec le profil CGA précédent.
Je vais probablement aller dans cette direction et créer un autre profil dédié pour l'EGA en mode interpolé (soft).
Pièces jointes
CGA_320_200.zip
(275 octets) Téléchargé 66 fois
Avatar de l’utilisateur
meridian
Messages : 1196
Inscription : 01 sept. 2014 13:10
Localisation : Seine-Saint-Denis

Re: MDA/CGA/EGA vers... LCD

Message par meridian »

Merci pour le lien eBay, j'étais en attente sur le forum stardot d'un éventuel nouveau run.
Avatar de l’utilisateur
fneck
Site Admin
Messages : 16353
Inscription : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Re: MDA/CGA/EGA vers... LCD

Message par fneck »

Très intéressantes les explications sur les résolutions, taille d'écrans, ratio, pixels...
Merci.
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 2841
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: MDA/CGA/EGA vers... LCD

Message par Papy.G »

Tout dépend de tes jeux et sources, personnellement, pour la GameCube, le plus gênant dans l'utilisation d'écran LCD, est la fréquence d'affichage de sortie fixe, et j'ai beau avoir essayé sur toutes sortes d'écrans, même sur un écran de PC "freesync" avec le câble HDMI, les jeux sont injouables en 50Hz, sous peine d'être malade (saccades). :roll:
Je n'ai cependant pas testé les modes de sortie 100Hz de la console, je le ferais peut-être à l'occasion, quand j'aurais mis à jour le FW de mon adaptateur HDMI.

Merci pour ce dossier très complet, qui pourra faire gagner un certain temps (et de l'argent) aux collègues qui veulent obtenir un résultat correct.
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Avatar de l’utilisateur
xmamat
Messages : 283
Inscription : 31 août 2020 15:02
Localisation : Paris

Re: MDA/CGA/EGA vers... LCD

Message par xmamat »

Tout dépend de tes jeux et sources
Absolument, il n'y a pas UN réglage qui donnera un résultat parfait (i.e. bien scalé) dans tous les cas, surtout avec un LCD.
Un des gros plus du RGBtoHDMI est la gestion de la configuration par profils, qui facilite la bascule en fonction des résolutions source et destination désirées et du programme/jeu utilisé.
Dernière modification par xmamat le 18 janv. 2021 14:59, modifié 1 fois.
Zebulon
Messages : 2106
Inscription : 02 nov. 2020 14:03

Re: MDA/CGA/EGA vers... LCD

Message par Zebulon »

Pardon si ma question est stupide mais est-ce que cet upscaler pourrait convertir le signal RGB du CPC en fabriquant un câble sur mesure ?

EDIT: ok j'aurais dû lire le manuel d'abord. :oops: D'après la description en italien sur eBay c'est oui.
Dernière modification par Zebulon le 18 janv. 2021 15:04, modifié 1 fois.
Avatar de l’utilisateur
xmamat
Messages : 283
Inscription : 31 août 2020 15:02
Localisation : Paris

Re: MDA/CGA/EGA vers... LCD

Message par xmamat »

Il faut rajouter l'interface analogique pour l'Amstrad CPC. Elle est vendue sur le forum stardot.co.uk mais pas encore sur eBay il me semble.
Image
Zebulon
Messages : 2106
Inscription : 02 nov. 2020 14:03

Re: MDA/CGA/EGA vers... LCD

Message par Zebulon »

Merci je vais creuser ça.
Avatar de l’utilisateur
xmamat
Messages : 283
Inscription : 31 août 2020 15:02
Localisation : Paris

Re: MDA/CGA/EGA vers... LCD

Message par xmamat »

Bonjour,

Suite de mes réglages avec le RGBtoHDMI sur de l'EGA : j'utilise cette fois le mode interpolé 4:3 (soft) qui convient à la fois pour l'EGA basse et haute résolution et pour le CGA tout en gardant le bon pixel ratio de 5:6.
L'image est un peu moins précise qu'en integer scaling mais quand même nettement plus qu'avec le MCE2VGA.

EGA mode 0EH 640x200 > LCD 1600x1200 (interpolated soft) :
IMG_3045.JPG
IMG_3045.JPG (1.48 Mio) Consulté 6196 fois

EGA mode 10H 640x350 > LCD 1600x1200 (interpolated soft) :
IMG_3046.JPG
IMG_3046.JPG (1.34 Mio) Consulté 6196 fois

Sur Monkey Island le résultat est superbe sans déformation de l'image :
IMG_3049.JPG
IMG_3049.JPG (1.36 Mio) Consulté 6196 fois

Avec les scanlines activées :
IMG_3048.JPG
IMG_3048.JPG (1.48 Mio) Consulté 6196 fois

J'ai du faire des photos d'écran car le mode capture ne fonctionne pas correctement en scaling interpolé contrairement au scaling entier.
J'ai joint un fichier avec ma configuration optimisée en EGA/CGA pour une sortie EGA haute-résolution vers un LCD 1600x1200 (à décompresser dans la racine de la carte Micro SD) : il surcharge le mode par défaut "Standard PC". Attention de bien changer le scaling de "Auto/Integer (sharp)" à "Interpolated 4:3 (soft)". Je pense que ça devrait aussi fonctionner avec un LCD 1920x1200 (barres noires sur le coté).

Reste le MDA et l'Hercules qui ne sont pas ma priorité mais si ça intéresse quelqu'un, je peux aussi tester/optimiser les réglages pour ces modes.
Pièces jointes
CGA+EGA.zip
(1.13 Kio) Téléchargé 68 fois
Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 2841
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: MDA/CGA/EGA vers... LCD

Message par Papy.G »

J'en reviens au support du 50Hz, les écrans VGA ne supportent pas les fréquences de balayage en-dessous de 56Hz, si l'on veut qu'un affichage 50Hz se fasse sans saccades, peut-être la solution pourrait venir d'un upscaler qui doublerait la fréquence, ainsi, l'écran pourrait être forcé à 100Hz en sortie.

L'un des appareils que tu utilises propose-t'il le doublage de la fréquence?
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Avatar de l’utilisateur
xmamat
Messages : 283
Inscription : 31 août 2020 15:02
Localisation : Paris

Re: MDA/CGA/EGA vers... LCD

Message par xmamat »

Les résolutions/fréquences verticales de sortie du MCE2VGA sont malheureusement fixes et non configurables avec les boutons (peut-être en bidouillant le firmware) : 720x480@60Hz pour le CGA/EGA lo-res, 640x350@70Hz pour l'EGA hi-res et 720x400@70Hz pour le MDA/Hercules.

Avec le RGBtoHDMI, il est possible de configurer pour sortir du 50 ou 60Hz dans n'importe quelle résolution, voire la même fréquence que la source (passthrough). Bien sûr, il faut que l'écran supporte ces fréquences en entrée pour afficher quelque chose. Mais à priori, il n'y pas moyen de doubler de 50 à 100Hz...
Par contre, il existe bien des LCDs qui supportent le 50Hz direct : c'est le cas du mien (Belinea 2080 S1 capable de faire de 50 à 85Hz en VGA et DVI).

D'après ce que j'ai pu lire sur le web, la sortie des cartes CGA/EGA utilise du 60Hz, et le MDA du 50Hz. Je n'ai pas d'oscilloscope pour tester mes sorties, mais d'après ce qui affiché dans les infos à l'écran, mes fréquences de sortie et d'entrée sont toujours bien alignées.

Test avec la carte IBM MDA (50Hz) :
IMG_3058.JPG
IMG_3058.JPG (549.32 Kio) Consulté 6103 fois
Avatar de l’utilisateur
xmamat
Messages : 283
Inscription : 31 août 2020 15:02
Localisation : Paris

Re: MDA/CGA/EGA vers... LCD

Message par xmamat »

Hello,

Je me suis récemment procuré un OSSC à bon prix et j'ai fais quelques tests avec le CGA2SCART Pro et un câble Peritel :
IMG_3074.JPG
IMG_3074.JPG (475.95 Kio) Consulté 6019 fois

Je trouve le résultat encore plus net qu'avec le RGBtoHDMI en mode interpolé.

Par contre sur mon LCD 1600x1200, je n'arrive qu'à utiliser les modes Line2x, Line3x et Line4x. Le moniteur est malheureusement hors fréquence en Line5x, ce qui n'est pas tellement étonnant car d'après ce qui affiché sur l'écran de l'OSSC, le nombre de lignes que me sort le CGA/EGA lo-res est 262 (donc x5, ça dépasse 1200).
Du coup, je me retrouve avec des bandes noires verticales et horizontales dans les modes en dessous de Line5x...

IMG_3077.JPG
IMG_3077.JPG (787.42 Kio) Consulté 6019 fois

J'imagine que pour avoir une image plein écran il aurait fallu que le nombre de lignes de la source soit de 240 (ce qui est plus courant avec les consoles qui sont d'ailleurs davantage destiné à l'OSSC). Mais si quelqu'un qui connait bien cet appareil saurait comment le régler pour afficher du 1600x1200 en plein écran avec ma source, je suis preneur.

A noter que sur ma TV OLED 4K, le mode Line5x fonctionne sans problème :
IMG_3073.JPG
IMG_3073.JPG (678.33 Kio) Consulté 6019 fois
Répondre