Zona Arcade. Construye, Restaura y Decora tu Máquina Arcade y Pinball.

Tutorial: Roms de distintos sistemas de emulación en una única lista de juegos de MameWah

« Older   Newer »
  Share  
view post Posted on 14/12/2008, 18:47     +1   -1
Avatar

Restless in Peace

Group:
Administrator
Posts:
42,857
Location:
Alcobendas (Madrid)

Status:


Tutorial: Roms de distintos sistemas de emulación en una única lista de juegos de MameWah

- Introducción

A estas alturas resulta evidente afirmar que el mayor emulador en términos de juegos de recreativa es MAME. Sin embargo, el hecho de que acapare la mayor número de juegos no implica que todos ellos los ejecute eficientemente, sobre todo en lo referido a juegos con gráficos en 3D. Ello se debe, principalmente, a que el emulador no hace uso de la tarjeta grafica aceleradora, por eso, en la mayoría de estos casos, resulta imprescindible acudir a otros emuladores específicos especializados en una serie de juegos en concreto y que optimizan su ejecución.

La manera en que estos emuladores se integran dentro de nuestro lanzador de juegos (front-end), muchas veces, es distinta de MAME, además de resultar algo ridículo “acaparar” una categoría con una cantidad de juegos infinitamente menor que la de MAME. Por ejemplo, si quisiéramos ejecutar el juego “Killer Instict” a toda velocidad, tendríamos que desplazarnos a la categoría del emulador “U64emu”, que comprende sólo ¡dos juegos! Será, por tanto, la finalidad de este tutorial, que seamos capaces de ejecutar cualquier emulador de recreativa dentro del lanzador Mamewah y que además estos se integren dentro de la lista genérica de MAME.


- Crear una única lista de juegos con MameWah con roms de distintos sistemas de emulación.

Antes de nada será necesario aclarar la estructura de directorios que yo utilizo, a partir de aquí todo lo que haga lo haré basándome en está, por lo que todo lo descrito se deberá adaptar a cada caso concreto.

Estructura de Carpetas y directorios mío:
QUOTE
D:\Frontends\Mamewah: Directorio de Mamewah
D:\Juegos\Mame: Directorio del emulador Mame
D:\Juegos\Mame\Roms: Directorio de roms de Mame
D:\Juegos\CPS3: Directorio del emulador Nebula CPS3
D:\Juegos\CPS3\Roms: Directorio de roms de CPS3
D:\Juegos\U64Emu: Directorio del emulador U64Emu
D:\Juegos\U64Emu\Roms: Directorio de roms de U64Emu
D:\Juegos\Zinc: Directorio del emulador Zinc
D:\Juegos\Zinc\Roms: Directorio de roms de Zinc

Una vez concretado esto, será necesario aclarar que se supondrá que el lanzador está perfectamente preparado para la lista de juegos de mame y que todos los demás emuladores están correctamente configurados. Todas estas cuestiones se pueden resolver mediante los diversos tutoriales ubicados en “Zona Arcade”.

Dicho esto, trataremos de explicar qué recurso del lanzador nos permitirá integrar todos los emuladores de recreativa en una sola lista. Para ello, nos fijaremos en la estructura de configuración de MAME dentro de la carpeta de Mamewah; Nos meteremos dentro de “D:\Frontends\Mamewah\config\mame” y veremos, que además de contener los archivos ini, pertenecientes a la lista principal y a las filtradas de juegos de mame, contiene otra carpeta llamada “game”. ¿Qué hace esa carpeta? Esa carpeta hará que, excepcionalmente, ciertos juegos de la lista de MAME se ejecuten mediante otras configuraciones.

Ahora bien, para que todo ello se cumpla, será necesario que dichos juegos existan también en la carpeta de roms original de mame con el mismo nombre y misma extensión. Como siempre, hay excepciones, y a modo ilustrativo, vamos a ir desarrollando distintos ejemplos, que, entre todos ellos, aglutinan prácticamente todas las trabas que nos podemos encontrar, y así aprenderemos a enfrentarnos a cualquier configuración de emulador que se nos presente en el futuro.


