Author Topic: DIGIC 8 'PowerShot' development (M50, SX70, SX740)  (Read 126375 times)

Walter Schulz

  • Contributor
  • Hero Member
  • *****
  • Posts: 7879
Re: DIGIC 8 'PowerShot' development (M50, SX70, SX740)
« Reply #300 on: February 04, 2021, 10:45:24 PM »
Subject should get enhanced, I suppose: G5 X Mark II, G7 X Mark III firmware have *.FIR suffix. M200 still without confirmation but listed as compatible to EOS Webcam Utility and "real" PowerShot doesn't seem to be supported at all.

coon

  • Developer
  • Freshman
  • *****
  • Posts: 97
Re: DIGIC 8 'PowerShot' development (M50, SX70, SX740)
« Reply #301 on: February 05, 2021, 08:09:13 PM »



Hello !

Do you need coding skills to install this feature on the m50 ?

GUI_SetSilentShutter sets a property which is persistent (survives a battery pull) until it is deactivated. Therefore this could also be done via Canon Basic script. Silent shutter mode can also be deactivated by entering SCN mode and leaving it again.
EOS RP

ArcziPL

  • Contributor
  • Member
  • *****
  • Posts: 170
Re: DIGIC 8 'PowerShot' development (M50, SX70, SX740)
« Reply #302 on: February 05, 2021, 11:52:58 PM »
Sounds cool!

Will it be as simple as this?

Code: [Select]
private sub Initialize()
GUI_SetSilentShutter(1)
end sub
M50.110 [main cam] | M.202 [pocket cam] | 70D.112 [gathers dust] | looking for G7XIII, waiting for M5II

coon

  • Developer
  • Freshman
  • *****
  • Posts: 97
Re: DIGIC 8 'PowerShot' development (M50, SX70, SX740)
« Reply #303 on: February 06, 2021, 12:26:11 AM »
No, GUI_SetSilentShutter is not an Event Procedure and you need to export it first.
The following script meight work on M50 v1.0.2 (untested, use at own risk!):

Code: [Select]
private sub Initialize()
    ExportToEventProcedure("GUI_SetSilentShutter", 0xe053607f)
    GUI_SetSilentShutter(1)
end sub


EOS RP

ArcziPL

  • Contributor
  • Member
  • *****
  • Posts: 170
Re: DIGIC 8 'PowerShot' development (M50, SX70, SX740)
« Reply #304 on: February 06, 2021, 12:40:53 AM »
Thanks! I'm on 1.1.0, so need the new adress first (and add +1, for setting the THUMB flag).
M50.110 [main cam] | M.202 [pocket cam] | 70D.112 [gathers dust] | looking for G7XIII, waiting for M5II

coon

  • Developer
  • Freshman
  • *****
  • Posts: 97
Re: DIGIC 8 'PowerShot' development (M50, SX70, SX740)
« Reply #305 on: February 06, 2021, 12:51:09 AM »
Script for M50 v1.1.0 is:

Code: [Select]
private sub Initialize()
    ExportToEventProcedure("GUI_SetSilentShutter", 0xe0536113)
    GUI_SetSilentShutter(1)
end sub
EOS RP

a1ex

  • Administrator
  • Hero Member
  • *****
  • Posts: 12562
Re: DIGIC 8 'PowerShot' development (M50, SX70, SX740)
« Reply #306 on: February 06, 2021, 08:11:37 AM »
When sharing scripts that are likely to be run by regular users, I strongly recommend performing some kind of camera model / firmware version checking. CHDK do this for scripts meant to be run by users (look up "check_compat").

Most of the time, the effect of calling an invalid stub - which would usually jump in the middle of some random Canon function - will be a crash, but if one is unlucky enough, that crash might lead to a memory write that will end up written back into main ROM at camera shutdown (yes, Canon firmware does this). Or, what if - on some different camera model - that stub might be in the middle of EraseSectorOfRom? Very unlikely, but still...

I've got a fair amount of backlash in the past for recommending this timeless article to other developers, but I still believe the advice there is very good (long answer). And I have no experience unbricking recent Canon models, btw ;)

ArcziPL

  • Contributor
  • Member
  • *****
  • Posts: 170
Re: DIGIC 8 'PowerShot' development (M50, SX70, SX740)
« Reply #307 on: February 06, 2021, 12:03:57 PM »
Script for M50 v1.1.0 is:

Code: [Select]
private sub Initialize()
    ExportToEventProcedure("GUI_SetSilentShutter", 0xe0536113)
    GUI_SetSilentShutter(1)
end sub

It works, thank you! This feature is fantastic! :)

Thanks Greg for finding this function and trying out.
M50.110 [main cam] | M.202 [pocket cam] | 70D.112 [gathers dust] | looking for G7XIII, waiting for M5II

coon

  • Developer
  • Freshman
  • *****
  • Posts: 97
Re: DIGIC 8 'PowerShot' development (M50, SX70, SX740)
« Reply #308 on: February 06, 2021, 01:50:39 PM »
[...] (untested, use at own risk!):

But I agree that having some check_compat function in our scripts would be better, especially on code which modifies properties.
Model name and version number in string representation are stored somewhere in the ROM. I may try to compare against those in future.
EOS RP

