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

Overclock directamente con una tecla en MAME

« Older   Newer »
  Share  
Elaphe666
view post Posted on 22/10/2009, 23:25     +1   -1




No se si esto interesara a alguien. A mi desde luego si, 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 como cambiar algo en el codigo fuente de MAME sin tener ni idea de C. Nunca perdi la fe. Al final, la solucion fue mas de logica que de lograr que la flauta sonara por casualidad, porque el unico sonido que salia eran 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.

El objetivo era poder sacar los slider controls con la tecla º, (o con el boton asociado), tal y como se hacia en el las viejas versiones. Lo de que salga el master volume a mi me resulta totalmente inutil, porque el volumen lo controlo por hardware. Incluso mejor seria el poder sacar el slider de overclocking, que es lo que me interesa fundamentalmente. El tener que acceder al overclocking a traves de tortuosos menus era algo inaceptable. Al final lo que he logrado es esto ultimo, lo cual me resulta ideal, mejor incluso que como era antiguamente con el menu deslizable (arriba-abajo). Explico como.

El fichero a editar es ui.c. Cambie miles de veces la linea return ui_set_handler(ui_slider_ui_handler, 1); /* ñ */, que es la que invoca el on-screen-display, ahora reducido al misero master volume. Pense que el 1 definia el silder que sacaba, pero parece ser que no. Luego trate de meter ahi la referencia al slider de overclocking pero nada mas que fallos y fallos al compilar. Finalmente, mas abajo, donde se listan los sliders pense en algo tan sencillo como increible si es que funcionara: cambiar el orden en el que se definen los sliders. Justo debajo de

/*-------------------------------------------------
slider_init - initialize the list of slider
controls
-------------------------------------------------*/

Teneis que mover


/* 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 este antes que


/* 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 posicion. Voila! Le damos a la tecla y nos sale directamente para overclockear el juego. Creo que se han asustado los vecinos con mis gritos de jubilo cuando he visto que funcionaba :D
 
Top
Sirax
view post Posted on 28/10/2009, 13:46     +1   -1




En basantes juegos, si los overclockeas, empieza a fallar el sonido, casi volviéndose estridente. Luego está el tema de que empiezan a correr a más velocidad de lo que deben apesar de que pongas el frame rate a 60 frs.
 
Top
view post Posted on 28/10/2009, 23:37     +1   -1
Avatar

Restless in Peace

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

Status:


Estoy en ello para publicarlo esta noche!


Saludos
 
Web  Top
2 replies since 22/10/2009, 23:25   962 views
  Share