Main Builds » 50D 1.0.9

Latest Build (2018-07-03 00:48)

Change Log

7a3b5fa: Ghost image: further cleanups and fixes

4702ca0: Ghost image: fix crash (issues #2796, #2783, #2878, #2885)

94442d9: features.tmpl edited online with Bitbucket: use id in th section heading to allow for direct linking via anchor

5e40987: Merged in edmac (pull request #886)
EDMAC module: fixes for DIGIC 4, connection map

b54a0c6: Merged in adv_int (pull request #907)
Advanced intervalometer updates

58e11ee: Merged in memory-backend (pull request #906)
Memory backend improvements

87dfe3c: Makefile: fix "make install_qemu CONFIG_QEMU=y" for minimal targets

7c04c75: memset64/memcpy64: use versions from b831cb1; fix calls from Magic Zoom to ensure proper alignment

375fa4e: Backout b831cb1 (breaks Magic Zoom and CONFIG_MARK_UNUSED_MEMORY_AT_STARTUP, as memset64 is not the same as memset)

287c785: adv_int: ignore empty lines when loading keyframes

6239bc6: adv_int: use strstr instead of my_strstr (fixes slow load)

284656a: Include strstr in ML core

ef21d82: adv_int: refactor keyframe time formatting

5ca412b: adv_int: auto-load the saved sequence at startup

a4869c8: adv_int: renamed menu entry to "Ramping options"

86accb6: Memory backend: drop timestamps from history; show last 1024 events

d016ccf: Memory backend: show total allocations (number and amount), including untracked ones

0e56fe7: Memory backend: allow using shoot_malloc as a last resort, even for small blocks;
allow small blocks (smaller than minimum_free_space / 64) to break the minimum_free_space limit (until minimum_free_space / 4)
fine-tuned until the old set of Lua scripts were able to run on 1100D without umm_malloc

28bf259: Memory backend: a pointer to task names (rather than copying the full string) should be enough

a67b3ed: Memory backend: renamed memcheck_mallocbuf to memcheck_entries

b831cb1: Moved memset64 and memcpy64 to
- simplified to accept only 32-bit aligned pointers
- using regular memset for Magic Zoom
- closing issue #1995

d7866ee: Memory backend: if shoot_malloc fails, try SRM next
(poor man's autodetection, since we don't know how to query the available size in advance)

ee7abdb: exmem: reworked shoot_malloc to handle large requests better
- moved autodetection to dedicated functions (for both fragmented and continuous allocations)
- autodetect the max available size for large requests (slower, but when it fails, it fails gracefully)

bd7a1dd: exmem: removed the "relaxed" checks introduced in 04f02a4
(not sure why they were needed; we'll find out if it fails)

766ffbb: exmem: speed-up shoot_malloc
(1s timeout probably not needed)

51f6129: exmem: do not keep track of full shoot memory allocations
(allows reserving some memory in advance and allocating all the remaining RAM afterwards)

f12eba5: Memory backend: fix handling of untracked blocks
(possible buffer overflow before this fix)

f9f3358: Memory backend: figured out why AllocateContinuousMemoryResource may crash with many small blocks
(todo: figure out where to keep 89e3b12 or not; adapt tests if not)

e4fd29d: Memory backend: when checking available memory, allocate both Shoot ans SRM at the same time
(they may overlap)

1162fce: Memory backend: fix initialization

67f582f: mem.c: option to disable heap poisoning
(useful when running in QEMU with -d memcheck - with this, overflowing reads will be caught as well)

26f1647: Memory backend: allow breaking minimum_free_space for small blocks
(it was possible to fail the allocation for very small blocks that could not be covered by shoot_malloc)

c6d6699: Memory backend: allow AllocateMemory as a last resort, even if free space is below limit
(it was possible to fail the allocation for very small blocks that could not be covered by shoot_malloc)

1e4985e: memory backend: reduce memcheck area (should reduce overhead a bit)

4e59a74: memory backend: ignore null pointers passed to free (Lua does that)

2ade4a5: exmem: when autodetecting available memory, print all srm/shoot memory blocks to console

fee1ee2: edmac: make sure the log files don't have unnecessary newlines
(channels with complex size configuration may get printed on multiple lines; that makes the log file harder to parse)

1508a54: edmac: LOG_INTERVAL can now be changed from menu (persistent setting)

564b0c5: edmac: use numbered log file names

edcb52f: edmac: fix behavior when the extra info buffer gets full

056e56e: edmac: use half-shutter as trigger for logging EDMAC channels;
fine-tuned messages

2eddc9f: edmac: fix crash on models other than 5D3
(there was a hardcoded stub)

4b161ce: edmac: fix crash when using "Log EDMAC usage" on D4 models

bc3bd0d: Merged unified into edmac

b4a8fad: Added to nightly builds

2061922: edmac-memcpy: check to make sure all models have AbortEDmac
(to make sure it's correct: -> Stubs API test)

fff0aeb: display connection map (experiment)



  1. Make sure you are running Canon firmware 1.0.9.
  2. Format the card from the camera.
  3. Copy ML files on the card and run Firmware Update.
  4. After installation, copy your ROM files (ML/LOGS on the card) to a safe place.


From camera:
  1. Run Firmware Update from your ML card.
  2. Follow the on-screen instructions.
From one card:
  • Canon menu: Format card, remove Magic Lantern.
  • Never delete the Magic Lantern files from the card! Format the card instead.
Detailed instructions on the wiki.

Important notes

  • After opening the card door, always wait for LED confirmation (or for 5 seconds) before removing the card, even if your camera is turned off!!!
  • On this camera, removing the card too fast might cause permanent damage.

Camera doesn't boot?

  1. Remove battery, remove card.
  2. Put battery back, close card and battery covers.
  3. Start the camera without card.
    • » Did it work? Format the card, reinstall Magic Lantern.
    • » Still not working? Double-check battery and card doors, run the diagnostic tools and get in touch with us.

Troubleshooting tips

  • If your camera locks up, remove the battery and reboot.
  • Make sure you have a backup card without Magic Lantern on it (just in case).
  • To restore ML defaults: Prefs → Config files.
  • To see what settings you have changed from ML defaults: Modified (Δ) menu.
  • To disable Magic Lantern temporarily: press and hold SET at startup.

Older Builds

Magic Lantern is not approved nor endorsed by Canon in any way, and using it will probably void your warranty.
We are not responsible for any damages to your camera.

Copyright (C) 2009-2017 Magic Lantern Development Team

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.