Releases: encounter/decomp-toolkit
v1.3.0
What's Changed
- Add
rename
field to extract configuration (9fc56d8)- Allows renaming, for example, local statics from
symbol$1234
tosymbol
for inclusion in the source function.
- Allows renaming, for example, local statics from
- Add Wii WAD support to
dtk vfs
&wad
commands (1cc38ad)
Examples:
$ dtk vfs ls 'test.wad:'
676 bytes | 000100014e414345.tik | File
736 bytes | 000100014e414345.tmd | File
2.50 KiB | 000100014e414345.cert | File
225 KiB | 000100014e414345.trailer | File
225 KiB | 00000000.app | File
1.62 MiB | 00000001.app | File
4.35 MiB | 00000002.app | Archive: U8
2.55 MiB | 00000003.app | Archive: U8
2.06 MiB | 00000004.app | Archive: U8
33.5 MiB | 00000005.app | Archive: U8
257 KiB | 00000006.app | File
$ dtk vfs ls 'test.wad:00000004.app:./HomeButton2/LZ77_homeBtn.arc:nlzss:arc/anim'
300 bytes | th_HomeBtn_b_12btn_on.brlan | File
3.79 KiB | th_HomeBtn_b_btry_gry.brlan | File
2.85 KiB | th_HomeBtn_b_btry_red.brlan | File
3.79 KiB | th_HomeBtn_b_btry_wht.brlan | File
500 bytes | th_HomeBtn_b_btry_wink.brlan | File
...
Full Changelog: v1.2.0...v1.3.0
v1.2.0
What's Changed
- Added: Add
header_type
andcustom_type
to extract config
Extract configuration is now emitted in the output config, so tooling can load and perform their own tasks on extracted assets without having to parse YAML.
header_type
:
symbol
(default): Emit a full symbol declaration.raw
: Emit raw array data (for wrapping in your own declaration)none
: Don't emit a header at all. (For custom processing)
custom_type
/custom_data
: Passed through to the output config as-is for custom tasks.
Full Changelog: v1.1.4...v1.2.0
v1.1.4
v1.1.3
What's Changed
- Fixed: Always check for extracted files in object resolution (bee4570)
- Resolves an issue where extracted files would not be found after removing the disc image from the
orig
dir.
- Resolves an issue where extracted files would not be found after removing the disc image from the
Full Changelog: v1.1.2...v1.1.3
v1.1.2
What's Changed
- Added: Extract files from disc image to
object_base
(18bd608)- When
extract_objects
is enabled (on by default), objects will be extracted from a disc image intoobject_base
, and then used directly fromobject_base
going forward. This allows users to delete the disc image from theirorig
directory after the initial build.
- When
- Fixed: Make
selfile
relative toobject_base
(4fe2608)
Full Changelog: v1.1.1...v1.1.2
v1.1.1
What's Changed
- Added: VFS fixes and command improvements.
vfs ls
: Now displays size, detected file format, and decompressed size (if applicable).
-r
/--recursive
lists files recursively.
-s
/--short
prints only filenames.vfs cp
: Copies files recursively when the source is a directory.
--no-decompress
disables automatic decompression for Yay0/Yaz0.
-q
/--quiet
disables printing copied files.rarc
andu8
commands are now thin wrappers overvfs ls
andvfs cp
.
For example,rarc list file.arc
is now equivalent tovfs ls file.arc:
.
rarc extract file.arc -o out
is equivalent tovfs cp file.arc: out
.
- Fixed: VFS layout for Wii discs (
disc
/sys
dirs) (1f4b452) - Fixed: VFS path handling on Windows (2e524e6)
- Changed: Improve cache locality of some internal structures. Minor reduction in memory usage. (b184fee)
- Removed: Unused
metroidbuildinfo
command. (64d0491)
Full Changelog: v1.1.0...v1.1.1
v1.1.0
What's Changed
- Added: Automatically check for invalid extab relocations by @CelestialAmber in #75
- Added: Decode extab entries as comment in assembly output (281b0f7)
- Added: Load objects from disc image &
vfs
module (f91c2a1)
Revamps support for container paths and centralizes logic into a VFS (virtual file system) module.
The new VFS architecture supports disc images and any level of nesting.
For example, the following command now works:
dtk dol info 'Interactive Multi-Game Demo Disc - July 2002 (USA).rvz:files/zz_StarFox051702_e3.tgc:files/default.dol'
This opens a TGC file inside an RVZ disc image, then reads default.dol
in the FST.
Another example:
dtk rel info 'Legend of Zelda, The - The Wind Waker (USA).rvz:files/RELS.arc:mmem/f_pc_profile_lst.rel'
This opens a RARC archive inside an RVZ disc image, loads the Yaz0-compressed REL and decompresses it on the fly.
This all operates in memory with minimal overhead, with no need to extract temporary files.
Supported container formats:
- Disc images (ISO/GCM, WIA/RVZ, WBFS, CISO, NFS, GCZ, TGC)
- RARC/SZS and U8 (.arc)
Supported compression formats:
- Yaz0 (SZS)
- Yay0 (SZP)
- NLZSS (.lz)
Projects now can utilize a new configuration key object_base
:
object: orig/GZLE01/sys/main.dol
modules:
- object: orig/GZLE01/files/RELS.arc:rels/mmem/f_pc_profile_lst.rel
becomes
object_base: orig/GZLE01
object: sys/main.dol
modules:
- object: files/RELS.arc:mmem/f_pc_profile_lst.rel
When loading the objects, decomp-toolkit will automatically check the object_base
directory for any disc images. (They can be named anything, but must be in the folder root.) If one is found, all objects will be fetched from the disc image itself, rather than having to extract the files manually.
Two new commands were added: vfs ls
and vfs cp
.
These commands are very barebones currently, but allow listing directory contents and extracting files from decomp-toolkit's vfs representation:
❯ dtk vfs ls disc.rvz:
files
sys
❯ dtk vfs ls disc.rvz:sys
boot.bin
bi2.bin
apploader.bin
fst.bin
main.dol
❯ dtk vfs cp disc.rvz:sys/main.dol .
Full Changelog: v1.0.0...v1.1.0
v1.0.0
What's Changed
decomp-toolkit has reached v1.0.0! 🎉 While this release contains mostly iterative updates, dozens of projects are successfully using decomp-toolkit. It's time for a stable version number.
Notably, projects using the prebuilt binaries should upgrade for improved overall performance. (See below)
- Added:
map config
for generating symbols/splits (cfcd146)- Useful for extracting information from map files that aren't fully well-formed, such as ones from existing decompilation projects.
- Added: Better support for SMG/TP maps (68f4552)
- These post-processed maps have a lot of issues. This adds a few workarounds to the map parser to make it easier (though still not fully automatic) to parse these into symbols/splits.
- Changed:
dol diff
: Loosen@
symbol match criteria (d4f695f) - Changed: Use mimalloc for prebuilt
dtk
binaries. In particular, this improvesdtk dol split
performance with the prebuilt binaries by ~2x compared to builds using musl's built-inmalloc
. (c106123)
Full Changelog: v0.9.6...v1.0.0
v0.9.6
What's Changed
- Fixed: REL v1, v2 alignment regression (9dfdbb9)
- Alignment after section data and before relocations / import table is exclusive to REL v3.
Full Changelog: v0.9.5...v0.9.6
v0.9.5
What's Changed
- Fixed: Fix .note.split warnings for older mwld versions (d9817f6)
- Prior to mwld GC 3.0a3, the linker doesn't support ELF
.note
sections properly. With GC 2.7, it crashes if the section type isSHT_NOTE
. This adjusts the.note.split
section type based onmw_comment_version
to be compatible with every linker version.
- Prior to mwld GC 3.0a3, the linker doesn't support ELF
- Added: Add TGC disc support (c403931)
- Added: PureVirtual/Virtual Block2 DWARF attributes by @1superchip in #70
Full Changelog: v0.9.4...v0.9.5