1er Caso: Emulador Nebula CPS3
image

Me llevé una gran alegría cuando supe de la habilidad de ciertos programadores para poder emular la placa CPS3 de Capcom, gracias a la cual podría llegar a jugar al “Street Fighter III”, entre otros. El problema era que ya me había bajado una colección completa de roms de MAME anterior, donde sí incluía dichos juegos, pero en una fase preliminar. Es decir, que era capaz de arrancarlo, pero no de ejecutarlo adecuadamente. Como me suponía todo un engorro tener que actualizar emulador y roms a una versión más actual, me decidí a probar otro emulador específico de esta placa, el “Nebula CPS3”. Las características que nos interesan de dicho emulador a la hora de integrarlo en Mamewah son las siguientes:

- Los juegos tienen los mismos nombres y extensión que en la versión de MAME. image
- El emulador puede seleccionar roms desde la línea de comandos, y de la misma forma que en MAME. image
- La manera en que se cierra el emulador es distinta que en MAME. image

El primer escollo seria relativo al cierre del emulador. Ya que para hacerlo, sería necesario pulsar ALT+F4. Como nuestra idea es que todos los juegos se cierren con ESC, copiaremos en la carpeta del emulador un programa llamado “Closemul”. Dicho programa, ejecutará el emulador y el mismo lo cerrará cuando pulsemos la tecla “escape”. Dicho esto, describiremos entonces el texto de configuración de, por ejemplo, el juego “Street Fighter III”, dentro de la carpeta “game”.

QUOTE
### sfiii3.ini (mamewah v1.63) ###

### Execution Settings ###
pre_emulator_app_commandlines
emulator_commandline D:\Juegos\CPS 3\closemul.exe emulator.exe [name]{nodosbox}{safelaunch}
post_emulator_app_commandlines

Es decir, al incluir el archivo “sfiii.ini” dentro de la carpeta game, avisaremos a Mamewah de que “cumpla” una excepción cuando tenga que llamar al emulador MAME mediante el parámetro “mame.exe sfiii”. En ese caso, Mamewah hará uso de esta configuración mediante la cual se ejecutara la línea de comandos “closemul.exe emulator.exe sfiii” y “closemul” llamará al emulador Nebula cps3, que ejecutará el juegos “sfiii”, y se cerrará mediante la tecla “escape”.

Como dicho emulador ejecuta algún que otro juego más, haremos copias del mismo archivo para cada uno de los juegos existentes. Es decir, copiaremos y pegaremos el archivo varias veces, y lo renombraremos según el caso (sfii3.ini, jojo.ini, warzard.ini, etc.). En este caso la lista de juegos es reducida (6 en total), no resultará demasiado pesado el proceso descrito; sin embargo, si el emulador ejecutara mayor cantidad de juegos, sí que resultaría engorroso; ese es el caso del emulador “zinc”, que cuando se detalle el apéndice dedicado dicho emulador se explicará la manera de automatizar el proceso.

2º Caso: Emulador U64emu
image

Este emulador es realmente singular, ya que sólo emula dos juegos, concretamente” Killer Instict” y “Killer Instict 2”. Sin embargo, y dado que lo hace de forma mucho más efectiva que MAME, será recomendable integrarlo también en nuestra única lista de juegos. Sus características son las siguientes:

- Los juegos tienen distintos nombres y extensión que en la versión de MAME. image
- El emulador no puede seleccionar roms desde la línea de comandos. image
- La manera en que se cierra el emulador es igual que en MAME. image

Como se puede intuir, el principal problema que observamos es debido a que dicho emulador no ejecuta las roms desde la línea de comandos. Por tanto, a priori, resulta imposible integrarlo dentro de Mamewah. Para solventar este fallo, nuevamente haremos uso de un ejecutable especial, “U64-launch2.exe”, el cual llamará al emulador y le “forzará” a ejecutar uno u otro romset. Es decir, una vez copiemos dicho programa en la carpeta del emulador hará lo siguiente:

