El sitio personal de David Colmenero (D_Skywalk)

Tutorial: Tu maquina arcade bajo GNU/Linux para todos!

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

1 – Instalación del sistema base.

2 – Instalación de programas y librerías.

3 – Apéndices

3.1 – Apéndice A: Configuración avanzada.

3.2 – Apéndice B: Compila tu propio mame.

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

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


Nota: 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 ;·) Para seguir este tutorial al menos necesitaras una maquina tal que:
- CPU: 686 o mayor (es decir a partir de Pentium II y/o AMD K6)
- GRÁFICA: 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: Monitor arcade o TV, sino tienes monitor arcade pero piensas tener uno pronto, te recomiendo que te hagas un cable VGA-EUROCONECTOR. Te permitirá seguir el tutorial con cualquier TV, ya que son compatibles entre sí, más información. Es un grave error intentar seguir el tutorial con un monitor de PC CRT o peor aun LCD.
- HD: Exclusivo 20gb o mayor ¡¡SACAD CUALQUIER OTRO!! (no me responsabilizo si formateáis vuestro zuindowz actual, por ello tened conectado solo el hd que vayáis a usar y sacad/desconectad cualquier otro)
Nota respecto al Disco Duro: el sistema solo necesitara 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 maquina, 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 mas amigable de hacer todo esto, claro que la hay, pero: requiere mas fotos, el “pincha aquí”… que muchas veces es menos preciso que dar comandos y el por que de cada uno Smiley: contento!

Consejos antes de entrar en faena:
- Si ponéis vuestro router en modo DHCP, la configuración en red es nula, solo tendréis que darle a OK, y poco mas Smiley: contento! Sino seria necesario, mínimamente saber lo que es una IP y/o como configurar una tarjeta de red (ip, dns, puerta de salida) para que tenga conexión a internet.
- Preparad café, os hará falta xDDD

Si después de leer todo esto, no has corrido despavorido…
¡¡enhorabuena!! estoy seguro que vas a conocer algo donde el único limite, lo pondrás tu Smiley: contento!
(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:

Para este tutorial vamos a usar la versión Breezy de ubuntu, que podéis conseguir en este mirror español:
(recordad que es el Install CD para i386)

Grabad el CD con vuestro programa favorito a una velocidad máxima de 10x y marcad que revise los datos. Mientras se graba, para que os suenen luego, podemos aprovechar para echarle 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 usais TV y no veis 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] [F1], [ALT F2] … [ALT] [F6]: Cambia la consola actual de trabajo (multitarea).

Un tutorial por si tienes mas curiosidad: http://www.debian.org/doc/manuals/referenc…utorial.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 Smiley: Muy contento!


1 – Instalación 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 ingles 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 ultima, 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 cómodamente desde nuestra pantalla “poco común” xD

Finalmente el comando quedaría:

server vga=771
 (el símbolo igual lo tenéis en la tecla [¿])

Pulsamos [ENTER] y comenzamos el proceso de instalación, que veréis que no tiene mucho misterio Smiley: contento!

Atención si tienes problemas con el modo de 771 que es de 800×600 podéis probar a 640×480, con el modo 769. Aunque yo he probado en mi Hantarex 9110 y no he tenido problemas, aconsejo de todas formas mover los potenciómetros 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 los [Cursores], [Tabulador], [Espacio], [Enter], [Inicio], [AvPag]…

Idioma

Este sera el primer punto por el que nos preguntara la instalación, abajo tenemos “Spanish – Español” que seleccionaremos 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 ultima vez, como antes pulsamos [ENTER].

Detección del Hardware y análisis del CD

Este paso es automático, así que no tenéis que hacer nada mas que esperar Smiley: 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 esta ya ocupada por otra máquina… Pues, simplemente ponemos este numero; 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 Smiley: guiño En esta ocasión repito mi: 192.168.0.222.

Nombre de la maquina: Poned el nombre que mas os guste, y os recomendaría además nada con “ñ” acentos, etc… con vuestro permiso yo usare “gauntlet“, jejej

Particionado de Discos

Bien aquí empieza la parte seria del primer capitulo, 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:
- Podéis seguir adelante, y por lo tanto tendréis un muy buen sistema de ficheros (ext3).
- 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 intro de nuevo y obtenemos un menú con todos los sistemas de ficheros disponibles. En la 3a 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 ultima pregunta nos asalta y la confirmamos seleccionando la opción [SI] Smiley: contento!

Instalación de los ficheros del sistema

Este paso es automático, es hora del café, seguro que lo tienes listo Smiley: Muy contento!
¿como lo has visto? ¿complicado? Espero que no…

