IXUS75/SD750 1.01a | 1.00b | 1.02a - Update 09Nov2008 - Passing the Torch - page 5 - General Discussion and Assistance - CHDK Forum supplierdeeply

IXUS75/SD750 1.01a | 1.00b | 1.02a - Update 09Nov2008 - Passing the Torch

  • 381 Replies
Re: IXUS75/SD750 1.01a - Port (Maybe) Finished
« Reply #40 on: 12 / April / 2008, 11:16:45 »
Alright, I finally stepped through all the files in TPC's post.
Verdict: Camera reboots, nothing happens. I even changed pakwif.c to edit the version number
to make it to no avail.

So, I am posting my SD750 1.02a dump, my SD750 ida database, and my zipped source
tree in the hopes that somebody else can work on this for a while.

Good luck!

I'll be crossposting in Firmware Dumps so everyone can have a crack.

IDA Pro .idb file: sd750is1.02a.idb - 38.77MB
SD750 1.02a Dump: sd750-1.02a.dum - 8.00MB
RAR Archive - platform/IXUS75-SD750: ixus75_sd750.rar - 3.05MB

Re: IXUS75/SD750 1.01a - Port (Maybe) Finished
« Reply #41 on: 12 / April / 2008, 14:52:33 »
So, I am posting my SD750 1.02a dump

I also dumped out my 1.02a firmware using udumper (before I saw that you had done it), and it is identical to yours:


Offline neo-cortex

  • *
  • 1
  • SD750 1.00B
Re: IXUS75/SD750 1.01a - Port (Maybe) Finished
« Reply #42 on: 12 / April / 2008, 21:46:57 »
Hey guys, I have a SD750 with 1.00B. Is there anything I can do to help to get the firmware going?
(i have very minimal programming knowledge)


Offline TPC

  • *
  • 46
  • SD750 1.01a
Re: IXUS75/SD750 1.01a Port (Maybe) Finished
« Reply #43 on: 13 / April / 2008, 01:38:16 »
Looks like development for this camera is well underway...

Here's a few more hints for those that are having problems (somacore :p):

-If your camera isn't booting at all (black screen of death), concentrate on /platform/.../boot.c and /platform/.../capt_seq.c. Also, in /platform/.../makefile.inc MEMISOSTART and MEMISOSIZE may vary from firmware to firmware. Search for the values in my dump and then search for similar nearby values in your own dumps. I know that if anything is wrong with any of these files the camera will most certainly not start.

-If you are absolutely sure that those three files are correct, start combing your stubs_entry files. Yes, it takes a long time. However some functions are critical (like, say, AllocateMemory) and can cause all sorts of odd behavior if they're set to the wrong address. I didn't have to play with the stubs_entry files until after I got CHDK to boot, though.

-Leave movie_rec.c for last. It is not needed to boot the camera.

If I have some time later today I'll poke through somacore's dump.

Re: IXUS75/SD750 1.01a - Port (Maybe) Finished
« Reply #44 on: 19 / April / 2008, 16:10:10 »
Here's the latest firmware:

zSHARE - chdk_sd750101a_05apr08_2341.zip

Big thanks to you and everyone else who helped get this posted. I just downloaded and successfully installed and was able to shoot RAW. I'll continue to test and report back if there are problems.

Thanks again!
PowerShot SD 750 1.01b

Re: IXUS75/SD750 1.01a - Port (Maybe) Finished
« Reply #45 on: 20 / April / 2008, 17:14:24 »
Somacore, here are some changes I made to your 102a code. Camera still doesn't boot.

[in lib.c]
-  #define LED_PR 0xc02200C4
+ #define LED_PR 0xc02200C0

[in sub/102a/boot.c]
-  "BL      sub_FF930394\n" //qInit
+ "BL      sub_FF930364\n" //qInit

[in sub/102a/lib.c]
// Found at 0xFFA6499C
long hook_raw_size()
-     return 0x8CAE10;
+    return 0x8CAE00;

[in sub/102a/stubs_min.S]
-  DEF(playrec_mode,0xCFD8) // BL      unknown_libname_797 found in "taskcreate_SsStartupTask"
+ DEF(playrec_mode,0xCFC4) // BL      unknown_libname_797 found in "taskcreate_SsStartupTask"

[This is my modified sub/102a/stubs_entry_2.S]
#include "stubs_asm.h"

