LiveView Investigation

Started by theBilalFakhouri, August 27, 2020, 12:04:37 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

theBilalFakhouri

@dpjpandone

Thanks for offering the help. I am doing it in camera (DebugLog + Ghidra + patching experiments).
I already found some functions which may be involved in YUV configuration on 5D3, I only need some time to make a deep look into it.

theBilalFakhouri

Ah, finally I think I have a starting point on 5D3 :)
Now I found the function which select/toggle among YUV configuration (or at least sets zoom ratio?), I could force x5 preview into x10 preview (vice versa) for the first time.

And that's how things were started on 700D:
Quote from: theBilalFakhouri on August 27, 2020, 12:04:37 PM
"By locking the registers between x5 and x10 you can bring x10 real-time preview into x5 vice versa in Canon 700D.."

It's only the beginning here . . but this time on 5D3.

vastunghia

Quote from: theBilalFakhouri on February 10, 2023, 03:58:51 PM
It's only the beginning here . . but this time on 5D3.

Sounds like a Hollywood movie trailer :D and I'm thrilled as f*. Keep up mate!
5D3 for video
70D for photo

ShittyWebsite

Quote from: vastunghia on February 10, 2023, 04:21:07 PM
Sounds like a Hollywood movie trailer :D and I'm thrilled as f*. Keep up mate!

Man i was gonna say the same thing, i'm invested


Looking good @bilal, great job

theBilalFakhouri

By looking into ROM files, preview configuration seems like:

-DIGIC 4/4+:
Newer models:  600D, 60D and 1300D more likely it's same as DIGIC 5 (maybe slight differences).
Older models:   5D2, 7D and 550D more likely simpler than DIGIC 5.

-DIGIC 5: 650D/700D/100D/EOS M/EOS M2 are identical, simpler than DIGIC 5+.
-DIGIC 5+: 5D3, 6D and 70D seems similar and more likely it's more complex than DIGIC 5.

theBilalFakhouri

Little update on 5D3:

-I know now where EDMAC#10 and EDMAC#21 parameters (probably +other related parameters) are being set, and I can modify them, these are related to preview obviously:

Quote from: theBilalFakhouri on February 08, 2023, 12:34:57 PM
Also there are three EDMAC channels seem related to YUV HD path which are channels #10, #21 and #28. Searching around them may lead us to something.

-I am still missing where EDMAC#28 parameters + other parameters which might be related to stretching/scaling/cropping are being set.
-I am still looking for them.

After finding them (if I could), I will have some experiments to do, like:

-Patching VGA into 1080p (vice versa)
-Patching 720p into 1080p (vice versa)
-Patching x5 into x10 (vice versa), and get arbitrary crop factors like x15 and x20.


iaburn

OMG... This is how you announce progress on ML, with a proper epic video presentation!!!  :D :D :D :D
Congrats!!


Danne


theBilalFakhouri

Quote from: iaburn on February 19, 2023, 03:27:51 PM
OMG... This is how you announce progress on ML, with a proper epic video presentation!!!  :D :D :D :D
Congrats!!

Epic moments need epic :D
Thanks!

Quote from: Danne on February 19, 2023, 05:50:02 PM
Haha, how???

Magic :P

Some more registers which appear to control/affect black area.

I had a thought yesterday which is black area limit is being controlled somewhere in preview initialization registers which being set once, e.g. doesn't change from video mode to another.
Firstly, I had to search among +2000 registers, until I narrowed down and got it. This year would definitely be the Year of Preview (well, at least for entry level models :P)




What you can see in this video:

-I could exceed 2044 pixels width limit for the first time, this limit was introduced in the early days of this research.
-Next: figure out how to exceed 2520 width limit (if there is one), this time it won't be a black area, but *something else :) I didn't make any tests yet.

*Preview stuff is like crashing into a wall to find another wall needs to be crashed in then to find out there is a third wall ... etc :P

Skinny

Congratulations! This is huge, it can take this cameras to a whole new level! You have really badass skills in reverse-engineering :)

theBilalFakhouri

Thanks @Skinny

Quote from: Skinny on February 20, 2023, 05:55:51 PM
This is huge,

It is :)

Not only for DIGIC 5 models, but for newer models, I mean if DIGIC 5 generation (from 12 years) is that powerful, DIGIC 6/7/8 must be capable too.

Quote from: Skinny on February 20, 2023, 05:55:51 PM
..it can take this cameras to a whole new level!

Also it would be nice 10 years anniversary for having RAW video :)

