i know the limits are stated in the respective manuals, but i find them at least funny in 2012.
Yeah, like the magical 4GB limit for movies.
the idea is start making the camera show up correctly in the PC (no "communication error" on the camera) and see what happens next (if it's still usable, if it shows some weird error, etc.).
the idea would be: isolating the code that makes the camera fail and replace it with a simple hack - or - override the jpg counter value (?) that makes the camera fail - or - ?
so far i've identified a few functions that check things when the usb cable is connected and i see they are somehow linked with spitting errors - unfortunately i'm going really slow since my disasm skills are not so great
Try to work on a low memory model and use RAM dumps (like: one dump where no comm. error shows (999 files or so), and another where USB connection becomes problematic, then compare them
).
The object list will be stored in a chunk of data (in an exmem area, I think, EXMEM_FILESTORE may be related or not).
You can try to trace back "communication error", but this might be troublesome, if it's a localized string. I would suspect PTP related tasks, the "camera doesn't show up" may be a side effect of a failure in one of those.
What's wrong with my previous idea
?
Another possibility:
try to see whether the failure shows up in the camera log somehow.