Deutsches Tutorial


Umgestellt: Link.

[spoiler]Die erste Ãœbersetzung war von cool&fast geschrieben.
Paddy hat diese Ãœbersetzung geschrieben.
Danke!

Einleitung

Diese Anleitung beschreibt, wie man die PS3 über eine Tastatur oder Maus, welche an einen PC angeschlossen sind, steuert.

Die Weiterentwicklung basiert auf der Arbeit von Jim Paris, vielen Dank dafür!

Ich habe einige Änderungen am Quellcode gemacht, eine GUI für eine einfachere Konfiguration erstellt und die Installationsschritte für Debian-basierende Linux Distributionen wie Ubuntu vereinfacht.

Falls Du sehen möchtest, wie es funktioniert, schau Dir dieses Video von McKack an:

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

Vorraussetzungen

  • Ubuntu Live CD (oder jede andere auf Debian basierende Linux-Distribution)
  • ein Sixaxis, der bereits mit der Ziel-PS3 verwendet wird
  • ein Bluetooth Dongle mit einem Chip, bei dem man die bdaddr (bluetooth device address / Bluetooth Geräteadresse) ändern kann. Für einfach das Tutorial aus, um festzustellen, ob dein Bluetooth Dongle geeignet ist.

Anmerkungen

Durchführung auf eigene Gefahr!
Ich bin NICHT verantwortlich für etwaige Schäden, die an Deiner PS3 oder am PC entstehen könnten

Billige (ein paar €) CSR Bluecore4 Dongles, bei denen gemeldet wurde, dass sie funktionieren, sind auf ebay erhältlich.
Bluecore4 ist der erste CSR bluecore chip, welcher EDR (Enhanced Data Rate) unterstützt, also sind die Schlagwörter für die Suche CSR and EDR.
Achtung: viele ebay CSR Dongles sind Fälschungen!
Bitte beachte, dass ich NICHT für nicht-funktionierende Dongles verantwortlich bin, die Du kaufst!

Versuche nicht, den Sixaxis Emulator und den Sixaxis Controller zur selben Zeit zu verwenden und setze die BDADDR zurück, wenn Du den Sixaxis Emulator nicht mehr verwendest.

Die Anleitung ist für UBUNTU geschrieben, gestartet von der CD, es wird nichts auf der Festplatte gespeichert.

Du kannst Dir Ubuntu auf deinem PC installieren! Falls Du ein Windoows Betriebssystem hast, dann kannst du in diesem Tutorial nachlesen, wie Du Ubuntu installieren kannst, ohne Windows zu löschen.

Eine weitere Möglichkeit ist, den Sixaxis Emulator von einem Ubuntu Live USB Persistent Flash Drive zu starten (lies dazu diesen Post).

1 Installation

Füge “universe” zur Paketverwaltung hinzu:
– Klicke auf System>Systemverwaltung>Synaptic Packetverwaltung.
– Klicke
auf Einstellungen>Paketquellen.
– Wähle universe aus, schliesse das Fenster.
– Klicke auf
Neu laden und schliesse den Packetmanager.

Lade folgende Dateien herunter:

Installiere (Doppelklick, dann installieren).

2 Schnellstart

Schliesse den Bluetooth Dongle und den Sixaxis an den PC an.
Starte sixemugui (Verknüpfung: Anwendungen>Spiele>Sixemugui).

  1. Wähle den Sixaxis aus
  2. Wähle den Bluetooth Dongle aus
  3. Setze die Dongleaddresse (vergiss nicht, die alte Adresse aufzuschreiben)
  4. Wähle wieder den Sixaxis und den Bluetooth Dongle aus
  5. Zieh den siaxis raus und falls er sich nicht von alleine abschalte, drücke den PS3-Knopf, bis er sich von alleine ausschaltet
  6. Stell die Parameter für den emuclient ein
  7. Wähle das Konfigurationsfile aus, welches verwendet werden soll
  8. Starte emu (emuclient selbst startet, falls die Verbindung erfolgreich ist)
  9. Spiele mit deiner PS3 (Drücke Escape um den Emulator zu beenden)
  10. Stoppe den emu

Anmerkung: File>Save speichert deinen Sixaxis- und PS3-Adresse, dann musst Du den Sixaxis danach nicht mehr anschliessen.

3 Eigene Einstellungen für Maus, Tastatur und Joysticks

