El Green Beret portátil que nunca conocimos.
El otro día, hurgando en un backup de hace décadas, me encontré con un par de versiones de prueba de un Green Beret para Game Boy Color y que en su día su autor Kak me había enviado en el mítico canal #spectrum del IRC Hispano.
Estas ROMs, más basadas en la versión de Spectrum que en el arcade, me produjeron curiosidad acerca de si el juego había llegado a algo más, con lo cual me puse a buscar información sobre el proyecto en internet. Al poco di con un vídeo de hace unos años en el que Javi Ortiz mostraba una versión aparentemente final (también recuperada de un backup, por Marc Robledo), pero esta versión nunca llegó a ser hecha pública.
Al parecer, una distribuidora con bastante poca experiencia había prometido a Kak publicar el juego una vez terminado, sin tener idea siquiera de que el juego era una propiedad de Konami, con lo que el proyecto fue finalmente cancelado (aunque en un estado bastante avanzado).
Siguiendo una pequeña cadena de contactos gracias a Kusfo, Leanderpixel y HexDump, el propio Kak nos ha dado permiso para compartir con todos vosotros esta ROM (prácticamente) final con lo que, sin más dilación, aquí la tenéis para vuestro disfrute junto a los prototipos más antiguos:
(Estos enlaces se autodestruirán inevitablemente, ¡guardadlas bien y difundid!)
NOTA: Debido a que los prototipos fueron testados usando emuladores antiguos, sólo la versión final funciona en hardware real.
ACTUALIZACIÓN: Gracias a DevEd, ahora todas las ROMs funcionan en hardware real. Los enlaces han sido actualizados.
Descubrí cómo hacer que proto 1 y proto 2 funcionen en hardware/buenos emuladores
Literalmente, exactamente la misma solución para ambos: cambia el byte en 0x153 de C0 a E0, eso hará que se ejecuten
explicación de la solución: las ROM originales colocan la pila en SRAM al inicio, que no está asignada de forma predeterminada y cualquier intento de leerlo devolverá $FF
finalmente, la ejecución del código cae en un ret, lo que hace que la ejecución del código salte a la dirección $FFFF y, posteriormente, se bloquee.
Al cambiar ese byte, la pila se coloca dentro de WRAM, que siempre está disponible, evitando así el bloqueo.proto 1 y proto 2 funcionan con la corrección de pila, «final» no debería requerir ninguna reparación