¡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.
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!