Skip to content
ACreTeamPublic

About

Decompilation of Animal Crossing for the Nintendo GameCube.

Resources

Stars

1.4k stars

Watchers

56 watching

Forks

Repository files navigation

Animal Crossing
Build Status DOL Progress REL Progress Discord Badge

A decompilation of Animal Crossing 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:

  • GAFE01_00: Rev 0 (USA)
  • GAFU01_00: Rev 0 (Australia)
  • GAFP01_00: Rev 0 (PAL - en, es, fr, it, de)

A decompilation of the original N64 version of the game is being worked on here.

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%.
  • Download ninja and add it to %PATH%.
    • Quick install via pip: pip install ninja

macOS

  • Install ninja:

    brew install ninja
  • Install wine-crossover:

    brew install --cask --no-quarantine gcenx/wine/wine-crossover

After OS upgrades, if macOS complains about Wine Crossover.app being unverified, you can unquarantine it using:

sudo xattr -rd com.apple.quarantine '/Applications/Wine Crossover.app'

Linux

  • Install ninja.
  • For non-x86(_64) platforms: Install wine from your package manager.
    • For x86(_64), wibo, a minimal 32-bit Windows binary wrapper, will be automatically downloaded and used.

Building

  • Clone the repository:

    git clone --recursive https://github.com/Prakxo/ac-decomp.git
  • Update and Initialize submodules:

    git submodule update --init --recursive
  • Copy your game's disc image to orig/GAFE01_00.

    • Supported formats: ISO (GCM), RVZ, WIA, WBFS, CISO, GCZ
  • Configure:

    python configure.py

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

    Stock GC 2.6 with the external SJIS wrapper is the default. To use the optimized compiler with built-in SJIS conversion, run python configure.py --version GAFU01_00 --fast-mwcc. This uses the compiler set in build/GAFU01_00/compilers (including GC/2.6f1), or the directory specified by --compilers. Versions without GC 2.6 are unaffected. Omit --fast-mwcc when configuring to return to stock. The GC/2.6f1 compiler is an unreleased modification, so most users should stick to stock GC/2.6.

    PAL has five language targets. Extract each language TGC into orig/GAFP01_00_en, orig/GAFP01_00_fr, orig/GAFP01_00_de, orig/GAFP01_00_it, or orig/GAFP01_00_es, then configure with:

    python configure.py --version GAFP01_00 --language en

    --version GAFP01_00_en selects the same target. Replace en with fr, de, it, or es for the other languages. All PAL targets use VERSION=2 and their corresponding GAME_LANGUAGE value. Each has separate build outputs, symbols, splits, progress, and hashes for its DOL and four RELs (foresta, forestd, foresti, and foresto). Matching PAL sources are shared across languages; unmatched units still use original split objects. TGC rebuilding is not included.

  • 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.

Credits

  • jamchamb, Cuyler36, NWPlayer123 and fraser125 for past documentation of Animal Crossing.
  • encounter and NWPlayer123 for dtk-template and setting up the current build system.

About

Decompilation of Animal Crossing for the Nintendo GameCube.

Resources

Stars

1.4k stars

Watchers

56 watching

Forks

Releases

Packages

Used by

Contributors

Languages