Opened 20 months ago
Closed 18 months ago
#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)
Change History (4)
by , 20 months ago
comment:1 by , 20 months ago
comment:2 by , 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 , 18 months ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Another explanation is that something broke it on 32-bit CPUs but I guess somebody would have noticed this sooner than me.