a bunch of symbols are in different places in unified vs digic6-dumper.
Yeah, that's because I did some changes in digic6-dumper in order to accommodate DIGIC 6/7/8 models, in particular, the refactoring to allow different boot methods, or the one to allow
different kind of stubs (such as ARM or Thumb code). Indeed, that branch went a little beyond "just" a simple dumper stage.
The digic6-dumper branch also contains a couple of experimental backends, that are not yet in unified:
- qemu (
pretty much ready for merging if you ask me)
- new-dryos-task-hooks (also
pretty much ready, depends on qemu, but there may be
surprises)
- lua_fix (
needs testing on currently supported cameras; depends on qemu, new-dryos-task-hooks, 100D and some others; basically good, but many model-specific changes to review; currently broken on at least 5D2 and 500D)
- patchmgr (breaks 7D, may break some reworked features, needs cleanup,
no dependencies)
So, I'd say the logical path to include DIGIC 6/7/8 into unified would be to merge the above branches (and their dependencies) first. There's also calle2010's
task rework that needs to be included, as it should be applied to all DIGIC 4/5/6/7/8 models. Unfortunately,
a straw broke the camel’s back, so... I'm very sorry these things are not done yet

In any case, I see your efforts as major progress - sometimes,
reinventing the wheel can be very helpful to understand how things work.
The code is kind of ugly [...]
That's also my issue - I can easily bang out code that does the job, but turning it into something clean and maintainable, with comments and without breaking existing stuff, and with readable history... requires a lot of extra effort from my side. Maybe it's worth it in the long run, I don't know. I don't have any experience with maintaining large codebases, besides ML.