I suspect it has been a long time since anyone has looked at the grid code. While working with an ixus300_sd4000 I learned that grids do not display correctly on widescreen displays. As mentioned
here, with digic6 cameras it gets even worse.
While it should be easy to automatically rescale the current grid files "on the fly" so that they can adust to different display widths & heights on non-digic6 cameras, I expect that a patch to do so would not be accepted as it would not solve the digic6 problem?
So in the meantime, I simply edited the existing grid files to work better on wide displays like the ixus300 and it's brothers. Zip file attached - copy the .gid files to your SD cards's
A/CHDK/GRIDS folder (you might want to delete the existing grid files first). This is not a great solution as you will have to reinstall these files each time you update CHDK (depending on whether you copy the files using the same filenames as the existing .gid files or not).
There are other mysteries.
First of all, the
@title entry in each grid file seems to be ignored. There is code to transfer the current grid's
@title text to the CHDK
Grid menu but it gets overwritten by the grid's filename afterwards. I've fixed that and have a patch file but I ran into another problem. Crashing (ROMLOG.LOG attached)
I had problems with grids when I was doing the
A1200 port. There were issues with camera crashes when using grids. I never did really solve that but I can now reproduce the issue on all of my other cameras reliably.
To do so, go to the grid menu but
do not enable grids. Then try loading some grid files - loading larger ones seem to cause the crash more quickly than smaller ones. And if you have grids enable, the crash does not happen.
Obviously, this looks like some kind of initialization problem, or malloc/free issue? But grids are built as modules, so maybe there is an error in how the code was modularized? I spent a couple hours playing but did not find anything obvious.
EDIT : fixed file extension for grid files ( .grd not .gid )