[PSP] Emulador GB/GBC RIN modificado para tener "rebobinado" o "rewind"

¡Hola a todos!

Me es muy grato presentarles la culminación de un pequeño proyecto que me habia propuesto, el cual es implementar la funcionalidad de "rebobinado" al emulador de GameBoy/GameBoy Color llamado "RIN" para PSP.

Si han llegado a usar el emulador NesDS notaran que una de sus mejores caracteristicas es la opción de "rewind" o "rebobinado", la cual al dejar presionado un botón, te permite regresar las acciones que has realizado en el juego, asi por ejemplo, si con el Mario Bros te caes en un abismo, presionas tu botón de "rebobinado" para regresar en el tiempo a un punto donde puedes evitar tu caida. [plas]

El concepto del rebobinado es muy simple: solamente guardas en memoria una cantidad considerable de estados salvados (save states) en secuencia. Cuando quieres regresar en el tiempo, solamente recorres la secuencia de estados salvados en sentido inverso. ¡Asi de facil!


Para la implementación de esta caracteristica me base en una estructura de datos denominada "Lista circular", asi que si quieres echarle una ojeada al código fuente que incluyo, te recomiendo que veas como se implementa una lista circular en el lenguaje "C" para que le entiendas mejor.

La compilacion de los fuentes la hice con el DevkitPro PSP para Windows, y el ejecutable final lo probe en una PSP 1.5 con el Harleygs Custom Firmware instalado y la opción "nokxploit = true", por lo que aun no se si funcione bien con otros firmwares, devhooks, etc.

El archivo final (ejecutable + fuentes) esta subido en MegaUpload y el enlace es el siguiente:

RIN_v1_32-REWIND.zip, 1.07 MB

¡Saludos a todos!
esta bien una lista circular para este tipo de cosas ;) has hecho la lista entera tu? o has usado el array de la stl y lo has sobrecargado? ( tambien sería una buena idea eso )
saulotmalo escribió:esta bien una lista circular para este tipo de cosas ;) has hecho la lista entera tu? o has usado el array de la stl y lo has sobrecargado? ( tambien sería una buena idea eso )


La lista la hice desde cero con la ventaja de que para lograr el efecto deseado se pueden eliminar tranquilamente las operaciones de insertar y eliminar elementos de la misma (solo es necesario poder recorrerla en un sentido o en otro) y de hecho, no me paso por la mente usar stl, mas que nada por que no sabia si estaba disponible con el tipo de compilador que estaba usando.
pues si que lo está y la verdad suele ahorrar trabajo y errores, aunque si te sirve de consuelo... la tuya seguramente sea más rápida...

me pregunto una cosa, podrías guardar esta estrucctura de datos en un fichero y crear un video de algunos juegos, me equivoco? sería divertido para ver finales y poder luchar contra algunos mounstruos algunas veces... jejej no se.. ideas...
saulotmalo escribió:me pregunto una cosa, podrías guardar esta estrucctura de datos en un fichero y crear un video de algunos juegos, me equivoco? sería divertido para ver finales y poder luchar contra algunos mounstruos algunas veces... jejej no se.. ideas...



De poderse guardar en un fichero si es posible, sin embargo, la escritura en la memory stick del PSP es muy tardada, lo que te generaria videos muy cortados. Seria mejor para tal fin, modificar un emulador para PC y entonces sí te quedaria un video mas fluido.
4 respuestas