Well, for now it's basically adding the proper NHSTUBs and the address to the cameralog. That still leaves display brightness and LED disco as potential problems, since I didn't make that code 'safe' and platform-independent yet. I'll see if I can find enough stubs in the
A570 firmware, I wrote an UltraEdit script to convert a jumptable into a bunch of NHSTUBs so I'll just have to copypaste 😀
I don't know if there are any features you need specifically, but it's probable that some aren't (readily) available on that camera. I'm pretty sure about the log, though.
Anyway, how to do it... Finding the stubs is just something you should tell a monkey (or a script) to do, else it's a lot of brainless copy-pasting, occasionally swearing at IDA for replacing the (in this case very useful) sub_ADDRESS with a name like unknown_libname_28 or even the name of the function so you have to doubleclick it, copy the address and go back. It's slightly harder if some functions aren't there, you'll really have to analyze the code to figure out how to accomplish the task the function should perform and if it's even possible. That's something even I didn't really start on yet.
To find the cameralog address, search for PutsCameraLog and refer to the 'documentation' in stubs_min.S.
LCD brightness addresses are found by reading some LCD brightness controlling functions, though I'm planning on using those actual functions instead, making things much simpler. Currently I do need the addresses to see which display is active, though, but I may have another way of determining that (which is lost in some of my other in-code documentation from a couple of weeks ago).