Current status:
most annoying bug: RAW is definitely broken!
Code-related issues:
-- ------------------
- core/kbd.c: ZSTEP_TABLE_SIZE, nTxtbl
- platform/<camera>/shooting.c: dof_tbl
- platform/<camera>/sub/lib.c: hook_raw_image_addr, vid_get_viewport_live_fb
- include/camera.h: cam_CFAPattern, CAM_COLORMATRIX1, cam_CalibrationIlluminant1, CAM_ACTIVE_AREA_* and a few other things
COLORMATRIX --> I've read in forum that DGN4PS2 should be used for
- platform/<camera>/main.c: modemap --> as ewavr said: Using propertycase browser in debug menu (propcase #49).
- platform/<camera>/kbd.c: keymap, keys_mask*
keymap -->
http://chdk.setepontos.com/index.php/topic,2900.75.html (basically, using debug osd for output of physw_status to get values for keys pressed and build a keymap) I did not found those values in fw dump, but I can not believe that they don't exist there.
- include/camera.h: properties need to be adjusted/corrected
- switch to new code base (trunk)
- implementation of firmware update method
Problems:
---------
- RAW
- LCD screen sometimes flickering (red snow)
- keyboard: mixed keys, wrong assignment --> might be interfere with a wrong keymap (and keys_mask* and alt_mode_key_mask)
- modemap
- zoom wheel doesn't work from time to time
- shutter button doesn't work from time to time
- scripts: badpixel.lua ends always with "Try again..", badpixel.bin will not generated (but bad_tmp.bin)
Solved:
-------
-
Others:
-------
- Multi-partitioning works, you can use your SDHC-cards.
- Video Zoom: Unfortunately real video zoom doesn't work. Only digital zoom is available but thats not that glorious. I think (but I don't know) CHDK is not able to bypass that restriction.
- Mixed keys: <face> seems to be <ALT> if you choose <print> for <ALT> in OSD, <menu> becomes <ALT> if you choose <face> for <ALT> in OSD
JogDial up/down is still swapped
- RAW: will be shot but is unusable --> maybe some wrong RAW-parameters. SX110 uses a new 9 MP-CCD and I couldn't get information about dimensions, active areas and so on. I think that should be one of the most important things to fix. --> have a look at my camera.h and hook_raw_size (platform/<cam>/sub/<fw>/lib.c)
- battery indicator relies upon estimated values and might be wrong
Some toughts about RAW:
Sensor dimensions in camera.h are definitely wrong! Due to missing information about the real sensor size I made following assumptions (camera.h contains other values):
#define CAM_RAW_ROWPIX 3524 //?
#define CAM_RAW_ROWS 2626 //?
#define CAM_JPEG_WIDTH 3456 //ok
#define CAM_JPEG_HEIGHT 2592 //ok
#define CAM_ACTIVE_AREA_X1 10 // ?
#define CAM_ACTIVE_AREA_Y1 8 // ?
#define CAM_ACTIVE_AREA_X2 3496 // ?
#define CAM_ACTIVE_AREA_Y2 2622 //?
The only well known parameter is the JPEG-size. All others are derived from those values (4:3 aspect ratio, 1-2% bigger sensor size than JPEG-dimensions).
You have also to consider hook_raw_size.
// Found at ROM:FFE60B00
// ROM:FFE60BB4 LDR R1, =0xEC04F0
// ROM:FFE60BB8 ADR R0, aCrawBuffSizeP ; "CRAW BUFF SIZE %p"
// ROM:FFE60BBC BL sub_FFCE7000
return 0xEC04F0;
Based on the assumption of a 10bit-sensor so 0xEC04F0 is to big. If 12bit and a 4:3 aspect ratio:
0xEC04F0 =15467760
15467760/12*8=10311840
10311840/0,75=13749120
sqrt(13749120)=3708
3708*0,75=2781
so real sensor size should be 3708x2781
?
next point:
//#define DNG_EXT_FROM ".CR2" //??, commented out due to missing variables some_f_for_dng and second_ext_for_dng)
SX110 seems to handle RAW/DNG like SX10 and not like SX100.
Ok, thats all for now.
Have fun!