By the way, if you want the checksum program
please publish it.
I think the best way is to attach it to forum
I'm not sure why have you selected FF8100A0 (I have not analyzed FW)
I suggest you to jump to ff810000 or ffff0000
I suspect you have already using your own loader instead of patching original firmware file.
could you publish this project also so we could help you?
The checksum program is a tacky proggy i made on a pinch. I attach it to this message- by the way i think it only works well with v1.1.1 firmware, the checksum it generates for version 1.1.0 is very close to the correct one on the 1.1.0 file but not the same. That doesn't matter anyway you can just calculate the difference and adjust.
About the address, the base is ff810000, at the entry point there are a few instructions (the same ones for the loader -entry point 800084- and the firmware -entry point FF810054-), in the firmware those few instructions then jump to 0xFF8100A0, which is the starting function that calls usrInit. The true RegisterEventProcedure is at FFB06658, the flirt signature for a series cams is misidentifying many functions. I'm using version 1.1.1 of the firmware if you want to download it and disassemble it.
ff810000 corresponds to file offset 142ef0. Data segment is at 4931e0 in the file, relocated to address 0x1900. These offsets are INCLUDING the non-encrypted 32-byte header. The base for the loader code is easier, 0x800000 corresponds to the beggining of the file, data is relocated in that case from 923AE0 to 0x1900.
About loading something, I have nothing yet, the first thing I tried was to make the loader jump to the firmware so it would load the firmware, which is much simpler than loading chdk or creating an additional task or somthing, but it didn't work so I'm still wondering why. If calling the firmware as-is won't work, more complicated things won't work either! any ideas why it's not working? what i did is just making the loader jump to start the firmware instead of jumping to start the loader. --well, I can modify the firmware section and load it, but any error and my camera turns into a brick, so i'm playing it safe and going for the loader chdk-style