Luke Street
46cf0be183
Add U8 (newer .arc) support
...
Supports the U8 .arc format, just
like the older RARC format.
`u8 list`, `u8 extract` and support
for U8 archive paths in config.yml
2024-06-03 20:34:35 -06:00
Luke Street
255123796e
Instruction disassembly in `dol diff`
...
When a function diff is detected in
`dol diff`, objdiff-core is used to
print a detailed view highlighting
any differences.
Resolves #28
2024-06-03 20:31:06 -06:00
Luke Street
d9770c48b2
Version 0.8.3
2024-05-19 23:09:16 -06:00
Luke Street
bf0d1a823f
Version 0.8.2: Fix asm output
2024-05-17 07:12:05 -06:00
Luke Street
0bcc539d36
Version 0.8.1: Fix .note.split generation
2024-05-16 18:31:27 -06:00
Luke Street
cb1a765041
Version 0.8.0
2024-05-15 23:16:26 -06:00
Luke Street
4dacf2f39a
Add disc commands: info, extract, convert, verify
...
Utilizing https://github.com/encounter/nod-rs
2024-05-01 00:12:20 -06:00
Luke Street
963425793d
Remove unused deps
2024-04-30 20:48:53 -06:00
Luke Street
c45f37eb10
Update ppc750cl (10x faster!) & upgrade deps
2024-04-30 20:40:14 -06:00
Luke Street
989293a477
Add Yay0/Yaz0 compression & decompression
...
Uses orthrus-ncompress
Fixes #6
2024-04-30 18:03:00 -06:00
Luke Street
3497d38ea3
Version 0.7.6
2024-04-03 00:13:42 -06:00
Luke Street
7fd039722d
Format & use syntect regex-fancy
...
The onig crate no longer builds
in CI with cargo-zigbuild.
2024-03-13 18:30:15 -06:00
Luke Street
d727110262
Update all dependencies & support new demangle flag
...
- Support `--mw-extensions` flag for demangle
- Fix relocation handling for object crate upgrade
2024-03-13 18:23:09 -06:00
Luke Street
b829e15438
Rework .splitmeta, now .note.split
...
Uses actual ELF .note format, which is
more standard and handled better by mwld.
2024-03-04 18:12:20 -07:00
Luke Street
4f8a9e6fab
Write .splitmeta section in split objects
...
This enables showing the original address of
symbols in objdiff, as well as `elf disasm`
on split objects retaining the original
addresses.
2024-02-28 22:27:38 -07:00
Luke Street
a41745fb97
Version 0.7.4
2024-02-28 19:39:13 -07:00
Luke Street
9a6cb70ff8
Add `ar extract` command
2024-02-09 15:00:09 -07:00
Luke Street
7b7c8ce251
Add `noexport` attr to symbols.txt
...
Rename `auto_force_active` to `export_all`.
This is a better solution to code_merging, as
individual functions can be marked `noexport`.
2024-01-14 13:58:18 -07:00
Luke Street
968f50ebed
Add `auto_force_active` option (disable to support `-code_merging`)
...
Fixes #13
2024-01-13 21:54:10 -07:00
Luke Street
58b6d7c7d5
Avoid duplicate unit names when auto-splitting
...
Fixes #20
2024-01-06 21:57:42 -07:00
Luke Street
d470f7aec6
Version 0.6.5
2023-12-20 20:30:48 -07:00
Luke Street
227153193e
Sanitize auto-function-split names
...
Fixes #16
2023-12-20 20:28:30 -07:00
Luke Street
0cfc5df20b
Overhauled common BSS support & more
...
- With a map, attempts to detect and handle common BSS automatically
- With a map, attempts to detect and correct inflated common BSS bug (< GC 2.7 linker)
- Support for "stripped" symbols, sometimes required to match inflated common BSS sizes
- Warns on duplicated TUs in a map (other than common BSS)
- Automatically adds `comment:0` to `.s` TUs from a map (avoids linker crash)
2023-11-29 18:31:35 -05:00
Luke Street
5128ff67b2
bin2c: Honor symbol alignment
2023-11-26 01:12:34 -05:00
Luke Street
dd60128ba0
Extract embedded assets to binary and C header
...
Adds an "extract" list to project configuration:
```
extract:
- symbol: SomeData
binary: Lib/SomeData.bin
header: Lib/SomeData.inc
```
This example extracts the data of symbol
`SomeData` to `out_dir/bin/Lib/SomeData.bin`,
and a C array representation to
`out_dir/include/Lib/SomeData.inc`.
Resolves #11
2023-11-26 00:35:05 -05:00
Luke Street
038354a37e
Version 0.6.1
2023-11-22 13:01:42 -05:00
Luke Street
7168d2632f
Version 0.6.0
2023-11-18 23:38:43 -05:00
Luke Street
363fa2ac72
Use custom syntect packs to reduce binary size
...
- Custom syntax set containing only C/C++
- Custom themeset containing only Solarized (Dark)
- Disable default syntect features
2023-11-18 16:12:03 -05:00
Luke Street
8f559c8921
Update dependencies & CI changes
...
- Use separate release-lto profile for CI
- A couple of clippy fixes
2023-11-18 15:03:24 -05:00
Luke Street
5e13998e93
Major `dwarf dump` rework
...
- Supports games with C++ DWARF info
- Syntax highlighting when printing to console (disable with `--no-color`)
- Overall improvements to parsing and output
2023-11-18 13:56:58 -05:00
Luke Street
ec4caf5000
Smarter configuration updates
...
- Avoid overwriting `symbols.txt` or `splits.txt` if the file was modified since it was read or if the file's contents didn't change.
- Remove `binrw` and `byteorder` dependencies, moving to `FromReader`/`ToWriter` traits.
- Migrate generic bounds to `where` clauses.
- Remove unused `build.rs` logic.
2023-11-07 23:21:59 -05:00
Luke Street
c452b74666
Version 0.5.7
2023-10-10 12:33:27 -04:00
Luke Street
95c779b105
Better terminal color support
...
- Enables ANSI on Windows 10
- Disables colors if unsupported
- Supports `--no-color` and env `NO_COLOR` to disable
- Supports env `FORCE_COLOR` and `CLICOLOR_FORCE` to enable
2023-10-10 12:32:05 -04:00
Luke Street
a164852a15
Write gap symbols as hidden
2023-10-07 14:50:01 -04:00
Luke Street
db506fb927
Update dependencies & macros.inc for ppc750cl
2023-10-06 01:20:04 -04:00
Luke Street
36bb5ddcc6
Zero out section data for relocations in relocatable ELFs
...
Fixes issues with Wii versions of mwld.
2023-10-01 12:50:21 -04:00
Luke Street
c354c6da4b
REL section alignment fixes
...
- Honor section alignment from splits.txt when writing RELs
- Better heuristic for determining REL section alignment on initial analysis
2023-09-26 13:06:57 -04:00
Luke Street
610a2e56b9
Add `ldscript_template` option to project config
2023-09-23 07:56:49 -04:00
Luke Street
400fb7fa7f
Add `code_size`, `data_size` to generated `config.json`
...
Also simplify project config generation by skipping default fields
2023-09-14 17:24:00 -04:00
Luke Street
59a4eb33d0
Write `version` in generated `config.json`
2023-09-13 17:07:06 -04:00
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
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
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
347889773d
Version 0.3.7
2023-08-15 23:18:15 -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
8200ee7649
Version 0.3.5
2023-08-10 00:06:42 -04:00
Luke Street
457ee10a42
Emit FORCEACTIVE in LCF & various fixes
2023-08-09 01:24:23 -04:00
Luke Street
bf0dd310e6
Bump version
2023-08-07 20:07:13 -04:00