Es wird empfohlen, die Tastatur- und Mauseinstellungen für jedes Spiel einzustellen und abzuspeichern.

Konfigurationsdateien müssen im Verzeichnis ~/.emuclient/config gespeichert werden (~ ist das Home-Verzeichnis).

Starte sixemuconf (Verknüpfung: Anwendungen>Spiele>Sixemuconf).

Screenshots meiner Konfiguration für COD: Black Ops:


Es ist möglich, eine Konfiguration fürs Zielen mit der Maus zu definieren: kopiere die Konfiguration #1 zur Konfiguration #2, definiere die rechte Maustaste as Konfigurations #2 Trigger um zurückzuschalten und stelle die Mausmultiplikatoren und -exponenten ein.

Folgenden Auswahlpunkte aus dem Menu “Edit” ermöglichen eine Konvertierung der Konfiguration:

Im Menüpunkt “Replace Mouse” kann der Mausname und die ID geändert werden.
Im Menüpunkt “Replace Keyboard” kann der Tastaturname und die ID geändert werden.
Im Menüpunkt “Replace Mouse DPI” kann der Mausmultiplikator in Bezug auf die alten/neuen DPI-Werte (je höher, desto besser) eingestellt werden.

4 Maus Kalibration

Bevor die Maus kalibriert wird, stelle sicher, dass die in-game Sensitivität maximal eingestellt ist und dass die Maus DPI auf den größten Wert gesetzt wird.
Um den emuclient mit Mauskalibrationsmodus zu starten, wähle Mouse>Calibrate in der sixemugui Anwendung aus und starte dann den emuclient.

Die aktuellen Mauskalibrationswerte werden im “Mouse calibration”-Teil der GUI angezeigt.

Diese Kalibrationsmodus erlaubt eine Kalibration für jede Maus unabhängig voneinander. Es liest die Werte der geladenen Konfiguration. Um die Werte zu ändern, drücke rechte Strg (rctrl) + FX-Taste und verwende das Mausrad.

Der Dead-Zone-Wert muss auf den größtmöglichen, stabilen Wert gesetzt werden.
Verschiedene Dead-Zone-Werte für x und y machen nur Sinne für eine rechteckige Dead-Zonen-Bereich.
Der Dead-Zonen-Bereich sollte auf die stabilsten Werte gesetzt werden.

5 Tastaturmakros

Es ist möglich, die Tastaturmakros zu konfigurieren.

Ein Tastendruck generiert eine Reihe von Events mit zeitlichen Abhängigkeiten.

Die Kommandos sind die folgenden:
– Taste runterdrücken (key down)
– Taste loslassen (key up)
– Taste drücken (= Taste runterdrücken + warten + Taste loslassen) (press key)
– warten (delay) (Einheit = ms)

Jedes Macro muss in einer Datei gespeichert werden, die im Verzeichnis ~/.emuclient/macros liegt(ist das Home Verzeichnis/Persönlicher Ordner, der Ordner .emuclient ist versteckt).

Beispiel: macro_example.txt

#Definiert die Aktion/Taste, die das Makro startet
MACRO F1
#führt einen Tastendruck aus (Taste runterdrücken + 50ms warten + Taste loslassen)
KEY e
#warte 50ms
DELAY 50
#drücke eine Taste runter

KEYDOWN SPACE
#warte 50ms (minimale Verzögerung zwischen Taste runterdrücken und wieder loslassen)
DELAY 50
#Taste loslassen
KEYUP SPACE

Zeilen, die mit # beginnen, sind Kommentare.

Alle Tasten der Tastatur können ein Makro auslösen.
Die vollständige Liste kann in folgender Datei nachgelesen werden: conversion.c.

6 Fehlerbehebung / Feedback

Ich stelle das Projekt kostenlos zur Verfügung, gib mir also ein Feedback.

Schreib mir, ob es funktioniert oder nicht, insbesondere folgende Details:

  • die Linux Distribution
  • die PS3 Hardware Version (Slim, Fat 40Gb, Fat 60Gb, …)
  • die PS3 Firmware Version
  • den Bluetooth Dongle (exaktes Model + Revision, falls es eine gibt + die Ausgabe der Kommandos “hciconfig -a hci0” und “sudo hciconfig hci0 revision” in einem Terminal)
  • Die Hardware deines PCs (zumindest CPU und die Menge an RAM)

