Tutorial: Tu maquina arcade bajo GNU/Linux para todos

#2740

Bienvenidos al tutorial sobre como tener tu maka funcionando usando software libre. Este se compondrá en 3 capitulos bien diferenciados:

  • 1 - Instalación del sistema base.
  • 2 - Instalación de programas y librerías.
  • 3 - Apéndices
    • 3.1 - Apendice A: Configuración avanzada.
    • 3.2 - Apendice B: Compila tu propio mame.
    • 3.3 - Apendice C: Configura un logo de arranque personalizado.
    • 3.4 - Apendice D: Dándole el toque de gracia.

Puedes encontrar la versión más actualizada (e imprimible) accediendo a mi página personal

Las ventajas de usar software libre son muchas, y no las voy a relatar aquí, espero que el lector avispado entienda las razones de usar software libre en lugar de software privativo, y sino siempre puedes empezar a leer cositas sobre GNU/Linux e informarte un poco y así hacerte tu propia opinión del asunto Guiño

Para seguir este tutorial al menos necesitaras una máquina tal que:

  • CPU: 686 o mayor (es decir a partir de Pentium II y/o AMD K6)
  • GRAFICA: AVGA tanto 7000 o superior (en concreto yo testeare en una AVGA casera basada en una 9250)
  • RED: Cualquier cosa con la que nos podamos conectar a inet (Se necesita para al menos instalar el sistema)
  • LECTORA: CDROM o > (Se necesita para al menos instalar el sistema)
  • PANTALLA: TV o Monitor arcade ¡¡IMPRESCINDIBLE!!
  • HD: Exclusivo 20gb o mayor ¡¡SACAD CUALQUIER OTRO!! (no me resonsabilizo si formateáis vuestro zuindowz actual, por ello tened conectado solo el hd que vayáis a usar y sacad/desconectad cualquier otro)

Respecto al Disco Duro: el sistema sólo necesitará 100/200 megas, lo demás es para roms, vosotros mismos sabréis que lo que necesitáis.

Este tutorial intenta que aproveches al 100% tu máquina, y por lo tanto el tutorial no va a usar entorno gráfico (X11) en NINGÚN momento, por ello vendría bien que no te asustaran los comandos y que tuvierais un manejo básico en MSDOS. Esto no quiere decir que no haya una forma más amigable de hacer todo esto, claro que la hay, pero: requiere más fotos, el 'picha aquí'... que muchas veces es menos preciso que dar comandos y el por que de cada uno Sonrisa

Consejos antes de entrar en faena:

  • Si ponéis vuestro router en modo DHCP, la configuración en red es nula, sólo tendréis que darle a OK, y poco más Sonrisa Sino sería necesario, mínimamente saber lo que es una IP y/o cómo configurar una tarjeta de red (ip, dns, puerta de salida) para que tenga conexión a internet.
  • Preparad café, os hara falta xDDD

Si después de leer todo esto, no has corrido despavorido...
¡¡enhorabuena!! estoy seguro que vas a conocer algo donde el único límite, lo pondras tú Sonrisa
(si estas un poco asustadillo, tranquilo, no va a ser nada complejo y además yo os llevare de la manita)

Antes de comenzar necesitaremos una imagen del CD sistema, para este tutorial vamos a usar ubuntu:
http://www.ubuntu.com

Para este tutorial vamos a usar la versión Breezy de ubuntu, que podéis conseguir en este mirror:
http://old-releases.ubuntu.com/releases/5.10/ (recordad que es el Install CD para i386).
No se dará soporte a otras versiones de Ubuntu/Linux. Es imposible controlar y ayudar en todas y cada una de las distribuciones existentes, así que es muy importante respetar este esencial punto.

Grabad el CD con vuestro programa favorito a una velocidad maxima de 10x y marcad que revise los datos. Mientras se graba, para que os suenen luego, podemos aprovechar para hecharle un ojo a...

Nuestra pequeña lista comandos básicos Linuxeros

    pwd : muestra el directorio de trabajo actual.
    ls : lista todos los ficheros del directorio actual.
    clear : limpia la pantalla (viene bien si usáis TV y no véis las lineas inferiores)
    cd [directorio] : entra en el directorio especificado.
    cd .. : sale del directorio actual.
    ps -aux : muestra los procesos lanzados con su número de identificación (pid)
    kill -9 [pid] : mata un proceso según el número de pid indicado.
    cp [fuente] [destino] : copia un fichero fuente sobre el nombre de destino (o en el directorio de destino si existe)
    cp -r [dir_fuente] [dir_destino] : copia un directorio fuente sobre el nombre destino (o en el directorio de destino si existe)
    tar xvfz : descompresión de un archivo tar en formato gz en el directorio actual.
    tar xvfj : descompresión de un archivo tar en formato bz2 en el directorio actual.
    rm [fichero] : eliminar el fichero en el directorio actual.
    rm -rf [directorio]: elimina el directorio y todo su contenido.
    wget [direccion] : permite bajar un fichero externo usando FTP o HTTP y te lo guarda en el directorio actual.
    man [comando]: El manual de linux, totalmente en español os proporciona ayuda completa sobre cualquier comando.
   ALT M F1, ALT M F2 ... ALT M F6: Cambia la consola actual de trabajo (multitarea).

