From ff6be416c6ba7148e07bb8228394da3b4a5373b3 Mon Sep 17 00:00:00 2001 From: Luke Street Date: Sun, 13 Oct 2024 01:07:16 -0600 Subject: [PATCH] Document `object_base` and disc image support This new setup flow allows users to copy their disc image into `orig/GAMEID`, run a build, then delete the disc image to save space. The new `object_base` config option specifies where the disc image is searched for. Updated README.example.md with new setup instructions, removing references to Dolphin Emulator. --- README.example.md | 10 +++++----- assets/dolphin-extract.png | Bin 11843 -> 0 bytes config/GAMEID/config.example.yml | 30 +++++++++++++++++++++++++----- config/GAMEID/config.yml | 5 +++-- configure.py | 4 ++-- 5 files changed, 35 insertions(+), 14 deletions(-) delete mode 100644 assets/dolphin-extract.png 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 67a3aa3bc1b5716ab472e24c3807daa1b426a18c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11843 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 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"