Quote from: Skinny on February 20, 2023, 05:55:51 PM
You have really badass skills in reverse-engineering :)

I am definitely getting better over time, not claiming I am the most expert one here though. Thanks!

dpjpandone

Quote from: theBilalFakhouri on February 19, 2023, 09:40:50 PM

I had a thought yesterday which is black area limit is being controlled somewhere in preview initialization registers which being set once, e.g. doesn't change from video mode to another.
Firstly, I had to search among +2000 registers, until I narrowed down and got it. This year would definitely be the Year of Preview (well, at least for entry level models :P)


*Preview stuff is like crashing into a wall to find another wall needs to be crashed in then to find out there is a third wall ... etc :P

That sounds very tedious. Thank you for all your hard work!

Teamsleepkid

When will you post the ransom?  :P So we can get this going on eos m? Thanks for the hard work you always move things forward.
EOS M

theBilalFakhouri

Quote from: dpjpandone on February 21, 2023, 02:49:22 AM
That sounds very tedious. Thank you for all your hard work!

Reverse engineering requires a lot of patience in some cases, it's a lot of fun when you discover new thing and make things work.
Thank you too!

Quote from: Teamsleepkid on March 01, 2023, 12:08:00 AM
When will you post the ransom?  :P So we can get this going on eos m? Thanks for the hard work you always move things forward.

Sooooon :P

Currently I am re-writing (the old code) and writing new code (for new stuff) and I am trying to make it as clean as possible, goals:

-Support for 650D / 700D / EOSM / 100D (also *EOS M2) in one branch
So when it get realeased it will have 650D / 700D / EOS M / 100D support
*I need to check EOS M2 status in crop_rec_4k branch
-Don't break other models support like 5D3
-Code optimizations to avoid crashes, corrupted frames
-Some new things will be announced later

-Also and finally merge all of these new stuff to magiclantern_simplified

If everything went smoothly, you may expect an announcement next month :)

names_are_hard

That would be a very useful merge :)  Modern cams and old cams in one repo!

Danne

Quote from: theBilalFakhouri on March 01, 2023, 11:07:49 AM
Reverse engineering requires a lot of patience in some cases, it's a lot of fun when you discover new thing and make things work.
Thank you too!

Sooooon :P

Currently I am re-writing (the old code) and writing new code (for new stuff) and I am trying to make it as clean as possible, goals:

-Support for 650D / 700D / EOSM / 100D (also *EOS M2) in one branch
So when it get realeased it will have 650D / 700D / EOS M / 100D support
*I need to check EOS M2 status in crop_rec_4k branch
-Don't break other models support like 5D3
-Code optimizations to avoid crashes, corrupted frames
-Some new things will be announced later

-Also and finally merge all of these new stuff to magiclantern_simplified

If everything went smoothly, you may expect an annoucment next month :)

Eos m2 is buggy, but very much working. I have the camera in pink, had it sent to me from dfort. Would you be interested in having the M2 sent to you for coding purposes? Maybe send it back when done, or keep it maybe.

theBilalFakhouri

Quote from: names_are_hard on March 01, 2023, 11:22:12 AM
That would be a very useful merge :)  Modern cams and old cams in one repo!

Yes :D

Quote from: Danne on March 01, 2023, 11:30:45 AM
Eos m2 is buggy, but very much working.

Pretty sure we can make it not buggy :)




Quote from: Danne on March 01, 2023, 11:30:45 AM
I have the camera in pink, had it sent to me from dfort. Would you be interested in having the M2 sent to you for coding purposes? Maybe send it back when done, or keep it maybe.

Thanks for the offer!

Actually a donor offered to me his EOS M2 last year in September, and I accepted the offer, the donor was located in EU, I asked him to ship it to my friend in Germany and my friend got it.
(Thanks Donor!, do you mind mentioning your name?, credit will go to him in future).

Until now, I am still waiting a trusted passenger to bring it with him to my country, there was a chance last month but things didn't go well. Maybe later this year or next year.

Shipping it is very expensive and the main problem shipping can be complex at *unexpected times:
e.g. there was another donor offered to buy me a 70D body 1.5 years ago, the best 70D deal I could find at that time is from **China actually (low shutter count, brand new battery, cheaper),
due to "complexity" and unexpected "things" until now I didn't receive it. But might get a refund next month, and buy it locally.