Este proceso no suele durar mas de 5 o 10 minutos, el tiempo justo para relajarnos mientras llega la ultima tanda de preguntas Smiley: HA HA HA ...

Zona horaria

Mas simple imposible, seleccionad vuestra zona horaria, lo normal sera “Madrid”.

Usuarios y contraseñas

Ahora crearemos un usuario que nos valdrá para instalar programas y para uso general, en principio solo vamos a tener ese, pero mas adelante podremos crear otros si lo necesitamos, es mas; 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 Smiley: contento!

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 Smiley: Muy contento!

Configuración de los repositorios y arranque

De nuevo estos pasos son automáticos, os sacara 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? Smiley: guiño

Ultimo 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 Smiley: Muy contento!
Para activar la cuenta de root (administrador) haremos:

$ sudo passwd root

Nota: Cuando pulséis las teclas no se producirá efecto en la pantalla.
Primero nos preguntara 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] [D] o escribiendo logout. Para entrar como administrador usaremos como usuario: root y ya contraseña que escribisteis Smiley: contento!

Imagen del articulo
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 Smiley: guay!

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

APAGAR

# halt

REINICIAR

# reboot

(Con CTRL ALT SUPR también reiniciáis la cpu, si alguna vez lo necesitáis :? )


2 – Instalación de programas y librerías.

Continuaremos ahora instalando los programas básicos para nuestra maka, que serán AdvanceMAME y AdvanceMENU, pero antes de poder instalarlos necesitaremos optimizar el núcleo 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 Smiley: Muy contento!

Para instalar programas necesitaremos entrar como administrador del sistema, asi 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 (I): 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 Smiley: guiño Sino lo sabes siempre puedes mirar en:

Por ejemplo:

# apt-get install zsnes

¿Que haría este comando? Instalaría y configuraría zsnes en nuestro sistema, pero no solo 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 estas de acuerdo en instalarlas Smiley: contento!).

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 núcleo de nuestro sistema (pero solo las cabeceras) así que también las instalaremos Smiley: contento!

Primero pondremos al día la lista de ficheros en tres 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 Smiley: Muy contento!

Vamos a empezar bajándonos mi lista recomendada de repositorios:

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

Aclaracion: wget se encargará de bajar nuestros ficheros y guardarlos en el directorio que nos encontremos. Como veis su uso es muy simple.

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

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

Nota: si os fijáis con que pongáis “rep” y pulséis tabulador la el nombre del fichero se completara solo.
Nota 2: cat es un hermano mayor del type de msdos, por si alguno lo conoce.

De nuevo actualizamos apt-get con:

# apt-get update

Nota: Si algún repositorio os diera error, volved a ejecutarlo otra vez, a veces los servidores se saturan y pasan de nuestra petición xD

Y por ultimo instalaremos el nuevo núcleo 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 Smiley: guiño

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

Lo haremos con un simple:

# reboot

Compilando mi “muy especialmente modificado” SVGAlib

*Nota: Quizás añada un camino opcional que permita hacer una especie de instalación simple con un kernel base y un SVGAlib también base. Luego ya si alguno quisiera actualizar que hiciera estos pasos :? *

Para que advanceMAME vaya fino, cual mariposilla del bosque, necesitamos instalar las librerías 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 Smiley: Muy contento!

Empezaremos bajandonos 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 multiples 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 estan 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 arranque automáticamente haciendo “make clean” (que desinstalaría tambien todas las libs de SVGAlib).

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

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

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! Smiley: HA HA HA ...

Empezamos instalando las librerías que necesita advancemame:

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

Aclaración: es libsdl[UNO y no ELE].2debian-alsa, gracias Jose.

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 muy rápidamente advancemame, sólo para comprobar que todo está correcto. Para una configuración e instalación detalladas, teneis los tutoriales de DOS y Windowz de Lord (en marcianitos.org), 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

Aclaración: la opción -P indica el directorio donde guardará 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 más detalle mirad los tutoriales de advmame.

Aviso: 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 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 Smiley: guiño

# advmame robby

Consejo para usuarios que hayan hecho el Apendice 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 asi conseguir la perfecta emulación que deseamos. Recomiendo leer el “modeline howto” que traduje.

Instalando AdvanceMENU

Bueno estamos ya en el paso final para tener nuestra máquina operativa, al menos básicamente Smiley: 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 Smiley: Muy contento!

Bajaremos la versión precompilada que he preparado para el tutorial.
Usuarios Avanzados: En principio no es necesario que compileis una versión para vuestra CPU, más que nada por que optimizar el menu, no nos va a servir de mucho, es mejor tener una versión estable y poco más

