Ich möchte SDL Force Feedback für meinen Joystick verwenden und es auf dolphin-emu
verwenden .
Ich benötige die 1.3 SDL-Bibliotheken und nur 1.2 sind verfügbar. Ich habe versucht, sie zu bauen, aber ohne Erfolg.
Kann jemand helfen?
Akzeptierte Antwort:
Das Beste, was Sie tun können, ist, den neuesten stabilen Quellcode von SDL 1.2 zu patchen und mit SDL1.2 eine Art Force-Feedback-Effekt zu erhalten. Dies ist eine vorläufige Maßnahme, bis die nächste stabile Version von sdl herauskommt, könnte aber für Ihre Zwecke akzeptabel sein.
Es ist jedoch am besten, Ihre kompilierte Version in /opt
zu installieren und nicht in Pfadpositionen wie /usr
oder /usr/local
. Dabei können Sie immer noch die originale libsdl1.2debian
behalten und rufen Sie Ihre kompilierte Version nur mit LD_LIBRARY_PATH
auf (siehe spätere Erklärung).
Holen Sie sich zuerst die Abhängigkeiten mit
sudo apt-get build-dep libsdl1.2
sudo apt-get install build-essential checkinstall
Für build-dep
Um zu funktionieren, gehen Sie zu den Softwarequellen und aktivieren Sie den Quellcode, indem Sie das Kontrollkästchen aktivieren. Führen Sie dann sudo apt-get update
aus und alle build-dep
Befehle sollten funktionieren.
Die vollständige Liste der Abhängigkeiten mit weiteren Informationen zur Kompilierung finden Sie hier.
Laden Sie jetzt den SDL-Quellcode herunter und extrahieren Sie ihn, laden Sie dann den Patch von icculus.org herunter, extrahieren Sie den Patch und verschieben Sie ihn in den SDL-Quellcodeordner und führen Sie in diesem Ordner Folgendes aus:
patch -p1 < sdl_1.2-haptic.diff
Führen Sie als Nächstes
aus./configure --prefix=/opt/sdl-1.2 && make
Es ist nicht notwendig, --enable-haptic
hinzuzufügen (Haptik ist der Begriff für Force Feedback), da der Patch dies hätte ermöglichen sollen. Mehr zur Haptik gibt es hier und hier.
Um es in /opt
zu installieren (oder der mit configure angegebene Ort), führen Sie sudo checkinstall
aus aus demselben Ordner.
Um diese Version von sdl zu verwenden, müssen Sie Ihr Spiel in einem Wrapper wie diesem ausführen:
#!/bin/bash
export LD_LIBRARY_PATH=/opt/sdl-1.2/lib:$LD_LIBRARY_PATH
cd /game/folder
game
exit 0
Um zu überprüfen, ob die richtige SDL-Version geladen wird, führen Sie im Terminal
ausexport LD_LIBRARY_PATH=/opt/sdl-1.2/lib:$LD_LIBRARY_PATH
und führen Sie dann ldd
aus bei einem Spiel, von dem Sie wissen, dass es sdl verwendet:
ldd /usr/local/bin/rott
was Ihnen zeigt, dass es Ihr kompiliertes SDL verwendet:
libSDL-1.2.so.0 => /opt/sdl-1.2/lib/libSDL-1.2.so.0 (0xb7695000)
Die Force-Feedback-Effekte variieren stark und sind manchmal überhaupt nicht vorhanden, aber dies ist im Moment die einzige Möglichkeit, einige Effekte zu erzielen. Es wird berichtet, dass es mit dem Open-Source-Port von Freespace2
funktioniert , FreespaceOpen
, wie dieser Beitrag zeigt, in Bezug auf Linux-basierte Systeme (nicht Mac OS X, wie es suggeriert).