Avoir un rendu le plus proche possible de la neo geo

Pour parler librement d'émulation arcade et consoles.
Message
Auteur
Avatar de l’utilisateur
yoanna330
Stick-o-phile
Messages : 22423
Inscription : 29 août 2004, 23:47
Localisation : Lormont (à côté de Bordeaux)

Re: Avoir un rendu le plus proche possible de la neo geo

#151 Message par yoanna330 »

Merci.
On m'avait déjà recommandé d'utiliser du 800*600 mais c'est pas top, beaucoup de choses ne rentrent pas dans l'ecran, donc je tourne sur du 1024*768.
J'ai testé un peu par hasard toutes les résolutions que j'avais sous la main, et m'est donc venu l'idée de te poser la question :)
En tout cas la 1360*1024 passe mais le 1600*1200 il veut pas :P
Toutes façons au delà de 1024*768 sur un 15 pouces, on voit plus rien :)

eke
stick de plastique
Messages : 8
Inscription : 19 août 2009, 16:27

Re: Avoir un rendu le plus proche possible de la neo geo

#152 Message par eke »

Salut, je suis tombé sur ce topic par hasard au cours de recherche sur les filtres video et je me permets de réagir:

j'ai moi meme porté puis developpé un émulateur megadrive pour gamecube/wii et il se trouve que ces consoles peuvent sortir un signal non entrelacé de 240 lignes (ou 286 pour le PAL) , quasi identique à celui généré par nos vieilles consoles...
le rendu est comme vous pouvez imaginer, extremement fidele à l'original, pour peu que votre télé le supporte... il y a un très léger filtrage résiduel qui est fait au niveau de l'encodeur video (non modifiable de maniere software, toutes les consoles modernes utilisent ce genre de filtre hard) mais la différence avec ma vieille megadrive 1 en RGB est vraiment minime.

Je me suis meme acharne jusqu'à émuler les "bordures" colorées que l'on peut voir de chaque coté de la zone d'image et à reproduire la "largeur" originale des pixels (une image de 320 pixels en sortie de la Mega Drive" n'ayant pas exactement la même "largeur" à l'écran que 320 pixels "Wii" doublés, ceci étant dû au fait que l'horloge video, appelee aussi "pixel clock", de la Wii n'est pas exactement le double de l'horloge video de la Mega drive)

Tout ca pour dire que contrairement a ce que certains semblent penser, la fidelite de restitution de l'image et du signal video original interesse reellement les developpeurs d'emulateurs mais malheureusement, reproduire cela de maniere logicielle, sur du materiel qui n'est pas fait pour ca a la base est extremement difficile.
Et la seule raison pour laquelle vous pouvez avoir l'impression que ca n'interesse personne est là: parce qu'il y a un monde entre avoir des connaissances techniques en video et être capable de reproduire fidelement un phénomène hardware via un filtre logiciel, parce que ce tu arrives à faire sous photoshop avec les bons reglages peut demander 100x plus de travail et de calcul à implementer dans un emulateur, si tant est que ce soit possible...

C'est sur, ce que l'on voit sur cette image est tres allechant mais ca reste du theorique pour moi tant qu'il n'y a pas une description précise des algorithmes de traitement d'image utilisés pour arriver à un tel resultat... tu peux continuer à precher tant que tu veux et te plaindre que personne s'interesse à tes idees, il est impossible de coder quoi que ce soit sans ca.

S'il s'agit uniquement d'un "mix" de plusieurs filtres logiciels existants afin d'obtenir l'image la plus proche de l'original alors je ne vois pas ou est le probleme: libre à chacun de le reproduire

S'il s'agit principalement d'un travail sous photoshop avec les filtres/redimensionnement/traitements qui vont bien alors je doute sincerement qu'il soit possible d'integrer la meme machine a gaz dans un emulateur sensé générer 60 trames par seconde. En clair, ok ca marche sur une capture d'ecran, une image fixe mais en temps reel, c'est difficilement envisageable meme sur une machine puissante, l'emulateur ayant d'autres choses à gerer que l'affichage (tu dis que c'est "clairement" plus optimisé que l'algo superEagle ? qu'est ce qui te permet concretement d'arriver à cette conclusion ?)

Sinon, explique moi la démarche utilisee (motion blur ? "good" scanline ?) et je serais ravi de me pencher dessus et j'en suis sur, beaucoup d'autres developpeurs également.

A ce propos,la majorité des filtres existants ne sont la que pour tenter de rendre l'image originale "acceptable" lors d'un rendu "haute resolution", rien de plus...
alors apres ok, on peut hurler que c'est degeu, que ca n'a rien a voir avec le rendu d'une télé, que ca altère l'image originale, etc... c'est tout a fait vrai mais ce n'est pas le but de ces filtres a la base et surtout ca n'enlève en rien au talent des développeurs qui ont imaginé ET distribué ces algorithmes. On peut ne pas aimer, mais tomber dans les extremes et traiter ca de "merde" à la moindre occasion, ca n'a jamais rien fait avancer, ca dessert même le discours initial... perfectionniste oui, integriste non ;-)
Dernière modification par eke le 19 août 2009, 18:43, modifié 4 fois.

Avatar de l’utilisateur
Lee Rekka
stick d'argent
Messages : 943
Inscription : 11 avr. 2009, 03:05

Re: Avoir un rendu le plus proche possible de la neo geo

#153 Message par Lee Rekka »

Ca fait du bien de lire ça Eke. Un grand merci.
http://www.yomi-dojo.fr
Site FR sur la série VF.

Chanel youtube : http://www.youtube.com/user/thaleis78

Mug Superstar
stick de platine
Messages : 2026
Inscription : 09 sept. 2004, 21:14
Localisation : Lille (59)

Re: Avoir un rendu le plus proche possible de la neo geo

#154 Message par Mug Superstar »

eke a écrit : j'ai moi meme porté puis developpé un émulateur megadrive pour gamecube/wii et il se trouve que ces consoles peuvent sortir un signal non entrelacé de 240 lignes (ou 286 pour le PAL) , quasi identique à celui généré par nos vieilles consoles...
le rendu est comme vous pouvez imaginer, extremement fidele à l'original, pour peu que votre télé le supporte... il y a un très léger filtrage résiduel qui est fait au niveau de l'encodeur video (non modifiable de maniere software, toutes les consoles modernes utilisent ce genre de filtre hard) mais la différence avec ma vieille megadrive 1 en RGB est vraiment minime.
ahhh ?
excuse-moi, je maîtrise pas trop le débat technique mais si tu es capable de la faire pour une MD sur une GC ... pourquoi on peut pas le faire avec un PC et un écran CRT ? Un PC c'est quand même autre chose comme puissance de calcul
j'ai toujours sur mon pc Neorage X qui, à mon humble avis, a de jolis scanlines ...
ceci dit, y'a pas des machines qui s'interfèrent entre la source et la TV pour convertir un "vieux signal" sur un écran plat ... genre extron ... ?
si des machines y arrivent, pourquoi pas les derniers PC ?



merci pour les précisions

Mug
RIP Gauthier,
A jamais dans nos coeurs ...

Avatar de l’utilisateur
Lee Rekka
stick d'argent
Messages : 943
Inscription : 11 avr. 2009, 03:05

Re: Avoir un rendu le plus proche possible de la neo geo

#155 Message par Lee Rekka »

Un gros souci des pc et leur écran c' est la résolution bien plus haute que tout ces bon vieux jeu.Même si on peux avoir de bon résultat, mais c est tout de suite plus compliqué. j ai toujours préféré le rendu par télé tube avec péritel rgb . Je dis pas que c est pas faisable, mai c est tout un bordel quand même.
http://www.yomi-dojo.fr
Site FR sur la série VF.