Schreibe mir das als Kommentar in diesen Blog.

Und falls es nicht funkioniert, überprüfe zuerst, ob du die aktuellste Version hast.
Dann schaue in der FAQ (English) und in der Bug liste nach, ob das Problem bereits bekannt ist, und falls nicht, melde sie.
Paypal Spendenlinks sind rechts oben in der Ecke dieser Seite.[/spoiler]

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]

English tutorial


Moved: link.

[spoiler]Warning: this tutorial is updated frequently. Don’t copy it. Link to it.

Please note that I don’t give support for anything else than Ubuntu running in a non-virtualized machine.

Introduction

This tutorial explains how to control a PS3 with PC peripherals (keyboards, mice, joysticks) plugged on a PC running Linux and using a bluetooth dongle.

This is possible thanks to the early work of Jim Paris.

I applied many modifications to its source code, developed a GUI to make the launch and the configuration easier, and simplified the installation steps for debian-based Linux distros such as Ubuntu.

If you want to see how well this works, have a look at this video made byMcKack (version 0.11):

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


Requirements

  • a sixaxis already used with the target PS3
  • a bluetooth dongle with a chip that can have its bdaddr (bluetooth device address) changed. Just perform the tutorial to discover if your dongle works.

Notes

Do it at your own risk. I’m not responsible for any damage you can cause to your PS3 or PC.

Some cheap (a few $) CSR Bluecore4 dongles on ebay are reported to work. Bluecore4 is the first CSR bluecore chip that implements EDR (Enhanced Data Rate), so that the keywords to look for are CSR and EDR. Warning: most of these dongle are counterfeits! Please note that I’m not responsible for any not working dongle you might buy.

Don’t try to use the sixaxis emulator and the sixaxis at the same time, and restore the bdaddr of the dongle if you don’t use it with the sixaxis emulator anymore.

This tutorial was written running ubuntu from a live usb disk (nothing is saved on the hard drive).

Feel free to install ubuntu on your PC! If you have a Windows OS installed, you can read this tutorial if you want to install ubuntu on your hard drive without erasing the Windows OS.

Another way to use the sixaxis emulator is to run it from a Ubuntu Live USB Persistent Flash Drive (read this post).

1 Installation

Add “universe” to your repositories:
– Clic System>Administration>Synaptic Package Manager.
– Clic Settings>Repositories.
– Select universe, close.
– Clic reload, close.

Download following file:

Install it (double clic, then install).

2 Quick start

Plug your sixaxis (and the bt dongle, if external) to your PC.
Launch sixemugui (shortcut: Applications>Game>Sixemugui).

  1. Select the sixaxis
  2. Select the bt dongle
  3. Set the dongle address (don’t forget to write the old one down)
  4. Re-select the sixaxis and the bt dongle
  5. Unplug your sixaxis and if it doesn’t power off by itself, press the PS3 button until it powers off
  6. Select emuclient parameters
  7. Select the configuration file to use
  8. Start emu (emuclient starts automatically if the connection is established)
  9. Play (press Escape to quit emuclient)
  10. Stop emu

Note: File>Save lets you save the sixaxis and PS3 addresses so that you don’t require to plug the sixaxis anymore after that.

3 Custom mappings for mouse, keyboard and joysticks

It is recommended to change the mappings and to calibrate the mouse for each game.

Configuration files have to be saved into the ~/.emuclient/config directory (~ is the home directory).

Launch sixemuconf (shortcut: Applications>Game>Sixemuconf).

Screenshots of my configuration for COD: Black Ops:

It’s possible to define a configuration for aiming: copy-paste the configuration #1 to configuration #2, define the right mouse clic as configuration #2 trigger with switch back, and adjust the mouse multipliers & exponents.

Items of the “Edit” menu that allow to convert a configuration:

The “Replace Mouse” item allows to change the mouse name and id.
The “Replace Keyboard” item allows to change the keyboard name and id.
The “Replace Mouse DPI” item allows to adjust the mouse multipliers according to old/new dpi values (the higher the better).

Stick intensity control for button to stick mappings:

See this post for more details about this functionnality: link.

4 Mouse calibration mode

Before calibrating the mouse, be sure to set the in-game sensitivity to the highest, and be sure to set the mouse dpi to the highest value.

