Saltar al contenido
PORTSNATIVE.
InicioCatálogo
Juegos WebEmuladoresHerramientasNovedades
PORTSNATIVE.

Un catálogo para descubrir ports y proyectos relacionados. Enlazamos a las fuentes oficiales y no alojamos archivos de los juegos originales.

ExplorarCatálogoMi lista
InformaciónNosotrosProponer un portSoporteApoyo y donacionesAviso legal
© 2026 PortsNative
Volver al catálogo
Hybrid Heaven
PORTSNATIVE

Hybrid Heaven

PORT NATIVOROL / RPGWINDOWSLINUXMACOSALPHA

Hybrid Heaven

TecnologíaPort Nativo C/C++ (Reimplementación de Motor)

Disponible paraWindows, Linux, macOS

Ver proyecto oficial

Sobre el proyecto

Hybrid Heaven es un videojuego desarrollado por Konami Computer Entertainment Osaka y lanzado para la Nintendo 64 en 1999. El juego es una notable mezcla de diferentes géneros siendo sus principales dos géneros como el rol y los juegos de aventura de acción. Los diseñadores tenían la esperanza de crear una nueva mecánica de un sistema de batallas RPG. Es también uno de los pocos títulos de Nintendo 64 que tiene soporte en formato widescreen.

4 versiones de Hybrid Heaven

Estás viendo: Hybrid Heaven

Hybrid Heavengithub.com/southcitycapture/hybridheaven-decomp
Windows
Linux
macOS
Actual
Hybrid Heaven (PC, danielgomesvieira2000)github.com/danielgomesvieira2000/hybrid-heaven-recomp
Windows
›
Hybrid Heaven (PC)github.com/hunkstalker/hybrid-heaven-recomp
Windows
Linux
›
Hybrid Heaven Recompiledgithub.com/ogdanimal/HybridHeaven-Recomp
Android
›

Información oficial del proyecto

README original del autor (en inglés)Abrir en GitHub ↗

Hybrid Heaven (N64) decompilation

A matching decompilation of Hybrid Heaven (Konami, 1999, USA) for the Nintendo 64: C source that compiles back to a byte-identical ROM. It is also a research project on AI-driven decompilation: how far small and large models plus good tooling get on real work, and what it costs. Every function is checked by the compiler, byte for byte.

decomp.dev progress · Live progress: decomp.dev · ByteMatch

No game data is in this repository. You need your own legally obtained ROM; disassembly is generated locally.

Where it stands

Matched
Code78.71%2,224,916 of 2,826,840 bytes
Functions96.2%15,284 of 15,891
Data94.32%1,005,404 of 1,065,936 bytes
Fully linked12.96%174 of 538 source files complete

Updated 2026-11-05 09:43 UTC by the publishing loop.

Progress over time, with the Christmas forecast

Fully linked means a whole source file is C with nothing left in assembly, linked as a normal object. It trails the code number because one unmatched function holds back its whole file.

When will it be done?

Forecast as of 2026-11-03, re-estimated as the rate changes:

MilestoneEstimateWhy
85% of codelate NovemberThe small and medium functions left are mostly within reach of the current lanes.
90% of codearound Christmas 2026 (forecast range 87-95%)Needs a good share of the big functions; the rate falls as the easier functions run out.
100% of codestretch goal for Christmas; more likely Q1 2027Every big function, including five of 8 KB or more, and the hardest register-allocation cases.

Data and fully-linked progress follow the code: the remaining data sits in the same files as the unmatched functions.

The hard end is concentrated: functions of 2 KB or more hold about 41% of the bytes still to match, and our best method for them currently lands between 1 in 8 and 1 in 4 per pass. That is where most of the remaining effort goes.

What we've learned so far

  • Tooling matters as much as the model. The same model goes from 16% to 73% when the task is narrowed: the working code as a starting point, a note saying what to fix, and a check inside the real file.
  • Models complement each other. On the same 40 hard functions, Claude Opus matched 11 and the best GPT model 6, but all the models together matched 15: different models crack different functions.
  • Big functions want a team. An Opus "lead" that splits a function into regions and hands them to Sonnet helpers matched 5 of 22 big functions; Opus alone matched 2 of the same 22, at about the same cost.
  • More context is not always better. Adding recovered struct types to the prompt halved the hit rate (4 of 20 against 8 of 20 without them).
  • Read the compiler's own reasoning. IDO keeps its register-allocated intermediate code (cc -K). Our tracer reads it and tells a worker which variable ended up in the wrong register, and why.
  • Sister games pay off. Goemon's Great Adventure comes from the same studio (KCE Osaka) and shares the sound, heap and file-loading code. Its build showed the original compiler flag (-Wab,-r4300_mul) that we had been imitating with a post-processing tool; switching to it landed 50 floating-point functions at once.
  • Model-free tools multiply every match. Copying a match onto identical code elsewhere, and fitting matches into their files automatically, placed a large share of the functions in C without any model calls.
  • Small local models help at the edges. A quantized Qwen 3.8 Flash on one workstation GPU (RTX A4000) matched about 1 in 8 of the leftovers it was given, at no API cost.
  • Running a swarm is an operations problem too. Usage pacing across the week, failure recovery, integration checks and a privacy scan on every publish decided as much of the progress as model choice did.

Big functions: one lead, many helpers Head to head Same model, different framing Hit rate by lane

