now the splash shows up, but no color, maybe wrong palette.
That's to be expected. Once you have keyboard, you can load the palette viewer to inspect the palette. Talking about palette: please comment out
#define CAM_LOAD_CUSTOM_COLORS
in platform_camera.h (you probably don't have the appropriate addresses of the fw variables involved, CHDK will try to overwrite some memory it should not). I'd recommend finding the right addresses for the stubs_min.S variables, as some of those are written by CHDK at runtime. "Finding" means: you locate the variable in the reference firmware disassembly and based on that you find the ixus145 equivalent (look for surrounding code patterns, called functions, callers, assert strings and line numbers, regular strings). There are lots of named functions in the funcs_by_*.csv files you can use to make the disassembly more comfortable.
Pushing the trigger, some OSD is showed in shot mode, but garbled.
Can you take a screenshot?
Next (after fixing stubs_min) could be the keyboard:
find this block in core/gui_osd.c and uncomment it:
/*
// debug keymap, KEYS_MASKx, SD_READONLY_FLAG, USB_MASK
Since you still won't have usable keyboard, replace
if (conf.debug_misc_vals_show) {
with
if (1) {
some lines above. Since PSM doesn't need keyboard, you have to find all buttons. You can start with what you find in stubs_entry.S, but it will likely not be all correct. Bits belonging to most buttons (except KEY_POWER) go to KEYS_MASK's in kbd.c .
If something is not clear, please ask.
Which CHDK revision are you using? I'd recommend the current "stable" 1.3 branch.
@polymath69
You can try some of these instead (you'll need an untouched JPEG from your camera):
ACIDhttp://chdk.wikia.com/wiki/CameraVersionexiftool (look for "Firmware Revision" in its output)
You can also
dump the camera's firmware and look for the "GM1." string inside.