[Tuto] mettre par defaut le shader crt-nes-mini.glspl (ou un autre)
-
Bonjour,
Souhaitant réduire les effets de pixelisation des modes de base de recalbox, je me suis intéressé aux surcharges et j'ai enfin trouvé un rendu vidéo qui me convient mieux. Sans gros pixel, sans deformation, avec de tres petites lignes de balayage.
Ayant particulièrement apprécié le rendu CRT de la mini SNES, je suis parti en quête de trouver un similaire sur recalbox. Je me suis rendu compte que retroarch proposait le shader crt-nes-mini et je l'ai donc installé par défaut pour de nombreuses consoles (pas toutes, les portables comme la gameboy par exemple ca ne va pas).
Je vais donc vous expliquer ici en 5 étapes la manip et les liens des fichiers à télécharger.Téléchargement
-
Télécharger le shader ici (il doit y avoir 2 fichiers, l'un en .glsl et un autre en .glslp, vous pouvez télécharger le dossier qui les contient que j'ai appelé "shaderpresets" (gardez ce nom)
--->>>> shader crt-nes-mini -
télécharger le fichier .recalbox.conf fait par mes soins ici (replacer le . en premier caractère si il a été effacé par windows, il faut qu'il soit absolument nommé ainsi .recalbox.conf
--->>>> .recalbox.conf
Placer ensuite dans les bons dossiers
-
Dans le dossier : /recalbox/system mettre le dossier "shaderpresets" contenant les 2 fichiers
-
Dans le dossier /recalbox/roms mettre le fichier .recalbox.conf
(je répète, quand on le télécharge il supprime point . du début, renommer le bien en .recalbox.conf avec le point . au début -
(très important ! )bien mettre l'option Pixel perfect de recalbox sur ON (sinon les lignes de balayages seront mal placées)
C'est tout vous pouvez profiter du shader pour ces machines là
N’hésitez pas à en rajouter d'autres si il vous plait.snes.shaders= /recalbox/share/system/shaderpresets/crt-nes-mini.glslp megadrive.shaders= /recalbox/share/system/shaderpresets/crt-nes-mini.glslp nes.shaders= /recalbox/share/system/shaderpresets/crt-nes-mini.glslp mastersystem.shaders= /recalbox/share/system/shaderpresets/crt-nes-mini.glsl atari7800.shaders= /recalbox/share/system/shaderpresets/crt-nes-mini.glslp colecovision.shaders= /recalbox/share/system/shaderpresets/crt-nes-mini.glslp fds.shaders= /recalbox/share/system/shaderpresets/crt-nes-mini.glslp gx4000.shaders= /recalbox/share/system/shaderpresets/crt-nes-mini.glslp msx.shaders= /recalbox/share/system/shaderpresets/crt-nes-mini.glslp neogeo.shaders= /recalbox/share/system/shaderpresets/crt-nes-mini.glslp neogeocd.shaders= /recalbox/share/system/shaderpresets/crt-nes-mini.glslp pcenginecd.shaders= /recalbox/share/system/shaderpresets/crt-nes-mini.glslp pcengine.shaders= /recalbox/share/system/shaderpresets/crt-nes-mini.glslp psx.shaders= /recalbox/share/system/shaderpresets/crt-nes-mini.glslp satellaview.shaders= /recalbox/share/system/shaderpresets/crt-nes-mini.glslp sega32x.shaders= /recalbox/share/system/shaderpresets/crt-nes-mini.glslp sg1000.shaders= /recalbox/share/system/shaderpresets/crt-nes-mini.glslp segacd.shaders= /recalbox/share/system/shaderpresets/crt-nes-mini.glslp supergrafx.shaders= /recalbox/share/system/shaderpresets/crt-nes-mini.glslp
Quelques images mais ca rend pas aussi bien qu'en vrai, le résultat obtenu sur ma TV LCD est vraiment propre, sans bouillie de pixels
MEGA CD (picodrive)
Megadrive (genesisplusgx)
colecovison
SNES (snes9x)
NeoGeo (FBN)
-
-
@airdream merci ca a l'air propre en effet...
-
@airdream said in [Tuto] mettre par defaut le shader crt-nes-mini.glspl (ou un autre):
Dans le dossier : /recalbox/system mettre le dossier "shaderpresets" contenant les 2 fichiers
Bonjour, j'ai utilisé cette méthode et la mise en place du shader n'est pas automatique pour les différents systèmes, je suis obligé de l'activer manuellement pour chaque jeu.
Mes roms sont situées sur un disque dur externe où se trouve aussi le fichier système (dossier share). Je suis sur Pi3.Ai-je loupé un truc ?
Par ailleurs le shader est très agréable visuellement, bravo. -
@Wang85
Je l'ai activé en effet que pour les systèmes que j'ai cité dans le premier post, mais en théorie tu ne devrais pas avoir à les activer manuellement... Bizarre car moi mes roms sont sur clé USB ce qui revient au même. (La la différence que mon OS est sur la carte SD, peut être ça?)
Le fichier .glslp contient le chemin où se trouve le shader (Dans shaderprests donc qui doit être dans system de ton disque dur).
Tu as bien renommé . recalbox.conf? Je me demande bien pu ça a pu foiré ?!?! Une histoire de chemin à revoir sûrement.Est ce que tu peux remplacer share par share_init dans le chemin du fichier.glslp
Il faut le faire avec notepad++
Je peux te renvoyer le fichier corrigé si tu sais pas faire. -
@airdream said in [Tuto] mettre par defaut le shader crt-nes-mini.glspl (ou un autre):
tiens je t'ai corrigé le chemin dans les fichiers précédemment téléchargés qu'il faut que tu remplaces dans ton cas.
crt-nes-mini version share_init
@Wang85
Si cela ne marche toujours pas le mieux est que tu m'envoi la photo du chemin ou se trouve le shader quand tu pointe dessus avec recalbox via retroarch (le chemin est inscrit au dessus au sommet de l’écran) -
Bingo, j'ai réussi à le faire fonctionner, j'ai du louper un truc la première fois^^.
J'ai refais la manip de 1 à 5 et cela fonctionne maintenant.Merci, j'en ai profité pour rajouté l'Amstrad CPC
-
merci @Wang85 pour ton retour
-
@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.