Magic Lantern Forum

Developing Magic Lantern => General Development => Topic started by: discocalculi on October 29, 2012, 07:32:08 PM

Title: DIGIC Color control
Post by: discocalculi on October 29, 2012, 07:32:08 PM
I've just scratched the surface but found that 0xC0F1A000 - 0XC0F1AFFF possibly holds all the colorchannels including white. I was too lazy to make any looping code, but unrolled it instead:

http://pastebin.com/PfF5DYua

Put the code for example into lv-img-engio.c  in function digic_poke_step() after digic_show();
Dont forget to mask out //_EngDrvOut(digic_register, digic_value);

[Edit]
Running it will resemble Movie ML digital ISO gain. But there's possibility of changing each color channel, ie. like the filters in Sin city, or others. The only problem is that not all the values have been mapped. This requires some further DIGIC Poking, or code testing and mapping...

[Edit2]
Possible banding and noise is introduced in the shadow areas. Some of the registers will not react until for example underexposed by -2 EV or overexposed +2 EV of a certain color. 

http://magiclantern.wikia.com/wiki/Register_Map/Brute_Force/C0F1xxxx#C0F1A0xx