Tutoriel en français


Déplacé : lien.

[spoiler]Attention : ce tutoriel est mis à jour fréquemment. Ne le copiez pas. Donnez un lien vers cette page.

Merci de noter que je n’offre pas de support pour autre chose qu’Ubuntu fonctionnant sur une machine non-virtuelle.

Introduction

Ce tutoriel explique comment contrôler une PS3 avec des périphériques PC (clavier, souris, joystick) connectés à un PC sous Linux, en utilisant un dongle bluetooth.

Cela est possible grâce au travail préliminaire de Jim Paris.

J’ai appliqué de nombreuses modifications à son code source, développé des interfaces pour faciliter le lancement et la configuration, et simplifié l’installation pour les distributions Linux à base de debian telles que Ubuntu.

La vidéo suivante réalisée par
McKack montre le sixaxis emulator en fonctionnement (version 0.11):

PS3 games with keyboard & mouse - Sixaxis Emulator v0.11


Pré-requis

  • ubuntu Live CD (ou toute autre distribution Linux si vous êtes à l’aise avec Linux)
  • une manette sixaxis déjà utilisée avec la PS3 à utiliser
  • un dongle bluetooth avec une puce dont la bdaddr (bluetooth device address) peut être changée. Pour découvrir si votre dongle marche, essayez simplement d’exécuter ce tutoriel.

Notes

Cette méthode est expérimentale, donc utilisez là à vos risques et périls. Je ne suis pas responsable des dégâts que vous pourriez causer à votre PC ou à votre PS3.

Les dongles CSR Bluecore4 trouvables sur ebay pour quelques euros sont rapportés comme utilisables. Bluecore4 est la première puce CSR implémentant l’EDR (Enhanced Data Rate), donc les mots clefs pour trouver ces dongles sont CSR et EDR.Attention : la plupart de ces dongles sont des contrefaçons. Je ne suis pas responsable de l’achat d’un dongle incompatible.

Ne pas essayer d’utiliser le Sixaxis emulator et la manette sixaxis en même temps. Rétablir la bdaddr du dongle si elle n’est plus utilisée pour le Sixaxis emulator.

Ce tutoriel a été écrit en utilisant ubuntu depuis le live cd (rien n’est modifié sur le disque dur).

Installez ubuntu sur votre PC si vous le souhaitez ! Si vous avez un OS Windows déjà installé, vous pouvez lire ce tutoriel si vous voulez installer ubuntu sur votre disque dur sans supprimer l’OS Windows.

L’émulateur peut aussi être exécuté à partir d’un Ubuntu en Live USB persistent (lire ce post).

1 Installation

Ajouter”universe” aux dépôts:
– Cliquer sur Système>Administration>Gestionnaire de paquets Synaptic.
– Cliquer sur Configuration>Dépôts.
– Sélectionner universe, et fermer.
– Cliquer sur recharger, et fermer.

Télécharger le fichier suivant:

Installer ce fichier (double clic, puis installer).

2 Démarrage rapide

Brancher le sixaxis (et le dongle bluetooth, si externe) au PC.
Lancer sixemugui (raccourci: Applications>Jeu>Sixemugui).

Note: il y a un problème depuis Ubuntu 11.04. Au lieu de démarrer Sixemugui depuis le raccourci, démarrer-le depuis un terminal: Applications>Accessoires>Terminal. Puis taper sixemugui dans ce terminal, et presser entrée. Je travaille sur ce problème!

  1. Sélectionner le sixaxis
  2. Sélectionner le dongle bluetooth
  3. Cliquer sur “Set Dongle Address” (ne pas oublier de sauver l’ancienne adresse)
  4. Re-sélectionner le sixaxis et le dongle bluetooth
  5. Débrancher le sixaxis et s’il ne s’éteint pas de lui-même, appuyer sur le bouton PS3 jusqu’à ce qu’il s’éteigne
  6. Sélectionner les paramètres d’emuclient
  7. Sélectionner le fichier de configuration à utiliser
  8. Démarrer emu (emuclient démarre automatiquement si la connexion est établie)
  9. Jouer (appuyer sur Echap pour quitter emuclient)
  10. Arrêter emu.

