Accueil > Linux > Une PlayStation dans votre freevo !!!

Une PlayStation dans votre freevo !!!

Vu que j’ai le bon materiel pour ca , ca faisait longtemps que l’idée me trottait dans la tête : ajouter un émulateur de playsation dans mon HTPC. Les projets d’émulateurs psx sont nombreux et l’histoire de leur développement est chaotique. Tout d’abord, j’ai regardé du côté de psx mais ce projet est mort depuis un bout de temps. Ensuite, c’est pcsx-df qui a attiré mon attention. Concernant la version packagée Debian, celle-ci existe seulement pour stable (lenny) mais pas pour Squeeze. Après téléchargement des sources et compilation, cet émulateur s’est avéré vraiment buggé avec des segfault de partout; inutilisable donc.
C’est alors que j’ai découvert pcsx-reload un excellent fork. Vient chercher bonheur…
On récupère les source .
En parcourant l’archive, je vois un répertoire Debian avec tous les fichiers qui vont bien pour faire un paquet .deb (control, rules etc…).
Chouette, pour une fois on va le faire propre. On se place dans la racine du répertoire décompressé et on tente un:
:/$ dpkg_buildpackage
et hop, modulo les quelques dépendances qu’on vous demande poliment d’installer, on se retrouve avec un beau paquet tout propre. On l’installe:
#dpkg -i pcsxr_1.9.92-1_i386.deb

Voila, l’ émulateur s’est installé dans /usr/games/pcsx.
Ce qui est très pratique avec pcsx reload, c’est que tout (ou quasiment) est déjà configuré pour fonctionner « out of the box ». Néanmoins, il va falloir régler l’ émulateur selon vos préférences et votre matériel.
Pour ca on arrête freevo, on démarre un gestionnaire de fenêtre et on lance pcsx.
Bon là, c’est à base de click de souris. Juste quelques conseils:
Activer l’openGl (si votre carte ne supporte l’accélération matérielle, passez votre chemin)
– Utiliser des bios autres que le bios intégré (problème sur les memorys card)
– Ne pas hésiter à essayer les différents options graphiques (améliore grandement le rendu)
– Activer l’option fullscreen
– Limiter le frame rate (chez moi seule solution pour éviter un emballement du son)

Une fois qu’on est arrivé à la configuration « au poil », on peut s’intéresser à l’intégration dans freevo.
Les options -nogui et -cdfile de pcsx indiquées par le man nous indiquent qu’on peut ce passer de l’interface graphique pour lancer un jeu. C’est bien ca et ca va nous permettre de l’intégrer dans freevo
Tout d’abord dans .freevo/local_conf.py on active le plugin jeu en remplacant
if CONF.xmame or CONF.snes:
plugin.activate(‘games’, level=50)

par
plugin.activate(‘games’, level=50)
Ensuite, dans la section adéquate on ajoute :
GAMES_ITEMS = [
(‘Playstation’ , ‘/mnt/Data/Games’,
(‘GENERIC’ , ‘/usr/games/pcsx’ , ‘-nogui -cdfile’ ,  » , [ ‘mdf’ , ‘iso’ , ‘bin’ ]))

Cette syntaxe respecte la structure décrite dans local_conf.py.
tout d’abord le nom du menu ici j’ai mis Playstation. Ensuite le répertoire des jeux (chez moi: /mnt/Data/Games).Puis le type: GENERIC , le binaire de l’ émulateur, les options à passer en paramètre à celui-ci, le répertoire des images (vide dans ce cas) et l’ extension des images des jeux utilisés. C’ est tout pour ce fichier de conf.
Si vous avez un joystick (ou deux) je vous conseille de changer les droits par défaut sur le (les) périphériques avec un: #chmod 666 /dev/ input/js0 (#chmod 666 /dev/input/js1).
Vous pouvez dores et déjà tester si pcsx se lance sous freevo. Attention, pour cela vous devez lancer freevo sans gestionnaire de fenêtre à parir d’ un terminal avec un freevo -fs.
Bon normalement ca devrait marcher. Reste un problème, comment sortir de l’ émulateur et retourner sous freevo.
Via telnet, je me logge et lance un killall pcsx. Pcsx s’arrête donc et rends la main à freevo qui plante lamentablement à cause d’un segfault vomi par le module pygame. Diable, ca se corse… Il va donc falloir pouvoir redémarrer freevo après l’exctinction de pcsx.
Dans mon cas, freevo est commandé par une télécommande IR via lirc.
Nota: Pour connaître les éléments principaux de ma conf freevo vous pouvez vous reportez à un post précédent.
Dans le cas de pcsx, on fait intervenir un programme tiers, extérieur à tout contrôle intégré de freevo. Il va donc falloir faire intervenir un processus extèrieur à freevo pour reprendre la main.
Pour cela on a irexec (man irexec). On commence par modifier le fichier /etc/freevo/lircrc en affectant un bouton (inutilisé de préférence) pour lui affecter l’action. Chez moi ce sera le bouton power.
Dans lircrc sa donne:
begin
prog = irexec
button = Power
repeat = 0
config = kill -9 `ps aux | grep bash | grep tty | cut -d’ ‘ -f5`
end

Quelques explications sur cette commande:
Comme expliqué dans le post pointé par le lien précédent, j’ ai opté pour la solution suivante afin de démarrer freevo automatiquement au démarrage (Stand-alone Box):

processus de démarrage (/redémarrage) de freevo


la commande ps aux | grep bash | grep tty | cut -d’ ‘ -f5 permet d’identifier le PID de bash lancé sous tty1. On pourrait se contenter d’un pidof bash mais que ce passerait-il si en plus de faire tourner votre freevo sur la station vous êtes loggés (telnet, ssh) dessus pour une tâche d’ adminsitration / maintenance?
irexec va donc stopper pcsx et redémarrer freevo. On est presque au bout … reste juste à modifier le .basrc afin que celui-ci lance irexec en tâche de fond avant le démarrage de freevo. A la fin de /home//.bashrc on trouve donc:
case « `tty` » in
/dev/tty1)
irexec /etc/freevo/lircrc&
clear && freevo -fs &>/dev/null;;
esac

Voila c’est fini, y a pus qu’aller acheter des jeux et suivre la charmante demoiselle ….

Catégories :Linux Étiquettes : , , , ,
  1. Aucun commentaire pour l’instant.
  1. No trackbacks yet.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :