RomHacking con IA Proyectos, métodos y aprendizaje compartido
Abro este hilo para recopilar en un solo sitio los proyectos de romhacking hechos con ayuda de IA —traducciones, parches de mejora, arreglos de jugabilidad, lo que se os ocurra— y para que sirva además como lugar de aprendizaje, donde quien sepa comparta y quien empiece pueda preguntar sin sentirse fuera de lugar. La idea no es hacer un escaparate, sino tener un punto de encuentro: qué estáis haciendo, cómo lo estáis haciendo, dónde os habéis atascado y qué habéis aprendido por el camino.
Trabajar así ya no es ninguna rareza. Cada vez somos más los que sacamos adelante proyectos apoyándonos en una IA para la parte técnica, y me parece que va siendo hora de compartir método en lugar de que cada uno vaya descubriendo lo mismo por su cuenta. Yo llevo un tiempo en ello y he aprendido bastante a base de equivocarme, así que abro con lo que tengo y espero que esto se llene de aportaciones de otros.
Cómo funciona esto en la práctica
Conviene aclarar el reparto de trabajo, porque suele malinterpretarse en las dos direcciones. La IA hace el trabajo técnico duro: desensamblar, localizar tablas de punteros, analizar formatos de compresión, escribir parches de código, reubicar assets. Es capaz de sostener un análisis de ingeniería inversa durante días y de escribir las herramientas que hagan falta para ello, y ahí no le llego ni de lejos.
Ahora bien, sola no llega a ninguna parte. Alguien tiene que dirigir el proyecto: decidir qué se traduce y cómo se redacta, marcar prioridades, descartar lo que no merece la pena. Alguien tiene que probar cada versión en el emulador, porque la IA no ve la pantalla y te dirá "verificado, todo correcto" sobre algo que está completamente roto. Y alguien tiene que aportar intuición cuando el análisis se atasca, que es más decisivo de lo que parece.
Dos ejemplos concretos. En el Nekketsu Soccer los nombres de los equipos estaban como gráficos y no cabían por 390 bytes; el primer enfoque generaba 146 tiles únicos y era un callejón sin salida, hasta que se planteó tratarlos como texto en lugar de como gráficos, alineando cada letra a su celda: de 146 tiles a 35, con 1.466 bytes de margen. En el Momotaro, más recientemente, la IA sostuvo que cierta función no se podía implementar; al insistir y explicar por qué debería poder hacerse, fue a medirlo y resultó que la rutina necesaria ya existía en la ROM y ya se estaba llamando. La intuición humana y el músculo técnico de la máquina se complementan, y ninguno de los dos sobra.
Proyectos
Empiezo yo para romper el hielo. Los dejo plegados para no ocupar media página, y confío en que esto se llene con los vuestros.
Nekketsu Koukou Dodgeball-bu — Soccer Hen MD · TERMINADO
Mega Drive · Technos Japan · 1992 · Exclusivo de Japón
El fútbol de Kunio-kun, con placajes, patadas voladoras, bombas y campos con minas. Nunca salió de Japón: ni versión americana, ni europea, ni una traducción al inglés en más de treinta años, así que no había ninguna versión occidental que sirviera de base y hubo que ir directo al japonés y reconstruirlo todo.
Está traducido por completo: los 86 bloques de diálogo de la historia, los menús, la pantalla de clave, los trece nombres de equipo, la pantalla de alineación, el marcador de resultados, los rótulos de escena y los créditos. Además se redibujaron todos los gráficos que contenían texto japonés, incluido el rótulo del título y una fuente gruesa nueva para los nombres de equipo.
El dato que me sigue pareciendo más llamativo es el tiempo: entre dos y tres días de trabajo intenso para un juego con texto comprimido, sin versión occidental de referencia y con gráficos que había que rehacer. Un romhacker en solitario habría tardado meses, y eso teniendo ya el oficio. No lo digo para restar mérito a nadie, sino porque creo que ilustra bien de qué estamos hablando.
PC Engine · Hudson Soft · 1990 · Exclusivo de Japón
Este va bastante más despacio y es técnicamente más duro que el anterior. Vamos por la versión 272, lo cual da una idea del ritmo: muchísimas iteraciones pequeñas, cada una probada en el emulador antes de seguir.
Ya funcionan la intro, el tutorial y los diálogos principales, con los bocadillos ampliados y remaquetados para que quepa el castellano. Los bocadillos originales llevan escritura vertical japonesa, de arriba abajo y de derecha a izquierda, y convertirlos a horizontal fue la pieza central del proyecto: resultó que el orden de las casillas no estaba programado sino en dos tablas de datos, así que se resolvió con 72 bytes bien colocados. Lo caro vino después, arrastrando el marco, el rabillo y todo lo que se movía por su cuenta.
El sistema de contraseñas del Jizo, que fue la pelea más larga, está resuelto: la parrilla de kana se sustituyó por una latina de 64 casillas (que es justo lo que suman mayúsculas, minúsculas, dígitos y dos símbolos), y las contraseñas del juego original siguen siendo válidas porque los valores internos no cambian. También se recuperaron las flechas de los menús, que se perdieron al reestructurar los bocadillos de tres a cuatro líneas, y que resultaron no ser sprites sino dibujos escritos directamente en memoria de vídeo.
Traducción al castellano, todavía en fase temprana. Poco que contar por ahora más allá de que está empezado. Como veis, aún no están las tildes, la Ñ ni los signos de apertura de interrogación y exclamación. Las cajas de texto tampoco están ensanchadas. En fin, casi todos diálogos ya están traducidos, pero el trabajo de verdad viene ahora.
Double Dragon II (arcade) · INICIADO
Esto no es una traducción, sino un parche para arreglar el juego. Quien lo haya jugado sabrá de qué hablo: en lugar de tener un botón de puñetazo y otro de patada, el arcade original asigna "ataque a la izquierda" y "ataque a la derecha", de modo que hay que invertir mentalmente los controles según hacia dónde mire el personaje. Es una tortura y estropea un juego que por lo demás es muy bueno.
El objetivo es que se juegue exactamente igual que el primer Double Dragon: ataque y patada, sin depender de la orientación.
Wonder Boy in Monster World · INICIADO
Otro parche de jugabilidad. La versión occidental tiene un jefe final absurdamente más difícil que la japonesa. Se pasaron mil pueblos. Es cierto que en la versión japonesa es un paseo, pero es que la occidental es completamente injusta. Al final te lo pasas, pero depende más de la suerte que de la habilidad.
La idea es implementar el jefe final japonés en la versión occidental y dejar el tramo final como debería haber sido.
Lo que he aprendido a base de equivocarme
Hay unas cuantas cosas que ojalá me hubieran contado al empezar, y que creo que ahorran bastante tiempo.
La primera y más importante: la IA se equivoca con una seguridad pasmosa. Te dará por bueno un cambio que rompe el juego entero, porque ha comprobado que escribió los bytes que pretendía escribir, no que el resultado en pantalla sea correcto. Por eso hay que probar siempre en el emulador, y por eso las capturas de pantalla son la prueba definitiva: la IA analiza bytes, tú ves píxeles, y cuando ambos no coinciden manda lo que se ve.
De ahí se deriva la segunda: si crees que se está equivocando, insiste. En mi experiencia, cuando he discutido de manera terca he acabado teniendo razón muchas más veces de las que esperaba. Lo útil es pedir la medición, no la conclusión; que explique cómo lo ha comprobado, no que repita que está bien.
Y hay un caso particular de esto que me ha costado varias sesiones aprender: no basta con que la IA "verifique" su propio trabajo, porque a veces verifica contra su propia idea equivocada en lugar de contra la máquina. En el Momotaro, un bucle que colgaba el juego había pasado una comprobación automática porque esa comprobación estaba escrita con el mismo malentendido que el código. Cuando algo falla pese a estar "verificado", merece la pena preguntar contra qué se ha verificado exactamente.
Luego está el ritmo. Un cambio cada vez, se prueba, y sólo entonces el siguiente. Meter cinco cosas juntas y que algo falle es la garantía de no saber cuál de las cinco fue, y en un proyecto largo eso se paga carísimo. En la misma línea, conviene guardar cada versión con su hash y no sobrescribir nunca: suena a manía, pero cuando algo se rompe, poder volver exactamente al último estado bueno vale oro.
Y por último, exigir que se apunte todo, incluidos los errores. En mis proyectos hay un diario donde las hipótesis descartadas no se borran, sino que se anotan con el motivo por el que resultaron falsas. Eso evita dar tres veces vueltas al mismo callejón, que es algo que pasa más de lo que parece cuando el proyecto se alarga.
Por qué creo que esto importa
Durante décadas el romhacking ha sido territorio de unos pocos con conocimientos muy específicos, y muchísimos juegos se han quedado sin traducir no porque no hubiera interés, sino porque no había suficiente gente capaz de hacerlo. Los que había, con todo mi respeto y admiración, tienen un tiempo limitado y sus propias prioridades, que es completamente legítimo.
Lo que la IA cambia no es la calidad del resultado, que sigue dependiendo del criterio y la paciencia de quien dirige. Lo que cambia es quién puede intentarlo. Alguien que se sabe un juego de memoria, que tiene buen oído para redactar un diálogo y aguante para probar cien versiones, ahora puede sacar adelante un proyecto que antes le habría resultado impensable. Y eso significa más juegos rescatados, más gente metida en esto y una escena más viva.
Quiero dejar claro que este hilo no va contra el romhacking tradicional, sino a favor de que haya más romhacking en general. El conocimiento de quien lleva veinte años en esto sigue siendo insustituible, y muchas veces un apunte suyo desatasca en dos minutos algo que llevaba días parado. Si alguien con oficio ve que estamos planteando algo de forma equivocada, que lo diga sin reparos: se agradece infinitamente más una corrección que un silencio educado.
Compartir también los atascos
Me parece tan útil contar lo que sale mal como lo que sale bien, y en un proyecto largo los atascos son el pan de cada día. Van dos del Momotaro, uno ya cerrado y otro todavía abierto.
El cerrado tenía a todo el mundo desconcertado: una palabra del inventario mostraba una letra suelta como un símbolo japonés, mientras el resto de la palabra salía perfecto. Se descartaron cuatro teorías, todas medidas y todas falsas. La explicación resultó ser que el juego no convierte un carácter en un paso, sino en tres, y sólo conocíamos el último: hay una tabla de sustitución previa, guardada además como dos listas separadas que si las lees seguidas parecen basura, y precisamente por eso se había descartado tiempo atrás. Reconstruida la cadena completa, el arreglo fueron dos bytes. Lo cuento porque el patrón se repite mucho: cuando algo no encaja de ninguna manera, a veces no falta un dato sino un paso entero del proceso.
El abierto es más gordo. Al entrar en las tiendas aparecen restos gráficos por toda la pantalla. Mi primera hipótesis, y la de la IA, fue que nos pasábamos del límite de sprites por línea que tiene la consola. Al medirlo con calma resultó que no: las tiendas se quedan en once de dieciséis, ni se acercan. La causa real parece ser que los códigos que usamos para las minúsculas son los mismos que el juego usa para el silabario japonés, de modo que el texto que aún no hemos traducido se dibuja con la fuente latina y sale convertido en galimatías. Si es eso, se arreglará solo conforme avancemos con el guion, pero todavía está por confirmar.
Lo cuento porque es exactamente el tipo de cosa que me gustaría ver en este hilo. Un atasco bien explicado le ahorra semanas a otro que se encuentre lo mismo, y de vez en cuando alguien pasa por aquí y lo resuelve de un vistazo.
Animaos
Si tenéis un proyecto entre manos, terminado o a medias, traducción o parche, contadlo aquí con el detalle que os apetezca. Y si tenéis un juego atragantado desde hace años, uno que nunca llegó a España, o simplemente algo que siempre quisisteis arreglar de un juego que amáis, este es buen sitio para plantearlo aunque no sepáis por dónde empezar.
Así muchos aprenderemos y se harán mas traducciones
Sobre todo la parte técnica sobre ingeniería inversa con la IA. Muchos juegos japones no están traducidos por los problemas de compresión y el formato que tienen los caracteres japones. Bueno que te voy a contar a ti, ya vez los problemas que estas teniendo con el juego que estas haciendo ahora "Momotarou Katsugeki"
eknives
Nerevarine
2.408 mensajes desde jun 2017
Editado 3 veces. Última: 19/08/2026 - 09:22:04 por eknives.
Yo tengo una duda sobre como poner un watchpoint (o un breakpoint) en exodus, como interpretarlo, etc. Estoy haciendo una modificación a veces Claude me lo pide pero nunca estoy seguro de si lo hago bien. Si alguien la puede responder se agradece. Esto es muy importante para mí porque es algo de lo que no suele haber muchas explicaciones.
Respecto a lo que puedo aportar, no es mucho pero por experiencia propia, imagina que en tu modificación quieres poner un nuevo modo de juego, la lógica te dice vamos a ver si puedo poner esta función, todo bien hasta ahí, pero empiezas a desarrollarlo y cuando ves que avanza te dices que tienes que separar los modos de juego en un menú, pues siento decirte que separar los modos de juego cuando ya has alterado tanto la rom es problemático, de primeras empieza separando los modos de juego y sobre eso trabajas.
Otro detalle, también imagina que por el motivo que sea necesitas poner otro personaje, por muy parecido que sea a uno ya existente da muchos muchos menos problemas que tenga sus propios sprites, aunque vaya a ser un "cambio de paleta", el otro problema es que te quedes sin sitio pero si que puedes antes de empezar a añadir cosas pedirle a la IA que amplíe el tamaño de la rom para tener más espacio disponible, hazlo si los límites del hardware lo permiten y quieres meter más sprites.
Estoy modificando un juego de Mega Drive, espero que esos mini consejos basados en la experiencia ayuden.
wah_wah_69
(o_o)
8.586 mensajes desde dic 2003
Editado 1 vez. Última: 19/08/2026 - 10:01:48 por wah_wah_69.
eknives escribió:Yo tengo una duda sobre como poner un watchpoint (o un breakpoint) en exodus, como interpretarlo, etc. Estoy haciendo una modificación a veces Claude me lo pide pero nunca estoy seguro de si lo hago bien. Si alguien la puede responder se agradece. Esto es muy importante para mí porque es algo de lo que no suele haber muchas explicaciones.
Respecto a lo que puedo aportar, no es mucho pero por experiencia propia, imagina que en tu modificación quieres poner un nuevo modo de juego, la lógica te dice vamos a ver si puedo poner esta función, todo bien hasta ahí, pero empiezas a desarrollarlo y cuando ves que avanza te dices que tienes que separar los modos de juego en un menú, pues siento decirte que separar los modos de juego cuando ya has alterado tanto la rom es problemático, de primeras empieza separando los modos de juego y sobre eso trabajas.
Otro detalle, también imagina que por el motivo que sea necesitas poner otro personaje, por muy parecido que sea a uno ya existente da muchos muchos menos problemas que tenga sus propios sprites, aunque vaya a ser un "cambio de paleta", el otro problema es que te quedes sin sitio pero si que puedes antes de empezar a añadir cosas pedirle a la IA que amplíe el tamaño de la rom para tener más espacio disponible, hazlo si los límites del hardware lo permiten y quieres meter más sprites.
Estoy modificando un juego de Mega Drive, espero que esos mini consejos basados en la experiencia ayuden.
Yo no la he probado, pero según veo tiene la herramienta set_breakpoint y debería utilizarla el propio claude para añadir lo que necesite.
Si lo quieres de forma manual, que tp está mal para ir aprendiendo:
*Edit, abriendo exodus, de forma manual*
Pero no he visto que tenga la opción de añadir breakpoint desde la call stack u otros puntos del emulador, debería tenerlo, tampoco he mirado muy a fondo.
eknives escribió:Otro detalle: también imagina que, por el motivo que sea, necesitas poner otro personaje. Por muy parecido que sea a uno ya existente, da muchos menos problemas que tenga sus propios sprites, aunque vaya a ser simplemente un "cambio de paleta". El otro problema es que te quedes sin espacio, pero antes de empezar a añadir cosas puedes pedirle a la IA que amplíe el tamaño de la ROM para disponer de más espacio, siempre que los límites del hardware y la arquitectura que uses lo permitan. Estoy modificando un juego de Mega Drive, espero que esos pequeños consejos basados en la experiencia ayuden.
Aquí ya depende de si te basta con mover o editar datos, reutilizar zonas libres de la ROM, que suelen ser bastante escasas, o pasar a un esquema de bank-switching, como hacía Super Street Fighter II.
El límite clásico de una ROM de Mega Drive no se debe exactamente a que el Motorola 68000 solo pueda direccionar 4 MB. El 68000 dispone de un bus de direcciones de 24 bits, es decir, puede direccionar 16 MB de espacio de memoria. Lo que ocurre es que, en la arquitectura normal de la Mega Drive, el espacio asignado directamente al cartucho es
$000000-$3FFFFF
, es decir, 4 MB (32 Mbit). ([Plutiedev][1])
Para superar ese límite se puede utilizar bank-switching o mapeo de bancos. La idea es bastante sencilla: la ROM física puede ser mayor de 4 MB, pero la consola solo ve simultáneamente una ventana de 4 MB. Esa ventana se divide en bloques de 512 KB, y los bloques que se muestran en esas ventanas se pueden cambiar mediante registros del mapper. ([Plutiedev][1])
¿Cómo funciona el Bankswitching en la Mega Drive?
El mapper estándar de Sega es conocido habitualmente como Sega Mapper o SSF2 Mapper, porque Super Street Fighter II fue el único juego oficial que utilizó este sistema para acceder a una ROM superior a los 4 MB. Otros proyectos y dispositivos utilizan variantes o implementaciones compatibles. ([Plutiedev][1])
[*] Páginas y bancos: la ROM física se divide en páginas de 512 KB. Al mismo tiempo, el espacio visible del cartucho se divide en ocho bancos de 512 KB, formando los 4 MB que puede ver directamente la CPU. ([Plutiedev][1])
[*] Primer banco fijo: la zona
$000000-$07FFFF
permanece apuntando a la primera página de la ROM. De esta forma, el código de arranque y los vectores de interrupción siguen siempre accesibles. ([Plutiedev][1])
[*] Bancos conmutables: las otras siete ventanas, desde
$080000-$0FFFFF
hasta
$380000-$3FFFFF
, pueden apuntar a distintas páginas de la ROM mediante los registros del mapper. ([Plutiedev][1])
tiene funciones relacionadas con el control de SRAM, por lo que no debe contarse como un octavo banco de ROM conmutable. ([manualzz.com][2])
Ejemplo de código en ensamblador 68k:
Si el juego mide 5 MB, la página 8 empieza en el offset
$400000
de la ROM física. Esa zona queda fuera del espacio lineal normal de 4 MB, pero podemos hacer que aparezca, por ejemplo, en la ventana
$300000-$37FFFF
:
MapperBank6: equ $A130FD ; Banco $300000-$37FFFF
move.b #8, (MapperBank6) ; Mostrar la página 8 en esa ventana
; A partir de aquí, una lectura de $300000 ; accede a los datos de la página 8 de la ROM.
La clave está en que
$300000
sigue siendo una dirección dentro de los 4 MB visibles para la consola. Lo que ha cambiado es qué parte de la ROM física se encuentra detrás de esa ventana. ([Plutiedev][1])
Pasos para expandir un juego normal a Bankswitching
Convertir una ROM convencional de 2 o 4 MB para utilizar bank-switching no consiste simplemente en aumentar el tamaño del archivo. Hay que adaptar el código que accede a los datos que se van a colocar fuera de la zona fija.
Preparar la ROM para el mapper: En determinados emuladores y flashcarts es necesario indicar en la cabecera que la ROM utiliza el mapper de Sega. Plutiedev documenta el cambio del campo de sistema situado en
$000100
a
SEGA SSF
, rellenando con espacios cuando sea necesario. Esto permite que dispositivos y emuladores compatibles activen el mapper. Algunos emuladores pueden autodetectarlo al detectar accesos a los registros del mapper. ([Plutiedev][1])
Expandir el archivo físico: Hay que aumentar realmente el tamaño de la ROM, por ejemplo, de 4 MB a 8 MB, 10 MB, etc. El tamaño máximo dependerá del mapper y del hardware utilizado.
Relocalizar los assets grandes: Los gráficos, muestras de sonido, mapas u otros datos pesados pueden moverse a páginas altas de la ROM física.
Por ejemplo, un bloque de 512 KB colocado en
$400000
pertenece a la página 8. Para acceder a él desde el 68000 habrá que mapear esa página en una de las ventanas conmutables y acceder a ella mediante la dirección correspondiente dentro de esa ventana.
Actualizar los punteros y rutinas de acceso: Cualquier código que acceda a un recurso que hayas movido debe tener en cuenta que su dirección física ya no es directamente accesible. Normalmente necesitas seleccionar primero el banco correspondiente y después acceder al recurso mediante la ventana donde lo hayas mapeado.
Oportunidades y problemas técnicos
Más espacio para assets: Puedes añadir más gráficos, animaciones, mapas, música o muestras de sonido sin intentar encajarlo todo dentro de los 4 MB visibles de forma lineal.
Menos necesidad de reutilizar espacio: En un hack grande, disponer de páginas adicionales puede ser mucho más cómodo que intentar exprimir hasta el último hueco libre de la ROM original.
Gestión de bancos: El coste real está en que el programa debe saber qué banco está actualmente mapeado. Cambiar el mapper demasiado a menudo puede complicar el código y añadir sobrecarga, aunque el problema depende mucho de cómo esté diseñado el acceso a los datos.
Interrupciones y código: Aquí hay que tener especial cuidado. Si una rutina cambia el contenido de una ventana y después una interrupción intenta ejecutar código o leer datos que dependían de la configuración anterior, puedes terminar accediendo a otra página distinta de la esperada.
Por eso conviene mantener el código crítico, las tablas necesarias y las rutinas de interrupción en zonas que permanezcan siempre accesibles, o controlar cuidadosamente cuándo se cambia cada banco.
Código y direcciones: No basta con convertir una dirección física de la ROM en una dirección de CPU. Una vez que un recurso está en una página conmutable, hay que mapear esa página antes de utilizarlo y asegurarse de que el código no se queda ejecutándose desde una ventana que acabas de cambiar.
¿Y merece la pena para un hack?
Para un hack pequeño, normalmente es más sencillo aprovechar primero el espacio libre existente, reorganizar datos o comprimir mejor los assets.
Cuando empiezas a añadir personajes completos, más animaciones, nuevas fases, música, voces o cantidades importantes de gráficos, el bank-switching puede convertirse en una solución mucho más limpia que intentar meterlo todo a martillazos dentro de los 4 MB originales.
Eso sí: ampliar la ROM no significa automáticamente que el juego pueda utilizar el espacio adicional. Hay que modificar el código para que sepa dónde están esos datos y cómo acceder a ellos.
Es probablemente la referencia más práctica para implementar el Sega Mapper en un proyecto moderno. Documenta el sistema de páginas de 512 KB, los siete registros de bancos conmutables y el uso de
SEGA SSF
en la cabecera para plataformas compatibles. ([Plutiedev][1])
Hay bastante documentación y discusión técnica sobre el SSF2 mapper, el mapa de memoria y sus implicaciones con otros dispositivos. En particular, se explica que el sistema dispone de siete bancos de ROM conmutables de 512 KB más el primer banco fijo, y que los valores de los registros permiten seleccionar diferentes páginas de la ROM. ([gendev.spritesmind.net][3])
Documentación técnica de Sega: También existe documentación de hardware de Sega que describe la división del espacio de cartucho en bancos de 512 KB y los registros de selección de banco. ([manualzz.com][2])
Así que sí: se puede ampliar una ROM de Mega Drive más allá de los 4 MB, pero no consiste simplemente en hacer el archivo más grande. Hay que utilizar un mapper compatible y adaptar el programa para trabajar con ventanas de memoria conmutables.
@wah_wah_69 tiene buena pinta el debugging de Exodus, no lo conocia. Yo suelo usar el Gens_KMod
@psicopompo Si no me equivoco tu usas el Retroarch con el core genesis_plus_gx_libretro. ¿Cierto? ¿Como pones el modo debugging o es un core diferente modificado para el debugging?
wah_wah_69
(o_o)
8.586 mensajes desde dic 2003
Editado 1 vez. Última: 19/08/2026 - 14:21:45 por wah_wah_69.
psicopompo escribió:@wah_wah_69 ¿Qué tal ese Exodus? Yo es que uso macOS y ni lo conocía.
DeVlL escribió: @wah_wah_69 tiene buena pinta el debugging de Exodus, no lo conocia. Yo suelo usar el Gens_KMod
Exodus desde hace años es el emulador más recomendado para romhacking de megadrive, yo lo estuve probando hace un tiempo (antes de empezar a usar LLM), para intentar hacer un hack de soporte de 6 botones para Alien soldier, encontré la rutina de manejo de entrada estuve tonteando un poco y no lo logré terminar.
Al año o meses de que me olvidara de eso sacaron este parche:
Recuerdo que usé un plugin para ghidra para hacer el desemsamblado, tampoco llegué a profundizar mucho, la verdad.
La verdad que para meterle mano al Shadowrun igual debería haber añadido soporte de MegaCD a Exodus (que ojo igual en el foro o repo oficial hay plugins para eso, tp me he puesto a investigar). Me puse con el genesis plus por tenemos más mano y tb con la idea de que la mayoría de la gente que luego juegue al hack posiblemente lo haga con él.
psicopompo
MegaAdicto!!!
1.784 mensajes desde abr 2017
Editado 1 vez. Última: 19/08/2026 - 14:25:28 por psicopompo.
@DeVlL La verdad es que con el Nekketsu Soccer MD no necesité breakpoints ni nada, pero es cierto que el core de Retroarch en ese aspecto va bastante cojo. Tendré que buscarme una alternativa cuando retome el Lord Monarch. Para el Momotaro Katsugeki uso el Messen CE, que armado hasta las cejas. Con él puedo hacer breakpoints, volcados, tiene Sprite Viewer, Tilemap Viewer, Memory Viewer y un montón de cosas más, pero no emula Mega Drive, y eso que emula un montón de consolas.
@wah_wah_69 Pues no tenía ni idea, pero es que llevo sin tocar Windows desde hace más de 20 años. Sólo uso macOS y Linux. Además llevo en esto del romhacking menos de un mes. 😄 Gracias por la información.