supplierdeeply

SX200is Porting

  • 1105 Replies
  • 184819 Views
Re: SX200is Porting
« Reply #30 on: 20 / August / 2009, 04:43:42 »
Advertisements
OldGit and other contributors: thank-you for your hard work!
I recently purchased a SX200 IS and am thrilled at the development this CHDK port.
I have no knowledge of C, but I would love to help out and contribute in any way possible.  After Reading earlier posts, it sounds like there is little I can contribute without C knowledge, but please let me know if there is anything I can do in later stages! 

Re: SX200is Porting
« Reply #31 on: 21 / August / 2009, 21:48:00 »
OK, I grabbed the loader and step 1 source code from this thread and was able to build everything after mucking with DNG support defines, loaded the resulting DISKBOOT.BIN onto my card and booted up. Nothing. Oh well first time trying CHDK, I wasn't expecting it to work out of the box. Seems to be getting stuck pretty early. Pulling the battery and restarting revived things without trouble. Old Git, what should I expect so far? What revision of the svn trunk are you working off of so I don't have to make mods to the source to get it to compile correctly? Anything else I should be looking for or trying? Thanks for all the effort with the initial code.

OK after further investigation I see have version 1.00D. So I need to get this version out of the camera I guess, have the dumpers been fixed or do we still need to blink it out?

Cannon PowerShot  SX200 IS
O-ID:31C0 NT D

Firmware Ver GM1.00D
No Error
May 13 2009 08:58:21

(down)

Cannon PowerShot  SX200 IS
O-ID:31C0 NT D

Adj Ver.004.013

(down)

Cannon PowerShot  SX200 IS
O-ID:31C0 NT D

Adj Ver.004.013
IS Firm Ver. 2.09
IS Param Ver. 2.07

(down)

Cannon PowerShot  SX200 IS
O-ID:31C0 NT D

Driver Info 0x00000000
« Last Edit: 21 / August / 2009, 22:04:48 by xevious »
Canon sx200is 100d

*

Offline reyalp

  • ******
  • 11392
Re: SX200is Porting
« Reply #32 on: 21 / August / 2009, 21:56:58 »
xevious: I wouldn't expect diskboot to work on this camera yet. See http://chdk.setepontos.com/index.php/topic,4095.0.html

For the moment, FI2 format and manual loading with "firm update" is required. See http://chdk.setepontos.com/index.php/topic,2995.0.html for information.
Don't forget what the H stands for.

*

Offline OldGit

  • ****
  • 303
Re: SX200is Porting
« Reply #33 on: 22 / August / 2009, 04:26:27 »
OK I have a problem.
Got back to this port (day job gets in the way).
I'm stuck with the vid addresses in lib.c, what I have so far gives a scrambled splash and setting the OSD Debug option crashes.
Can anyone see where I',m going wrong?
Any help would be greatly appreciated as I've checked through this dozens of times now.

Code: [Select]
#include "platform.h"

/*
*********************
SX200IS
**********************
*/
/*
char *hook_raw_image_addr()
{
//found at FFAC8D10
//ROM:FFAC8D10                 LDR     R6, =0x424B41C0
//...
//ROM:FFAC8D60                 MOV     R1, R6
//ROM:FFAC8D64                 ADR     R0, aCrawBuffP  ; "CRAW BUFF       %p"

return (char*)(0x424B41C0);
 
// 2bd0 + c found at FF864C70
      //return (char*) (*(int*)(0x2BD0+0xC) ? 0x11A34C40 : 0x10805040);

}

long hook_raw_size()
{
//found at FFAC8D6C
//ROM:FFAC8D6C                 LDR     R1, =0x11CA240
//ROM:FFAC8D70                 ADR     R0, aCrawBuffSizeP ; "CRAW BUFF SIZE  %p"
//ROM:FFAC8D74                 BL      sub_FF9037E8

return 0x11CA240;
}
*/

char *hook_raw_image_addr()
{
return (char*)(0x0);
}

long hook_raw_size()
{
return 0x0;
}



