Magic Lantern Firmware Wiki

Camera-specific VRAM details[]

See VRAM_ADDR_from_code for a tentative to find VRAM addresses from code analysis.

See DbgMgr#Find_VRAM_addresses to fin them using the DebugManager

See VRAM/Geometry to see how to access pixels and how to transform coordinates between image buffers.

Image VRAM[]

YUV 422; there are many buffers and many sizes. With built-in LCD, image VRAM size matches bitmap VRAM size.

 * R = Y + 1.403V'               *
 * G = Y - 0.344U' - 0.714V'     *
 * B = Y + 1.770U'               *

Bitmap VRAM[]

Overlays ontop of YUV image. Some palette entries have alpha component. LSB is across, MSB is down. (0,0) is upper left corner.

This overlay is double-buffered. See VRAM/BMP.

The palette is different in Play mode and normal shooting mode. The colors depend on the chosen skin. The LiveView mode does not seem to change the palette (it seems to use the last one).

The first 5 rows (80 entries) are always the same.

To test these hypotheses, use Debug -> Draw palette (and if you arrive to different conclusions, edit this page).

Transparent entries:

  • 0 - seems fully transparent
  • 3 - semi-transparent
  • 20 - semi-transparent (but more opaque)
  • 1 - almost opaque white (just barely transparent)

This is the palette for Play mode:


This is the palette for the 550D's white skin (Screen color 1):