Chanel youtube : http://www.youtube.com/user/thaleis78

eke
stick de plastique
Messages : 8
Inscription : 19 août 2009, 16:27

Re: Avoir un rendu le plus proche possible de la neo geo

#156 Message par eke »

ahhh ?
excuse-moi, je maîtrise pas trop le débat technique mais si tu es capable de la faire pour une MD sur une GC ... pourquoi on peut pas le faire avec un PC et un écran CRT ? Un PC c'est quand même autre chose comme puissance de calcul
j'ai toujours sur mon pc Neorage X qui, à mon humble avis, a de jolis scanlines ...
ceci dit, y'a pas des machines qui s'interfèrent entre la source et la TV pour convertir un "vieux signal" sur un écran plat ... genre extron ... ?
si des machines y arrivent, pourquoi pas les derniers PC ?
*

je me suis peut-etre mal exprimé: je voulais dire que la gamecube/wii est capable de gérer ce type de signal en natif: l'encodeur video, qui délivre le signal video analogique vers la télé, est capable de generer ce type de signal basse resolution et "non entrelacé" (il s'agit en fait simplement d'une variation des timings du signal qui font que toutes les "lignes" apparaissent toujours au même "endroit" à l'écran, sont "superposés" si vous voulez, au lieu d'être "decalées" ou interlacées un champ sur 2, donnant l'illusion d'un signal progressif).

Il s'agit juste de configurer le type de signal que le hardware va générer, il n'y a pas de traitement logiciel et ce n'est donc pas un problème de puissance de calcul.

Par opposition, la carte graphique d'un PC génère un signal VGA (analogique mais avec des frequences de rafraichissemnt horizontales et verticales differentes d'un signal video classique) ou un signal numerique, ce qui explique notamment les différences de rendu (et les résolutions plus élevées).

Dans le monde analogique, il n'y a pas réellement de "pixels" ou de "lignes", tout ce que tu as c'est un signal periodique contenant de l'information (les "pixels") sous forme de niveaux electriques et des impulsions, elles aussi periodiques, permettant au televiseur de savoir quand il doit "passer" à la ligne suivante ou revenir en haut de l'écran (c'est un peu vulgarisé mais c'est le principe).

Ce qu'il faut retenir c'est que la nature du signal conditionne le rendu à l'ecran et que tu ne peux donc pas obtenir le même rendu qu'un signal video classique type NTSC ou PAL (des convertisseurs existent, cf. http://scanlines.hazard-city.de , mais ca depasse le cadre de l'utilisateur lambda), d'ou l'idée d'appliquer un traitement logiciel (filtres) sur l'image générée par l'émulateur avant de l'envoyer à l'ecran. A partir de ce moment, on quitte le cadre de l'emulation (et c'est exactement pour ca que le projet MAME ne s'aventure pas la dedans, le but du projet etant uniquement d'emuler les machines et leur composants) pour rentrer dans le cadre de l'interpolation (les filtres genre HQx, SUperEagle, bilinear, etc) ou de la simulation, plus ou moins fidele (effet type "scanline" divers et variés, filtres "photoshop", etc).

L'emulation d'un encodeur video et par extension, du decodeur video des televiseurs, est certainement possible (Shai Green est certainement celui qui s'en rapproche le plus avec ces filtres NTSC) mais aussi extremement difficile, d'une part parce que la theorie est compliquee (il faut convertir les valeurs R,G,B dans un autre espace de couleur, combiner les valeurs, appliquer des filtres, reconvertir en RGB, etc) mais qu'aussi en pratique, les encodeurs et les televiseurs ne fonctionnent pas tous de la même maniere, rendant la tâche quasi impossible.

Le type de filtre photoshop comme montré dans ce topic, c'est clair que c'est très joli et qu'avec un peu de tatonnement on arrive a quelquechose de très ressemblant (toutefois, je repete, ce n'est pas de l'émulation, on simule juste le rendu sur des criteres visuels avec des effets) mais malheureusement il faut aussi voir que le logiciel de retouche peut se permettre de travailler à des resolutions tres hautes (ce qui est necessaire si on veut appliquer des effets sur les pixels, ajouter des "lignes" sombres, faire varier l'intensité de scouleurs, etc), chose qu'un emulateur ne peut pas se permettre (le programme gère un buffer dans lequel l'image généree par l'emulateur peut être travaillée, plus le buffer est grand et plus les calculs sont complexes, plus le temps d'execution sera important... j'ose meme pas imaginé ce que donnerait un programme appliquant en temps reel 3 ou 4 filtres complexes sur un buffer de 1600*1200 pixels)
Dernière modification par eke le 20 août 2009, 16:52, modifié 3 fois.

Mug Superstar
stick de platine
Messages : 2026
Inscription : 09 sept. 2004, 21:14
Localisation : Lille (59)

Re: Avoir un rendu le plus proche possible de la neo geo

#157 Message par Mug Superstar »

Ok, merci pour ta réponse, je vais devoir la relire plusieurs afin de bien comprendre mais c'est le cas de toute les réponses de qualité il me semble :D ...

ceci dit, le concept d'émulation qui s'arrêterait qu'à la reproduction du fonctionnement d'une machine ne me plaît pas !

émuler, pour moi, c'est faire en sorte de retrouver le plaisir de jouer sur une ancienne machine en retrouvant le maximum de sensations possibles et surtout les sensations visuelles. Une machine n'est rien sans le périphérique qui va nous permettre de voir ce qu'elle produit, je ne vois pas pourquoi ce problème de la restitutions visuelle des informations ne ferait pas parti du "travail" (bénévole et de qualité certes, je ne l'oublie pas) des programmeurs d'émulateurs ?

Je commence à prendre conscience, mais je n'en ai jamais douté, de la complexité du problème ... mais après tout c'est aussi cela le challenge ... non ?

Faudrait-il attendre la disparition totale des crt pour que notre cerveau se déshabituant des scanlines accepte leurs ersatzs ou une vaillante et courageuse équipe de programmeurs va -t- elle participer à la sauvegarde du patrimoine video-ludique en mettant au point LE filtre qui mette tout le monde d'accord (qui a parlé d'une platine Toshiba sur un écran Toshiba d'Egret II ... qui ?)

Je souhaite que ce débat perdure et je remercie tout leurs participants ... grâce à vous, j'ai stocké des CRT pour la vie de mes jours ... ;D

Mug
RIP Gauthier,
A jamais dans nos coeurs ...

eke
stick de plastique
Messages : 8
Inscription : 19 août 2009, 16:27

Re: Avoir un rendu le plus proche possible de la neo geo

#158 Message par eke »

Mug Superstar a écrit : ceci dit, le concept d'émulation qui s'arrêterait qu'à la reproduction du fonctionnement d'une machine ne me plaît pas !

émuler, pour moi, c'est faire en sorte de retrouver le plaisir de jouer sur une ancienne machine en retrouvant le maximum de sensations possibles et surtout les sensations visuelles. Une machine n'est rien sans le périphérique qui va nous permettre de voir ce qu'elle produit, je ne vois pas pourquoi ce problème de la restitutions visuelle des informations ne ferait pas parti du "travail" (bénévole et de qualité certes, je ne l'oublie pas) des programmeurs d'émulateurs ?
pour de multiples raisons:
-parce que les filtres logiciels ont leur limite et ne permettrons jamais de reproduire exactement le rendu d'une tele analogique sur un ecran CRT ou LCD et qu'il est naif de croire que tout est realisable en logiciel.
-parce que des solutions "hard" bien plus efficaces existent
-parce qu'il s'agit d'un hobby et que les codeurs bossent avant tout sur ce qui leur plait mais surtout sur ce dont ils se sentent capables
-parce que dans tout projet, tu te fixes des priorités et des limites ou sinon tu t'en sors pas.
-parce que le code source est libre et que chacun est libre de proposer sa propre solution, si tant est qu'elle soit concrete et realisable et pas juste un concept vague et abstrait.
-parce que c'est autrement plus compliqué que l'on peut penser au depart quand on croit connaitre le sujet et que beaucoup de gens extremement competents s'y sont deja cassé les dents

