Luke Street
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
Luke Street
50f913c4eb
clippy fixes
2023-09-10 02:20:54 -04:00
Luke Street
18170a96a2
Don't use map in `dol diff` and `dol apply`; remove common BSS hack
2023-09-10 02:20:08 -04:00
Luke Street
788ffb9e17
Fix empty .lcf FORCEACTIVE with symbols_known
2023-09-09 19:24:13 -04:00
Luke Street
6abe6cc277
clippy fix
2023-09-05 17:31:19 -04:00
Luke Street
21c80537ac
cargo-deny: Allow ISC license
2023-09-05 17:24:03 -04:00
Luke Street
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
Luke Street
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
Luke Street
a2374e4fa0
Semi-working REL analysis & splitting
2023-08-23 23:13:12 -04:00
Luke Street
3f63f1ef47
A lot more section-address-aware refactoring
2023-08-23 23:13:12 -04:00
Luke Street
5843ee021e
Begin REL analysis & rework lots of code to be section-address aware
2023-08-17 22:09:45 -04:00
Luke Street
347889773d
Version 0.3.7
2023-08-15 23:18:15 -04:00
Luke Street
933edcfb19
Clippy fixes
2023-08-15 22:47:35 -04:00
Luke Street
23a156a6d5
Add selfile option & load in `dol split`
2023-08-15 22:45:23 -04:00
Luke Street
908e3bb037
Check functions at start of code sections in detect_functions
2023-08-15 22:44:48 -04:00
Luke Street
a394dfc88c
Improved sanity checks in asm write_data
2023-08-15 22:44:06 -04:00
Luke Street
2c2ee8bf08
Validate splits don't overlap symbols (or each other)
...
Use DoubleEndedIterator::next_back instead of Iterator::last to avoid unnecessary iteration.
2023-08-15 09:47:00 -04:00
Luke Street
d272b5dce8
Write common symbol align in asm
2023-08-15 09:36:45 -04:00
Luke Street
8200ee7649
Version 0.3.5
2023-08-10 00:06:42 -04:00
Luke Street
522909907c
Add quick_analysis option & disable auto_force_files by default
2023-08-10 00:05:33 -04:00
Luke Street
33a026d0c7
Support module hash in config.yml
2023-08-10 00:04:35 -04:00
Luke Street
5272f90991
Read symbol alignment from .comment
2023-08-10 00:03:44 -04:00
Luke Street
265e26ee40
Guess section alignment & write __ArenaHi in .lcf
2023-08-10 00:03:14 -04:00
Luke Street
98ab89a1de
Don't relocate against linker symbols for certain relocations
2023-08-10 00:02:28 -04:00
Luke Street
cf328b8707
Only create relocations for direct branches
2023-08-09 23:59:26 -04:00
Luke Street
457ee10a42
Emit FORCEACTIVE in LCF & various fixes
2023-08-09 01:24:23 -04:00
Luke Street
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
Luke Street
5bdffa94c4
Generated TU name adjustments
2023-08-08 01:54:01 -04:00
Luke Street
46801939a3
Fix up .comment section writing & support symbol force_active
2023-08-08 01:53:47 -04:00
Luke Street
bf0dd310e6
Bump version
2023-08-07 20:07:13 -04:00
Luke Street
40786587e3
Support common BSS in update_splits & resolve_link_order
2023-08-07 20:05:57 -04:00
Luke Street
c9eb824034
Emit __init_cpp_exceptions_reference symbols as global
2023-08-07 20:05:19 -04:00
Luke Street
9684701d5b
Include common symbols in ObjSymbols::for_range
2023-08-07 20:05:00 -04:00
Luke Street
e215b6d843
Fix write_elf for common symbols & only write filename in file symbol
2023-08-07 20:04:40 -04:00
Luke Street
e802b61001
Fix autogenerated unit output in config.json
2023-08-07 20:03:58 -04:00
Luke Street
c07826e57f
Output common/rename in write_split
2023-08-07 20:03:34 -04:00
Luke Street
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
Luke Street
4b6e317d0b
Adjustments for use with ninja build
2023-08-05 20:27:05 -04:00
Luke Street
771c380129
ci: Pin ziglang / cargo-zigbuild versions
2023-08-05 18:41:18 -04:00
Luke Street
fefe4a36f0
Small dol split output adjustments
2023-08-05 18:35:11 -04:00
Luke Street
2ccb5f7b36
Fix clippy issue & add fmt check
2023-08-04 10:46:02 -04:00
Luke Street
b9fd6e077a
Remove more unused imports
2023-08-03 19:24:47 -04:00
Luke Street
636213fdfd
Remove unused imports
2023-08-03 19:19:05 -04:00
Luke Street
4ee63abea4
Mark autogenerated splits & rework ObjInfo::add_split
2023-08-03 19:18:20 -04:00
Luke Street
43856f1b79
Fix generated extab symbol sizes
2023-08-03 19:12:58 -04:00
Luke Street
5c04800964
Run apply_signatures_post appropriately
2023-08-03 19:05:40 -04:00
Luke Street
6723245ed6
dol split: Write units file
2023-08-03 19:05:00 -04:00
Luke Street
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
Luke Street
8f461b8e0a
Add & use ObjSymbolFlagSet helper functions
2023-08-03 19:00:10 -04:00
Luke Street
26a3021f45
Fix lcf generation for missing .sbss2
2023-08-03 18:57:18 -04:00