Note: File>Save permet de sauver les adresses du sixaxis et de la PS3, ce qui évite d’avoir à connecter le sixaxis avant chaque utilisation.

3 Configurer les contrôles souris, claviers et joysticks

Il est recommandé de changer les contrôles et de calibrer la souris pour chaque jeu.

Les fichiers de configuration doivent être sauvegardés dans le répertoire ~/.emuclient/config directory (~ est le répertoire de l’utilisateur).

Lancer sixemuconf (raccourci: Applications>Jeu>Sixemuconf).

Captures d’écran de ma configuration pour COD: Black Ops:


Il est possible de définir une configuration de visée : copier-coller la configuration #1 sur la configuration #2, définir le bouton droit de la souris comme “trigger” avec “switch back” pour la configuration #2, et ajuster les “multipliers” & “exponents”.


Outils du menu “Edit” permettant de convertir une configuration :


L’outil “Replace Mouse” permet de changer le nom et l’id de la souris.
L’outil “Replace Keyboard” permet de changer le nom et l’id du clavier.
L’outil “Replace Mouse DPI” permet d’ajuster les multipliers en fonction des ancien/nouveau réglages dpi de la souris (la plus haute valeur est la meilleure).

Contrôle de l’intensité du stick pour les mappings de button à stick :

Voir le post suivant pour plus de détails sur cette fonctionnalité : lien.

4 Calibration de la souris

Avant de calibrer la souris, s’assurer que la sensibilité est réglée au maximum dans le jeu, et régler la sensibilité de la souris au maximum (max dpi).

Pour démarrer emuclient avec le mode de calibration de la souris activé, sélectionner Mouse>Calibrate dans l’application sixemugui. Ensuite, démarrer emuclient.

Les valeurs courantes de calibration apparaissent dans la partie “Mouse calibration”.

Ce mode de calibration permet de configurer chaque souris indépendamment. Les valeurs sont lues à partir de la configuration chargée. Pour modifier les valeurs, utiliser les combinaisons ctrl droit + FX, et utiliser la molette de la souris.

La zone morte doit être fixée à la plus haute position stable.
Des valeurs différentes pour x & y n’ont de sens que pour une dead zone “rectangle”.
La “dead zone shape” doit être fixée à celle qui est la plus stable.

5 Macros clavier

Il est possible d’exécuter des macros de clavier.

Un appui sur une touche peut générer une série d’événements, avec certains délais.

Les commandes sont les suivantes :
– key down (touche enfoncée)
– key up (touche relâchée)
– key press (key down + délai + key up)
– delay (délai, unité = ms)

Chaque macro doit être définie dans un fichier.

Exemple: macro_example.txt

#Defines the action that triggers the macro execution
MACRO F1
#Performs a keystroke (key down + delay 50ms + key up)
KEY e
#Sleep 50ms
DELAY 50
#Perform a key down
KEYDOWN SPACE
#Sleep 50ms (minimum delay between KEYDOWN and KEYUP)
DELAY 50
#Perform a key up
KEYUP SPACE

Les lignes qui commencent par # sont des commentaires.

Chaque fichier définissant une macro doit être référencé dans le ficher macros.txt.

Toutes les touches du clavier peuvent générer une macro. La liste complète peut être obtenue dans le fichier conversion.c.

6 Résolution des problèmes / Feedbacks

Je partage mon projet gracieusement, merci de bien vouloir me donner un feedback si vous le testez.