Walter Schulz

  • Contributor
  • Hero Member
  • *****
  • Posts: 7879
Re: DIGIC 8 'PowerShot' development (M50, SX70, SX740)
« Reply #309 on: February 06, 2021, 02:07:34 PM »
As mentioned/ranted some time ago: Some users will intentionally disregard such warnings and trying to mess with any script available -> Unable or unwilling to take risks into consideration. (I can provide examples showing a lack of understanding and jackass attitude which will ripple your foot nails, as we say here).
Please consider some checks, at least. Won't prevent worst kind users from getting their hair burned to the skin but majority will not get a clue why a script won't work because of said checks.

And please add some comment why these checks are implemented and the risks involved. Leaving only people wanting to see the world burn wanting to remove them.

coon

  • Developer
  • Freshman
  • *****
  • Posts: 97
Re: DIGIC 8 'PowerShot' development (M50, SX70, SX740)
« Reply #310 on: February 06, 2021, 03:21:04 PM »
I am thinking about something like this (pseudo code):

Code: [Select]
dim model_name        = "Canon EOS RP"
dim firmware_version  = "1.6.0"
dim model_name_addr   = 0xe121d57c
dim firmware_ver_addr = 0xe00408e0

public sub check_compat()
    if model_name_addr == model_name and firmware_ver_addr == firmware_version then
        check_compat = 1
    else
        check_compat = 0
    end if
end sub

That way the code would self document for what model the script is for. I Just need to find a way to do a strncmp in canon basic for that.
EOS RP

ArcziPL

  • Contributor
  • Member
  • *****
  • Posts: 170
Re: DIGIC 8 'PowerShot' development (M50, SX70, SX740)
« Reply #311 on: February 06, 2021, 06:34:48 PM »
Does anyone have an idea if there is a function to change ISO selection steps from 1/3EV to 1EV? On 70D it's an option in Canon menu but it's not present on M50.

I personally find the 1/3EV steps a disadvantage. They make changing ISO with the dial way too slow for my taste and it's just a digital push/pull which can be done in post.

Greg, maybe you have digged in this direction already?
M50.110 [main cam] | M.202 [pocket cam] | 70D.112 [gathers dust] | looking for G7XIII, waiting for M5II

Greg

  • Contributor
  • Hero Member
  • *****
  • Posts: 607
Re: DIGIC 8 'PowerShot' development (M50, SX70, SX740)
« Reply #312 on: February 07, 2021, 10:56:44 PM »
The last time I looked at the M50 rom dump was almost a year ago. There was a lot of functionality not visible in the menu but I don't remember.
If the R/RP has this feature, the M50 should also have it, but not visible in the menu.

You can check - "GUI_SetIsoSettingStep"

ArcziPL

  • Contributor
  • Member
  • *****
  • Posts: 170
Re: DIGIC 8 'PowerShot' development (M50, SX70, SX740)
« Reply #313 on: February 08, 2021, 12:07:50 AM »
Yep, it exists! Thanks!

GUI_SetIsoSettingStep Value(%d)
M50.110 [main cam] | M.202 [pocket cam] | 70D.112 [gathers dust] | looking for G7XIII, waiting for M5II

whitefang

  • Just arrived
  • *
  • Posts: 1
Re: DIGIC 8 'PowerShot' development (M50, SX70, SX740)
« Reply #314 on: February 28, 2021, 10:07:36 PM »
Hello!
Thanks a lot for your hard work!

I really hope that someday there will be a working magic lantern firmware for this device.
I own this camera a few year.
I am ready to help as much as I can.

Can you please tell me, if it is possible to make a clean hdmi on this camera (by analogy with the m200) using autofocus?
I really want to use it not only for video recording, but also for streaming. Autofocus would be a great helper!
Thank you!

mazzdaddy

  • Just arrived
  • *
  • Posts: 1
Re: DIGIC 8 'PowerShot' development (M50, SX70, SX740)
« Reply #315 on: March 05, 2021, 10:56:10 PM »
M50 1.0.2 - 7 frames exposure bracketing



Code: [Select]
THUMB_FN(0xE04E05BE, GUI_SetCFnBktSheetsData)

#define BktSheets3                  0x3
#define BktSheets5                  0x5
#define BktSheets7                  0x7

extern int GUI_SetCFnBktSheetsData(int);
GUI_SetCFnBktSheetsData(BktSheets7);
This is all I want to do.  How do I do this, please?  My camera came with 1.1.0.  Do I need to replace with 1.0.2?  And how do I access/change the code to allow 7 brackets?

dbot

  • Just arrived
  • *
  • Posts: 1
Re: DIGIC 8 'PowerShot' development (M50, SX70, SX740)
« Reply #316 on: April 02, 2021, 09:22:12 PM »
haven't read the whole thread, but will the M50 have similiar hacked capabilities like the original M at some point?

Walter Schulz

  • Contributor
  • Hero Member
  • *****
  • Posts: 7879
Re: DIGIC 8 'PowerShot' development (M50, SX70, SX740)
« Reply #317 on: April 06, 2021, 12:37:25 PM »
Sorry, unable to answer ATM. All devs are busy running a side quest to regain magic balls stolen by the Illuminati!