I am currently the most active dev for modern Digic cams (i.e., badly supported new cams). Kitor also seems to be back now, which is greatly appreciated!
I've been quite quiet lately, so I thought a big summary post to catch up would be useful. Also, I'd like opinions from other active devs about future direction re code management.
If you don't want to read about technical stuff around ML code, you may want to skip this one

The notes below refer to my repo, here:
https://github.com/reticulatedpines/magiclantern_simplifiedNote that this is "mine" in the sense of I made it, not that I own the code, and not that I'm the only dev: anyone is welcome to contribute! Kitor and coon42 are the biggest non-me contributors I think but we've had useful work from quite a few more.
A lot of the work I've been doing recently is on non-visible stuff (oh and I did a 7D2 port). Qemu, automating ML testing, improving code quality. This is boring for users but valuable for devs. The main reason I am cautious here is because while the original intention of this repo was for adding support for modern cams, it's turned into the most active, modern ML repo. The original regression testing system isn't available to me, so I'm writing another one (I can re-use parts of the old one). When that is workable, we will have higher confidence that changes for new cams don't break old ones. At that point I'd like to get user testing for old cams, to ensure feature parity with official repo(s).
Repo summary: Quite a while back, I ported ML code so it expects to use Git, not hg. I've done similar modernisation work in other areas. Builds with modern toolchain. Greatly reduced compiler warnings (some of these fixed years old bugs). Some bugfixes that affect all cams, new and old. Reliable fix for ISOless err on a few models.
This repo supports Digic 6, 7, 8 and X cams, 18 models so far. It builds and *should* work on all old cams, too. These are not well tested, more on this later. Much work remains but it's easy to get started if your cam is on this list; you have working ML GUI, just very few features. Pick a feature and solve it, one at a time!
See kitor's post about overall ML project status:
https://www.magiclantern.fm/forum/index.php?topic=26852A lot of work has been done to allow adding support for a new cam. When I have a new cam I can add support getting to ML GUI in a few days in most cases. This will take longer for someone unfamiliar with ML, but it's not that hard.
Merged multiple branches (lua_fix, unified, qemu, digic6-dumper) - no need to frequently switch branches.
The big missing piece here is that we don't have crop_rec_4k integrated. I would like to merge crop_rec code but I require it to not cause problems on any supported cams. I don't want to maintain multiple long-lived branches. This might mean fixing Digic 4 bugs, or disabling crop_rec features on Digic 4 cams so no bugs can be triggered. Bilal may be working on this problem (I don't have the experience with crop_rec features, or cams to test it on).
Added MMU based memory patching support for cams which have MMU (D7 and up). Based on srsa's code (thanks!) but extended. Unpatching not yet supported.
This allows patching very large amounts of ROM code, much more than is possible on old cams. In theory this means we can do a lot of very cool stuff. There is effectively no limit on how many patches we can apply on modern cams.
As part of the above, simplified code for patch manager. In some ways this makes the UI worse, but it removed a few hundred lines of code, and makes it easier to work with MMU related patching for modern cams. Future work will introduce patchsets, which will allow unpatching on MMU and return non-MMU patching UI to the old look.
Wifi improvements: 200D can use wifi to send whatever we want, wherever we want, and get data back. This code should be easy to port to other cams. You can tether to your phone, and we could make it upload photos as you took them. Many other possibilities.
Module system improvements:
- build process improved; much faster.
- crash bug removed from module build / load process (modules could be loaded at addresses too far from ML code to be called, this would crash).
- fixed old system including modules in zip that a cam couldn't run (bad dependency checking).
- module compatibility extended to Digic 6, 7, 8 and X.
Qemu-eos moved to separate repo and updated from 2.5.0 to 4.2.1:
- much easier to build.
- much easier to modify (no awkward patch file workflow, it's just a normal repo!).
- improved ARM emulation.
- better / faster SD emulation.
- some features of qemu-eos broke in the update, most have been fixed (90% complete?).
In theory, works as before on old cams. In practice, I don't know, and this will want testing. I think this should wait until after I have a working Qemu regression testing system, but that should be soon (ish). Also when that is available, I'd like to update to Qemu 6 - 4 is no longer supported. Internally, 4 is much closer to 6 than 2 was to 4: this update should be much less painful.
https://github.com/reticulatedpines/qemu-eos/tree/qemu-eos-v4.2.1Future repo discussion questions:Should we try to have a single official repo again? We currently have lots of forks that different people maintain, for different purposes. This is confusing for new users, and annoying for devs trying to support them. Plus, the longer this continues, the harder it becomes to get all the good features in one place.
I feel the old official repo has significant problems. One major one is that nobody is maintaining it. We could try to get access again, but it's Mercurial and very few people understand that system - I wouldn't be able to maintain it even if I had access. I also think that the approach of using long-lived branches and cross-merging code between them is confusing, expensive in terms of effort, and liable to introduce problems due to complex merges.
I think we should move to Git. All devs know git, it's the de facto standard for source control. If you don't know any VCS, git is the easiest to find tutorials for. We have a hard time getting devs, using an obscure system is off-putting.
Merging together the different repos will of course involve work and need co-operation. I think it's worth it, but it's up to anyone that has their own fork as to whether they want to do this. If you have ideas about how I can make this easier or more attractive, I'd like to hear them (hopefully when I have a testing system, that's a good thing you can take advantage of!).
Any official repo should be controlled by multiple trusted parties. Git and github support this, so this is a question about defining and documenting how we want management of the repo to work. To get things started, I'd suggest we want at least three active users with repo control, and potentially a larger group of people with commit rights / PR review rights.