Mug Superstar
stick de platine
Messages : 2026
Inscription : 09 sept. 2004, 21:14
Localisation : Lille (59)

Re: Avoir un rendu le plus proche possible de la neo geo

#159 Message par Mug Superstar »

eke a écrit : -parce que des solutions "hard" bien plus efficaces existent

mode intéressé [on]
lesquelles ?
mode intéressé [off]

Mug
... oui je sais ... une recherche google ... mais bon, je sens que ta réponse sera plus ... comment dirais-je ... plus professionnelle voilà ...
RIP Gauthier,
A jamais dans nos coeurs ...

Avatar de l’utilisateur
Epsylon
Théoricien du pixel
Messages : 1222
Inscription : 17 oct. 2006, 23:42
Localisation : Marseille

Re: Avoir un rendu le plus proche possible de la neo geo

#160 Message par Epsylon »

OK. Serious business here !

La question du rendu du signal 15 khz est complexe.

Jusqu'à maintenant, la meilleure façon de se rapprocher du 240p ........c'est de diffuser en 240p ;D , sur un bon CRT des familles (cf les MAME cab avec soft15khz, l'émulation sur Wii qui gère ça en natif ).

Maintenant, la technique sur laquelle je bosse:

elle se base sur plusieurs solutions qui existent déjà (rien de nouveau) , mais utilisées et mixées différemment, et surtout d'une façon plus juste (vis à vis de la technologie cathodique et du rendu typique du 15 khz) .

La seule chose qui peut poser "problème" (en terme de ressources à utiliser) , c'est le fameux flou unidirectionnel ( "motion blur" ), à l'horizontal , qui est une des clés de la qualité du rendu .

Si jusqu'à présent on a toujours eu du bilinéaire entre autre (deux directions), c'est parce que c'est pas paramétrable en hardware (option des cartes graphiques).
Faire un flou en software, c'était pas envisageable à l'époque.

Pour ça, j'ai une solution :

Faire un agrandissement en deux étapes.

D'abord à l'horizontal, sans changer la résolution verticale (avec filtrage hardware) :

on part de ça : Image

pour arriver à ça : Image

Et ensuite, on agrandit l'image à la verticale, avec un ratio entier , et sans traitement (pas de filtrage hardware):
Image

Taadaaaaa !!! :roi:

En terme de ressources, on doit pas être plus gourmand qu'un " prescal " sous MAME ...

Ensuite, le reste, c'est de la superposition de lignes (ce que les gens appelent à tord "scanlines") , MAIS avec la bonne transparence et au bon endroit . En clair, ça correspond aux filtres ".png" sous MAME, sauf que là ils sont bien calés, et avec une bonne transparence.

Le dernier point, c'est l'effet scanline à proprement parler, l'effet qui restitue le phénomène majeur du rendu 15 khz du CRT : le spot qui change de diamètre suivant l'intensité lumineuse .

Pour se faire, pas de calculs complexes pixel à pixel (surtout sur des buffers de 1600 x 1200 !! :o ) . On part toujours de la trame de base, en basse résolution ( 320 x 240 en gros) , et de là on extrait d'un côté les teintes lumineuses du RGB, et de l'autres les plus foncées .

Il suffit ensuite de superposer ça dans le bon ordre et avec de la transparence , qui viendra se conjuguer avec la transparences des "lignes noires".

En clair, on a d'abord:

- un agrandissement qui tient compte d'un ratio entier pour la valeur vertical (IMPERATIF) avec un flou uni directionnel
- puis les pixels sombres
- puis les lignes noires
- puis les pixels clairs ( transparence à 70%, de sorte à faire légèrement apparaître les lignes noires, et donner cette impression que les pixels clairs sont ronds et plus gros que les pixels sombres).


Donc, y a pas d'algorithme complexe, y a pas de filtre "magique gérable que sous un logiciel photo" [ j'ai utilisé photoshop, mais que des fonctions supra basiques ! je me suis inspiré de ce qui ce faisait sous émulateur, sauf que je l'ai fait en graphisme au lieu de coder ] , y a pas de traitements de sous pixels supplémentaires . C'est bien différent des filtres type " 2xSAI " où il s'agit de calculer autour de chaque pixel les sous pixels à recréer en fonction des voisins .
Le genre de truc qui bouffe selon moi plus de ressources, et surtout donne un résultat irrégulier (et trop laid :volatiliz ) :
quand un texte blanc défile à la vertical sur un background coloré (une intro par ex.), on a clairement le temps de voir comment les sous-pixels "inventés" se baladent à gauche ou à droite suivant la teinte du fond, venant déformer la police de caractère ...

De toute façon, en temps normal, sur un pauvre sprite (graphisme "constant") ça donne un effet "gouache" qui non seulement n'est pas fidèle, mais est en plus "moche" et vient tuer le détail du Pixel Art, chose que ne fait absolument pas le CRT à 15khz, ni mon filtre qui est pour l'instant l'expression la plus proche de ce rendu.

(un truc à des années lumières de ce genre d'ignominie :ptdr: :silly: :teuteuteu: )


De toute façon, sur mon futur site, ce sera mieux expliqué, là c'est les grandes lignes , mais l'idée est là. Ce n'est pas abstrait, ni infaisable en dehors d'un screenshot statique, y a plusieurs traitements mais ils sont "simples" .

Avatar de l’utilisateur
Epsylon
Théoricien du pixel
Messages : 1222
Inscription : 17 oct. 2006, 23:42
Localisation : Marseille

Re: Avoir un rendu le plus proche possible de la neo geo

#161 Message par Epsylon »

A ce propos,la majorité des filtres existants ne sont la que pour tenter de rendre l'image originale "acceptable" lors d'un rendu "haute resolution", rien de plus...
Un gros souci des pc et leur écran c' est la résolution bien plus haute que tout ces bon vieux jeu.Même si on peux avoir de bon résultat, mais c est tout de suite plus compliqué. j ai toujours préféré le rendu par télé tube avec péritel rgb . Je dis pas que c est pas faisable, mai c est tout un bordel quand même.
C'est tout un bordel, en effet. C'est donc dans ce genre de situations que des décisions claires et précises doivent être prises.

Quand on doit diffuser du 320 x 240 sur un support "haute définition" ( 720p, 1080p, 1600 x 1200 etc. ), la ligne directrice majeure à prendre c'est de garder le même nombre de pixels qu'à l'origine, et de profiter de la résolution supérieure pour arrondir et bien définir ce pixel de base.

Sur mes screenshots virtuels, à aucun moment il n'est question d'inventer des sous pixel, de vouloir augmenter l'information de base. Y a toujours le même nombre de pixels qu'au départ, mais ils sont bien séparés par de fins interstices noirs, ils sont bien "ronds", et les clairs sont plus gros que les foncés .

Sur CRT, le phénomène tient à la nature du balayage du spot, c'est un phénomène physique. Avec une résolution et des écrans qui fonctionnent complètement différemment, l'idée c'est de reproduire ce phénomène. Mais encore eut-il fallu l'avoir bien observé et compris ce phénomène !


Quand je lis les trucs du "CRT simulator" sur la page de Bogost, je peux pas m'empêcher de dire : bande d'imbéciles , incompétants !

En dehors de ce genre de bouffonneries monumentales pour lesquelles une page entière doit être dédiée pour contrer chaque point évoqué , il reste le truc le plus probable, le fameux filtre "NTSC" de chez Blaarg .

Oui, mais le fameux filtre, je l'ai jamais vu fonctionner plus haut que la résolution doublée ( soit 480 lignes : 640 x 480 ), et manque de bol, on doit monter plus haut en résolution sur la majorité des moniteurs.

Dans le même genre, à propos de la fidélité théorique à la norme NTSC (et plus largement : du monde broadcast), j'ai lu des putains de topics à propos de timings, de largeur de fenêtre, de durée de pixel etc . Certes, y a une recherche sur le fonctionnement technique et sur " l'exactitude du signal ", mais juste un truc :

qu'est-ce que ça peut apporter pour des écrans qui fonctionnent complètement différemment putain-de-bordel-de-merde 8O ?

Oui, la norme NTSC c'est 480 lignes, avec tant de lignes de synchro, tant de largeur de "color burst", de back-porch, tant de fréquence porteuse, tant de pixel clock etc. MAIS a aucun moment, y a le moindre screenshots posté dans ce putain de topic qui montrait une image potable et fidèle à ce qui se trouve sur la face d'un CRT.
C'est du pur gâchis, et surtout ça contraint à ne jamais sortir de la logique de la " résolution standard ", qui ne permettra jamais de restituer la variation du diamètre du spot ( parce que faut plusieurs pixels carrés pour produire un "rond" ).

Quand tu vois ce screenshot par exemple :

http://raster.effect.free.fr/15khz/sf3_ ... icubic.jpg

Hé! mais tu crois que j'en ai quelque chose à branler des putains de back porch , des timings de machin truc et blabla ? 8O

NON.

Je me concentre sur la scanline , sur le format 4/3 , sur le contraste, la luminosité, le gamma.

Et CA, ça ressemble à un affichage de CRT à 15 khz. C'est BEAU 8) .

La théorie, faut s'en servir quand ça sert vraiment, sinon on produit de la merde, tout simplement . :roll:

Avatar de l’utilisateur
Epsylon
Théoricien du pixel
Messages : 1222
Inscription : 17 oct. 2006, 23:42
Localisation : Marseille

Re: Avoir un rendu le plus proche possible de la neo geo

#162 Message par Epsylon »

Mug Superstar a écrit : émuler, pour moi, c'est faire en sorte de retrouver le plaisir de jouer sur une ancienne machine en retrouvant le maximum de sensations possibles et surtout les sensations visuelles. Une machine n'est rien sans le périphérique qui va nous permettre de voir ce qu'elle produit, je ne vois pas pourquoi ce problème de la restitutions visuelle des informations ne ferait pas parti du "travail" (bénévole et de qualité certes, je ne l'oublie pas) des programmeurs d'émulateurs ?
Dans "jeu vidéo" , y a " vidéo " , c'est une activité dont les informations sont perçues en priorité par le sens de la vue. Rejouer à des vieux jeux, c'est rejouer à des jeux qui ont du fonctionner sur le seul type d'écran de l'époque : le CRT .

C'est un feeling unique, c'est la dernière fois qu'on verra ce type de rendu, parce que désormais la technologie change complètement ( passage au tout matriciel ), et la résolution augmente. Si bien que même quand quelqu'un produit un soft "old-school", il est "saboté" par l'écran qui l'affiche .
Le filtre que je développe, il pourrait servir en dehors de l'émulation, pour tous ceux qui veulent créer du beau pixel art avec un bon rendu old-school inimitable .
Faudrait-il attendre la disparition totale des crt pour que notre cerveau se déshabituant des scanlines accepte leurs ersatzs ou une vaillante et courageuse équipe de programmeurs va -t- elle participer à la sauvegarde du patrimoine video-ludique en mettant au point LE filtre qui mette tout le monde d'accord
Bien avant ça, à l'époque où tout le monde avait encore du CRT pour la TV et le PC, la Dreamcast a commencer l'entreprise de sabotage : c'est la première fois qu'on a vu des portages de jeux 240p diffusés en 480i , ou pire en 480p, non filtrés (tout cubique et avec des problèmes de ratio).

C'est dire si ça fait longtemps que le problème existe, même en dehors de l'émulation PC .

Là, la migration vers les écrans plats n'a fait que renforcer la trahison, pour s'eloigner et oublier encore un peu plus ce qui était la norme à peine dix ans plus tôt .

Tant et si bien que les diverses tentatives pathétiques et foireuses de restitutions de l'affichage CRT constituent plus un vague cliché d'un souvenir brumeux et mal défini de ce qu'on arrive plus à voir distinctement.

Je me répète, mais le " CRT simulator " cité plus haut, c'est pas un " simulateur de CRT ", c'est un simulateur du souvenir diffus de ce qui reste vaguement du CRT dans la mémoire collective .

Bravo ! :antitrust:

le "flou analogique" :roll: se conjugue avec le flou des souvenirs délavés ...

eke
stick de plastique
Messages : 8
Inscription : 19 août 2009, 16:27

Re: Avoir un rendu le plus proche possible de la neo geo

#163 Message par eke »

En terme de ressources, on doit pas être plus gourmand qu'un " prescal " sous MAME ...
je ne suis cependant pas sur que toutes les cartes graphiques permettent d'effectuer un scaling horizontal (avec filtrage bilineaire) dans un premier temps, SUIVI d'un scaling vertical avec filtre desactive, la plupart du temps tout se fait en une passe (mais je me trompe peut-etre, je ne susi pas ters cale en carte graphique :oops: ). Sur la Wii en tout cas, ce n'est pas possible (mais on s'en fout vu qu'on a pas besoin du scaling vertical car le mode 240p a juste besoin d'un buffer de 240 lignes).