Un tutorial por si tienes más curiosidad:
http://www.debian.org/doc/manuals/reference/ch-tutorial.es.html

Insertar el CD y reiniciad el ordenador, una vez arranque aseguraos de que tenéis marcada la opción de arrancar desde CDROM en la BIOS Carcajada

1 - Instalacion del sistema base.

Empieza la fiesta chic@s!!

Comenzamos viendo al inicio una pantalla que nos muestra el logo de la distribución, y debajo podéis leer un texto en inglés que, para el que no lo entienda, cuenta básicamente que en F1 tenemos la ayuda y que para instalar un servidor (es decir sin entorno gráfico) escribamos 'server'.

Nuestra opción va a ser esta última, pero antes de que escribáis nada, debemos decirle al instalador que estamos usando una TV/Monitor arcade, para ello añadiremos 'vga=771' para que nos permita instalar comodamente desde nuestra pantalla 'poco común' xD

Finalmente el comando quedaría:

server vga=771

(el simbolo igual lo tenéis en la tecla [¿])

Pulsamos ENTER y comenzamos el proceso de instalación, que veréis que no tiene mucho misterio Sonrisa

Atención si tienes problemas con el modo de 771 que es de 800x600 podeis probar a 640x480, con el modo 769. Aunque yo he probado en mi Hantarex 9110 y no he tenido problemas, aconsejo de todas formas mover los potenciometros de Sync Horizontal y Vertical, por que tiene que haber seguro un punto en el que se os vea, aunque quizás tengáis que hilar fino y combinar posiciones...

En la instalación nos moveremos con: Arriba , Abajo , Izquierda , Derecha , TAB, ESPACIO, ENTER, Inicio, AvPag...

Idioma

Este sera el primer punto por el que nos preguntará la instalación, abajo tenemos 'Spanish - Español' que selecionaremos con ENTER. De nuevo nos pide confirmación con 'España', volvemos a pulsar ENTER.

Una vez nos ha detectado el teclado, nos vuelve a preguntar por última vez, como antes pulsamos ENTER.

Detección del Hardware y analisis del CD

Este paso es automático, así que no tenéis que hacer nada más que esperar Guiño

Configuración de la RED

Como explique antes si tenéis la red configurada como DHCP, nos pedirá confirmación si los datos que ha encontrado son correctos, si lo son pulsad en 'ACEPTAR', sino seleccionad la opción de: 'Configurar la red manualmente'.

Dirección IP: Poned aquí la ip que queráis que tenga la maka, recordad que tiene que estar dentro de vuestro rango, por ejemplo supongamos que uso el rango: 192.168.0.0, pues le pondremos una ip que sepamos que no está ya ocupada por otra máquina... Pues, simplemente ponemos este número; yo para el ejemplo voy a poner 192.168.0.200. (Como ves solo se cambia el numero final - 255 max.)

Mascara de Red: Tal y como esta por defecto esta bien.

Pasarela: Es la ip de vuestro router o del ordenador con la salida a internet. Yo por ejemplo voy a poner: 192.168.0.222.

Direcciones de Servidores de nombre: Normalmente los routers también dan DNS, yo pondré la misma, pero vosotros si preferís usar otras, todo vuestro Guiño En esta ocasión repito mi: 192.168.0.222.

Nombre de la máquina: Poned el nombre que más os guste, y os recomendaría ademas nada con 'ñ' acentos, etc... con vuestro permiso yo usaré 'gauntlet', jejeje.

Particionado de Discos

Bien aquí empieza la parte seria del primer capítulo, preparar nuestro disco duro para el trabajo diario al que le someteremos.

Vamos a ver, como Método de particionado selecionad la opción: Borrar el disco completo.
Niños, no hagáis esto sin la supervisión de un adulto xD

El proceso sera automático y al final nos pedirá confirmación si todo esta correcto. Ahora tenéis 2 opciones:

  1. Podéis seguir adelante, y por lo tanto tendréis un muy buen sistema de ficheros (ext3).
  2. Podéis decirle que [NO] y configuraremos ReiserFS que es un sistema, en mi opinión, perfecto para nuestros propósitos; ya que maneja a la perfección directorios con cientos, miles (¿millones? xD) de ficheros, directorios y subdirectorios.

Pues la decisión es vuestra, sino queréis complicaciones marcad la casilla SI y pulsad ENTER, si os va la marcha, dejadla en NO pulsad Enter....

