====== Porting guide ====== 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?)