GoldenEye 007 acaba de alcanzar una decompilación del 100%, y eso cambia lo que la gente puede hacer con el juego: modificaciones que eran imposibles en un emulador, puertos PC nativos con un soporte adecuado de pantalla panorámica y aumentos de velocidad de fotogramas, e implementaciones de referencia para futuros proyectos de ingeniería inversa de N64. Las herramientas que lo hicieron posible son de código abierto, y si alguna vez quisiste ver dentro de un juego de N64, usarías las mismas.
Revisamos 8 aplicaciones de escritorio que hacen posibles los flujos de trabajo de decompilación y portabilidad de N64 hoy. Cada opción es gratuita, de código abierto y se mantiene activamente en GitHub.
Qué buscar en una aplicación de decompilación de N64
La ingeniería inversa de N64 es inusual porque la consola se dirige a MIPS III, y los compiladores de la época (IDO, EGCS) dejaron huellas dactilares específicas. Las herramientas modernas lo tienen en cuenta.
- Soporte MIPS III. Los desensambladores x86 o ARM solos no son suficientes.
- Maneja idiomas de compilador conocidos. IDO y EGCS producen una salida distintiva que la herramienta necesita reconocer.
- Gestión de símbolos y división. Un proyecto de trabajo requiere extracción de activos, no solo decompilación de código.
- Canalización de prueba de coincidencia. Cada función necesita una verificación de coincidencia byte a byte contra la ROM.
- Comunidad alrededor de la herramienta. La descomposición de N64 es lo suficientemente pequeña como para que una herramienta de mantenedor único que se queda obsoleta importe.
Tabla de comparación rápida
| Aplicación | Mejor para | Plataformas | Plan gratuito | Precio inicial/mes | Calificación |
|---|---|---|---|---|---|
| N64Recomp | Recompilación estática a binario nativo | Windows, Linux, macOS | Completamente gratis | Gratis | Comunidad en rápido crecimiento |
| splat | División binaria y extracción de activos | Windows, Linux, macOS | Completamente gratis | Gratis | Estándar en decompilaciones N64 modernas |
| decomp.me | Patio de pruebas de prueba de coincidencia basado en web | Web | Completamente gratis | Gratis | Plataforma comunitaria ampliamente utilizada |
| mips_to_c | Conversión de ensamblador a C | Windows, Linux, macOS | Completamente gratis | Gratis | Herramienta de decompilación de larga data |
| IDO recomp | Recompilación del compilador IDO original | Windows, Linux, macOS | Completamente gratis | Gratis | Habilita flujos de trabajo orientados a la coincidencia primero |
| ares | Emulador N64 preciso en ciclos para pruebas | Windows, macOS, Linux | Completamente gratis | Gratis | Emulador de alta precisión |
| GloverN64 | Proyecto de referencia de puerto N64 | Windows, macOS, Linux | Completamente gratis | Gratis | Proyecto comunitario |
| PermuterPy | Búsqueda de coincidencia automatizada mediante mutación | Windows, Linux, macOS | Completamente gratis | Gratis | Estándar en decompilaciones modernas |
Las aplicaciones
1. N64Recomp – Mejor para recompilación estática a binario nativo
N64Recomp toma el código MIPS de una ROM N64 y lo reescribe en LLVM IR, que luego se compila en un binario x86 o ARM nativo. Eso es lo que permite que proyectos como Zelda 64 Recompiled y el puerto reciente de GoldenEye funcionen a cientos de fotogramas por segundo con renderizado de alta resolución, sin emulador necesario.
Donde falla: Requiere un juego completamente decompilado para producir un puerto bien integrado. La recompilación ROM-en-salida recta funciona para muchos juegos pero no para todos.
Precio:
- Gratis: Todo
- Pagado: No aplica
Plataformas: Windows, Linux, macOS
Descargar: GitHub
Conclusión: La herramienta responsable de la actual ola de puertos N64 nativos.
2. splat – Mejor para división binaria y extracción de activos
splat toma una ROM N64 y produce el diseño de proyecto estructurado que usa cada decompilación moderna: archivos de ensamblador divididos por símbolo, activos extraídos (texturas, música, datos de nivel) y un sistema de construcción que vuelve a ensamblar todo en una ROM coincidente. Todo proyecto de decompilación N64 serio comienza aquí.
Donde falla: Requiere configuración por juego; espera pasar la primera semana creando el archivo de división.
Precio:
- Gratis: Todo
- Pagado: No aplica
Plataformas: Windows, Linux, macOS (Python)
Descargar: GitHub
Conclusión: La primera herramienta que instalas cuando comienzas un proyecto de decompilación N64.
3. decomp.me – Mejor para probar una coincidencia de función C candidata
decomp.me es un IDE basado en web para pruebas de coincidencia de decompilación. Pega una función de ensamblador objetivo, escribe C candidato, presiona compilar y ve al instante si el compilador produce una salida idéntica en bytes. Es compatible con objetivos N64, GameCube, PS2 y DS, y el flujo de trabajo de bloc de notas compartido hace que la colaboración sea sin dolor.
Donde falla: Solo web; sin modo sin conexión. Limitado por velocidad bajo carga pesada.
Precio:
- Gratis: Todo
- Pagado: No aplica
Plataformas: Web (basado en navegador)
Descargar: Sitio oficial · GitHub
Conclusión: La herramienta más utilizada por colaboradores activos de decompilación N64.
4. mips_to_c – Mejor para convertir ensamblador MIPS en un borrador C
mips_to_c produce un borrador C legible de una función MIPS. No es un generador de coincidencias; la salida es un punto de partida que luego editas y refinas hasta que decomp.me informa de una coincidencia. Ahorra horas por función en la pasada inicial.
Donde falla: La salida es un borrador. La compilación directa casi nunca coincide sin edición humana.
Precio:
- Gratis: Todo
- Pagado: No aplica
Plataformas: Windows, Linux, macOS (Python)
Descargar: GitHub
Conclusión: Reduce el tiempo de pasada inicial en cualquier función que sea más que trivial.
5. IDO recomp – Mejor para reproducir el compilador N64 original
IDO recomp es una recompilación estática del compilador IDO de SGI, el que Nintendo usó para la mayoría de sus títulos N64 de primera parte. Ejecutar el compilador original en sistemas operativos modernos es lo que hace posible la coincidencia perfecta de bytes; sin él, el decompilador solo produciría aproximaciones del original.
Donde falla: Solo es útil si el juego objetivo fue compilado con IDO. Los juegos GCC/EGCS (salida de Rare, incluido GoldenEye) necesitan diferentes compilaciones de compilador.
Precio:
- Gratis: Todo
- Pagado: No aplica
Plataformas: Windows, Linux, macOS
Descargar: GitHub
Conclusión: No es un decompilador en sí, sino la pieza que hace determinista la decompilación.
6. ares – Mejor para verificación N64 precisa en ciclos
ares es un emulador multisistema con emulación N64 precisa en ciclos. Para el trabajo de decompilación, esa precisión importa: cuando una reconstrucción candidata produce una ROM que se ejecuta en ares idénticamente al original, tienes confianza real en la coincidencia.
Donde falla: Requisitos de CPU más altos que emuladores casuales como Project64. No es la opción para juego puro.
Precio:
- Gratis: Todo
- Pagado: No aplica
Plataformas: Windows, macOS, Linux
Descargar: Sitio oficial · GitHub
Conclusión: El emulador de calidad de verificación para probar reconstrucciones.
7. GloverN64 – Mejor proyecto de ejemplo para aprender
GloverN64 es uno de la creciente biblioteca de proyectos de decompilación N64 impulsados por la comunidad, y su repositorio está lo suficientemente bien organizado como para servir como referencia de cómo splat, mips_to_c e IDO recomp encajan juntos en una compilación real. Leer el archivo de división de otro es la forma más rápida de entender el tuyo.
Donde falla: En proceso; no todas las funciones están decompiladas.
Precio:
- Gratis: Todo
- Pagado: No aplica
Plataformas: Windows, macOS, Linux
Descargar: GitHub
Conclusión: La mejor referencia para un principiante que configura un primer proyecto de decompilación N64.
8. PermuterPy – Mejor para automatizar la búsqueda de coincidencias
PermuterPy muta código C candidato y recompila miles de veces para encontrar variantes que produzcan una salida idéntica en bytes. Cuando decomp.me dice “cercano pero no hay coincidencia”, PermuterPy es lo que encuentra el orden de enunciado exacto o el paréntesis que el compilador quiere.
Donde falla: Computacionalmente caro; una ejecución del permutador puede consumir la CPU de una laptop durante horas.
Precio:
- Gratis: Todo
- Pagado: No aplica
Plataformas: Windows, Linux, macOS (Python)
Descargar: GitHub
Conclusión: La herramienta de último recurso en una función obstinada, y la razón por la cual los porcentajes de finalización continúan aumentando.
Cómo elegir la correcta
- Si el objetivo es un puerto PC nativo desde una ROM existente: N64Recomp.
- Si estás iniciando un proyecto de decompilación nuevo: splat, luego IDO recomp (o el compilador apropiado), luego decomp.me y mips_to_c para el trabajo diario.
- Si estás tratando de emparejar una única función: decomp.me para iteración, PermuterPy cuando una coincidencia está cerca.
- Si necesitas verificar que una reconstrucción coincida perfectamente en bytes contra un N64 real: ares para la verificación en tiempo de ejecución.
- Si estás aprendiendo el canal desde cero: lee el repositorio de GloverN64 antes de tocar tu propio archivo de división.
- No saltes splat. Editar manualmente un volcado de ensamblador monolítico es una batalla perdida a escala N64.
Preguntas frecuentes
¿Qué significa que un juego esté “100% decompilado”? Cada función en el binario del juego ha sido reescrita en C de manera que la salida recompilada coincida con la ROM original byte a byte. A partir de ahí, el código base se puede modificar libremente.
¿Es legal decompilador una ROM N64? La ingeniería inversa para interoperabilidad generalmente está protegida en muchas jurisdicciones. Distribuir el binario resultante (que aún contiene los activos del juego original) generalmente no. El trato legal varía según el país; los proyectos de decompilación en sí generalmente envían código solo, esperando que el usuario proporcione su propia ROM.
¿Cuánto tiempo lleva un proyecto de decompilación N64? Esfuerzos de varios años por equipos de voluntarios. Zelda: Ocarina of Time tomó años; el proyecto GoldenEye 007 se ejecutó durante aproximadamente seis años.
¿Qué es decomp.me y por qué es tan central? decomp.me es un IDE web que compila código C candidato e informa si la salida coincide exactamente con una función de ensamblador objetivo. Reemplazó muchos scripts de bash ad-hoc e hizo que la colaboración en pruebas de coincidencia sea fácil.
¿Puedo ejecutar el juego decompilado en mi PC sin emulador? Sí, una vez que se completa una decompilación y se construye un puerto con N64Recomp o un marco similar. Zelda 64 Recompiled y el puerto de GoldenEye son los ejemplos actuales.
¿Necesito saber ensamblador MIPS para contribuir? Ayuda enormemente. mips_to_c y decomp.me bajan la barra, pero incluso una comprensión básica de las convenciones de registro y los patrones de llamada es necesaria para progresar en una función real.