Changeset 1620
- Timestamp:
- 01/28/12 03:39:05 (16 months ago)
- Location:
- trunk
- Files:
-
- 23 edited
- 1 copied
-
. (modified) (1 prop)
-
camera_list.csv (modified) (1 diff)
-
core/gui_draw.h (modified) (2 diffs)
-
include/modelist.h (modified) (1 diff)
-
loader/a3300/entry.S (modified) (1 diff)
-
loader/a3300/main.c (modified) (1 diff)
-
loader/a3300/resetcode/main.c (modified) (2 diffs)
-
platform/a3300/kbd.c (modified) (6 diffs)
-
platform/a3300/lib.c (modified) (2 diffs)
-
platform/a3300/main.c (modified) (2 diffs)
-
platform/a3300/notes.txt (modified) (1 diff)
-
platform/a3300/platform_camera.h (modified) (3 diffs)
-
platform/a3300/shooting.c (modified) (2 diffs)
-
platform/a3300/sub/100a/boot.c (modified) (7 diffs)
-
platform/a3300/sub/100a/capt_seq.c (modified) (7 diffs)
-
platform/a3300/sub/100a/kbd.c (modified) (1 diff)
-
platform/a3300/sub/100a/lib.c (modified) (5 diffs)
-
platform/a3300/sub/100a/movie_rec.c (modified) (3 diffs)
-
platform/a3300/sub/100a/stubs_auto.S (modified) (7 diffs)
-
platform/a3300/sub/100a/stubs_entry.S (modified) (4 diffs)
-
platform/a3300/sub/100a/stubs_entry_2.S (modified) (1 diff)
-
platform/a3300/sub/100a/stubs_min.S (modified) (1 diff)
-
platform/a3300/sub/100d (copied) (copied from branches/release-1_0/platform/a3300/sub/100d)
-
platform/a3300/sub/100d/lib.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
/branches/release-1_0 merged: 1617
- Property svn:mergeinfo changed
-
trunk/camera_list.csv
r1613 r1620 5 5 a3000,100c,BETA,, 6 6 a3000,100d,BETA,, 7 a3300,100a,ALPHA,,SKIP_AUTOBUILD 7 a3300,100a,BETA,,SKIP_AUTOBUILD 8 a3300,100d,BETA,,SKIP_AUTOBUILD 8 9 a410,100f,BETA,100e, 9 10 a430,100b,BETA,,SKIP_AUTOBUILD -
trunk/core/gui_draw.h
r1556 r1620 734 734 #define COLOR_HISTO_RG_PLAY COLOR_YELLOW 735 735 736 // Used by :- A3300IS 736 737 #elif CAM_BITMAP_PALETTE==14 737 738 738 // Used by :- A3300IS 739 739 #define COLOR_TRANS 0x4C 740 740 #define COLOR_WHITE 0x01 741 741 #define COLOR_RED 0x6C 742 #define COLOR_GREY 0x1a 743 #define COLOR_GREY_LIGHT 0x0B 744 #define COLOR_GREY_DARK 0x19 745 #define COLOR_GREEN 0xa0 746 #define COLOR_BLUE_LT 0x96 747 #define COLOR_BLUE 0xa1 748 #define COLOR_YELLOW 0x92 749 #define COLOR_BG 0x62 750 #define COLOR_FG COLOR_WHITE 751 #define COLOR_SELECTED_BG 0x0e 752 #define COLOR_SELECTED_FG COLOR_BLACK 753 #define COLOR_ALT_BG COLOR_BG 742 #define COLOR_GREY 0x1D 743 #define COLOR_GREEN 0x5A 744 #define COLOR_BLUE_LT 0x58 745 #define COLOR_BLUE 0x6D 746 #define COLOR_YELLOW 0x51 747 #define COLOR_BG COLOR_TRANS 748 #define COLOR_FG COLOR_WHITE 749 #define COLOR_SELECTED_BG COLOR_RED 750 #define COLOR_SELECTED_FG COLOR_WHITE 751 #define COLOR_ALT_BG COLOR_TRANS 754 752 #define COLOR_SPLASH_RED COLOR_RED 755 #define COLOR_SPLASH_PINK 0x9F // Orange 756 #define COLOR_SPLASH_GREY 0x16 757 #define COLOR_HISTO_R 0x6C 758 #define COLOR_HISTO_R_PLAY COLOR_RED 759 #define COLOR_HISTO_B 0x6D 760 #define COLOR_HISTO_B_PLAY COLOR_BLUE 761 #define COLOR_HISTO_G 0x90 762 #define COLOR_HISTO_G_PLAY COLOR_GREEN 763 #define COLOR_HISTO_BG 0x52 // COLOR_BLUE_LT 764 #define COLOR_HISTO_RG 0x51 // COLOR_YELLOW 765 #define COLOR_HISTO_RB 0x3D // COLOR_RED 766 #define COLOR_HISTO_RB_PLAY COLOR_HISTO_RB 767 #define COLOR_HISTO_BG_PLAY COLOR_BLUE_LT 768 #define COLOR_HISTO_RG_PLAY COLOR_YELLOW 753 #define COLOR_SPLASH_PINK COLOR_YELLOW 754 #define COLOR_SPLASH_GREY COLOR_GREY 755 // colors for blended histo 756 #define COLOR_HISTO_R COLOR_RED 757 #define COLOR_HISTO_R_PLAY 0x9F 758 #define COLOR_HISTO_B COLOR_BLUE 759 #define COLOR_HISTO_G COLOR_GREEN 760 #define COLOR_HISTO_G_PLAY 0xA0 761 #define COLOR_HISTO_BG COLOR_BLUE_LT 762 #define COLOR_HISTO_RG COLOR_YELLOW 763 #define COLOR_HISTO_RB 0x66 764 #define COLOR_HISTO_RB_PLAY 0x9F 765 #define COLOR_HISTO_B_PLAY 0xA1 766 #define COLOR_HISTO_BG_PLAY 0xA0 767 #define COLOR_HISTO_RG_PLAY 0x9F 769 768 #undef SCREEN_COLOR 770 #define SCREEN_COLOR 0x1D769 #define SCREEN_COLOR 0x4C 771 770 772 771 // Icon colors … … 774 773 // Separate definitions for record and playback mode 775 774 // to cater for cameras with variable palettes 776 #define COLOR_ICON_REC_RED 0x3D 777 #define COLOR_ICON_REC_RED_DK 0x9F 778 #define COLOR_ICON_REC_RED_LT 0x1E 775 // Record mode colors 776 #define COLOR_ICON_REC_RED COLOR_RED 777 #define COLOR_ICON_REC_RED_DK COLOR_RED 778 #define COLOR_ICON_REC_RED_LT COLOR_RED 779 779 #define COLOR_ICON_REC_GREEN 0x90 780 #define COLOR_ICON_REC_GREEN_DK 0x5A781 #define COLOR_ICON_REC_GREEN_LT 0x5 9782 #define COLOR_ICON_REC_YELLOW 0x 2D783 #define COLOR_ICON_REC_YELLOW_DK 0x1E784 #define COLOR_ICON_REC_YELLOW_LT 0x 20780 #define COLOR_ICON_REC_GREEN_DK COLOR_GREEN 781 #define COLOR_ICON_REC_GREEN_LT 0x50 782 #define COLOR_ICON_REC_YELLOW 0x6B 783 #define COLOR_ICON_REC_YELLOW_DK COLOR_YELLOW 784 #define COLOR_ICON_REC_YELLOW_LT 0x6B 785 785 #define COLOR_ICON_REC_GREY COLOR_GREY 786 #define COLOR_ICON_REC_GREY_DK 0x1A 787 #define COLOR_ICON_REC_GREY_LT 0x11 786 #define COLOR_ICON_REC_GREY_DK COLOR_GREY 787 #define COLOR_ICON_REC_GREY_LT 0x13 788 // Playback mode colors 788 789 #define COLOR_ICON_PLY_RED 0x9F 789 790 #define COLOR_ICON_PLY_RED_DK 0x9F 790 #define COLOR_ICON_PLY_RED_LT 0x 1E791 #define COLOR_ICON_PLY_RED_LT 0x9F 791 792 #define COLOR_ICON_PLY_GREEN 0xA0 792 793 #define COLOR_ICON_PLY_GREEN_DK 0xA0 793 794 #define COLOR_ICON_PLY_GREEN_LT 0x9E 794 #define COLOR_ICON_PLY_YELLOW 0x 55795 #define COLOR_ICON_PLY_YELLOW_DK 0x 55796 #define COLOR_ICON_PLY_YELLOW_LT 0x 4C795 #define COLOR_ICON_PLY_YELLOW 0x92 796 #define COLOR_ICON_PLY_YELLOW_DK 0x92 797 #define COLOR_ICON_PLY_YELLOW_LT 0x90 797 798 #define COLOR_ICON_PLY_GREY COLOR_ICON_REC_GREY 798 799 #define COLOR_ICON_PLY_GREY_DK COLOR_ICON_REC_GREY_DK -
trunk/include/modelist.h
r1590 r1620 126 126 MODE_SNOW , 127 127 MODE_FIREWORK , // ixus1000 end 128 MODE_LIVE , // A3300is 129 MODE_DISCREET , // A3300is 128 130 }; 129 131 -
trunk/loader/a3300/entry.S
r1552 r1620 1 1 .section .entry 2 3 // Turn OFF SD Card power4 // to support autostart. Disabled for SX220.5 // LDR R3, =0xC02200186 // MOV R2, #0x447 // STR R2, [R3]8 2 9 3 // looks like idle cycle is required for proper shutdown 10 MOV R3, #0xF0000 // increased from 8000 to F0000 for extra delay for sx200 maybe could be 10000 ?4 MOV R3, #0xF0000 11 5 1: 12 6 SUB R3, R3, #1 -
trunk/loader/a3300/main.c
r1552 r1620 24 24 } 25 25 26 #define LED_PR 0xC02200F0 // -> ASM1989 08.24.2010 found at FF91E080 in sx200 was FF8E73D026 #define LED_PR 0xC02200F0 27 27 28 28 -
trunk/loader/a3300/resetcode/main.c
r1552 r1620 34 34 } 35 35 36 // SX230 found at FF02D3D836 //a3300is found at FF83BF10 37 37 asm volatile ( 38 //SX220 found at FF02D05839 // "MRS R0, CPSR\n" //SX220 not present in dump40 // "BIC R0, R0, #0x3F\n"41 // "ORR R0, R0, #0xD3\n"42 // "MSR CPSR, R0\n"43 38 "LDR R1, =0xC0200000\n" 44 39 "MVN R0, #0\n" … … 77 72 "MOV R1, #0x80000000\n" 78 73 "STR R0, [R1,#0xFFC]\n" 79 // "LDR R0, =0xFF 000000\n" //SX220 was disabled previously74 // "LDR R0, =0xFF810000\n" //a3300is disabled 80 75 "MOV R0, %0\n" // new jump-vector 81 76 "LDMFD SP!, {R4,LR}\n" -
trunk/platform/a3300/kbd.c
r1568 r1620 15 15 static long kbd_mod_state[3] = { 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF }; 16 16 17 static KeyMap keymap[];18 17 static long last_kbd_key = 0; 19 18 20 19 static long alt_mode_key_mask = 0x00000030; // disp + set 21 static int alt_mode_led=0;22 20 extern void _GetKbdState(long*); 23 21 24 22 // override key and feather bits to avoid feather osd messing up chdk display in ALT mode 25 #define KEYS_MASK0 (0x00000000) // physw_status[0] was 7FC0523 #define KEYS_MASK0 (0x00000000) 26 24 #define KEYS_MASK1 (0x00000000) 27 #define KEYS_MASK2 (0x0000F0BF) 25 #define KEYS_MASK2 (0x0000F0BF) //set to avoid canon menu being effected while in Alt mode 28 26 29 27 #define LED_AF 0xC02200F4 … … 77 75 } 78 76 } 79 /*void my_blinkk(void) { 80 int i; 81 while(1) { 82 *((volatile int *) 0xC02200FD) = 0x46; // Turn on LED 83 for (i=0; i<0x200000; i++) { asm volatile ( "nop\n" ); } 84 85 *((volatile int *) 0xC02200FD) = 0x44; // Turn off LED 86 for (i=0; i<0x200000; i++) { asm volatile ( "nop\n" ); } 87 88 *((volatile int *) 0xC02200FD) = 0x46; // Turn on LED 89 for (i=0; i<0x200000; i++) { asm volatile ( "nop\n" ); } 90 91 *((volatile int *) 0xC02200FD) = 0x44; // Turn off LED 92 for (i=0; i<0x900000; i++) { asm volatile ( "nop\n" ); } 93 } 94 } */ 77 95 78 96 79 extern long __attribute__((naked)) wrap_kbd_p1_f() { 97 80 98 //FF8346D4 81 99 82 asm volatile( 100 83 "STMFD SP!, {R1-R7,LR} \n" 101 84 "MOV R5, #0 \n" 102 85 //"BL _kbd_read_keys \n" 103 "BL my_kbd_read_keys \n" // pac hed86 "BL my_kbd_read_keys \n" // pacthed 104 87 "B _kbd_p1_f_cont \n" 105 88 ); … … 111 94 112 95 while (physw_run) { 113 _SleepTask(*((int*)(0x1C30 + 0x8))); // @FF0248AC96 _SleepTask(*((int*)(0x1C30 + 0x8))); // @FF834160 + FF834168 114 97 115 98 if (wrap_kbd_p1_f() == 1) { // autorepeat ? … … 127 110 } 128 111 129 // like SX110 112 130 113 void my_kbd_read_keys() { 131 114 … … 137 120 _GetKbdState( kbd_new_state ); 138 121 _kbd_read_keys_r2( kbd_new_state); 139 140 // kbd_new_state[0] = physw_status[0]; //sx220 changed from physw_status[0]141 // kbd_new_state[2] = physw_status[2];142 // kbd_new_state[3] = physw_status[3]; //sx220 added143 122 144 123 … … 314 293 } 315 294 #endif 316 317 318 -
trunk/platform/a3300/lib.c
r1552 r1620 32 32 33 33 int get_flash_params_count(void){ 34 return 0x A0; //@FF1B94A8 in GetParameterData34 return 0xa0; // Found @0xff994830 a3300is 35 35 } 36 36 37 long vid_get_viewport_height() 38 { 39 return 240; 40 } 41 42 43 //Have to disable here and add to /sub for 100a 44 //cause 100d crashes when in shoot mode trying to access Alt menu. 45 //Re-Added in /SUB/100a 46 //--------------------------------------------------------------- 37 47 /*void vid_bitmap_refresh() { 38 48 … … 45 55 _ScreenUnlock(); 46 56 }*/ 47 48 extern void draw_filled_rect( int, int, int, int, int );49 50 void vid_bitmap_refresh()51 {52 draw_filled_rect(0, 0, CAM_BITMAP_WIDTH, CAM_BITMAP_HEIGHT, 0x00) ;53 }54 55 -
trunk/platform/a3300/main.c
r1554 r1620 28 28 } 29 29 30 // WARNING WARNING WARNING - following stuff is copy/paste garbage from another port INCLUDING THE COMMENTS - reyalp 31 #define NUM_FL 126 // 0 - 125, entries in firmware (3 words each entry, first is FL) 32 // Focus length table in firmware @FFF4A3DC - reyalp not really, this is a LIE! 30 31 #define NUM_FL 12 33 32 extern int focus_len_table[NUM_FL*3]; 34 35 // Focal length range is 5.0 - 70,0 mm, 28 - 392in 35-mm equivalent.36 // So, CF_EFL = 28/5.0*10000=56000 or 392/70*10000=5600033 //a3300is 34 // Focal length range is 5.0 - 25.0 mm, 28 - 140 in 35-mm equivalent. 35 // So, CF_EFL = 28/5.0*10000=56000 or 140/25*10000=56000 37 36 // divide by 10 to avoid overflow in get_effective_focal_length() 38 37 #define CF_EFL 5600 39 const int zoom_points = 126;38 const int zoom_points = NUM_FL; 40 39 41 //TODO 40 42 41 int get_effective_focal_length(int zp) { 43 return (CF_EFL*get_focal_length(zp))/1000 ;42 return (CF_EFL*get_focal_length(zp))/10000; 44 43 } 45 44 46 //TODO 45 47 46 int get_focal_length(int zp) { 48 47 … … 50 49 else if (zp >= NUM_FL) zp = NUM_FL-1; 51 50 return focus_len_table[zp*3]; 52 /*53 int i;54 51 55 if (zp<fl_tbl[0].zp)56 return fl_tbl[0].fl;57 else if (zp>fl_tbl[NUM_FL-1].zp)58 return fl_tbl[NUM_FL-1].fl;59 else60 for (i=1; i<NUM_FL; ++i) {61 if (zp==fl_tbl[i-1].zp)62 return fl_tbl[i-1].fl;63 else if (zp==fl_tbl[i].zp)64 return fl_tbl[i].fl;65 else if (zp<fl_tbl[i].zp)66 return fl_tbl[i-1].fl+(zp-fl_tbl[i-1].zp)*(fl_tbl[i].fl-fl_tbl[i-1].fl)/(fl_tbl[i].zp-fl_tbl[i-1].zp);67 }68 return fl_tbl[NUM_FL-1].fl;69 */70 }71 72 //TODO73 int get_zoom_x(int zp) {74 return get_focal_length(zp)*10/focus_len_table[0];75 //return get_focal_length(zp)*10/fl_tbl[0].fl;76 52 } 77 53 78 54 79 //TODO 55 int get_zoom_x(int zp) { 56 return get_focal_length(zp)*10/focus_len_table[0]; 57 58 } 59 60 61 80 62 long get_vbatt_min() 81 63 { 82 return 3 280; // min observed was 3.408, then it died64 return 3000; 83 65 } 84 66 85 //TODO 67 86 68 long get_vbatt_max() 87 69 { 88 return 4 057; // fresh from change (actual was 4.127)70 return 4150; 89 71 } -
trunk/platform/a3300/notes.txt
r1554 r1620 1 A3300 notes1 Canon A3300is 2 2 3 WARNING WARNING WARNING 3 Just to Note: I am not a programmer, I have never touched coding before this port, I wanted this port for my daughter so I gave it a shot and am pleased with the progress. 4 4 5 This is an *incomplete* alpha port, done by an person with limited programming experience. It has known issues, and likely many unknown issues.5 I have never used CHDK before, but from what I can tell, everything in the menus seem to work. 6 6 7 If you are an experienced programmer with this camera, you may want to start from scratch rather than trying to fix this port. 8 Most of the comments are probably copy/pasted from other ports, DO NOT TRUST THEM. 7 One thing I notice is with the aperture, when you override it, it does effect the exposure of the image and it shows the value in stats display, but only at F2.8 will it actually show F2.8 on the canon OSD. But it is working it seems and does change the exposure on every setting. Any override at wide zoom other then F2.8 will show F8.0 on Canons OSD. 9 8 10 If you are an end user and somehow obtained a build of this, you should proceed with caution and assume that things will be broken. 9 Shutter seems fine except when you go past 15", the cam can take 64sec expsosures when overridden so it is working fine, but canon only shows 15" 11 10 12 porting thread http://chdk.setepontos.com/index.php?topic=6972.0 11 ------------------------------------------------------------------------- 12 To enter CHDK <Alt> mode use the DISP+SET button. 13 13 14 TOTALLY INCOMPLETE LIST OF OF KNOWN ISSUES: 15 modemap in shooting.c is wrong (see stubs_entry.S) 16 zoom step / focus table etc stuff in main.c is wrong (copy/paste from some totally different camera) 17 lib.c get_flash_params_count likely wrong 18 platform_camera.h values are likely wrong 14 15 ----------------------------------------------------------------------- 16 Shortcut Keys 17 In Alt mode 18 : 19 Press Display to toggle Zoom focusing if Stats are turn on in OSD menu 20 Press + or - to change Factor 21 Use zoom lever to focus. 22 ------------------------------------------------------------ 23 For now colors to get Red logo are set for Shooting mode, Play mode will be orange. 24 Go into visual settings to adjust and menu colors the way you want. 25 26 Also I had to add a new Pallette==14 to /core/gui_draw.h to get 27 red splash screen in shoot mode. 28 ------------------------------------------------------------------------------------ 29 30 I also needed to add to /include/modelist.h to get Mode_Live and Mode_Discreet for my cam. 31 -------------------------------------------------------------------------------------- 32 Have not tested USB shutter control yet. 33 ------------------------------------------------------------------------------------------------------- -
trunk/platform/a3300/platform_camera.h
r1552 r1620 1 // Camera - A 2200 - platform_camera.h1 // Camera - A3300 - platform_camera.h 2 2 3 // This file contains the various settings values specific to the A 2200 camera.3 // This file contains the various settings values specific to the A3300 camera. 4 4 // This file is referenced via the 'include/camera.h' file and should not be loaded directly. 5 5 … … 28 28 #define CAM_DRYOS_2_3_R47 1 29 29 30 #define CAM_RAW_ROWPIX 4704 // Found @0x ff1565dc31 #define CAM_RAW_ROWS 3504 // Found @0xff1565e030 #define CAM_RAW_ROWPIX 4704 // Found @0xFFB213A0 a3300is 31 #define CAM_RAW_ROWS 3504 // Found @0xFFB21398 a3300is 32 32 33 33 #undef CAM_UNCACHED_BIT 34 #define CAM_UNCACHED_BIT 0x40000000 // Found @0xff83a6a8 34 #define CAM_UNCACHED_BIT 0x40000000 // Found @0xff83a6a8 a3300is 35 35 36 #define CAM_JPEG_WIDTH 4608 37 #define CAM_JPEG_HEIGHT 345636 #define CAM_JPEG_WIDTH 4608 // a3300is @FFB213A0 37 #define CAM_JPEG_HEIGHT 3456 // a3300is @FFB213A8 38 38 39 #define CAM_ACTIVE_AREA_X1 0 40 #define CAM_ACTIVE_AREA_Y1 0 41 #define CAM_ACTIVE_AREA_X2 4704 42 #define CAM_ACTIVE_AREA_Y2 3504 39 #define CAM_ACTIVE_AREA_X1 16 40 #define CAM_ACTIVE_AREA_Y1 26 41 #define CAM_ACTIVE_AREA_X2 4640 42 #define CAM_ACTIVE_AREA_Y2 3486 43 44 #define DNG_VERT_RLE_BADPIXELS 1 45 #define CAM_DNG_LENS_INFO { 50,10, 250,10, 28,10, 59,10 } // See comments in camera.h a3300is 43 46 44 // Almost sure values45 //46 47 #undef CAM_SENSOR_BITS_PER_PIXEL 47 48 #define CAM_SENSOR_BITS_PER_PIXEL 12 48 49 49 #define cam_CFAPattern 0x01000201 // Green Blue Red Green50 #define cam_CFAPattern 0x02010100 // Red Green Green Blue 50 51 51 #define CAM_COLORMATRIX1\52 #define CAM_COLORMATRIX1 \ 52 53 827547, 1000000, -290458, 1000000, -126086, 1000000, \ 53 -12829, 1000000, 530507, 1000000,50537, 1000000, \54 5181, 1000000,48183, 1000000, 245014, 100000054 -12829, 1000000, 530507, 1000000, 50537, 1000000, \ 55 5181, 1000000, 48183, 1000000, 245014, 1000000 55 56 56 57 #define cam_CalibrationIlluminant1 1 // Daylight … … 58 59 #undef CAM_USES_ASPECT_CORRECTION 59 60 #define CAM_USES_ASPECT_CORRECTION 1 //camera uses the modified graphics primitives to map screens an viewports to buffers more sized 61 60 62 #undef CAM_BITMAP_WIDTH 61 63 #define CAM_BITMAP_WIDTH 720 // Actual width of bitmap screen in bytes 62 64 63 #define CAM_SHOW_OSD_IN_SHOOT_MENU 164 65 #define CAM_EV_IN_VIDEO 166 67 65 #define CAM_QUALITY_OVERRIDE 1 68 66 69 #define CAM_AV_OVERRIDE_IRIS_FIX 170 71 67 #define CAM_ZEBRA_ASPECT_ADJUST 1 72 68 #define CAM_ZEBRA_NOBUF 1 73 69 74 70 #define PARAM_CAMERA_NAME 4 // parameter number for GetParameterData 75 71 76 72 #define CAM_HAS_ND_FILTER 1 77 73 78 #define CAM_EXT_TV_RANGE 179 80 74 #define CAM_VIDEO_QUALITY_ONLY 1 81 75 82 76 #define CAM_DETECT_SCREEN_ERASE 1 83 84 #define DNG_VERT_RLE_BADPIXELS 1 85 77 86 78 #define CAM_DATE_FOLDER_NAMING 1 87 79 88 80 #define CAM_STARTUP_CRASH_FILE_OPEN_FIX 1 89 90 #undef CAM_HAS_MANUAL_FOCUS91 92 #undef CAM_VIDEO_CONTROL93 81 94 82 #define CAM_DRIVE_MODE_FROM_TIMER_MODE 1 95 96 83 84 #define CAM_HAS_IRIS_DIAPHRAGM 1 85 86 #undef CAM_HAS_MANUAL_FOCUS 87 #undef CAM_VIDEO_CONTROL 88 #undef CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO 89 97 90 #undef CAM_BITMAP_PALETTE 98 91 #define CAM_BITMAP_PALETTE 14 99 92 100 #undef CAM_LOAD_CUSTOM_COLORS // 1 // Enable loading CHDK colors into the camera palette memory/hardware 101 #undef CHDK_COLOR_BASE // 0x54 // Start color index for CHDK colors loaded into camera palette. 102 93 #define CHDK_COLOR_BASE 0x1D // Start color index for CHDK colors loaded into camera palette. 103 94 #define CAM_USE_COLORED_ICONS 1 // Enable using the CHDK-DE colored icons. 104 105 // Not sure values106 // #undef CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO107 #define CAM_AF_SCAN_DURING_VIDEO_RECORD 1108 // Debug109 #define PROPCASE_SHOOTING_MODE 49 -
trunk/platform/a3300/shooting.c
r1554 r1620 1 #include "lolevel.h" 2 #include "platform.h" 3 #include "core.h" 4 #include "conf.h" 5 #include "keyboard.h" 6 #include "stdlib.h" 1 #define PARAM_FILE_COUNTER 0x3B // a3300is 2 #define PARAM_EXPOSURE_COUNTER 0x02 // a3300is 3 7 4 #include "platform.h" 8 5 9 #define PARAM_FILE_COUNTER 0x3B10 #define PARAM_EXPOSURE_COUNTER 0x0211 12 //No zoom 3.1 3.5 4.0 4.5 5.0 5.6 6.3 7.1 8.013 //maz zoom 5.9 7.1 8.014 15 6 const ApertureSize aperture_sizes_table[] = { 16 { 9, 322, "3.1" }, 17 { 10, 352, "3.5" }, 18 { 11, 384, "4.0" }, 19 { 12, 416, "4.5" }, 20 { 13, 448, "5.0" }, 21 { 14, 480, "5.6" }, 22 { 15, 512, "6.3" }, 23 { 16, 544, "7.1" }, 24 { 17, 576, "8.0" } 7 { 9, 293, "2.8" }, 8 { 10, 307, "3.2" }, 9 { 11, 344, "3.5" }, 10 { 12, 388, "4.0" }, 11 { 13, 413, "4.5" }, 12 { 14, 443, "5.0" }, 13 { 15, 476, "5.6" }, 14 { 16, 500, "5.9" }, 25 15 }; 26 16 … … 71 61 { 31, 992, "1/1250", 800 }, 72 62 { 32, 1024, "1/1600", 625 }, 73 { 33, 1056, "1/2000", 500 },74 { 34, 1088, "1/2500", 400 },75 { 35, 1120, "1/3200", 313 },76 63 }; 77 64 78 65 const ISOTable iso_table[] = { 79 66 { 0, 0, "Auto", -1}, 80 { 1, 100, "100", -1}, 81 { 2, 200, "200", -1}, 82 { 3, 400, "400", -1}, 83 { 4, 800, "800", -1}, 84 { 5, 1600, "1600", -1}, 85 { 6, 3200, "3200", -1}, 67 { 1, 80, "80", -1}, 68 { 2, 100, "100", -1}, 69 { 3, 200, "200", -1}, 70 { 4, 400, "400", -1}, 71 { 5, 800, "800", -1}, 72 { 6, 1600, "1600", -1}, 73 86 74 }; 87 75 88 // WARNING WARNING WARNING the following is copy/pasted from another camera and wrong 89 /* 90 http://www.usa.canon.com/cusa/support/consumer/digital_cameras/other_powershot/powershot_sx230_is#Specifications 91 Shooting Modes 92 M, Av, Tv, P, Auto, Easy, Movie Digest, Portrait, Landscape, Kids & Pets, SCN, Creative Filter, Movie 93 94 Movie: High Definition: 1280 x 720 (30 fps); 95 Standard Definition: 640 x 480 (30 fps), 320 x 240 (30 fps) 96 */ 97 static const CapturemodeMap modemap[] = { 98 { MODE_AUTO, 32768 }, 99 { MODE_P, 32772 }, 100 { MODE_TV, 32771 }, 101 { MODE_AV, 32770 }, 102 { MODE_M, 32769 }, 103 { MODE_EASY, 33314 }, 104 { MODE_PORTRAIT, 32783 }, 105 { MODE_LANDSCAPE, 32782 }, 106 { MODE_VIDEO_SPEED, 2626 }, //MODE_VIDEO_SUPER_SLOW_MOTION 107 { MODE_VIDEO_STD, 2621 }, 108 { MODE_KIDS_PETS, 32786 }, 109 { MODE_SCN_UNDERWATER, 16409 }, 110 { MODE_SCN_LOWLIGHT, 16417 }, 111 { MODE_SCN_BEACH, 16407 }, 112 { MODE_SCN_FOLIAGE, 16405 }, 113 { MODE_SCN_SNOW, 16406 }, 114 { MODE_SCN_FIREWORK, 16408 }, 115 { MODE_SCN_COLOR_ACCENT, 8733 }, 116 { MODE_SCN_COLOR_SWAP, 8734 }, 117 { MODE_STITCH, 16908 }, //MODE_SCN_STITCH_ASSIST 118 { MODE_SCN_SMART_SHUTTER, 16937 }, 119 { MODE_SCN_POSTER_EFFECT, 8743 }, 120 { MODE_SCN_FISHEYE, 8747 }, 121 { MODE_SCN_MINIATURE, 8748 }, 122 { MODE_SCN_SUPER_VIVID, 8742 }, 123 { MODE_SCN_NIGHT_SCENE, 16941 }, //MODE_SCN_HANDHELD_NIGHTSCENE 124 { MODE_VIDEO_IFRAME_MOVIE, 2628 }, 125 { MODE_VIDEO_MOVIE_DIGEST, 33333 }, 126 { MODE_SCN_HIGHSPEED_BURST, 16904 }, 127 { MODE_SCN_BEST_IMAGE, 16905 }, 128 { MODE_SCN_TOY_CAMERA, 8751 }, 129 { MODE_SCN_MONOCHROME, 8754 }, 130 { MODE_SCN_WINK_SELF_TIMER, 16938 }, 131 { MODE_SCN_FACE_SELF_TIMER, 16936 }, 132 }; 76 static struct { 77 int hackmode; 78 int canonmode; 79 } modemap[] = { 80 { MODE_P, 32772 }, 81 { MODE_LIVE, 33332 }, 82 { MODE_AUTO, 32768 }, 83 { MODE_EASY, 33314 }, 84 { MODE_SCN_PORTRAIT, 16399 }, 85 { MODE_SCN_LANDSCAPE, 16398 }, 86 { MODE_SCN_KIDS_PETS, 16402 }, 87 { MODE_SCN_SMART_SHUTTER, 16937 }, 88 { MODE_SCN_LOWLIGHT, 16417 }, 89 { MODE_SCN_BEACH, 16407 }, 90 { MODE_SCN_FOLIAGE, 16405 }, 91 { MODE_SCN_SNOW, 16406 }, 92 { MODE_SCN_FIREWORK, 16408 }, 93 { MODE_SCN_LONG_SHUTTER, 16390 }, 94 { MODE_SCN_FISHEYE, 8747 }, // not found in stub_entry.S - efect mode - fish eye a3300is 95 { MODE_SCN_MINIATURE, 8748 }, // not found in stub_entry.S - efect mode - miniature a3300is 96 { MODE_SCN_TOY_CAMERA, 8751 }, // not found in stub_entry.S - efect mode - toy camera a3300is 97 { MODE_SCN_MONOCHROME, 8754 }, // not found in stub_entry.S - efect mode - monochrome a3300is 98 { MODE_SCN_SUPER_VIVID, 8742 }, // not found in stub_entry.S - efect mode - super vivid a3300is 99 { MODE_SCN_POSTER_EFFECT, 8743 }, // not found in stub_entry.S - efect mode - poster effect a3300is 100 { MODE_SCN_FACE_SELF_TIMER, 16936 }, 101 { MODE_SCN_WINK_SELF_TIMER, 16938 }, 102 { MODE_DISCREET, 32817 }, 103 { MODE_VIDEO_STD, 2621 }, 104 { MODE_VIDEO_MINIATURE, 2627 }, 105 106 } ; 133 107 134 108 #include "../generic/shooting.c" 135 109 136 // Override ISO settings (need to do this before exposure calc for ISO, as well as after) 137 138 void __attribute__((naked,noinline)) shooting_expo_iso_override(void){ 139 140 asm volatile("STMFD SP!, {R0-R12,LR}\n"); 141 142 if ((state_kbd_script_run) && (photo_param_put_off.sv96)) 143 { 144 shooting_set_sv96(photo_param_put_off.sv96, SET_NOW); 145 // photo_param_put_off.sv96 is not reset here, it will be reset in next call to shooting_expo_param_override 146 } 147 else if ((conf.iso_override_value) && (conf.iso_override_koef) && !(conf.override_disable==1)) 148 shooting_set_iso_real(shooting_get_iso_override_value(), SET_NOW); 149 else if (conf.autoiso_enable && shooting_get_flash_mode()/*NOT FOR FLASH AUTO MODE*/ && !(conf.override_disable==1 && conf.override_disable_all)) 150 shooting_set_autoiso(shooting_get_iso_mode()); 151 152 asm volatile("LDMFD SP!, {R0-R12,PC}\n"); 153 } 154 110 // Override ISO settings (need to do this before exposure calc for ISO as well as after) 111 void __attribute__((naked,noinline)) shooting_expo_iso_override(void) { 112 113 asm volatile("STMFD SP!, {R0-R12,LR}\n"); 114 115 if ((state_kbd_script_run) && (photo_param_put_off.sv96)) { 116 shooting_set_sv96(photo_param_put_off.sv96, SET_NOW); 117 // photo_param_put_off.sv96 is not reset here, it will be reset in next call to shooting_expo_param_override 118 } 119 else if ((conf.iso_override_value) && (conf.iso_override_koef) && !(conf.override_disable==1)) 120 shooting_set_iso_real(shooting_get_iso_override_value(), SET_NOW); 121 else if (conf.autoiso_enable && shooting_get_flash_mode()/*NOT FOR FLASH AUTO MODE*/ && !(conf.override_disable==1 && conf.override_disable_all)) 122 shooting_set_autoiso(shooting_get_iso_mode()); 123 124 asm volatile("LDMFD SP!, {R0-R12,PC}\n"); 125 } 126 155 127 156 128 long get_file_next_counter() { 129 157 130 return get_file_counter(); 158 131 } 159 132 160 133 long get_target_file_num() { 134 161 135 long n; 162 136 163 164 137 n = get_file_next_counter(); 165 166 n = (n>>4)&0x3FFF; 167 138 n = (n>>4)&0x3FFF; 168 139 return n; 169 140 } 170 141 142 #if defined(CAM_DATE_FOLDER_NAMING) 143 void get_target_dir_name(char *out) { 144 145 extern void _GetImageFolder(char*,int,int,int); 146 _GetImageFolder(out,get_file_next_counter(),0x400,time(NULL)); 147 } 148 #else 171 149 long get_target_dir_num() { 150 172 151 long n; 173 152 174 153 n = get_file_next_counter(); 175 154 n = (n>>18)&0x3FF; 176 155 return n; 177 156 } 178 179 180 void get_target_dir_name(char *out) 181 { 182 extern void _GetImageFolder(char*,int,int,int); 183 _GetImageFolder(out,get_file_next_counter(),0x400,time(NULL)); 184 } 157 #endif 185 158 186 159 int circle_of_confusion = 5; 187 -
trunk/platform/a3300/sub/100a/boot.c
r1552 r1620 186 186 " LDR R0, [R0]\n" //added 187 187 #endif 188 " LDR R2, =0x2F1F80 \n" 188 //" LDR R0, =0x16A528 \n" 189 " LDR R2, =0x2F1F80 \n" 189 190 " STR R0, [SP, #8] \n" 190 191 " SUB R0, R2, R0 \n" … … 262 263 ); 263 264 } 265 264 266 265 267 //** taskcreate_Startup_my @ 0xFF81FC58 … … 313 315 " MOV R3, #0 \n" 314 316 " STR R3, [SP] \n" 315 //" LDR R3, =0xFF81FBF4 \n" /replaced with task_startup_my316 317 " LDR R3, =task_Startup_my\n" //added 317 318 " MOV R2, #0 \n" … … 321 322 " MOV R0, #0 \n" 322 323 " LDMFD SP!, {R3-R9,PC} \n" 323 "loc_FF835BCC:\n" 324 " LDR R0, =0xFFFE0100\n" 325 " LDRB R0, [R0]\n" 326 " CMP R0, #0\n" 327 " MOVEQ R0, #1\n" 328 " MOVNE R0, #0\n" 329 " BX LR\n" 330 ); 331 } 324 ); 325 } 326 332 327 333 328 //** task_Startup_my @ 0xFF81FBF4 … … 361 356 " BL sub_FF832F10 \n" 362 357 " LDMFD SP!, {R4,LR} \n" 363 " B sub_FF8166A8\n" 364 ); 365 } 358 " B sub_FF8166A8 \n" 359 ); 360 } 361 366 362 367 363 //** taskcreatePhySw_my @ 0xFF834190 … … 373 369 " LDR R0, [R4, #4] \n" 374 370 " CMP R0, #0 \n" 375 " BNE sub_FF8341C4 \n"371 " BNE loc_FF8341C4 \n" 376 372 " MOV R3, #0 \n" 377 373 " STR R3, [SP] \n" 378 374 //" LDR R3, =0xFF83415C \n" //replaced with mykbd_tasks 379 375 " LDR R3, =mykbd_task\n" //added 380 " MOV R2, #0x800 \n" 381 " B sub_FF8341A8\n" 376 " MOV R2, #0x2000 \n" //changed from 800 377 " MOV R1, #0x17 \n" 378 " LDR R0, =0xFF8343E4 \n" 379 " BL sub_FF83A410 \n" 380 " STR R0, [R4, #4] \n" 381 "loc_FF8341C4:\n" 382 " BL sub_FF88B34C \n" 383 " BL sub_FF835B1C \n" 384 " CMP R0, #0 \n" 385 " BNE loc_FF8341E0 \n" 386 " LDR R1, =0x32D40 \n" 387 " MOV R0, #0 \n" 388 " BL sub_FF88B2C0 \n" 389 "loc_FF8341E0:\n" 390 " LDMFD SP!, {R3-R5,PC} \n" 382 391 ); 383 392 } … … 406 415 " BL sub_FF88D814 \n" 407 416 " BL core_spytask_can_start\n" //added 408 " B sub_FF895864\n" 409 ); 410 } 417 " CMP R4, #0 \n" 418 " LDMNEFD SP!, {R4-R6,PC} \n" 419 " MOV R0, R5 \n" 420 " LDMFD SP!, {R4-R6,LR} \n" 421 " MOV R1, #0 \n" 422 " B sub_FF89167C \n" 423 ); 424 } -
trunk/platform/a3300/sub/100a/capt_seq.c
r1552 r1620 80 80 " LDR R8, [R0, #0xC] \n" 81 81 " MOV R0, R8 \n" 82 " BL sub_FF96EF54_my \n" 83 " BL capt_seq_hook_raw_here \n" // added82 " BL sub_FF96EF54_my \n" //patch 83 " BL capt_seq_hook_raw_here \n" // added 84 84 " MOV R4, R0 \n" 85 85 " MOV R2, R8 \n" … … 220 220 " STR R6, [R4, #8] \n" 221 221 " B loc_FF87AB50 \n" 222 " STMFD SP!, {R3-R5,LR} \n"223 " LDR R2, =0x3A1D0 \n"224 " MOV R0, #0 \n"225 222 ); 226 223 } … … 295 292 "loc_FF96F030:\n" 296 293 " LDMFD SP!, {R3-R7,PC} \n" 297 " STMFD SP!, {R4-R6,LR} \n"298 " BL sub_FF87A3BC \n"299 294 ); 300 295 } … … 589 584 " B loc_FF8BE984 \n" 590 585 "loc_FF8BE864:\n" 591 " BL sub_FF8BB264_my \n" 586 " BL sub_FF8BB264_my \n" //patch 592 587 " MOV R8, #0 \n" 593 588 " B loc_FF8BE984 \n" … … 725 720 " MOV R3, #1 \n" 726 721 " CMP R0, #0xB \n" 727 " BNE sub_FF8BEA74 \n"722 " BNE loc_FF8BEA74 \n" 728 723 " MOV R2, #0 \n" 729 724 " STRD R2, [SP] \n" … … 731 726 " MOV R1, R3 \n" 732 727 " MOV R0, #0 \n" 728 " BL sub_FF8BA308 \n" 729 " MOV R3, #1 \n" 730 " MOV R2, #0 \n" 731 " STRD R2, [SP] \n" 732 " MOV R2, R3 \n" 733 " MOV R1, R3 \n" 734 " MOV R0, #0 \n" 735 " B loc_FF8BEAA4 \n" 736 "loc_FF8BEA74:\n" 737 " MOV R2, #1 \n" 738 " STRD R2, [SP] \n" 739 " MOV R3, R2 \n" 740 " MOV R1, R2 \n" 741 " MOV R0, R2 \n" 742 " BL sub_FF8BA308 \n" 743 " MOV R3, #1 \n" 744 " MOV R2, R3 \n" 745 " MOV R1, R3 \n" 746 " MOV R0, R3 \n" 747 " STR R3, [SP] \n" 748 " STR R3, [SP, #4] \n" 749 "loc_FF8BEAA4:\n" 750 " BL sub_FF8BA474 \n" 751 "loc_FF8BEAA8:\n" 752 " LDR R0, [SP, #0x20] \n" 753 " BL sub_FF8BF888 \n" 733 754 ); 734 755 } … … 792 813 " STRH R0, [R4, #0xC] \n" 793 814 " LDRSH R0, [R4, #6] \n" 794 " BL sub_FF8AC12C_my \n" 815 " BL sub_FF8AC12C_my \n" //patch 795 816 " LDRSH R0, [R4, #8] \n" 796 817 " MOV R1, #1 \n" -
trunk/platform/a3300/sub/100a/kbd.c
r1552 r1620 1 1 #include "lolevel.h" 2 2 #include "platform.h" 3 4 //5 long __attribute__((naked,noinline)) wrap_kbd_p1_f() {6 7 asm volatile(8 "STMFD SP!, {R1-R5,LR}\n"9 "MOV R5, #0\n"10 "BL my_kbd_read_keys\n"11 "B _kbd_p1_f_cont\n"12 );13 14 return 0;15 } -
trunk/platform/a3300/sub/100a/lib.c
r1552 r1620 3 3 char *hook_raw_image_addr() 4 4 { 5 if (*((int*)0x3A7D) != 0) //FF887A64 6 { 7 return (char*) 0x48000000; //FF969340 8 } 9 else 10 { 11 return (char*) 0x4207DB20; 12 } 5 return (char*) 0x4207DB20; //Found at FFB217F0 a3300is 6 13 7 } 14 8 15 9 char *hook_alt_raw_image_addr() 16 10 { 17 if (*((int*)0x3A7D) == 0) //FF887A64 18 return (char*) 0x48000000; //FF969340 19 else 20 return (char*) 0x4207DB20; 11 return (char*) 0x4207DB20; //Found at FFB217F0 21 12 } 22 13 23 14 long hook_raw_size() 24 15 { 25 return 0x01794300; 16 return 0x01794300; // Found @0xffb21768 a3300is 26 17 } 27 18 28 19 char *camera_jpeg_count_str() 29 20 { 30 return (void*)0xb40d4; 21 return (void*)0xb40d4; // Found @0xff9fd850 a3300is 31 22 } 32 23 … … 34 25 void *vid_get_bitmap_fb() 35 26 { 36 return (void*)0x403f1000; 27 return (void*)0x403f1000; // Found @0xff85b880 a3300is 37 28 } 38 29 … … 40 31 void *vid_get_viewport_fb_d() 41 32 { 42 return (void*)(*(int*)(0x29A0+0x58)); 33 return (void*)(*(int*)(0x29A0+0x58)); // FF8708C8 + FF870DE0 a3300is 43 34 } 44 35 … … 47 38 void *vid_get_viewport_live_fb() 48 39 { 49 if ((mode_get()&MODE_MASK) == MODE_REC) 50 return (void*)((void*)(*(int*)(0x2258))-vid_get_viewport_xoffset()*3); 51 52 return (void*)(void*)(*(int*)(0x2258)); 40 return (void*)(*(int*)(0x20D0+0x138)); //FF850CE8 + FF850D38 a3300is 53 41 } 54 42 … … 56 44 void *vid_get_viewport_fb() 57 45 { 58 if ((mode_get()&MODE_MASK) == MODE_REC) 59 return (void*)(0x40546b80-vid_get_viewport_xoffset()*3); 60 61 return (void*)0x40546b80; 46 return (void*)0x40546b80; // Found @0xffb1e2ac a3300is 62 47 } 63 48 49 void vid_bitmap_refresh() { 50 51 extern int full_screen_refresh; 52 extern void _ScreenUnlock(); 53 extern void _ScreenLock(); 64 54 65 long vid_get_viewport_height() 66 { 67 return 240;55 full_screen_refresh |= 3; 56 _ScreenLock(); 57 _ScreenUnlock(); 68 58 } -
trunk/platform/a3300/sub/100a/movie_rec.c
r1552 r1620 15 15 " STMFD SP!, {R2-R10,LR} \n" 16 16 " LDR R6, =0xFF969628 \n" 17 " LDR R7, =sub_FF969B20_my \n" 17 " LDR R7, =sub_FF969B20_my \n" //patch 18 18 " LDR R4, =0x66F0 \n" 19 19 " LDR R9, =0x67F \n" … … 79 79 " B loc_FF96A23C \n" 80 80 "loc_FF96A1EC:\n" 81 " BL sub_FF969780_my \n" 81 " BL sub_FF969780_my \n" //patch 82 82 " B loc_FF96A23C \n" 83 83 "loc_FF96A1F4:\n" … … 646 646 "LDR R0, =0x6774\n" 647 647 "BL set_quality\n" 648 //PATCH END E648 //PATCH END 649 649 "loc_FF96A06C:\n" 650 650 " CMP R7, #1 \n" -
trunk/platform/a3300/sub/100a/stubs_auto.S
r1552 r1620 32 32 STUB(FF833B70) 33 33 STUB(FF834190) 34 STUB(FF8341A8)35 STUB(FF8341C4)36 34 STUB(FF8342C8) 37 35 STUB(FF8342CC) 38 36 STUB(FF8342D0) 39 37 STUB(FF83543C) 38 STUB(FF835B1C) 40 39 STUB(FF835BCC) 41 40 STUB(FF837AA8) … … 46 45 STUB(FF83A1A0) 47 46 STUB(FF83A3B8) 47 STUB(FF83A410) 48 48 STUB(FF83A550) 49 49 STUB(FF83A610) … … 68 68 STUB(FF87876C) 69 69 STUB(FF878D60) 70 STUB(FF87A3BC)71 70 STUB(FF87AFB4) 72 71 STUB(FF87B300) … … 95 94 STUB(FF884DB8) 96 95 STUB(FF887950) 96 STUB(FF88B2C0) 97 STUB(FF88B34C) 97 98 STUB(FF88CFAC) 98 99 STUB(FF88D3E4) … … 101 102 STUB(FF89167C) 102 103 STUB(FF892114) 103 STUB(FF895864)104 104 STUB(FF8ABE30) 105 105 STUB(FF8AC0C0) … … 116 116 STUB(FF8BA210) 117 117 STUB(FF8BA268) 118 STUB(FF8BA308) 119 STUB(FF8BA474) 118 120 STUB(FF8BA528) 119 121 STUB(FF8BA7CC) … … 136 138 STUB(FF8BE33C) 137 139 STUB(FF8BE39C) 138 STUB(FF8BEA74)139 140 STUB(FF8BEAA8) 140 141 STUB(FF8BF888) -
trunk/platform/a3300/sub/100a/stubs_entry.S
r1552 r1620 15 15 // Stubs below should be checked. Stub not matched 100%, or difference found to current 'stubs_entry_2.S' 16 16 // Name Address Rule % Comp to stubs_entry_2.S 17 //NSTUB(kbd_pwr_off ,0xff86031c) // 2 60% *** != 0x ff810b2418 // ERROR: kbd_pwr_on is not found. //--- --- *** != 0x ff810b2417 //NSTUB(kbd_pwr_off ,0xff86031c) // 2 60% *** != 0x00000000 18 // ERROR: kbd_pwr_on is not found. //--- --- *** != 0x00000000 19 19 20 20 // Check of modemap from 'platform/CAMERA/shooting.c': 21 21 // Firmware modemap table found @ff8959c4 -> ff892270 -> ff9937f8 -> ffac835c -> ffbeea40 22 // Mode 16390 in firmware but not in current modemap 23 // Mode 33332 in firmware but not in current modemap 24 // Mode 16399 in firmware but not in current modemap 25 // Mode 16398 in firmware but not in current modemap 26 // Mode 16402 in firmware but not in current modemap 27 // Mode 32817 in firmware but not in current modemap 28 // Mode 2627 in firmware but not in current modemap 22 // Current modemap entry not found in firmware - MODE_SCN_POSTER_EFFECT 8743 23 // Current modemap entry not found in firmware - MODE_SCN_SUPER_VIVID 8742 29 24 // Current modemap entry not found in firmware - MODE_SCN_MONOCHROME 8754 30 25 // Current modemap entry not found in firmware - MODE_SCN_TOY_CAMERA 8751 31 // Current modemap entry not found in firmware - MODE_SCN_BEST_IMAGE 1690532 // Current modemap entry not found in firmware - MODE_SCN_HIGHSPEED_BURST 1690433 // Current modemap entry not found in firmware - MODE_VIDEO_MOVIE_DIGEST 3333334 // Current modemap entry not found in firmware - MODE_VIDEO_IFRAME_MOVIE 262835 // Current modemap entry not found in firmware - MODE_SCN_NIGHT_SCENE 1694136 // Current modemap entry not found in firmware - MODE_SCN_SUPER_VIVID 874237 26 // Current modemap entry not found in firmware - MODE_SCN_MINIATURE 8748 38 27 // Current modemap entry not found in firmware - MODE_SCN_FISHEYE 8747 39 // Current modemap entry not found in firmware - MODE_SCN_POSTER_EFFECT 874340 // Current modemap entry not found in firmware - MODE_STITCH 1690841 // Current modemap entry not found in firmware - MODE_SCN_COLOR_SWAP 873442 // Current modemap entry not found in firmware - MODE_SCN_COLOR_ACCENT 873343 // Current modemap entry not found in firmware - MODE_SCN_UNDERWATER 1640944 // Current modemap entry not found in firmware - MODE_KIDS_PETS 3278645 // Current modemap entry not found in firmware - MODE_VIDEO_SPEED 262646 // Current modemap entry not found in firmware - MODE_LANDSCAPE 3278247 // Current modemap entry not found in firmware - MODE_PORTRAIT 3278348 // Current modemap entry not found in firmware - MODE_M 3276949 // Current modemap entry not found in firmware - MODE_AV 3277050 // Current modemap entry not found in firmware - MODE_TV 3277151 28 52 29 // Values below can be overridden in 'stubs_min.S': … … 62 39 DEF(zoom_status ,0x0000cf5c) // Found @0xffacba30 63 40 DEF(some_flag_for_af_scan ,0x00006b0c) // Found @0xff96d344 41 // focus_len_table contains zoom focus lengths for use in 'get_focal_length' (main.c). 42 // each entry contains 3 int value(s), the first is the zoom focus length. 43 // there are 12 entries in the table - set NUM_FL to 12 44 DEF(focus_len_table ,0xfffe2f88) // Found @0xfffe2f88 64 45 DEF(zoom_busy ,0x0000665c) // Found @0xff964eb8 65 46 DEF(focus_busy ,0x000064d8) // Found @0xff960130 … … 115 96 NSTUB(CreateTask ,0xff81e9b0) //101 116 97 NSTUB(DebugAssert ,0xff81ec88) //111 98 NSTUB(DeleteDirectory_Fut ,0xff8366c0) // 1 117 99 NSTUB(DeleteFile_Fut ,0xff8365dc) //112 118 100 NSTUB(DoAFLock ,0xff838480) //102 … … 195 177 NSTUB(UnlockAF ,0xff8384b8) //102 196 178 NSTUB(UnlockMainPower ,0xff891db8) //103 197 //NSTUB(UnsetZoomForMovie ,0xff99dd04) //104 == 0xff99dd04179 NSTUB(UnsetZoomForMovie ,0xff99dd04) //104 198 180 NSTUB(VbattGet ,0xff832e20) //101 199 181 NSTUB(Write ,0xff836d18) //101 -
trunk/platform/a3300/sub/100a/stubs_entry_2.S
r1552 r1620 2 2 #define NULL_SUB 0xFF810B24 3 3 4 // Not found 5 NHSTUB(kbd_pwr_off, NULL_SUB) 6 NHSTUB(kbd_pwr_on, NULL_SUB) 7 4 8 // Override stubs_entry.S 5 6 NHSTUB(kbd_pwr_off, 0xFF810B24) 7 NHSTUB(kbd_pwr_on, 0xFF810B24) 8 NHSTUB(SetZoomActuatorSpeedPercent, 0xFF810B24) 9 10 // These don't exist/aren't found in dryos 11 NHSTUB(UnsetZoomForMovie, 0xff99dd04) // a3300is 12 NHSTUB(MakeAFScan, 0xFF190E5C) // a3300is 13 NHSTUB(SetFileAttributes, 0xFF83C338) // a3300is 9 NHSTUB(SetZoomActuatorSpeedPercent, 0xFFAA1D88) // a3300is 10 NHSTUB(MakeAFScan, 0xFF8DC610) // a3300is -
trunk/platform/a3300/sub/100a/stubs_min.S
r1552 r1620 1 1 #include "stubs_asm.h" 2 3 //DEF(active_palette_buffer ,0x9174) // FFA06C98 a3300is4 //DEF(palette_buffer ,0xB4754) // FFA06DB0 a3300is5 //DEF(palette_control ,0x916C) // FFA06DAC a3300is6 7 DEF(enabled_refresh_physical_screen ,0x3B04) //(0x3B00+0x4) @FF8A53B4 a3300is8 9 DEF(focus_len_table ,0xFFFE2F88) // search for 70000 (longest focus length in micrometers) & 5000 (shortest length) //a3300is10 -
trunk/platform/a3300/sub/100d/lib.c
r1617 r1620 3 3 char *hook_raw_image_addr() 4 4 { 5 return (char*) 0x4207 5144; //Found at FFB217F0 and had to manually adjust till image lined upa3300is5 return (char*) 0x4207DB20; //Found at FFB217F0 a3300is 6 6 7 7 } … … 9 9 char *hook_alt_raw_image_addr() 10 10 { 11 return (char*) 0x4207 5144; //Found at FFB217F0 and had to manually adjust till image lined up a3300is11 return (char*) 0x4207DB20; //Found at FFB217F0 12 12 } 13 13
Note: See TracChangeset
for help on using the changeset viewer.