1) U64-launch2.exe ki - Lanzará el juego "Killer Instict".
2) U64-launch2.exe ki2 - Lanzará el juego "Killer Instict 2".

¡Pues dicho esto! Si somos perspicaces,nos daremos cuenta de que nuevamente tenemos un problema, y es que la manera de lanzar el juego no coincide con la forma en que lo hace mame, ya que las roms, en el caso de mame, son kinst.zip y kinst2.zip. Es decir, que, o sería necesario que la manera de ejecutar el programa fuera de la forma “u64launch.exe kinst” (o kinst2) o que existieran zips creados por nosotros en la carpeta mame con el nombre de ki.zip y ki2.zip (no importaría el contenido de los mismos). Esto se aconsejaría en el caso de que la cantidad de juegos fuera elevada; como no es el caso, lo que vamos a hacer es simplificar la ejecución del emulador para que Mamewah no introduzca el parámetro “kinst” o “kinst2” dentro de la línea de comandos. Es decir, las dos configuraciones quedarían de esta manera:

Archivo “Kinst.ini”:

QUOTE
### kinst.ini (mamewah v1.63) ###

### Execution Settings ###
pre_emulator_app_commandlines
emulator_commandline D:\Juegos\U64Emu\U64-launch2.exe ki{nodosbox}{safelaunch}
post_emulator_app_commandlines

Archivo “Kinst2.ini”:

QUOTE
### kinst2.ini (mamewah v1.63) ###

### Execution Settings ###
pre_emulator_app_commandlines
emulator_commandline D:\Juegos\U64Emu\U64-launch2.exe ki2{nodosbox}{safelaunch}
post_emulator_app_commandlines

Es decir, tomando como ejemplo el caso primero, cuando a Mamewah se le avise de que pretende ejecutar el emulador MAME con el parámetro “mame.exe kinst”, dicho lanzador hará uso del archivo kinst.ini, donde se modificara esa orden por “u64-launch2.exe ki” ejecutando el juego “Killer Instict” mediante el emulador u64emu. En el caso de que la línea de comandos la hubiéramos dejado de esta forma: “U64-launch2.exe [name]”, la orden resultante hubiera sido “U64-launch2.exe kinst”. Es decir, introduciríamos un parámetro irreconocible para el programa, generando una error en la ejecución del mismo.


3er Caso: Emulador Zinc
image

Este emulador ejecuta todos aquellos juegos que corren en máquina recreativa bajo el mismo motor desarrollado por Sony para su consola Playstation. Obviamente, serán juegos en 3D y, por tanto, será necesario hacer uso de él si queremos ejecutarlos a toda velocidad. Sus características son:

- Los juegos tienen los mismos nombres y extensión que en la versión de MAME. image
- El emulador puede seleccionar roms desde la línea de comandos, pero no de la misma forma que en MAME. image
- La manera en que se cierra el emulador es igual que en MAME. image

El principal escollo al que nos enfrentaremos será entonces el referente a la línea de comandos, ya que aunque las roms se puedan ejecutar desde éste, no lo hacen aludiendo al nombre del zip, sino a un número. Así, si tecleamos “zinc.exe 1”, ejecutará el juego “Star Gladiators”; si ponemos “zinc.exe 2”, el juego Street Fighter EX, etc.

Nuevamente, haremos uso de un programa llamado “wrapper”, el cual “modificará” la manera en que se ejecuta la línea de comandos, de tal manera que si llamamos al wrapper mediante la orden “wrapper.exe starglad”, este ejecutará el emulador “Zinc” con la orden “zinc.exe 1”, con lo cual conseguiremos que la manera en que ambos emuladores (MAME y Zinc) se ejecuten bajo la línea de comandos coincida.

Copiaremos el programa en el directorio del emulador y comprobaremos que tenemos dos archivos: “wrapper.exe” (el ejecutable) y “lconfig.ini”. Este último archivo habrá que configurarlo para que se adapte a nuestras necesidades. Para simplificar un poco el tutorial, nos centraremos en las opciones de configuración que realmente nos interesan y dejaremos el resto como están.

