DIGIC Color control

Started by discocalculi, October 29, 2012, 07:32:08 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

discocalculi

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