Manual Completo de Hex Editing para ROMs de SNES
Fundamentos de Hex Editing
El hex editing permite modificar directamente los bytes de la ROM sin necesidad de herramientas especializadas.
Estructura de una ROM en Hex Editor
00000000: 4E 45 53 1A 02 01 01 00
00000008: 00 00 00 00 00 00 00 00
00000010: 78 D8 A9 00 8D 00 20 8D
Conceptos Clave
- Byte: Unidad básica (2 dígitos hexadecimales, 0-FF)
- Offset: Posición en la ROM (hexadecimal)
- Little Endian: Bytes menos significativos primero
Técnicas de Búsqueda en Hexadecimal
1. Búsqueda de Valores Conocidos
Buscar: 03
00A100: 03
02B300: 03
2. Búsqueda de Patrones
Patrón común:
38
E9 01
90 xx
Modificaciones Comunes en Hex
1. Cambiar Vidas Iniciales
00A100: 03 → Cambiar a 05
00A100: 63
2. Modificar Velocidad
01B200: 02 → Cambiar a 04
01B200: EA
01B201: A9 04
Tablas de Referencia
Opcodes Comunes
Hex |
ASM |
Descripción |
A9 |
LDA # |
Cargar valor inmediato |
8D |
STA abs |
Almacenar en dirección |
EA |
NOP |
No operation |
4C |
JMP |
Salto absoluto |
Valores Comunes
Valor |
Significado |
00 |
Cero, valor nulo |
FF |
Máximo valor, -1 |
80 |
128, o bit alto activo |
Técnicas Avanzadas de Hex Editing
1. Crear Saltos (JMP)
008000: 4C 00 B0
2. Parchear Comparaciones
00A100: F0 10 → D0 10
3. NOPear Instrucciones
00B200: EA EA EA
00B200: CD 00 04
Ejemplos Específicos por Juego
Super Mario World
00EE37: 05 → 63
00F5F2: F0 09 → 80 09
The Legend of Zelda: A Link to the Past
01D609: 10 → FF
078054: 3A → EA
Herramientas Especializadas
Herramienta |
Uso |
HxD (Windows) |
Hex editor avanzado |
Hex Fiend (Mac) |
Editor hexadecimal rápido |
WindHex |
Especializado para traducciones |
Hex Workshop |
Con soporte para estructuras |
Precauciones y Buenas Prácticas
- Siempre hacer backup de la ROM original
- Documentar todos los cambios realizados
- Probar cada modificación individualmente
- Usar parches IPS/BPS en lugar de distribuir ROMs modificadas