Quando as bibliotecas do sdl 1.3 estarão disponíveis (feedback de força de implementação) ou como eu as compilo?

1

Eu quero usar o feedback de força sdl para meu joystick e usá-lo em dolphin-emu .

Eu preciso das bibliotecas 1.3 sdl e apenas 1.2 estão disponíveis. Eu tentei construí-los, mas sem sorte.

Alguém pode ajudar?

    
por DiegoJp 02.01.2013 / 18:11

1 resposta

2

A melhor coisa a fazer é patch o mais recente sdl estável 1.2 código-fonte , e obtenha algum tipo de efeito de feedback de força com sdl1.2. Esta é uma medida provisória até que a próxima versão estável do sdl seja lançada, mas possa ser aceitável para seus propósitos.

No entanto, é melhor instalar sua versão compilada em /opt e não em locais de caminho, como /usr ou /usr/local . Dessa forma, você ainda pode manter o% originallibsdl1.2debian e só chamar sua versão compilada usando LD_LIBRARY_PATH (veja explicação posterior).

Primeiro, obtenha as dependências com

sudo apt-get build-dep libsdl1.2
sudo apt-get install build-essential checkinstall

Para build-dep funcionar, acesse as fontes de software e ative o código-fonte marcando a caixa. Em seguida, execute sudo apt-get update e todos os comandos build-dep devem funcionar.

A lista completa de dependências está listada aqui com mais informações sobre compilação.

Agora, faça o download do código-fonte sdl e extraia-o, depois baixe o patch de icculus.org , extraia o patch e mova-o para o código-fonte sdl pasta e, a partir dessa pasta, execute:

patch -p1 < sdl_1.2-haptic.diff

Em seguida, execute

./configure --prefix=/opt/sdl-1.2 && make

Não é necessário adicionar --enable-haptic (haptic é o termo usado para feedback de força), já que o patch deveria ter permitido isso. Mais sobre haptic está disponível aqui e aqui .

Para instalá-lo em /opt (ou no local especificado com configure), execute sudo checkinstall da mesma pasta.

Para usar esta versão do sdl, você precisa rodar o seu jogo em um wrapper assim:

#!/bin/bash

export LD_LIBRARY_PATH=/opt/sdl-1.2/lib:$LD_LIBRARY_PATH
cd /game/folder
game
exit 0

Para verificar se a versão correta do sdl está sendo carregada, execute no terminal

export LD_LIBRARY_PATH=/opt/sdl-1.2/lib:$LD_LIBRARY_PATH

e, em seguida, execute ldd em um jogo que você conhece usa sdl:

ldd /usr/local/bin/rott

que mostra que você está usando o seu sdl compilado:

libSDL-1.2.so.0 => /opt/sdl-1.2/lib/libSDL-1.2.so.0 (0xb7695000)

Os efeitos de feedback de força variam muito, e às vezes podem não estar presentes, mas essa é a única maneira de obter alguns efeitos no momento. É relatado que funciona com a porta de código-fonte aberto de Freespace2 , FreespaceOpen , como este post mostra relacionado a sistemas baseados em Linux (não o Mac OS X como sugere).

    
por user76204 02.01.2013 / 20:30