More: how it works · every batch's numbers · how the game is built

Tools we built

Everything is in tools/hh (decomp tools) and tools/swarm (running the AI workers). Each script's docstring explains it in full. The main ones:

AreaToolWhat it does
Choosing workpick.py, features.pyRank unmatched functions by expected matched bytes per unit of cost
similar.py, siblings.pyFind already-matched look-alikes to give a worker as examples, with their C mapped onto the target
shape_groups.pyGroups of identical unmatched functions: match one, and the rest follow
Helping a workerwall.py, diagnose.pyExplain, without a model, why an attempt does not match yet
regtrace.py, ucode.pyRegister tracer: read IDO's intermediate code and show which C value got which register, and why
regsweep.py, regsearch.pyTry meaning-preserving source changes one at a time (or as a beam search) and report what each does
regions.py, stitch.pyScore big functions region by region, and stitch the best region from each attempt into one candidate
protofix.pyRepair guessed declarations so workers aren't handed impossible prototypes
Matching without a modelpropagate.pyCopy a match onto identical code elsewhere, with byte verification
unify.py, reconcile.py, addrfix.pyRepair matches that fail only in their real file (declarations, addresses)
hidden_matches.pyFind saved attempts that already match in their file although their batch recorded a miss
Buildingsrcbuild.py, reconcile_frozen.pyAssemble source files from the registry of matches and verify every function in context
gen_rodata_splits.py, data_to_c.pyGive each file its own read-only data, and move initialized data from assembly into C
gen_libultra.py, idoflags.pyBuild the SDK library from source; keep the game's compiler flags in one place
The ROMlzkn.py, lzkn_enc.pyDecoder and byte-matching encoder for Konami's LZ compression
filetable.py, expand.py, pack.pyRead the game's file table, and unpack and repack the ROM
debug_strings.pyMine the leftover debug strings for source-file structure
Measuringprogress.py, ledger.pyThe objdiff progress report (code, data, fully linked) and one source of truth for the numbers
Running the swarmloop.pyAlways-on loop: pick, run workers, verify, integrate, propagate, rebuild, check the ROM, publish
weekly_cap.pyPace model usage over the week as a ramp, not a cliff
live.pyA live view of what every worker is doing

Our tools in other projects

The Nagano Winter Olympics '98 decomp (another Konami N64 game, matched to 100% in about nine days) names this repository as its closest studio and toolchain analogue. Its upstream research reviewed 13 of our tools and adapted ideas from several:

  • similar.py: token similarity, 3-gram prefiltering and sequence scoring, applied in its function-family finder.
  • propagate.py: copying proven source shapes, kept only behind independent byte verification.
  • protofix.py: prototype consistency as a register-allocation check.
  • features.py, pick.py: feature-based work ordering rather than size alone.
  • check_recompress.py: decode and re-encode identity as a test gate for compressed files.

Work from other teams we use

  • Goemon's Great Adventure decomp (CC0): the sister codebase. Its type definitions (adapted in include/gga/), names for 165 of our functions (as comments; our symbols are not renamed), C that matched 8 of our functions as templates, and the compiler flag above. Details in docs/CREDITS.md.
  • ultralib: the libultra 2.0J SDK sources we build the game's library from.
  • HybridHeaven-Decomp (CC0): our libultra names were cross-checked against it. Its companion HybridHeaven-Recomp is a separate static-recompilation port (Windows, Linux, Android) if you want to play the game natively.
  • The N64 decomp community's tools, listed under Credits.

Building

Linux (or WSL), Python 3.10+, git, curl, make, and MIPS binutils (binutils-mips-linux-gnu).

tools/setup.sh                                       # venv, splat, m2c, asm-processor, IDO, objdiff
cp /path/to/your/Hybrid\ Heaven\ \(USA\).z64 baserom/baserom.us.z64
. ./env.sh && make setup && make                     # regenerates asm/ locally, builds, checks the SHA-1
ROMSHA-1
Hybrid Heaven (USA) (NHVE, rev 0)16dbc21620b52deab5c5abf8a309ac60adfbee85

Contributing

Have your own Hybrid Heaven (USA) cartridge, a dumper and a Claude account? Run decomp workers on your own machine and send back matched C: see contrib/README.md. We assign functions in contrib/tasks.json and re-verify every submission against the real ROM build before merging it.

Research results

Per-batch numbers, generated from the run logs, are in RESULTS.md. Costs there are API-equivalent figures; the runs themselves used subscriptions (Claude Max, ChatGPT), free tiers and a local GPU.

Credits

Built on the work of the N64 decomp community: splat, spimdisasm, m2c, asm-processor, asm-differ, decomp-permuter, objdiff, decomp.dev, ByteMatch, ultralib and ido-static-recomp. Thanks also to the Goemon's Great Adventure decomp authors.

Hybrid Heaven is © Konami. This project is not affiliated with Konami or Nintendo. Original code in this repository is released under CC0 1.0.

Ver proyecto oficial
CALIFICACIÓN
—
Cargando votos…
Publicidad

FICHA DEL PROYECTO

Tipo de proyecto
PORT NATIVO
Género
Rol / RPG
Estado
alpha
Plataforma de origen
—
Tecnología
Port Nativo C/C++ (Reimplementación de Motor)
Versión
—
Actualización
—

Plataformas de destino 3

Windows
Linux
macOS
Ver en GitHub
Publicidad