Versión para imprimir

Diario de un aventureroiniciada por eisbaer

marcianitos > Zona de trabajo

Part 1 of 1   

eisbaer18/11/2005, 13:49
Hola,

mi intencion en este post es contar mi experiencia con el advmame bajo linux. Creo que es algo de lo que se ha hablado poco en este foro y que creo que puede servir de ayuda a muchos marcianos jejej.

Para que os hagais una idea de mi configuración, a grandes rasgos:

- Placa AMD 64 con 512 MB de RAM. El PC estara dedicado a la maca
- Hack de PAD USB Genius para panel de control
- Tarjeta grafica ArcadeVGA Radeon 9250
- Cable VGA-SCART con circuito de ajuste de sincronias

Software Inicial:

- Windows XP SP2
- Mame 32
- Mamewah de front end

Problemas detectados:
- Las resoluciones no son del todo de mi gusto, hay que andar tocando cada dos por tres el menu de servicio de la tele y es un poco coñazo
- Ademas desde el manual de servicio del TV no puedo modificar ciertos parametros (p. ej. amplitud horizontal) con lo que hay juegos que a la "mejor resolucion" no se ven bien
- En algunos juegos (p.ej. Galaga, se come algunas lineas de la parte superior de la imagen y me aparece una franja negra, y no se soluciona aunque toque los parametros verticales del menu de servicio del TV, que en este caso si me funcionan todos sin problemas)

En general no es que se vea mal, pero es que soy demasiado perfeccionista :lol:

Despues de leer muchos comentarios sobre lo maravilloso que era el advmame empece a pensar que podia ser la solucion para mis problemas con el video.

Tenia tres posibilidades:

- Instalar ADVMAME en XP: No me gustaba porque probablemente no tuviese el mismo control a bajo nivel que podria tener con otro sistema operativo
- Instalar ADVMAME en MSDOS: Tenia el problema de los drivers de la tarjeta de sonido y que el hack USB del panel de control no me valdría, con lo que tendría que tirar de hack de teclado (no me agrada mucho esta idea) o comprar un IPAC
- Instalar ADVMAME sobre Linux: Podría resolver el problema de los drivers, pero tenia el problema de que configurar las cosas en linux no suele ser cosa facil...

Por fin me anime a ponerme a trabajar sobre ello. Asi van las cosas:

Día 15 de noviembre:

Leo los tutoriales de lord hiryu y empiezo a probar las versiones de ADVMAME para diferentes entornos. Estos son los resultados de las pruebas:

- ADVMAME en MSDOS: cuando ejecuto la utilidad de advcfg desde msdos veo toda la pantalla "out of sync", es como si al entrar en modo texto el advmame reprogramase los registros de la VGA y las resoluciones de la arcadevga se escojonasen del todo.

- ADVMAME en WINDOWS XP: inicio windows xp y todo ok, creo el advmame.rc, cargo svgawin.exe (si no lo cargo no puedo seguir), ejecuto el advcfg y curiosamente todo ok, pero cuando llego al paso final en el que se ajustan los modos de video... cataplash, se ve una imagen muy rara y pantallazo azul en windows.

- ADVMAME en LINUX: para hacer las pruebas me he creado un CD con AdvanceCD, cojo la imagen base, le meto algunas roms y le meto el advmame.rc y advmenu.rc hasta aqui todo bien. Genero la ISO y la meto en CD. La cuestion es que cuando arranco desde CD:

* La pantalla de la BIOS me sale bien (ya que utilizo ArcadeVGA)
* Cuando aparece la pantalla de loading del advance cd, la pantalla se me pone out of sync
* Cuando se acaba de cargar y me saca el advmenu, lo veo todo perfectamente con resolucion 640x288
* Cuando selecciono un juego... cataplash, el advmenu deja de responder y se queda "tirado"
Si a todo esto intento utilizar una consola linux (ALT+F2) paso a modo texto y la pantalla se queda "out of sync"

