Skip to content

Releases: arcanbytes/TraysiaROMFix

TraysiaROMFix v2.0.0

Choose a tag to compare

@arcanbytes arcanbytes released this 04 Jul 10:55

Segunda versión mayor de TraysiaROMFix. Tras una investigación en profundidad —con desensamblado 68000 completo del sistema de guardado y auditoría de todas las diferencias con la versión USA— esta release sustituye el parche preliminar de v1.0.0 por el nuevo parche Anticrash SRAM, una mitigación más segura del posible origen de la corrupción de partidas en la edición física de Shinyuden.

🔬 ¿Qué se descubrió?

  • El sistema de guardado real del juego usa firma triplicada, 4 slots con 3 copias redundantes y voto por mayoría — y en la ROM de Shinyuden es idéntico byte a byte al de la versión USA.
  • El riesgo detectado: 16 referencias al monitor de depuración de la era de desarrollo ($100000) fueron reubicadas a $200000 al expandir la ROM a 2MB — y en el cartucho físico esa dirección es la ventana de la SRAM donde viven las partidas. Cualquier excepción de CPU o puntero de texto fuera de rango hace que la consola ejecute el contenido de la SRAM como código, con riesgo de corromperla.

✅ ¿Qué hace el parche? (34 bytes en 15 puntos)

  • Los 14 vectores de excepción pasan de jmp $200000 a un reinicio limpio por el bootstrap oficial de Sega, con la SRAM intacta.
  • El guard del streamer de texto pasa a simular un fin de cadena en lugar de saltar a la SRAM.
  • No se modifica ninguna otra lógica del juego.

📦 Cómo aplicarlo

Aplica Traysia_Shinyuden_anticrash_SRAM_patch.ips (adjunto) sobre tu ROM con Lunar IPS o similar, o usa python tools/fix_rom_traysia_shinyuden_anticrash.py.

Archivo MD5
Traysia (W).bin original db1529b9d6383bdb5b2d6c969cef6022
ROM parcheada 476b5b7bf9aa02dc9c2490cd2150774b

⚠️ Estado

Verificado a nivel de desensamblado, pendiente de validación empírica. Si quieres ayudar (depuración en emulador, pruebas en hardware real, o aportando un .srm corrupto sin manipular), consulta el plan de validación del README.

🧰 Otros cambios desde v1.0.0

  • El parche y las herramientas de la v1.0.0 quedan retirados (disponibles en el historial de git).
  • Revisión y corrección de bugs en todas las herramientas del repositorio.
  • Repositorio reorganizado: tools/ (parche y análisis, estable) y translation-tools/ (traducción, experimental).
  • Análisis técnico completo del sistema de guardado documentado en el README.

TraysiaROMFix v1.0.0

Choose a tag to compare

@arcanbytes arcanbytes released this 24 Jun 11:40

⚠️ RELEASE OBSOLETA. El parche de esta versión fue retirado tras una investigación más profunda. Usa TraysiaROMFix v2.0.0, que incluye el parche Anticrash SRAM actual.

Esta es la primera versión estable del repositorio TraysiaROMFix, un proyecto técnico de análisis y reparación de la edición física de Traysia distribuida por Shinyuden para Mega Drive/Genesis.

¿Qué incluye este repositorio?

  • Scripts en Python para:

    • Analizar diferencias entre versiones de ROM.
    • Comparar archivos de guardado .srm.
    • Generar parches IPS a partir de ROMs corregidas.
  • Herramientas de diagnóstico y exploración de slots de guardado.

  • Documentación detallada sobre el bug reportado, su origen y solución propuesta.

Problema detectado

La versión de Shinyuden hereda el sistema de guardado de la versión USA, pero en ciertos entornos (especialmente en hardware con memoria SRAM de 64 KB), puede generar archivos .srm anómalos o corromper datos de guardado.

Solución

Se ha implementado un parche (fix_rom_traysia_shinyuden_nop.py) que desactiva una rutina sospechosa de escritura extra en memoria. La ROM resultante ha sido verificada en hardware real y emuladores, produciendo archivos .srm idénticos a los de la versión USA original.

Instrucciones rápidas

  1. Asegúrate de tener una copia limpia de la ROM física de Traysia (Shinyuden) en la carpeta roms, "(Traysia (W).bin)". Puedes usar un programador o grabador USB para placas tipo flashkit (ej. las distribuidas por Aliexpress) para dumpear tu juego original. MD5: 75d911e5dc04c429c2f6d64332021b2b

  2. Ejecuta el parcheador desde la carpeta tools:
    python tools/fix_rom_traysia_shinyuden_nop.py

  3. La ROM parcheada aparecerá en la carpeta roms como "Traysia (W)_patched_nop.bin"

  4. Flashea la ROM corregida de vuelta al cartucho físico usando tu programador flashkit.


Esta release no incluye ROMs ni binarios, solo los scripts y documentación necesarios para que el usuario genere el parche por su cuenta.