An attempt to create a high-level guide for how to port Magic Lantern to a new camera.
It's very important to note that at present, this guide is written by two people in the process of doing a new port (200D and RP specifically). We don't know (much of) what we're doing. That's the point - if you want to start a new port, you don't know what you're doing, either. But at present, it means these are going to be messy, confusing docs.
Requirements to get started
- An unsupported cam (link to supported cams should go here)
- A dev environment and ability to build ML (link to page holding links to how to setup source download and build (these pages already exist on wiki I think). Probably Qemu setup linked from here also? It's a soft req, you could in theory do without it…)
- Reverse engineering tools (link to page holding links to recommended tools / tool categories. Prefer open / free tools where possible, documenting closed tools is less useful)
Porting process overview
- Understanding ML (source tree structure, build process, high-level overview of boot process)
- Early steps (link to page with: dump rom, Ghidra project setup, creating platform/XXD for a new cam)
- Getting code running (don't know how to write this. Explain that this is already done for most/all D45678X cams and what this implies)
- Showing something on the screen
- Logging from the cam
- … (digic-explorer? CONFIG_HELLO_WORLD build? Then what?)