Esta ultima configuracion (la de linux) es con la que mas me he pegado, porque de haber puesto advmame tendria que haber sido en linux (que con un poco de suerte a lo mejor soporta la tarjeta de sonido integrada en placa que tiene mi equipo y los pad usb). Del msdos me olvido.

A si que... tiro la toalla. Me tendre que conformar con mi windows xp y con mis modos de video "imperfectos" de la arcadevga...

Día 16 de noviembre:

Que narices, no puedo tirar la toalla tan pronto!

Ankon me ha recomendado hoy en el foro que pruebe con una version anterior de advmame para MSDOS. Concretamente con la 0.92.
He probado todo ilusionado y nada, sigue sin irme en MSDOS :(
Joder tiene que ser algun problema de las modelines que he definido el advmame.rc, digo yo
Tras un par de horas revisandolo sigo sin poder arreglarlo. Además, que tienen que ver las modelines con el fichero del advmame.rc con el menu que aparece al ejecutar inicialmente el advcfg si este esta en modo texto? Me da que mas bien es un problema del propio advcfg. A saber que libreria de video han utilizado para compilar la aplicacion. Me juego lo que sea a que esa libreria sobreescribe los registros de la VGA y mete a saco la frecuencia para que se vea en un monitor de PC. Esta conclusion ademas me cuadra con lo que me decia Ankon de que si conectas un monitor de PC a la arcade VGA en este punto... se ve bien :)
Doy por descartada la opcion de MSDOS, no hay nada que hacer por aqui, paso de seguir perdiendo el tiempo con esta configuracion
A si que vuelvo a mirar a linux, a ver si voy resolviendo los problemas que tengo en este entorno...

Despues de darle muchas vueltas pensando en que era un problema del advmame.rc o el advmenu.rc probe a desactivar en la BIOS la tarjeta de sonido... y voilaaaa el advancemame ya me funciona en linux el problema era pues que cuando intentaba inicializar la tarjeta de sonido se quedaba colgado (eso para que luego digan que el linux no se cuelga jeje).

Estuve echando unas partiditas al ghost'n'goblins utilizando mi panel de control basado en hack de pad usb note bastante mejora con respecto al mame32 en windows xp (es dificil de explicar, noto como menos retardo...). En cuanto tenga tiempo voy a probar el track and field, creo que ahi podre apreciar si se gana o no se gana con el pad usb en linux con advmame en vez de windows con mame32.

Ahora las resoluciones se ven bastante mejor, me queda por hacer ajustes todavia en los modelines, pero creo que la cosa puede quedar bastante bien. Me gusto mucho especialmente la posibilidad de cambiar la resolución "on the fly" para ajustar los juegos a la pantalla de la mejor forma posible...

Sigo teniendo el mismo problema de señal fuera de sincronismo durante la pantalla de carga del advancecd, me da que es un tema de la svgalib de linux, seguire mirandolo a ver si lo soluciono...

En cuanto a la tarjeta de sonido tendre que ir pensando en buscar una tarjeta PCI soportada por el kernel que incluye advancecd porque paso de recompilarme todo el kernel (ni siquiera tengo linux en ningun pc de casa para poder hacerlo y no tengo ganas de ponerme a reinstalar uno jeje). Paso a postear un anuncio en el cambalache ahora mismito jejje

A ver si esta noche sigo con el tema, mi plan de trabajo es:

- solucionar el problema de las sincronias durante la carga del advancecd y al abrir la consola en el terminal
- cuando solucione el problema anterior, podre ver bien el modo texto de linux y podre ejecutar el ./advcfg para ajustar los modelines... ya que ahora lo que tengo son las modelines por defecto para PAL y NTSC

