Main /

Speed Link Game Pad

Speed Link Game Pad

Das Speed Link Gamepad SL-6512 USB, und wie man es unter Linux zum laufen bekommt

Zum Atari-XL Emulator und zu mame gehört zum zünftigen Daddeln auch ein Joystick. Da es jetzt nur noch diese Flugsimulatorteile zu kaufen gibt mit denen ich noch nie umgehen konnte, habe ich mich für ein preiswertes, ziemlich häßliches aber ganz gut in der Hand liegendes Gamepad entschlossen, was Saturn für 8,90 Euro feilbot. Es handelt sich um das Speed Link SL-6512 mit USB Anschluß. Das Gamepad hat keinen analogen Steuerknüppel sondern ein digitales Steuerkreuz und 10(!) Buttons. Es liegt ganz gut in der Hand und ein schnelltest mit Windows XP zeigte daß es auch funktioniert.

Unter Linux meldet es sich als DragonRise USB Gamepad im log - nie gehört.

Um überhaupt in den Genuß eines USB-Joysticks (bzw. -pads aber das ist aus Treibersicht das gleiche) zu kommen muß USB-Support, USB-HID, Input-core und Joystick-Support als Modul einkompiliert werden. Zu Debugzwecken kann auch noch das usb-device-filesystem verwendet werden, sonst funktioniert lspci nicht.

Ist dies alles geschehen, kann der mit modprobe joydev der Joystick-treiber nach anschließen des Gamepads erfolgreich geladen werden. Der Treiber wird leider nicht von hotplug geladen, da die Device-Liste der Joysticks und Gamepads noch sehr unvollständig ist (kernel 2.4.26). Theoretisch kann /etc/hotplug/usb.usermap erweitert werden, damit der Treiber von Hotplug geladen wird, das habe ich jedoch erstmal gelassen.

Tests mit jscalibrator (aus libjsw) und jstest (direkt vom Treiberentwickler herunterladen) zeigten, daß das Gamepad vom Kerneltreiber erkannt wird.

Das Gamepad mit atari800

Ein erster Test mit atari800 zeigte, daß der Emulator das Gamepad sofort als Joystick erkannte. Leider funktionierte nur das Steuerkreuz, jedoch kein Feuerknopf.

Da die Treiberinstallation ok ist, muß der Fehler also im atari800 bzw. in der SDL liegen.

update: 28.10.04
Ein Workaround wäre die Verwendung des Tools joy2key (emerge joy2key) welches Joystickbewegungen in Tastendrücke umwandelt. Da Atari800 mit Tastendrücken bestens bedient werden kann wäre dies ein brauchbarer Workaround der geprüft werden muß.

update 28.10.04 - 20:00 Uhr
joy2key ist saumäßig schlecht dokumentiert und läßt sich nur schwer verwenden, da es zwischen X, console und Terminal unterscheidet. Fällt also aus.

update 28.10.04 - 21:12 Uhr
Ich habe den neuen atari800 1.3.3 direkt heruntergeladenund kompiliert. Über emerge ist er noch nicht verfügbar. Der Emulator unterstützt das Gamepad auf einmal perfekt, wenn er mit Joystick-Unterstützung und -target=x11 kompiliert wird. Der Verdacht erhärtet sich, daß der Joystick-Bug im SDL-Teil des Emulators oder in der SDL selbst liegt. Möglicherweise enthält die neue Version auch mit SDL den bug nicht mehr - das gilt zu prüfen.

update 29.10.04 - 18:30 Uhr
Cavelord und ein kurzer Blick in den SDL-Code des Atari800 brachten Erleuchtung! In Cavelord war Dauerfeuer, d.h. der Emulator wertete den Button als ständig gedrückt. Der Code beweist: Es werden alle der SDL bekannten Buttons des Gamepads abgefragt. Der Emulator betrachtet den Atari-Trigger als gedrückt wenn einer der Buttons gedrückt ist. Das Problem ist wohl, daß die Gamepad-Hardware scheinbar für einige Feuerknöpfe mehr ausgelegt ist und dem System mehr meldet als in Wahrheit vorhanden sind. Einige der nicht vorhandenen sind dann scheinbar ständig gedrückt. Ich habe den Atari800 Code zum Test so geändert, daß nur der erste Konpf abgefragt wird und der Emulator funktioniert bestens!

Es muß aber einen Weg geben die korrekte Anzahl der Buttons zu ermitteln, jscalibrator kriegt es nämlich hin. Wo der Fehler genau liegt ist somit immer noch nicht ganz klar. Der Joystick-Treiber ist wieder im Rennen, die SDL, aber auch das Gamepad selbst.

joy2key konnte übrigens auch nicht die korrekten Parameter ermitteln meldete 9 Achsen und 20 Buttons. In Wirklichkeit sind es nur 2 Achsen und 10 Buttons.

Plan: Ein kleines Progrämmchen schreiben, das die Joystickparameter der SDL ausliest und anzeigt.

update 29.10.04 - 20:04 Uhr
Ich habe das kleine Programm sdljoy geschrieben, welche die Joystick-Parameter aus der SDL ausliest. Download hier

Ergebnis:
Anzahl Achsen : 9
Anzahl Buttons: 20

Das Erstaunt doch etwas. Liegt der Fehler doch im Joystick-Treiber?

update 18.04.05 - 23:08 Uhr
Der Joystick Competion Pro USB hat seine eigene Seite bekommen. Dort steht auch, wie man ein unbekanntes USB-Gerät in den Hotplug-Mechanismus einhängt.

Das Gamepad mit xmame

Solange SDL und xmame mit joystick-Support kompiliert ist (use-flag joystick) funktioniert es problemlos.

Daddeln mit dem Gamepad

Im Praxistest stellte sich leider bald Ernüchterung ein. Das Gamepad liegt zwar ganz gut in der Hand, das Steuerkreuz und die Buttons sind gut erreichbar, jedoch habe ich ein motorisches Problem mit dem Teil.

Das Steuerkreuz muß mit dem linken Daumen bedient werden. Ich habe festgestellt, daß dies bei mir gerade der langsamste ist. Ich bin mit dem Pad effektiv langsamer und unpräziser als mit der Tastatur.

Als absoluten Fehlkauf würde ich es trotzdem nicht bezeichnen, denn ich habe bereits eine weitere Idee: Umbau zum Anschluß eines guten alten Competition Pro. Das bedeutet im wesentlichen, daß das Gamepad an einer nicht störenden Stelle mit einer 9-poligen Sub-D Buchse verunziert wird, die intern mit dem Steuerkreuz und dem ersten Button verbunden wird. Somit wäre eine USB-Version des Competition Pro, bzw. jedem anderen alten Atari-kompatiblen Joysticks geschaffen happy smiley

Siehe auch

Links


Frische Änderungen | Menü editieren
zuletzt geändert am 09.03.2006 09:26 Uhr von Elsni
Edit Page | Page History