update:CHDK for G7X Mark II, G5X and EOS M3, M10 now supports clean overlay out of the box. A script is not needed.
For information on how to install, read
https://chdk.fandom.com/wiki/Prepare_your_SD_card starting with the blue information box at the top.
In CHDK menu, apply these settings:
Video Parameters -> Clear Canon overlays [Rec] (or MviRec)
Video Parameters -> Show remaining videotime [Don't]
CHDK Settings -> Disable LCD Off [Always]
CHDK Settings -> OSD Settings -> Show OSD [ ]It
appears that on EOS M3, some lenses can make the camera ignore the
Disable LCD Off CHDK setting. To help us fix that, please post in the linked thread.
Cleaning the overlay on
EOS M5,
EOS M6 and
M100 can be done with a
script.
Script for M100Script for M6Script for M5Save the script as extend.m in the root directory of the card. The card should be prepared (
https://chdk.fandom.com/wiki/Canon_Basic/Card_Setup) to run scripts.
Switch on the camera in playback mode and press SET. If the script does what is intended, the overlay should be mostly clean when you switch the cam to any shooting mode. There might be some parts of the overlay that remain unaffected.
If it doesn't work, the card isn't prepared correctly. MS Windows may hide the real file extension which can be a cause of failure.
Support can be added for other DIGIC 6 and DIGIC 7 models, on request.
Original post follows.
In case anybody asks for it.
Initial implementation of clearing Canon overlays. I only tested this using the LCD, but I believe it will work for other output devices.
Current features:
- Overlays can be removed in
- rec mode, or just
- during movie recording
- CHDK overlays are not affected
CHDK menu: Video parameters -> Clean Canon Overlays
[Never] - do not hide overlays
[Rec] - hide Canon overlays in rec mode
[MviRec] - only hide Canon overlays when recording video
Current known limitations:
- When using the "during recording" setting, some Canon overlays may remain on screen. One that I know is the Canon grid (it needs to be switched off in Canon menu).
- Some extra graphical elements may remain visible, regardless of setting: On the M10, the (blue) background of the mode icon can't be removed. This icon only exists in some modes like Hybrid Auto. I also found that when accessing picture controls (Av, Exp. comp, Tv), background shadow of these controls may be visible.
- The M3 port doesn't currently support alternative output devices (that only affects the CHDK overlay though).
- The M3 code is done blindly, it's possible that a palette other than '0' is used in rec mode (someone could verify this by peeking 'active_palette_buffer' - address is in stubs_min.S).
Tech details
Current implementation is DIGIC 6 specific. Implementing on previous DIGIC generations makes little sense as none of them supports higher resolution output in rec mode. Same goes for the other D6 cameras - HDMI is disabled on them in rec mode. However, it should be possible to make an implementation on D4 and D5 ports that support palette manipulation.
The M3 and M10 seem to have 4 palettes (4 bytes per entry, 256 entries). All 4 are in use while using the camera with LCD, which makes me think that the output device does not influence them.
I believe the palettes are for the ARM side firmware, the Xtensa side only receives the actual 32bit colors when it is instructed to draw something.
The palettes are copied from ROM to RAM on first access and (I think) they remain unchanged afterwards.
As written in the limitations section, not all screen elements respect the palette.
D6 implementation
Conditions are continuously evaluated. When the overlay needs to be removed, the palette is copied to a malloc'd buffer (this is only done once), then the Canon palette is zeroed out (all entries set to 0, which means "invisible"). To make (most of) the overlay disappear, a full-screen empty dialog is displayed and removed quickly. Remaining elements disappear when they are redrawn by the Canon firmware (exception: see "current limitations" above).
When the overlay needs to become visible, the palette is copied back and the dialog-trick is used again.
It's probably possible to improve the current implementation (such as: change the Canon palette pointer instead of copying the whole palette), and add other features (make the overlays visible when user interacts with buttons/wheels/touchscreen).
Test builds are provided on request.
cleancanonoverlays_m3_m10_v1.diff (14.81 kB - downloaded 59 times.)