diff --git a/README.example.md b/README.example.md index 9bad757..6bbdf0e 100644 --- a/README.example.md +++ b/README.example.md @@ -90,11 +90,10 @@ Building git clone https://github.com/my/repo.git ``` -- Using [Dolphin Emulator](https://dolphin-emu.org/), extract your game to `orig/GAMEID`. -![](assets/dolphin-extract.png) - - To save space, the only necessary files are the following. Any others can be deleted. - - `sys/main.dol` - - `files/rels/*.rel` +- Copy your game's disc image to `orig/GAMEID`. + - Supported formats: ISO (GCM), RVZ, WIA, WBFS, CISO, NFS, GCZ, TGC + - After the initial build, the disc image can be deleted to save space. + - Configure: ```sh @@ -102,6 +101,7 @@ Building ``` To use a version other than `GAMEID` (USA), specify it with `--version`. + - Build: ```sh diff --git a/assets/dolphin-extract.png b/assets/dolphin-extract.png deleted file mode 100644 index 67a3aa3..0000000 Binary files a/assets/dolphin-extract.png and /dev/null differ diff --git a/config/GAMEID/config.example.yml b/config/GAMEID/config.example.yml index 1c0cd12..99989f5 100644 --- a/config/GAMEID/config.example.yml +++ b/config/GAMEID/config.example.yml @@ -1,9 +1,26 @@ +# NOTE: All paths in this file can utilize decomp-toolkit's VFS (virtual file system). +# This allows you to directly reference files inside of containers (disc images, .arc, etc.). +# Files compressed with Yaz0 (SZS), Yay0 (SZP) are automatically decompressed. +# Files compressed with NLZSS (Nintendo LZSS) can use a `:nlzss` suffix to decompress. +# See https://github.com/encounter/decomp-toolkit#vfs-ls for more information on the VFS. + +# (optional) Main module name. Defaults to "main". +name: main # Path to the main.dol file. -object: orig/GAMEID/sys/main.dol +object: sys/main.dol # (optional) SHA-1 hash of the main.dol file for verification. hash: 0123456789abcdef0123456789abcdef01234567 -# (optional) Name override. Defaults to "main". -name: main +# (optional) If set, all object paths will be relative to this directory. +# If not set, all object paths will be relative to the root of the project. +# decomp-toolkit will search the root of this directory for any disc images. (ISO, RVZ, WBFS, etc.) +# If a disc image is found, decomp-toolkit will fetch all objects from the disc image instead of the filesystem. +# For example, if `game.iso` exists in the `object_base`, the object path would become the VFS path +# `orig/GAMEID/game.iso:sys/main.dol`. See information on the VFS above. +object_base: orig/GAMEID +# (optional) If true, objects will be extracted from a disc image into `object_base`. +# This allows users to delete the disc image after the initial build to save space. +# Enabled by default if `object_base` is set. +extract_objects: true # (optional) Path to the symbols.txt file. # This file will be created if it does not exist. @@ -15,6 +32,7 @@ symbols: config/GAMEID/symbols.txt splits: config/GAMEID/splits.txt # (optional) Path to the DOL's .map file. +# This path is relative to the root of the project, and is _not_ affected by `object_base`. # This should only used for initial analysis, and generating the symbols and splits files. # Once those files are generated, remove this to avoid conflicts. map: orig/GAMEID/files/main.MAP @@ -34,7 +52,8 @@ common_start: 0x80001234 mw_comment_version: 8 # (optional) Path to `selfile.sel` for Wii games with RSO files. -selfile: orig/GAMEID/files/selfile.sel +# Relative to `object_base` if set, otherwise relative to the root of the project. +selfile: files/selfile.sel # (optional) SHA-1 hash of the `selfile.sel` file for verification. selfile_hash: 0123456789abcdef0123456789abcdef01234567 @@ -81,7 +100,8 @@ ldscript_template: config/GAMEID/module/ldscript.tpl modules: - # Path to the module. - object: orig/GAMEID/files/module.rel + # Relative to `object_base` if set, otherwise relative to the root of the project. + object: files/module.rel # (optional) SHA-1 hash of the module for verification. hash: 0123456789abcdef0123456789abcdef01234567 diff --git a/config/GAMEID/config.yml b/config/GAMEID/config.yml index e578d2b..f3992ff 100644 --- a/config/GAMEID/config.yml +++ b/config/GAMEID/config.yml @@ -1,5 +1,6 @@ # See config.example.yml for documentation. -object: orig/GAMEID/sys/main.dol +object_base: orig/GAMEID +object: sys/main.dol hash: 0123456789abcdef0123456789abcdef01234567 symbols: config/GAMEID/symbols.txt splits: config/GAMEID/splits.txt @@ -8,7 +9,7 @@ splits: config/GAMEID/splits.txt mw_comment_version: 11 modules: -- object: orig/GAMEID/files/module.rel +- object: files/module.rel hash: 0123456789abcdef0123456789abcdef01234567 symbols: config/GAMEID/module/symbols.txt splits: config/GAMEID/module/splits.txt diff --git a/configure.py b/configure.py index 931ca25..8cb9a11 100755 --- a/configure.py +++ b/configure.py @@ -144,8 +144,8 @@ if not config.non_matching: # Tool versions config.binutils_tag = "2.42-1" config.compilers_tag = "20240706" -config.dtk_tag = "v1.0.0" -config.objdiff_tag = "v2.2.1" +config.dtk_tag = "v1.1.2" +config.objdiff_tag = "v2.3.2" config.sjiswrap_tag = "v1.1.1" config.wibo_tag = "0.6.11"