NHSTUB(AllocateMemory, 0xFF818678)
NHSTUB(AllocateUncacheableMemory, 0xFF81E5B8)
NHSTUB(Close,   0xFFAA59F0)      // aClose
NHSTUB(CreatePhysicalVram, 0xff81c590)
NHSTUB(CreateTask, 0xFFB202AC)
NHSTUB(CreateTaskStrict, 0xFFB2134C)
NHSTUB(DisableDispatch, 0xffb200d0)
NHSTUB(DisplayImagePhysicalScreen,   0xFFA2F4C8) // Near "ImgDDev.c"
NHSTUB(EnableDispatch, 0xffb2015c)
NHSTUB(ExecuteEventProcedure, 0xff814a6c)
NHSTUB(ExitTask, 0xffb2066c)
NHSTUB(Fclose_Fut, 0xffaa8724) //0xffaa1138
NHSTUB(Fopen_Fut, 0xff91f408)
NHSTUB(Fread_Fut, 0xffaa8794)
NHSTUB(FreeMemory,   0xFF818664)
NHSTUB(FreeUncacheableMemory, 0xff81e5ec)
NHSTUB(Fseek_Fut, 0xffaa8af4)
NHSTUB(Fwrite_Fut, 0xffaa88d4)
NHSTUB(GetCurrentAvValue, 0xffa5bc58)   // aGetcurrentavva
NHSTUB(GetCurrentTargetDistance, 0xffa5e570)   // aGetcurrenttarg
NHSTUB(GetFocusLensSubjectDistance, 0xFFAE09A4)   // Wrong, corrected
NHSTUB(GetFocusLensSubjectDistanceFromLens, 0xFFAE09C8)   // Wrong, corrected
NHSTUB(GetParameterData, 0xffb45910)   // Not completely verified
NHSTUB(GetPropertyCase, 0xff81bcac)   // Verified as working
NHSTUB(GetSystemTime, 0xff813700)
NHSTUB(GetZoomLensCurrentPoint, 0xFFAF18DC)
NHSTUB(GetZoomLensCurrentPosition, 0xFFAF18F0)
NHSTUB(IsStrobeChargeCompleted, 0xff9ade0c) // EF.IsChargeFull
NHSTUB(LockMainPower, 0xFFB428A4)
NHSTUB(MakeDirectory, 0xffaa5d20)
NHSTUB(Mount_FileSystem,   0xFFAA4D14)
NHSTUB(MoveFocusLensToDistance, 0xFFAE01B8)   // MoveFocusLensWithDistance (might be wrong), corrected
NHSTUB(MoveZoomLensWithPoint, 0xffaf17b4)
NHSTUB(Open, 0xffaa59c8)   // Not completely verified
NHSTUB(PhySw_testgpio, 0xffa3b2bc) //not present
NHSTUB(ProtectFile, 0xffaa061c)
NHSTUB(PutInNdFilter, 0xffa5bd14)   // Not completely verified
NHSTUB(PutOutNdFilter, 0xffa5bd5c)   // Not completely verified
NHSTUB(Read,      0xFFAA5A84)   // aRead
NHSTUB(RefreshPhysicalScreen, 0xff915ffc)
NHSTUB(Remove,      0xFFAA5A10)   // Not completely verified
NHSTUB(SetAutoShutdownTime, 0xFFB427A8)
NHSTUB(SetParameterData, 0xffb45830)      // Not completely verified
NHSTUB(SetPropertyCase, 0xFF81BB74)   // Wrong, corrected
NHSTUB(SleepTask, 0xFFB201C0)      // Not completely verified
NHSTUB(TakeSemaphore, 0xFFB1FC94)      // Not completely verified
NHSTUB(UnlockMainPower, 0xFFB4293C)
NHSTUB(Unmount_FileSystem, 0xffaa4dbc)      // Not completely verified
NHSTUB(UnsetZoomForMovie, 0xff8369cc)      // Not completely verified
NHSTUB(UpdateMBROnFlash, 0xffaa4f10)      // Not completely verified
NHSTUB(VbattGet, 0xffa37158)
NHSTUB(Write,      0xFFAA5A90)