Dites-moi si cela fonctionne ou non, et ajoutez en particulier les détails suivants :

  • la distribution Linux
  • la version hardware de la PS3 (slim, fat 40Gb, fat 60Gb, …)
  • la version software de la PS3
  • le dongle bluetooth (modèle exact + révision s’il y en a une + résultat de “hciconfig -a hci0” et “sudo hciconfig hci0 revision”)
  • le hardware du PC (au moins le CPU et la quantité de RAM)

Écrivez cela dans un commentaire à ce post.

Et si cela ne marche pas, vérifiez d’abord que vous disposez des derniers paquets. Ensuite rendez-vous dans la FAQ (en anglais pour l’instant…) et dans la liste de bugs, regardez si vos problèmes sont déjà connus, et s’ils ne le sont pas, rapportez-les.

Pour contribuer à ce projet, voir cette page.
Un lien paypal est disponible pour les dons, il est situé en haut de cette page à droite.
[/spoiler]

Tutoriel : Sixaxis emulator


Attention: ce tutoriel n’est plus à jour. Nouveau tutoriel : lien.

[spoiler]Introduction

Ce tutoriel explique comment contrôler une PS3 avec un clavier et une souris connectés à un PC sous Linux, en utilisant un dongle bluetooth.

Cela est possible grâce au travail de Jim Paris, dont j’ai repris et modifié le code source.

Pré-requis

  • une manette sixaxis déjà utilisée avec la PS3 à utiliser
  • un dongle bluetooth avec une puce dont la bdaddr (bluetooth device address) peut être changée. Pour découvrir si votre dongle marche, essayez simplement d’exécuter ce tutoriel.

Notes

Cette méthode est expérimentale, donc utilisez là à vos risques et périls. Je ne suis pas responsable des dégâts que vous pourriez causer à votre PC ou à votre PS3.

Les dongles CSR Bluecore4 trouvables sur ebay pour quelques euros sont rapportés comme utilisables. Bluecore4 est la première puce CSR implémentant l’EDR (Enhanced Data Rate), donc les mots clefs pour trouver ces dongles sont CSR et EDR.

Retirer tout autre dongle du PC (ou les désactiver).

Ne pas essayer d’utiliser le Sixaxis emulator et la manette sixaxis en même temps. Rétablir la bdaddr du dongle si elle n’est plus utilisée pour le Sixaxis emulator.

Ce tutoriel a été écrit en utilisant ubuntu depuis le live cd (rien n’est modifié sur le disque dur).

Ne pas oublier de noter la bdaddr de la PS3 dans l’étape 1, afin de ne plus avoir à répéter cette étape.

Une fois que l’étape 2 est réalisée, il n’y a plus lieu de la répéter puisque la modification de la bdaddr est permanente.

Comme les étapes 1 et 2 n’ont à être réalisées qu’une seule fois, une manière simple de démarer le Sixaxis emulator avec un live cd est de réaliser un script pour les étapes 3 et 4.

Installez ubuntu sur votre PC si vous le souhaitez ! Si vous avez un OS Windows déjà installé, vous pouvez lire ce tutoriel si vous voulez installer ubuntu sur votre disque dur sans supprimer l’OS Windows.

L’émulateur peut aussi être exécuté à partir d’un Ubuntu en Live USB persistent (lire ce post).

1 Déterminer la bdaddr du sixaxis et la bdaddr de la PS3

Connecter le sixaxis au PC avec un câble usb.

Dans un terminal (alt+F2, gnome-terminal) :

sudo apt-get install libusb-dev

wget http://diyps3controller.googlecode.com/svn/trunk/sixutils/sixaddr.c

gcc -o sixaddr sixaddr.c -lusb

sudo ./sixaddr

Current Bluetooth master: XX:XX:XX:XX:XX:XX
Current Bluetooth Device Address: YY:YY:YY:YY:YY:YY

“Current Bluetooth master” est la bdaddr de la PS3 (la noter).
“Current Bluetooth Device Address: ” est la bdaddr du sixaxis (la noter).