To start emuclient with the mouse calibration mode enabled, select Mouse>Calibrate in the sixemugui application. Then start emuclient.

Current mouse calibration values appear in the “Mouse calibration” part of the gui.

This calibration mode lets you calibrate each mouse independently. It reads values from the loaded configuration. To change values, use rctrl+FX key combinations and use the mouse wheel.

The dead zone value has to be set to the highest stable position.
Different dead zones for x & y only makes sense for a “rectangle” dead zone shape.
The dead zone shape has to be set to the most stable one.

5 Keyboard macros

It’s possible to configure keyboard macros.

A key press will generate a series of events, with timing conditions.

Commands are the following:
– key down
– key up
– key press (= key down + delay + key up)
– delay (unit = ms)

Each macro has to be defined in a file saved into the ~/.emuclient/macros directory (~ is the home directory, .emuclient folder is hidden).

Example: 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

Lines beginning with # are comments.

All keys of the keyboard can trigger a macro. The complete list can be found in conversion.c.

6 Troubleshooting / Feedback

I’m sharing my project for free, so please give me a feedback.

Tell me if it works or doesn’t work, and especially add the following details:

  • the Linux distribution
  • the PS3 hardware version (slim, fat 40Gb, fat 60Gb, …)
  • the PS3 firmware version
  • the bluetooth dongle (exact model + revision if there is one + output of commands “hciconfig -a hci0” and “sudo hciconfig hci0 revision” in a terminal)
  • the hardware of the PC (at least the CPU and the amount of RAM)

Report that in commentary to this post.

And if it doesn’t work, first verify if you have the latest packages. Then look at the FAQ and the bug list, see if your problems are already known, and if it’s not, report them.

If you want to contribute to this project, have a look at this page.
Paypal donation links are on the top right corner of this page.[/spoiler]

Sixaxis Emulator Tutorial (DE)


Dieses Tutorial ist nicht mehr aktualisiert. Das neue Tutorial ist hier : Link.

[spoiler]cool&fast aus www.gtrp.de hat diese Ãœbersetzung geschrieben (danke!).

Einführung

Diese Anleitung erklärt, wie man die PS3 über eine Tastatur oder Maus, welche an einen PC angeschlossen sind steuert.
Der PC muss mit Linux laufen und ein Bluetooth Dongle besitzen.
Diese Sixaxis Emulator war zuerst von Jim Paris geschrieben. Ich habe einige Änderungen gemacht.

Voraussetzung

* UBUNTU 10.04 oder später (Kann hier gratis UBUNTU Download heruntergeladen werden)
* Ein Sixaxis Controller, welcher schon an der (zu steuernden) PS3 benutzt wurde
* Ein Bluetooth Dongle mit einem Chip, auf welchem BDADDR (Bluetooth Geräte Adresse) geändert werden kann. Wenn du die Anleitung durchspielst, merkst du automatisch, ob dein Dongle unterstützt wird.

Es gibt auf ebay günstige Dongles. Schaue nach einem Dongle mit dem Keyword CSR und EDR.

Wichtig
Du machst diese Änderungen auf eigenes Risiko. Ich bin nicht verantwortlich für Schände, die an deiner PS3 oder deinem PC entstehen.

Vor dem Starten…

* Entferne alle USB und/oder Bluetooth Anschlüsse am PC, oder deaktiviere sie.
* Versuche nicht, den Sixaxis Emulator und den Sixaxis Controller zur selben Zeit zu verwenden und setze die BDADDR zurück, wenn Du den Sixaxis Emulator nicht mehr verwendest.

Die Anleitung ist geschrieben für UBUNTU gestartet von der CD, es wird nichts auf der Festplatte gespeichert.

Nachdem Schritt 1 und 2 der folgenden Anleitung erfolgreich gemacht wurden, können bei einem Neustart des Sixaxis Emulators von der CD die folgenden Schritte 3 und 4 mit einem Skript ausgeführt werden.

Brenne das heruntergeladene UBUNTU auf eine CD und starte den PC von der UBUNTU CD…

Schritt 1

Finde die Bluetooth Adressen der PS3 und des Sixaxis-Controllers heraus:

Verbinde den Sixaxis Controller mit dem USB Kabel mit dem PC.

Starte das Terminal-Fenster (Alt+F2), oder via Anwendugen/Zubehör/Terminal und gib die folgenden Befehle genau so ein (am besten via copy/paste):

sudo apt-get install libusb-dev

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

gcc -o sixaddr sixaddr.c -lusb

sudo ./sixaddr

Nun wird dir folgendes angezeigt:
Current Bluetooth master: XX:XX:XX:XX:XX:XX
Current Bluetooth Device Address: YY:YY:YY:YY:YY:YY

“Current Bluetooth master” ist die Bluetooth Adresse der PS3 (Schreibe sie auf, sie wird im Schritt 4 benötigt!)
“Current Bluetooth Device Address:” ist die Bluetooth Adresse des Sixaxis Controllers (Schreibe sie auf, sie wird im Schritt 2 benötigt!)

Entferne den Sixaxis Controller vom PC. Er sollte ausschalten.

Schritt 2

Modifiziere die Bluetooth Adresse des PC Bluetooth Dongels, gib dazu die folgenden Befehle im Terminal-Fenster genau so ein (am besten via copy/paste):

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

Wenn gefragt wird, nicht installieren!

cd test

./bdaddr

Nun wird dir folgendes angezeigt:
Manufacturer: Cambridge Silicon Radio (10)
Device Address: 01:02:03:04:05:06

Schreibe die rote Zahlenfolge auf, damit du sie zurücksetzen kannst, wenn du den Emulator nicht mehr benötigst.

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

Ersetze ZZ:ZZ:ZZ:ZZ:ZZ:ZZ mit der der Zahlenkombination aus Current Bluetooth Device Address: YY:YY:YY:YY:YY:YY aus dem ersten Schritt.

Entferne den Bluetooth Dongel und schliesse ihn wieder an.

./bdaddr

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

Kontrolliere, dass die ZZ-Zahlenfolge den von dir eingegebenen Wert hat. Sofern da so ist, gehe zu Schritt 3. Andernfalls wiederhole den Schritt.

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

Ersetze ZZ:ZZ:ZZ:ZZ:ZZ:ZZ mit der der Zahlenkombination aus Current Bluetooth Device Address: YY:YY:YY:YY:YY:YY aus dem ersten Schritt.

Nun, versuche einen Softreset:

sudo hciconfig hci0 reset

Damit wird die Bluetooth Adresse NICHT permanet geändert. Änderungen und Softreset müssen jedes Mal wiederholt werdn, wenn der PC neu gestartet wird oder der Dongel entfernt und wieder eingesteckt wird.

Bis jetzt wissen wir nicht, ob es funktioniert. Um dies festzustellen, führe die folgenden Schritte aus:

Schritt 3

Erstelle den Sixaxis Emulator Server und Client, starte ein Terminal-Fenster (Alt+F2), oder via Anwendugen/Zubehör/Terminal und gib die folgenden Befehle genau so ein (am besten via copy/paste):

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

Wichtig: Der Leerschlag vor diyps3controller-read-only muss sein!

cd diyps3controller-read-only

make

Schritt 4

Starte den Server und den Client

Schalte die PS3 in den Standby Mode, die rote Lampe leuchtet

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

Ersetze ZZ:ZZ:ZZ:ZZ:ZZ:ZZ mit der der Zahlenkombination aus Current Bluetooth master: XX:XX:XX:XX:XX:XX aus dem Schritt 1.

Die PS3 sollte jetzt starten!

Wenn du eine ‘Connected’ Meldung sieht, läuft es und du kannst mit der Anleitung fortfahren.

Lasse das alte Terminal-Fenster laufen und starte ein neues Terminal-Fenster (Alt+F2), oder via Anwendugen/Zubehör/Terminal und gib die folgenden Befehle genau so ein (am besten via copy/paste):

cd ~/diyps3controller-read-only

./emuclient

Jetzt kannst du die PS3 via Tastatur steuern!!! Um den Emulator zu schliessen, drücke einfach Escape (ESC).

Schritt 5

Definiere, welche Tastatur-Tasten welche PS3-Controller Funktionen haben.

Ich habe eine azerty Tastatur verwendet, so ist es ratsam, das Mapping zu ändern. Dazu ändert man die Datei emuclient.c.

cd ~/diyps3controller-read-only

gedit emuclient.c

Ein Editor öffnet sich, jetzt kannst du deine Änderungen machen. Cool&fast empfehlt diese Änderungen:

void key(int sym, int down)
{
int index = -1;

switch (sym) {
case SDLK_v: index = sb_ps; break;

case SDLK_i: index = sb_triangle; break;
case SDLK_m: index = sb_cross; break;
case SDLK_k: index = sb_circle; break;
case SDLK_j: index = sb_square; break;

case SDLK_c: index = sb_select; break;
case SDLK_b: index = sb_start; break;Ohne diesen Befehl werden die Modifikationen im emuclient.c nicht wirksam!

#ifndef WIN32
case SDLK_a: down?move_x(-127):move_x(0); break;
case SDLK_w: down?move_y(-127):move_y(0); break;
#else
case SDLK_d: down?move_x(-127):move_x(0); break;
case SDLK_r: down?move_y(-127):move_y(0); break;
#endif
case SDLK_y: down?move_y(127):move_y(0); break;
case SDLK_s: down?move_x(127):move_x(0); break;

Speichere die Datei und führe folgenden Befehl im Terminal aus:

make

Nach diesen Änderungen führen die folgenden Tasten die folgenden PS3 Befehle aus:

* w = pfeil rauf / a = pfeil links / s = pfeil rechts / y = pfeil runter
* i = dreieck / j = quadrat / m = x / k = kreis
* c = set / v = ps / b = start
* esc = schliesst den Emulator

Schritt 6

Endlich: Tastatur Makros

Nun ist es möglich, eigene Makros zu schreiben und laufen zu lassen.
Folgende Befehle stehen zu Auswahl:

* key down [Taste gedrückt]
* key up [Taste losgelassen]
* key press (= key down + delay + key up) [Taste gedrückt + kurz warten + Taste loslassen]
* delay (unit = ms) [Pause für Anzahl Millisekunden, 1000ms = 1 Sekunde]

Jedes Makro ist eine Datei. Ein Muster ist in macro_example.txt gespeichert.

gedit macro_example.txt

Zeigt folgendes Resultat im Editor:

#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

Kommentarzeilen beginnen mit einem #.

Jedes neue Makro muss in der Datei macros.txt eingetragen werden.

gedit macros.txt

Alle Tasten können in einem Makro verwendet werden. Eine komplette Übersicht kann in der Datei macro.c gefunden werden.

Viel Spaß![/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]

Sixaxis emulator tutorial


This tutorial is deprecated. New tutorial: link.

[spoiler]Introduction

This tutorial explains how to control a PS3 with a keyboard and a mouse plugged on a PC running Linux and using a bluetooth dongle.

This is possible thanks to the work of Jim Paris. I applied some modifications to its source code.

Requirements

  • a sixaxis already used with the target PS3
  • a bluetooth dongle with a chip that can have its bdaddr (bluetooth device address) changed. Just perform the tutorial to discover if your dongle works.

Notes

Do it at your own risk. I’m not responsible for any damage you can cause to your PS3 or PC.

Cheap (a few $) CSR Bluecore4 dongles on ebay are reported to work. Bluecore4 is the first CSR bluecore chip that implements EDR (Enhanced Data Rate), so that the keywords to look for are CSR and EDR.

Unplug any other dongle from this PC (or deactivate them).

Don’t try to use the sixaxis emulator and the sixaxis at the same time, and restore the bdaddr of the dongle if you don’t use it with the sixaxis emulator anymore.

This tutorial was written running ubuntu from the live cd (nothing is saved on the hard drive).

Don’t forget to write down the bdaddr of the PS3 in step 1, so that you won’t need to perform that step again.

Once step 2 is done, you don’t need to do that step anymore since the bdaddr modification is permanent.

As steps 1 & 2 have to be done once, a easy way to launch the sixaxis emulator with a live cd is to write a script for steps 3 & 4.

Feel free to install ubuntu on your PC! If you have a Windows OS installed, you can read this tutorial if you want to install ubuntu on your hard drive without erasing the Windows OS.

Another way to use the sixaxis emulator is to run it from a Ubuntu Live USB Persistent Flash Drive (read this post).

1 Discover the bdaddr of the Sixaxis and the bdaddr of the PS3

Plug the sixaxis to the PC with a usb cable

In a 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” is the bd_addr of the PS3 (write it down).
“Current Bluetooth Device Address: ” is the bd_addr of the sixaxis (write it down).

Unplug the usb cable. The sixaxis should power off.

2 Modify the bdaddr of the 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

(do not make install)

cd test

./bdaddr

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

Write it down (so that it can be restored).

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

(replace the ZZ:ZZ:ZZ:ZZ:ZZ:ZZ with the bdaddr of the Sixaxis dicovered in step 1).

Unplug and replug the dongle.

./bdaddr

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

Make sure the bdaddr has been changed.

If it is changed: go to step 3.

If it is not, change the bdaddr again:

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

(replace the ZZ:ZZ:ZZ:ZZ:ZZ:ZZ with the bdaddr of the Sixaxis dicovered in step 1).

Then, try to perform a “soft reset” with the following command:

sudo hciconfig hci0 reset

This doesn’t change the bdaddr permanently. Modification and soft reset have to be done again after each time the pc is restarted or the dongle is replugged.

At this step, there is no (known) way to tell if it will work. To know that, just try to perform following parts.

3 Build the sixaxis emulator server and client

In a terminal (alt+F2, gnome-terminal):

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 Launch the sixaxis server & client

Launch the server:

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

If the command is executed without sudo and the PS3 is already started, it will not work.

Replace ZZ:ZZ:ZZ:ZZ:ZZ:ZZ with the bdaddr of the PS3.

The PS3 should power on.

If you performed a “soft reset” at step 2, and if you get this error message:

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

this means you have to try another dongle (see Notes).

If you get a “connected” message, then continue the tutorial.

In another terminal:

cd ~/diyps3controller-read-only

./emuclient

Play or do whatever you want with your PS3.

Press Escape to quit the client.

5 Custom mappings for mouse & keyboard

Most of you probably want to change the mappings, since I’m using an azerty keyboard.
It is recommended to change the mappings and to calibrate the mouse for each game.

This section describes the parameters that can be changed in emuclient.c.

cd ~/diyps3controller-read-only

gedit emuclient.c

Modify controls!

make

Don’t forget this last command after each modification of emuclient.c!

Keyboard controls

Modify the controls after this line:

void key(int sym, int down)

Default controls:

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

Some keys are used to calibrate the mouse movements (see Mouse controls).

Mouse controls

The mouse movements are mapped to right stick.

The dead zone is optimized for COD MW2.
This has to be changed depending on the game (see DEAD_ZONE at the beginning of the file).
To enable calibration mode for the dead zone, press keypad 0 (keypad 0 again to disable).
The calibration mode applies an horizontal move movement that corresponds to the current dead zone value.
If the position is not stable, decrease the dead zone (keypad /) until the position is stable.
If the position is stable, increase the dead zone (keypad *) until last position that is stable.

The current value of the dead zone is displayed in the emuclient terminal.

The default multiplier for mouse movements is 4 (see DEFAULT_MULTIPLIER at the beginning of the file).
Keypad +/- can be used to increase/decrease (+/-0.25) the multiplier.

The current value of the multiplier is displayed in the emuclient terminal.

Modify the controls after this line:

void clic(int button, int down)

Default controls:

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

For advanced user that know C programming

If you want to modify the code so as to play with other input devices, you will find documentation there.

6 Keyboard macros

It’s possible to configure keyboard macros.

A key press will generate a series of events, with timing conditions.

Commands are the following:
– key down
– key up
– key press (= key down + delay + key up)
– delay (unit = ms)

Each macro has to be defined in a file.

Example: 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

Lines beginning with # are comments.

Each macro file has to be referenced in the macros.txt file.

All keys of the keyboard can trigger a macro. The complete list can be found in macro.c.

7 Troubleshooting / Feedback

I’m sharing my project for free, so please give me a feedback if you test(ed) it.

Tell me if it works or doesn’t work, and especially add the following details:

  • the Linux distribution
  • the libraries (if different from those suggested in the tutorials)
  • the PS3 hardware version (slim, fat 40Gb, fat 60Gb, …)
  • the PS3 firmware version
  • the bluetooth dongle (exact model + revision if there is one + output of “hciconfig -a hci0” and “sudo hciconfig hci0 revision”)
  • the hardware of the PC (at least the CPU and the amount of RAM)

Report that in commentary to this post.

And if it doesn’t work, first verify if you have the latest source code. Then look at the bug list, see if your problems are already known, and if it’s not, report them.[/spoiler]