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
F-Zero GX (karamzov123)
PORTSNATIVE

F-Zero GX (karamzov123)

PORT NATIVOCARRERAS / VELOCIDADWINDOWSALPHA

F-Zero GX (karamzov123)

F-Zero GX

OrigenNintendo GameCube

TecnologíaDescompilación y Reconstrucción en C/C++

Disponible paraWindows

Ver proyecto oficial

Sobre el proyecto

F-Zero GX es un videojuego de carreras desarrollado por Amusement Vision y publicado por Nintendo para la consola GameCube en 2003. Funciona con una versión mejorada del motor utilizado en Super Monkey Ball. F-Zero AX, la contraparte arcade de GX, utiliza la placa del sistema arcade Triforce, concebida a partir de una alianza comercial entre Nintendo, Namco y Sega.

3 versiones de F-Zero GX

Estás viendo: F-Zero GX (karamzov123)

F-Zero GX (karamzov123)github.com/karamzov123/fzero-gx-decomp
Windows
Actual
F ZERO GLINUX (Mabec-games)github.com/Mabec-games/F-ZERO-GLINUX
Windows
Linux
›
F-Zero GX (rayanht)github.com/rayanht/fzgx
Windows
›

Información oficial del proyecto

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

F-Zero GX Build Status Code Progress Fuzzy Match DOL Progress RELs Progress Data Progress Discord Badge

<img src="https://decomp.dev/karamzov123/fzero-gx-decomp.svg?w=1024&h=320" width="1024" height="320" alt="Live progress treemap">

A work-in-progress matching decompilation of F-Zero GX for the Nintendo GameCube.

This repository does not contain any game assets or assembly whatsoever. An existing copy of the game is required.

Supported versions:

  • GFZE01: Rev 0 (USA) — primary
  • GFZP01: Rev 0 (PAL) — configuration scaffold only
  • GFZJ01: Rev 0 (JPN) — configuration scaffold only

What is being matched

The disc ships sixteen executables and this project rebuilds every one of them byte for byte:

TargetRole
sys/main.dolLoader and engine core: Dolphin SDK, MSL, MetroTRK, CRI ADX, AX
main.relAlmost half of all code: physics, racing, machines, AI, in-race logic. Not on the disc as a file: it is the encrypted, LZ-compressed archive files/enemy_line/line__.bin, which tools/prepare_orig.py decrypts and decompresses
files/fze.*.rel (14)Title, selection, customise, story, ranking, replay, memory card, movie and other screens
files/fze.sample.relThe stub that locates, decrypts and links main.rel

ninja ends with 16 files OK when every target hashes identically to the retail files.

Source is organised by recovered translation unit. main.rel embeds its original file names (camera.c, coli.c, car.c, driver.c, enemy_ctrl.c, ...), and the order of those strings in .data matches the order of the code that references them, so each function is placed under src/rel/main_rel/<file>/. Struct layouts for the most-referenced globals are recovered from every access in the disassembly and generated into include/rel/main_rel/globals.h, with every field offset proven under the original compiler.

How the matching is done

This project is an experiment in agent-driven matching. A matching decompilation has a perfect oracle: the object either assembles to the retail bytes or it does not. Most functions are therefore matched by many cheap language-model agents, one function each, iterating compile-and-diff through a small tool surface (tools/fzgx.py, exposed to agents as an MCP server) until objdiff reports 100% and the full link still hashes identical. Agents cannot run a shell, edit anything but their own unit, or hardcode an address; every accepted function is byte-verified before it is committed. Naming, types and translation-unit structure are separate passes with their own tooling, and the tree carries no assembly at all: unmatched code stays in decomp-toolkit's split objects until it is matched in C.

Because of this, contributions here are held to the artifact, not the author: a change is acceptable when it matches, passes lint, and reads like code a person would write. See Contributing.

Dependencies

Windows

On Windows, it's highly recommended to use native tooling. WSL or msys2 are not required.
When running under WSL, objdiff is unable to get filesystem notifications for automatic rebuilds.

  • Install Python and add it to %PATH%.
    • Also available from the Windows Store.
  • Download ninja and add it to %PATH%.
    • Quick install via pip: pip install ninja

macOS

  • Install ninja:

    brew install ninja
    

wibo, a minimal 32-bit Windows binary wrapper, will be automatically downloaded and used (under Rosetta 2 on Apple Silicon).

Linux

  • Install ninja.

wibo, a minimal 32-bit Windows binary wrapper, will be automatically downloaded and used.

All platforms

  • Install uv for the project tooling (tools/).

Building

  • Clone the repository:

    git clone https://github.com/karamzov123/fzero-gx-decomp.git
    
  • Copy your game's disc image to orig/ (not orig/GFZE01/).

    • Supported formats: ISO (GCM), RVZ, WIA, WBFS, CISO, NFS, GCZ, TGC
    • dtk disc verify should report a Redump match.
  • Extract the targets and derive main.rel:

    uv run tools/prepare_orig.py --version GFZE01
    

    This pulls the sixteen targets out of the image into orig/GFZE01/, decrypts and decompresses line__.bin, and prints the SHA-1 of each target. The disc image can be deleted afterwards.

  • Configure:

    python configure.py
    

    To use a version other than GFZE01 (USA), specify it with --version.

  • Build:

    ninja
    

Diffing

Once the initial build succeeds, an objdiff.json should exist in the project root.

Download the latest release from encounter/objdiff. Under project settings, set Project directory. The configuration should be loaded automatically.

Select an object from the left sidebar to begin diffing. Changes to the project will rebuild automatically: changes to source files, headers, configure.py, splits.txt or symbols.txt.

Contributing

See CONTRIBUTING.md. In short: one function per change, matched and link-verified through tools/fzgx.py, no hardcoded addresses, no inline assembly, readable C. Both people and agents go through the same tools and the same oracle. Questions and discussion: the GC/Wii Decompilation Discord, #dtk.

Credits

See docs/RESOURCES.md. This project stands on decomp-toolkit, objdiff, wibo and dtk-template by encounter and the decompals community, on CosmoCortney's Line__Crypt and bobjrsenior's SMB_LZ_Tool for the line__.bin format, and on a decade of format work by the F-Zero GX modding community.

License

The source code and tooling in this repository are released under CC0 1.0. F-Zero GX is © Nintendo / Sega / Amusement Vision; no game data is distributed here.

Leer guía oficial
CALIFICACIÓN
—
Cargando votos…
Publicidad

FICHA DEL PROYECTO

Tipo de proyecto
PORT NATIVO
Género
Carreras / Velocidad
Estado
alpha
Plataforma de origen
Nintendo GameCube
Tecnología
Descompilación y Reconstrucción en C/C++
Versión
—
Actualización
—

Plataformas de destino 1

Windows
Ver en GitHub
Publicidad