Dans le cas ou ce n'est pas possible via le hard, il reste la solution logicielle: etirement de l'image a l'horizontale avec un filtrage soft genre bi- ou tri-lineaire ou autre puis doublement simple des lignes pour arriver au meme resultat.
Dans tous les cas, ca reste effectivement acceptable en terme de ressource cpu.
Ensuite, le reste, c'est de la superposition de lignes (ce que les gens appelent à tord "scanlines") , MAIS avec la bonne transparence et au bon endroit . En clair, ça correspond aux filtres ".png" sous MAME, sauf que là ils sont bien calés, et avec une bonne transparence.
La solution serait de passer par les fonctions de texturing des cartes graphiques (peut-etre la methode des filtres "png" ?) mais la encore, je ne m'y connais pas du tout (la question est de savoir si de multiples traitements sont possible via la CG) donc je limiterais a commenter la methode "soft"

en soft, le "mixage" des 2 images peut prendre enormement de temps vu qu 'on travaille presque pixel par pixel et ligne par ligne sur un tres gros buffer. Les effets de transparence à gerer dans un filtre software, c'est assez lourd egalement. Sur que sous photoshop ca peut paraitre tout simple, c'est fait expres hein (pas pour rien que c'est un programme reconnu) mais on a aucune idee de la complexite des calculs derriere ...!
Le dernier point, c'est l'effet scanline à proprement parler, l'effet qui restitue le phénomène majeur du rendu 15 khz du CRT : le spot qui change de diamètre suivant l'intensité lumineuse .

Pour se faire, pas de calculs complexes pixel à pixel (surtout sur des buffers de 1600 x 1200 !! :o ) . On part toujours de la trame de base, en basse résolution ( 320 x 240 en gros) , et de là on extrait d'un côté les teintes lumineuses du RGB, et de l'autres les plus foncées .