void *vid_get_viewport_live_fb()
{
    void **fb=(void **)0xFF14;                               // 0xFF14 or 0x2150 ????
    unsigned char buff = *((unsigned char*)0x1FD8);          // found at FF838090
    if (buff == 0) buff = 2;  else buff--;   
    return fb[buff];
}


void *vid_get_bitmap_fb()
{
return (void*)0x403F1000;                              // found at FF842AC4
}

void *vid_get_viewport_fb()
{
return (void*)0x415F9E20;                              // found at FF858F80
}

void *vid_get_viewport_fb_d()
{
return (void*)(*(int*)(0x2950+0x50));                  // found at FF858EB8 + FF859398
}

long vid_get_bitmap_screen_width()
{
    return 360;
}

long vid_get_bitmap_screen_height()
{
    return 240;
}

long vid_get_viewport_height()
{
    return 240;
}


char *camera_jpeg_count_str()
{
 return (void*)0x5408C;                                      // found at FF9C1F28
}

long vid_get_bitmap_buffer_width() { return 360; }

long vid_get_bitmap_buffer_height() { return 240; }

Thanks to all.
OldGit
SX200 IS-100C


*

Offline OldGit

  • ****
  • 303
Re: SX200is Porting
« Reply #34 on: 22 / August / 2009, 04:46:47 »
Darkness and xevious,
Hope you succeed with the version D dump.
A number of people seem to be getting this firmware on newer cams now.
If you get the dump I can give you the sources I have so far to give you a "head start",
it should be just a matter of comparing and adjusting code.
Send me a Private Message when you are ready.

Also I forgot before but for those interested in the Flash "problem" these calls exist in the firmware
EXPORT eventproc_export_UIFS_OpenPopupStrobe
EXPORT eventproc_export_UIFS_ClosePopupStrobe
So it looks like something could be done.
SX200 IS-100C

*

Offline Darkness

  • **
  • 72
  • SX200IS 100D
Re: SX200is Porting
« Reply #35 on: 22 / August / 2009, 06:18:39 »
ok, stupid electronics shops are on holidays, I still need some components to build the circuit. maybe later this week or next week I can make an attempt. First I have to reread some stuff to know how to dump it ...
Although, I am planning on using a max233 I still have lying around, it has built in caps.

Any of you hangs out on IRC now and then?
SX200IS 100D

*

Offline asm1989

  • *****
  • 527
  • SX720, SX260, SX210 & SX200
Re: SX200is Porting
« Reply #36 on: 22 / August / 2009, 06:28:04 »
First thanks OldGit and everyone for the work done,
no experience with chk, user of isx200 and good knowledge of asm and C,
so will try to help if i can.

regarfing your code oldgit, maybe its not related but i dont see the function

vid_get_viewport_width



*

Offline OldGit

  • ****
  • 303
Re: SX200is Porting
« Reply #37 on: 22 / August / 2009, 07:09:00 »
Hi,
Darkness, just to add to your reading, the attached may help you.
It's the loader directory contents (I used the ixus980_sd990-100e as a base) that I used for the dump of 100C.
Don't forget you need to encode the PS.Fi2 file.

asm1989,
the width function is missing as per SX10 lib.c, I did try adding it but it no difference so removed again.
Your knowledge of asm and C I sure will be useful, welcome aboard.

OldGit
SX200 IS-100C


*

Offline Darkness

  • **
  • 72
  • SX200IS 100D
Re: SX200is Porting
« Reply #38 on: 22 / August / 2009, 07:39:02 »
Hi,
Darkness, just to add to your reading, the attached may help you.
It's the loader directory contents (I used the ixus980_sd990-100e as a base) that I used for the dump of 100C.
Don't forget you need to encode the PS.Fi2 file.

Is this the blinker code?
SX200IS 100D

*

Offline OldGit

  • ****
  • 303
Re: SX200is Porting
« Reply #39 on: 22 / August / 2009, 07:43:25 »
Quote
Is this the blinker code?
Yes.
SX200 IS-100C

 

Related Topics