Skip to content

Commit 1f6faa3

Browse files
authored
Update README.md
1 parent c7e42a7 commit 1f6faa3

File tree

1 file changed

+87
-71
lines changed

1 file changed

+87
-71
lines changed

README.md

Lines changed: 87 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,97 @@
1-
decomp-toolkit Project Template
2-
===============================
1+
Ratatouille
2+
[![Build Status]][actions][![Discord Badge]][discord]
3+
=============
34

4-
If starting a new GameCube / Wii decompilation project, this repository can be used as a scaffold.
5+
<!--
6+
Replace with your repository's URL.
7+
-->
8+
[Build Status]: https://github.com/SamuraiOndo/RatDecomp/actions/workflows/build.yml/badge.svg
9+
[actions]: https://github.com/SamuraiOndo/RatDecomp/actions/workflows/build.yml
10+
[Discord Badge]: https://img.shields.io/discord/888080380752707624?color=%237289DA&logo=discord&logoColor=%23FFFFFF
11+
[discord]: https://discord.gg/cgUVpB6GNc
512

6-
See [decomp-toolkit](https://github.com/encounter/decomp-toolkit) for background on the concept and more information on the tooling used.
13+
A work-in-progress decompilation of Ratatouille.
714

8-
Documentation
9-
-------------
15+
This repository does **not** contain any game assets or assembly whatsoever. An existing copy of the game is required.
1016

11-
- [Dependencies](docs/dependencies.md)
12-
- [Getting Started](docs/getting_started.md)
13-
- [`symbols.txt`](docs/symbols.md)
14-
- [`splits.txt`](docs/splits.md)
15-
- [GitHub Actions](docs/github_actions.md) (new!)
17+
Supported versions:
1618

17-
General:
19+
- `GLLE78`: Rev 0 (USA)
1820

19-
- [Common BSS](docs/common_bss.md)
20-
- [`.comment` section](docs/comment_section.md)
21+
Dependencies
22+
============
2123

22-
References
24+
Windows
2325
--------
2426

25-
- [Discord: GC/Wii Decompilation](https://discord.gg/hKx3FJJgrV) (Come to `#dtk` for help!)
26-
- [objdiff](https://github.com/encounter/objdiff) (Local diffing tool)
27-
- [decomp.me](https://decomp.me) (Collaborate on matches)
28-
- [frogress](https://github.com/decompals/frogress) (Decompilation progress API)
29-
- [wibo](https://github.com/decompals/wibo) (Minimal Win32 wrapper for Linux)
30-
- [sjiswrap](https://github.com/encounter/sjiswrap) (UTF-8 to Shift JIS wrapper)
31-
32-
Projects using this structure:
33-
34-
- [zeldaret/tww](https://github.com/zeldaret/tww)
35-
- [zeldaret/oot-gc](https://github.com/zeldaret/oot-gc)
36-
- [zeldaret/ss](https://github.com/zeldaret/ss)
37-
- [PrimeDecomp/prime](https://github.com/PrimeDecomp/prime)
38-
- [PrimeDecomp/echoes](https://github.com/PrimeDecomp/echoes)
39-
- [DarkRTA/rb3](https://github.com/DarkRTA/rb3)
40-
- [doldecomp/melee](https://github.com/doldecomp/melee)
41-
- [doldecomp/sadx](https://github.com/doldecomp/sadx)
42-
- [InputEvelution/wp](https://github.com/InputEvelution/wp)
43-
- [NWPlayer123/AnimalCrossing-dtk](https://github.com/NWPlayer123/AnimalCrossing-dtk)
44-
- [Rainchus/marioparty4](https://github.com/Rainchus/marioparty4)
45-
- [Rainchus/ttyd_dtk](https://github.com/Rainchus/ttyd_dtk)
46-
- [Sage-of-Mirrors/zmansion](https://github.com/Sage-of-Mirrors/zmansion)
47-
- [bfbbdecomp/bfbb](https://github.com/bfbbdecomp/bfbb)
48-
- [EstexNT/rhf-dtk](https://github.com/EstexNT/rhf-dtk)
49-
50-
Features
51-
--------
27+
On Windows, it's **highly recommended** to use native tooling. WSL or msys2 are **not** required.
28+
When running under WSL, [objdiff](#diffing) is unable to get filesystem notifications for automatic rebuilds.
29+
30+
- Install [Python](https://www.python.org/downloads/) and add it to `%PATH%`.
31+
- Also available from the [Windows Store](https://apps.microsoft.com/store/detail/python-311/9NRWMJP3717K).
32+
- Download [ninja](https://github.com/ninja-build/ninja/releases) and add it to `%PATH%`.
33+
- Quick install via pip: `pip install ninja`
34+
35+
macOS
36+
------
37+
38+
- Install [ninja](https://github.com/ninja-build/ninja/wiki/Pre-built-Ninja-packages):
39+
40+
```sh
41+
brew install ninja
42+
```
43+
44+
- Install [wine-crossover](https://github.com/Gcenx/homebrew-wine):
45+
46+
```sh
47+
brew install --cask --no-quarantine gcenx/wine/wine-crossover
48+
```
49+
50+
After OS upgrades, if macOS complains about `Wine Crossover.app` being unverified, you can unquarantine it using:
51+
52+
```sh
53+
sudo xattr -rd com.apple.quarantine '/Applications/Wine Crossover.app'
54+
```
55+
56+
Linux
57+
------
58+
59+
- Install [ninja](https://github.com/ninja-build/ninja/wiki/Pre-built-Ninja-packages).
60+
- For non-x86(_64) platforms: Install wine from your package manager.
61+
- For x86(_64), [wibo](https://github.com/decompals/wibo), a minimal 32-bit Windows binary wrapper, will be automatically downloaded and used.
62+
63+
Building
64+
========
65+
66+
- Clone the repository:
67+
68+
```sh
69+
git clone https://github.com/SamuraiOndo/RatDecomp.git
70+
```
71+
72+
- Copy your game's disc image to `orig/GLLE78`.
73+
- Supported formats: ISO (GCM), RVZ, WIA, WBFS, CISO, NFS, GCZ, TGC
74+
- After the initial build, the disc image can be deleted to save space.
75+
76+
- Configure:
77+
78+
```sh
79+
python configure.py
80+
```
81+
82+
- Build:
83+
84+
```sh
85+
ninja
86+
```
87+
88+
Diffing
89+
=======
90+
91+
Once the initial build succeeds, an `objdiff.json` should exist in the project root.
92+
93+
Download the latest release from [encounter/objdiff](https://github.com/encounter/objdiff). Under project settings, set `Project directory`. The configuration should be loaded automatically.
94+
95+
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`.
5296

53-
- Few external dependencies: Just `python` for the generator and `ninja` for the build system. See [Dependencies](docs/dependencies.md).
54-
- Simple configuration: Everything lives in `config.yml`, `symbols.txt`, and `splits.txt`.
55-
- Multi-version support: Separate configurations for each game version, and a `configure.py --version` flag to switch between them.
56-
- Feature-rich analyzer: Many time-consuming tasks are automated, allowing you to focus on the decompilation itself. See [Analyzer features](https://github.com/encounter/decomp-toolkit#analyzer-features).
57-
- REL support: RELs each have their own `symbols.txt` and `splits.txt`, and will automatically be built and linked against the main binary.
58-
- No manual assembly: decomp-toolkit handles splitting the DOL into relocatable objects based on the configuration. No game assets are committed to the repository.
59-
- Progress calculation and upload script for [frogress](https://github.com/decompals/frogress).
60-
- Integration with [objdiff](https://github.com/encounter/objdiff) for a diffing workflow.
61-
- CI workflow template for GitHub Actions.
62-
63-
Project structure
64-
-----------------
65-
66-
- `configure.py` - Project configuration and generator script.
67-
- `config/[GAMEID]` - Configuration files for each game version.
68-
- `config/[GAMEID]/build.sha1` - SHA-1 hashes for each built artifact, for final verification.
69-
- `build/` - Build artifacts generated by the the build process. Ignored by `.gitignore`.
70-
- `orig/[GAMEID]` - Original game files, extracted from the disc. Ignored by `.gitignore`.
71-
- `orig/[GAMEID]/.gitkeep` - Empty checked-in file to ensure the directory is created on clone.
72-
- `src/` - C/C++ source files.
73-
- `include/` - C/C++ header files.
74-
- `tools/` - Scripts shared between projects.
75-
76-
Temporary, delete when done:
77-
78-
- `config/GAMEID/config.example.yml` - Example configuration file and documentation.
79-
- `docs/` - Documentation for decomp-toolkit configuration.
80-
- `README.md` - This file, replace with your own. For a template, see [`README.example.md`](README.example.md).
81-
- `LICENSE` - This repository is licensed under the CC0 license. Replace with your own if desired.
97+
![](assets/objdiff.png)

0 commit comments

Comments
 (0)