Canon 80D

Started by ariznaf, June 02, 2016, 09:27:03 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

whoreable

wow, congrats with the new progress guys!

I love ML, I had it for my 50D which just finally died, not ML fault. It allowed me to do so much more, so Im hoping you guys can make that happen for the 80D here shortly! Happy holidays everyone!

Fishhy

i am not really experienced with all this stuff, but i keep coming back here to check how it is going. i would like to say i appreciate what you are all doing and working to get this working. but what stage is this at. is this still early stages or is this late stages, i am happy to test if you have a working model but as long as its relatively safe.
thanks again

tobixx

Oh my god! I'm so exited to read about ongoing development for the 80D! Coming from the mirror less world it feels a little bit like cutting off fingers. But with ML all the goodness will come back! Cheers to the developers! Thanks for your effort!

sombree

@a1lex
I've tried building from digic6-dumper and running autoexec.bin - no succes, camera locks up. But with this change (copy-paste from CHDK; I know that it's ugly) camera continues to boot to the main firmware. Basing on this and this I've tried to dump the rom or blink the led but still no succes :/

a1ex

Sounds promising; can you PM me a few autoexec.bin files you have experimented with, and their outcome? (in particular, the one that boots successfully and the one that attempts to blink the LED without success)

sombree

Quote from: a1ex on October 10, 2017, 09:22:51 AM
Sounds promising; can you PM me a few autoexec.bin files you have experimented with, and their outcome? (in particular, the one that boots successfully and the one that attempts to blink the LED without success)

PM sent.

whoreable


RavingRover

Generally ML can retrieve the shutter count from all ported cams, and is view-able via ML on cam.

Currently the ONLY method to get the 80D shutter/mirror count is to PAY $$ ($6 for winblows, $3.81 for mac - 2 diff apps), neither APT astronomy app, nor gphoto2 (linux) show it either - both free.  And no the jpeg does not show the shutter count either using a jpeg meta editor.

It appears ONLY via a usb conn and knowing specifically where the data is located, and dumping it and interpreting it correctly, is the only way to get this data.

So has anyone seen via a usb conn, some way or the place that the shutter count is stored, (maybe someone decompiling the rom dump, while trying to port ML, might have seen something like this or some hint to where ??)


TIA !

zerocool22

These guys also have software for it. Maybe you can get in touch with them? Or maybe decompile their code? if that is any help at all.

http://www.spt.info/index.php/service-adjustment-software

http://www.spt.info/sptstore.php/canon-eos-80d

LesterL

@a1ex
Are you still in need of an 80D for doing testing? I would be willing to donate $100 to help speed up that process. I'm sure we could find 9 more people willing to as well so you could get your hands on one. That is if you're wanting or have the time to work on it. If not, I totally understand.

a1ex

Sorry, I'm not interested in getting another camera. If any of you has the time, skills and motivation to complete the port, you are welcome to jump in.

Will resume looking at D6 models after merging the current QEMU developments and the recent DIGIC 5 ports into mainline. Meanwhile, please remember the development tools are public - you have a ROM dumper, a way to execute your own code on the camera and a way to emulate a small part of it; feel free to try sombree's findings and keep experimenting.

LesterL

I totally understand. Just wanted to facilitate if you were wanting one.

thejordanhall

Hey guys,

I have a Canon 80D and would be really interested in joining the mission to get ML for the 80D. However, I don't really want to brick it as I am a student and have barely any money to buy another. How would I be able to learn about coding/programing for the 80D ML and any other advice/tips for me to get into this?

It'd be awesome to make ML a thing for the 80D by the end of the year.

Thank :)

a1ex

