This page is work in progress - your feedback is welcome.

Main Builds » 1200D / Rebel T5 1.0.1

Latest Build (2017-09-19 16:58)

1-about.png 2-freemem.png 3-lua-hello.png 5-file_man.png menu.gif sokoban.gif

Test results: 4 passed, 0 failed.

Build Log

Emulation Log

User Guide

Forum - 1200D/T5 1.0.1

Forum - General Help Q&A

Bug Tracker - 1200D/T5

Download stats

Older Builds (hide) (hide details)

Build Log

Build Log

dff0ff4: 1200D: disabled flexinfo to free some memory

c381074: Merged unified into 1200D

80501e7: installer: fix compilation

22a03ba: Merged in daniel_fort/magic-lantern/update-to-700D.115 (pull request #813)
Update to 700D.115

5e44a93: 700D: fix AbortEDmac

77e64aa: Dummy merge with dfort's unified

4ce4d28: 700D, 6D, 7D: fix AbortEDmac

b363c94: 700D: undo dialog_refresh_timer change in mlv_rec/mlv_lite
(this address is the same in 1.1.4 and 1.1.5)

7e969b4: Update sf_dump module to 700D.115

93e177a: Fixed is_taskid_valid stub.

0b141cd: Merged unified into update-to-700D.115

e228e1b: Added minimal autoexec.bin for 700D

2023513: Merged unified into update-to-700D.115

72ac881: Merged unified into update-to-700D.115

434b7eb: Incorporated pull request #842 to fix Autoexposure module

70852eb: Merged hudson/unified into unified to prevent new remote heads.

2e989b7: Update to latest exiftool

435cb10: Merged unified into update-to-700D.115

f15d607: Resolve conflicts with changes to Task info in stubs.S

1400d79: Merged unified into update-to-700D.115

2a83ae8: Added new ML-SETUP.FIR created by a1ex

fc28684: update to firmware revision 700D.115

fa90b21: hg rename 700D.114 700D.115

Build Log

232f6d7: 1200D: AbortEDmac stub

4278098: Merged unified into 1200D

28cbcd0: 1200D: attempt to fix half-shutter button CFn
(not tested)

ef3c4ca: 1200D: disabled full-screen magic zoom

71b5cf4: 1200D: enabled CONFIG_PROP_REQUEST_CHANGE

56f0cbc: 1200D: fix additional_version

226838b: Merged in daniel_fort/magic-lantern/unified_silent_module_fix (pull request #854)
modify silent.c to work with commit f404e5f

0e9da39: TCC Makefile: fix minor typo

b6df56d: silent.c: there are no info bars in paused LiveView mode

d8d44a7: modify silent.c to work with commit f404e5f
Raw backend: allow displaying raw previews without conflicting with LiveView info bars

0752dd8: Merged in raw_fixes (pull request #828)
Raw fixes part 5

f3f6916: fio-ml: added get_dcim_dir_suffix(); moved get_dcim_dir() from dryos.h

17ceddd: mlv_rec/mlv_lite: moved write_mlv_vers_blocks to mlv.c/h
(avoids duplicate code)

02f01f0: mlv_play: fix a fio_malloc issue (not tested, might fix issue #2766)

e5d9110: Merged in raw_capture_info (pull request #827)

a9f41d0: mlv_dump: fix compilation after rawc header update

ff6f36e: get_current_dialog_handler: fix return value when no dialogs are present

afcf332: fix rules to allow "make -j"

07d376a: Merged in edmac (pull request #811)
EDMAC module + fixes

b50b476: edmac-memcpy: fix compilation

50ca62d: Merged unified into edmac

3f5322a: Merged in backtrace (pull request #849)
Stack trace (aka backtrace) in crash logs

2804bee: Close branch backtrace

8551a9c: selftest: fix incorrect strings (AllocateMemory != system memory)

a90ddf6: Makefile: minor fine-tuning; updated comments

e9c4d71: Makefile: fix compiling backtrace on fresh clone

2665fb0: selftest: fine-tuned comments and strings

f3f43d4: selftest: re-enabled fault emulations
(some of them are useful for testing the stack trace, as they will trigger ERR70)

2aaafcd: backtrace: sync with qemu (e4376a1)

2211521: Makefile: workaround to unbreak the builds
(how to fix it properly?)

3d94d84: Makefile: mark $(QEMU_INSTALLED_DBI_DIR)/backtrace.% as optional dependency
todo: any way to do the same without .SECONDEXPANSION ?

e6632e3: Makefile: moved backtrace.o at the top to fix first-time compilation
this makes sure backtrace.h is created before any other files that may use it (currently boot-hack.c)
also remove the symlinks on "make clean"

b5a5a3b: backtrace: sync with qemu (3db5423, fbb532b, ab6d33c, 115fe25)

85bf3db: Stack traces for crash and assert logs, using the backtrace backend

bd2144b: Updated backtrace.c to work on the camera as well
(same source file for both QEMU and ML)

bf97ab3: arm-mcr.h: fixed read_lr (not sure what the problem was) and added read_sp

89ef642: Imported backtrace code from 29f6edc

e0c1b48: Ghost image: fixed issue #2749

412ae1e: Merged in daniel_fort/magic-lantern/ (pull request #844) update

bd7c2cb: Added suggestion by @a1ex to guess the ROM[0,1] load address.

d3ef70e: Changed "base" to the address used when dumping the ROM

184e58a: Merged in daniel_fort/magic-lantern/unified-multiple-FW_VERSION-minimal-ML (pull request #846)
Multiple firmware versions for minimal ML

a934b32: Makefile.platform.base error trap for multiple firmware versions

1718d64: dual_iso: change cr2hdr to use the same wrapper for module_strings like mlv_dump, also fixes compile error caused by a module.h change from static to global
(module_strings_wrapper.h from 0c1c8b3)

3887ff2: Modules: allow including module.h in multiple source files

77651fe: Undo 4126b56 (to allow merging with crop_rec_4k)

d14d945: Update to latest exiftool

fcd5c99: mlv_rec: reduce chunk count to keep room for other files to create (and circumvent mlv_play failing playback)

9ee8258: mlv_rec: insert alignment NULL block before writers start to write aligned sizes

2c7e576: mlv_rec: ensure 32 bit alignment for VERS block sizes. just because.

7cafff4: Merged in daniel_fort/magic-lantern/700D_AE_fix (pull request #842)
Fixed 700D AE constants (for
Approved-by: Daniel Fort

b96072d: Fixed AE constants

ffbd722: fio-ml: workaround for existing code using FIO_ReadFile incorrectly (such as mlv_play)
selftest included

fed76e8: Merged in cache-fixes (pull request #838)
Cache coherence fixes (clean_d_cache, FIO, EDMAC)
Approved-by: Alex
Approved-by: g3gg0

2059650: Close branch cache-fixes

94950d5: fio-ml: updated comment on FIO_WriteFile

b97315b: selftest: check whether cache cleaning causes any performance regressions
(result: no significant difference on file I/O)

f1ff88d: Merged in daniel_fort/magic-lantern/EOSM_stubs_tweaks (pull request #839)
Display filters working (anamorphic preview, fisheye correction, raw video preview and others)
EOSM stubs tweaks
Approved-by: Alex

f9ebbc2: Corrected YUV422_LV_BUFFER_DISPLAY_ADDR value and enabled display filters:

590a5b7: Updated post_isr_hook/pre_isr_hook stubs

666ceda: Changed for consistency of stubs across all models.

a6320b7: my_fprintf: fix warning

07c1020: fine-tuned transfer size info

10e3346: selftest: AbortEDmac test

bc529a0: selftest: edmac_memcpy test

a57c840: transfer size test

7ab594e: edmac-memcpy: use and decode transfer size from flags (to be tested)

1168658: edmac_test: proper memory allocation

7b09278: edmac-memcpy: updated edmac_find_divider for latest hypothesis

a26f5e7: edmac_memcpy: looks like we can use widths that are not modulo 8 bytes

9e441b2: edmac-memcpy: refactored edmac_memcpy to avoid duplicate code

206683a: AbortEDmac stub for 500D, 550D, 5D2, 50D, 7D (not tested)

d35e1ec: edmac-memcpy: use cache handling similar to FIO;
updated selftest and bench modules for the new restriction

f238674: selftest: make sure the FIO cache coherence test fails without the FIO_WriteFile wrapper

5bf36e6: selftest: test for FIO_WriteFile with cacheable buffer
if you comment out clean_d_cache() from the FIO_WriteFile wrapper, this test will fail

ffe14a3: selftest: save log after each sub-test
(so one can interrupt the test suite and still see the log for the tests completed so far)

21b9cbc: selftest: fine-tuned DMA cacheable buffer test

55ab244: fio-ml: FIO_ReadFile wrapper to warn about caching issues
not sure how to handle it automatically - clean_d_cache before is not enough
adding another clean_d_cache afterwards appears to fix it, but it's risky
sed -i.bak '/ FIO_ReadFile/_FIO_ReadFile/' */stubs.S

442adb7: Refactored without fio_malloc in a few places
(todo: find a way to reproduce caching issues on file I/O and add it to

5d60636: fio-ml: FIO_WriteFile wrapper to handle caching issues automatically
sed -i.bak '/ FIO_WriteFile/_FIO_WriteFile/' */stubs.S

117ef8a: fix model-specific differences

b7909c3: in EDMAC model tests, print a summary of copying activity
(how many bytes were copied, how many were skipped and so on)
(this test outputs the raw logs used to find the EDMAC model - )

f3aeb38: tests for EDMAC model (to be included in QEMU)

01db741: AbortEDmac stub for 5D3 1.2.3

6b048b2: edmac.c: fix typo

822919a: Merged unified into edmac

91c1213: selftest: test for clean_d_cache
interrupts disabled, using edmac_memcpy to copy between display buffers
this test will fail without previous commit

8e1d43d: fix index size in clean_d_cache
(todo: test in

6c580fd: 5D3 1.2.3: fix CARD_A_MAKER (off by one)

b5f7474: removed unnecessary declaration of mlv_snd_is_enabled

61dc93d: mlv_snd: report back using ml-cbr when recording audio

543f545: added ml-cbr to modules using MODULE_NAMED_CBR()

7b9b8d8: audio uses ml-cbr to ask for recording

46d2ca7: ml-cbr: use strcmp to stay on safe side (caller might pass arbitrary length)

6fb1bf6: ml-cbr: update header with more information

9529184: fix ml-cbr locking issues

4126b56: dual_iso: temporary patch for module_get_string API change - probably needs a revert before merging crop_rec_4k into unified

d89d1f3: Deal with Windows line ending in grep 3.0, changed multi-line grep command to single line extended regular expression and remove localsyms file with make clean.

2e4c4c2: mlv_rec: embed VERS blocks into MLV file so there is no uncertainity about the modules used for a given recording

7319f07: mlv_lite: embed VERS blocks into MLV file so there is no uncertainity about the modules used for a given recording

6a6b2af: mlv_lite: use FIO_SeekSkipFile to determine file header size

b2102c2: mlv_dump: handle VERS blocks

7a83bf6: mlv_rec: added code and structures to helper routines to get version information embedded into the MLV file

a98c6c6: added routines and made a module loader routine non-static to allow other code to fetch e.g. strings from modules

4d90259: Merged in memcheck-fixes (pull request #829)
Fixes for various null pointer and uninitialized memory bugs

3b006b3: mem.c: disabled double free assert (it still gets overwritten by some deallocators)

6b9873d: menu.c: fixed some more null pointer reads
(found in QEMU with -d memchk)

59963c5: tskmon: fix read from null pointer

fbb3b4f: module.c: fix reading after the input buffer when parsing module symbols
(found in QEMU)

0abdbe0: memcheck: fix detection of double-free calls
(our marker was overwritten by Canon's deallocator, so the check was useless)
(bug found in QEMU)

56343c7: get_current_dialog_handler: fix read from null pointer
(found in QEMU)

4c8d3f7: bmp.c: fix dereferencing random (uninitialized) pointer
(found in QEMU)

bbe2c5c: mlv_lite: always override (toggle) the preview mode on *long* half-shutter press, when not autofocusing
(avoids transient screen changes on quick half-shutter presses)

8e0c516: mlv_lite: preview both full-size buffers while recording
(to catch future bugs that might cause the raw buffer to update every other frame)

29d86cc: Raw backend: exact height autodetection for 5D3
(lossless 8-12 bit compression works!)

fd07490: mlv_lite: fix shutter button remaining locked after recording with Frozen LV
(problem from exmem backend; not sure how to do a proper fix)

692ab1a: mlv_lite: slow down color preview to let lower-priority tasks run (such as histogram)

0554bca: FPS override: disable in x10 mode when half-shutter is pressed, to help with focusing
(example setup: full-res LiveView, FPS override at 4 FPS for continuous recording, zoom on half-shutter)

aeacbba: FPS override: display rolling shutter in the main menu when available
(either when raw recording is enabled or while recording H.264)
(useful for diagnosing the new crop modes)

04e8139: FPS override: also display rolling shutter as percentage of frame duration

432fa63: mlv_lite: do not print debug info when freezing LiveView
(seems to help with corrupted frames in modes with resolution pushed to limit, e.g. 1080p48)

39761ea: Include strstr in ML core

fdbbc55: mlv_lite: fix squeeze info in menu for 50/60p modes

3575b28: mlv_lite: display actual aspect ratio in menu, if different from selection

01c5b91: raw_rec: fix some resolution inconsistencies

1d35774: mlv_lite: fine-tuned menu for Frozen LV mode
(previously known as Hacked Preview)

6209ed2: mlv_lite: reworked preview options with (hopefully) a lot more reasonable defaults
- color preview with correct framing whenever plain LiveView is not accurate (crop/zoom modes etc)
- only use grayscale preview when recording speed is critical
- renamed the preview options
- half-shutter to override the automatic preview choice
(note: slot_count is valid_slot_count in compressed_raw)

f404e5f: Raw backend: allow displaying raw previews without conflicting with LiveView info bars;
updated mlv_rec and mlv_lite to use this capability

fb6910a: mlv_rec, mlv_lite: fix rawc saving after structure update in mlv.h

b3ed8b4: Fix c6f92ee

fa1b3cc: mlv_rec, mlv_lite: save RAWC (raw_capture_info)

0356223: Raw backend: fix raw_capture_info.skipping_y for EOS M
(720p unless recording H.264)

7d289a4: mlv.h: replaced struct raw_capture_info with individual fields
(binary compatible with previous version)

97678b1: raw_capture_info: redefined offset_x and offset_y to refer to first (top-left) *active* pixel
that way, optical black variations between formats (e.g. CR2 vs FRSP) are no longer relevant

bd661a2: mlv_dump: show the meaning of sensor crop factor

c0563f8: mlv_rec, mlv_lite: fix minor crop factor display issue
(division by 0 in photo mode)

c6f92ee: mlv_rec, mlv_lite: save RAWC (raw_capture_info)

33e3509: mlv_dump: print RAWC (raw_capture_info)

a2bbf26: mlv.h: RAWC block (struct raw_capture_info)

7674853: Raw backend: new CBR for modules (CBR_RAW_INFO_UPDATE)

443884d: Raw backend: new structure about image capture parameters (resolution, pixel binning modes)
(also updated mlv_lite and mlv_rec)
(can you suggest a better name?)

41b17cb: EDMAC: fix signed off2 on DIGIC 4

d5915d6: Backout 722c851 (fix FIR not included in the zip)

fc3ec35: Merged in raw_fixes (pull request #820)
Raw fixes part 4
Approved-by: Alex

c95ec19: Silent pictures: minor error handling fix

e26684f: Silent pics: only show the slit-scan mode option when you actually select slit-scan

a881f05: Silent pictures: fix allocating memory for a single picture
(frame size not known in advance and might be larger than max shoot block size)

eff649f: Silent pictures: fix overflow when allocating memory for burst mode

97cc437: Merged in task_name (pull request #796)
New method for getting current task names (refactor)
Approved-by: Alex

3664a5a: Close branch task_name

d014368: Raw backend: fix black border on raw previews (completes 23d1f0e)

3a47d96: 50D, 6D, 7D, 650D: current_task and current_interrupt stubs (tested in QEMU)

ecaa37f: 5D3 1.2.3: current_task and current_interrupt stubs

3af9e85: Merged unified into task_name

5114d3d: 500D: current_task and current_interrupt stubs

9d7eea4: srm_malloc_suite: extra wait after locking the GUI
(to be checked on cameras that don't pass the SRM memory test from

54c60ed: srm_malloc_suite: minor fix
(no effects with current usage)

23d1f0e: Raw backend: fix black borders on raw previews

9179d30: Tasks: undo changes to get_task_name_from_id (no longer needed)

3fb9408: Moved CURRENT_INTERRUPT_ADDR to stubs; added some more models (copied from QEMU)

9a892ac: dm-spy-experiments: current_task stub for EOSM

08262be: 5D2, 5D3, 550D, 600D, 700D: current_task stub

0fa1248: tasks.c, stubs: removed unused GetTaskName and get_current_task
sed -i.bak '/GetTaskName/d' */stubs.S
sed -i.bak '/get_current_task/d' */stubs.S

e160e2a: tasks.c, stubs: removed unused get_obj_attr
sed -i.bak '/get_obj_attr/d' */stubs.S

ba60e42: Refactored get_task_name_from_id(get_current_task()) with get_current_task_name() (to be made generic)

6ea56af: Ported get_current_task_name from dm-spy-experiments branch
(much faster, new stub required)

1783016: experiment - log all EDMAC channels every 0.1ms

8e458d0: show offset 0x40 on the info screen

25b8f83: edmac: edmac_get_channel

e705282: edmac: there are more than 48 connections (not sure how many)

b0574dd: Modules: allow including module.h in multiple source files
(fixes compilation of

e9087c0: Modules: removed some unused definitions

3744ed4: edmac.h: allow edmac_format_size to be called from core (of course, if the edmac module is loaded)

41bdf15: use microsecond timer for memory benchmarks

eda6473: verify memcpy-like functions when running memory benchmark

98f4031: edmac-memcpy.c: refactored to avoid static struct edmac_info

5b01490: Rewritten find_free_edmac_channels so it no longer requires user input

1248dea: Moved find_free_edmac_channels to the edmac module

d7b788b: Moved EDMAC info screen and pretty-printing function to a module

1de48c7: edmac: pretty-printing function for size configuration (edmac_format_size)
auxiliary functions: edmac_get_info, edmac_fix_off1
also updated debug edmac info with the new function

657aa39: edmac: edmac_get_pointer; comments

38a1409: edmac: experimental model for total data transfer size

d345c2a: Enabled AbortEDmac stub (most models; not tested)

dd6cffd: support for uncommenting unused stubs; minor refactors

866cd22: Stubs format

ce4b49b: Merged cleanup into unified

016a0e5: Removed april fools prank

8a6e123: debug.c: removed unused code

82d9b13: Zip comment: removed old links

732bdb3: fio-ml: fix possible buffer overflow with PROP_CARD_SELECT
(might happen on unusual settings or new models)

579a2fd: Makefile: summarize CONFIG options and GCC version from Makefile.user (if any) in the build log; minor fixes

722c851: Makefile: don't try to build the FIR on make install/zip

cdeb914: Modules: removed some unused definitions

30115e9: Debug -> Unmount SD: minor UI tweak (turn on the LED after unmounting)

4640f62: Merged in lens_info_fix (pull request #775)
Lens info fix
Approved-by: Daniel Fort
Approved-by: Licaon Kter
Approved-by: DeafEyeJedi
Approved-by: Lars Steenhoff
Approved-by: g3gg0
Approved-by: Alex

7692604: Close branch lens_info_fix

c46ffb2: Silent pictures: always reset powersave timer when taking a picture

da7884e: Lens info: serial number (to be tested)

4784c38: Lens info: minor menu updates (mostly help text)

85b4128: Lens info: minor menu layout changes

7db9475: Lens info: moved to Debug menu (to keep the Prefs menu for... preferences)

800e1f4: Merged in pre-record (pull request #728)
Pre-recording feature (mlv_lite)
Approved-by: DeafEyeJedi
Approved-by: David Milligan
Approved-by: Maqs
Approved-by: g3gg0
Approved-by: Mathew Kelly
Approved-by: Alex

081f36a: Close branch pre-record

86ec8e3: mlv_lite: fix chunk frame count (to be tested)

76c83eb: mlv_lite: fix invalid header under certain conditions involving very fast button presses
example: select a resolution higher than maximum, zoom in, return from zoom and press record very quickly

836de74: Merge with unified

9b9b87f: mlv_lite: fix MLV frame count when using pre-recording

273a758: Merged unified into pre-record

ca0aa82: check for property length and decide if this feature is available

11c5d04: fixed lens ID reading, added version etc. to be tested

529f0b4: raw_rec: pre-recording feature (experimental)

ab8e604: Merge raw_fixes into pre-record

Build Log

Build Log


  1. Format the card from the camera.
  2. Make sure you are running Canon firmware 1.0.1 (downgrade if needed).
  3. Copy ML files on the card and run Firmware Update.


  1. Run Firmware Update from your ML card.
  2. Follow the on-screen instructions.

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.