User Tools

Site Tools


unbricking

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Last revisionBoth sides next revision
unbricking [2012/07/09 17:19] – created a1exunbricking [2012/07/09 17:22] – [**Solution 0**] a1ex
Line 22: Line 22:
   * PROP_VIDEO_MODE (0x80000039 on 5D Mark III 1.1.2)   * PROP_VIDEO_MODE (0x80000039 on 5D Mark III 1.1.2)
  
-==== **Solution 0** ====+==== Solution 0 ====
 **Simply reboot the camera without a card and clear the settings.** **Simply reboot the camera without a card and clear the settings.**
  
-==== **Solution 0.5** ====+==== Solution 0.5 ====
 **Go to C mode, change the affected setting back and forth from Canon menu, reboot in CA mode, then reboot in M mode. [[http://www.reikan.co.uk/photography/blog/?p=1550]]** **Go to C mode, change the affected setting back and forth from Canon menu, reboot in CA mode, then reboot in M mode. [[http://www.reikan.co.uk/photography/blog/?p=1550]]**
  
Line 41: Line 41:
 So... let's look at the code (with [[GPL|Tools/ARM console]]): So... let's look at the code (with [[GPL|Tools/ARM console]]):
  
- **s TempMovSoundRecord** +    s TempMovSoundRecord 
- ff85e364: 'TempMovSoundRecord != PROP_MOV_SOUND_RECORD_ON'+    ff85e364: 'TempMovSoundRecord != PROP_MOV_SOUND_RECORD_ON'
    
- **r ff85e364:** +    r ff85e364: 
- PROP_HANDLER:str:PROP_MOVIE_SOUND_RECORD_FOR_CREAT+420: +    PROP_HANDLER:str:PROP_MOVIE_SOUND_RECORD_FOR_CREAT+420: 
-  ff85e22c: 028f0e13 addeq r0, pc, #304 ; *'TempMovSoundRecord != PROP_MOV_SOUND_RECORD_ON' +     ff85e22c: 028f0e13 addeq r0, pc, #304 ; *'TempMovSoundRecord != PROP_MOV_SOUND_RECORD_ON' 
-  'TempMovSoundRecord != PROP_MOV_SOUND_RECORD_ON'+     'TempMovSoundRecord != PROP_MOV_SOUND_RECORD_ON'
  
 Let's decompile this: Let's decompile this:
  
- **dec PROP_HANDLER:str:PROP_MOVIE_SOUND_RECORD_FOR_CREAT** +    dec PROP_HANDLER:str:PROP_MOVIE_SOUND_RECORD_FOR_CREAT 
-  +   
- [[...]]  +    [...] 
-    if arg0 == 67764263/2: +       if arg0 == 67764263/2: 
-        DebugMsg(129, 3, msg='PROP_MOVIE_SOUND_RECORD %d %d %d %d ######', *0x2708, *(arg2), *0x270C, *0x2710, *(arg2), ...) +           DebugMsg(129, 3, msg='PROP_MOVIE_SOUND_RECORD %d %d %d %d ######', *0x2708, *(arg2), *0x270C, *0x2710, *(arg2), ...) 
-        if *(arg2) == 0: +           if *(arg2) == 0: 
-            TH_assert('TempMovSoundRecord != PROP_MOV_SOUND_RECORD_ON', 'PropertySatellite.c', 0x270) +               TH_assert('TempMovSoundRecord != PROP_MOV_SOUND_RECORD_ON', 'PropertySatellite.c', 0x270) 
- [[...]+    [...]
  
 Looks like property 67764263/2 = 0x2050013 should not be zero. Valid values are 1,2,3 (with property spy on a healthy camera, or with guesswork if you don't have one). Looks like property 67764263/2 = 0x2050013 should not be zero. Valid values are 1,2,3 (with property spy on a healthy camera, or with guesswork if you don't have one).
Line 69: Line 69:
 What to do? What to do?
  
- In [[276]]: dec TH_assert +  In [276]: dec TH_assert 
- if aAJ_TH_assert_struct_0x19C8_0x00_to_0x08.off_0 == 0 /*EQ*/: +  if aAJ_TH_assert_struct_0x19C8_0x00_to_0x08.off_0 == 0 /*EQ*/: 
-     TH_con_puts('x07Assert: File %s,  Expression %s,  Line %dn', arg1, arg0, arg2) => ret_TH_con_puts_FF814D00 +      TH_con_puts('x07Assert: File %s,  Expression %s,  Line %dn', arg1, arg0, arg2) => ret_TH_con_puts_FF814D00 
-     AJ_msleep_sub1_assert_fail(arg1, arg1, arg0, arg2) => ret_AJ_msleep_sub1_assert_fail_FF814D0C +      AJ_msleep_sub1_assert_fail(arg1, arg1, arg0, arg2) => ret_AJ_msleep_sub1_assert_fail_FF814D0C 
- if aAJ_TH_assert_struct_0x19C8_0x00_to_0x08.off_0 != 0 /*NE*/: +  if aAJ_TH_assert_struct_0x19C8_0x00_to_0x08.off_0 != 0 /*NE*/: 
-     JUMP(aAJ_TH_assert_struct_0x19C8_0x00_to_0x08.off_0)+      JUMP(aAJ_TH_assert_struct_0x19C8_0x00_to_0x08.off_0)
  
 If you really have cojones, [[https://bitbucket.org/hudson/magic-lantern/changeset/9876df05a784|install your own assertion handler]] in order to ignore failed asserts. This should give you access to the menu. But... the consequences of doing this might be **arbitrarily bad** in theory. If you really have cojones, [[https://bitbucket.org/hudson/magic-lantern/changeset/9876df05a784|install your own assertion handler]] in order to ignore failed asserts. This should give you access to the menu. But... the consequences of doing this might be **arbitrarily bad** in theory.
unbricking.txt · Last modified: 2012/07/09 17:23 by a1ex