Paso Opcional: Configurando ReiserFS

Tenéis ahora un nuevo menú, poneros encima de la partición que pone 'PRIMARIA [...] ext3', pulsad ENTER y aparecerá un nuevo menú en el que deberíamos de estar marcando la opción: 'Utilizar como: sistema ext3...', pulsamos ENTER de nuevo y obtenemos un menú con todos los sistemas de ficheros disponibles. En la tercera opción tenemos 'ReiserFS' simplemente seleccionadla pulsando ENTER.

Ahora pulsamos ENTER sobre la opción: 'Se ha terminado de definir la partición' y de nuevo en el menú inicial pulsamos ENTER sobre la opción: 'Finalizar el particionado y...'. De nuevo una última pregunta nos asalta y la confirmamos seleccionando la opción SI Sonrisa

Instalación de los ficheros del sistema

Este paso es automático, es hora del café, seguro que lo tienes listo Carcajada
¿como lo has visto? ¿complicado? Espero que no...

Este proceso no suele durar más de 5 o 10 minutos, el tiempo justo para relajarnos mientras llega la última tanda de preguntas XD

Zona horaria

Más simple imposible, seleccionad vuestra zona horaria, lo normal será 'Madrid', pero si tu nick es Macarro pues 'canarias' Lengua

Usuarios y contraseñas

Ahora crearemos un usuario que nos valdrá para instalar programas y para uso general, en principio sólo vamos a tener ese, pero más adelante podremos crear otros si lo necesitamos, es más; cada usuario podría tener sus propias configuraciones y/o puntaciones y ello no estropearía la configuración de los demás usuarios/jugadores.

Vamos a crear este usuario inicial, para empezar primero nos pregunta por el...

Nombre Completo del usuario
Podría ser algo como por ejemplo: 'Pepe López García', pero como lo nuestro es para la maca, yo simplemente pondré 'Mame'; vosotros poned lo que creáis mejor, si os equivocáis o lo pensáis mejor, simple podréis darle a RETROCESO y empezar este paso de nuevo Sonrisa

Usuario
Aquí debéis tener cuidado de no usar mayúsculas, no es lo mismo poner como usuario: 'Pepe' que 'pepe'. Yo usare 'mame'.

Contraseña
Pues alguna que recordéis y os la preguntara 2 veces Carcajada

Configuración de los repositorios y arranque

De nuevo estos pasos son automáticos, os sacará el CD y reiniciaremos el sistema.

Primer inicio del sistema e instalación de paquetes

Este paso es automático, esperaremos un rato a que termine y poco más...

Sistema Instalado!!!

Tampoco fue para tanto, ¿no? Guiño

Último paso: Preparar administrador y reinicio/apagado del sistema

Antes de que pasemos al siguiente tema necesitamos activar el administrador, que aunque podríamos usar 'sudo' (super-user do) para administrarlo, no quiero liaros demasiado... ya tenéis suficiente con lo vuestro xD

Bien entrad con vuestro usuario que hayáis creado, por ejemplo yo cree 'mame'. y aparecerá algo como:

mame@maka:~$ _

Este es el prompt del sistema y como en MSDOS, espera a que le demos ordenes!! pongámonos a ello Carcajada
Para activar la cuenta de root (administrador) haremos:

$ sudo passwd root

Cuando pulséis las teclas no se producirá efecto en la pantalla.
Primero nos preguntará nuestra contraseña del usuario que creamos al comienzo de la instalación y luego nos pedirá (por duplicado) la del administrador.

Una vez activada saldremos del la sesión del usuario actual (en mi caso mame) pulsando CTRL M D o escribiendo logout. Para entrar como administrador usaremos como usuario: root y ya contraseña que escribisteis Sonrisa

01.png

Bueno aquí tenéis el que va a ser nuestro entorno de trabajo, vale la imagen es de Debian, pero es que son primas hermanas Carcajada

Finalmente los comandos para apagar y reiniciar el equipo, comoroot (administrador) son:

APAGAR

# halt

REINICIAR

# reboot

(Con CTRL M ALT M SUPR también reiniciáis la cpu, si alguna vez lo necesitais Guiño)

2 - Instalacion de programas y librerias.

Continuaremos ahora instalando los programas básicos para nuestra maka, que serán AdvanceMAME y AdvanceMENU, pero antes de poder instalarlos necesitaremos optimizar el nucleo del sistema, para que nos aproveche nuestra arquitectura 686 y preparar las librerías que permitirán a el emulador forzar los drivers para nuestro monitor arcade Carcajada

Para instalar programas necesitaremos entrar como administrador del sistema, así que hacedlo como os explique anteriormente.
Una vez dicho... Continuamos!

Optimizando el Sistema 686

