They're doing exactly what I'm doing modulo RGBA vs BGRA. Weird.
ETA: well, ok, a few differences.
Try this:
src/sdl/window.h, line 61 (should be right after "int yprescale", add this line:
int uploadedonce;
And in src/sdl/drawsdl.c, line ~1077 (I'm working off a MAME u11/12 updated codebase here so it's not exactly test 3), delete the glTexImage2D() call and add these lines:
glPixelStorei(GL_UNPACK_ROW_LENGTH, texture->rawwidth);
if (!texture->uploadedonce)
{
glTexImage2D(GL_TEXTURE_2D, 0, 4, texture->rawwidth, texture->rawheight, texture->borderpix ? 1 : 0, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8, dbuf);
texture->uploadedonce = 1;
}
else
{
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, texture->rawwidth, texture->rawheight, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8, dbuf);
}
In theory, those things (which Medafen also does) should help. In practice I saw no difference on my NVidia card - it was 290 FPS either way in Gokujou Parodius, but maybe ATI's drivers will appreciate the help
