Hace uno meses salio la noticia que descompilaron la rom de Super Mario 64, si os digo la verdad no creía que fuera a ser poco mas que una cosa para tema de aprendizaje para la gente, pudiera aprender sobre programar juegos retro para la Nintendo 64 y aprender de temas de hacking.
Pero me he confundido, y con mucha mucha sorpresa, en serio hay que pensar fuera de la caja (a mi no se me ocurrió) porque claro es lo que dice Richard Stallman si esta el código fuente….ohh sorpresa se puede llevar a otras plataformas y sistemas operativos DE FORMA NATIVA (grito esto porque es un sueño húmedo). Un port o portarlo 1 a 1, sin emuladores, ni nada.
Lo mejor de todo es ocurrió antes de la famosa filtración de datos técnicos de Nint€ndo, o sea que ha sido por esfuerzo de la comunidad y la scene los que han conseguido semejante proeza.
¿Qué significa que esta proeza de tener el código fuente y poder portar el mario64 hasta una tostadora?
- Preservar el juego de la manera mas pura, salvo que Nint€ndo venga de buen samaritano y libere el código fuente antiguo.
- MODs, se podrá modificar el juego y darle mucha mas vida que cuando estaba encerrado en un cartucho de plástico.
- Nuevos niveles, igual que con los mods.
- Optimizaciones y mejoras, ya se están metiendo actualmente como por ejemplo jugarlo saltándote la aburrida intro, «que si que si…que cuando eramos pequeños fue un flipe verlo en VHS pero ya aburre…».
- Tenerlo funcionando en cualquier lado…hay un issue en github que se titula Cross compiling to the psp. No habría sido la mejor sobrada cuando empezó el homebrew de la PSP haber tenido un Mario64 ejecutándose perfectamente en esa máquina…hubiera sido un «en tus p*tos morros nint€ndo».
- Secretos y aprendizaje de desarrollo retro y hacking…bueno me repito.
- Frikerio, imaginar lo que se puede hacer, rollo con Arduino y tal, desde un mundo virtual (con las gafas de cartón) a yo que se, o por ejemplo yo que se, generadores proceduales de niveles…yo que se…
Y que no significa:
- Por desgracia, el Mario64 tiene tanta entidad, que no es como el Transport Tycoon que el OpenTTD lo suple con creces con todo libre y que nadie puede denunciarlo. Si cogemos el «motor» del mario64 y nos hacemos niveles nuevos y enemigos nuevos y tal, y en vez de ser Mario es un simpatico Minero, pues ya no sera el Mario64, sera otra cosa, libre pero otra cosa.
El vídeo lo ha hecho nuestro amigo (a ver si un día le pregunto el nombre) del canal Se puede jugar con Linux? que aunque no cumple las normas de mi religión Stallmanista, es un muy buen tipo este mexicano y mola la difusión de el mensaje del pingüino (y el Ñu).
El proceso es curioso, porque se necesita una rom, para sacar el pack de ficheros de juego (gráficos, modelos, texturas, sonidos…) y después con todo eso lo empaqueta en un ejecutable.
Para mas curiosidad, el ejecutable ocupa 25 mb (la rom 8mb) y consume de CPU un 25% (que en mi caso sera 750mhz), no se si porque falta de optimizar, si porque la Nint€ndo 64 tenía mucha circuitería de apoyo, si la versión de N64 tiene optimizaciones para esa CPU y circuitería, porque la CPU era NEC VR4300 de 64-bit a 93.7 MHz. Es decir en cifras brutas (seguro que un análisis mas fino hará algún día alguien) ocupa el doble y necesita 8 veces mas CPU.
Me gustaría poneros un link a la rom de Super Mario 64, pero recordar niños Nint€ndo == Disn€y , y no quiero un ejercito de abogados locos y sanguinarios en mi puerta. Pero no es difícil de encontrar la rom.
Si quieres un Mario con generación procedural tienes a DMCA’s Sky que si bien no es en 3D, nada evita que alguien descompile ese juego y use el código como referencia para implementar lo mismo en Super Mario 64.
Curioso el juego que me has puesto, la lastima es que esta hecho con Unity3D y que se quedo a medias, pero la idea de generación procedual de niveles mola.