Il suffit ensuite de superposer ça dans le bon ordre et avec de la transparence , qui viendra se conjuguer avec la transparences des "lignes noires".En clair, on a d'abord:

- un agrandissement qui tient compte d'un ratio entier pour la valeur vertical (IMPERATIF) avec un flou uni directionnel
- puis les pixels sombres
- puis les lignes noires
- puis les pixels clairs ( transparence à 70%, de sorte à faire légèrement apparaître les lignes noires, et donner cette impression que les pixels clairs sont ronds et plus gros que les pixels sombres).

Donc, y a pas d'algorithme complexe, y a pas de filtre "magique gérable que sous un logiciel photo" [ j'ai utilisé photoshop, mais que des fonctions supra basiques ! je me suis inspiré de ce qui ce faisait sous émulateur, sauf que je l'ai fait en graphisme au lieu de coder ] , y a pas de traitements de sous pixels supplémentaires .
j'ai bien compris le principe, il est plutot simple: appliquer un filtre de type "scanline" en transparence MAIS avec une transparence variable selon l'intensité des pixels

toutefois, d'une partles filtres des emulateurs jouent rarement sur l'intensité des pixels parce que ca demande de faire des calculs supplementaires pour chaque pixel, et encore une fois, tu n'as aucune idee de la complexité REELLE des calculs derriere, tu ne peux donc pas affirmer qu'il ne sagit pas d'algorithme complexe juste parce que les fonctions te paraissent basiques. Je le repete, les effets de transparence et le mix de pixel, à faire en soft, c'est TRES couteux en ressource et plus la resolution de sortie est grande, plus c'est couteux.

Apres, reste toujours la solution d'utiliser les fonctions de la carte graphique mais la ca depasse mes competences et surtout je doute que tu puisses la programmer pour faire des operations aussi fines, pixel par puixel, voir meme ligne par ligne.

mode intéressé [on]
lesquelles ?
mode intéressé [off]

Mug
... oui je sais ... une recherche google ... mais bon, je sens que ta réponse sera plus ... comment dirais-je ... plus professionnelle voilà ...
cherche des infos sur les Scan Converters, ils te permettent de convertir les signaux type VGA ou autre vers un signal video classique 15kHz (480i,240p...)
ce que je sais, je l'ai deouvert ici: http://scanlines.hazard-city.de/
ca ne change pas le probleme initial qui fait que tu as besoin d'un moniteur RGB ou d'une télé supportant le 15kHz mais ca permet d'utiliser les émulateurs PC dans les meilleures conditions

Mug Superstar
stick de platine
Messages : 2026
Inscription : 09 sept. 2004, 21:14
Localisation : Lille (59)

Re: Avoir un rendu le plus proche possible de la neo geo

#164 Message par Mug Superstar »

Merci pour vos réponses à tous les deux.

Mug
RIP Gauthier,
A jamais dans nos coeurs ...

Avatar de l’utilisateur
Epsylon
Théoricien du pixel
Messages : 1222
Inscription : 17 oct. 2006, 23:42
Localisation : Marseille

Re: Avoir un rendu le plus proche possible de la neo geo

#165 Message par Epsylon »

eke a écrit : La solution serait de passer par les fonctions de texturing des cartes graphiques (peut-etre la methode des filtres "png" ?) mais la encore, je ne m'y connais pas du tout (la question est de savoir si de multiples traitements sont possible via la CG) donc je limiterais a commenter la methode "soft"

en soft, le "mixage" des 2 images peut prendre enormement de temps vu qu 'on travaille presque pixel par pixel et ligne par ligne sur un tres gros buffer. Les effets de transparence à gerer dans un filtre software, c'est assez lourd egalement. Sur que sous photoshop ca peut paraitre tout simple, c'est fait expres hein (pas pour rien que c'est un programme reconnu) mais on a aucune idee de la complexite des calculs derriere ...!
C'est vrai que ce point me turlupine aussi. Dans le principe c'est simple, mais dans l'application ...

Reste que pour mes tests, j'ai utilisé un vieux PC avec peu de mémoire et une carte graphique intégré, et le moindre traitement qui se rapproche des effets "2xSal" et "Super Eagle" ( pâte à modeler style ! :mrd: ) prends du temps, alors qu'un changement de transparence sur un calque est complètement .... transparent ^^ (instantané), de même qu'un flou directionnel .

Pour moi, ça semble logique, vu que dans les deux cas on part de la même image, mais le traitement complexe demande des instructions et des "tests" plus lourds. Il faut "réfléchir" et les ordinateurs sont lents pour la réflexion, ils préfèrent le traitement de masse bête et méchant ^^ .

C'est justement pour ça que je me suis cassé la tête pour trouver une méthode qui évite absolument de "tester" pixel à pixel, ligne par ligne , pour effectuer le fameux et essentiel changement de diamètre du spot. Sinon, on serait dans le même niveau "d'exigence" qu'un filtre "complexe".


Sinon, autre chose : la Snes gère la transparence en hard, avec deux plans simultanés, et même les émulateurs des débuts n'ont jamais été mis en difficulté pour restituer le phénomène. De même, certains jeux Megadrive font de la transparence en soft ( Ex Ranza 8O ), et y a pas de ralentissement malgré la profusion de sprites.

Donc, j'imagine que ça reste jouable, mais c'est vrai que j'attends l'avis d'un pro des cartes PC , ou de coder moi même pour me rendre compte du truc . ^^'

Au pire des cas, j'ai une autre approche en tête, puisque je pense à ce traitement mais pour les vraies bécanes ( faire un vrai scaling des jeux old-school pour les écrans HD). Et là, il sera pas question de réaliser plusieurs "calques" puisqu'il faut bosser en temps réel en fonction d'un signal vidéo "très lent" .

Donc, j'ai plus d'un tour dans mon sac . :roi:

j'ai bien compris le principe, il est plutot simple: appliquer un filtre de type "scanline" en transparence MAIS avec une transparence variable selon l'intensité des pixels

hum..... non, pas tout à fait : il y a plusieurs filtres, avec différentes valeurs de transparences, MAIS elles ne varient JAMAIS.

L'intensité du pixel, sa rondeur, c'est une "triche" optique liée à l'ordre des "calques" et la transparence de ceux ci. En aucun cas le traitement ne consiste à "intérroger l'image" pour déterminer un a un quelques pixels doivent être gros, et quels doivent être petits, et réaliser la transition au "cas par cas" .

C'est du traitement bête et méchant, je le redis, faut pas faire réfléchir l'ordinateur, c'est une perte de temps . ^^

Avatar de l’utilisateur
Epsylon
Théoricien du pixel
Messages : 1222
Inscription : 17 oct. 2006, 23:42
Localisation : Marseille

Re: Avoir un rendu le plus proche possible de la neo geo

#166 Message par Epsylon »

eke a écrit : cherche des infos sur les Scan Converters, ils te permettent de convertir les signaux type VGA ou autre vers un signal video classique 15kHz (480i,240p...)
ce que je sais, je l'ai deouvert ici: http://scanlines.hazard-city.de/
ca ne change pas le probleme initial qui fait que tu as besoin d'un moniteur RGB ou d'une télé supportant le 15kHz mais ca permet d'utiliser les émulateurs PC dans les meilleures conditions

Hum ! Quand tu lis ce genre de commentaire (sur le site mentionné) :
" Of course those things can't restore the original resolution of your game but with the generel blurriness and excessive contrast settings of most arcade cabs, you'll hardly see a difference - believe me ! "
Ca s'annonce mal . :?

