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
LEGO Star Wars: The Video Game (lsw1-decomp)
PORTSNATIVE

LEGO Star Wars: The Video Game (lsw1-decomp)

PORT NATIVOAVENTURA / SANDBOXWINDOWSALPHA

LEGO Star Wars: The Video Game (lsw1-decomp)

LEGO Star Wars: The Video Game

OrigenNintendo GameCube

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

Disponible paraWindows

Ver proyecto oficial

Sobre el proyecto

Lego Star Wars: The Video Game o Lego Star Wars: El videojuego es un videojuego de plataformas, basado en el universo Star Wars, que recrea las películas La amenaza fantasma, El ataque de los clones y La venganza de los Sith desde la perspectiva del juguete de construcción Lego. Fue desarrollado por Traveller's Tales y salió a la venta el 29 de marzo de 2005.

Información oficial del proyecto

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

LEGO Star Wars: The Video Game Decompilation

A work-in-progress decompilation of LEGO Star Wars: The Video Game for the Nintendo GameCube.

Target Version

FieldValue
Game IDGL5E4F
PlatformNintendo GameCube
RegionUSA / NTSC
CompilerSN Systems ProDG (GCC) for game code; CodeWarrior GC/1.2.5n for the Dolphin SDK. See code matching workflow
DOL SHA-195cca08a19224775d1a8d6cc64601fb7d0080981

Progress

<!-- progress:start -->

Matched code (objdiff report with strict relocation comparison):

MeasureMatchedTotalProgress
Code bytes330,3841,591,22820.76%
Functions2,2514,19253.70%

Symbol naming (config/GL5E4F/symbols.txt):

SectionNamedTotalProgress
.text (functions)1,8894,22844.7%
.rodata7768,3869.3%
.bss8875511.7%
<!-- progress:end -->

CI refreshes these figures after successful GitHub builds on main.

python3 tools/matching_progress.py    # matched code from the local objdiff report
python3 tools/progress.py             # symbol naming and matching

Symbol naming and matched code are separate measures. Comparison candidates are compiled without replacing retail code; promoted units are linked from C and checked against retail ranges. The whole relinked DOL still differs from retail. C matching explains the evidence and remaining link differences.

Prerequisites

  • Python 3.10+, Rust stable and Cargo (to build the patched DTK)
  • Ninja: pip install ninja or your system package manager
  • Network access on first build, for the pinned DTK source and tools
  • Your own disc image of LEGO Star Wars: The Video Game (GameCube, NTSC-U), or the project's encrypted DOL with its key

On Linux and macOS, wibo (a minimal 32-bit Windows binary wrapper) is downloaded automatically.

Quick Start

  1. Clone the repository:

    git clone https://github.com/ellierocks/lsw1-decomp.git
    cd lsw1-decomp
    
  2. Provide the retail DOL at orig/GL5E4F/sys/main.dol. It is never committed.

    Option A, from your disc image. Build the patched DTK first, then extract:

    bash tools/build_patched_dtk.sh
    mkdir -p orig/GL5E4F/sys
    build/tools/dtk_patched vfs cp '/path/to/game.rvz:sys/main.dol' orig/GL5E4F/sys/main.dol
    

    Option B, for maintainers with ORIG_KEY supplied securely in the environment. The encrypted copy is committed:

    bash tools/orig_crypt.sh decrypt
    

    build.sh checks the SHA-1 before building anything, so a wrong file fails early.

  3. Build:

    bash build.sh
    

    This verifies the input, bootstraps the patched splitter, compiles candidate objects, generates the objdiff report, links main.dol and checks promoted units against retail. It does not produce a fully matched, relinked game.

Development happens on GitHub. See development workflow for checks and PRs.

Working on the decomp

  1. Follow C matching: choose one function, compile a ProDG baseline, test one source hypothesis at a time, and verify object and linked ranges before promotion.
  2. Use research when types, callees or boundaries are unclear. Generated task packs and donor queues are leads; current assembly and symbols are the authority.
  3. Submit a topic-branch PR with verification evidence and the checks in development workflow.

Never commit original game code or assets. Source is written from analysis of the binary; donor projects supply evidence.

Documentation

GuideUse
StrategyPhases and lanes: SDK import, whole-binary splits, agent draft-and-climb
Sprint workflowMatching tools, workflow improvements, queue accounting and evidence
Phase 3 batch historyResults and failure modes from the earlier multi-unit batches
Matching quickstartBootstrap, pick a target, score, record and verify in six steps
C matchingToolchain, bounded experiments, strict verification, promotion and link blockers
Compiler evaluationProDG audit, RTL diagnostics and SN GCC v1.79 results
ResearchSymbol recovery, donor mining, Ghidra and REA, RAM dumps and evidence provenance
SN runtimeImported newlib/libgcc objects: provenance, licences, flags, boundaries and misses
Build configurationSymbols, splits, compiler wiring and target-specific DTK constraints
Development workflowChecks, PRs, CI, progress artifacts and secrets maintenance
Nu2 referenceLayout sketches, SDK evidence, file calls and camera state
Menus and shopCallback/descriptor layouts, runtime fields and shop transitions
Script dispatchAI parser anchors and AI/level command tables

Generated evidence remains in symbol_donors, static call exports, archived task packs and cross-version research. Their names can be stale; use addresses to resolve current symbols.

Dolphin map

mkdir -p artifacts
python3 tools/symbols_to_map.py --all --output artifacts/GL5E4F.map

Load the map through Dolphin's Symbols → Load Symbol Map. Unnamed functions use zz_<address>_ placeholders. The GitHub map workflow also publishes the GL5E4F-dolphin-map artifact.

Layout

src/ and include/ hold candidate C and types; config/GL5E4F/ owns symbols and splits; tools/ and tests/ own tooling and regressions. orig/ holds local retail/donor inputs (plaintext is ignored), build/ holds generated objects and reports, and ignored work/ holds matching experiments.

License

Released under CC0 1.0 Universal; see LICENSE.

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

FICHA DEL PROYECTO

Tipo de proyecto
PORT NATIVO
Género
Aventura / Sandbox
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