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).