90 Commits

Author SHA1 Message Date
d4ef1ce16a Analyzer fixes galore
- Transparent NLZSS decompression (add `:nlzss` to path)
- Overhaul portions of the analyzer to support more games
- Reject some invalid data relocations automatically
- Jump table analysis fixes
2023-09-13 02:08:51 -04:00
18170a96a2 Don't use map in dol diff and dol apply; remove common BSS hack 2023-09-10 02:20:08 -04:00
788ffb9e17 Fix empty .lcf FORCEACTIVE with symbols_known 2023-09-09 19:24:13 -04:00
e3857d3212 Improvements to REL & map support
- Fix symbols.txt align attribute
- Fully support nested RARC files & transparent Yaz0 decompression
- Guess symbol visibility for maps without link map
- Add module name config
- Add manual force_active config
- Quiet option for shasum
- `symbols_known` and `fill_gaps` config
- Allow disabling .comment generation per-unit (`comment:0`)
- Various minor fixes
- Add `rarc` and `yaz0` commands
2023-09-05 17:22:22 -04:00
f9f7fb2e1e Working rel make & more
- Added `elf info`
- Improved `rel info`
- Colored output for `shasum`
- Fix section `rename` in RELs
- Added padding symbols to avoid linker issues
- Automatically set symbols to "active" in .comment output
2023-08-23 23:13:12 -04:00
a2374e4fa0 Semi-working REL analysis & splitting 2023-08-23 23:13:12 -04:00
3f63f1ef47 A lot more section-address-aware refactoring 2023-08-23 23:13:12 -04:00
5843ee021e Begin REL analysis & rework lots of code to be section-address aware 2023-08-17 22:09:45 -04:00
933edcfb19 Clippy fixes 2023-08-15 22:47:35 -04:00
23a156a6d5 Add selfile option & load in dol split 2023-08-15 22:45:23 -04:00
a394dfc88c Improved sanity checks in asm write_data 2023-08-15 22:44:06 -04:00
d272b5dce8 Write common symbol align in asm 2023-08-15 09:36:45 -04:00
5272f90991 Read symbol alignment from .comment 2023-08-10 00:03:44 -04:00
265e26ee40 Guess section alignment & write __ArenaHi in .lcf 2023-08-10 00:03:14 -04:00
457ee10a42 Emit FORCEACTIVE in LCF & various fixes 2023-08-09 01:24:23 -04:00
d9e1ae2777 MW 2.7 LD compatibility fixes & more
- More robust .comment section handling
- Auto-create .comment section for objects with common symbols (MW 2.7+ hack)
- Support loading REL modules in `dol split` (currently only for references)
- Add `dol diff` for quick diffing between linked ELF and expected symbols
- Add `dol apply` for applying linked ELF symbols to symbol config file
2023-08-08 23:34:00 -04:00
46801939a3 Fix up .comment section writing & support symbol force_active 2023-08-08 01:53:47 -04:00
e215b6d843 Fix write_elf for common symbols & only write filename in file symbol 2023-08-07 20:04:40 -04:00
c07826e57f Output common/rename in write_split 2023-08-07 20:03:34 -04:00
a046bf9a66 Updates for build system integration
- Use a config file as input to `dol split`
- Add depfile output
- Adjust splits config writing
2023-08-06 15:46:51 -04:00
4b6e317d0b Adjustments for use with ninja build 2023-08-05 20:27:05 -04:00
636213fdfd Remove unused imports 2023-08-03 19:19:05 -04:00
4ee63abea4 Mark autogenerated splits & rework ObjInfo::add_split 2023-08-03 19:18:20 -04:00
43856f1b79 Fix generated extab symbol sizes 2023-08-03 19:12:58 -04:00
f06a6ffbdd Ignore ABS symbols in ObjSymbols::for_range
- Add ObjSymbols::iter_ordered for all symbols (including ABS)
- Extract duplicated logic into ObjSymbols::for_relocation
2023-08-03 19:04:17 -04:00
8f461b8e0a Add & use ObjSymbolFlagSet helper functions 2023-08-03 19:00:10 -04:00
26a3021f45 Fix lcf generation for missing .sbss2 2023-08-03 18:57:18 -04:00
bd0422e92a Migrate argh to argp, topological-sort to petgraph 2023-08-03 18:57:08 -04:00
6b81faa5e1 dwarf dump: More register names, fix padding handling 2023-08-02 18:29:03 -04:00
0fa0aafaea 6 months of occasional work I guess 2023-07-21 17:59:07 -04:00
f1b4afa885 Add dwarf dump cmd 2023-02-14 21:50:23 -05:00
830f7b172f Reorganize files; start RSO support; config & split updates 2023-01-27 23:15:52 -05:00
827e0806be gerge branch 'main' into experimental 2023-01-19 12:54:52 -05:00
d864b0e395 Very experimental analyzer, DOL & REL support, function signatures 2023-01-18 12:52:38 -08:00
947874adfd Version 0.2.3
- Fix `ar create` on Windows
- Clippy fixes
2023-01-05 08:51:44 -05:00
d76c554d31 Support duplicate filenames in ELF loader 2022-12-27 18:22:27 -05:00
9f4cc2f542 Add elf split; rework asm generation
`elf split` allows splitting an ELF
directly into relocatable object files
2022-12-24 03:10:12 -05:00
828766b22b Version 0.2.2
- Add `ar create` command for static libraries
- Update `elf fixup` to add an "(asm)" suffix
  to object file symbols, for use with progress
  tracking.
2022-12-14 20:39:59 -05:00
141339fcb0 Version 0.2.0
- Add `elf disasm` (disassemble an ELF)
- Add `elf fixup` (for GNU assembler)
- Add `map order` (link order deduction)
- Add `map slices` (ppcdis slices.yml, WIP)
- Add `map symbols` (ppcdis symbols.yml, WIP)
- Big speed improvement for map processing
- Minor `elf2dol` cleanup
2022-12-10 01:51:42 -05:00
636cbea59c Initial commit 2022-11-27 17:02:32 -05:00