Para tener todo el núcleo del sistema usando nuestra potente CPU, vamos a usar la excelente herramienta apt-get... Seguramente os suene a chino esta utilidad así que como excepción, vale la pena abrir un paréntesis para explicar básicamente su uso:

Utilidades que todo buen linuxero debe manejar: apt-get

Esta es una potente utilidad que se encarga de bajar y configurar cada programa que instalemos. Cualquier programa de linux disponible para esa distribución estará a vuestro alcance usando apt-get.

Su uso es muy simple:

apt-get COMANDO PROGRAMA

COMANDO: puede ser muchas cosas pero nosotros solo usaremos: install y update.

PROGRAMA: el programa que deseas instalar. Conviene saber el nombre exacto Guiño Sino lo sabes siempre puedes mirar en: http://packages.ubuntu.com

Por ejemplo:

# apt-get install zsnes

¿Que haría este comando? Bajaría, instalaría y configuraría zsnes en nuestro sistema, pero no sólo eso; sino que si el programa necesita alguna librería gráfica especial (como SDL) también la bajaría (normalmente siempre nos pedirá confirmación si estás de acuerdo en instalarlas Sonrisa).

Además, es bueno que antes de instalar ningún programa usemos:

apt-get update

Que actualiza la lista de paquetes disponibles.

La potencia de linux y de sus comandos nos permite por ejemplo instalar varios programas de una vez, por ejemplo:

# apt-get install zsnes dgen

Que instalaría zsnes, y dgen además de todas las librerías que cada uno necesite.

Para poder instalar svgalib necesitamos el fuente del nucleo de nuestro sistema (pero solo las cabeceras) así que también las instalaremos Sonrisa

Primero pondremos al día la lista de ficheros:

# apt-get update

Y por último instalaremos el nuevo nucleo disponible:

# apt-get install linux-686 linux-headers-686

Como necesita también instalar otros paquetes, nos pedirá confirmación le decimos que 'si' y empezara a bajar todo lo necesario, nosotros esperaremos otro ratín Guiño

Una vez este bajado necesitaremos reiniciar el sistema para que a partir de ahora use nuestro nuevo núcleo 686 Sonrisa

Lo haremos con un simple:

# reboot

Compilando mi 'muy especialmente modificado' SVGAlib

Futura mejora del articulo

Quizás se añada un camino opcional que permita hacer una instalación simple, con un Kernel base y un SVGAlib también básico. Luego ya si alguno quisiera mejorarlo que siguiera estos pasos; pero lo dejaremos para otra ocasión...

Para que advanceMAME vaya fino, cual mariposilla del bosque, necesitamos instalar las librerias svgalib que le permitirán un acceso directo a nuestra tarjeta AVGA y así forzar los modos que nuestro monitor arcade requiere. Las librerías SVGAlib de windows en realidad son un port del "equipo advance" para windows y personalmente a mi me dieron muchos problemas, veréis que en linux van de perlas Carcajada

Empezaremos bajándonos el fichero comprimido con la librería modificada:

# wget http://david.dantoine.org/ficheros/svgalib-1.9.20-4_modsky-src.tar.gz

Descomprimimos los ficheros:

# tar xvfz svgalib*.gz

Aclaración: tar es un compresor que permite múltiples formatos, por ahora sabed que existe xD

Antes de instalar las librerías necesitamos tener las utilidades básicas de programación, para ello haremos:

# apt-get install build-essential gcc-3.4

Una vez instaladas pasamos a compilarlas e instalarlas:

# cd svgalib*

Entramos en el directorio

# make install

Compila e instala en nuestro sistema SVGAlib

Finalmente nos queda cargar el driver que SVGAlib ha compilado especialmente para nuestra arquitectura (686) y núcleo (2.6.12 cuando se creó este artículo). Recordad que si actualizáis de nuevo vuestro núcleo (por ejemplo por uno más nuevo) deberéis de repetir estos pasos añadiendo 'make clean' al inicio del proceso.

Para cargar el driver y la configuración por defecto podemos reiniciar el pc o bien iniciar a mano el nuevo servicio. Iniciarlo es tan simple como poner esta linea

# /etc/init.d/mame.sh start

Aclaraciones sobre el servicio mame.sh

Este es un pequeño script que he creado para este tutorial. Se os instala automáticamente al hacer el 'make install' y lo podéis eliminar del arraque automáticamente haciendo 'make clean' (que desinstalaría también todas las libs de SVGAlib).

Lo he creado por que el driver al estar aun en desarrollo, no tiene una forma simple de instalación, y no os quería complicar mucho la vida, así que este script básicamente inicia el driver y crea unos enlaces que necesita svgalib, es más, también le dará un repasito los drivers de entrada (input) para que al inicio todo esté preparado para jugar!