Abriremos el archivo mediante el bloc de notas y observaremos los comentarios (las líneas seguidas del parámetro #) que realmente nos interesan:

QUOTE
# Leave at 0 to hide the command line while the emulator is launching.

Con esta opción, ocultaremos la línea de comandos cuando el emulador se ejecute evitando la ventana de MS-DOS. Lo dejaremos, por tanto ,como está por defecto: LAUNCHSTYLE=0

QUOTE
#each command in an emu is usually followed by a delimeter (in mame it's a "-" for example) put this deliemter in the following line

En el caso de algunos emuladores, cuando se introduce un parámetro, es necesario que éste vaya precedido de algún signo en especial, usualmente un guión. Si es el caso, será el momento de decir de qué signo se trata. Como no es el caso, lo dejamos en blanco: delimeter=
QUOTE
#put the mame command or romname followed by a ";" and the command that does the same thing in the emu your launching (like in zinc to launch a game you type it's number so sfex;1 would launch sfex for you)

Esto realmente es lo más importante de la configuración. Aquí es donde se relacionara el nombre del parámetro del juego en la línea de comandos del emulador con la que corresponda en MAME. Pondremos el nombre del parámetro de MAME y, seguido del punto y coma, el que corresponda al emulador en cuestión. Para el caso concreto de Zinc quedaría tal que así:

QUOTE
{cmdlist}
starglad;1
sfex;2
sfexj;3
sfexa;4
sfexp;5
sfexpu1;6
sfexpj;7
sfex2;8
sfex2j;9
sfex2p;10
sfex2pj;11
sfex2pa;12
plsmaswd;13
stargld2;14
rvschola;15
jgakuen;16
rvschool;17
shiryu2;18
strider2;19
kikaioh;20
techromn;21
ts2;22
ts2j;23
tgmj;24
sncwgltd;25
beastrzb;26
beastrzr;27
bldyror2;28
brvblade;29
psyforcj;30
psyforce;31
psyfrcex;32
mgcldtex;33
raystorj;34
raystorm;35
ftimpcta;36
gdarius;37
gdarius2;38
danceyes;39
xevi3dg;40
starswep;41
myangel3;42
tekkenb;43
tekkena;44
tekken;45
tekken2a;46
tekken2b;47
tekken2;48
souledga;49
souledgb;50
souledge;51
dunkmnia;52
dunkmnic;53
primglex;54
weddingr;55
hyperath;56
pbball96;57
susume;58
fgtlayer;59
ehrgeiz;60
tekken3;61
mrdrillr;62
aquarush;63
pacapp;64
glpracr3;65
shngmtkb;66
cbaj;67
doapp;68
tondemo;69
mfjump;70
hvnsgate;71
{/cmdlist}

QUOTE
#put the name of the emulator you wish to launch immediately following this comment

Aquí es donde introduciremos el nombre del ejecutable del emulador: exe=zinc.exe

QUOTE
#Choose which way to exit the emulator.
#0=Let emu close itself.
#1=Try all methods
#2=Try Alt-F4 method
#3=Try Posting a Close Message
#4=Try Posting a Exit Message
#5=Terminate Process (sloppy, but always works)
#Use only 0 or 1 unless you run into problems.

Y, por último, tendremos la opción de decidir de qué manera se cierra el emulador (algo así como que el programa closemul.exe esté integrado también). La opción “0” dejaría que el emulador se cerrara por cuenta propia, la opción 1 intentaría diversas combinaciones usuales de teclas, la 2 lo cerraría con ALT-F4, la 3 intentaría mandar el mensaje “Close”,la 4 el mensaje “exit” y finalmente la 5 terminaría el proceso en caliente, algo así como si lo cerráramos desde la barra de tareas. Como el emulador tiene la capacidad de cerrarse sólo mediante la tecla escape, lo dejamos en la opción 0: ExitType=0

Y el resto de los parámetros los dejamos como vienen por defecto.

Bien, pues configurado esto, el archivo de configuración dentro de la carpeta game debería quedar de esta manera:

QUOTE
### sfex2p.ini (mamewah v1.63) ###

### Execution Settings ###
pre_emulator_app_commandlines
emulator_commandline D:\Juegos\Zinc\Wrapper.exe [name]{nodosbox}{safelaunch}
post_emulator_app_commandlines

Es decir, cuando se llame a MAME con el parámetro “mame.exe sfex2p”, Mamewah hará uso del archivo de configuración, utilizando por tanto la orden “wrapper sfex2p”. el programa wrapper entonces traducirá este comando como “zinc.exe 10” y, finalmente, correrá el juego mediante el emulador zinc

Pues dicho esto, solo será necesario hacer lo mismo con todos los distintos juegos, ¿no? ¡el problema es que son más de 70, con lo cual resulta ciertamente engorroso!. Para solventarlo, nada más sencillo que hacer lo siguiente:

Creamos un sólo archivo de configuración, con un nombre genérico, (ejemplo.ini) y lo movemos a la carpeta de roms de zinc. Una vez dentro de esa carpeta, crearemos un archivo bat ¿Qué es un archivo bat? Pues un archivo ejecutable que nos permitirá ejecutar una serie de órdenes de manera repetitiva y con algunas variaciones; es decir, nos ahorrará todo el trabajo sucio.

Para crear el archivo bat abriremos el bloc de notas y teclearemos lo siguiente

QUOTE
FOR %%­x in (*.zip) DO copy ejemplo.ini %%­xi
ren *.zipi *.ini

Lo guardaremos dentro de la carpeta de roms de Zinc y lo renombraremos como “ejecutar.bat”, por ejemplo. Como tampoco es muy necesario entender el funcionamiento del programa, sólo describir lo que hará: leerá todos los zip contenidos en la carpeta y hará copias del archivo “ejemplo.ini” con los nombres de todos y cada uno de los zips contenidos en la carpeta roms. Al instante de ejecutar el programa tendremos los 70 y pico “inis” necesarios para que corran todos los juegos bajo Zinc. ¿Fácil no? Ahora sólo será necesario mover todos los “inis” a la carpeta “game” (menos “ejemplo.ini”, evidentemente) en: “D:\Frontends\Mamewah\config\mame\game”; lanzar Mamewah, (darle la orden “generate list”), y listo. Tendremos los mismos juegos que siempre, pero al ejecutar los que nosotros queremos lanzaremos otro emulador que los hará funcionar más rápido.

Sin embargo, hay que tener un cuidado especial con una cuestión. Bien es sabido que mame gestiona una serie de clones (es decir, versiones distintas del mismo juego, de una fecha o país distinto) que puede ser que no lo haga el emulador que nosotros queremos.. Centrándonos en el caso del Killer Instict, nos fijaremos bien en la descripción del mismo que hace Mamewah, porque si ejecutamos, por ejemplo, el que tiene de nombre “kinst14 (clone of kinst)”, ejecutaremos la versión 1.4 del juego en vez de la versión “padre”, que es la que corre u64emu. Yo por ello, y también para tener una lista de juegos mas “sintetizada”, recomiendo hacer una lista filtrada, donde dejar sólo una versión de cada juego, la que mejor se adapte a nuestras necesidades.

image


Espero que el tutorial resuelva las dudas a todos aquellos que no sabían cómo integrar determinados emuladores dentro un lanzador de juegos, pensé que el tema del tutorial era una buena excusa para agrupar y explicar todas las posibilidades que nos podamos encontrar. Espero que no os resulte muy pesado; cierto es que es un tutorial largillo, pero explica bastante cosas, y yo siempre he preferido una explicación machacada, aunque se alargue, a una que vaya directamente al grano.

¡Saludos a todos!


- Por Carcayu -

Edited by Mikonos - 15/12/2008, 20:04
 
Web  Top
view post Posted on 14/12/2008, 19:16     +1   -1
Avatar


Group:
Member
Posts:
3,171
Location:
Usa

Status:


Maravilloso! solo lo he leido por encima, pero me voy a meter de lleno a probarlo en mi pc.

Que te queda por descubrirnos Mikonos?

Un Brazo
 
Web Contacts  Top
carcayu
view post Posted on 14/12/2008, 20:12     +1   -1




ejem ejem ejjejejejejejjem :D por cierto Mikonos, ¡muy chulos los titulos de los emuladores! ;)