Empezamos bajando el paquete del menu:

# 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 el y arrancamos el menu para que genere sus ficheros de configuracion:

$ advmenu

Bien ahora antes de arrancar el menu 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 apendice 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] [O] guardamos (nos confirma el nombre, simplemente [ENTER]) y con [CTRL] [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 sección con una configuración correcta para nuestra AVGA, por sino queréis pelearos con advcfg y demas xD

Configuracion TV/Arcade monitor by D_Skywalk

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

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″ Smiley: contento!

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 aun más fácil este ultimo paso. O bueno, si alguien se anima que avise Smiley: guiño

Empezamos con agetty que nos permitirá substituir a nuestro viejo login por el programejo que le indiquemos Smiley: Muy contento!

Así 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 Smiley: 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 intro al cerrar advmenu Smiley: contento!

# 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 línea que substituiremos:

#1:2345:respawn:/sbin/getty 38400 tty1

(Podeis comentar tambien los terminales 4 5 y 6, sin problemas)

Y ahora añadimos después de la primera linea comentada:

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 parámetro 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 ^_^

# nano /sbin/skymame

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

Listo, ahora al iniciar la máquina automáticamente aparecerá advmenu y una vez cerrado aparecerá un menu de mantenimiento que os permite, por ahora, reiniciar el menú o apagar el sistema… pero es muy fácilmente 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 Smiley: HA HA HA ... pero alguna neurona si que ha caído :P

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 vendrán mal si queréis hacer un uso de: “no solo juego” e incluso lo pasaréis como enanos si os gusta el “cacharreo informático” ;D

3.1Apéndice A: Configuración avanzada

Configurar idioma correctamente

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

# dpkg-reconfigure locales

Aclaración: este programa permite volver a configurar programas ya instalados

Primero nos aparecerá una gran lista de idiomas, en principio sólo deberíais 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” Smiley: contento!

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 utilidades imprescindibles

Si os apetece trastear un rato el Linux y os sentís perdidos, un poco perdidos, vamos a instalar una utilidad que os ayudara en este nuevo mundillo linuxero: Midnight Commander. Esta utilidad nos permitirá editar ficheros, copiar y demas operaciones muy fácilmente ^^_

Para instalarla vamos tan sólo debemos hacer:

# apt-get install mc

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

# mc

Imagen del articulo
Seguro que a alguno le recuerda a cierta utilidad de Norton…

Accediendo remotamente al sistema

Para acceder remotamente al sistema vamos a usar un protocolo seguro SSH. Nos permitirá entrar y administrar la máquina remotamente, y esto es muy útil sobretodo en nuestras máquinas que en principio no están pensadas (ni acondicionadas) para un mantenimiento “in situ” Smiley: contento!

Si usas Linux o MAC seguramente ya tendras instalado el software necesario en tu PC, pero si usas Windowz puedes bajarte Putty o cualquier cliente SSH que encuentres por google. Simplemente ponéis la IP del PC a conectar y marcais SSH Smiley: contento!

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.

Nota: 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 fácilmente compilaros vuestras versiones de MAME, adaptadas a vuestras necesidades Smiley: contento!

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 Smiley: guiño

Empezaremos bajándonos la última versión, 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

Nota: Cambiad el “104″ por la version 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 Smiley: Muy contento!

# apt-get install nasm libsdl1.2-dev

Nota: 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 configuracion de CPU pueden editar con “mc” el fichero”Makefile” donde unas lineas más abajo se puede leer:

CONF_CFLAGS_OPT= -march=....

Aclaración: 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 ¿como 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:
Nota: sino 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 Smiley: contento!

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 me contáis si habeis notado alguna mejoría.

Como ejemplo os dejo mi configuración 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

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

Con estos CFLAGS y la configuración por defecto de advmame (más los cambios recomendados anteriormente) consigo 400fps 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 está todo configurado ya sólo queda teclear:

# make

*Nota: durante este proceso os saldrán algunos avisos, no os preocupéis es totalmente normal… :P *

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 Smiley: contento!

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

# make install

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

[ Esta seccion se queda para futuras investigaciones Smiley: 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 máquina, para que este sea más veloz Smiley: contento!

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 necesitais 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 &

También 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”.

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! Smiley: HA HA HA ...

    • *WIP:
  • Añadir el logo al inicio Smiley: contento!

  • Repositorios y downloads actualizados Smiley: Muy contento!
  • Muchas correcciones y añadidas unas aclaraciones (gracias Jose).
Comparte en: Twitter Facebook Google +
comments powered by Disqus