Hi!
I took the code from this thread
SD300 porting: I really need some help...and invested "some" time to get it working.
Its really a nightmare browsing asm code from objdump and trying to
set things up
However here is a first beta version:
zSHARE - chdk_ixus40_080730__trunk__.tar.gzScroll down to find the latest version!In trunk/bin/ are the compiled files for the cam.
Limitations:
- Keyboard is lagging !! sometimes several presses are necessary (cause: kbd task issue, see gui.c/kbd_process stuff)
- get_parameter_data() returns 0 all the time (different code on sd300, |0x4000 makes it return 0, without it crashs)
- ...
Working:
- scripts: interval_video.bas +interval.bas
- keyboard/gui hack to prevent kbd task from calling gui functions (i miss 3 of 10 keypresses so its a bit buggy)
- filebrowser
- memorydump (some very high locations cause cam resets)
- capt_seq storing raw files
- develop raw files by filebrowser
- getProperty seem to work for most properties (like distance etc maybe differen locs)
- get cam is shooting hack, see lib.c / capt_seq.c
RAW file save works but overwrites the same file all the time -> see gparamdata issue
in order to convert the raws using dcraw a patch is needed:
diff dcraw.c dcraw.orig
6485d6484
< { 5298000, "Canon", "Ixus 40", 0},
6736,6744c6735
< } else if (!strcmp(model,"Ixus 40")) {
< height = 1720;
< width = 2312;
< raw_height = 1728;
< raw_width = 2400;
< top_margin = 6;
< left_margin = 12;
< load_raw = &CLASS canon_a5_load_raw;
< } else if (!strcmp(model,"PowerShot A460")) {
---
> } else if (!strcmp(model,"PowerShot A460")) {
Please give it a try and give some feedback/enhance it.
Adding this to trunk would be difficult because the 5line hack in gui.c (maybe someone finds a better way)
have fun