500d development - page 106 - DSLR Hack development - CHDK Forum

500d development

  • 2487 Replies
  • 897864 Views
Re: 500d development
« Reply #1050 on: 12 / May / 2011, 06:46:04 »
Advertisements
might have found possible other hd buffers? not sure about their size yet.

spying on a few locations that i found contain 0x46000080 (one working hd address we have), using hunt.py from alex. Below are a few locations and the values i noted they cycle through in live view:

--0x157f84--
0x46000080
0x06000080
0x48000080
0x08000080

--0x869a70--
0x46000080
0x48000080

--0x48a0--
0x46000080
0x48000080

I have now confirmed that 0x46000080 and 0x48000080 work (using dimensions 928x616 with pitch 1856), as noted on the vram page for the 500d. the 0x44000080 value on that wiki appears to be wrong, because silent pics/magic zoom weren't right at all.

I'm going to try some of these other values now.



edit:
0x06000080 works
0x08000080 works
so now we have 4 lv_hd_buffer addresses: (0x06000080, 0x08000080, 0x46000080, 0x48000080). with a possible dma address at 0x157f84 switching between all 4, or 0x869a70 switching between 0x46000080 and 0x48000080.

the only odd thing is that focus peaking is offset, vertically lower than the actual display, so the whole focus peaking map is off by a little bit -_-
it isn't like this on the lv address, but it is on all 4 of these hd vram addresses... i'm stumped.

everything is working beautifully now.

Strange, I'm sure I found an actual image at 0x44000080 in one of my old dumps. Maybe the location varies between 0x44..., 0x46... and 0x48... or so.
Also, I always assumed that the first nibble of the address somehow did not really matter, apart from 0x1 and 0x5 (garbage), and high values (0x8 and higher iirc).
Either way, now that we have the location of the dma pointer, we can always be sure instead of guessing :-).

With regards to those 0x0 and 0x4 addresses in the dma pointer at 0x157f84. That's a really interesting find! Maybe that 0x0 and 0x4 page arent the same after all? Or maybe that second bit is a flag for something -- like "this buffer is still being written to atm", as the other addresses don't seem to mention anything in the 0x0 section.

Regarding the offset peaking: the HD buffer maybe uses a different pixel ratio than the liveview buffer, so you will possibly need to do some resampling to get it to map correctly to the vram that ML writes to. Just about every resolution found on the vram wiki page has a different aspect ratio...

One final note, I found the 0x48000080 buffer to contain a 1576x1048 image once (when recordig at 1080p), you might try to check this to see if this breaks the current code (ie if the features don't work when actually recording at 1080p).

I'm trying to get my camera to boot ML again asap, but something fishy has happened (probably whist dumping vram) that makes it impossible to boot from the autoexec (tried pretty much everything). Grrr.

*

Offline vorob

  • *
  • 26
Re: 500d development
« Reply #1051 on: 12 / May / 2011, 08:03:06 »
Few thoughts about custom firmware i expressed in my video:
http://www.youtube.com/watch?v=ThV6coqkIk0#
Sorry for my english and few rude words :)

Topics:

- menu flickers
- pressing SET button to change values is really boring
- custom iso randomly changes from what i set

Re: 500d development
« Reply #1052 on: 12 / May / 2011, 08:38:16 »
you can press the DISP button to go back in the ML menu
Canon EOS Rebel T1i
Canon 18-55 kit lens
Zenitar M2S 2/50mm

Flickr

Re: 500d development
« Reply #1053 on: 12 / May / 2011, 09:11:26 »
hey guys,

First of all, i'd like to congrat everybody who puts time and effort into that project. (like usual lol)
 Maybe this is gonna sound weird because it must be a detail for now, but i was wondering if we could imagine a french (or other language) version of ML.
I would be happy to translate it.  ;) I havent tried yet to get started with the Arm toolchain and stuff, and honnestly im still a little bit confused with all that, but i guess i can learn the basics, so that i could translate the menus. Im not sure, but i guess i wouldnt need to touch the actual code for that right ??
So here's my question : is that possible for someone like me who doesnt know much about code, C, etc.. ?

i'm sure there's a lot of people in France who would want to help with the development of ML, but it's really hard cause all the documents,resources, forums, and stuff are in english.   :(


I think im gonna start with the translation of the UserGuide.

« Last Edit: 12 / May / 2011, 09:19:39 by gravityrem »


*

Offline Coutts

  • *****
  • 538
  • www.flickr.com/couttsphotog
    • Flickr
Re: 500d development
« Reply #1054 on: 12 / May / 2011, 09:16:19 »
to clear some things up:
-when i merged to the latest 550d codebase last week, that new tweaks menu was added, so as a result things don't fit on the screen anymore. i have to change the menu position, alex says the menu on the 550d is full screen so i might have to do that.

