273 Commits

Author SHA1 Message Date
Luke Street a602b9d048 [WIP] Experimental WASM VFS support 2025-11-18 22:24:10 -07:00
Luke Street b56b399201 Support loading Wii Menu (BootStage) DOL files
Also adds support to elf2dol to extract the inner DOL
from a BootStage DOL.
2025-06-23 18:21:42 -06:00
Luke Street 8620099731 Version v1.6.2 v1.6.2 2025-06-09 22:45:48 -06:00
Luke Street ae00c35ec3 Better jump table error context 2025-06-09 22:45:48 -06:00
Luke Street ba2589646e Relax prolog/epilog sequence checks
Some games (e.g. Excite Truck) have very aggressive float
scheduling that can create large gaps between prolog
instructions. This allows arbitrary instructions in the
sequence checks, provided they're not a branch and don't
touch r0/r1.

Resolves #105
2025-06-09 22:45:48 -06:00
cadmic 7bc0bc474d Continue analyzing functions after unknown jumps (#106)
* Continue analyzing functions after unknown jumps
2025-06-09 22:45:21 -06:00
cadmic d969819b78 Guess endianness of "erased" DWARF info (#104) 2025-06-09 22:44:39 -06:00
Luke Street f4a67ee619 Version v1.6.1 v1.6.1 2025-06-04 22:04:30 -06:00
Robin Avery d92a892c2b Relax string size requirement for auto symbols (#102) 2025-06-04 20:01:39 -07:00
cadmic 5e33fea49f Allow specifying replacement bytes in dtk extab clean (#103)
* Allow specifying replacement bytes in dtk extab clean

* Simplify extab padding replacement

* Reword log message

* clippy has bad taste

* Don't specify revision number for cwextab

---------

Co-authored-by: Amber Brault <celestialamber1@gmail.com>
2025-06-04 20:01:05 -07:00
Luke Street 9cafb77d3f Add dtk extab clean & config.yml clean_extab
It was discovered that certain extab actions contain
uninitalized data from the compiler. This provides
a way to zero out uninitialized data in DOL or object
files. Usage: `dtk extab clean input.dol output.dol`

A `clean_extab` setting was added to config.yml, so
projects can link the cleaned objects and target the
cleaned DOL hash.
v1.6.0
2025-06-01 20:23:07 -06:00
Dávid Balatoni 20e877c9ec Some ProDG improvements (#101) 2025-06-01 16:43:13 -06:00
Luke Street 88d0e6b789 cargo clippy --fix 2025-06-01 16:42:00 -06:00
Luke Street f212b35d28 Fix BSS symbol data check in add_padding_symbols 2025-06-01 16:40:40 -06:00
Luke Street 9c681557f5 Write ldscript_template path to ouput depfile 2025-05-30 19:18:46 -06:00
Luke Street 5505120148 Fix padding symbols on REL section boundaries
Regression introduced in 6819a8b
v1.5.1
2025-05-11 22:15:02 -06:00
Luke Street c1cbdd56d1 Version v1.5.0 v1.5.0 2025-05-07 23:01:09 -06:00
robojumper 97302e5127 dtk dol apply: skip updating anonymous symbols by default (#97)
* Add --relaxed flag to dtk dol apply to skip updating anonymous symbols

* Invert --relaxed switch -> --full
2025-05-07 21:02:15 -06:00
Rainchus 18987ed330 add shiftjis as possible data type for symbols (#95)
* add shiftjis as possible data type for symbols

* usage of anyhow:bail! -> bail!

* revise output of sjis strings

* rename shiftjis internally, symbols now uses sjis instead of shiftjis

* remove sjis decoding error check as the output is a comment

* run cargo fmt
2025-04-16 23:59:21 -06:00
dbalatoni13 614d4f2efc Add new options to rel make (#94) 2025-03-31 17:15:16 -06:00
Luke Street ddd9dbb0ba clippy fixes 2025-03-21 16:14:44 -06:00
Luke Street a064ddfd68 Quick & dirty ALF support in elf2dol 2025-03-21 16:13:04 -06:00
Luke Street bb18a4b253 Auto-split and padding symbol fixes
A few issues were causing linker errors:
- Auto-splits could contain symbols that have a
higher alignment than the split itself. Detect
this and create a new auto-split at these symbols.
- The analyzer can miss objects in between other
objects if there are no direct relocations to them.
In these cases, non-zero data could just get totally
lost. Detect and create symbols for these.
v1.4.1
2025-02-04 23:45:07 -07:00
Luke Street 7e15810af1 Version 1.4.0 v1.4.0 2025-01-27 19:37:48 -07:00
Luke Street 51a7fbd85b Add WAD support to object_base
This allows WAD projects to use the auto-extraction
feature: decomp-toolkit will extract all `object`s
from a disc file or WAD file that exists in the
configured `object_base`.
2025-01-27 19:33:44 -07:00