creo que es en ese momento (cuando ajuste bien las modelines) cuando se solucionara el problema de las lineas que desaparecen en la parte superior de la pantalla (por cierto, con el advmame en linux probe el galaga y me pasa lo mismo que con el mame32 en win... las lineas siguen desaparecidas.... al final voy a tener que llamar a paco lobaton

Día 17 de noviembre:

Vamos a ver si soluciono el problema de las sincronias con el arranque...
Lo primero que hago es enterarme un poco de que puede ir el asunto.
Joder parece que linux ya no emplea la svgalib, que ahora utiliza una libreria que es la de los framebuffers que es ademas la que utiliza advanceCD :) es lo que tiene llevar tantos años sin tocar linux jejej
Destripo los imgs que vienen en la imagen de linux que estoy arrancando... (losetup para configurar el dispositivo loopback y mount para montarlo)
En el directorio etc encuentro el fichero fb.modes... interesante :)
Este fichero en el advancecd tiene algunos modos definidos que pueden ser interesantes. Estos son: arcade, ntsc, pal, ntsc-lace, pal-lace
Voy a ver si consigo arreglar el problema del texto del terminal (ALT+F2) que me queda fuera de sincronia
Ejecuto "fbset pal" y nada :(
Ejecuto "fbset -n pal" y nada :(
Joer que idiota estoy, el teclado seguro que esta mal configurado en el linux que estoy utilizando! y como no veo lo que escribo...
Ejecuto "fbset -n pal" utilizando el signo - del teclado numerico.... y funciona! por fin veo lo que pone en el terminal virtual!
Esto me abre nuevas posibilidades, ya puedo empezar a "urgar" en el sistema de ficheros que tiene mi entorno de advancecd :)
Hago "cat /proc/pci" para ver los dispositivos PCI. Interesante... mi tarjeta tiene identificador 10DE:00E8.
Miro en la documentacion de advancecd de soundforge... y efectivamente, no esta soportada :(
Voy a ejecutar el advcfg a ver si dejo finos los modelines...
Joer, ahora resulta que no se ve a pantalla completa...
Me piro a la cama que es muy tarde y estoy muy cansado :P
Mañana mirare a ver como narices puedo pasarle algun parametro al kernel durante el arranque para que no me saque las pantallas de arranque fuera de sincronia
Y si no doy con el parametro, tendre que echarle un vistazo a los fuentes a ver donde narices va harcodeado que arranque a 640x480x31KHz y recompilarlo todo :(

Día 20 Noviembre 2005:

La verdad que no he podido dedicarle mucho tiempo el fin de semana :(
Hoy he vuelto a revisar lo de la suportabilidad de mi tarjeta de sonido. He vuelto a comprobarlo (la verdad que el otro dia lo mire como muy rapido). La tarjeta que tengo es esta:

nForce AC'97 Audio Codec Interface [00ea] , es decir, identificador 10DE:00EA

y no 10DE:00E8...
con lo que al contrario de lo que pensaba mi tarjeta de audio si deberia estar soportada!
Instalo un linux slackware 10.2 (la ultima) y la tarjeta de sonido funciona correctamente. Reproduzco los mp3 sin problemas...
Sera la version de alsa (Advance Linux Sound Architecture?
O sera un problema de advmame?
No tengo comandos en la distribucion de AdvanceCD para probar la reproduccion de sonido (el unico que tengo es el advs que viene con advmame y cuando lo ejecuto me da un error diciendo que no puede inicializar el dispositivo de audio).
A ver si mañana le doy otra vuelta y investigo mas del tema de por que no me funciona la tarjeta de sonido.
Por otro lado he intentado pasarle de mil formas distintas al kernel parámetros para la inicialización de la librería de framebuffer y... no ha funcionado de ninguna de las formas.
Sin embargo, si lo hago en la distribución slackware paralela que me he montado en otro disco duro si que los paso y los interpreta sin problemas
p. ej. vga= Asi por ejemplo consigo arrancar en 640x480x256 colores y todo el arranque se ve bien (con el tipico parpadeo del entrelazado)
He intentado ejecutar advmame desde la distribucion slackware y me dice que la libreria de fb que utilizo no es la correcta (mi distrib slackware utiliza vesafb y creo que deberia utilizar la radeonfb)
A si que si no es por un lado es por otro...

Hay gente del foro que me ha preguntado como hago las pruebas (si tostando a cd cada vez que voy a probar o como lo hago...)
En fin, seguro que no es la mejor forma de hacerlo, pero por ahora lo estoy haciendo asi:
1) Cada vez que tengo que crear una imagen para probar, me voy a una maquina que tengo con Windows 2000 y vuelco la imagen a un pendrive (makeusb.bat de la distribucion de advancecd para windows)
2) Si necesito modificar algo de esa imagen que tengo en el usb, me voy a otra maquina con Linux (slackware 10.2) completa y modifico todo lo que quiero. Hay que tener en cuenta que el sistema de ficheros que monta en ramdisk está en ficheros .img, para modificarlos desde linux -> make extract, modificar lo que quiera y luego make initrd o make app dependiendo de la imagen que quiera volver a crear.
3) Además en la maca he puesto un disco duro de 4GB en sustitución del que tengo funcionando con XP con slackware 10.2 aunque suelo arrancar con el pendrive usb.

En cuanto al frontend, a pesar de que hay otros (tipo GameLauncher) no se como se comportará con modos de video especiales para monitores arcade (no olvidemos que una de las ventajas de advmenu desde mi punto de vista es la gestion de los modelines).

PD: Por cierto, me he dado cuenta que a lo mejor todo lo que escribo aqui es un poco criptico :P lo escribo entre otras cosas porque si no lo hago se me acabara olvidando y seria una pena :) Si alguien no se entera de lo que pone aqui no os preocupeis, ya me currare un tutorial cuando me entere bien de como funciona esto de manera que "cualquiera" pueda instalar linux con advancedmame...

21 noviembre 2005

Vamos a ver... sigo mirando cosillas :)

