Changeset 1067 for trunk


Ignore:
Timestamp:
02/20/11 22:57:13 (2 years ago)
Author:
reyalP
Message:

ixus120_sd940 improvements from waterwingz in http://chdk.setepontos.com/index.php?topic=650.msg61916#msg61916

  • correct vid_get_viewport_live_fb() (for fast md)
  • implemented RefreshPhysicalScreen?() correctly and removed the hacked version
Location:
trunk/platform/ixus120_sd940
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/platform/ixus120_sd940/lib.c

    r1057 r1067  
    88extern int enabled_refresh_physical_screen; 
    99 
    10 extern unsigned int screen_width, screen_height, screen_size; 
    11 extern void draw_filled_rect( int, int, int, int, int ); 
    12  
    1310void vid_bitmap_refresh() 
    1411{ 
    15         // this erase should not be needed but it is 
    16         draw_filled_rect(0, 0, screen_width, screen_height, 0x00) ; 
    17 /* 
    18         _ScreenLock(); 
    1912        enabled_refresh_physical_screen=1; 
     13         
     14        *(int*)0x8BB0=3;        // apparently not firmware specific (checked in 1.02c,1.03b,1.03c) 
     15                                                // set in three function called by RefreshPhysicalScreen 
     16 
    2017        _RefreshPhysicalScreen(1); 
    21 */ 
     18 
    2219} 
    2320 
  • trunk/platform/ixus120_sd940/notes.txt

    r1058 r1067  
    1 Alt button for this camera is DISP, hold down to access original function. 
     1Alt button for this camera is DISP, hold longer for original functions (brightness and/or review mode). 
    22Camera does not have an adjustable aperture, only ND filter. 
    3 Fast MD is not currently implemented. 
     3Fast MD implemented as of 2011/02/20. 
    44Extra long exposure (>64 seconds) is implemented. 
  • trunk/platform/ixus120_sd940/sub/102c/lib.c

    r1056 r1067  
    1414 
    1515void *vid_get_viewport_live_fb() 
    16 { 
    17 // TODO - implement 
    18         return (void*) 0; 
    19  
    20  
    21     void **fb=(void **)0x1043; 
    22  
    23     unsigned char buff = *((unsigned char*)0x497C); // __LiveImage.c__  ok 
     16{                                                                                                       // Matched IXUS100-SD780 100c code at 0xFF8B02F4 with IXUS120-SD940 at address 0xFF8D9014 
     17                                                                                                        // Matched IXUS200-SD980 101c code at 0xFF8E0788 with IXUS120-SD940 at address 0xFF8D9014  
     18        // return (void*) 0;                                                    // __LiveImage.c__  ok 
     19    void **fb=(void **)0x4B34;                                          // SD940 102C @ 0xFF8D9280   
     20    unsigned char buff = *((unsigned char*)0x497C); // SD940 103C @ 0xFF8D9018 
    2421    if (buff == 0) { 
    2522        buff = 2; 
  • trunk/platform/ixus120_sd940/sub/102c/stubs_entry_2.S

    r1061 r1067  
    7474NHSTUB(UnsetZoomForMovie,0xFF9712e4) 
    7575NHSTUB(ScreenLock,0xFF9D1C7C) 
    76 NHSTUB(RefreshPhysicalScreen, 0xFF9D1CBC) 
     76NHSTUB(RefreshPhysicalScreen, 0xFF9D1EA4)   // per SD940-1.03c SD90 101a & SD980 1.01c 
    7777NHSTUB(ScreenUnlock, 0xFF9D1CBC) 
    7878NHSTUB(PutInNdFilter, 0xFFA67C08) 
  • trunk/platform/ixus120_sd940/sub/102c/stubs_min.S

    r1056 r1067  
    1414DEF(levent_table, 0xFFB41F38) 
    1515DEF(playrec_mode, 0x2A7C)                                       // @FF877AE4   0x2A78 + 0x04 
    16 DEF(enabled_refresh_physical_screen, 0x8BB0) // @FF9CF9C0 
     16DEF(enabled_refresh_physical_screen, 0x8C20+0x20)   // SD940 102C routine @ FF9D1EA8 per IXUS200-SD980 @ FF9F8298 RefreshPhysicalScreen 
    1717 
    1818// will need to fix these if we care about dng support 
  • trunk/platform/ixus120_sd940/sub/103c/lib.c

    r1056 r1067  
    5353}                
    5454         
    55 void *vid_get_viewport_live_fb()         
    56 {                
    57         return (void*)0; 
    58         /* ------- 
    59         void **fb=(void **)0x1043;      // SD940 103C @ FF8D8014 
    60         unsigned char buff = *((unsigned char*)0x497C);          
    61         if (buff == 0) buff = 2; else buff-- ;   
    62         return fb[buff]; 
    63         -----  */ 
    64 }                
     55void *vid_get_viewport_live_fb() 
     56{                                                                                                       // Matched IXUS100-SD780 100c code at 0xFF8B02F4 with IXUS120-SD940 at address 0xFF8D9014 
     57                                                                                                        // Matched IXUS200-SD980 101c code at 0xFF8E0788 with IXUS120-SD940 at address 0xFF8D9014  
     58        // return (void*) 0;                                                    // __LiveImage.c__  ok 
     59    void **fb=(void **)0x4B34;                                          // SD940 102C @ 0xFF8D9280   
     60    unsigned char buff = *((unsigned char*)0x497C); // SD940 103C @ 0xFF8D9018 
     61    if (buff == 0) { 
     62        buff = 2; 
     63    } 
     64    else { 
     65        buff--; 
     66    } 
     67    return fb[buff]; 
     68} 
    6569                 
    6670void *vid_get_viewport_fb()              
  • trunk/platform/ixus120_sd940/sub/103c/stubs_entry_2.S

    r1061 r1067  
    2121NHSTUB(readfastdir , 0xFFA4D2C0)                                // SD940 103c matched with SD90 101a 
    2222 
    23 NHSTUB(RefreshPhysicalScreen , 0xFF9D206C)              // SD940 103c matched with SD90 101a 
     23NHSTUB(RefreshPhysicalScreen , 0xFF9D206C)              // SD940 103c matched with SD90 101a & SD980 1.01c 
    2424NHSTUB(ScreenLock, 0xFF9D1E44)                                  // SD940 103c close to SD90 101a (extra code in SD940 sub) 
    2525NHSTUB(ScreenUnlock,0xFF9D1E84)                                 // SD940 103c matched with SD90 101a 
  • trunk/platform/ixus120_sd940/sub/103c/stubs_min.S

    r1056 r1067  
    1414DEF(levent_table,0xFFB42100)                                            // SD940 103c routine @ FF966F20 
    1515DEF(playrec_mode, 0x2A78+0x4)                                           // SD940 103c routine @ FF877E9 
    16 DEF(enabled_refresh_physical_screen, 0x8BB0)            // SD940 103C routine @ FF9CFB88         
     16DEF(enabled_refresh_physical_screen, 0x8C20+0x20)   // SD940 103C routine @ FF9D2070 per IXUS200-SD980 @ FF9F8298 RefreshPhysicalScreen 
    1717 
    1818 
    1919 
    20  
Note: See TracChangeset for help on using the changeset viewer.