Voglio usare sdl force feedback per il mio joystick e usarlo su dolphin-emu
.
Ho bisogno delle librerie 1.3 sdl e solo 1.2 sono disponibili. Ho provato a costruirli, ma senza fortuna.
Qualcuno può aiutare?
Risposta accettata:
La cosa migliore da fare è correggere il codice sorgente sdl 1.2 stabile più recente e ottenere una sorta di effetto force feedback con sdl1.2. Questa è una misura provvisoria fino all'uscita della prossima versione stabile di sdl, ma potrebbe essere accettabile per i tuoi scopi.
Tuttavia, è meglio installare la tua versione compilata in /opt
e non in percorsi come /usr
o /usr/local
. In questo modo puoi ancora mantenere l'originale libsdl1.2debian
e chiama solo la tua versione compilata usando LD_LIBRARY_PATH
(vedi spiegazione successiva).
Innanzitutto, ottieni le dipendenze con
sudo apt-get build-dep libsdl1.2
sudo apt-get install build-essential checkinstall
Per build-dep
per funzionare, vai alle sorgenti software e abilita il codice sorgente selezionando la casella. Quindi esegui sudo apt-get update
e qualsiasi build-dep
i comandi dovrebbero funzionare.
L'elenco completo delle dipendenze è elencato qui con ulteriori informazioni sulla compilazione.
Ora, scarica il codice sorgente sdl ed estrailo, quindi scarica la patch da icculus.org, estrai la patch e spostala nella cartella del codice sorgente sdl, e da quella cartella esegui:
patch -p1 < sdl_1.2-haptic.diff
Quindi, esegui
./configure --prefix=/opt/sdl-1.2 && make
Non è necessario aggiungere --enable-haptic
(haptic è il termine usato per force feedback), poiché la patch dovrebbe averlo abilitato. Maggiori informazioni sull'aptico sono disponibili qui e qui.
Per installarlo in /opt
(o il luogo specificato con configure), esegui sudo checkinstall
dalla stessa cartella.
Per utilizzare questa versione di sdl, devi eseguire il gioco in un wrapper come questo:
#!/bin/bash
export LD_LIBRARY_PATH=/opt/sdl-1.2/lib:$LD_LIBRARY_PATH
cd /game/folder
game
exit 0
Per verificare che venga caricata la versione sdl corretta, esegui nel terminale
export LD_LIBRARY_PATH=/opt/sdl-1.2/lib:$LD_LIBRARY_PATH
e quindi esegui ldd
su un gioco che conosci usa sdl:
ldd /usr/local/bin/rott
che ti mostra che sta usando il tuo sdl compilato:
libSDL-1.2.so.0 => /opt/sdl-1.2/lib/libSDL-1.2.so.0 (0xb7695000)
Gli effetti del feedback di forza variano notevolmente e talvolta potrebbero non essere affatto presenti, ma questo è l'unico modo per ottenere alcuni effetti al momento. Si dice che funzioni con il port open source di Freespace2
, FreespaceOpen
, come mostra questo post relativo ai sistemi basati su Linux (non Mac OS X come suggerisce).