Commit Graph

292 Commits

Author SHA1 Message Date
3434c06736 Version 1.7.6 v1.7.6 2025-12-09 10:00:27 -07:00
robojumper
49b21788a7 Fix WindowedFile::read (#128) 2025-12-09 09:53:44 -07:00
c30965c9ed Version 1.7.5 v1.7.5 2025-12-03 18:05:32 -07:00
Max
329936be00 Fix .ctors splitting for RELs (#126)
The ProDG hack in split_ctors_dtors caused the
automated splitting of .ctors to be incorrect
for RELs, by stripping relocatable function pointers
out of the object. This patch checks for relocations,
resolving both of the build failures observed in #125.
2025-12-01 10:18:25 -07:00
a9f34cbca6 Version 1.7.4 v1.7.4 2025-11-26 22:22:52 -07:00
7df3ffe733 Skip and warn on REL relocations with invalid source
Resolves #124
2025-11-26 22:21:47 -07:00
8c8747572c Version 1.7.3 v1.7.3 2025-11-26 21:59:00 -07:00
ac4487b159 Sanitize commas in auto-split names 2025-11-26 21:50:32 -07:00
aa4b694b6c Version v1.7.2 v1.7.2 2025-11-21 21:37:56 -07:00
Amber Brault
f8f69e2cfd Add auto extab dtor renaming (#123)
* Add auto extab dtor renaming

* Remove whitespace

* Update cwextab

* Only rename unnamed functions

* Create separate name creation function/use is_auto_symbol

* Make fmt shut up
2025-11-21 21:35:43 -07:00
a2568b5b80 Version v1.7.1 v1.7.1 2025-11-18 22:48:53 -07:00
6bffd452e5 Update deny.toml 2025-11-18 22:41:20 -07:00
73cdd6c243 clippy fixes 2025-11-18 22:39:37 -07:00
667346cbe0 Update dependencies 2025-11-18 22:39:28 -07:00
8e417a4ad6 rel make: Avoid EMFILE when loading many modules (#122) v1.7.0 2025-11-12 19:26:20 +00:00
Dávid Balatoni
2a3eaf9d4f Add support for structure types and enums being nested in structure types (#119)
* Add support for structure types and enums being nested in structure types

* Fix formatting
2025-10-27 01:30:12 -06:00
89864dc76e refactor: rename relocations field and flatten relocs (#115) 2025-09-13 08:17:36 +00:00
9c5210184d Remove globalize_symbols test (#116) 2025-09-13 08:14:37 +00:00
31c42d58db Fix clippy lints and address cargo deny advisories (#117) 2025-09-13 02:04:42 -06:00
Vi
d3596dbaa4 account for enum size in dwarf dump (#110) 2025-08-30 11:03:48 -06:00
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
8620099731 Version v1.6.2 v1.6.2 2025-06-09 22:45:48 -06:00
ae00c35ec3 Better jump table error context 2025-06-09 22:45:48 -06:00
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
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
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
88d0e6b789 cargo clippy --fix 2025-06-01 16:42:00 -06:00
f212b35d28 Fix BSS symbol data check in add_padding_symbols 2025-06-01 16:40:40 -06:00
9c681557f5 Write ldscript_template path to ouput depfile 2025-05-30 19:18:46 -06:00
5505120148 Fix padding symbols on REL section boundaries
Regression introduced in 6819a8b
v1.5.1
2025-05-11 22:15:02 -06:00
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
ddd9dbb0ba clippy fixes 2025-03-21 16:14:44 -06:00
a064ddfd68 Quick & dirty ALF support in elf2dol 2025-03-21 16:13:04 -06:00
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
7e15810af1 Version 1.4.0 v1.4.0 2025-01-27 19:37:48 -07:00
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
a6c7001a52 Remove elf split command
This command was an early experiment and only worked
correctly on one game. The project system has long
superseded it. ELFs are better supported by
generating a project config via `elf config` and
using the DOL as the object target.

Closes #1
Closes #4
Closes #21
2025-01-27 19:11:40 -07:00
f270e9c53d clippy fix 2025-01-27 19:09:19 -07:00
b9642321a1 dol diff: Conditionally warn on symbol size mismatch
When a symbol's data matches but the size differs
due to padding bytes, print a warning and continue.

Resolves #35
2025-01-27 18:56:24 -07:00
e55ade10ec Ignore globalized symbols in dol diff
Resolves #61
2025-01-27 18:36:19 -07:00
6c3887c7e6 Improve split cyclic dependency errors
When a link order is unresolvable, decomp-toolkit
now prints out all of the TUs in a cycle, easing
debugging.

Example:
```
Cyclic dependency encountered while resolving link order: Dolphin/os/__start.c -> Dolphin/os/__ppc_eabi_init.cpp -> Dolphin/pad/PadClamp.c -> Dolphin/pad/pad.c
```

Thanks @simonlindholm for the toposort impl.
2025-01-27 18:06:25 -07:00
9a6348ec49 Set alignment for floats/doubles in analyzer
Resolves #60
2025-01-27 18:06:25 -07:00