#14356 closed defect (fixed)

Splash screen is no longer shown correctly on big endian machines

Reported by: mikrosk Owned by: mikrosk
Priority: normal Component: Graphics
Version: Keywords:
Cc: Game:

Description

Found this by accident. When I add this code:

Common::OutSaveFile out = g_system->getSavefileManager()->openForSaving("aaa.bmp", false);
Image::writeBMP(out, *bitmap.getSurface(), bitmap.getPalette());

into splashScreen() in engine.cpp, scummvm-2.6.1 stores a nice scummvm logo (I had to patch it with ce9d324a as it was crashing here as well). However when I paste the code above into latest master, on a little endian machine it is stored properly while on big endian it looks like attached.

Attachments (1)

aaa.bmp (73.0 KB ) - added by mikrosk 20 months ago.

Download all attachments as: .zip

Change History (4)

by mikrosk, 20 months ago

Attachment: aaa.bmp added

comment:1 by mikrosk, 20 months ago

Another explanation is that something broke it on 32-bit CPUs but I guess somebody would have noticed this sooner than me.

comment:2 by mikrosk, 20 months ago

Oh, it has nothing to do with endianness. MSRLEDecoder::decode8() is not prepared surfaces where pitch != width. Introduced by Atari backend, which aligns surface pitches on 16b boundary.

comment:3 by mikrosk, 18 months ago

Owner: set to mikrosk
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.