- the screen only flickers when the camera is metering and that EV bar is moving around, every time it moves canon redraws it's screen so as a result ML's menu is cleared and must be re-drawn. The only perfect solution to this is to somehow block metering from working while the ML menu is shown. I've tried block events and injecting different events but have had no luck, the best we can do is make the ML menu try to re-draw as fast as possible.

- set toggles forward, disp toggles back, and the LV button will auto select for some settings (iso, shutterspeed, white balance too i believe). you can also use the LV button on some settings like focus peaking and zebras to adjust different settings. i think i looked into the wheel but the problem is it generates the same event no matter which way it's clicked, so i couldn't figure out how to use it for this.

- you must have accidently hit the LV button when that iso value changed on it's own, if it was yellow at that time (hard to tell) then that means that an auto setting was selected. it's also possible things aren't working yet. after i merged the latest codebase a lot of things changed / stopped looking.

i'm trying to concentrate on one thing at a time right now, before i release another build i want to square away this vram stuff for focus peaking, magic zoom and silent pics.

but thank you for trying it out :)

Canon 5d
Canon 50mm f/1.8
Sigma 24mm f/1.8

Flickr

Re: 500d development
« Reply #1055 on: 12 / May / 2011, 09:20:46 »
Coutts you are a hacking God!  Along with the help of a few others like Alex.  I know nothing of this code, but I've been coding in C for 25 years.  If you ever get stuck and have a question, Skype me Brighteyes3333.  I'm going to create so many cool videos with Silent Picture.  I'll thank you in every one of them!  I have a project coming up and will need Silent Picture mode.  You finished it just in time.  Thanks again!  Steve

Re: 500d development
« Reply #1056 on: 12 / May / 2011, 09:28:04 »
Actually, i read my post just above, and it's really not clear :lol:

So what i wanna know is : in the code, the actual name of the features (as they are written in the menu, (for exemple "focus peaking")) matters ?

so for a translation, would i need to re write all the code, or i could just transalte the menu ?


damn it.. Still confusing...sorry i hope you understand.

i guess i should just try to follow your tutorial to get started, and take a look at that code myself.
« Last Edit: 12 / May / 2011, 09:30:56 by gravityrem »

*

Offline a1ex

  • *****
  • 671
  • ML dev
Re: 500d development
« Reply #1057 on: 12 / May / 2011, 09:45:07 »
gravityrem: to translate the manual, you need to work on this file:
https://bitbucket.org/hudson/magic-lantern/history/doc/FEATURES.txt

This is the manual for 550D. I don't see this file on 500D repo. If you know python and LaTeX, you can play with mkdoc.py; if not, send it to me.

David Quiles maintains a translation for Magic Lantern user guide in Spanish, but he re-formatted the document from scratch: http://www.davidqonline.com/2008/01/manual-magic-lantern-para-550d-firmware.html

Maybe it's good to have a single manual for all cameras, as most features work the same. And maybe mark camera-specific issues/features in some way... ideas?

The code isn't really ready to handle menus in other languages, since all the messages are hardcoded. There is also a limit on autoexec.bin size, and we are very close to it. For example, to add a few help tips for each menu item (in latest 550/60D build), I had to remove a few library functions and replace them with stubs to keep code size small.

On the other way, to use ML you need a bit of knowledge; it's definitely not a toy for beginners, but a tool for power users.

vorob: constructive feedback is welcome, but what you did is not. Nobody forced you to use ML. If you don't read the manual, at least look at video tutorials first.
« Last Edit: 12 / May / 2011, 09:47:16 by a1ex »


*

Offline Coutts

  • *****
  • 538
  • www.flickr.com/couttsphotog
    • Flickr
Re: 500d development
« Reply #1058 on: 12 / May / 2011, 09:53:04 »
Actually, i read my post just above, and it's really not clear :lol:

So what i wanna know is : in the code, the actual name of the features (as they are written in the menu, (for exemple "focus peaking")) matters ?

so for a translation, would i need to re write all the code, or i could just transalte the menu ?


damn it.. Still confusing...sorry i hope you understand.

i guess i should just try to follow your tutorial to get started, and take a look at that code myself.
i think you could leave all of the code but change strings (like what's printed) to french. strings are inside double quotes "".

ex:

bmp_printf( FONT_MED, 0, 0, "this is a print statement" );
Canon 5d
Canon 50mm f/1.8
Sigma 24mm f/1.8

Flickr

*

Offline a1ex

  • *****
  • 671
  • ML dev
Re: 500d development
« Reply #1059 on: 12 / May / 2011, 09:59:19 »
You can do that, but who will maintain the code afterwards? It's not so easy.

Language files (like CHDK does) would be a much better solution in the long run, but they have some overhead.

 

Related Topics