Graphic glitches with qpe/qtopia video driver

Hi,

I’m using the libsdl-qpe package (1.2.7-r4) from the familiar 0.8.2
release on my iPaq 3850 running familiar 0.8.2 (with opie 1.2.0).
I compiled scummvm with a cross compiler and got strange gfx output
(opie works just fine):
http://inferno-entertainment.myzeug.de/scummvm/scummvm-ipaq-1.png
After that I wrote a little test ‘tool’ to check if it is an scummvm
specific bug, but got this as a result:
http://inferno-entertainment.myzeug.de/libsdl-qpe-bug1.png
here is the code for that little test ‘tool’:
/* starts here */
#include <SDL.h>
#include <stdio.h>

int main(int argc, char argv[]) {
SDL_Init(SDL_INIT_VIDEO);
SDL_Surface screen = SDL_SetVideoMode(240, 320, 0, SDL_SWSURFACE
| SDL_FULLSCREEN);
SDL_Rect rect;
rect.x = 0;
rect.y = 0;
rect.w = 120;
rect.h = 320;
printf(“screen->w: %d\n”, screen->w);
printf(“screen->h: %d\n”, screen->h);
printf(“bits per pixel: %d\n”, screen->format->BitsPerPixel);
printf(“bytes per pixel: %d\n”, screen->format->BytesPerPixel);
printf(“Rmask: %.08X\n”, screen->format->Rmask);
printf(“Gmask: %.08X\n”, screen->format->Gmask);
printf(“Bmask: %.08X\n”, screen->format->Bmask);
SDL_FillRect(screen, &rect, SDL_MapRGB(screen->format, 255, 255, 255));
SDL_UpdateRect(screen, 0, 0, 0, 0);
SDL_Delay(3000);
SDL_Quit();
return 0;
}
/
ends here
/
on the shell I get the following output:
QT_GetMachine: /proc/cpuinfo is Processor: XScale-PXA250 rev 4 (v51)
some more output about processor specific things (cat /proc/cpuinfo
output I think) if it is needed I will also give it to you
and after that:

detected machine is ‘HP HP IPAQ’
QT_GetRotation: Read spec from ‘/tmp/qtembedded-root/QtEmbedded-0.spec’
Rot = 0, Qvga = 0
QT_SetVideoMode: argSize=240x320
QT_SetVideoMode: qteSize=320x240
QT_SetVideoMode: fbSize=240x320
QT_SetVideoMode: qteRotation=-1
QT_SetVideoMode: userRotation=0
QT_SetVideoMode: sdlRotation=0
QT_SetVideoMode: qteKeyRotation=3
QT_SetVideoMode: sdlKeyRotation=9
setMousePos: realPos2(229, 285)
screen->w: 240
screen->h: 320
bits per pixel: 16
bytes per pixel: 2
Rmask: 0000F800
Gmask: 000007E0
Bmask: 0000001F

Has anyone an idea if there is a possibillity to fix that?

Cheers
Johannes

PS: Happy new year! :slight_smile:

I’m using the libsdl-qpe package (1.2.7-r4) from the familiar 0.8.2
release on my iPaq 3850 running familiar 0.8.2 (with opie 1.2.0).
I compiled scummvm with a cross compiler and got strange gfx output
(opie works just fine):

My (extremely out of date) understanding of the iPaq is that it doesn’t
actually have a linear framebuffer, so we need to shuffle the bits to
the screen in a different order…it could very well be our bug, but I
have no means to test or fix it here.

Any one out there able to take a stab at this?

–ryan.

Hi,

if I do SDL_SetVideoMode(320, 240, 0, SDL_SWSURFACE | SDL_FULLSCREEN)
in my little test tool it looks better but still it isn’t half of the
screen white:
http://inferno-entertainment.myzeug.de/libsdl-qpe-bug2.png

Johannes