I'm having problems getting the screen to redraw properly on the S95. When I call vid_bitmap_refresh(), the screen draws but does not erase properly. It is like the screen is locked and prevented from further drawing even when not in ALT mode.
vid_bitmap_refresh() calls ScreenLock and ScreenUnlock/RefreshPhysicalScreen. The firmware for these functions looks different when compared to firmware of other cameras I have looked at, so I may have the addresses wrong for these functions. My best guesses are:
NHSTUB(ScreenLock, 0xFF8B7E50)
or
NHSTUB(ScreenLock, 0xFF8B81E8)
and
NHSTUB(ScreenUnlock, 0xFF8B6C8C)
NHSTUB(RefreshPhysicalScreen, 0xFF8B6C8C)
or
NHSTUB(ScreenUnlock, 0xFF8B81C4)
NHSTUB(RefreshPhysicalScreen, 0xFF8B81C4)
I've tried all combinations of these with similar results each time.
I can make the screen erase properly by replacing vid_bitmap_refresh() with:
draw_filled_rect(0, 0, vid_get_bitmap_screen_width()-1, vid_get_bitmap_screen_height()-1, COLOR_TRANSPARENT);
This erases OK, but does not always draw correctly.
Can someone check me on these function addresses?