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 ; Header "NES"
00000008: 00 00 00 00 00 00 00 00 ; Padding
00000010: 78 D8 A9 00 8D 00 20 8D ; Código de inicio
        

Conceptos Clave

Técnicas de Búsqueda en Hexadecimal

1. Búsqueda de Valores Conocidos

// Ejemplo: Buscar vidas iniciales (valor 3)
Buscar: 03

// Puede aparecer como:
00A100: 03 ; Vidas
02B300: 03 ; Otra instancia
        

2. Búsqueda de Patrones

// Ejemplo: Buscar rutina de daño
Patrón común: 
38 ; SEC (Set Carry)
E9 01 ; SBC #01 (Restar 1)
90 xx ; BCC (Branch if Carry Clear)
        

Modificaciones Comunes en Hex

1. Cambiar Vidas Iniciales

// Buscar valor actual (ej. 03)
00A100: 03 → Cambiar a 05

// Para hacerlo infinitas:
00A100: 63 ; Valor mayor al máximo permitido
        

2. Modificar Velocidad

// Buscar valores de velocidad (normalmente 01-08)
01B200: 02 → Cambiar a 04 ; Doble velocidad

// Para hacerlo variable:
01B200: EA ; NOP (No operation)
01B201: A9 04 ; LDA #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)

// Para saltar a $C0B000:
008000: 4C 00 B0 ; JMP $B000
// Nota: SNES usa bancos, formato completo sería $C0B000
        

2. Parchear Comparaciones

// Cambiar "BEQ $10" (F0 10) por "BNE $10" (D0 10)
00A100: F0 10D0 10
        

3. NOPear Instrucciones

// Para desactivar una comprobación (3 bytes):
00B200: EA EA EA ; 3 NOPs

// Ejemplo original:
00B200: CD 00 04 ; CMP $0400
        

Ejemplos Específicos por Juego

Super Mario World

// Vidas iniciales:
00EE37: 0563 ; Infinitas

// Invulnerabilidad:
00F5F2: F0 0980 09 ; BEQ → BRA
        

The Legend of Zelda: A Link to the Past

// Salud máxima:
01D609: 10FF

// Objetos infinitos:
078054: 3AEA ; DEC A → NOP
        

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