domingo, 3 de abril de 2016

[Linux] Como configurar um joystick USB no Mupen64

O Muphen64 é um emulador para Nintendo 64 leve desenvolvido para GNU/Linux, mas com versões para outros sistemas operacionais, como o Windows e MacOS
Para a alegria ficar ainda maior, há a disponibilidade de se baixar o front-end M64Py que apresenta uma interface muito mais amigável, próxima ao fiel companheiro fiel e incansável Project64.

A instalação do M64Py + Muphen64 é muito simples via apt-get:

$  sudo apt-get install m64py -y


Tela inicial do M64Py

O problema que tive que encarar no meu Ubuntu 14.04 foi que, via interface gráfica eu não conseguia fazer o M64Py reconhecer meu joystick USB parecidíssimo como esse:



E como tudo no Linux, pra funcionar bem, só sem for por linha de comando e arquivos de configuração; vamos nessa!


Editando o mupen64plus.cfg


Por padrão, o arquivo mupen64plus.cfg está localizado em 

$ /home/<seu usuário na home>/.config/mupen64plus/mupen64plus.cfg

Antes de fazer qualquer alteração, eu recomendo fazer um backup do arquivo original, por exemplo assim:

$ cd /home/<seu usuário na home>/.config/mupen64plus
$ cp mupen64plus.cfg mupen64plus.cfg.back

Dessa forma, pode alterar o mupen64plus.cfg sem medo de ser feliz.

Utilizando algum editor, como o vim, nano, emacs ou gedit, abrimos o arquivo e localizamos o trecho de código (deafaut) a partir de:

[Input-SDL-Control1]
(...)
# Digital button configuration mappings
DPad R = "key(100)"
DPad L = "key(97)"
DPad D = "key(115)"
DPad U = "key(119)"
Start = "key(13)"
Z Trig = "key(122)"
B Button = "key(306)"
A Button = "key(304)"
C Button R = "key(108)"
C Button L = "key(106)"
C Button D = "key(107)"
C Button U = "key(105)"
R Trig = "key(99)"
L Trig = "key(120)"
Mempak switch = "key(44)"
Rumblepak switch = "key(46)"
# Analog axis configuration mappings
X Axis = "key(276,275)"

Y Axis = "key(273,274)"

As configurações que precisam ser feitas consistem em ajustar manualmente os botões do joystick [Input-SDL-Control1] do emulador. Para o meu controle USB, usei o analógico direito (e as teclas auxiliares direcionais do teclados) com C-Buttons do controle do Nintendo 64, e o triângulo como Z-button.
Sem mais delongas, segue a configuração que utilizei:

[Input-SDL-Control1]
version = 2
mode = 0
device = 0
name = "Joy"
plugged = True
plugin = 2
mouse = False
MouseSensitivity = "2,00,2,00"
AnalogDeadzone = "4096,4096"
AnalogPeak = "32768,32768"
# Digital button configuration mappings
DPad R = "hat(0 Right)"
DPad L = "hat(0 Left)"
DPad D = "hat(0 Down)"
DPad U = "hat(0 Up)"
Start = "button(9)"
Z Trig = "button(0)"
B Button = "button(2)"
A Button = "button(1)"
C Button R = "axis(2+) key(275)"
C Button L = "axis(2-) key(276)"
C Button D = "axis(3+) key(274)"
C Button U = "axis(3-) key(273)"
R Trig = "button(5)"
L Trig = "button(4)"
Mempak switch = ""
Rumblepak switch = ""
# Analog axis configuration mappings
X Axis = "axis(0-,0+)"
Y Axis = "axis(1-,1+)"


Salve, reinicialize o emulador e seja feliz; assim como eu.




Um comentário:

  1. olá,pode me ajudar configurar um controle USB Logitech F710 ?
    Uso o Batocera Linux 5.14 numa Raspberry Pi 3 model B.
    Os games abrem normalmente mas não consigo alterar os comandos do controle USB. Agradeço desde já se puder me ajudar. Abrçs...

    ResponderExcluir