Skip to content

Conversation

@freeqaz
Copy link

@freeqaz freeqaz commented Feb 2, 2026

Summary

  • Merges 26 commits from encounter/decomp-toolkit (v1.6.2 → v1.8.0)
  • Key upstream additions: skip_cfa_ranges, SDA symbol creation, jump table validation fixes, globalize_symbols, dependency updates
  • Preserves all XEX-specific analysis and jeff's custom dependencies

Conflict resolutions

  • Cargo.toml: kept jeff's git fork deps, took upstream's new deps
  • cfa.rs: kept as u32 casts, added upstream's SDA symbol creation
  • slices.rs: took upstream's max_block jump table validation
  • xex.rs: added globalize_symbols: false to split_obj calls
  • Kept deleted: dwarf.rs, elf.rs, elf2dol.rs, rel.rs (GC/Wii-only)

Testing

  • cargo build --release succeeds
  • cargo test passes
  • dc3-decomp ninja build completes without panics

I'll keep banging on this as I work through my decomp workflows. I've got a whole fork full of stuff that you're welcome to review. Hopefully this is relatively light and helpful though 🙏

encounter and others added 27 commits June 23, 2025 18:21
Also adds support to elf2dol to extract the inner DOL
from a BootStage DOL.
…ypes (encounter#119)

* Add support for structure types and enums being nested in structure types

* Fix formatting
* 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
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 encounter#125.
This allows configuring the function analyzer to skip certain
problematic ranges in the program. Only for exceptional cases
that prevents analysis from finishing.

When using this feature, ensure that no `function` symbols
exist for the affected range in symbols.txt, otherwise CFA
will run for the defined functions, regardless of this setting.
* Support type definitions inside functions in dwarf dump
Detect subroutine parent class and constness
Support nested typedefs

* Omit unnecessary/duplicate dwarf info

* Move total size to before struct so that clangd picks it up

* Subroutine typedefs and subroutine block inner types

* Handle override, const, volatile, virtual, static function logic

* Omit return type of ctors and dtors

* Add back the nested template thing because it's actually useful

* Return type omitting bug fix

* Add static struct members

* Fix formatting

* Handle typedef specification attribute

* Avoid adding duplicate inline params

* Handle non-overriden GCC constructors and destructors

* clippy

* Cargo fmt

* Apply clippy's suggestion

* Extract producer and correctly handle MWCC static members

* Enable static member function detection only for GCC

* Fix bug where function parameter wasn't applied if both names were None

* Fix gcc boolean logic and omit __in_chrg

* Add parent fallback for PS2 MW

* Demangle mangled function names

* Have inlines and blocks in the same vec to keep their correct order

* Change comment

* List member functions inside struct

* Remove Inline comment and add a new line before blocks

* Fix fmt and check

* Support appending static member functions to struct on GCC

* Reverse enum members in GCC
* Demangle variable names

* Fix small issue
…ump (encounter#133)

* Revert my own change that completely messes up array typedefs

* Fix formatting
Merges 26 commits from encounter/decomp-toolkit (v1.6.2..v1.8.0).

Key upstream changes taken:
- skip_cfa_ranges config option
- SDA base symbol creation in CFA analysis
- Jump table validation improvements (max_block approach)
- globalize_symbols parameter for split_obj
- Dependency updates (chrono, gnuv2_demangle, objdiff-core 2.2)
- Various bug fixes (WindowedFile, REL splitting, auto-split names)

Kept deleted: dwarf.rs, elf.rs, elf2dol.rs, rel.rs (GC/Wii-only)
Preserved: XEX-specific analysis, powerpc crate, git fork deps
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants