@SuperPadLand Yo creo que sí que es posible, e incluso en algunos juegos podríamos ver mejoras muy significativas, pero para ello sería necesario un gran esfuerzo en reprogramar los juegos y no sé si hay mucha gente interesada o capaz de hacerlo. Aclaro que esto es una opinión personal basadas en mis experimentos con mapas y cierto conocimiento de cómo renderizan los gráficos algunos juegos. No he mirado ningún código fuente ni tengo la más mínima idea de interpretarlo e identificar optimizaciones.
Super Mario 64 a 60 fps parece muy posible. Por defecto ya funciona a 30 fps muy estables. Es un juego con una carga poligonal en escenarios muy humilde y con margen para optimizar los modelados de los personajes más pesados. Funciona bajo el microcódigo más primitivo de todos. No abusa de técnicas de texturas complejas que se coman el fillrate. Ni siquiera usa apenas el filtro trilineal. El sistema de colisiones, proyección de sombras, animaciones e IA es muy experimental y mejorable. El código original no está muy depurado...
El hacker/modder
Kaze Emanuar ya ha repasado de arriba a abajo el código fuente y lo ha optimizado a lo bestia para su último hack como hemos visto en los vídeos que se han ido publicando. Él mismo admite que con todas estas mejoras el juego original debería de funcionar a 60 fps, pero que primero habría que aislar las mejoras del hack en el que está trabajando (publicará el código del hack para que quien quiera pueda hacerlo, aunque admite que seguramente tendrá que hacerlo él) y supongo que también habría que realizar trabajos en los escenarios para mejorar la gestión de la geometría y rehacer las animaciones para que tengan la fluidez de los 60 fps. Eso sí, creo que será obligatorio el uso del Expansion Pak.
No me fío del contador de fps que aparece en sus vídeos porque nunca parecen ir más fluídos de 30 fps (cuando muestra el juego corriendo en el hardware original) y se aprecian ralentizaciones con el contador marcando por encima de 30 fps. También pude probar el contador en el hack de
Peach's Fury y no noté nunca que se moviese por encima de 30 fps. Ni siquiera cuando el contador marcaba 60 fps, por si a 50 y pico estuviese descartando frames para correr a 30 fps constantes como hacen todos, o la mayoría, de juegos de N64. Eso sí, se mueve de lujo con todo lo que muestra en pantalla.
Pero sí que encontré otro hack basado en el código decompilado que funciona a 60 fps en ciertas áreas y con un modelo de Mario más compejo ->
Block Mesa 64Y a título personal, si se consiguieran los 60 fps constantes, me gustaría que intentaran hacer funcionar el juego a resolución 320x240.
Ocarina of Time a 30 fps. Me encantaría verlo. No sé si sería posible mejorarlo lo suficiente como para conseguir los 30 fps estables. Los efectos de luz son bastante complejos y también hay zonas donde se abusa de texturas de doble capa. Muchos aspectos de las animaciones, las físicas y la lógica están ligados a que el juego funcione a 20 fps y hacen el juego injugable si se aumenta el framerate, pero ya lo han solucionado en el port de PC, así que el único problema que queda por ver es si la N64 es suficientemente potente. Es un juego más maduro que Super Mario 64, pero muchos juegos posteriores parecen hacer un mejor uso del hardware.
En Super Mario 64 veo muy posible una mejora del 100%, así que mejorar en Ocarina un 50% no parecería descabellado.
Perfect Dark mejorado. En
un mensaje en el otro hilo publiqué algunos vídeos comparativos de la rom recompilada y la original en los que a simple vista se nota una mejora importante. Parece ser que el simple hecho de recompilar el código con un compilador más moderno lo ha hecho más óptimo, ligero y rápido. Me gustaría probarlo yo mismo, pero no tengo ni idea de como compilar la rom.
Ya hay
gente que busca optimizar el rendimiento de Perfect Dark. Curioso que mencione que piensa cargar los niveles completos de golpe en la RAM (salvo Area 51, que ocupa demasiado) porque era algo que yo pensaba que ya se hacía.
No creo que lleguemos a ver un Perfect Dark a 30 fps constantes ni a librarnos de bajadas por debajo de 20/15 fps porque hay escenarios muy cargados o donde se juntan muchos enemigos a la vez, pero seguro que se consigue un rendimiento mucho más placentero.
Otros juegos en los que me encantaría ver mejoras serían:
Mario Kart 64 a 60 fps. También se encuentra en
proceso de decompilación. Es un caso similar a Super Mario 64. Juego con microcódigo primerizo, poca carga poligonal, probablemente programación muy mejorable... Debería de poder funcionar muy por encima de los 30 fps pero no sé si se podría llegar a 60. Niveles como la Jungla DK es más complicado por la cantidad de texturas con transparencia, pero pudiendo cambiarlo todo de arriba a abajo quizás sea posible. Me refiero sólo al modo 1 jugador. A pantalla partida ni siquiera me lo planteo.
Y ya que se podrían añadir mejoras al gusto, sería posible aumentar el número de frames de animación de los personajes a costa de aumentar el tamaño de rom (quizás también obligando a usar el Expansion Pak). Hay un
proyecto de texturas HD para emulador en el que han creado modelos 3D muy parecidos a lo que debieron ser los originales y de ahí sacar las texturas. Con esos mismos modelos y mucha paciencia se podrían conseguir animaciones más fluidas que vendrían de lujo si se consiguiesen los 60 fps.
Wave Race 64 a 30 fps. No he encontrado que se esté decompilando. Existe un código de Game Shark que desbloquea el framerate y hay bastantes partes en las que el rendimiento supera los 20 fps y si no recuerdo mal incluso llega 60 en algún punto. El problema de ese truco es que todo está diseñado para un framerate máximo de 20 fps, así que todo se acelera cuando se supera esa cifra. Se trata de otro juego primerizo, pero con carga poligonal más elevada y efectos avanzados de texturas en el agua que se comen mucho fillrate. Sin embargo, sí que lo veo funcionando a 30 fps constantes si se pudiera trastear el código.
Y ya para soñar se podría implementar un modo a 4 jugadores.
Starfox 64 / LylatWars podría ser otro candidato que estaría bien ver funcionar a 30 fps estables, pero sus ralentizaciones le sientan muy bien. Es como un 'efecto bala' antes de Matrix.
No se me ocurren más juegos. Pero seguro que hay muchos juegos de velocidad que se podrían aprovechar (los Extreme G me vienen ahora a la cabeza).