SixAxis (PS3) Controller + ZSNES
Mail Home Search

SixAxis / Dualshock 3 und Linux

Sony verkauft mit dem SixAxis-Controller ein ganz nettes Bluetoot-Gamepad welches sich super für SNES-Emulatoren eignet. (Klar: Man hat ja damals auch das Design geklaut.)

System vorbereiten

Auf http://www.pabr.org/sixlinux/sixlinux.en.html ist eigentlich alles ganz prima erklärt, damit ich aber auch was zum schreiben habe: hier die Kurzversion:

hidd patchen

Der Controller wird out-of-the-box nicht funktionieren: Zuerst muss hidd (bluez-utils) gepatcht und neu kompiliert werden.
Patch gibts hier (lokaler mirror von patch-hidd-3.19-pabr3)

Pairing

Nach dem Patchen (+ neustart von hidd) muss man dem Controller noch beibringen, dass er doch bitte mit uns reden soll. Dazu muss er zuerst via USB verbunden werden. Danach kompiliert man sich sixpair und startet es:
gcc -o sixpair sixpair.c -lusb
./sixpair
Current Bluetooth master: xx:xx:xx:xx:xx:xx
Setting master bd_addr to xx:xx:xx:xx:xx:xx

sixpair hat dem Controller nun die ID des Bluetooth-Masters verraten. Nun kann wird der controller abgestöpselt und bluetooth gestoppt! Danach starten wir hidd mit der --nocheck option:
hidd --server --nocheck -n
..und drücken den PS-Button am Controller. Nachdem hidd den Controller gefunden hat, kann er via CTRL+C gestoppt werden und wir können bluetooth wieder starten.

Fertig!

Der Controller + hidd kennen sich nun: Ab sofort reicht das drücken der PS-Taste um den Controller mit dem Computer zu verbinden :-)

ZSNES Konfiguration

Buttonmapping

Da ZSNES (1.51) sich beim buttonmapping einfach aufhängt, müssen wir zinput.cfg direkt bearbeiten. Ich hab' da schon mal was vorbereitet: Meine zsnes Konfiguration kann man sich hier downloaden

Windowmanager Layout

Nun ist ZSNES schon ganz spielbar (btw: der PS-Button beendet den Emulator), allerdings nervt das MythTV-Fenster im Hintergrund noch ziemlich. Meine MythTV Installation verwendet fvwm 2 als WindowManager, welchen man relativ einfach zu einer schöneren Darstellung des ZSNES-Fensters überreden kann: Dazu wird zsnes über ein kleines wrapper-script gestartet:
#!/bin/sh
sleep 2 && FvwmCommand 'All (*zsnes*) Move 150p 0p' && FvwmCommand 'All (*myth*) Iconify' && FvwmCommand 'All (*xterm*) Iconify' &
sleep 2.1 && amixer -q set "Front" unmute &
amixer -q set "Front" mute

zsnes "$@"
FvwmCommand 'All (*xterm*) Iconify'
FvwmCommand 'All (*myth*) Iconify'
Das Script schiebt das ZSNES Fenster in die Mitte und Ikonifiziert alle MythTV Fenster. Nachdem sich ZSNES beendet hat, werden die MythTV Fenster wieder restored. Meine FVWM Konfiguration + Script kann man sich hier runterladen

Endprodukt

ToDo

Hmm.. irgendwie müsste man den Controller On-The-Fly depairen können. Momentan muss immer der Reset Button gedrückt werden.




comments powered by Disqus