Lo primero que voy a hacer hoy es intentar ver que mensajes deja el kernel durante el arranque (con eso de que no veo nada....)
Inicio el PC de la maca con mi pendrive USB, abro un terminal virtual, reconfiguro el video, monto un disquete y hago "dmesg > /mnt/bootmsg"
Esto es lo que devuelve:

Kernel command line: advanceusb=1 mem=512M power_off=1 initrd=initrd.img video=radeonfb:640x480 ramdisk_size=4096 root=/dev/ram0 init=/linuxrc rw BOOT_IMAGE=linux
Initializing CPU#0
Detected 2009.784 MHz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 4010.80 BogoMIPS
Memory: 513700k/524224k available (2050k kernel code, 10136k reserved, 586k data, 664k init, 0k highmem)
Dentry cache hash table entries: 65536 (order: 7, 524288 bytes)
Inode cache hash table entries: 32768 (order: 6, 262144 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 32768 (order: 5, 131072 bytes)
Page-cache hash table entries: 131072 (order: 7, 524288 bytes)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU: After generic, caps: 078bfbff e1d3fbff 00000000 00000000
CPU: Common caps: 078bfbff e1d3fbff 00000000 00000000
CPU: AMD Athlon™ 64 Processor 3000+ stepping 00
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
mtrr: v1.40 (20010327) Richard Gooch (rgooch@atnf.csiro.au)
mtrr: detected mtrr type: Intel
PCI: PCI BIOS revision 2.10 entry at 0xfb740, last bus=2
PCI: Using configuration type 1
PCI: Probing PCI hardware
PCI: Probing PCI hardware (bus 00)
PCI: Using IRQ router default [10de/00e1] at 00:00.0
isapnp: Scanning for PnP cards...
isapnp: No Plug & Play device found
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
apm: BIOS version 1.2 Flags 0x07 (Driver version 1.16)
Starting kswapd
Journalled Block Device driver loaded
NTFS driver v1.1.22 [Flags: R/O]
udf: registering filesystem
clgen: Driver for Cirrus Logic based graphic boards, v1.9.9.1
clgenfb: couldn't find Cirrus Logic PCI device
radeonfb: ref_clk=2700, ref_div=12, xclk=14300 from BIOS
Console: switching to colour frame buffer device 80x30
radeonfb: ATI Radeon 9200 Y DDR SGRAM 128 MB
radeonfb: DVI port no monitor connected
radeonfb: CRT port CRT monitor connected
intelfb: Framebuffer driver for Intel® 830M/845G/852GM/855GM/865G chipsets
intelfb: Version 0.7.7, written by David Dawes tridentfb: Trident framebuffer 0.7.5 initializing
pty: 256 Unix98 ptys configured
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI ISAPNP enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
Real Time Clock Driver v1.10f
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
loop: loaded (max 8 devices)
Linux agpgart interface v0.99 © Jeff Hartmann
agpgart: Maximum main memory to use for agp memory: 439M
agpgart: unsupported bridge
agpgart: no supported devices found.
Uniform Multi-Platform E-IDE driver Revision: 7.00beta4-2.4
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
hdb: C/H/S=0/0/0 from BIOS ignored
hdb: FUJITSU MPC3043AT, ATA DISK drive
hdc: CD-ROM 50X L, ATAPI CD/DVD-ROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
hdb: attached ide-disk driver.
hdb: task_no_data_intr: status=0x51 { DriveReady SeekComplete Error }
hdb: task_no_data_intr: error=0x04 { DriveStatusError }
hdb: 8448300 sectors (4326 MB), CHS=8940/15/63
hdc: attached ide-cdrom driver.
hdc: ATAPI 50X CD-ROM drive, 128kB Cache
Uniform CD-ROM driver Revision: 3.12
Partition check:
hdb: [PTBL] [525/255/63] hdb1 hdb2
SCSI subsystem driver Revision: 1.00
kmod: failed to exec /sbin/modprobe -s -k scsi_hostadapter, errno = 2
kmod: failed to exec /sbin/modprobe -s -k scsi_hostadapter, errno = 2
usb.c: registered new driver usbdevfs
usb.c: registered new driver hub
PCI: Setting latency timer of device 00:02.2 to 64
ehci_hcd 00:02.2: PCI device 10de:00e8 (nVidia Corporation)
ehci_hcd 00:02.2: irq 10, pci mem e8813000
usb.c: new USB bus registered, assigned bus number 1
PCI: cache line size of 64 is not supported by device 00:02.2
ehci_hcd 00:02.2: USB 2.0 enabled, EHCI 1.00, driver 2003-Dec-29/2.4
hub.c: USB hub found
hub.c: 8 ports detected
host/usb-uhci.c: $Revision: 1.275 $ time 21:07:12 Nov 25 2004
host/usb-uhci.c: High bandwidth mode enabled
host/usb-uhci.c: v1.275:USB Universal Host Controller Interface driver
PCI: Setting latency timer of device 00:02.0 to 64
host/usb-ohci.c: USB OHCI at membase 0xe8815000, IRQ 10
host/usb-ohci.c: usb-00:02.0, PCI device 10de:00e7 (nVidia Corporation)
usb.c: new USB bus registered, assigned bus number 2
hub.c: USB hub found
hub.c: 4 ports detected
PCI: Setting latency timer of device 00:02.1 to 64
host/usb-ohci.c: USB OHCI at membase 0xe8817000, IRQ 10
host/usb-ohci.c: usb-00:02.1, PCI device 10de:00e7 (nVidia Corporation)
usb.c: new USB bus registered, assigned bus number 3
hub.c: USB hub found
hub.c: 4 ports detected
usb.c: registered new driver hid
hid-core.c: v1.8.1 Andreas Gal, Vojtech Pavlik hid-core.c: USB HID support drivers
usb.c: registered new driver audio
audio.c: v1.0.0:USB Audio Class driver
Initializing USB Mass Storage driver...
usb.c: registered new driver usb-storage
USB Mass Storage support registered.
mice: PS/2 mouse device common for all mice
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 4096 buckets, 32Kbytes
TCP: Hash tables configured (established 32768 bind 32768)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
RAMDISK: Compressed image found at block 0
Freeing initrd memory: 896k freed
VFS: Mounted root (ext2 filesystem).
Freeing unused kernel memory: 664k freed
hub.c: new USB device 00:02.0-4, assigned address 2
scsi1 : SCSI emulation for USB Mass Storage devices
Vendor: JMTek Model: USBDrive Rev: 7.77
Type: Direct-Access ANSI SCSI revision: 02
Attached scsi removable disk sda at scsi1, channel 0, id 0, lun 0
SCSI device sda: 64000 512-byte hdwr sectors (33 MB)
sda: Write Protect is off
sda: sda4
WARNING: USB Mass Storage data integrity not assured
USB Mass Storage device found at 2
hub.c: new USB device 00:02.1-4, assigned address 2
input: USB HID v1.10 Gamepad [0583:a000] on usb3:2.0
ISO 9660 Extensions: Microsoft Joliet Level 3
ISO 9660 Extensions: RRIP_1991A
PCI: Setting latency timer of device 00:06.0 to 64
intel8x0_measure_ac97_clock: measured 41926 usecs
intel8x0: clocking to 46620


Interesante :) esta info me da muchas pistas acerca del driver de fb que estoy utilizando.

