Skip to content

zsrtp/decompgz

 
 

Repository files navigation

decompgz

The Twilight Princess practice rom, based on the decompilation project.

Dependencies

Windows

On Windows, it's highly recommended to use native tooling. WSL or msys2 are not required.

  • Install Python and add it to %PATH%.

  • Install Lago's gclib tools:

    pip install "gclib[speedups] @ git+https://github.com/LagoLunatic/gclib.git"
    
  • 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
  • Install Lago's gclib tools:

    pip install "gclib[speedups] @ git+https://github.com/LagoLunatic/gclib.git"
    

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.

  • Install Lago's gclib tools:

    pip install "gclib[speedups] @ git+https://github.com/LagoLunatic/gclib.git"
    
  • 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 https://github.com/zeldaret/tp.git
  • Copy your game's disc image (ISO) to orig/GZ2E01/GZ2E01.iso (or appropriate version, e.g., orig/GZ2P01/GZ2P01.iso).

    • Supported formats: ISO (GCM), RVZ, WIA, WBFS, CISO, NFS, GCZ, TGC.
    • This is used for both asset extraction and rebuilding the final ISO.
  • Configure and build:

    python configure.py -v GZ2E01
    ninja
    • Replace GZ2E01 with your desired version (e.g., GZ2P01 for PAL)
    • Currently supported versions: GZ2E01, GZ2P01, GZ2J01
    • Wii support coming soon
    • After the project compiles, build the final iso with:
    python tools/rebuild-decomp-tp.py ./orig/GZ2E01/GZ2E01.iso ./tpgz-GZ2E01.iso ./ --version GZ2E01
    • Replace GZ2E01 with your desired version

Adding Custom Code

To add new features to the practice ROM:

  • Create new .cpp or .h files in appropriate directories (e.g., src/gz/ for game-specific custom code)
  • Add them to configure.py in the config.libs list, marked as Custom
  • Look at existing custom files in src/gz/ for examples of how to structure and integrate new code
  • Re-run python configure.py -v VERSION and ninja to include your changes

Adding Custom Assets

  • Place your custom asset into the mod_assets directory. The directory structure will be copied 1:1 to the final disc image.
  • Re-run the build process above to include your changes

About

Experimental fork to begin porting over tpgz code

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 56.1%
  • C 43.3%
  • Python 0.5%
  • Pascal 0.1%
  • Pawn 0.0%
  • Assembly 0.0%