The best way to start learning, in my (biased) opinion, is to use the emulator. That way, the risk of bricking the camera drops to zero (as you will not experiment with real hardware, but with a PC-based program). Besides, the emulator shows a LOT of internals that are not obvious when running the code on the camera (at this stage, you'll most likely see a black screen and you'll wonder why it doesn't work).

Sure, at some point you will want to try the code on your camera. Having something that works in the emulator decreases the odds of getting into trouble, and during these early boot experiments, I'd say the bricking risk is fairly low - should anything go wrong, the camera will most likely not boot. Non-volatile memories with camera settings (ROM, serial flash, MPU eeprom) are updated on successful shutdown, to my knowledge. Experiments from bootloader (e.g. the "recovery" branch) should be fairly safe, as long as you are not calling things like EraseSectorOfRom.

Even if you manage to get some invalid setting written to ROM, we now understand how these things work and can look into it. Already recovered a couple of D4/5 cameras that way, soft-bricked by either our programming mistakes, or also by third party apps, on cameras that never ran ML before. Sure, we've never tried to recover a D6, so if your camera is mission-critical, don't try it.

To get the emulation further, I need two things:

- a log of MPU communication (see mpu_send/mpu_recv stubs in the dm-spy-experiments branch)
- a serial flash dump (sf_dump module)

The first one can be probably started (but not completed) from bootloader. It's a bit tricky, I've got it somewhat (not reliably) working on D4/5 a while ago, the test code is somewhere in the Linux branch (look for MPU), but can be fully tested in QEMU.

The second one will probably not work from bootloader, but I haven't tested it. Todo: try on 700D/100D/M/6D/M2 in QEMU and ask owners of these cameras to try on real hardware).

Both of those will be a lot easier after being able to start DryOS tasks alongside Canon's main firmware, but if that step keeps proving difficult, there are still things to try.

BTW, high-resolution photos of the main board are always welcome (for any camera model, not just 80D). No coding skills required for this one :D

Spakes

Quote from: a1ex on November 10, 2017, 08:02:36 AM
The best way to start learning, in my (biased) opinion, is to use the emulator. That way, the risk of bricking the camera drops to zero (as you will not experiment with real hardware, but with a PC-based program). Besides, the emulator shows a LOT of internals that are not obvious when running the code on the camera (at this stage, you'll most likely see a black screen and you'll wonder why it doesn't work).

Sure, at some point you will want to try the code on your camera. Having something that works in the emulator decreases the odds of getting into trouble, and during these early boot experiments, I'd say the bricking risk is fairly low - should anything go wrong, the camera will most likely not boot. Non-volatile memories with camera settings (ROM, serial flash, MPU eeprom) are updated on successful shutdown, to my knowledge. Experiments from bootloader (e.g. the "recovery" branch) should be fairly safe, as long as you are not calling things like EraseSectorOfRom.

Even if you manage to get some invalid setting written to ROM, we now understand how these things work and can look into it. Already recovered a couple of D4/5 cameras that way, soft-bricked by either our programming mistakes, or also by third party apps, on cameras that never ran ML before. Sure, we've never tried to recover a D6, so if your camera is mission-critical, don't try it.

To get the emulation further, I need two things:

- a log of MPU communication (see mpu_send/mpu_recv stubs in the dm-spy-experiments branch)
- a serial flash dump (sf_dump module)

The first one can be probably started (but not completed) from bootloader. It's a bit tricky, I've got it somewhat (not reliably) working on D4/5 a while ago, the test code is somewhere in the Linux branch (look for MPU), but can be fully tested in QEMU.

The second one will probably not work from bootloader, but I haven't tested it. Todo: try on 700D/100D/M/6D/M2 in QEMU and ask owners of these cameras to try on real hardware).

Both of those will be a lot easier after being able to start DryOS tasks alongside Canon's main firmware, but if that step keeps proving difficult, there are still things to try.

BTW, high-resolution photos of the main board are always welcome (for any camera model, not just 80D). No coding skills required for this one :D

Hi, will VMWare mess with QEMU or it is going to be okay? I have enough power to do nice emulation (i7-6700HQ, 16 GB, GTX 1060), but don't want to mess with installation of Linux on main machine, since I wanted to get new SSD and install clover and Hackintosh with Windows (don't ask why).

UPD: Nevermind, I'll install it on Windows. Next question: where can I read about assembler and everything related to DIGIC 6 (including emulation) and what you have found except this topic? All I learned is basic C++ and Java.

a1ex

Just a heads up - latest QEMU commits have some significant progress on 80D and - to a lesser extent - all other DIGIC 6 cameras.

Nothing fancy for the end-user, but the emulation now starts a LOT of tasks, initializes some filesystem drivers (didn't test whether file I/O actually works), wakes up the Omar core, and if you enjoy tinkering, the Dry-shell console works!

You will need a patched SFDATA.BIN (serial flash dump) from a 70D (preferred), or 700D, 650D, EOSM, 6D (not sure about 100D). If you don't have one, just comment it out in model_list.c; most of the stuff appears to work without it.

MPU messages guessed from 60D, so they are no longer "must have" - just nice to have.

Fun stuff:

( sleep 3; echo "akashimorino";
  sleep 1; echo "SHM_SHOW_INFO";
  sleep 1; echo "SHM_SHOW_DIST_INFO";
) | ./run_canon_fw.sh 80D -serial stdio


Guide: https://bitbucket.org/hudson/magic-lantern/src/qemu/contrib/qemu/ (README)
Video: this sticky tweet and the same for Mac. GUI not working yet on D6.

Have fun.

whoreable


Theta Sigma


emklap

80D, 40D, 300D,  15-85 IS, 18-55IS EFS, Tokina17-55/F2.8, ,70-200LIS/F4, 50EF/F1.8, extender 1.4, EX-430, Sigma 8-16

a1ex

Figured out file I/O as well.


(
  sleep 3; echo "akashimorino";
  sleep 1; echo "dumpf";
) | (
  ./run_canon_fw.sh 80D -serial stdio -s -S &
   arm-none-eabi-gdb -x 80D/patches.gdb
)


Result: LOG000.LOG created on the virtual SD card:

Sat Jan  1 00:00:06 2000
     0:    75.264 [STARTUP]
K350 ICU Firmware Version 1.0.2 ( 6.2.3 )
     1:    76.288 [STARTUP]
ICU Release DateTime 2016.12.27 09:58:00
     2:    79.872 [SEQ] CreateSequencer (Startup, Num = 6)
     3:    84.480 [SEQ] NotifyComplete (Cur = 0, 0x2018000, Flag = 0x10000)
     4:   104.704 [PROPAD] PROPAD_CreateFROMPropertyHandle DRAMAddr 0x415a7000
     5:   105.984 [PROPAD] PROPAD_CreateFROMPropertyHandle DRAMAddr 0x41487000
     6:   110.336 [PROPAD] SerialFlash Packages!! 0x10000
     7:   113.152 [SF] readManufactureCodeSerialFlash 0xc2
     8:   113.152 [SF] MACRONIX
     9:   123.392 [PROPAD] SerialFlash Packages!! 0x7
    10:   123.392 [PROPAD] pFromProperty->pNextWriteAddress 0x10000
    11:   123.648 [SEQ] NotifyComplete (Cur = 0, 0x2008000, Flag = 0x8000)
    12:   147.456 [SEQ] NotifyComplete (Cur = 0, 0x2000000, Flag = 0x2000000)
    13:   147.712 [SEQ] seqEventDispatch (Startup, 0)
    14:   147.712 [STARTUP] startupEntry
    15:   178.176 [PWM] PWM_Initialize
    16:   178.944 [ADC] InitializePollingADC
    17:   190.208 [ ADC ] Calibration Completed, 0x00000000
    18:   211.712 [PROPST] Initialize Adjective & Situation
    19:   232.192 [PROPST] Initialize FlaverPCValid 1 (0)
    20:   232.704 [PROPST] Initialize FlaverPCValid 2 (1)
    21:   232.704 [PROPST] Initialize FlaverPCValid 3 (1)
    22:   232.704 [PROPST] @@@JudgeRestoreFlavorPC 701
    23:   273.152 [STARTUP]startupCompleteCallback 0x2
    24:   273.664 [SEQ] NotifyComplete (Cur = 1, 0x2, Flag = 0x2)
    25:   281.344 [PRP] DivideCameraInitData in L:489
    26:   282.880 [PROPST] dwNewAeModeDial = 3
    27:   285.696 [PROPST] ChangeAEMode -> 3 @AE_MODE_DIAL
    28:   286.208 [PROPST] Active Adjective & Situation 2->3
    29:   286.208 [PROPST] ReqChangeCBR : Adjective 0, 0
    30:   286.208 [PROPST] Not ExecMultiConvert Already None : Adjective 0, 0
    31:   286.464 [PROPST] Not ExecMultiConvert : Situation 0
    32:   286.976 [PROPST] !! Convert End !!
    33:   288.000 [PROPAD] DataType = 0x2000000 fModify = TRUE
    34:   291.072 [PRP] Deliv WaitID = 0x80000001, 0xFE15E275(1)
    35:   319.488 [PROPST] PROP_DISTORTION_COMP 0
    36:   326.912 [PROPST] PROP_LIGHT_FALLOFF_COMP 1 (Excluding:0)
    37:   332.800 [PROPST] PROP_CHROMATISM 1 (Excluding:0)
    38:   353.792 [PRP] Complete WaitID = 0x80000001, 0xFE15E275(0)
    39:   354.048 [PRP] SpecialComplete ID = 0x80000001, 0x80000001 2907
    40:   378.368 [EM] emSlaveChangeCBR : AUTO_POWEROFF (1)
    41:   379.648 [EM] emSlaveChangeCBR : UILOCK (0x0)
    42:   417.792 [LENS]AfReqAeDataMasterResultCBR
    43:   425.472 [LENS]LensAedataReplyMasterResultCBR
    44:   435.200 [LENS]LensAfdataReplyMasterResultCBR
    45:   444.928 [LENS]LensStatusReplyMasterResultCBR
    46:   455.168 [LENS]MirrorupEmdReplyMasterResultCBR
    47:   463.104 [LENS]MirrorupShutterEndMasterResultCBR
    48:   471.040 [LENS]LensHaltReplyMasterResultCBR
    49:   479.744 [LENS]LensStatusChangeMasterResultCBR
    50:   487.936 [LENS]LvLensDataMasterResultCBR
    51:   499.712 [LENS]LensIdExtMasterResultCBR
    52:   509.184 [LENS]LensSceneDataCBR
    53:   516.608 [LENS]PowerZoomAdapterInfoCBR
    54:   526.848 [LENS]LensDataForImageCBR
    55:   536.064 [LENS]AfMonitorDataMasterResultCBR
    56:   560.640 [MSUB]PROP_LV_LENS
    57:   600.320 [SEQ] seqEventDispatch (Startup, 1)
    58:   600.832 [STARTUP] startupPrepareProperty
    59:   611.328 [PROPST] @@@ dwHdmiPhysicalConnect = 0(900)
    60:   627.456 [HPD] HotPlug TimelapseSetting = 0
    61:   629.760 [HPD] # 0 0 0
    62:   640.512 [HPD] Variangle State 2
    63:   645.376 [HPD] CreateTask Master End
    64:   651.776 [STARTUP] PROP_GPS_AUTO_TIME_SETTING 0
    65:   653.568 [STARTUP]startupCompleteCallback 0x20000000
    66:   653.824 [SEQ] NotifyComplete (Cur = 2, 0x20420010, Flag = 0x20000000)
    67:   653.824 [STARTUP] startupPrepareProperty : CLASSID_FLAG_PROPAD
    68:   654.080 [FM] FM_Initialize (0, 1, 0)
    69:   665.344 [FM] fmResultCBR (0x83b2b8)
    70:   669.952 [FM] PROP_HDD_DCIM_PATH (/)
    71:   672.256 [FC] FC_Initialize [drive:3][ClassID:39]
    72:   698.624 ERROR [RTC] RTC_REGISTER_TIME_CORRECT ERROR 0x0 -> 0x9e
    73:   708.352 ERROR [RTC] !! RTC CHECK ERROR !!

    74:   729.344 [RTC] SPECIAL_OPTION 0x0, 0x0
    75:   736.512 [RTC] permitCharge already permit 0x0
    76:   767.232 [RSC] srmGetShootMemAreaAddress(): Area[4] isn't Exist.
    77:   825.856 [RSC] CreatePackHeapObject
    78:   829.184 [RSC] AllocateMemoryUnit For OnlyMem1
    79:   829.440 [RSC] AllocateMemoryUnit For OnlyMem1
    80:   829.440 [RSC] AllocateMemoryUnit For OnlyMem1
    81:   829.440 [RSC] AllocateMemoryUnit For OnlyMem1
    82:   829.440 [RSC] AllocateMemoryUnit For OnlyMem1
    83:   829.440 [RSC] AllocateMemoryUnit For OnlyMem1
    84:   829.440 [RSC] AllocateMemoryUnit For OnlyMem1
    85:   829.440 [RSC] AllocateMemoryUnit For OnlyMem1
    86:   829.440 [RSC] AllocateMemoryUnit For OnlyMem1
    87:   829.440 [RSC] AllocateMemoryUnit For OnlyMem1
    88:   829.440 [RSC] AllocateMemoryUnit For OnlyMem1
    89:   829.440 [RSC] AllocateMemoryUnit For OnlyMem1
    90:   829.440 [RSC] AllocateMemoryUnit For OnlyMem1
    91:   829.440 [RSC] AllocateMemoryUnit For OnlyMem1
    92:   838.656 [RSCC] ClearBusy(0x1) 0x40->0x40,0x0(0x40)[0,0]
    93:   840.192 [RSC] RearrangeMemMgr add 1 0 2
    94:   840.192 [RSCC] ClearBusy(0x1) 0x40->0x40,0x0(0x40)[0,0]
    95:   841.216 [RSC] fDevDone 1, dwLvLock 0
    96:   841.216 [RSC] 0 0 0
    97:   841.728 [RSC] PROP_MEMORY_STATUS(SELF) (10->)13 (OTHER) 0, 4987
    98:   841.728 [RSC] Deliver PROP_MEMORY_STATUS 19
    99:   848.128 [RSC] MemMgr(IMAGE) 0 2
   100:   848.640 [RSC] MemMgr(IMAGE) 0 0
   101:   848.640 [RSC] MemMgr(IMAGE) 0 0
   102:   848.640 [RSC] MemMgr(IMAGE) 0 0
   103:   872.448 [RSCC] this->dwCardStatus[0] = 0x1(525)
   104:   873.728 [RSC] fDevDone 1, dwLvLock 0
   105:   873.728 [RSC] 0 0 0
   106:   883.200 [RSCC] this->dwCardStatus[1] = 0x1(525)
   107:   884.224 [RSC] fDevDone 1, dwLvLock 0
   108:   884.224 [RSC] 0 0 0
   109:   891.392 [RSCC] PROP_PC_HDD_STATUS = 0x1
   110:   898.816 [RSC] fDevDone 1, dwLvLock 0
   111:   899.072 [RSC] 0 0 0
   112:   908.544 [RSC] fDevDone 1, dwLvLock 0
   113:   909.056 [RSC] 0 0 0
   114:   921.344 [RSC] fDevDone 1, dwLvLock 0
   115:   921.600 [RSC] 0 0 0
   116:   944.640 [RSC] fDevDone 1, dwLvLock 0
   117:   944.896 [RSC] 0 0 0
   118:   954.880 [RSCC] PROP_SAVE_MODE = 0x1
   119:   963.584 [RSCC] PROP_CARD0_FOLDER_NUMBER
   120:   971.520 [RSCC] PROP_CARD1_FOLDER_NUMBER
   121:   995.072 [RSCC] PROP_NUMBER_OF_CONTINUOUS_MODE BaseDcfNo 8556
   122:  1001.984 [RSC] fDevDone 1, dwLvLock 0
   123:  1002.496 [RSC] 0 0 0
   124:  1010.944 [RSC] fDevDone 1, dwLvLock 0
   125:  1011.456 [RSC] 0 0 0
   126:  1021.696 [RSC] fDevDone 1, dwLvLock 0
   127:  1021.696 [RSC] 0 0 0
   128:  1022.208 [RSCC] PROP_CARD_EXTENSION 0
   129:  1041.920 [RSCC] PC_CLUSTER_SIZE = 0x1000
   130:  1067.264 [RSC] SetAutoIsoCode 0x83
   131:  1067.776 [RSCC] ChangeAutoIsoCode Factor:1 AutoIsoCode:131 -> 131
   132:  1076.224 [RSC] SetAutoIsoCode 0x83
   133:  1076.480 [RSCC] ChangeAutoIsoCode Factor:2 AutoIsoCode:131 -> 131
   134:  1079.808 [RSCC] ClearBusy(0x1) 0x40->0x40,0x0(0x40)[0,0]
   135:  1080.576 [RSC] fDevDone 1, dwLvLock 0
   136:  1080.576 [RSC] 0 0 0
   137:  1086.976 [RSC] fDevDone 1, dwLvLock 0
   138:  1087.232 [RSC] 0 0 0
   139:  1098.752 [RSCC] ClearBusy(0x40000) 0x40->0x40,0x0(0x40)[0,0]
   140:  1107.456 [RSCC] ClearBusy(0x40000) 0x40->0x40,0x0(0x40)[0,0]
   141:  1116.416 [RSCC] ClearBusy(0x40000) 0x40->0x40,0x0(0x40)[0,0]
   142:  1124.352 [RSCC] ClearBusy(0x40000) 0x40->0x40,0x0(0x40)[0,0]
   143:  1131.008 [RSC] SetAutoIsoCode 0x58
   144:  1131.264 [RSCC] ChangeAutoIsoCode Factor:0 AutoIsoCode:131 -> 88
   145:  1141.248 [RSCC] ClearBusy(0x1) 0x40->0x40,0x0(0x40)[0,0]
   146:  1141.760 [RSC] fDevDone 1, dwLvLock 0
   147:  1142.016 [RSC] 0 0 0
   148:  1148.928 [RSC] fDevDone 1, dwLvLock 0
   149:  1149.440 [RSC] 0 0 0
   150:  1157.632 [RSC] fDevDone 1, dwLvLock 0
   151:  1158.144 [RSC] 0 0 0
   152:  1188.608 [RSCC] RU CLUSTER_SIZE[0] = 0x407A0150
   153:  1196.288 [RSCC] RU CLUSTER_SIZE[1] = 0x407A015C
   154:  1213.440 [EM] emRegisterMulticastCallback : EventID = 0, ClassID = 68
   155:  1218.816 [EM] emRegisterMulticastCallback : EventID = 11, ClassID = 68
   156:  1220.096 [EM] Already SW1OFF
   157:  1230.080 [EM] emRegisterMulticastCallback : EventID = 14, ClassID = 68
   158:  1236.480 [EM] emRegisterMulticastCallback : EventID = 15, ClassID = 68
   159:  1242.368 [EM] emRegisterMulticastCallback : EventID = 4, ClassID = 68
   160:  1251.328 [FM] FM_RegisterSpaceNotifyCallback
   161:  1252.352 [MRK] MRK_RegisterSpaceNotifyCallback
   162:  1253.120 [MRK] RegisterSpaceNotifyCallback : DriveNo = 2
   163:  1253.376 [FM] voiRegisterSpaceNotifyCallback : DriveNo = 2
   164:  1253.376 [LVMOV][GPS] GPS_RegisterSpaceNotifyCallback
   165:  1253.632 [FM] [GPS] gpsRegisterSpaceNotifyCallback : DriveNo = 2
   166:  1253.888 [FM] RegisterSpaceNotifyCallback : DriveNo = 2
   167:  1254.144 [FC] FcmcRegisterSpaceNotifyCallback : DriveNo = 2
   168:  1254.400 [FM] FM_RegisterSpaceNotifyCallback
   169:  1261.056 [BIND] Stage : NORMAL
   170:  1263.616 [JOB] InitializeJobClass (ID = 8331, Num = 14)
   171:  1263.616 [JOB] InitializeJobClass 84 206 17216 22940
   172:  1267.456 [JOB] [BIND] dcsResultCBR (0x83d3a4)
   173:  1271.552 [JOB] PROP_GPS_INFORMATION fGPSConnect = 0x0
   174:  1271.552 [JOB] MPU 0x0 USB 0x0 WFT 0x0 INNER 0x0
   175:  1271.552 [JOB] PROP_MPU_GPS fGPSConnect = 0x0
   176:  1271.808 [JOB] MPU 0x0 USB 0x0 WFT 0x0 INNER 0x0
   177:  1272.576 [JOB] @@@setDefaultImgDirection
   178:  1272.832 [JOB] PROP_GPS_DEVICE_ACTIVE INNER 0x0 fGPSConnect = 0x0
   179:  1273.088 [JOB] @@@setDefaultImgDirection
   180:  1276.928 [JOB] PROP_BTDEVICE_CONNECT WFT 0x0 fGPSConnect = 0x0
   181:  1292.288 [EM] emLockControl (TYPE_JOBSTATE = 0x0)
   182:  1298.176 [RSC] fDevDone 1, dwLvLock 0
   183:  1298.944 [RSC] 0 0 0
   184:  1330.688 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   185:  1331.456 [PRP] ERROR NOT FOUND PROPERTY ID = 0x01000007 L:2849
   186:  1337.088 [EM] emRegisterMulticastCallback : EventID = 20, ClassID = 72
   187:  1341.440 [JOB] InitializeInnerDevelopJobClass (ID = 8331, Num = 16)
   188:  1341.696 [JOB] InitializeMultipleExposureShootJobClass ( Num = 28,11 )
   189:  1341.696 [JOB] InitializeMultipleExposureSaveAndEndJobClass ( Num = 14 )
   190:  1341.952 [JOB] InitializeHDRShootJobClass ( Num = 12 )
   191:  1341.952 [JOB] InitializeHDRSaveAndEndJobClass ( Num = 36 )
   192:  1342.208 [JOB] InitializeGISShootJobClass ( Num = 12 )
   193:  1342.208 [JOB] InitializeGISSaveAndEndJobClass ( Num = 27, 30 )
   194:  1342.976 [JOB] InitializeShufflehootJobClass (ID = 8331, Num = 14)
   195:  1348.864 [GUILOCK]InitializeGUILock (PUB)
   196:  1360.896 [GUILOCK][GUI] MasterResultCBR
   197:  1364.224 [TERM] terminateChangeCBR : SHUTDOWN (255)
   198:  1364.480 [TERMINATE] SHUTDOWN init comp
   199:  1364.736 [TERM] terminateChangeCBR : AUTO_POWEROFF (1)
   200:  1364.736 [TERMINATE] Abort init comp
   201:  1380.608 [EM] emRegisterMulticastCallback : EventID = 0, ClassID = 156
   202:  1385.472 [EM] emRegisterMulticastCallback : EventID = 1, ClassID = 156
   203:  1390.848 [EM] emRegisterMulticastCallback : EventID = 4, ClassID = 156
   204:  1399.296 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   205:  1400.064 [PRP] ERROR NOT FOUND PROPERTY ID = 0x01000007 L:2849
   206:  1401.344 [FSS] PROP_SHOOTING_TYPE (0x0->0x0)
   207:  1401.344 [FSS] PROP_AF_SHIFT_AFB_INFO (0x0 0)
   208:  1446.912 [EM] emRegisterMulticastCallback : EventID = 0, ClassID = 244
   209:  1452.032 [EM] emRegisterMulticastCallback : EventID = 11, ClassID = 244
   210:  1453.056 [EM] Already SW1OFF
   211:  1455.872 [MC] MeteringTimerStart
   212:  1459.200 [EM] emRegisterMulticastCallback : EventID = 7, ClassID = 244
   213:  1465.088 [EM] emRegisterMulticastCallback : EventID = 1, ClassID = 244
   214:  1469.952 [EM] emRegisterMulticastCallback : EventID = 4, ClassID = 244
   215:  1475.328 [EM] emRegisterMulticastCallback : EventID = 6, ClassID = 244
   216:  1480.192 [EM] emRegisterMulticastCallback : EventID = 3, ClassID = 244
   217:  1485.312 [EM] emRegisterMulticastCallback : EventID = 2, ClassID = 244
   218:  1491.200 [EM] emRegisterMulticastCallback : EventID = 20, ClassID = 244
   219:  1496.832 [EM] emRegisterMulticastCallback : EventID = 22, ClassID = 131
   220:  1501.952 [EM] emRegisterMulticastCallback : EventID = 23, ClassID = 131
   221:  1516.032 [MC] PROP_DISPLAY_OFF_SENSOR 1
   222:  1516.544 [MC] PROP_DISPSENSOR_CTRL 1(0)
   223:  1517.568 [MC] PROP_SHOOTING_TYPE 0
   224:  1517.824 [MC] set_lv_act2 : 0 -1 1 0
   225:  1518.080 [MC] PROP_GUI_STATE 0
   226:  1518.592 [MC] PROP_LV_ACTION LV_STOP
   227:  1518.848 [MC] judge_lv_disp_busy(mode_change): 0 0 1 1 0
   228:  1519.360 [MC] PROP_LV_DISPBUSY not Busy
   229:  1519.616 [MC] PROP_LV_LOCK LVLOCK_PERMIT
   230:  1519.616 [MC] set_lv_act2 : 0 1 1 0
   231:  1519.616 [MC] judge_lv_disp_busy(mode_change): 0 0 1 1 0
   232:  1519.872 [MC] PROP_DISABLE_PLAY_IMAGE Enable Play
   233:  1519.872 [MC] JobState 0
   234:  1519.872 [MC] on_digi_event start
   235:  1520.384 [MC] set_lv_act2 : 0 1 1 0
   236:  1520.384 [MC] judge_lv_disp_busy(mode_change): 0 0 1 1 0
   237:  1520.896 [MC] PROP_AE_MODE m_AeMode=0x03 m_SetTv =0x70 ,m_ModeBulb=0
   238:  1521.152 [MC] PROP_SET_TV  m_SetTv =0x4D m_AeMode=0x03 ,m_ModeBulb=0
   239:  1521.664 [MC] QRTime 0
   240:  1522.944 [DISP] ForceBackLightOff
   241:  1523.200 [DISP] ERROR BackLightCtrl:0
   242:  1523.712 [MC] PROP_VARIANGLE_GUICTRL Enable
   243:  1523.968 [MC] PROP_HEADPHONE_VOLUME_VALUE : 0
   244:  1523.968 [MC] PROP_MOVIE_PLAY_VOLUME : 0
   245:  1524.480 [MC] PROP_LCD_OFFON_BUTTON : 2
   246:  1524.736 [MC] PROP_LV_CFILTER 0
   247:  1524.736 [MC] set_lv_act2 : 0 1 1 0
   248:  1524.992 [MC] judge_lv_disp_busy(mode_change): 0 1 1 1 0
   249:  1530.880 [MC] PROP_GUIGROUND_STATE 0
   250:  1537.024 [MC] PROP_LV_ACTION LV_STOP
   251:  1537.536 [MC] judge_lv_disp_busy(mode_change): 0 1 1 1 0
   252:  1556.480 [MC] PROP_VARIANGLE_GUICTRL Disable
   253:  1576.192 [MC] PROP_LV_DISPBUSY Busy
   254:  1582.080 [MC] PROP_LV_DISPBUSY Busy
   255:  1586.944 [MC] PROP_LV_DISPBUSY Busy
   256:  1592.832 [MC] PROP_LV_DISPBUSY not Busy
   257:  1607.680 [MC] CardCover=0
   258:  1608.448 [MC] regist master CardCover
   259:  1611.776 [EM] emRegisterMulticastCallback : EventID = 13, ClassID = 244
   260:  1614.336 [TA10] TA10_Initialize : Start
   261:  1655.296 [TA10] ### TA10Setting Clear (OFF->OFF) ###
   262:  1656.576 [TA10] ERROR Irregular TotalSheets 0 !!
   263:  1657.344 [TA10] ChangePropCBR ShotsPlan 2 / TotalSheets 2
   264:  1704.960 [TA10] TA10_Initialize : End
   265:  1705.472 [HDR] HDR_Initialize : Start
   266:  1729.280 [HDR] ### HDRSetting Clear (OFF->OFF) ###
   267:  1730.304 [HDR] ChangePropCBR HDRFunc 0
   268:  1732.352 [HDR] HDRS_Initialize
   269:  1732.608 [HDR] CreateStageClass
   270:  1741.824 [HDR] HDRS_Initialize : End
   271:  1742.080 [HDR] HDR_Initialize : End
   272:  1742.336 [GIS] GIS_Initialize : Start
   273:  1762.560 [GIS] ### GISSetting Clear (OFF->OFF) ###
   274:  1763.328 [GIS] ChangePropCBR GISFunc 0
   275:  1766.912 [GIS] GISS_Initialize
   276:  1767.168 [GIS] CreateStageClass
   277:  1773.568 [GIS] GISS_Initialize : End
   278:  1773.824 [GIS] GIS_Initialize : End
   279:  1781.248 [FM] PROP_CARD1_STATUS = 0x1
   280:  1788.672 [FM] PROP_CARD1_FOLDER_NUMBER = 142
   281:  1796.352 [FM] PROP_CARD1_FILE_NUMBER = 0
   282:  1810.176 [FM] PROP_CARD2_STATUS = 0x1
   283:  1817.856 [FM] PROP_CARD2_FOLDER_NUMBER = 100
   284:  1826.560 [FM] PROP_CARD2_FILE_NUMBER = 8556
   285:  1837.056 [FM] PROP_FILE_NUMBERING_MODE = 1, 0
   286:  1841.408 [FM] PROP_CARD_EXTENSION = 0
   287:  1847.296 [FM] PROP_CURRENT_MEDIA = 2
   288:  1851.392 [FM] PROP_USBDEVICE_CONNECT = -1
   289:  1853.952 [FM] PROP_NUMBER_OF_CONTINUOUS_MODE = 8556
   290:  1853.952 [STARTUP]startupCompleteCallback 0x10
   291:  1854.208 [SEQ] NotifyComplete (Cur = 2, 0x420010, Flag = 0x10)
   292:  1858.304 [FM] PROP_DSDEFINE ModelId 80000350
   293:  1861.888 [FM] PROP_APPENDMOVINFO Handle 0,205001d
   294:  1862.400 [FM] PROP_APPENDMOVINFO VideoSnapMode 4,205001d
   295:  1867.008 [FM] PROP_SPECIAL_OPTION = 0
   296:  1871.104 [FM] PROP_SCREEN_SAVER = 0
   297:  1875.968 [FM] PROP_CARD1_RU_SIZE -1
   298:  1879.552 [FM] PROP_CARD2_RU_SIZE 65536
   299:  1885.952 [FM] fmInitialized
   300:  1893.888 [FC] _FC_SetDirSuffix (CANON)
   301:  1897.216 [FM] fmPrepare
   302:  1919.488 [CSMGR] Card ManageArea�@Address�@:�@0x008465c4
   303:  1920.256 [FM] fmAllocDcfNo(0x479e4c)(0x0)
   304:  1925.120 [RSCC] srmAllocDcfNoTable
   305:  1926.144 [FM] fmAllocateDcfNoCompleteCallback(0x43ae8c00,0x4000)
   306:  1935.360 [FM] fmAllocDcfNo : DcfNoTable(0x43ae8c00)
   307:  1946.880 [NFC] PropChange:PROP_SPECIAL_OPTION Wlan off (0x0)
   308:  1952.000 [SD] ---- SDEventHandler(ID=1:Event=8) ----
   309:  1975.296 [SD] SD initialize start
   310:  1990.144 [SD] SD initialize end speed=0 clock=12 UHS=0
   311:  1992.192 [SD] Name: QEMU! Size: 247(7bc00)
   312:  1992.448 [SD] nBlocks=506880, blksPerTrack=0, nHeads=0
   313:  1995.776 [FSU] fsuGetPart: Block(99, 506781, 506880)
   314:  2003.968 [FSU] efat_map_filesys 99 B: 1
   315:  2008.576 [SD] default ru size (SC)
   316:  2075.136 [FSU] AllocateMemory For Speed Class!!!
   317:  2013.696 [FSU] Attach SC 0 80 80 8 248 248
   318:  2016.512 [FM] EV_INSERTION_COMPLETE : ID = 2, stat = 8192
   319:  2016.512 [FM] bWormCard = 0
   320:  2016.512 [FM] bWriteOnceCard = 0
   321:  2020.096 [FM] fmNormalMountCard (ID = 2, Ret = 0)
   322:  2020.608 [FM] fmPrepareShooting (Drive = 2)
   323:  2021.120 [FC] _FC_PrepareCatalog (2, B:)
   324:  2114.304 [FM] DirNo = 100, FileNo = 0
   325:  2050.048 [FM] Cluster = 16384, Total = 15832, Free = 13444 RU = -1 FreeRU = 1653
   326:  2050.560 [FC] _FC_GetNewDirDcfNo (2, 0, 0, 0)
   327:  2050.816 [FM] fmSetInitialCardInfo (Drive = 2, 0)
   328:  2070.016 [RSCC] this->dwCardStatus[1] = 0x1(525)
   329:  2071.552 [RSC] fDevDone 1, dwLvLock 0
   330:  2071.552 [RSC] 0 0 0
   331:  2102.272 [RSCC] PROP_CARD1_FOLDER_NUMBER
   332:  2132.736 [RSCC] RU CLUSTER_SIZE[1] = 0x407A015C
   333:  2141.952 [FM] fmWrapperRU1 : DriveNo = 2 B: 1653
   334:  2141.952 [FM] fmWrapperRU : DriveNo = 2 B: 1653
   335:  2145.280 [RSCC] Storage Space 13444, FreeRUCount 1653
   336:  2224.384 [FM] pfNotifyDcfNoCBR(2:100_0000)
   337:  2162.432 [RSCC] srmNotifyDcfNo 0x2 100 0 0 1
   338:  2162.688 [RSCC] srmSetDcfNoTableOrDiff 1 100 0 1
   339:  2162.688 [RSCC] Diff Dcf List
   340:  2162.944 [RSCC] Create Diff Dcf ListItem 100
   341:  2163.456 [RSCC] fTemporary 1 pMaxDcfNoInFolder->fTemporary 1
   342:  2163.456 [RSCC] Diff Dcf Over Write 100
   343:  2163.968 [RSCC] ####### [1]DCF No 8556
   344:  2170.880 [RSC] ERROR GetEstimatedSizeOfMovie NOT Exist Size or FrameRate K347 0 1 0
   345:  2173.952 [RSC] ERROR GetMargineSizeOfMovie NOT Exist Size or FrameRate K347 0 1 0
   346:  2243.328 [RSC] ERROR GetEstimatedSizeOfMovieThumb NOT Exist Size or FrameRate K347 0
   347:  2181.120 [RSC] ERROR GetEstimatedSizeOfMovie NOT Exist Size or FrameRate K347 0 1 0
   348:  2184.192 [RSC] ERROR GetMargineSizeOfMovie NOT Exist Size or FrameRate K347 0 1 0
   349:  2253.568 [RSC] ERROR GetEstimatedSizeOfMovieThumb NOT Exist Size or FrameRate K347 0
   350:  2191.872 [RSC] ERROR GetEstimatedSizeOfMovie NOT Exist Size or FrameRate K347 0 1 0
   351:  2193.664 [RSCC] BURST 4 Enable 4 Reserve 32504576
   352:  2193.920 [RSCC] Burst 4 ENABLE 4 Reserve 32504576
   353:  2194.176 [RSCC] ClearBusy(0x2100) 0x40->0x40,0x0(0x40)[0,0]
   354:  2194.432 [STARTUP]startupCompleteCallback 0x20000
   355:  2194.688 [SEQ] NotifyComplete (Cur = 2, 0x420000, Flag = 0x20000)
   356:  2223.616 [STARTUP]startupCompleteCallback 0x400000
   357:  2224.128 [SEQ] NotifyComplete (Cur = 2, 0x400000, Flag = 0x400000)
   358:  2293.248 [FM] PROP_CARD2_STATUS = 0x1
   359:  2301.696 [FM] PROP_CARD2_FOLDER_NUMBER = 100
   360:  2243.072 [FM] PROP_CARD2_RU_SIZE -1
   361:  2252.032 [FM] PROP_CARD2_FILE_NUMBER = 8556
   362:  2253.568 [SEQ] seqEventDispatch (Startup, 2)
   363:  2320.128 [STARTUP] startupPrepareCapture
   364:  2334.464 [SHTLVME][MNAV] MEMNAVI_Initialize
   365:  2273.024 [SHTLVME][MNAV] MEMNAVI_SetMemoryMap: 1
   366:  2344.192 [EM] emRegisterMulticastCallback : EventID = 14, ClassID = 147
   367:  2350.080 [EM] emRegisterMulticastCallback : EventID = 2, ClassID = 147
   368:  2354.944 [EM] emRegisterMulticastCallback : EventID = 3, ClassID = 147
   369:  2360.832 [EM] emRegisterMulticastCallback : EventID = 15, ClassID = 147
   370:  2301.184 [EM] emRegisterMulticastCallback : EventID = 5, ClassID = 147
   371:  2372.608 [EM] emRegisterMulticastCallback : EventID = 6, ClassID = 147
   372:  2378.496 [EM] emRegisterMulticastCallback : EventID = 1, ClassID = 147
   373:  2383.104 [EM] emRegisterMulticastCallback : EventID = 4, ClassID = 147
   374:  2388.992 [EM] emRegisterMulticastCallback : EventID = 8, ClassID = 147
   375:  2393.344 [EM] emRegisterMulticastCallback : EventID = 9, ClassID = 147
   376:  2399.744 [EM] emRegisterMulticastCallback : EventID = 10, ClassID = 147
   377:  2340.864 [EM] emRegisterMulticastCallback : EventID = 17, ClassID = 147
   378:  2413.568 [EM] emRegisterMulticastCallback : EventID = 18, ClassID = 147
   379:  2420.224 [EM] emRegisterMulticastCallback : EventID = 19, ClassID = 147
   380:  2426.112 [EM] emRegisterMulticastCallback : EventID = 21, ClassID = 147
   381:  2437.632 [SHTC] scsProperty ID=0x80030012(0x0)
   382:  2441.728 [SHTC] scsIgnore
   383:  2449.152 [SHTC] scsProperty ID=0x0(0x200884)
   384:  2456.576 [SHTC] scsProperty ID=0x80040004(0x0)
   385:  2463.232 [SHTC] scsProperty ID=0x80040069(0x0)
   386:  2469.376 [SHTC] scsInit
   387:  2479.616 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   388:  2480.384 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   389:  2480.384 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   390:  2480.384 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   391:  2480.384 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   392:  2480.640 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   393:  2480.640 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   394:  2480.640 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   395:  2480.640 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   396:  2480.640 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   397:  2480.896 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   398:  2480.896 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   399:  2480.896 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   400:  2480.896 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   401:  2481.152 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   402:  2481.152 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   403:  2481.152 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   404:  2481.152 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   405:  2481.152 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   406:  2481.408 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   407:  2481.408 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   408:  2481.408 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   409:  2481.408 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   410:  2481.408 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   411:  2481.664 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   412:  2481.664 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   413:  2488.832 [CAPE] InitializeHeadControl
   414:  2489.856 [SHTC] Mem1Component Size=0x13c7b0
   415:  2490.624 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   416:  2492.672 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   417:  2498.560 [PROPAD] ERROR SearchPropertyPackage DataType (0) = 0x01000000(L:3114)
   418:  2504.192 [SHTC] DarkCurrentBuffer:0x4219c400, Size:139264
   419:  2504.960 [STARTUP]startupCompleteCallback 0x40000
   420:  2504.960 [SEQ] NotifyComplete (Cur = 3, 0xc0000, Flag = 0x40000)
   421:  2510.848 [RSCC] RealClearBusy(0x40) 0x40->0x0,0x0(0x0)
   422:  2536.704 [STARTUP]startupCompleteCallback 0x80000
   423:  2537.216 [SEQ] NotifyComplete (Cur = 3, 0x80000, Flag = 0x80000)
   424:  2555.648 [SHTB] sbsInit
   425:  2559.744 [SHTB] VShadingAddress:0x421be400, Size:2226176
   426:  2570.240 [SHTP] Init
   427:  2573.824 [SEQ] seqEventDispatch (Startup, 3)
   428:  2576.640 [FSU] RU defaults !
   429:  2577.664 [SD] ---- SDEventHandler(ID=1:< B: >) Mounted ----


8)

The current emulation state lets you debug pretty much anything relevant to porting ML, except... cache coherency issues (see posts from sombree; didn't investigate yet) and GUI (but see these messages about EOS M3).

@ anyone willing to help:

Please confirm this works on your system. I'm not looking for memes, but for DIGIC 6 owners willing to actively help porting ML to their camera; with this tiny step, I only want to make sure you can use the emulator on your PCs (if it only works for me, it's not good enough). If unsure where to start, please watch the videos linked earlier. Proof-reading the QEMU guide is also very welcome. If it helps, I can do similar video demo for Windows.

goldenchild9to5

awesome work @a1ex I'm gonna have to get a 80D to help with the Porting. 

a1ex

The following does not require an 80D - any EOS model can be used, as long as ML runs on it or there's a ROM dumper available (models ranging from DIGIC 2 to DIGIC 6):

Quote from: a1ex on December 22, 2017, 12:23:42 AM
Proof-reading the QEMU guide is also very welcome.

By that I mean not just finding grammar issues or typos (although these are also welcome), but trying out the commands and finding typos there, or additional dependencies or whatever else you had to tweak to get things working on your system and so on.

I hope the above stuff can be easily ported to 750D/760D, and a little harder to 5D4, 5DS and 7D2 (hopefully that's the increasing order of difficulty); here, 80D just happened to be the easiest.

goldenchild9to5


OlRivrRat

                     @Alex

           I have access to 5DC, 5D2, SL1, 80D, & 70D ~ But absolutely no Coding Savvy ~ What can I do to help ?

Computer Hardware is Mac Pro Early'08 running OS 10.6.8 & 10.11.6 & Windows Vista (via Parallels Desktop)~

                                                                                     OWW ~ DeanB
ORR~DeanB  ~~  80D-ML  &  SL1+ML  &  5D2+ML  &  5DC+ML  &  70D+ML(AliveAgain)

sombree

@a1ex
I can confirm that it works. Weird thing - LOG000.LOG is in chinese :o