Mandos USB con xmame en FreeBSD

Autor: Taik0
Fecha: 2 de Febrero del 2002


En este mini-howto explicaré la forma de compilar el sistema y el xmame para que funcione con un mando USB en FreeBSD ( la compilacion en mame es la misma para NetBSD).

Configurando el sistema

Principalmente necesitamos soporte USB en el kernel:

device          uhci            # UHCI PCI->USB interface
device          ohci            # OHCI PCI->USB interface
device          usb             # USB Bus (required)
device          ugen            # Generic
device          uhid            # "Human Interface Devices"

Esos son los devices necesarios para que nuestra FreeBSD detecte el mando al arrancar, principalmente uhid.
Una vez configurado el kernel pasamos a compilarlo:

root@jotaro# config MYKERNEL
root@jotaro# cd ../../compile/MYKERNEL
root@jotaro# make depend && make && make install

Añadiremos al rc.conf el siguiente flag:

usbd_enable="YES"

Con eso ya tendremos nuestro sistema listo para tener soporte USB.
Ahora miraremos si nuestro joypad es detectado por el sistema, lo mas comodo es lo siguiente:

root@jotaro# usbdevs
addr 1: UHCI root hub, VIA
addr 2: Microsoft SideWinder Plug & Play Game Pad, Microsoft

El device por defecto suele ser /dev/uhid0

Como usuarios normales no tenemos acceso al dispositivo del joypad (/dev/uhid0), por lo tanto cambiaremos sus permisos:

root@jotaro# chmod 666 /dev/uhid0

Configurando xmame

Una vez todo detectado pasaremos a la configuracion del xmame, podemos bajar la ultima version disponible de: x.mame.net

No aconsejo instalar el port ya que no te deja configurar nada y el soporte para USB viene desactivado para -CURRENT y -RELEASE.

Una vez tenemos el paquete pasamos a descomprimirlo:

root@jotaro# tar jxvf xmame-0.57.1.tar.bz2
root@jotaro# cd xmame-0.57.1

Y empezamos con la configuracion del Makefile que en nuestro caso es makefile.unix.

Las siguientes opciones hay que cambiarlas para el mejor funcionamiento del mismo.

ARCH = freebsd

Sin esto no tendremos soporte USB ya que solo es soportado por FreeBSD y NetBSD y por defecto viene Linux

JOY_USB = 1

NetBSD/FreeBSD USB joystick support (hace falta decir mas?).

DISPLAY_METHOD = SDL

Mejor utilizar la libreria SDL, si no la tienes o no te interesa usarla por la razón que sea lo mas recomendable es:

DISPLAY_METHOD = x11
Aviso, solo se puede tener una opcion de cada tipo activada!

Si tienes el DGA activado en las X:

X11_DGA = 1

Para activarlo basta con comentar estas lineas de /etc/X11/XF86Config :

#    SubSection  "extmod"
#      Option    "omit xfree86-dga"   # don't initialise the DGA extension
#    EndSubSection

Con esto ya hemos acabado de configurar el Makefile de nuestro mame, ahora solo falta compilarlo.

root@jotaro# gmake -f makefile.unix
root@jotaro# gmake install

Y ya estamos practicamente listos para jugar! Y ahora vayamos directamente al mame.

Podemos crear un xmamerc de la siguiente manera:

root@jotaro# xmame.x11 -sc > xmamerc

Aviso que la extension .x11 la pone por defecto si compilas con soporte para x11.

Configuraremos lo que queramos (aunque yo lo hago siempre a mano) y nos dispondremos a jugar!

Que?! que no tienes ninguna rom? puedes bajarte alguna de www.mame.dk (aconsejo que sea un King Of Fighters o un Metal Slug :D).

Ahora los flags necesarios para activar el mando al arrancar el mame.

root@jotaro# xmame.x11 -jt 5 -jdev /dev/uhid0 kof2000.zip

El -jt 5 indica que vamos a usar un mando del tipo USB y -jdev el dispositivo, ya que por defecto es /dev/joy.

Puedes ahorrarte el -jdev haciendo un link entre ellos:

root@jotaro# ln -s /dev/uhid0 /dev/joy

Website templates are pre-designed websites all you need to do is add your own personal content and you're ready to jump start your own website. Website templates by Vooweb

Con estos pasos tendria que funcionaros correctamente y sin problemas, si teneis alguna duda o alguna sugerencia podeis enviarme un mail a la direcion de email del principio de la página.


eldemonio.org El site BSD en Castellano Articles catalogue

Website templates are pre-designed websites all you need to do is add your own personal content and you're ready to jump start your own website. Website templates by Vooweb

eldemonio.org v 4_2