Edito:Mikonos, no me comentaste nada acerca de lo que comente de subir los programas a un hostin privado ^_^
 
Top
view post Posted on 15/12/2008, 00:57     +1   -1
Avatar

Restless in Peace

Group:
Administrator
Posts:
42,857
Location:
Alcobendas (Madrid)

Status:


Me alegro de que te guste como ha quedado el tutorial, cuando me dijiste que si le ponías alguna foto más, ya había pensado yo algo. Lo de los pulgares arriba y abajo fue algo que se me ocurrió para darle más color. Jeje

Tío, que era lo de los programas? Tengo tantas cosas últimamente en la "testa" que se me piran.

Bueno, sé que me preguntaste si teníamos espacio para esto, y la respuesta es sí, tenemos hasta 2 gigas.


janibol, hay montones de maravillas ocultas en forma tutoriales y muchas más cosas en "Zona Arcade", sólo tenéis que descubrirlos. Todos siempre han estado inmejorablemente presentados, pero es que ahora ya son sobresalientes.



Saludos


 
Web  Top
carcayu
view post Posted on 15/12/2008, 09:55     +1   -1




¡se me habia pasado lo de los pulgares! ¡la verdad es que es un punto! lo de subir era por subir el wrapper de zinc, el launcher de u64emu y el closemu, que para buscarlos siempre puede ser un poco lata. Vamos, entre todos, no creo que ocupe mas de 100 kb. Si estas de acuerdo me lo dices y te los paso. Por cierto, ¿se puede hacer un acceso directo a la descarga de los programas desde el mismo tutorial?

