SD940 (IXUS120) porting thread

  • 542 Replies
  • 61622 Views
Re: SD940 rev 103c porting thread (IXUS120)
« Reply #50 on: 12 / December / 2010, 20:19:22 »
Advertisements
   movie record:
      optical zoom works   

Whoo Hoo !!   Optical zoom in movie mode works on my version too !!   After two month picking away at this,  its the first actual photography thing that CHDK now does on my SD940.  (I get battery voltage displaying too - although the icon is not animating).

Wow - this feels good.   :haha

*

Offline waldo

  • ***
  • 238
Re: SD940 rev 103c porting thread (IXUS120)
« Reply #51 on: 12 / December / 2010, 20:26:43 »
Did you find a better workaround for vid_bitmap_refresh() than what I did ?

I posted at http://chdk.setepontos.com/index.php?topic=5857.0 and a few other place but never came up with anything that actually worked properly.

On the S95 I came up with a workaround like yours:
http://chdk.setepontos.com/index.php?topic=5641.msg55757#msg55757
I eventually figured out a better location for the screen lock/unlock routines on the S95.  I'll look into this on the '940.

Re: SD940 rev 103c porting thread (IXUS120)
« Reply #52 on: 12 / December / 2010, 20:42:17 »
On the S95 I came up with a workaround like yours:
I eventually figured out a better location for the screen lock/unlock routines on the S95.  I'll look into this on the '940.

Funny how it works out that we ended up with the same hack.  Here's a further post that might help a bit ?


Code: [Select]
extern void _LockAndRefresh(); // wrapper function for screen lock
extern void _UnlockAndRefresh(); // wrapper function for screen unlock


Okay - maybe I just don't understand the terminology here so I'll ask a dumb question.  What do you mean by wrapper function ?  I can find ScreenLock() and ScreenUnlock() by matching the S90 port.  The code even seems to make some sense - incrementing and decrementing some sort of lock counter each time the respective routine is called. When you get a minute,  would you mind doing a cut&paste of code for the wrapper function so I can see what you mean?  ScreenLock & Screenunlock seem to get called from a lot of place ( over 450 each ).

*

Offline waldo

  • ***
  • 238
Re: SD940 rev 103c porting thread (IXUS120)
« Reply #53 on: 12 / December / 2010, 20:52:56 »
Here's what I have on  my SD940 1.02C port:

Binaries (1.02C):
http://www.zshare.net/download/8383614653354d3f/

Version 1.03C here:
http://chdk.setepontos.com/index.php?topic=5855.msg58000#msg58000

Source:
http://www.zshare.net/download/83836185dbd6d38e/

Keep in mind that this is an early version with very little testing.  Please see
http://chdk.setepontos.com/index.php?topic=5855.msg58019#msg58019
for what is known to be working / not working, but I'd still be interested in hearing about what other people discover works or doesn't.


Re: SD940 rev 103c porting thread (IXUS120)
« Reply #54 on: 12 / December / 2010, 23:12:45 »
Bern R managed to get his compile time down to 5.5 sec using gmake fir on GCC 3.4.6:

whim :

I kind of want to cry.  Having sat through countless sessions of 10 minutes builds over the last 2 months,  I rolled in everything you've posted and this is what I found after rebuilding following one change to file cap_seq.c , from the end of the log file :

run took 22.33 seconds

22 seconds !!!!   I'll never get those other hours back.

Re: SD940 rev 103c porting thread (IXUS120)
« Reply #55 on: 13 / December / 2010, 19:52:30 »
Source:
http://www.zshare.net/download/83836185dbd6d38e/
I'm really liking your source.  Makes me realize I should have started looking at the S90 port from the start rather than the beta S980. 

One question about boot.c ?   Does this actually work ?
Code: [Select]
// @FF8586DC
if ((*(int*) 0xC0220128) & 1) // look at play switch
*(int*)(0x22FC) = 0x400000; // start in play mode
else
*(int*)(0x22FC) = 0x200000; // start in rec mode

 I tried cut&paste into my boot.c code at the same place as in your code and my camera still starts up in "play mode" regardless of which power switch I press.

*

Offline waldo

  • ***
  • 238
Re: SD940 rev 103c porting thread (IXUS120)
« Reply #56 on: 13 / December / 2010, 20:01:08 »
One question about boot.c ?   Does this actually work ?
Code: [Select]
// @FF8586DC
if ((*(int*) 0xC0220128) & 1) // look at play switch
*(int*)(0x22FC) = 0x400000; // start in play mode
else
*(int*)(0x22FC) = 0x200000; // start in rec mode

Yes, it does if you press and hold the Power button until the lens extends.

*

Offline waldo

  • ***
  • 238
Re: SD940 rev 103c porting thread (IXUS120)
« Reply #57 on: 13 / December / 2010, 20:11:40 »
I'm implementing the short/long Display button pressing to select either ALT or Display.  The problem is that Canon has already placed a special meaning on a long press on Display.  A long press on Display changes the LCD brightness instead of doing the Display function.

We could reverse the logic so that ALT=long press.  This seems less intuitive and would not allow the LCD brightness to be changed.

Or, a short press on Menu for ALT might work OK.


Re: SD940 rev 103c porting thread (IXUS120)
« Reply #58 on: 13 / December / 2010, 20:45:51 »
Yes, it does if you press and hold the Power button until the lens extends.

Hmmm .. all I changed on the 103c code was adding those 5 lines.  Now if I hold the shoot on/off button down ( the one on the top of the camera ) instead of a short press, the camera starts ( my added AF LED blink happens ) but never gets to turning on the display or anything beyond that.  Some other change I missed maybe ?

*

Offline waldo

  • ***
  • 238
Re: SD940 rev 103c porting thread (IXUS120)
« Reply #59 on: 13 / December / 2010, 22:13:00 »
Hmmm .. all I changed on the 103c code was adding those 5 lines.  Now if I hold the shoot on/off button down ( the one on the top of the camera ) instead of a short press, the camera starts ( my added AF LED blink happens ) but never gets to turning on the display or anything beyond that.  Some other change I missed maybe ?

In your version of boot.c there is a line with the comment "removed for correct power-on on 'on/off' button."  You should comment out the code on this line.

 

Related Topics