Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - critix

#76
yes, the build is public:
https://bitbucket.org/ccritix/magic-lantern/src/update-to-500D.112/
I will check Dual-ISO and ETTR modules and restore the zip
#79
I run the sure_copy_from_contrib.sh script and it is ok now.
#80
I try to run in qemu ML on 1300D, but when I run ./run_canon_fw.sh 1300D, firmware="boot=1" I get the error
QuoteModel detection error.
If I run ./run_canon_fw.sh 1300D, firmware="boot=0" is ok.
I get the error after I commented on rom0_size in model_list.c
Quote from: a1ex on April 24, 2019, 08:38:35 AM
Comment out rom0_size in model_list.c. Will fix ASAP.
, because I received the error:
Quote[EOS] mirrored data; unique 0x4 bytes repeated 0x800000 times
qemu-system-arm: /home/cristi/qemu-eos/qemu-2.5.0/hw/arm/../eos/eos.c:407: check_rom_mirroring: Assertion `0' failed.
./run_canon_fw.sh: line 153:   988 Aborted                 (core dumped) env QEMU_EOS_DEBUGMSG="$QEMU_EOS_DEBUGMSG" $QEMU_PATH/arm-softmmu/qemu-system-arm -drive if=sd,format=raw,file=sd.img -drive if=ide,format=raw,file=cf.img -chardev socket,server,nowait,path=qemu.monitor$QEMU_JOB_ID,id=monsock -mon chardev=monsock,mode=readline -name $CAM -M $*
#81
I don't know if anyone needs this module, but I tested this module on EOSM 2.0.3 and it's ok.
If anyone needs for another device, I gladly help.
https://bitbucket.org/hudson/magic-lantern/pull-requests/962/add-support-for-eosm-202-and-203/diff
#82
Camera-specific Development / Re: Canon 650D / T4i
January 17, 2020, 06:12:20 PM
No one can help me with a dump of this camera?
Thanks a lot...
#83
Camera-specific Development / Re: Canon 650D / T4i
January 09, 2020, 10:59:39 AM
Hello
I need the dump from 650D, ver. 1.0.4
Thank you in advance.
#84
Can you send me the firmware from version 1.1.2?
Maybe we can start ML on the new version.
#85
For those who have the latest firmware version on EOSM, 2.0.3, I put the latest version of Danne, modified for firmware 2.0.3:
https://bitbucket.org/ccritix/magic-lantern/downloads/magiclantern-Nightly.2019Oct04.EOSM203.zip

LE: I restored the archive, because something was missing ...
#86
Camera-specific Development / Re: Canon 500D / T1i
September 27, 2019, 06:58:01 PM
I restored the archive with ML-SETUP.FIR correctly, for version 1.1.2
#87
Camera-specific Development / Re: Canon 500D / T1i
September 26, 2019, 07:47:22 PM
With version 1.1.1 set the camera bootflag. Then update the camera to 1.1.2. and you can use ML for version 1.1.2. Unfortunately, for the moment there is no ML-SETUP.FIR for version 1.1.2.
#88
Camera-specific Development / Re: Canon 500D / T1i
September 22, 2019, 03:48:50 PM
Here is the ML version for 1.1.2 firmware:
https://bitbucket.org/ccritix/magic-lantern/downloads/magiclantern-Nightly.2019Sep22.500D112.zip
Result of "Stubs API test":
[Pass] is_play_mode() => 0x1
[Pass] src = fio_malloc(size) => 0x422700d8
[Pass] dst = fio_malloc(size) => 0x42a780f0
[Pass] memcmp(dst, src, 4097) => 0xffffff5c
[Pass] edmac_memcpy(dst, src, 4097) => 0x42a780f0
[Pass] memcmp(dst, src, 4097) => 0x0
[Pass] edmac_memcpy(dst, src, 4097) => 0x42a780f0
[Pass] memcmp(dst, src, size) => 0x84
[Pass] edmac_memcpy(dst, src, size) => 0x42a780f0
[Pass] memcmp(dst, src, size) => 0x0
[Pass] memcmp(dst, src, size) => 0x9e
[Pass] edmac_memcpy_start(dst, src, size) => 0x42a780f0
       dt => 0x33ff
[Pass] copied => 0x4014f0
[Pass] copied => 0x4014f0
[Pass] copied => 0x4014f0
[Pass] memcmp(dst, src, copied) => 0x0
[Pass] memcmp(dst, src, copied + 16) => 0xffffffe8
       edmac_memcpy_finish()
       free(src)
       free(dst)
Cache test A (EDMAC on BMP buffer)...
[Pass] bmp = bmp_load("ML/CROPMKS/CINESCO2.BMP", 1) => 0xa5fd8c
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x67f
[Pass] old => 0x0
[Pass] irq => 0xc0
[Pass] differences => 0x0
Cache test B (FIO on 8K buffer)...
[Pass] tries[0] => 0xff
[Pass] tries[1] => 0x100
[Pass] tries[2] => 0xff
[Pass] tries[3] => 0xea
[Pass] failr[0] => 0x93
[Pass] failw[0] => 0x92
[Pass] failr[1] => 0x83
[Pass] failw[1] => 0x0
[Pass] failr[2] => 0x0
[Pass] failw[2] => 0x98
[Pass] failr[3] => 0x0
[Pass] failw[3] => 0x0
       times[0] / tries[0] => 0x15
       times[1] / tries[1] => 0x15
       times[2] / tries[2] => 0x16
       times[3] / tries[3] => 0x16
Cache tests finished.

[Pass] f = FIO_CreateFile("test.dat") => 0x3
[Pass] FIO_WriteFile(f, (void*)0xFF000000, 0x10000) => 0x10000
[Pass] FIO_WriteFile(f, (void*)0xFF000000, 0x10000) => 0x10000
       FIO_CloseFile(f)
[Pass] FIO_GetFileSize("test.dat", &size) => 0x0
[Pass] size => 0x20000
[Pass] p = (void*)_alloc_dma_memory(0x20000) => 0x40aaca04
[Pass] f = FIO_OpenFile("test.dat", O_RDONLY | O_SYNC) => 0x3
[Pass] FIO_ReadFile(f, p, 0x20000) => 0x20000
       FIO_CloseFile(f)
       _free_dma_memory(p)
[Pass] count => 0x3a98
[Pass] buf = fio_malloc(0x1000000) => 0x422700d8
[Pass] FIO_GetFileSize_direct("test.dat") => 0x82000000
[Pass] f = FIO_OpenFile("test.dat", O_RDWR | O_SYNC) => 0x3
[Pass] FIO_SeekSkipFile(f, 0, SEEK_END) => 0x82000000
[Pass] FIO_WriteFile(f, buf, 0x10) => 0x10
[Pass] FIO_SeekSkipFile(f, -0x20, SEEK_END) => 0x81fffff0
[Pass] FIO_WriteFile(f, buf, 0x30) => 0x30
[Pass] FIO_SeekSkipFile(f, 0x20, SEEK_SET) => 0x20
[Pass] FIO_SeekSkipFile(f, 0x30, SEEK_CUR) => 0x50
[Pass] FIO_SeekSkipFile(f, -0x20, SEEK_CUR) => 0x30
[Pass] FIO_GetFileSize_direct("test.dat") => 0x82000020
[Pass] is_file("test.dat") => 0x1
[Pass] FIO_RemoveFile("test.dat") => 0x0
[Pass] is_file("test.dat") => 0x0
[Pass] SetTimerAfter(0, timer_cbr, overrun_cbr, 0) => 0x15
[Pass] timer_func => 0x2
[Pass] SetTimerAfter(1000, timer_cbr, overrun_cbr, 0) => 0x8606
       msleep(900)
[Pass] timer_func => 0x0
       msleep(200)
[Pass] timer_func => 0x1
[Pass] ABS((timer_time/1000 - t0) - 1000) => 0x1
[Pass] ABS((timer_arg - ta0) - 1000) => 0xa
[Pass] timer = SetTimerAfter(1000, timer_cbr, overrun_cbr, 0) => 0x8608
       msleep(400)
       CancelTimer(timer)
[Pass] timer_func => 0x0
       msleep(1500)
[Pass] timer_func => 0x0
[Pass] SetHPTimerAfterNow(0, timer_cbr, overrun_cbr, 0) => 0x15
[Pass] timer_func => 0x2
[Pass] SetHPTimerAfterNow(100000, timer_cbr, overrun_cbr, 0) => 0xa7c
       msleep(90)
[Pass] timer_func => 0x0
       msleep(20)
[Pass] timer_func => 0x1
[Pass] ABS(DeltaT(timer_time, t0) - 100000) => 0x131
[Pass] ABS(DeltaT(timer_arg, ta0) - 100000) => 0xfd
[Pass] ABS((get_us_clock_value() - t0) - 110000) => 0xffffffb4
[Pass] SetHPTimerAfterNow(90000, next_tick_cbr, overrun_cbr, 0) => 0xa7e
       msleep(80)
[Pass] timer_func => 0x0
       msleep(20)
[Pass] timer_func => 0x3
       msleep(80)
[Pass] timer_func => 0x3
       msleep(20)
[Pass] timer_func => 0x1
[Pass] ABS(DeltaT(timer_time, t0) - 300000) => 0x6d
[Pass] ABS(DeltaT(timer_arg, ta0) - 300000) => 0x38
[Pass] ABS((get_us_clock_value() - t0) - 310000) => 0xffffff9f
       t0 = *(uint32_t*)0xC0242014 => 0xdb260
       msleep(250)
       t1 = *(uint32_t*)0xC0242014 => 0x16256
[Pass] ABS(MOD(t1-t0, 1048576)/1000 - 250) => 0x9
       LoadCalendarFromRTC( &now )
       s0 = now.tm_sec => 0x3a
       Date/time: 2019/09/22 15:19:58
       msleep(1500)
       LoadCalendarFromRTC( &now )
       s1 = now.tm_sec => 0x0
[Pass] MOD(s1-s0, 60) => 0x2
[Pass] MOD(s1-s0, 60) => 0x2
       m0 = MALLOC_FREE_MEMORY => 0x39188
[Pass] p = (void*)_malloc(50*1024) => 0xebad8
[Pass] CACHEABLE(p) => 0xebad8
       m1 = MALLOC_FREE_MEMORY => 0x2c988
       _free(p)
       m2 = MALLOC_FREE_MEMORY => 0x39188
[Pass] ABS((m0-m1) - 50*1024) => 0x0
[Pass] ABS(m0-m2) => 0x0
       m0 = GetFreeMemForAllocateMemory() => 0x16d974
[Pass] p = (void*)_AllocateMemory(256*1024) => 0xaac9c4
[Pass] CACHEABLE(p) => 0xaac9c4
       m1 = GetFreeMemForAllocateMemory() => 0x12d968
       _FreeMemory(p)
       m2 = GetFreeMemForAllocateMemory() => 0x16d974
[Pass] ABS((m0-m1) - 256*1024) => 0xc
[Pass] ABS(m0-m2) => 0x0
       m01 = MALLOC_FREE_MEMORY => 0x39188
       m02 = GetFreeMemForAllocateMemory() => 0x16d974
[Pass] p = (void*)_alloc_dma_memory(256*1024) => 0x40aaca04
[Pass] UNCACHEABLE(p) => 0x40aaca04
[Pass] CACHEABLE(p) => 0xaaca04
[Pass] UNCACHEABLE(CACHEABLE(p)) => 0x40aaca04
       _free_dma_memory(p)
[Pass] p = (void*)_shoot_malloc(24*1024*1024) => 0x4a000068
[Pass] UNCACHEABLE(p) => 0x4a000068
       _shoot_free(p)
       m11 = MALLOC_FREE_MEMORY => 0x39188
       m12 = GetFreeMemForAllocateMemory() => 0x16d974
[Pass] ABS(m01-m11) => 0x0
[Pass] ABS(m02-m12) => 0x0
[Pass] suite = shoot_malloc_suite_contig(24*1024*1024) => 0xebad8
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x1
[Pass] suite->size => 0x1800000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0xebaf8
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x1800000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a000064
[Pass] UNCACHEABLE(p) => 0x4a000064
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite_contig(0) => 0xebad8
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x1
[Pass] suite->size => 0x1ae0000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0xebaf8
[Pass] chunk->signature => 'MemChunk'
[Pass] chunk->size => 0x1ae0000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a000064
[Pass] UNCACHEABLE(p) => 0x4a000064
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(64*1024*1024) => 0xebad8
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0x6
[Pass] suite->size => 0x4000000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0xebaf8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x11c0000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x422700c4
[Pass] UNCACHEABLE(p) => 0x422700c4
       chunk = GetNextMemoryChunk(suite, chunk) => 0xebb48
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x11c4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42000064
[Pass] UNCACHEABLE(p) => 0x42000064
       chunk = GetNextMemoryChunk(suite, chunk) => 0xebb78
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x11c8000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4211c088
[Pass] UNCACHEABLE(p) => 0x4211c088
       chunk = GetNextMemoryChunk(suite, chunk) => 0xebba8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x11cc000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x421240a0
[Pass] UNCACHEABLE(p) => 0x421240a0
       chunk = GetNextMemoryChunk(suite, chunk) => 0xebbd8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2cac000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4c000064
[Pass] UNCACHEABLE(p) => 0x4c000064
       chunk = GetNextMemoryChunk(suite, chunk) => 0xebc08
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4000000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a000064
[Pass] UNCACHEABLE(p) => 0x4a000064
       chunk = GetNextMemoryChunk(suite, chunk) => 0x0
[Pass] total => 0x4000000
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] suite = shoot_malloc_suite(0) => 0xebad8
[Pass] suite->signature => 'MemSuite'
[Pass] suite->num_chunks => 0xb
[Pass] suite->size => 0x5f00000
[Pass] chunk = GetFirstChunkFromSuite(suite) => 0xebaf8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x11c0000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x422700c4
[Pass] UNCACHEABLE(p) => 0x422700c4
       chunk = GetNextMemoryChunk(suite, chunk) => 0xebb48
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x11c4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x42000064
[Pass] UNCACHEABLE(p) => 0x42000064
       chunk = GetNextMemoryChunk(suite, chunk) => 0xebb78
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x11c8000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4211c088
[Pass] UNCACHEABLE(p) => 0x4211c088
       chunk = GetNextMemoryChunk(suite, chunk) => 0xebba8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x11cc000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x421240a0
[Pass] UNCACHEABLE(p) => 0x421240a0
       chunk = GetNextMemoryChunk(suite, chunk) => 0xebbd8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x2cac000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4c000064
[Pass] UNCACHEABLE(p) => 0x4c000064
       chunk = GetNextMemoryChunk(suite, chunk) => 0xebc08
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x478c000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4a000064
[Pass] UNCACHEABLE(p) => 0x4a000064
       chunk = GetNextMemoryChunk(suite, chunk) => 0xebc38
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x4ca8000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4bae00e4
[Pass] UNCACHEABLE(p) => 0x4bae00e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0xebc68
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x51c4000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x4dae00e4
[Pass] UNCACHEABLE(p) => 0x4dae00e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0xebc98
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x56e0000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x49ae00e4
[Pass] UNCACHEABLE(p) => 0x49ae00e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0xebcc8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x5bfc000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x47ae00e4
[Pass] UNCACHEABLE(p) => 0x47ae00e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0xebcf8
[Pass] chunk->signature => 'MemChunk'
[Pass] total += chunk->size => 0x5f00000
[Pass] p = GetMemoryAddressOfMemoryChunk(chunk) => 0x45ae00e4
[Pass] UNCACHEABLE(p) => 0x45ae00e4
       chunk = GetNextMemoryChunk(suite, chunk) => 0x0
[Pass] total => 0x5f00000
       shoot_free_suite(suite); suite = 0; chunk = 0;
[Pass] strlen("abc") => 0x3
[Pass] strlen("qwertyuiop") => 0xa
[Pass] strlen("") => 0x0
[Pass] strcpy(msg, "hi there") => 0x1b2424
[Pass] msg => 'hi there'
[Pass] snprintf(a, sizeof(a), "foo") => 0x3
[Pass] snprintf(b, sizeof(b), "foo") => 0x3
[Pass] strcmp(a, b) => 0x0
[Pass] snprintf(a, sizeof(a), "bar") => 0x3
[Pass] snprintf(b, sizeof(b), "baz") => 0x3
[Pass] strcmp(a, b) => 0xfffffff8
[Pass] snprintf(a, sizeof(a), "Display") => 0x7
[Pass] snprintf(b, sizeof(b), "Defishing") => 0x9
[Pass] strcmp(a, b) => 0x4
[FAIL] snprintf(buf, 3, "%d", 1234) => 0x4
[Pass] buf => '12'
[Pass] memcpy(foo, bar, 6) => 0x1b24c0
[Pass] foo => 'asdfghuiop'
[Pass] memset(bar, '*', 5) => 0x1b24a0
[Pass] bar => '*****hjkl;'
       bzero32(bar + 5, 5)
[Pass] bar => '****'
       EngDrvOut(LCD_Palette[0], 0x1234)
[Pass] shamem_read(LCD_Palette[0]) => 0x1234
       call("TurnOnDisplay")
[Pass] DISPLAY_IS_ON => 0x1
       call("TurnOffDisplay")
[Pass] DISPLAY_IS_ON => 0x0
       call("TurnOnDisplay")
[Pass] DISPLAY_IS_ON => 0x1
       task_create("test", 0x1c, 0x1000, test_task, 0) => 0x63000ae
[Pass] test_task_created => 0x1
[Pass] get_current_task_name() => 'run_test'
[Pass] task_max => 0x68
[Pass] task_max => 0x68
[Pass] mq = mq ? mq : (void*)msg_queue_create("test", 5) => 0x632009c
[Pass] msg_queue_post(mq, 0x1234567) => 0x0
[Pass] msg_queue_receive(mq, (struct event **) &m, 500) => 0x0
[Pass] m => 0x1234567
[Pass] msg_queue_receive(mq, (struct event **) &m, 500) => 0x9
[Pass] sem = sem ? sem : create_named_semaphore("test", 1) => 0x6340284
[Pass] take_semaphore(sem, 500) => 0x0
[Pass] take_semaphore(sem, 500) => 0x9
[Pass] give_semaphore(sem) => 0x0
[Pass] take_semaphore(sem, 500) => 0x0
[Pass] give_semaphore(sem) => 0x0
[Pass] rlock = rlock ? rlock : CreateRecursiveLock(0) => 0x636005a
[Pass] AcquireRecursiveLock(rlock, 500) => 0x0
[Pass] AcquireRecursiveLock(rlock, 500) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0x0
[Pass] ReleaseRecursiveLock(rlock) => 0xf
       SetGUIRequestMode(1); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x1
       SetGUIRequestMode(2); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x2
       SetGUIRequestMode(0); msleep(1000);
[Pass] CURRENT_GUI_MODE => 0x0
[Pass] display_idle() => 0x1
       GUI_Control(BGMT_PLAY, 0, 0, 0); msleep(1000);
[Pass] PLAY_MODE => 0x1
[Pass] MENU_MODE => 0x0
       GUI_Control(BGMT_MENU, 0, 0, 0); msleep(1000);
[Pass] MENU_MODE => 0x1
[Pass] PLAY_MODE => 0x0
[Pass] dialog->type => 'DIALOG'
       GUI_Control(BGMT_MENU, 0, 0, 0); msleep(500);
[Pass] MENU_MODE => 0x0
[Pass] PLAY_MODE => 0x0
       SW1(1,100)
[Pass] HALFSHUTTER_PRESSED => 0x1
       SW1(0,100)
[Pass] HALFSHUTTER_PRESSED => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x1
[Pass] is_pure_play_movie_mode() => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x0
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x1
[Pass] is_play_mode() => 0x1
[Pass] is_pure_play_photo_mode() => 0x0
[Pass] is_pure_play_movie_mode() => 0x0

Only 1 fail at: [FAIL] snprintf(buf, 3, "%d", 1234) => 0x4
#89
Camera-specific Development / Re: ML on EOS-M2
September 15, 2019, 03:33:05 PM
Quote from: Danne on September 15, 2019, 12:15:44 PM
Interesting. Could you share the code for these changes to eosm2?
Yes, I will share the code a little later, when I get to the laptop.
https://bitbucket.org/ccritix/magic-lantern/branch/crop_rec_4k_mlv_snd_raw_only-EOSM2

Quote from: ZEEK on September 15, 2019, 02:26:23 PM
@critix
Tested it. It's not functional yet. No presets can be selected to record.
No preset because modules not loaded. Please load modules.
#91
Camera-specific Development / Re: ML on EOS-M2
September 15, 2019, 07:44:17 AM
Hello
Starting from Danne's branch
https://www.magiclantern.fm/forum/index.php?topic=9741.msg208959#msg208959
I compiled for the EOSM2 model:
https://bitbucket.org/ccritix/magic-lantern/downloads/magiclantern-Nightly.2019Sep14.EOSM2103.zip
I do not know yet if it is as functional as EOSM because I have not yet been able to do the tests.
#92
unfortunately, we cannot run ML on this device, at least not now ...
#93
You run ROM dumper, not ML install...
for this device, you cannot run ML yet
#95
General Development / Re: Bitbucket for Beginners
July 04, 2019, 12:27:32 PM
Congratulations for the tutorial.
Even though I have been working for a while (not much) with bitbuchet, I still have to learn about bitbuchet ...
#96
Quote from: scrax on March 13, 2019, 02:22:56 PM
To find the GUIMODE missing you have to be able to compile ML and edit the code.
Good...
I tried the EOS M2. I ran guimode_test and I have many VRAMXXX.PPM images on my card.

I want to do the same with 500D.
Alex said:
QuoteThese can be found in QEMU, on most DIGIC 3/4/5 models
What to do next?
Maybe I missed something ...
Thank you
#97
Camera-specific Development / Re: ML on EOS-M2
July 04, 2019, 07:47:35 AM
@PitbulZil - At the indicated address you can not find the archive.
Download at https://bitbucket.org/daniel_fort/magic-lantern/downloads/
#99
If I'm not mistaken, it seems like this error is when you have another version of ROM than the one you work with.
#100
mtools_copy_ml.sh is in qemu directory.
Please read here:
https://www.magiclantern.fm/forum/index.php?topic=2864.msg190596#msg190596
For "Hello Word":
hg update 1300D
cd minimal/hello-world
make MODEL=1300D


make install not work yet on 1300D.