*I bought a 3D printer a year ago, and PC monitor around ~2.5 years ago from China, shippments went smoothly (I waited ~25 days for 3D printer, around ~2-3 months for the monitor).
  Shipping cost for these items were equal if not a little more than items price, so if a 3D printer was 220 USD you pay ~500 USD with shipping (that's sometime still cheaper than buying items locally, it depend)

**You may ask if shipping was very expensive, why to buy a 70D and ship it from China?
    Right, but shipment this was actually *free* that time, a friend bought some stuff from China, I asked him to put the 70D body in one of his many large boxes, so no additinal cost was from my side. What a good friend :P

Sorry it was off-topic here. But I needed to make things clearer. Thanks again!



So basiclly I will have a EOS M2 and 70D to work on sooner or later :D
EOS M2 is more likely very similar to 100D, I will look into it later, also if there was a EOS M2 tester, that would helpful too.

Mattia

Quote
So basiclly I will have a EOS M2 and 70D to work on sooner or later :D
EOS M2 is more likely very similar to 100D, I will look into it later, also if there was a EOS M2 tester, that would helpful too.

What about us forgotten 5d3 users? Will there be good news also for us?  :)

theBilalFakhouri

Quote from: Mattia on March 01, 2023, 06:47:03 PM
What about us forgotten 5d3 users? Will there be good news also for us?  :)

Come on, 5D3 users are not forgotten . . at least not yet :P
I stopped working for now on 5D3, last update was here, surely I am getting closer, but unfortunately nothing . . yet.

I just need to finish working on 650D / 700D / EOS M/M2 / 100D family (might finish in two months), then after that my ML time would be dedicated to 5D3 to the rest of the year.
I hope I won't give up, even if I did, other devs will have the info which will be documented in future.

The research was started on 700D back in august 2020, and only this year (after ~2.4 years?) I was able to get an interesting results.
I again, really hope to get something this year on 5D3, but hope isn't enough really . . at least I can say my skills are improving overtime which translate to figuring out stuff faster (if it was not very complex) compared to me in the past years, like 2018 :P:

Quote from: theBilalFakhouri on April 20, 2018, 08:30:57 PM
I really don't know much about coding yet.
The blue Developers will know the answer about these coding things :D

I was "New to the forum" member back then, didn't know anything about coding/reverse engineering, ML project was exciting/amazing enough to get me involved.
So: patience please :) , BTW do you still have your EOS M? if yes, you might get some exciting news for it next month ;D

Mattia

Quote
So: patience please :) , BTW do you still have your EOS M? if yes, you might get some exciting news for it next month ;D
Nope! I've sold it! Right now I'm a happy 5d3 only user! Don't let me regret it! :)

theBilalFakhouri

Quote from: Mattia on March 01, 2023, 07:27:44 PM
Nope! I've sold it! Right now I'm a happy 5d3 only user! Don't let me regret it! :)

Ah, I see :) Well, Canon made preview work differently on 5D3, not me ;)
Controlling preview on 5D3 must be possible . . somehow :D

theBilalFakhouri

Quote from: theBilalFakhouri on February 19, 2023, 09:40:50 PM

-I could exceed 2044 pixels width limit for the first time, this limit was introduced in the early days of this research.
-Next: figure out how to exceed 2520 width limit (if there is one), this time it won't be a black area, but *something else :) I didn't make any tests yet.

Preivew width limit now is around ~2860 pixels (going above this introduce black bar), much better than 2044, it should cover the following 1:1 presets:

-2.5K, 2520x1080 (already tested)
-2.8K, 2880x1226 (width tested, height not yet, should work)
-1440p, 2560x1440 (not tested yet, should work)

iaburn

Quote from: theBilalFakhouri on March 04, 2023, 07:12:42 PM
Preivew width limit now is around ~2860 pixels (going above this introduce black bar), much better than 2044, it should cover the following 1:1 presets:

-2.5K, 2520x1080 (already tested)
-2.8K, 2880x1226 (width tested, height not yet, should work)
-1440p, 2560x1440 (not tested yet, should work)

Awesome! That's already A LOT  :o
I think realtime preview is most useful in modes that allow continuous recording, so at least for the EOS M this is perfect  :D

amitkattal

Quote from: theBilalFakhouri on March 04, 2023, 07:12:42 PM
Preivew width limit now is around ~2860 pixels (going above this introduce black bar), much better than 2044, it should cover the following 1:1 presets:

-2.5K, 2520x1080 (already tested)
-2.8K, 2880x1226 (width tested, height not yet, should work)
-1440p, 2560x1440 (not tested yet, should work)

Thats awesome. You are pushing the limits everyday. Almost made it to the 3k limit.