ZipiZape escribió:@Tom_Chandler te voy a hacer un copia pega de otro foro sobre porque el meta slug se ralentizaba
"El juego satura la CPU original (a 12 MHz) porque el código del motor gráfico no está optimizado para procesar tantos elementos en pantalla a la vez (rutinas de colisiones, físicas de explosiones, decenas de enemigos...). Al motor "no le da tiempo" a calcular todo en los 16.6 milisegundos que dura un frame (para ir a 60 fps). Cuando se pasa de ese tiempo, el juego rasca y se ralentiza. Eso es "mala programación", sí.
¿Por qué el Overclock lo soluciona aunque no sea un emulador? Si a ese mismo motor de juego le subes la velocidad del procesador (por ejemplo, a 16 o 20 MHz en la placa física mediante overclock), la CPU ejecuta más instrucciones por segundo. Por lo tanto, aunque el código sea ineficiente, el procesador es tan rápido que le sobra tiempo para calcular todo el desastre matemático dentro de esos 16.6 ms. El juego se mantiene a 60 fps estables."
Os estoy leyendo y veo un lio terrible que teneis con el MSLUG2 y sus ralentizaciones porque veo mucha desinformación en este hilo y me voy a tomar el tiempo de explicarlo, este es el caso de
este juego no de otros del sistema que también se ralentizan.
Creo que todo el que haya jugado a neogeo se da cuenta que no tiene sentido que se ralentice tanto MSLUG2 incluso a veces sin pasar mucho en pantalla siendo el MSLUG que mas se ralentiza sin ser el mas tocho.
Vamos haber, primero los MSLUG no van a 60fps van a 30fps como velocidad base, eso que habeis pegado del otro foro pues no es así siento decirlo, es decir todos los MSLUG no sincronizan con el refresco de pantalla sus animaciones etc tienen una rutina parte del codigo que cuenta 2 fotogramas de refresco de pantalla para ejecutar las animaciones y la logica del juego o sea en una pantalla de 60HZ van a 30fps lo que quiere decir que el juego se actualiza cada 33ms.
Este bloqueo a 30FPS se hace en una rutina de código y funciona correctamente hasta que tiene una ralentización y la consola no llega a dibujar ese frame a los 33ms de tiempo que tiene destinado para ir a 30FPS, entonces en vez de esperar un refresco mas de pantalla y dibujar la rutina vuelve a saltar 2 refrescos haciendo que el juego ralentice mas de lo que deberia, es decir siempre el juego se ralentiza un frame de más.
Si lleva mas ed 33ms de tiempo de calcular un frame y no hubiera codigo lo que haria el juego es volver a esperar otros 2 fotogramas para ejecutar la logica y las animaciones, eso seria una brutalidad de espera haciendo que el juegos esperara 4 frames de vsync ejecutandose el juego a 15fps, para evitar esto hay una rutina que simplemente lo que hace es que si no hay tiempo para ejecutar ese cuadro a 30 fps no vuelve a saltar 2 si no que espera unicamente uno.
Esto esta corregido por un fan en MSLUG2 TURBO que es un hack con esta rutina arreglada funcionando como debe ser.
¿Esto elimina todas las ralentizaciones? Elimina algunas y otras hacen que sean menos notorias siendo el juego mucho mas jugable, la diferencia es palpable vamos.
¿El overclock elimina este problema aunque no modifiques el juego con el hack? Pues si el overclock es suficientemente tocho para que la rutina no salte, ralentizaciones eliminadas, si salta la rutina pues la ralentizaciones te la comes mas fuerte de lo que deberias con un frame mas de espera porque la rutina esta mal programada y el problema del codigo sigue ahí.
Espero con esto haber quedado claro que las ralentizaciones de MSLUG2 son tan horribles y notorias ya que la cagaron en una rutina critica que se dedica a ejecutar el juego a 30 en vez de a 60 fps.
A modo de curiosidad os comento que los MSLUG en general estan muy mal optimizados, fijaos la cagada que huicieron con la rutina esta, pues como ese hay mas problemas de mala programación en otros sitios pero que fixearlo llevara mucho curro por eso la gente pues prefiere el overclock, pero en el caso del MSLUG2 la cagaron muy gordo y un simple fix hace que el juego vaya mucho mejor sin tener que overclockear ni cambiar mucho del codigo.
Fuente con la información bien explicada por el autor del hack con incluso el codigo que modificó:
MSLUG 2 TURBOUn Saludo.