Améliorer les capacités graphiques de la Playstation



  • Salut à tous, Ce week-end j'ai testé plusieurs jeux sur mon RPi 2 via l'émulation PSX (FF7, FF8, Wipeout 2097, Wipeout 3 Special Edition, Crash Bandicoot 3 Warped, Chrono Cross, Tomb Raider). Ma conclusion est que tout ces jeux tournent de manière très fluide, sans crash ni bug particulier. Le seul point que je cherche à améliorer est l'aspect graphique. Je m'explique: sur une TV HD on est en deçà des graphismes de la Playstation d'origine. Les jeux y sont plus pixelisés. J'imagine que sur une TV cathodique cela peut-être moins visible au vu de la résolution (enfin c'est une supposition). J'ai tenté de remédier à cela en testant des shaders (j'ai copié le pack qu'il y a dans retropie, il doit être trouvable sur github j'imagine...). Le shader améliorant le plus la qualité graphique étant hd4x.glsl. Mais ce shader ou les autres améliorant les capacités graphiques, s'ils passent sans problème sur les consoles 2D (8 et 16 bits en somme), cela ralenti considérablement la Playstation la rendant vraiment injouable. De plus cela ne correspond pas vraiment à la qualité d'origine... Et en farfouillant dans les fichiers (via le logiciel WinSCP) je suis tombé sur retroarch-core-options.cfg. Nous avons en ce qui concerne l'émulateur Playstation PCXS Rearmed les options suivantes: pcsx_rearmed_frameskip = "0" pcsx_rearmed_region = "Auto" pcsx_rearmed_pad1type = "standard" pcsx_rearmed_pad2type = "standard" pcsx_rearmed_drc = "enabled" pcsx_rearmed_neon_interlace_enable = "disabled" pcsx_rearmed_neon_enhancement_enable = "disabled" pcsx_rearmed_neon_enhancement_no_main = "disabled" pcsx_rearmed_spu_reverb = "on" pcsx_rearmed_spu_interpolation = "simple" L'option qui est particulièrement intéressante est "pcsx_rearmed_neon_enhancement_enable". Le fait d'y remplacer "disabled" par "enabled" améliore vraiment les graphismes qui semblent alors moins pixelisés et ressemblent à ce qu'était la PSX originale. Le hic avec cette option est que cela va ralentir certains jeux (en permanence ou lors de certaines phase) mais pas au point de l'application d'un shader. J'ai réussi à faire tourner Wipeout 2097 à peu prêt correctement avec cette option alors que Wipeout 3 a du mal (Il faut dire que c'est un des jeux qui pousse au maximum les capacités graphiques de la Playstation). Mais un jeu qui semble moins gourmand comme Crash Bandicoot 3 est tout aussi ralenti que Wipeout 3. Final Fantasy 8 semble fonctionner correctement (du moins dans les premières scènes) mais ce n'est pas nécessairement un bon étalon car l'option dont je parle ici améliore essentiellement les éléments en 3D. Les textes, boites de dialogues et autres items en 2D apparaissent toujours plus pixelisés que la PSX d'origine. Donc pour un Final Fantasy les images de fond, les décors, apparaissent forcément pixelisés même si l'aspect des personnages est amélioré. J'ai tenté d'overclocker mon RPi 2 pour voir s'il y avait une amélioration. J'ai tenté de modifier le fichier config.txt du répertoire boot en ajoutant les lignes suivantes d'après des recherches via google sur comment overclocker le Pi 2: force_turbo=1 #Voids Warranty!!! arm_freq=1100 sdram_freq=500 core_freq=500 over_voltage=6 temp_limit=80 #Will throttle to default clock speed if hit. J'ai l'impression que cela n'a strictement rien changé. Je me demande à vrai dire si cela a vraiment overclocké le processeur et s'il ne faut pas s'y prendre autrement pour overcloker le processeur. En termes théoriques il me semble que cela devrait être possible d'avoir cette amélioration graphique des jeux PSX car si l'on compare avec les jeux N64 qui veulent bien se lancer, ces derniers sont bien plus beaux et n'ont même pas l'aspect flou qu'il y avait à l'origine sur la N64. Après nous sommes peut-être aussi face à une limite logicielle de l'émulateur PCXS Rearmed qui fait qu'il y aurait besoin de plus de puissance qu'un simple RPi 2 pour ces améliorations graphiques. Quand je trouverais un moment je vais tester avec une version de PCXS Rearmed indépendante de Retroarch, peut-être cela changera t-il quelque chose. Voilà je partage mon expérience avec vous tous. Retroboy ce n'est pas du tout une critique de Recalbox, bien au contraire 🙂 Peut-être que des utilisateurs plus doués que moi auront réussis à faire mieux que moi...


  • Staff
    Developer
    Global moderator
    Team

    Salut Vlad, ca c'est du bon post bien détaillé. Je pense que tu n'es pas le seul a rechercher a avoir une meilleur image sur l'emulation psx. Et je pense que ca serai cool de regrouper ici les differentes options ou tweaks que chacun peu trouver. Pour ce qui est de l'overclock, dis toi que ce qui va compter c'est le core car c'est le facteur limitant ici. Pour voir si l'overclock est ok tu peux utiliser cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq qui te donne la fréquence max de ton cpu.



  • ca c’est du bon post bien détaillé.

    Si ça nous permet d'améliorer les performances 🙂 Je viens de tester ta ligne de commande

    cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq

    La réponse que me donne la console Putty est 1100000. J'imagine que la réponse doit être en hertz car si c'est en Mhz il y a une erreur. Donc cela voudrait dire que j'ai bien réussi à overclocker le processeur. La question est de savoir si PCSX ReARMed utilise tous les cœurs du RPi 2 ou un seul. S'il n'en utilise qu'un, on ne pourra pas vraiment faire mieux j'imagine. Sauf si un programmeur arrive à doter l'émulateur d'une gestion multicœurs. Après vérification sur le Github de PCSX ReARMed () l'option que j'ai utilisé modifie la résolution. Voici ce qui y est dit:

    /* PSX max resolution is 640x512, but with enhancement it's 1024x512 */ #define VOUT_MAX_WIDTH 1024 #define VOUT_MAX_HEIGHT 512

    et

    #ifdef ARM_NEON { "pcsx_rearmed_neon_interlace_enable", "Enable interlacing mode(s); disabled|enabled" }, { "pcsx_rearmed_neon_enhancement_enable", "Enhanced resolution (slow); disabled|enabled" }, { "pcsx_rearmed_neon_enhancement_no_main", "Enhanced resolution speed hack; disabled|enabled" },

    Donc en fait on bascule la résolution de 640480 à 1024512 ce qui nécessite plus de puissance matérielle (d'où le "slow"). Donc mon sentiment de différence en fonction des TV HD et cathodiques doit être juste. C'est comme lorsque je branche ma vraie PSX sur ma TV HD, le résultat est très pixelisé. Ce qui me fait penser que l'émulateur Mupen64 doit être mieux optimisé question vitesse et résolution de l'image. Je vais voir si je peux modifier le libreto afin de tester une résolution de 800*600...



  • Haaaa je ne suis pas le seul à m'être fait la remarque 🙂 J'ai constaté le même problème que toi sur tous les jeux ps1 que j'ai testé. Le pire c'est Tony Hawks pro skater 3 juste horrible et injouable tellement c'est pixelisé. Je vais tenter de me documenter sur les infos que tu avances et faire des essais, si on s'y met à plusieurs on pourrait rapidement trouver une solution viable ! Merci 😉



  • Je vais tenter de me documenter sur les infos que tu avances et faire des essais, si on s’y met à plusieurs on pourrait rapidement trouver une solution viable ! Merci 😉

    @gauthi3r Carrément ! 😄 Salut à tous. Un petit élément que j'ai remarqué ce soir: si en plus de l'option « pcsx_rearmed_neon_enhancement_enable », on active « pcsx_rearmed_neon_enhancement_no_main » il y a un petit mieux. Surement l'effet "speed hack". Une impression concernant le processeur. Je pense que celui-ci a du atteindre la température de 80° car j'ai constaté que sur Wipeout 3 une même course pouvait être plus ou moins ralentie. Et heureusement car la ligne "temp_limit=80 #Will throttle to default clock speed if hit" permet d'éviter la surchauffe et de flinguer son RPi 2. Donc le processeur a du revenir à la vitesse initiale ce qui fait que j'ai eu des impressions différentes sur des J'attends actuellement la livraison de dissipateurs thermiques qui pourront faire baisser la température du processeur. Dès que je les aurait reçu je vous dirait si cela a un impact. ( @Retroboy, pour la petite histoire j'ai le même boitier que toi, le One Nine Design Blanc que j'avais acheté l'an dernier pour mon RPi B+, mais il n'est pas adapté au RPi 2 si l'on équipe ce dernier d'un dissipateur thermique car le processeur n'est pas exactement à la même place. Je vais chercher un autre boitier permettant l'usage de dissipateur thermique, ce qui est dommage car je trouve le OneNine Design très esthétique contrairement aux Pibow ou aux boitiers blocs basiques. A moins que je n'agrandisse l'espace dédié avec une petite scie à métaux, mais je pense recycler mon RPi B+ en radio ou lecteur Mp3 de salon. ) Je n'ai pas pour le moment réussi à trouver le bon fichier libreto où je pourrais modifier la résolution max de la Playstation pour basculer de 1024512 en 800600 et voir si on arrive à avoir de meilleurs graphismes en conservant une bonne fluidité. Je vous tiens au courant si j'y arrive...



  • C'est bizarre sur ma télé full HD avec le RPI 1B+, je ne constate pas ton soucis, j'ai encore ma PSOne et pour ma la qualité est la même, ce qui différe c'est l'écran plus grand et plus net, donc forcément les pixels sont plus apparant. Je pense que la bonne vieille télé cathodique sur laquelle on jouait avait par sa limitation technologique tendance à faire en sorte que les pixels et les images étaient plus lisses !



  • Idem, j'ai mis qu'un seul jeu côté PSX (easy à gérer pour l'ému : Castlevania Symphony of Night), et j'ai pas été horrifié par le rendu. A savoir que j'utilise le filtre scanlines...



  • Salut, Je viens de suivre le procédé proposé par Vlad. Mais le fichier de retroach config ne m'indique pas les éléments que tu évoque. Voici ce que le fichier me propose: pcsx_rearmed_frameskip = "0" pcsx_rearmed_region = "Auto" pcsx_rearmed_pad1type = "standard" pcsx_rearmed_pad2type = "standard" pcsx_rearmed_drc = "enabled" pcsx_rearmed_spu_reverb = "on" pcsx_rearmed_spu_interpolation = "simple" pce_initial_scanline = "0" pce_last_scanline = "242"   Nul part je trouve l'option " pcsx_rearmed_neon_enhancement_enable" dont tu parle... Je suis sur un Rpi B+ numéro 1 et a priori il est mis à jour. Est-ce qu'il y a eu un changement dans ce fichier depuis le 2 avril dernier ou est-ce parce que je m'y prend comme un manche?   A+   Tchaeroo



  • Pour info il est possible d'activé ses option directement dans le menu de retroarch. C'est sous options/Core Options et la il y a il faut mettre Enhanced resolution (slow) sur enable. C'est plus pratique à faire je trouve. Effectivement la qualité graphique s'en trouve bien amélioré, par contre ça ram sur un paquet de jeux que j'ai testé. J'ai essayer de mixer toutes les différentes option dispo mais je n'ai rien trouvé de convenable. Le mieux et en mettant un frameskip de 1 à mon avis mais on se rend quand même compte des légère saccades et c'est pénible à la longue. C'est dommage car j'ai l'impression que c'est plus le son qui bug que l'image. Que le rapsi soit overclocked ou non n'a rien changé chez moi. Si quelqu'un trouve une solution ça m'intéresse grandement, des meilleurs graphismes c'est toujours cool !!



  • Salut!   Je suis un peu hors-sujet mais ce topic me paraissait être le plus approprié pour y poster cette info. Je ne comprenais pas pourquoi je lisais partout que les jeux PSX était super fluides chez les autres alors que chez moi ça tournait à environ 20/23fps... J'ai bidouillé en vain, tenté d'oc mon raspi2, bref j'en étais arrivé à la conclusion qu'il devait avoir un problème hardware (j'ai déjà un raspi B qui déconnecte ses I/O dès qu'il atteint 45/50°C...)   Et puis je suis retombé sur le menu de config recalbox.conf

    ------------ H - GAMES RESOLUTION ------------ # ## set game resolution for emulators ## select your mode from the command : tvservice -m CEA ## mode 5: 1920x1080 @ 60Hz 16:9, clock:74MHz interlaced ## mode 4: 1280x720 @ 60Hz 16:9, clock:74MHz progressive

    J'étais bien évidemment configuré en mode 5. Après avoir switché en mode 4 je suis passé à des framerates beaucoup plus convenables du genre 35/40fps. Bref ça devient enfin jouable ! 🙂 Et ça ne concerne pas que la PSX, même la Supernes est devenue fluide. Pour info il existe des modes supplémentaires non listés:

    /recalbox/share$ tvservice -m CEA Group CEA has 15 modes: mode 1: 640x480 @ 60Hz 4:3, clock:25MHz progressive mode 2: 720x480 @ 60Hz 4:3, clock:27MHz progressive mode 3: 720x480 @ 60Hz 16:9, clock:27MHz progressive (native) mode 4: 1280x720 @ 60Hz 16:9, clock:74MHz progressive mode 5: 1920x1080 @ 60Hz 16:9, clock:74MHz interlaced (prefer) mode 16: 1920x1080 @ 60Hz 16:9, clock:148MHz progressive mode 17: 720x576 @ 50Hz 4:3, clock:27MHz progressive mode 18: 720x576 @ 50Hz 16:9, clock:27MHz progressive mode 19: 1280x720 @ 50Hz 16:9, clock:74MHz progressive mode 20: 1920x1080 @ 50Hz 16:9, clock:74MHz interlaced mode 21: 720x576 @ 50Hz 4:3, clock:27MHz x2 interlaced mode 31: 1920x1080 @ 50Hz 16:9, clock:148MHz progressive mode 32: 1920x1080 @ 24Hz 16:9, clock:74MHz progressive mode 33: 1920x1080 @ 25Hz 16:9, clock:74MHz progressive mode 34: 1920x1080 @ 30Hz 16:9, clock:74MHz progressive

    J'ai testé le mode 3 qui fonctionne mais ne m'a pas apporté de rab de fps...   PS: Ça donne quoi les vidéos (FMV) des jeux PSX chez vous ? Chez moi ça rame fréquemment et le son est très saccadé... PS2: Avec des shaders (genre "scanlines") les jeux piquent beaucoup moins les yeux à mon gout. Voir ICI pour les bidouilleurs/impatients.



  • Petit UP ! Je viens de trouver par hasard l'origine de tous mes problèmes sur les jeux psx: - Ralentissements fréquents sur la totalité des FMV et même sur certains vieux jeux (tekken, motoracer, crash bandicoot,...) - Sons déformés, ralentis, ...   J'avais activé l'option rewind ( rewind_enable="true" dans retroarchcustom.cfg). Cette option bien rigolote sur les consoles 8 et 16 bits me permettait de remonter les temps dans les jeux... Et me plombait les perfs de l'emulateur psx. Un fois désactivée, je suis repassé à un framerate entre 50/60fps. Une psx quoi ! Et surtout des FMV avec un son normal ! A moi FF9, ChronoCross, Xenogears,..   Un gros merci au gens sympas de l'irc qui m'ont bien aidés ❤   edit: Si quelqu'un a une idée pour désactiver cette option pour l'émulateur psx uniquement (afin de la conserver activée sur les autres émulateurs donc), je suis intéressé !


  • Staff
    Global moderator
    Team

    Bonjour étant au travail je ne peux détailler la procédure mais je pense que oui tu peux désactiver cette fonction uniquement pour la psx en créant un fichier de configuration retroarch pour la psx. tu peux d'inspirer de ceci (je l'avais fait pour les boutons de ma manette mais ça doit jouer pour d'autres options): http://blog.recalbox.com/forums/topic/tuto-configurer-manette-pour-emulateur-dedie/ en résumé : créer un fichier : retroarch_psx.cfg ajouter dedans : rewind_enable= "false" faire chmod 0775 retroarch_psx.cfg Modifier emulatorlauncher.sh pour psx : en ajoutant --appendconfig /recalbox/configs/retroarch/retroarch_psx.cfg \"$1\"" enregistrer et rebooter.



  • Merci Acris !   C'est exactement ce que je cherchais à faire ! Et en plus j'ai moi aussi 2 manettes de X360 qui perturbent mes invités au niveau des boutons. Bref nickel, je regarde tes scripts en rentrant du taf ! 🙂 🙂 🙂


  • Staff
    Global moderator
    Team

    Faudrait ensuite que l'on résume les meilleures réglages pour la psx. Bon test 😄


  • Staff
    Developer
    Global moderator
    Team

    Et en plus j’ai moi aussi 2 manettes de X360 qui perturbent mes invités au niveau des boutons.

    Tu peux préciser ?


  • Tester

    Des habitués de manette playstation surement ^^



  • Héhé. Non simplement la box commence à arriver a maturité, du coup j'ai fait une formation recalbox à ma copine hier. Rien de bien sorcier: le bouton on/off du raspi, les raccourcis pour sortir des jeux, etc... Finalement le plus dur à assimiler a été qu'il fallait appuyer sur B de la manette pour entrer dans un menu/lancer un jeu et A pour remonter le menu. Alors que c'est l'inverse qui est inscrit dans l'aide en bas d'écran. Rien de grave donc 🙂   Edit: Bon je n'ai pas tout à fait le résultat attendu. Lorsque je lance la psx, le rewind est effectivement désactivé. Sauf que si je lance un autre émulateur à la suite, le rewind est toujours désactivé! A noter que j'ai activé le rewind dans retroachcustom.cfg et dans retroarchcustom.cfg.origin sans de meilleurs résultats... A noter pour la petite anecdote que je me suis craqué la première fois sur  le "--appendconfig" que j'ai inseré en "-appendconfig" en voulant bricoler la config de la manette. Le résultat ne s'est pas fait attendre, j'ai écrasé une partie de la config du fichier retroarchcustom.cfg ! Dont je n'avais pas fait de sauvegarde forcément. Heureusement que @rockaddicted m'a filé son fichier de config hier soir. Bref je laisse tomber pour aujourd'hui, quand ça veut pas, ça veut pas !


  • Staff
    Global moderator
    Team

    Bonjour logiquement ça ne devrait pas être désactivé dans les autres émulateurs. on va procéder par étape sous putty : (je pense que tu as dû faire la même chose)

    nano /recalbox/configs/retroarch_psx.cfg
    

    ajouter :

     # Enable rewinding. This will take a performace hit when playing, so it is disabled by default.
    rewind_enable = false
    

    Faire cltr+X puis Y pour sortir. chmod +x nano /recalbox/configs/retroarch_psx.cfg nano /recalbox/scripts/emulatorlauncher.sh chercher psx et remplacer cette ligne :

    if [[ "$emulator" == "psx" ]]; then
    /recalbox/scripts/runcommand.sh 4 "$retroarchbin -L $retroarchcores/pcsx_rearmed_libretro.so --config /recalbox/configs/retroarch/retroarchcustom.cfg \"$1\""
    fi
    

    par

    if [[ "$emulator" == "psx" ]]; then
    /recalbox/scripts/runcommand.sh 4 "$retroarchbin -L $retroarchcores/pcsx_rearmed_libretro.so --config /recalbox/configs/retroarch/retroarchcustom.cfg --appendconfig /recalbox/configs/retroarch/retroarch_psx.cfg \"$1\""
    
    fi
    

    Ctrl+x + Y reboot le rpi. Lance un jeu psx puis sortir de l'emultateur hoktey +start logiquement , lancer un autre emulateur, le rewind est toujours désactivé ? J'ai pas mon rpi sous la main mais dès que je l'ai je testerai



  • Hello Acris, Je te confirme que: - rewind_enable = "true" est présent dans retroarchcustom.cfg et retroarchcustom.cfg.origin. - retroarch_psx.cfg ne contient que la ligne rewind_enable = "false" - emulatorlauncher.sh est modifié comme tu me l'a indiqué:

    if [[ "$emulator" == "psx" ]]; then /recalbox/scripts/runcommand.sh 4 "$retroarchbin -L $retroarchcores/pcsx_rearmed_libretro.so --config /recalbox/configs/retroarch/retroarchcustom.cfg --appendconfig /recalbox/configs/retroarch/retroarch_psx.cfg "$1""

    Le résultat que j'obtiens est comme dit précédemment: je lance mario sur la nes, le rewind est fonctionnel. Je quitte la nes et lance wipeout XL sur la psx, le rewind est bien désactivé. Je quitte l'émulateur psx et retourne voir la nes et à ce moment là le rewind est désactivé. A noter que si je redémarre le raspi et retourne voir la nes, le rewind est toujours désactivé: il est effectivement passé en "false" dans retroarchcustom.cfg (il n'a pas bougé en revanche coté retroarchcustom.cfg.origin) La solution simple que j'entrevois est la création d'un second script "retroarch_gene" dans lequel le rewind serait activé, et défini pour les autres émulateurs dans emulatorlauncher.sh . La solution n'est pas très élégante - ça fout en peu l'air le boulot réalisé par @retroboy pour uniformiser les configs des émulateurs...) , mais aurait le mérite de permettre d’affiner les réglages d'un émulateur à un autre en fonction de si celui-ci est gourmand ou pas (overlay, filter,...). En poussant un peu on peut même imaginer 3 configs 8bits/16bits/32bits. Voir subdiviser ça en sega/nintendo pour les overlays... OMG je craque ça y est ! Faut pas que je m'y mette maintenant, je vais au boulot dans 2h. 🙂


  • Staff
    Global moderator
    Team

    Bonjour utilise la balise code pour les lignes de commande car la balise citation b-quote retiré un tiret ce qui donne une erreur. retroarchcustom.cfg.origin est une backup du fichier utilisé retroarchcustom.cfg il ne doit pas être utilisé logiquement dans le fonctionnement de recalbox. copie colle le contenu de retroarchcustom.cfg dans retroarch_psx.cfg PUIS dedans tu désactives rewind. et ensuite dans emulatorlauncher.sh tu modifies le path de --config

    if [[ "$emulator" == "psx" ]]; then
    /recalbox/scripts/runcommand.sh 4 "$retroarchbin -L $retroarchcores/pcsx_rearmed_libretro.so --config /recalbox/configs/retroarch/retroarch_psx.cfg \"$1\""
    fi


Want to support us ?

292
Online

82.0k
Users

22.5k
Topics

163.1k
Posts