Usuarios avanzados:
[nota`]He creado también una configuración por defecto para SVGAlib pensada para monitores arcade y TVs. Si queréis hecharle un ojo o modificar algo la tenéis en /etc/vga/libvga.config[/nota]

Instalando (por fin) AdvanceMAME

Supongo que ya estaréis hartos de tanto preámbulo, os veo deseosos de ver como 'tira' advmame en linux, bien pues vamos a ello! XD

Empezamos instalando las librerías que necesita advancemame:

# apt-get install libsdl1.2debian-alsa
# apt-get install libfreetype6

Bajamos la versión precompilada que he preparado para nuestro tutorial:

# wget http://david.dantoine.org/ficheros/advancemame-686_0.104.0-1_i386.deb

Y la instalamos localmente usando dpkg:

# dpkg -i advancemame-686_0.104.0-1_i386.deb

Ahora vamos a configurar rápidamente advancemame, sólo para comprobar que todo está correcto. Para una configuración e instalación detalladas, tenéis los tutoriales sobre advanceMAME de DOS y Windows de Lord Hiryu, exceptuando los pasos de la instalación previa, claro.

Antes de pasar al tema vamos a bajar una rom de mame, freeware por supuesto, que he subido a mi site:

# wget http://david.dantoine.org/ficheros/robby.zip -P /usr/local/share/advance/rom

Aclaracion: la opción -P indica el directorio donde guardara el fichero, que es el directorio donde advancemame buscará nuestras roms.

Ahora lo que debemos de hacer es salir de la cuenta de administrador y entrar como usuario normal, esto es muy importante y debéis acostumbraros a usar las cuentas de usuario para el uso normal y la de root sólo para tareas de mantenimiento y poco más...

Ejecutamos por primera vez advanceMAME para que genere el fichero de configuración...

$ advmame

Ahora vamos a crear una configuración básica con advcfg diciéndole que use como profundidad por defecto 16bits (esto es muy recomendable para nuestra ATI/AVGA).

advcfg -bit 16

Seleccionamos las opciones de monitor arcade o tv (según el caso) y finalmente centramos y guardamos (para mas detalle mirad los tutoriales de advmame.

Al terminar el programa advcfg, no deja escribir, esto parece un problema del advcfg cuando usa el driver svgalib, pero se soluciona fácilmente saliendo de la sesión con CTRL M D y volviendo a loguear.

Finalmente probamos nuestro mame recién instalado con la rom freeware, que no es ninguna maravilla pero al menos nos vale de testeo gráfico y sonoro Guiño

# advmame robby

Consejo para usuarios que hayan hecho el Apéndice A (y sino a que esperas!)

Recomiendo editar el 'advance.rc' con el 'Midnight Commander' el fichero lo podéis encontrar dentro del directorio '.advance' y hacerle al menos los siguientes cambios:

    [...]
    device_color_bgr15 no
    device_color_bgr16 yes
    device_color_bgr24 no
    device_color_bgr32 no
    device_color_bgr8 no
    device_color_palette8 no
    device_color_yuy2 no
    [...]
    device_video_interlace no
    [...]
    misc_quiet yes
    misc_safequit no

Finalmente para afinar tu advmame tendrías que empezar a currarte configuraciones con el advv para que algunos juegos no te hicieran barridos extraños y así conseguir la perfecta emulación que deseamos. Recomiendo leer el 'modeline howto' que traduje y tenéis disponible (mientras se repasa) en los foros de marcianitos.

Instalando AdvanceMENU

Bueno estamos ya en el paso final para tener nuestra maquina operativa, al menos básicamente Guiño Recordad que de nuevo tenemos que trabajar con el admin (root)

Me gustaría advertir que advanceMENU tiene algunos problemas bajo linux si este no esta correctamente configurado, pero una vez hecho, irá como la seda Carcajada

Bajaremos la versión precompilada que he preparado para el tutorial.

Usuarios Avanzados:

En principio no es necesario que compiléis una versión para vuestra CPU, más que nada por que optimizar el menú, no nos va a servir de mucho, es mejor tener una versión estable, operativa y poco más.

Empezamos bajando el paquete del menú:

# wget http://david.dantoine.org/ficheros/advancemenu-686_2.4.12-2_i386.deb

Y ahora lo instalamos simplemente haciendo:

# dpkg -i advancemenu-686_2.4.12-2_i386.deb

Listo, ya tenemos el advmenu disponible para nuestro usuario 'mame' (en nuestro ejemplo) asi que logueamos con él y arrancamos el menú para que genere sus ficheros de configuración:

$ advmenu

Bien, ahora antes de arrancar el menú deberíamos de editar un par de líneas que por defecto están mal configuradas y que colgarían el programa. Es recomendable hacer el apéndice A para poder tener un editor decente, sino lo queréis hacer, usaremos nano, que tampoco es muy complicado de usar...

$ nano .advance/advmenu.rc

Y ahora con los cursores os movéis por el documento de texto y cambiad las opciones que os pongo para que aparezcan tal que así:

[...]
device_color_bgr15 no
device_color_bgr16 yes
device_color_bgr24 no
device_color_bgr32 no
device_color_bgr8 no
device_color_palette8 no
device_color_yuy2 no
[...]
device_joystick raw
[...]
device_sound none (si quereis sonido poned "oss", pero NUNCA AUTO)
[...]
device_video_interlace no
[...]

Y ahora con CTRL M O guardamos (nos confirma el nombre, simplemente ENTER) y con CTRL M X Salimos.

Ahora ya podemos sin problema empezar a usar advcfg o advv para poner un modo correcto, de todas formas os dejo una mini seccion con una configuración correcta para nuestra AVGA, por sino queréis pelearos con advcfg y demás xD

Configuración TV/Arcade monitor by D_Skywalk

Simplemente volvéis a editar el fichero anterior y añadís estas líneas:

device_video_clock 5-100 / 15.62 / 50-60
device_video_format 15620 0.727273 0.0454545 0.0909091 0.136364 0.915709 0.0114943 0.0114943 0.0613027
device_video_modeline standard_640x276 13.4563 640 664 744 856 276 278 282 303 -hsync -vsync

Y finalmente buscamos la linea que dice 'display_size' y cambiamos su valor por '640' Sonrisa

Listo, ya sólo nos queda arrancar el menu!

$ advmenu

Iniciando AdvanceMENU al arranque

Para iniciar el frontend al inicio del sistema vamos a necesitar dos nuevas utilidades, aunque espero que cuando tenga más tiempo pueda hacer algun programita simple que haga aún más fácil este último paso. O bueno, si alguien se anima que avise Guiño

Empezamos con agetty que nos permitirá substituir a nuestro viejo login por el programejo que le indiquemos Carcajada

Asi que como root bajamos agetty:

# wget http://david.dantoine.org/ficheros/agetty_2.11z-2_i386.deb

Instalamos agetty con el ya conocido:

# dpkg -i agetty*.deb

Ahora os presentaré a skymame mi pequeño script de inicio del advmenu Guiño La verdad es que es muy simple y creo que no le vendría mal algunas features, pero bueno nos vale para lo imprescindible...
Arranca advmenu y nos permite apagar con pulsar ENTER al cerrar advmenu Sonrisa

# wget http://david.dantoine.org/ficheros/skymame -P /sbin

Y le damos los permisos correctos para pueda ser ejecutado:

# chmod +x /sbin/skymame

Por último editamos el inittab (/etc/inittab) para que al inicio en lugar de ejecutar el programita que pregunta el login, carge nuestro script...

Empezamos comentando la linea que substituiremos:

#1:2345:respawn:/sbin/getty 38400 tty1
[pre]
(Podeis comentar tambien los terminales 4 5 y 6, sin problemas)

Y ahora añadimos después de la primera línea comentada:
[pre]
1:2345:respawn:/sbin/agetty -n -l /sbin/skymame 38400 tty1 linux

A mi me ha quedado algo así:

#1:2345:respawn:/sbin/getty 38400 tty1
1:2345:respawn:/sbin/agetty -n -l /sbin/skymame 38400 tty1 linux
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
#4:23:respawn:/sbin/getty 38400 tty4
#5:23:respawn:/sbin/getty 38400 tty5
#6:23:respawn:/sbin/getty 38400 tty6

Finalmente nos queda configurar un parametro que tiene mi pequeño saltamontes y es el usuario que deseáis que arranque advmenu y advmame, evidentemente ese usuario es en el que debéis tener configurado ya todos los emus Lengua

# nano /sbin/skymame

El usuario por defecto es 'mame', con solo cambiarlo ya lo teneis!

Listo, ahora al iniciar la maquina automáticamente aparecerá advmenu y una vez cerrado aparecerá un menú de mantenimiento que os permite, por ahora, reiniciar el menú o apagar el sistema... pero es muy facilmente editable ya lo veréis!
No olvidéis enviarme las mejoras que le hagáis!!

Despedida y... ¿Cierre?

Y llega el momento de la despedida... o nO?

La verdad para que engañaros aun nos faltan cosas que se irán ampliando en futuros tutoriales linuxeros y que ampliarán vuestros conocimientos para tener la perfecta maka que deseéis... Este tutorial sólo ha pretendido poner unos buenos cimientos donde construir futuros tutoriales:

  • soporte para LPT en Linux con OpenPPJOY
  • más emuladores
  • Entornos gráficos para cpus potentes
  • etc...

Espero que todo este tutorial os haya resultado útil ya que: Muchos padawans han muerto para... eeh, bueno no XD pero alguna neurona si que ha caído Lengua

Recordad enviarme vuestras impresiones, mejoras o sugerencias a mi correo:
dantoine (en) gmail (punto) com

3 Apéndices

En las siguientes secciones vamos a intentar afinar muchas cosas que no son totalmente imprescibles para tu maka, pero que no os vendran mal si quereis hacer un uso de: 'no solo juego' e incluso lo pasareis como enanos si os gusta el 'cacharreo informatico' Guiño

3.1Apendice A: Configuracion avanzada

Configurar idioma correctamente

Ubuntu nos configura el sistema en español, pero ciertas utilidades no soportan aún perfectamente la configuración por defecto que ubuntu nos propone en principio, asi que la vamos a cambiar:

# dpkg-reconfigure locales

Aclaracion: este programa permite volver a configurar programas ya instalados

Primero nos aparecerá una gran lista de idiomas, en principio sólo deberiais de dejar marcadas estas dos:

es_ES.ISO-8859-1
es_ES.ISO-8859-15@euro

En la siguiente pantalla nos preguntará cual queremos usar, yo os recomiendo la del 'euro' Sonrisa

es_ES.ISO-8859-15@euro

Y listo ya tenemos nuestro idioma en un modo un poco más compatible (aunque menos internacional). Para que los cambios tengan efecto reiniciad el sistema.
Instalando de utilidades imprescindibles (y actualizado de repositorios)

Si os apetece trastear un rato el linux y os sentís perdidos, un poco perdidos, vamos a instalar una utilidad que os ayudará en este nuevo mundillo linuxero: Midnight Commander. Esta utilidad nos permitará editar ficheros, copiar y demás operaciones muy fácilmente Guiño

Para instalarla vamos a hacer 3 simples pasos:

En este primer paso vamos a añadir algunos nuevos lugares donde nuestro linux podrá encontrar nuevas aplicaciones, para nuestro gozo y disfrute Carcajada

Vamos a empezar bajandonos mi lista recomendada de repositorios:

# wget http://david.dantoine.org/ficheros/repositorios.txt

Aclaración: wget se encargará de bajar nuestros ficheros y guardarlos en el directorio que nos encontremos. Como véis su uso es muy simple.

Una vez bajado vamos substituir la información antigua, para que apt-get conozca los nuevos repositorios Sonrisa

# cat repositorios.txt > /etc/apt/sources.list

Si os fijais con que pongais 'rep' y pulseis tabulador el nombre del fichero se completará solo.

cat es un hermano mayor del type de msdos, por si alguno lo conoce.[/opta]

De nuevo actualizamos apt-get con:

# apt-get update

[nota]Si algun repositorio os diera error, volved a ejecutarlo otra vez, a veces los servidores se saturan y pasan de nuestra petición xD

Y por último instalamos Midnight Commander:

# apt-get install mc

Para ejecutar el programa sólo debéis teclear:

# mc

Seguro que a alguno le recuerda a cierta utilidad de norton...

02.jpg

Accediendo remotamente al sistema

Para acceder remotamente al sistema vamos a usar un protocolo seguro SSH. Nos permitirá entrar y administrar nuestro linux remotamente, y esto es muy útil sobretodo en nuestra máquina que en principio no están pensadas (ni acondicionadas) para un mantenimiento 'in situ' Sonrisa

Si usas Linux o MAC seguramente ya tendrás instalado el software necesario en tu PC, pero si usas Windowz puedes bajarte Putty o cualquier cliente ssh que encuentres por google. Simplemente poneis la IP del pc a conectar y marcais SSH Sonrisa

Pero claro antes de todo esto, deberemos de instalarlo, vamos a ello!

# apt-get install ssh

Listo!

3.2 - Apendice B: Compila tu propio mame.

Antes de empezar se recomienda haber completado el Apendice A.

Con la intención de que este tutorial valga para un futuro, no muy lejano la verdad, viendo la rapidez de versiones que publican el MAME-TEAM; voy a explicar como facilmente compilaros vuestras versiones de MAME, adaptadas a vuestras necesidades Sonrisa

La verdad que uno oye la palabra compilar y ya se cree que esta puede ser una tarea compleja, y en parte llevaría razón quien lo pensara, pero eso sería si quisieramos hacer cambios en el código o añadir drivers... pero veréis como tener al día vuestro MAME optimizado para vuestra CPU es poco menos que un paseo Guiño

Empezaremos bajandonos la última version, cuando se hizo este tutorial teniamos disponible la release 0.104 de advancemame:

# wget http://ovh.dl.sourceforge.net/sourceforge/advancemame/advancemame-0.104.0.tar.gz

Cambiad el '104' por la versión que desees usar de advanceMAME.

Ahora dejaremos a apt-get la tarea de instalarnos las librerías de desarrollo necesarias para llevar a buen puerto nuestra tarea Carcajada

# apt-get install nasm libsdl1.2-dev

Se instalarán unos 41 paquetes, pero no os asustéis por el espacio que os puedan ocupar, ya que no llega a más 10megas, heheh.

# apt-get install libfreetype6-dev

El siguiente paso va a ser descomprimir advancemame y entrar en su directorio:

# tar xvfz advancemame*.gz
# cd advancemame*

Ahora con un simple comando vamos a dejar que un script configure nuestro mame básicamente:

./configure

No se si se bien con esta letra, pero los dos primeros caracteres son: 'punto' y 'barra'.

Una vez configurado el siguiente paso es opcional:

Para aquellos que quiera afinar su configuración de CPU pueden editar con 'mc' el fichero'Makefile' donde unas líneas más abajo se puede leer:

CONF_CFLAGS_OPT= -march=....

Aclaracion: Las CFLAGS es la forma que tenemos para activar las optimizaciones que como usuarios deseamos que tengan nuestros binarios.

Y la pregunta que os formularéis ahora ¿cómo sabemos cual es la mejor opción para nuestra CPU?
Pues dadle las gracias a los chicos de Gentoo por facilitarnos la vida (y no tener que marearnos por google) con su fantástico wiki, donde tienen una lista por CPUs y los flags recomendados: http://gentoo-wiki.com/Safe_Cflags

Si no sabéis la familia exacta de vuestra CPU podéis hacer un 'cat /proc/cpuinfo' como indica el wiki y ya tendréis todos los datos necesarios!

Además también ganaremos un poco más de velocidad si cambiamos -02 por -03, a costa de un pequeño aumento de tamaño en los binarios Sonrisa

Hay otro flag de optimización para los drivers que tengan partes en ASM (si es que aun queda algo en mame en ASM), es añadiendo en la linea de los flags ASM '-O9999'.
Probadlo si queréis y luego nos contáis si habéis notado alguna mejoría.

Como ejemplo os dejo mi configuracion de CFLAGS para mi Celeron a 2ghz:

CONF_CFLAGS_OPT= -march=pentium4 -fomit-frame-pointer -O3 -fno-merge-constants -Wall -Wno-sign-compare -Wno-unused

El -pipe sólo tiene efectos al compilar, no tiene nada que ver con el propio ejecutable asi que, rara vez lo suelo usar.

Con estos CFLAGS y la configuración por defecto de advmame (más los cambios recomendados anteriormente) consigo 300fps (450% aprox.) de media en el Street Fighter II: Champion Edition (sf2ce). Para comprobar vosotros como de veloz os va, pulsad: F10 (throttle) y luego F11 (mostrar fps).

Una vez esta todo configurado ya sólo queda teclear:

# make

Durante este proceso os saldrán algunos avisos, no os preocupéis es totalmente normal...Lengua

Una vez más a ser pacientes ya que la compilación puede durar fácilmente más de media hora, es un buen momento de tomarnos un respiro mientras el proceso finaliza Sonrisa

Una vez haya terminado, sólo nos queda instalarlo:

# make install

3.3 - Apéndice C: Configura un logo de arranque personalizado.

Esta sección se queda para futuras actualizaciones Guiño

3.4 - Apéndice D: Dándole el toque de gracia.

Quizás algunas partes de este apéndice requieren algo de experiencia linuxera, si metes la gamba xD

Voy a dar un par de mini consejos de como mejorar el arranque de la CPU, para que este sea más veloz Sonrisa

Primero vamos a quitar todo lo que no sea imprescindible para la maca del arranque...

# update-rc.d -f ntpdate
# update-rc.d -f console-screen.sh remove
# update-rc.d -f mdadm-raid remove
# update-rc.d -f mdadm remove
# update-rc.d -f pcmcia remove
# update-rc.d -f lvm remove
# update-rc.d -f evms remove
# update-rc.d -f rsync remove

Podéis hacer lo mismo con ssh, y si alguna vez necesitáis entrar remotamente lo iniciáis manualmente con /etc/init.d/ssh start

Ahora para que el arranque de los últimos servicios se carguen sin esperas, editamos el script de inicio:

# nano /etc/init.d/rc

Y buscamos la linea que pone

startup $i start

Y le añadimos al final & para que obtengamos:

startup $i start &

Tambien podemos darle cañita al sistema con hdparm, en principio comprobamos si tenemos el dma activo en nuestro disco duro...

# hdparm -d /dev/hda

Siendo 'hda' la unidad de tu disco duro, normalmente es 'hda' o 'hdb'o 'hdc' o 'hdd' (o 'sdX' si usas unidades SCSI).

Si no lo tenéis activadlo:

# hdparm -d1 /dev/hda

podéis añadir este comando por ejemplo al mame.sh del inicio para que lo haga cada vez o si queréis hacerlo mejor, configurad el hdparm.conf que tenéis en /etc.

¡E..E...E..Esto es todo amigos!

Puedes encontrar el artículo también en su Web original: http://david.dantoine.org/seccion/15/.

D_Skywalk

Publicidad



Arcade