Ademas...

Resulta que la ati radeon arcade VGA que tenia que pensaba que era una Radeon 9250 resulta que es una RADEON 9200 PRO. Dos formas de verlo:
- Desde linea de comandos haciendo "cat /proc/pci" y mirando el ID del dispositivo en http://pci-ids.ucw.cz (en mi caso http://pci-ids.ucw.cz/iii/?i=10025960)
- Desde linea de comandos haciendo "lspci"
Esto solo lo estoy viendo porque me voy a poner a examinar los fuentes del kernel a ver si encuentro algo de documentacion acerca de como narices puedo pasar parametros al driver de fb.
La version de advancecd que estoy utilizando es la 2.6.2. El kernel que lleva compilada esa distribución es la 2.4.26 (lo he visto ejecutando cat /proc/version desde linea de comandos)...
A si que me descargo este kernel de www.kernel.org
Lo descomprimo con tar -xzvf linux-2.4.26.tar.gz

continuara....


saludos

Mikonos18/11/2005, 14:07
Este diario está fenomenal, colega!

Vamos a ver si eres capaz de hacer mágia con Linux!

Saludos

D_Skywalk18/11/2005, 17:00
 QUOTE (eisbaer @ 18/11/2005, 13:49) Y si no doy con el parametro, tendre que echarle un vistazo a los fuentes a ver donde narices va harcodeado que arranque a 640x480x31KHz y recompilarlo todo...

