Llevo varios meses intentando cargar Homebrew propio en la Sega Megadrive.
Probé desde adquirir un MegaCD por eBay (pero están demasiado caros), buscar por todas las tiendas de segunda mano de Valencia (no habían
), comprar un GameGenie y intentar cargar homebrew con el LAKABAJO de Devster (pero no es compatible con PAL
)
Así que finalmente, con un poco de ensamblador de 68000 que aprendí cuando hice dos códigos para evitar el bloqueo de region en el Xenon 2 - Megablast y en el Worms, estuve mirando en varios juegos de Sega Megadrive, para poder emular el LAKABAJO, pero usando mis propios métodos y que fuese compatible con todas las consolas.
Finalmente, he dado con el juego World Cup Italia '90, con el cual, después de semanas de quebraderos, ¡ya lo he acabado
!
Solo se necesita:
- Sega Megadrive ó Sega Genesis (da igual la región)
- Juego World Cup Italia '90 (yo lo tengo en un cartucho 6 en 1, así que no estoy seguro de si servirá este o tendré que comprarmelo sin varios en uno)
- Cable de LAKABAJO. Probablemente, haré uno más simple yo más adelante
- Cartucho GameGenie
- Ordenador con puerto paralelo
¡Y ya está! Los códigos son los siguientes (con una pequeña explicación):
- WTBT-B172 (cambia un salto BRA a la dirección de la memoria RAM $FFFF4C)
- HADA-B6LN (este y el siguiente cargan el contador ubicado en $FFF008 al registro D7)
- BADA-BB4R
- J6DA-ANXE (este invierte los bits de D7 ($B3 se convierte en $FFFFFF4C), mediante un NOT)
- J6DA-BAMG (carga el registro D7 al registro A0, en el cual se indica la dirección donde se guardan los datos del mando 2)
$FFF008 es un contador inverso, es decir, va hacia atrás cada frame. Y como la rutina de mandos también se llama cada frame, pues se puede aprovechar.
Si alguien se pregunta porqué da igual que lo que cargue en A0 sea $FFFFFF4C en lugar de lo correcto, $FFFF4C, es porque el procesador 68000 omite los 8 bits superiores, por lo que da igual
El salto BRA modificado es llamado después de la introducción de Sega, y cuando los datos ya han sido copiados a la memoria RAM, por lo que carga tus propios datos. Hay desde $FFFF4C hasta $FFFFFF disponible, más si los datos que enviamos es un Bootloader para usar toda la memoria RAM.
¿Alguien se anima a programar el Bootloader?