Linux Game Master 2

Ho gia' avuto modo di parlare di questo fantastico gingillo e di come farlo funzionare su un sistema Linux molto grossolanamente, ironia della sorte vuole che abbia dovuto fare pulizia sul computer e di conseguenza rimboccarmi le maniche.

Dopo un aggiornamento generico del sistema e del kernel ad una versione piu' recente, ho notato con grande stupore dopo qualche tempo che il pad non funzionava come mi aspettassi.

Non sono sceso troppo nei meandri della questione, ma giusto per evitare che anche a voi succeda la stessa cosa, vi do qualche dritta sul come cercare di risolvere eventuali problemi di configurazione di joystick e gampad sul vostro amato sistema Linux.

Ovviamente questa guida non copre ogni singolo modello presente sul mercato e non, ma di certo potra' indirizzarvi nella giusta via per rendere operativo l'apparecchio.

Cominciando dall'inizio, ogni qualvolta un gamepad (in questo caso parliamo di un modello usb) viene collegato al pc, il sistema provvede a realizzare se non lo ha gia' fatto un file simbolico nella cartella /dev.
I gamepad di solito sotto Linux hanno un link simbolico alla posizione /dev/input/js0, dove zero sta per il numero del pad, piu' pad si collegano piu' device virtuali verranno creati.
Questo virtual device per esistere, spesso e volentieri deve poter contare sul supporto di un driver specifico per la periferica, un modulo del kernel per intenderci.

Questi moduli sono presenti in ogni release del Kernel di Linux, vi basti scaricare i sorgenti dal sito apposito e compilare cio' che vi serve.
Posso immaginare che la procedura possa non essere delle piu' semplici ed immediate, ma in quanto utenti Linux credo siate abituati a sporcavi un po' le mani.
Se non siete esperti, rassicuratevi, se qualcosa con il nuovo kernel non dovesse funzionare, potreste sempre tornare ad utilizzare quello installato di default dalla vostra distribuzione per tornare alla normalita', l'installazione del nuovo kernel non sovrascrivera' quello vecchio a meno che non sia della stessa versione.

Se siete pronti, estraete con privilegi di root nella cartella /usr/src come segue tar xf linux-x.x.xx.x.tar.bz2 -C /usr/src i sorgenti del kernel, ovviamente sostituite le x con la versione da voi scelta.
Infine create un link simbolico alla nuova cartella estratta in questo modo ln -s /usr/src/linux-x.x.xx.x /usr/src/linux e assicuratevi di avere tutto il necessario per lo sviluppo, build utils e libreria ncurses.

Una cosa da fare prima di mettere mano al kernel sarebbe quella di controllare l'eventuale presenza di un file config nella cartella /boot del sistema ed eventualmente copiarli nella cartella /usr/src/linux con il nome .config, giusto per avere una configurazione funzionale del nostro kernel.

Una volta terminati questi semplici passaggi, lanciamo un make menuconfing dalla cartella /usr/src/linux per avviare il nostro menu configurazione del kernel.
Quello che interessa a noi si trova nel percorso, Device Drivers -> Input device support -> Generic input layer, qui si nota subito il modulo Joystick interface, responsabile della creazione del device virtuale /dev/input/js e la sottosezione Joysticks/Gamepads.
Nella sezione vi saranno presenti moduli per ogni marca e modello joystick/gamepad, forse anche per modelli da gameport per pc piu' datati, se non siete sicuri di cosa scegliere consultate l'apposito help per maggiori informazioni.
Trovate anche qualche TXT nella cartella /usr/src/linux/Documentation/input/ riguardo i joystick.

Nel caso di pad usb bisogna accertarsi che vi siano presenti anche i moduli approprati per il protocollo USB, trovate il tutto due salti indietro fino a Device Drivers, poco sotto ci sono le voci HID Devices e USB support.

Nel caso anche voi siate in possesso del pad della retrolink come quello in figura, bisogna avere l'accortezza di aggiungere anche un modulo extra presente nella sottosezione Special HID drivers, trovate un riferimento a tale modulo alla voce DragonRise Inc. game controller.
Questo modulo dovrebbe supportare un certo numero di pad della stessa famglia e simili.
Poco sotto per chi ne avesse necessita' c'e' anche un modulo per il pad della PS3.

Lanciate in sequenza un bel make, make modules e make install e sperate che tutto vada a buon fine, ricordate anche di aggiornare i menu del vostro bootloader se necessario per l'avvio del nuovo kernel.

Dando per scontato che tutto sia andato a buon fine, spendo due parole riguardo il supporto del gamepad retrolink con l'emulatore fceux 2.1.2.
In un precedente articolo ho gia' avuto modo di affrontare la questione compatibilita' e configurazione del pad con l'emulatore, probabilmente con l'aggiornamento dei moduli del kernel qualcosa e' cambiato, dalla precedente configurazione di fceux la croce direzionale e' diventata inutilizzabile.
Lanciando fceux --inputcfg gamepad1 [rom.name] ho rimappato il pad nell'apposito file, i valori effettivamente sono leggermente diversi:

SDL.Input.GamePad.0A = 1
SDL.Input.GamePad.0B = 2
SDL.Input.GamePad.0DeviceNum = 0
SDL.Input.GamePad.0Down = 32769
SDL.Input.GamePad.0Left = 49152
SDL.Input.GamePad.0Right = 32768
SDL.Input.GamePad.0Select = 8
SDL.Input.GamePad.0Start = 9
SDL.Input.GamePad.0TurboA = 113
SDL.Input.GamePad.0TurboB = 119
SDL.Input.GamePad.0Up = 49153

Con Tuxnes, usando la solita configurazione, nessun problema riscontrato, qui di seguito un esempio molto spicciolo se volete provare:

tuxnes --js1=/dev/input/js0 --joystick-map=1:B1,B2,B9,B8,A3,A4,A4,A3 [rom.name]

Io personalmente non ho controllato se vi erano disponibili questi moduli come singoli pezzi senza dover compilare l'intero kernel, se nel caso li troviate forse diventa piu' semplice e comodo per voi utilizzarli.
Data la delicatezza di queste operazioni, documentatevi bene prima di operare, siete gli unici responsabili di quello che fate.

Buon game a tutti!

Nessun commento :

Posta un commento

Related Posts Plugin for WordPress, Blogger...