Mini-tutorial: Cómo restaurar los “slider controls” para overclockear los juegos en el emulador Mame- IntroducciónNo sé si esto interesara a alguien, a mí desde luego sí, y os aseguro que he estado incontables horas delante del ordenador para conseguirlo. Es lo que pasa cuando uno se pone a tratar de averiguar cómo cambiar algo en el código fuente de MAME sin tener ni idea de “C”. Nunca perdí la fe. Al final, la solución fue más de lógica que de lograr que la flauta sonara por casualidad, porque el único sonido que salía de este asunto eran los errores al compilar, que tampoco me ayudaban demasiado, la verdad, ni para darme pistas ni para animarme en mi empeño. Pero bueno, no me enrollo y vamos a lo que vamos.
Nota: En el momento en que se escribe este documento la versión actual de Mame es la 0.134.
- Restaurando los “slider controls” para overclockear los juegos en el emulador MameEl objetivo era poder sacar los “slider controls” con la “tecla º”, (o con el botón asociado), tal y como se hacía en el las viejas versiones del emulador Mame. Lo de que salga el “Master volumen” a mí me resulta totalmente inútil en las versiones actuales, porque el volumen lo controlo por hardware. Incluso mejor sería el poder sacar el “slider de overclocking”, que es lo que me interesa fundamentalmente. El tener que acceder al overclocking a través de tortuosos menús era algo inaceptable. Al final lo que he logrado es esto último, lo cual me resulta ideal, mejor incluso que como era antiguamente con el menú deslizable (arriba-abajo).
La barra “overclocking” nos permite incrementar la velocidad del procesador para lograr una mejor ejecución de los juegos en el emulador Mame que sean muy exigente en cuanto requisitos técnicos, es, por tanto y en mi opinión, una función muy útil e interesante, que quería recuperar.
El fichero a editar es “ui.c”. Cambie miles de veces la línea “return ui_set_handler(ui_slider_ui_handler, 1); /* ñ */”, que es la que invoca el “on-screen-display”, ahora reducido al mísero “Master volumen”. Pensé que el 1 definía el “slider” que sacaba, pero parece ser que no. Luego traté de meter ahí la referencia al “slider” de “overclocking”, pero nada más que fallos y fallos al compilar. Finalmente, más abajo, donde se listan los “sliders”, pensé en algo tan sencillo como increíble si es que funcionara: cambiar el orden en el que se definen los sliders. Justo debajo de:
CODE
/*-------------------------------------------------
slider_init - initialize the list of slider
controls
-------------------------------------------------*/
Tenéis que mover:
CODE
/* add CPU overclocking (cheat only) */
if (options_get_bool(mame_options(), OPTION_CHEAT))
{
for (device = machine->firstcpu; device != NULL; device = cpu_next(device))
{
void *param = (void *)device;
astring_printf(string, "Overclock CPU %¬s", device->tag);
*tailptr = slider_alloc(machine, astring_c(string), 1, 1000, 2000, 50, slider_overclock, param);
tailptr = &(*tailptr)->next;
}
}
De manera que esté antes que:
CODE
/* add overall volume */
*tailptr = slider_alloc(machine, "Master Volume", -32, 0, 0, 1, slider_volume, NULL);
tailptr = &(*tailptr)->next;
De esta forma tan sorprendente, resulta que el “on-screen-display” llama al primer “slider”, que resulta ser el que hemos colocado en primera posición. ¡Voila! Le damos a la “tecla º”y nos sale directamente para overclockear el juego.
Captura de pantalla del juegos “Mortal Kombat 3”, considerado como juego exigente, en donde se exhibe la barra o slider de overclocking.
¡Creo que se han asustado los vecinos con mis gritos de júbilo cuando he visto que funcionaba!
- Por Elaphe666 -Maquetado imagen y texto:
Mikonos