EDITO: Mikonos, el guion (\) entre directorios se ha esfumado :D
 
Top
view post Posted on 15/12/2008, 20:03     +1   -1
Avatar

Restless in Peace

Group:
Administrator
Posts:
42,857
Location:
Alcobendas (Madrid)

Status:


No sé qué ha podido pasar.

Corregido, Carcayu!

Envíame el paquete de software a mi cta., Carcayu.


Saludos
 
Web  Top
Killik_x
view post Posted on 20/9/2009, 15:49     +1   -1




Lo e hecho para el zinc para el mala pero no me coge los controles estan por defecto y eso que lo e editado con el zincconfig.
 
Top
morogoku
view post Posted on 11/1/2010, 21:37     +1   -1




Hola,
He seguido el tutorial, tengo un problema al lanzar el u64emu con el u64-launcher2.
He probado a lanzarlo como viene en el tutorial:
U64-launch2.exe ki
U64-launch2.exe ki2
y tambien con "kinst", "KI 1", y pongas lo que pongas siempre hace lo mismo, abre el u64emu pero se queda ahi sin lanzar ningun juego.
He probado con el u64emu 3.05, 3.11 y 3.50, y todos funcionan correctamente en "manual" pero con el launcher nada de nada.

Se ha comentado si se podria poner el u64-launcher2 para descargar, a lo mejor es ese el problema me he descargado uno, pero a lo mejor no es el indicado.

Podria alguien poner un enlace o mandarmelo por privado??

Muchas gracias.
 
Top
zerokriz
view post Posted on 10/2/2010, 15:48     +1   -1




hola amigos gracias por dejarme ser parte de ustedes tengo unas dudas por aqui que me gustaria compartir ese mamewah lo puedo usar yo he visto algo que se llama ludopolis lo han visto
 
Top
Deadjoung
view post Posted on 4/8/2016, 20:10     +1   -1




Buenas!!
He visto este tuto y despues de leermelo me asalta una gran duda;
¿Esto se puede aplicar a otros emuladores? es decir, se le puede aplicar por ejemplo a gens ( mega drive)
He tratado de hacerlo en m.a.l.a pero no hay manera, solo puedo tener una lista por emulador.
Gracias y un saludo.
 
Top
9 replies since 14/12/2008, 18:47   5354 views
  Share