[Tuto] mettre par defaut le shader crt-nes-mini.glspl (ou un autre)
-
@airdream ,
Merci pour ce travail partagé
Juste une petite question : le shader que j’utilise est le crt-pi.
Sur le shader nes mini,il y’a l’effet incurvé ?
Si non, on ne peut pas " fusionner" 2 shader ?
Merci encore -
Fusionner ces 2 shaders là ca ne me semble pas possible vu qu'ils ont pas mal de points différents.
Au mieux je pense possible de pouvoir intégrer l'effet courbé en reprenant le code du fichier crt-pi.glsl et de mettre cette partie là dans le code de crt-nes-mini.glslEn fouillant le code du crt-pi.glsl voici les éléments que je trouve qui définissent cet effet courbé.
Faut essayer de mettre l'ensemble ou les bonnes valeurs seulement dans le fichier crt-nes-mini.glsl avec notepad++
(Faut y aller par tâtonnement sûrement)
Peut-être quelqu'un qui a plus l'habitude pourrait apporter une réponse plus efficace que la mienne...#pragma parameter CURVATURE_X "Screen curvature - horizontal" 0.10 0.0 1.0 0.01 #pragma parameter CURVATURE_Y "Screen curvature - vertical" 0.15 0.0 1.0 0.01 //#define CURVATURE #ifdef PARAMETER_UNIFORM uniform COMPAT_PRECISION float CURVATURE_X; uniform COMPAT_PRECISION float CURVATURE_Y; uniform COMPAT_PRECISION float uniform vec2 TextureSize; #if defined(CURVATURE) varying vec2 screenScale; #endif #if defined(CURVATURE) screenScale = TextureSize / InputSize; #endif filterWidth = (InputSize.y / OutputSize.y) / 3.0; TEX0 = TexCoord; gl_Position = MVPMatrix * VertexCoord; } #if defined(CURVATURE) vec2 Distort(vec2 coord) { vec2 CURVATURE_DISTORTION = vec2(CURVATURE_X, CURVATURE_Y); // Barrel distortion shrinks the display area a bit, this will allow us to counteract that. vec2 barrelScale = 1.0 - (0.23 * CURVATURE_DISTORTION); coord *= screenScale; coord -= vec2(0.5); float rsq = coord.x * coord.x + coord.y * coord.y; coord += coord * (CURVATURE_DISTORTION * rsq); coord *= barrelScale; if (abs(coord.x) >= 0.5 || abs(coord.y) >= 0.5) coord = vec2(-1.0); // If out of bounds, return an invalid value. else { coord += vec2(0.5); coord /= screenScale; } return coord; } #endif #if defined(CURVATURE) vec2 texcoord = Distort(TEX0); if (texcoord.x < 0.0) gl_FragColor = vec4(0.0); else #else vec2 texcoord = TEX0; #endif
Avant d'essayer de modifier le code de crt-nes-mini.glsl autant d'abord le testé et voir si le rendu te plaît.
Personnellement j'ai pas été fan des autres shaders Tel que zfast, caligari, etc... Mais le crt-pi je l'ai toujours trouvé réussi (sans l'effet courbé que je n'aime pas, et que je remettais toujours a plat). Les 2 sont donc assez proche, bien que crt-nes-mini a ma préférence, voilà pourquoi j'ai voulu l'adapter a recalbox. -
@airdream
Merci pour cette réponse complète.
L’effet courbe est intéressant pour moi sur quelques systèmes vu que mon bartop a un lcd 19" , donc avec les overlays je trouve que ça donne pas mal.
Je tenterai avec notepad ++ ( j’aime essayer les sujets que je ne maîtrise pas ) et si ça marche, je ferai un retour. -
@Eptdqcn41700
Je viens d'essayer de balancer tel quel les données de crt-pi concernant l'effet courbé dans le crt-nes-mini ça n'a rien donné...
C'est plus subtil que ça faut bien décortiquer le code crt-pi c'est pas si simple que ca (enfin pour moi le gros débutant) -
Un grand merci pour nous avoir fait partager ce shader. Moi aussi je n'avais jamais été vraiment satisfait par les shaders disponibles, à part crt pi. Là, c'est vraiment la grande classe! Je suis même bluffé ! Le résultat est vraiment proche de mes consoles branchées sur un vrai crt.
Quand j'ai testé Devil Crash PC engine avec ce shader, j'ai halluciné. Le résultat est quasiment identique à ce qu'affiche la vraie console sur un cathodique en rgb. Du grand art.
Plus qu'à espérer que ce shader SNES Mini soit intégré à Recalbox pour qu'il soit accessible au plus grand nombre.
Un énorme merci de ma part -
@falconx62
merci pour ton commentaire ca fait plaisir a lire ! !
Oui moi aussi je trouve le rendu très proche d'une vraie console sur un écran cathodique ! ! (et bye bye les gros pixel des mode video de base de recalbox)
J’espère que quelqu'un de la team sera d'accord pour le mettre a la place du mode "retro" actuel car en plus il ne consomme pas plus de ressources.Je l'ai pas activé pour toutes le consoles, si il te plait n'hesites pas à le faire !
-
Déjà fait sur Mame, Fba et la 2600!
Une pure tuerie !!! -
@falconx62 Je confirme
Il n'y a que sur l'émulateur Thomson que je n'ai pas réussi à l'activer même en voulant le forcer par le menu retroarch, peut-être que l'émulateur Théodore est en stand alone ? -
J'ai eu un souci avec le ficher .recalbox.conf sur le site de l’hébergeur (MEGA).
J'ai du refaire le lien de partage qui est celui-ci a présent :
--->>>> .recalbox.conf@acris ou une autre personne en charge de la modération, pouvez vous me corriger le lien du premier post? Malheureusement je ne peut pas le faire moi même
-
@airdream fait.
-
Merci @acris t'es geniale
j en profite pour mettre ici quelques exemples de rendu en plein format (faut cliquer dessus pour les mettres a la bonne taille et bien voir les scanlines)
FBA Libretro
NeoGeo FBN
Megadrive
SNES
PCE CD
MCD
32x
PS1
NES
MASTER SYSTEM
-
Hello et merci @airdream pour ce tuto clair
Lorsqu'on souhaite appliquer le shader en général sur tous les systèmes, le plus simple est de définir "global.shaders" directement dans le fichier : /recalbox/share/system/recalbox.conf
## Set gpslp shader for all emulators (prefer shadersets above). Absolute path (string) global.shaders=/recalbox/share/system/shaderpresets/crt-nes-mini.glslp
Et si besoin, ajouter spécifiquement par système un shader différent :
fba_libretro.shaders=/recalbox/share/system/shaders/zfast_crt_curve_vertical.glslp
Pour ma part je reste sur la série des shaders "zfast" dont je suis particulièrement fan, ils sont plus optimisés que les "crt-pi" et tournent parfaitement sur tous les émulateurs en 1080p (hors systèmes 3D) :
Disponibles parmi les autres ici :
https://github.com/ghogan42/common-shaders/tree/zfast_shadersLe Raspberry Pi 3 reste limité en puissance et impossible d'accéder à certaines beautés comme "crt-royale-kurozumi"...!
Mes aperçus sur Arcade,
zfast_crt_standard :
zfast_crt_curve :
zfast_curve_vertical :
-
@airdream Sympa, il faut que je teste ! C'est quel jeu sur PCE CD ? Merci d'avance.
-
@roudoudou80
Le titre que j'ai mis en exemple pour la PCE CD est :
Cotton: Fantastic Night Dreams
Excellent Shoot em up qui me faisait rever étant jeune, auquel j'ai pu finalement accéder bien plus tard en émulation@guicln
Merci pour l'information concernant l'application a tous les systemes avec "global.shaders".
Je me doutais que cela existait mais n'avais pas envie de l'appliquer a certaines consoles telles les portables par exemple et aussi les systemes arcades a causes des jeux verticaux justement.Si j'ai bien compris tous tes jeux fba_libretro auront un shader vertical? (meme les jeux horizontaux?)
L’idéal serait vraiment de trier entre horizontaux et verticaux mais a part le faire manuellement je ne crois pas que cela puisse être automatisé...J'avais testé une fois "crt-royale-kurozumi" mais sur RPI ca rame en effet, j'avais été bluffé du rendu, dommage qu'il soit trop gourmand en ressoures.
Avec CRT Caligari, CRT Pi, lottes et halation et autre easymode, le shader "zfast" est sans conteste l'un des plus réussi exécutable sur le RPI, l'avantage c'est qu'il existe en plusieurs déclinaisons ; Curve et Vertical (ce que ne fait pas crt-nes-mini)
Pour le 4/3 classique non courbé, parmi tous ceux cités, je préfère et de loin le crt-nes-mini.
Parce que je trouve que comme les autres zfast accentue un peu trop les scanlines, et laisse les sprites très "brut" et "tranché" encore trop pixelisés (numérique). Ca fait une sorte de mélange entre un rendu CRT et LCD, là ou crt-nes-mini me donne vraiment plus l'impression d'un écran CRT (le coté analogique) à part entière, ceci en adoucissant l'image par des couleurs moins contrastées et des contours des éléments plus naturels, sans trop appuyer sur des scanlines assombrissantes. Enfin cela reste mon ressenti, chacun ses goûts c'est ce qui est formidable avec recalbox puisqu'on peut personnaliser a souhaits !crt-nes-mini Metal Slug 3
-
ZFAST (j'ai repris ton screenshot et zoomé dessus)
On voit bien le rendu que je trouve trop "numérique type LCD" à mon gout
(je sais pas si c'est normal mais il y a deux scanlines épaisses et sombres, puis une claire et fine?)
crt nes mini
rendu plus "analogique" les dégradés de couleurs me semblent plus réussi (ca parait trop flou comparé au zfast mais c'est zoomé a fond ca rend pas aussi flou a taille normale)
(et a priori scanlines fines et discrètes identiques pour toutes les lignes)
-
Un autre détail de Métal Slug 3
zfast
degradé brut, pixel flagrant, assombrissement
(toujours des scanlines alternées entre épaisse et fines, je me demande si tu as bien activé le mode Pixel Perfect?
srt-nes-mini
dégradé doux, pixel discret, écran moins sombre
je viens de me rendre compte aussi que ton sohot vertical n'a pas des scanlines h**ogènes, t'en a 3 foncées et épaisses et 2 claires et fines.
Il me semble que pour qu'elles soient h**ogènes, il faut 2 conditions.
1 : Pixel Perfect sur ON
2 : Mettre le jeux en vertical sur retroarch (et retourner ta TV ce qui n'est pas pratique si tu dois changer a chaque fois, quoi que certains support TV permettent désormais de faire une rotation de la TV) -
Salut à tous, après test je trouve le crt-nes beaucoup trop flou, on dirait qu'il y a un effet blur c'est plutôt désagréable.
Je reste aussi sur zfast plus agréable à mon gout. -
@Secamfr
C'est deja super que tu as pu tester crt-nes-mini
L'important c'est d'avoir le choix, zfast est très bien j'en suis aussi persuade
C'est quoi ta taille d’écran par curiosité? -
@airdream Tu a raison l'important c'est le choix !
Ma recalbox est sur un petit écran de 19 pouces mais je suis à 1 mètre de l'écran.
J'ai comparé avec une vrai console sur CRT et je préfère le zfast même si les scanlines ne sont pas parfaites (ça dépend des émuls). -
Décidément les topics sur les shaders sont toujours très remplis
@airdream said in [Tuto] mettre par defaut le shader crt-nes-mini.glspl (ou un autre):
Si j'ai bien compris tous tes jeux fba_libretro auront un shader vertical? (meme les jeux horizontaux?)
L’idéal serait vraiment de trier entre horizontaux et verticaux mais a part le faire manuellement je ne crois pas que cela puisse être automatisé...Complètement d'accord ! Je me suis cassé la tête pour essayé d'avoir des shaders différents selon les jeux mais ce n'est apparemment plus possible.
On peut toujours choisir une configuration spécifique selon le jeu, qu'on enregistre dans le répertoire suivant (il y a d'autres repertoires possibles comme celui des Overlays, mais je privilégie celui que Retroarch choisi par défaut) :
/recalbox/share/system/.config/retroarch/config/nom_du_systemeLe fichier porte le nom exact de la rom du jeu (avec son extension .zip, ou .md, etc.) en ajoutant à la fin ".cfg".
Par exemple, si je veux des paramètres exclusifs à Metal Slug 3, je crée le fichier suivant :
/recalbox/share/system/.config/retroarch/config/FinalBurn Neo/mslug3.zip.cfgDans lequel j'y insère les commandes connues de Retroarch. Cependant "video_shader" ne fonctionne pas, je ne comprends pas pourquoi. Je créerai un sujet dans ce forum pour avoir un peu d'aide, car ce serait bien pratique de choisir selon les formats de jeux comme tu le dis.
J'avais testé une fois "crt-royale-kurozumi" mais sur RPI ca rame en effet, j'avais été bluffé du rendu, dommage qu'il soit trop gourmand en ressoures.
Pareil... J'imagine que le Pi 4 sera plus puissant pour ça, j'en attends beaucoup à ce niveau !
Enfin cela reste mon ressenti, chacun ses goûts c'est ce qui est formidable avec recalbox puisqu'on peut personnaliser a souhaits !
Encore une fois je suis bien d'accord
(toujours des scanlines alternées entre épaisse et fines, je me demande si tu as bien activé le mode Pixel Perfect?
Bien vu... En vérité je n'utilise pas Pixel Perfect car ma distance avec la TV n'est pas idéale, j'y vois mieux comme ça. Mais en effet pour garder un rendu fidèle à l'image d'origine il faut activer l'option.
Je te laisse zoomer sur l'image, j'ai choisi Marvel VS Capcom qui est bien coloré pour optimiser le rendu des scanlines ! Avec zfast_crt_curve et integer scale on :
2 : Mettre le jeux en vertical sur retroarch (et retourner ta TV ce qui n'est pas pratique si tu dois changer a chaque fois, quoi que certains support TV permettent désormais de faire une rotation de la TV)
Oui pour DoDonPachi j'ai choisi le vertical qui rend mieux (le standard a un mauvais rendu) mais il manque une rotation à 90° c'est sûr.
En Pixel Perfect :