Déconnecter le câble usb. Le sixaxis devrait s’éteindre.

2 Modifier la bdaddr du dongle

sudo apt-get install libdbus-1-dev libglib2.0-dev

wget http://www.kernel.org/pub/linux/bluetooth/bluez-4.63.tar.gz

tar xzvf bluez-4.63.tar.gz

cd bluez-4.63

./configure –enable-test

make

(ne pas faire le traditionnel make install)

cd test

./bdaddr

Manufacturer: Cambridge Silicon Radio (10)
Device Address: 01:02:03:04:05:06

Noter l’adresse (pour pouvoir la rétablir).

sudo ./bdaddr ZZ:ZZ:ZZ:ZZ:ZZ:ZZ

(remplacer ZZ:ZZ:ZZ:ZZ:ZZ:ZZ avec la bdaddr du sixaxis découverte dans l’étape 1).

Déconnecter et reconnecter le dongle.

./bdaddr

Manufacturer: Cambridge Silicon Radio (10)
Device Address: ZZ:ZZ:ZZ:ZZ:ZZ:ZZ

Vérifier que la bdaddr a changé.

Si l’adresse est bien changée, aller à l’étape 3.

Sinon, changer de nouveau la bdaddr:

sudo ./bdaddr ZZ:ZZ:ZZ:ZZ:ZZ:ZZ

(remplacer ZZ:ZZ:ZZ:ZZ:ZZ:ZZ avec la bdaddr du sixaxis découverte dans l’étape 1).

Ensuite, essayer un “reset software” à l’aide de la commande suivante:

sudo hciconfig hci0 reset

Ceci ne change pas la bdaddr de manière permanente. La modification et le reset software doivent être réexécutés après chaque redémarrage du pc ou chaque rebranchement du dongle.

A ce moment, il n’y a pas de moyen (connu) de dire si cela va fonctionner ou non. Pour le savoir, continuer simplement le tutoriel.

3 Compiler le Sixaxis emulator

cd ~

sudo apt-get update

sudo apt-get install libbluetooth-dev libsdl1.2-dev subversion

svn checkout -r 134 http://diyps3controller.googlecode.com/svn/trunk/sixaxis-emu/ diyps3controller-read-only

cd diyps3controller-read-only

make

4 Démarrer le Sixaxis emulator

Démarrer le serveur:

sudo ./emu ZZ:ZZ:ZZ:ZZ:ZZ:ZZ

Si la commande n’est pas lancée avec sudo et que la PS3 est allumée, cela ne fonctionnera pas.

Remplacer ZZ:ZZ:ZZ:ZZ:ZZ:ZZ avec la bdaddr de la PS3 (découverte dans l’étape 1).

La PS3 devrait s’allumer.

Si un “reset software” a été réalisé dans l’étape 2, et que le message suivant s’affiche :

emu: can’t connect to control psm: Connection refused

alors cela signifie qu’il faut trouver un autre dongle (voir Notes).

Si le message “connected” s’affiche, alors continuer le tutorial.

Dans un autre terminal, démarrer le client:

cd ~/diyps3controller-read-only

./emuclient

Jouer, ou effectuer tout autre action avec la PS3.

Appuyer sur Echap pour quitter le client.

5 Contrôles clavier/souris

Les contrôles sont faits pour un clavier azerty, cela devrait probablement vous convenir.
Il est recommandé de changer les contrôles et de calibrer la souris pour chaque jeu.

Cette section décrit les paramètres qui peuvent être changés dans emuclient.c.

cd ~/diyps3controller-read-only

gedit emuclient.c

Modifier les contrôles!

make

N’oubliez pas cette dernière commande après chaque modification de emuclient.c !

Contrôles clavier

Modifier les contrôles après cette ligne:

void key(int sym, int down)

Contrôles par défaut:

right shift = ps
e = triangle
space = cross
left control = circle
r = square
tab = select
backspace = start
t = l2
k = l1
l = r1
g = r2
left shift = l3
f = r3

