Regresar   Foro de marcianitos.org > Emuladores y programas de todo tipo > Emuladores > MAME

 
 
Old 20-abr-2008, 14:29   #1
JokerBlue
Usuario registrado
Con Cheat activado no se guardan records

Un saludo a todos los miembros del foro,

Mi cuestion es la siguiente, espero que a alguien le haya pasado lo mísmo y sepa como solucionarlo.

Actualmente tengo el mame32 plus 0.103 u2 instalado en mi maquina. Ademas tengo al mismo nivel, el hiscore.dat para guardar records y el cheat.dat con una gran variedad de trucos (ambos en versiones muy recientes).

Me sucede lo siguiente:

Si juego normal, es decir sin activar cheats, me guarda los records de quialquier juego. Eso si, en el momento de activar un truco, cualquiera, ya no se actualizan los registros de records, manteniendose, eso sí los records hechos sin ningun tipo de cheat.

Por ello solicito vuestra ayuda, seguro que alguien tiene la clave de lo que me esta pasando y sabe cual es la solución, si la hay...

Muchas gracias a todos de antemano.
   
Old 20-abr-2008, 15:36   #2
PeterPunk
Editor Marciano
MAME está programado así por defecto. Si se activan los cheats, el hiscore no se habilita. Podrías recompilarlo para que no fuese así, pero ¿qué mérito tiene jugar y dejar récords elevados usando trucos?
   
Old 20-abr-2008, 17:38   #3
JokerBlue
Usuario registrado
Y como podria recompilar mi mame para poder modificar esto?

Habria que modificar algun archivo de mi carpeta de mame? podrias decirme como y cual?

Muchas gracias
   
Old 20-abr-2008, 18:09   #4
PeterPunk
Editor Marciano
Necesitas el código fuente de la versión de MAME que quieras recompilar, y el compilador y extras que se usaron con esa versión.
Luego habría que buscar algo parecido a esto (puede variar según la versión del MAME)
Code:
	/* disable high score when cheats are used */
	if (options.cheat != 0)
		return FALSE;
y borrarlo. A continuación compilas el MAME (tardará unos 20 minutos) y debería funcionar el hiscore aunque se usen cheats.

EDITO porque me había olvidado decir que las líneas que se tienen que borrar están en el archivo hiscore.c

Editado por PeterPunk en 20-abr-2008 a las 18:19.
   
Old 20-abr-2008, 19:05   #5
JokerBlue
Usuario registrado
PeterPunk he entendido mas o menos la forma de hacerlo.

Seria modificar estas lineas de codigo

if (options.cheat != 0)
return FALSE;

borrarlas.

Y estas lineas estarian en el codigo de un archivo llamado hiscore.c

Pero tengo 2 dudas.

No encuentro este archivo (el hiscore.c)...donde estaria, en que carpeta?

y la segunda, cuando dices compilar el mame...como se hace? como se compila el mame?

Gracias de nuevo PeterPunk
   
Old 20-abr-2008, 20:11   #6
PeterPunk
Editor Marciano
En esta página (la oficial de MAME) tienes los archivos ejecutables (el que tú realmente usas para jugar) y los códigos fuente de cada versión (los que ponen source) que son las líneas que los programadores de MAME escribieron en C++ y a partir de las cuales, con el compilador adecuado (programa que "convierte" las líneas de código en un ejecutable que sea interpretable por Windows, vamos, el mame.exe).
Ese compilador, en el caso del MAME suele ser el MinGW, que también aparece en la página oficial del MAME. El asunto es que necesitas la versión adecuada del compilador (y algunos archivos más a mayores) para esa versión del MAME. Por ejemplo, ahora mismo creo que están usando la versión 4.2.1 del MinGW, pero en la versión de MAME 0.103u2 creo que usaban el MinGW 3.4.2

Por lo que lo más fácil es compilar las últimas versiones, pero aquí tienes el problema de que el Mame tradicional y el MameUI (el equivalente con interfaz gráfico) ya no tienen soporte para el archivo hiscore.dat desde la versión 0.107u5 más o menos. Aquí, se explicó como se compila el MAME 0.111 para el soporte de récords, que más o menos debe ser similar a la versión actual.

De todas formas, si añadir tú manualmente ese soporte para récords te parece complicado, puede que prefieras compilar el MamePlus que lo sigue manteniendo. Para compilar este "port" del MAME, debes bajar el código fuente del mame de la versión que quieras y luego añadirle el código fuente de la misma versión del mameplus. En esta página, viene una pequeña guia que te indica los archivos que necesitas para compilar y cómo hacerlo.

Por cierto, me acabo de fijar que el código que te indiqué antes es mío, que no es el de MAME, sino el que le añadí al hiscore.dat cuando compilé la versión 0.111 con soporte de récords para que no se pudiese usar junto con cheats. El que debes borrar es:
Code:
	/* disable high score when cheats are used */
	if (he_did_cheat != 0)
		return FALSE;
Saludos.
   
Old 20-abr-2008, 21:09   #7
JokerBlue
Usuario registrado
Ya me he bajado el compilador, eso si el Mingw 5.1, es que no encuentro el 3.4.2, por otro lado ya tengo el source de mi version de mameplus, es el source de la mia, de la 103.

El tema es que en el hiscore.c no encuentro por ningun lado estas lineas de codigo:


* disable high score when cheats are used */
if (he_did_cheat != 0)
return FALSE;

Sabes en que archivo estarian? porque no estan? dpende del source?

Gracias de nuevo
   
Old 20-abr-2008, 22:48   #8
PeterPunk
Editor Marciano
Puede ser que con esa versión del MinGW no puedas compilar el MAME. De todas formas asegúrate de que tienes los archivos extras que te indican en la página de mamedev (dx80_mgw.zip o el que fuese en aquella versión)

Y parece que en esa versión del MAME, esas líneas de código están en el mame.c no el hiscore.c:
Code:
	/* disable high score when cheats are used */
	if (he_did_cheat != 0)
		return 0;
Saludos.