Le problème des convertisseurs, c'est qu'ils bossent à partir d'une trame mise en mémoire, selon des processus définis .... et pas toujours adapté à la PRECISION et la qualité recherchée pour le jeu old-school .
Ici, on parle qualité, RGB, réglages tip top. On parle pas d'écrans rinçés et mal réglés, nourris de signaux pourris . Non mais !!!


Les convertisseurs 31 -> 15 khz font de la division, peu importe si le contenu n'est pas dans une résolution multiple de 640 x 480. Le genre de truc qui pose problème pour les jeux Capcom par exemple ( 384 x 224 ), ou même bien des jeux qui sortent du standard 320 x 240 (QVGA) .

Les convertisseurs 15 -> 31 khz eux font quasi tous du désentrelacement.

Certains de ceux spécialisés pour les jeux vidéo intègrent des "fake scanlines" , mais c'est du niveau de ce que les premiers émulateurs proposaient : 1 ligne sur deux, avec au mieux un peu de transparence pour éviter ce genre d'effet:

Image

-> Une perte radicale de luminosité.



Les désentrelaceurs classique induisent tous du lag' à cause de traitement inutiles pour ce qui concerne la lo-rez des jeux old-school (ce qui est normal vu qu'à la base ils sont prévu pour de la vidéo, des films, où on s'en fout du retard à l'affichage, suffit juste de faire un délai pour l'audio).

La meilleure solution pour transformer du 480i en 240p , c'est mon montage de synchro, qui bosse en temps réel, sans mise en trame. Un montage qui se contente de faire simplement ce qui est nécessaire dans le cas qui nous intéresse .

Faire comme indiqué dans le site, à l'aide d'appareils sophistiqués (qu'on peut trouver à pas cher, c'est vrai), c'est à dire transformer du 480i en 480p, puis transformer ce 480p en 240p, c'est juste du n'importe quoi, ça introduit du lag et des artefacts, et ça peut ruiner la résolution de départ.

Pourquoi faire compliqué, moche et inefficace quand on peut faire simple et parfaitement ?
De mon avis, son option pour regagner des "scanlines", c'est juste de la .... enfin vous savez, quoi . :roll:

Invité

Re: Avoir un rendu le plus proche possible de la neo geo

#167 Message par Invité »