& = up
é = right
” = left
‘ = down

q = left stick left
z = left stick up
s = left stick down
d = left stick right

esc = quit emuclient

Quelques touches sont aussi utilisées pour calibrer la souris (voir Contrôles souris).

Contrôles souris

Les mouvements de la souris sont mappés sur le stick droit.

La zone morte est optimisée pour COD MW2.
Elle doit être changée pour chaque jeu (voir DEAD_ZONE au début du fichier).
Pour activer le mode de calibration de la zone morte, appuyer sur la touche 0 du pavé numérique (un nouvel appui sur cette même touche pour désactiver le mode).
Le mode de calibration applique un mouvement horizontal qui correspond à la valeur courante de la zone morte.
Si la position n’est pas stable, diminuer la zone morte en appuyant sur la touche / du pavé numérique jusqu’à ce que la position soit stable.
Si la position est stable, augmenter la zone morte en appuyant sur la touche * du pavé numérique jusqu’à la dernière position stable.

La valeur courante de la zone morte est affichée dans le terminal du processus emuclient.

Le multiplicateur par défaut pour les mouvements de la souris est 4 (voir DEFAULT_MULTIPLIER au début du fichier).
Les touches +/- du pavé numérique peuvent être utilisées pour augmenter/diminuer le multiplicateur.

La valeur courante du multiplicateur est affichée dans le terminal du processus emuclient.

Modifier les contrôles après cette ligne:

void clic(int button, int down)

Contrôles par défaut:

left button = r1
right button = l1
middle button = triangle
wheel up = r2
wheel down = l2
wheel right button = square
wheel left button = r3
side button = triangle

Pour les utilisateurs avancés connaissant la programmation en C

Si vous souhaitez modifier le code pour jouer avec d’autres périphériques d’entrée, vous pourrez trouver de la documentation ici.

6 Macros clavier

Il est possible d’exécuter des macros de clavier.

Un appui sur une touche peut générer une série d’événements, avec certains délais.

Les commandes sont les suivantes :
– key down (touche enfoncée)
– key up (touche relâchée)
– key press (key down + délai + key up)
– delay (délai, unité = ms)

Chaque macro doit être définie dans un fichier.

Exemple: macro_example.txt

#Defines the action that triggers the macro execution
MACRO F1
#Performs a keystroke (key down + delay 50ms + key up)
KEY e
#Sleep 50ms
DELAY 50
#Perform a key down
KEYDOWN SPACE
#Sleep 50ms (minimum delay between KEYDOWN and KEYUP)
DELAY 50
#Perform a key up
KEYUP SPACE

Les lignes qui commencent par # sont des commentaires.

Chaque fichier définissant une macro doit être référencé dans le ficher macros.txt.

Toutes les touches du clavier peuvent générer une macro. La liste complète peut être obtenue dans le fichier macro.c.

7 Résolution des problèmes / Feedbacks

Je partage mon projet gracieusement, merci de bien vouloir me donner un feedback si vous le testez.

Dites-moi si cela fonctionne ou non, et ajoutez en particulier les détails suivants :

  • la distribution Linux
  • les libraries (si différentes de celles suggérées dans ce tutoriel)
  • la version hardware de la PS3 (slim, fat 40Gb, fat 60Gb, …)
  • la version software de la PS3
  • le dongle bluetooth (modèle exact + révision s’il y en a une + résultat de “hciconfig -a hci0” et “sudo hciconfig hci0 revision”)
  • le hardware du PC (au moins le CPU et la quantité de RAM)

Écrivez cela dans un commentaire à ce post.

Et si cela ne marche pas, vérifiez d’abord que vous disposez du dernier code source. Ensuite rendez-vous dans la liste de bugs, regardez si vos problèmes sont déjà connus, et s’ils ne le sont pas, rapportez-les.[/spoiler]