NHSTUB(_log, 0xff91d198)
NHSTUB(_log10, 0xff919f40)
NHSTUB(_pow, 0xff91a0c0)
NHSTUB(_sqrt, 0xff91bf80)
NHSTUB(chdir, 0xff927c24)
NHSTUB(close, 0xff927564)
NHSTUB(closedir, 0xFFB5F9F8)
NHSTUB(free,      0xFF92A5B0)
NHSTUB(ints_disable, 0xFF918870)
NHSTUB(ints_enable, 0xFF91885C)
NHSTUB(ioctl, 0xff9276a4)
NHSTUB(iosDevAdd, 0xff928784)
NHSTUB(iosDrvInstall, 0xff928a48)
NHSTUB(iosDevFind, 0xff928710)
NHSTUB(isalpha, 0xff91eb3c)
NHSTUB(isdigit, 0xff91eb6c)
NHSTUB(islower, 0xff91eb9c)
NHSTUB(isspace, 0xff91ebe4)
NHSTUB(isupper, 0xff91ebfc)
NHSTUB(kbd_p1_f, 0xffa3964c)
NHSTUB(kbd_p1_f_cont, 0xFFA3964C)
NHSTUB(kbd_p2_f, 0xffa39a7c)
NHSTUB(kbd_pwr_off, 0xFFA3B230)
NHSTUB(kbd_pwr_on, 0xFFA3B1F0)
NHSTUB(localtime, 0xff9233bc)
NHSTUB(lseek, 0xff9276a8)
NHSTUB(malloc, 0xff92a5a4)
NHSTUB(memcmp, 0xff92279c)
NHSTUB(memcpy, 0xff9227d8)
NHSTUB(memset, 0xff922850)
NHSTUB(mkdir, 0xffaa5c58)
NHSTUB(open, 0xff927ba8)
NHSTUB(opendir, 0xffb5fa6c)
NHSTUB(qsort, 0xff921ffc)
NHSTUB(rand, 0xff922020)
NHSTUB(read, 0xff9275c4)
NHSTUB(readdir, 0xFFB5F9F8)
NHSTUB(rename, 0xff927bb0)
NHSTUB(rewinddir, 0xFFB5FAAC)
NHSTUB(srand, 0xff922044)
NHSTUB(stat, 0xFFB5FAE0)
NHSTUB(strcat, 0xff922870)
NHSTUB(strchr, 0xff92289c)
NHSTUB(strcmp, 0xff9228c0)
NHSTUB(strcpy, 0xff922a54)
NHSTUB(strlen, 0xff922bb8)
NHSTUB(strncmp, 0xff922c1c)
NHSTUB(strncpy, 0xff922c60)
NHSTUB(strpbrk, 0xff922ca8)
NHSTUB(strrchr, 0xff922ce4)
NHSTUB(strtol, 0xff922438)
NHSTUB(taskCreateHookAdd, 0xff92d204)
NHSTUB(taskDeleteHookAdd, 0xff92d140)
NHSTUB(taskIdListGet, 0xff9346ec)
NHSTUB(taskLock, 0xff934da8)
NHSTUB(taskName, 0xff9345e4)
NHSTUB(taskResume, 0xff9349c8)
NHSTUB(taskSuspend, 0xff9347f4)
NHSTUB(taskUnlock, 0xff934e50)
NHSTUB(time, 0xff924108)
NHSTUB(utime, 0xFFB5FB80)
NHSTUB(vsprintf, 0xff92630c)
NHSTUB(fprintf, 0xff91f49c)
NHSTUB(fputs, 0xff91f5bc)
NHSTUB(puts, 0xFF9208B4)   // Wrong, corrected

NHSTUB(SetZoomActuatorSpeedPercent,   0xFF9B7BA8) // null
NHSTUB(GetDrive_ClusterSize,   0xFFAA51DC)   // Wrong, corrected
NHSTUB(GetDrive_TotalClusters,   0xFFAA5218)   // Wrong, corrected
NHSTUB(GetDrive_FreeClusters,   0xFFAA5254)   // Wrong, corrected
NHSTUB(kbd_read_keys_r2,   0xFFA3ACC0)
« Last Edit: 20 / April / 2008, 19:35:24 by liyunjiu »


Offline solarflare

  • *
  • 15
  • IXUS75 1.02a
    • My storm chasing gallery
Re: IXUS75/SD750 1.02A
« Reply #46 on: 21 / April / 2008, 12:38:48 »
Got a new european IXUS 75 today. The version information differs slightly from the Wiki page as following:

Code: [Select]
 P-ID:314E PAL V

 Firmware Ver GM1.02A
 No error
 Oct 15 2007 10:18:17

So the differences are that I've the capital A in the version screen and there's no E18 anywhere. Do you think a new dump would be neccessary for this one or is it just a matter of cosmetics?

I'm using the original memory card in here. No reason to upgrade before a CHDK port exists. :haha

Re: IXUS75/SD750 1.01a - Port (Maybe) Finished
« Reply #47 on: 21 / April / 2008, 15:44:45 »
« Last Edit: 22 / April / 2008, 18:32:22 by Barney Fife »
[acseven/admin commented out: please refrain from more direct offensive language to any user. FW complaints to me] I felt it imperative to withdraw my TOTAL participation. Nobody has my permission, nor the right, to reinstate MY posts. Make-do with my quoted text in others' replies only. Bye


Offline TPC

  • *
  • 46
  • SD750 1.01a
Re: IXUS75/SD750 1.01a - Port (Maybe) Finished
« Reply #48 on: 22 / April / 2008, 21:08:02 »
Hello everyone,

I haven't had time to work on this lately because life has gotten pretty hectic (I changed jobs) - but it's quieted down now, so I can help with this again.

Right now I'm working on the 100b and the 102a firmwares. I'll be posting links to the compiled CHDK for these firmwares sometime in the next few days (time permitting). I don't think they will be tough to do since I have the working 101a as reference.

If you've got another version of the firmware please post it and I will work on that too, but only for the SD750. I don't own any other camera.


Offline hoodsmom

  • *
  • 3
  • SD750 101B
Re: IXUS75/SD750 1.01a (Finished) | 1.00b (Porting) | 1.02a (Porting)
« Reply #49 on: 27 / April / 2008, 22:41:42 »
"If you've got another version of the firmware please post it..."

TPC, Reply 20 in this thread says that version 101b is available.  Thanks for working on this!


Related Topics