Ici je crois que tu confonds différents trucs.
D'abord "scaler", et "doubleur de ligne". Ce sont deux choses très différentes. Ce sont des technologies différentes. Pour le dire simplement, un scaler donne un résultat de merde comparé à un doubleur mais il peut fournir des tonnes de réso de sortie différentes (upscalées ou downscalées), alors que par définition le doubleur/desinterlacer ne peut en fournir qu'une (le double de la réso d'origine).

Pour ce qui est du matos en question. Ne commet pas l'erreur de confondre un super emotia avec ne serait-ce qu'un produit de luxe d'aujourd'hui (même à 5000 euros). Y a pas photo. Le premier est du matos de pro garanti à vie. L'autre c'est de la daube. En cumulant un desinterlacer et un convertisseur de ce type, le lag et les artefacts sont infinitésimaux. Et comme les CRTs ne sont pas dépassés par les écrans plats ce vieux matos n' a pas été dépassé par les scalers d'aujourd'hui pour ce qu'on veut en faire ici (j'ai pas dit pour tout). Tous les "scalers" ne se valent pas et au fond l'expression ne veut plus rien dire (à la base c'était un sytème particulier de traitement de la résol d'un signal video parmi d'autres meilleurs que lui... et puis c'est devenu le simple fait de modifier la réso d'un signal vidéo).

Il y a un moyen pour avoir du 1:1 sur borne/écran TV avec scanlines naturelles et sans perte de luminosité (tu te figures bien que la correction est intégrée sur des appareils qui valaient plus de 80000 balles à l'époque?!... ton délire sur le lag est une blague...). Il suffit d'avoir correctement configuré ce dernier et de pouvoir changer la réso de la carte graph "à la volée" avec quickres par exemple.
Bref avec des scalers lambdas ce que tu dis se tient. Mais PAS avec ce matos pro old school... Pour moi en terme de qualité on a:
1/ matos original (cher)
2/ Emu advmame et arcadeVGA sur CRT 15khz (chiant à config mais une fois que c'est fait c'ets fait) et si ca existe les cartes Xen1 avec advmame intégré et bien configuré.
3/ Emu Mame 0.99, quickres et convertisseur pro sur CRT 15Khz (quasi plug'n play mais à chaque changement du sytème émulé faudra passer une minute à adapter le reglage)
4/ Emu Mame 0.99, quickres sur CRT 31Khz (faut juste avoir accès aux potards de règlage)
5/ Emu Mame 0.99 bien configuré sur excellent écran plat en 1600x1200

Ton système est forcément meilleur que 4/, pas nécessairement meilleur que 3. Si t habitais pas loin et que tu me filais un coup de main pour cabler ma borne on aurait pu tester ensemble :lol:
(oui je perd pas le nord...)

XX-Sodom

Re: Avoir un rendu le plus proche possible de la neo geo

#168 Message par XX-Sodom »

Je me rend compte que t as pas compris. C'est le CRT qui produit les scanlines, l'écran, pas le convertisseur!!!! Elles sont naturelles donc et aucune différence entre elles et celles que tu aurais sur le matos d'origine :o

Avatar de l’utilisateur
kaneda56
Life is life
Messages : 9914
Inscription : 06 juin 2005, 22:04
Localisation : Paris 13eme

Re: Avoir un rendu le plus proche possible de la neo geo

#169 Message par kaneda56 »

"invité", je crois qu'Epsylon maitrise bien mieux son sujet que toi, tu es assez mal placé pour venir lui coller la différence entre scaler et doubleur en pleine tête, d'autant que visiblement tu n'as pas compris le but du topic (pour rappel: trouver le moyen d'avoir un rendu digne de celui du CRT sur un écran TFT). On est tous au courant que le meilleur rendu "CRT", c'est sur CRT qu'on peut l'obtenir. Sauf que c'est pas de ça qu'on parle.
Et faut arrêter avec vos Mame O.66, O.99 et autre 0.126. On va pas rester à des version antédiluvienne sous prétexte qu'il y avait le super filtre qui pown. On cherche a trouver le moyen d'avoir un bon rendu, quelque soit la version.

eke
stick de plastique
Messages : 8
Inscription : 19 août 2009, 16:27

Re: Avoir un rendu le plus proche possible de la neo geo

#170 Message par eke »

Reste que pour mes tests, j'ai utilisé un vieux PC avec peu de mémoire et une carte graphique intégré, et le moindre traitement qui se rapproche des effets "2xSal" et "Super Eagle" ( pâte à modeler style ! :mrd: ) prends du temps, alors qu'un changement de transparence sur un calque est complètement .... transparent ^^ (instantané), de même qu'un flou directionnel .

Pour moi, ça semble logique, vu que dans les deux cas on part de la même image, mais le traitement complexe demande des instructions et des "tests" plus lourds. Il faut "réfléchir" et les ordinateurs sont lents pour la réflexion, ils préfèrent le traitement de masse bête et méchant ^^ .

C'est justement pour ça que je me suis cassé la tête pour trouver une méthode qui évite absolument de "tester" pixel à pixel, ligne par ligne , pour effectuer le fameux et essentiel changement de diamètre du spot. Sinon, on serait dans le même niveau "d'exigence" qu'un filtre "complexe".
ça ne veut absolument rien dire, ce que tu compares avec les effets 2xsai n'en sont pas, tu ne peux pas utiliser comme base de comparaison quelque chose qui n'est pas identique, juste parce que selon toi l'effet est ressemblant au final...

de plus, comment crois tu qu'un filtre avec effet de transparence fonctionne de manière logicielle ? tu es obligé de passer pixel par pixel et canal par canal (dest.R = alpha x source.R + (1-alpha) x filtre.R, dest.G= alpha x source.G + (1-alpha) x filtre.G, dest.B = alpha x source.B + (1-alpha) x filtre.B), ce qui n'est peut-etre pas complexe en calcul mais tres lent si on utilise pas les fonctions hard de la CG.

encore une fois, tu te bases uniquement sur ton expérience d'utilisateur de logiciel qui applique un calque de transparence sur une image et qui est surement optimisé pour utiliser les fonctions hard des cartes graphiques, sur une image à la fois ,de manière ponctuelle

je le répète: il y a un monde entre la simplicité apparente avec laquelle tu peux appliquer des calques et des effets sur une image via un logiciel de traitement d'image et la complexité reelle des calculs et algos derriere.

enfin bon, on s'en sortira pas tant que auras pas commencé à coder et te rendre compte par toi même de la chose :)

(attention, je ne veux pas dire que c'est impossible ou décourager qui que ce soit, juste expliquer que les choses ne sont pas toujours aussi "évidentes" qu'on peut parfois avoir la prétention de croire)
Hum ! Quand tu lis ce genre de commentaire (sur le site mentionné) :
Citation:
" Of course those things can't restore the original resolution of your game but with the generel blurriness and excessive contrast settings of most arcade cabs, you'll hardly see a difference - believe me ! "


Ca s'annonce mal . :?

Le problème des convertisseurs, c'est qu'ils bossent à partir d'une trame mise en mémoire, selon des processus définis .... et pas toujours adapté à la PRECISION et la qualité recherchée pour le jeu old-school .
Ici, on parle qualité, RGB, réglages tip top. On parle pas d'écrans rinçés et mal réglés, nourris de signaux pourris . Non mais !!!...

"Invité" a tout a fait raison, ce genre de matériel n'est pas juste un dedoubleur de ligne, c'est plus complexe et performant que ca: il convertit réellement le signal VGA analogique en entrée vers le signal souhaité, y compris du vrai 15kHz "basse resolution" pour les plus performants. Ce n'est pas du tout un effet "scanline" artificiel, le signal analogique est réellement modifie et le resultat est bluffant...

Le problème énoncé concerne uniquement les résolutions pas ordinaires utilisées par les bornes d'arcades: un écran d'ordinateur ne peut pas de toute façon afficher ce genre de résolution, donc ca ne change rien au problème, l'emulateur va toujours devoir scaler la largeur de l'image vers une largeur plus commune (640 pixels par exemple) et appliquer un filtre horizontal.

De toute facon, comme dit plus haut, ce genre de matos ne s'applique que si a la base tu possède un moniteur capable d'afficher du 15kHz, ce qui n'est pas trop le sujet. Mais il s'agit néanmoins d'une solution qui mérite d'être présentée, surtout que ce genre de télé ou de moniteur, ca existe toujours et bcp de gens en possède encore (j'ai du mal a me séparer de ma bonne vieille trinitron rien que pour ca ... dur d'expliquer a madame pourquoi le sexy LCD tout plat qui prend pas de place, c'est moins bien :lol: )

Avatar de l’utilisateur
Epsylon
Théoricien du pixel
Messages : 1222
Inscription : 17 oct. 2006, 23:42
Localisation : Marseille

Re: Avoir un rendu le plus proche possible de la neo geo

#171 Message par Epsylon »

Invité a écrit : Pour ce qui est du matos en question. Ne commet pas l'erreur de confondre un super emotia avec ne serait-ce qu'un produit de luxe d'aujourd'hui (même à 5000 euros). Y a pas photo. Le premier est du matos de pro garanti à vie. L'autre c'est de la daube. En cumulant un desinterlacer et un convertisseur de ce type, le lag et les artefacts sont infinitésimaux.
Le processus du désentrelacement introduit obligatoirement du lag, parce qu'il faut bosser avec minimum deux trames (donc, les attendre) mais souvent plus, ensuite effectuer le ou les processus voulus (y a des algorithmes qui détectent s'il s'agit d'un mouvement rapide , comment assurer la transition entre les trames, s'il s'agit d'un film, s'il faut faire du 3:2 pulldown dans le cas du NTSC etc.), et ensuite restituer le tout...

Si derrière ça t'ajoutes un autre appareil même ultra-performant, t'as déjà pris des dixièmes de seconde dans les dents. Tu récupères la trame désentrelacée, stockée en mémoire, et ensuite faut la diviser pour la restituer à 15 khz.

Le soucis, c'est qu'on parle de jeux vidéo à 60 images par secondes. Pour tenir une telle cadence, les désentrelaceurs "trichent" et font un traitement plus simple, moins détaillé, que lorsqu'il s'agit d'un film classique en 24 ims/sec.

Bon, de toute façon, tout ceci n nous avance pas à grand chose sauf à confirmer que pour passer les jeux émulés / portages arcade du 480i vers le 240p, y a pas mieux comme méthode que de simplement virer les infos de l'entrelacement dans la synchro verticale (chose qui peux s'effectuer sans mise en trame, en temps réel, de façon à n'avoir aucune perte et aucun délai). Et ça, je crois qu'aucun désentrelaceur ne le fait, ce qui est logique parce que ça n'a pas de sens en vidéo (broadcast ou films). [ d'où le fait aussi que personne ne propose cette solution, et recommande l'utilisation de un ou deux appareil pour arriver au résultat voulu, comme c'est le cas dans la page citée plus haut ]

Il y a un moyen pour avoir du 1:1 sur borne/écran TV avec scanlines naturelles et sans perte de luminosité (tu te figures bien que la correction est intégrée sur des appareils qui valaient plus de 80000 balles à l'époque?!...
C'est le CRT qui produit les scanlines, l'écran, pas le convertisseur!!!! Elles sont naturelles donc et aucune différence entre elles et celles que tu aurais sur le matos d'origine :o
Oui mais là dans l'exemple je parlais pas d'appareil à 80000 balles et à destination de CRT en 15 khz (dont le fonctionnement produit des scanlines parfaites, je sais), là je parlais des upscalers 15->31 khz qui proposent en superposition des "fake scanlines" (puisque à 31 khz, et à fortiori sur des écrans plats, ce n'est possible que via ce procédé, ce n'est pas l'écran qui va pouvoir les restituer).


Pour moi en terme de qualité on a:
1/ matos original (cher)
2/ Emu advmame et arcadeVGA sur CRT 15khz (chiant à config mais une fois que c'est fait c'ets fait) et si ca existe les cartes Xen1 avec advmame intégré et bien configuré.
3/ Emu Mame 0.99, quickres et convertisseur pro sur CRT 15Khz (quasi plug'n play mais à chaque changement du sytème émulé faudra passer une minute à adapter le reglage)
4/ Emu Mame 0.99, quickres sur CRT 31Khz (faut juste avoir accès aux potards de règlage)
5/ Emu Mame 0.99 bien configuré sur excellent écran plat en 1600x1200

Ton système est forcément meilleur que 4/, pas nécessairement meilleur que 3. Si t habitais pas loin et que tu me filais un coup de main pour cabler ma borne on aurait pu tester ensemble :lol:
Perso, je me suis pas beaucoup penché sur le cas de la config' de carte graphique (soft15khz, powerstrip, quickres ...), parce que je pense que c'est valable, que ça donne de bons résultats, que c'est un aspect déjà bien traité par pas mal de monde.
On est dans la branche "diffuser un signal 240p sur CRT", donc on est très proche de ce qui est requis pour une qualité proche de l'original.

Je me penche sur le cas " 480i vers 240p " (sur CRT) avec une méthode simple qui fonctionne partout sans modif' hardware ou hack logiciel, et surtout sur la restitution du feeling lo-rez pour les hautes résolutions (sur CRT informatique et écrans plats).

Avatar de l’utilisateur
Epsylon
Théoricien du pixel
Messages : 1222
Inscription : 17 oct. 2006, 23:42
Localisation : Marseille

Re: Avoir un rendu le plus proche possible de la neo geo

#172 Message par Epsylon »

kaneda56 a écrit : Et faut arrêter avec vos Mame O.66, O.99 et autre 0.126. On va pas rester à des version antédiluvienne sous prétexte qu'il y avait le super filtre qui pown. On cherche a trouver le moyen d'avoir un bon rendu, quelque soit la version.
Et encore ! C'est même pas qu'il y a le meilleur filtre, c'est qu'il y a en fait la meilleure gestion de scanlines , puisque celle ci est intégrée dans le coeur de l'émulateur ... les filtres ont toujours été pourris et infidèles, ça, ça n'a jamais changé ;D .

Faut juste bosser et arriver à quelque chose de concret, à proposer une intégration valable (ou un panel de configuration bien réalisé) et surtout bien expliquer aux gens le pourquoi du comment parce que sinon même quand ils se retrouvent devant la plus parfaite expression de ce qu'il est possible de restituer du 15 khz , ils ne sont pas foutu de s'en rendre compte . ;D

(mais ça, c'est parce qu'ils ont oublié le rendu du CRT, et qu'ils sont habitués à utiliser des filtres n'importe comment, à choisir n'importe quoi comme .png , et préférer la guimauve et la pâte à modeler au lieu du tracé du spot, net, rond, sans bavures .)

Avatar de l’utilisateur
Epsylon
Théoricien du pixel
Messages : 1222
Inscription : 17 oct. 2006, 23:42
Localisation : Marseille

Re: Avoir un rendu le plus proche possible de la neo geo

#173 Message par Epsylon »

eke a écrit : comment crois tu qu'un filtre avec effet de transparence fonctionne de manière logicielle ? tu es obligé de passer pixel par pixel et canal par canal (dest.R = alpha x source.R + (1-alpha) x filtre.R, dest.G= alpha x source.G + (1-alpha) x filtre.G, dest.B = alpha x source.B + (1-alpha) x filtre.B), ce qui n'est peut-etre pas complexe en calcul mais tres lent si on utilise pas les fonctions hard de la CG.

encore une fois, tu te bases uniquement sur ton expérience d'utilisateur de logiciel qui applique un calque de transparence sur une image et qui est surement optimisé pour utiliser les fonctions hard des cartes graphiques, sur une image à la fois ,de manière ponctuelle
Oui ! c'est sûr que si on passe pas par les fonctions hardware, c'est lent et on se retrouve avec du "pixel par pixel" . Mais je crois bien que tous les systèmes de scanlines et de .png se basent sur les fonctions hardware, de même que tous les types d'interpolation (bilinéaire, bicubic etc.).

Si personne n'a mis en place de filtrage unidirectionnel, c'est parce que les fonctions hardware ne sont pas paramétrables , et que personne ne souhaitait "gaspiller" des ressources à le faire en software ... Ceci dit, vu la puissance décuplée depuis ces 10 dernières années, ça peut intéresser certains développeurs qui sont au courant du gain d'un tel procédé (là je parle du flou unidirectionnel) .

Franchement, s'il faut se taper 5 couches de superposition tout en software, c'est foutu d'avance ! ;D
Je compte bien miser sur la prise en charge hardware (ou alors, passer à une méthode complètement différente, sans transparence, mais qui ne restitue pas tous les effets, c'est un cran en dessous mais c'est très acceptable) .

(j'ai du mal a me séparer de ma bonne vieille trinitron rien que pour ca ... dur d'expliquer a madame pourquoi le sexy LCD tout plat qui prend pas de place, c'est moins bien :lol: )
je ne peux que plussoyer ! :roi:

Dur dur de parler de niveau de noir, de colorimétrie, de multiples résolutions, de réactivité ...

C'est pas parce que l'écran est "HD" que l'image qui va s'afficher dessus va comme par miracle être d'une qualité irréprochable en toute circonstance .

Mais pour bien comprendre ça, il faut avoir un peu plus de jugeote que nos amies de la gente féminine , pour qui l'apparence extérieure suffit et se confond même avec la nature du fond des choses .... :roll: [-> mode mysogine: ON]

Avatar de l’utilisateur
Epsylon
Théoricien du pixel
Messages : 1222
Inscription : 17 oct. 2006, 23:42
Localisation : Marseille

Re: Avoir un rendu le plus proche possible de la neo geo

#174 Message par Epsylon »

Bon, j'en remets une couche au sujet de la transparence, mais j'y pense .... même en terme purement software, bosser "pixel par pixel" ça consomme moins de ressource que de bosser pixel par pixel et de tester des comparaisons avec les huits voisins ... :roi:

Avatar de l’utilisateur
Epsylon
Théoricien du pixel
Messages : 1222
Inscription : 17 oct. 2006, 23:42
Localisation : Marseille

Re: Avoir un rendu le plus proche possible de la neo geo

#175 Message par Epsylon »

Hum, tant que j'y suis...toutes ces histoires de ressources, d'algorithmes , ça m'a donné à réfléchir ....

Et à optimiser !


J'ai revu le processus, simplifier deux trois trucs, et revu mes exigences à la baisse concernant la résolution.

Avant, je bossais sur un facteur x5 (typiquement du 1600 x 1200) pour le meilleur effet .

Maintenant, je pars d'un facteur x3 , ce qui donne grosso merdo un espace de travail de 960 x 720, ce qu'est 'achement plus léger que du 1600 x 1200. ;D

Après tout, un rectangle de 3 x 5 pixels, ça suffit pour restituer un oval , la trace du spot avec son temps de montée et de descente ...

Et cette base de résolution typique servira à faire un bon upscal vers des résolutions supérieures, MAIS avec un bon traitement "bicubic" de rigueur ( en hardware, hein, pas d'blagues :volatiliz ) , pas de bilinéaire sivouplé .

Je m'en suis rendu compte avec ce montage :

http://raster.effect.free.fr/15khz/emul ... 20test.jpg

Regardez bien les screens avant de lire la suite.






Donc, à gauche un screen prévu en 1600 x 1200 avec un ratio rigoureusement entier (x5) et un traitement "parfait", et à droite, un upscal du 720p (réso triplée) vers le 1080p , avec filtrage bicubique.

On peut dire que le résultat de droite, même s'il manque un peu de "mordant" et de précision, est tout à fait honorable.
Les irrégularités des scanlines sont moindres, parce que la trame d'origine (x3) elle est parfaitement calée ( chose qui ne se retrouve plus avec les MAME récents, où trop souvent les scanlines ratent leur intervale . )

C'est un cran en dessous, mais c'est plus "abordable" et ça permet de résoudre facilement le cas des résolutions de merde en 16/9 des écrans courants , pour éviter d'avoir une grosse marge noire autour de l'image si on voulait s'en tenir à un ratio entier bien propre ( en clair : éviter à la fois " l'underscan " et le calage foireux de scanline. la classe ! )

Extraits choisis:

- 1366 x 768 :
http://raster.effect.free.fr/15khz/emul ... 66x768.jpg

- 720p:
http://raster.effect.free.fr/15khz/emul ... 20p_n2.jpg

- 1080p:
http://raster.effect.free.fr/15khz/emul ... _1080p.jpg

On a donc du "full screen" partout, avec le ratio 4/3 respecté, et avec le meilleur rendu possible jusqu'à présent .