Umf, la verdad que aun no he probado advCD, pero por lo que comentas del arranque puede ser cosa del GRUB o el LILO (depende con lo que te arranque el advCD) hechale un ojo por si es eso :?

Supongo que un par de semanas podre empezar a probar cosas en linux, y podremos ayudarnos mutuamente :D

Por cierto, si kieres un lanzador multiemulador tipo mamewah para linux tienes http://www.dribin.org/dave/game_launcher/.

Un Saludop de otro aventurero linuxero ;)
Paul Sernine18/11/2005, 19:36
Joer felicidades por tu valentía, yo estuve pensándomelo, pero al final tiré para MS-DOS. Algo que tiene muchas limitaciones, la principal es que no tienes red ni modo de gestionar remótamente el PC de la maca. Cosas que en linux puedes tener sin necesidad de ningún entorno gráfico.

Por cierto, una pregunta ¿tienes el AdvanceCD instalado en el disco duro, o por el contrario tienes que quemar una iso cada vez que haces cambios en la configuración?

Saludos. Tu diario me será de gran ayuda cuando me decida a dar el paso.
eisbaer21/11/2005, 21:25
Hola!

respuestas en el primer post...
D_Skywalk22/11/2005, 09:22
 QUOTE En cuanto al frontend, a pesar de que hay otros (tipo GameLauncher) no se como se comportará con modos de video especiales para monitores arcade (no olvidemos que una de las ventajas de advmenu desde mi punto de vista es la gestion de los modelines).


No tiene por que darte ningun problema ya que es un FE para makas :)

Un Saludo y suerte :)

Part 1 of 1   

Powered by ForumCommunity.net · Powered by Invision Power Board © 2002  IPS, Inc.