Opened 11 months ago

Last modified 2 weeks ago

#11236 new defect

ILLUSIONS: Endianness issue in text handling

Reported by: bgK Owned by:
Priority: normal Component: Engine: Illusions
Keywords: Cc:
Game:

Description

Duckman Demo, ScummVM 5d0206b9c297837fddb038601bdfb42b0fcb8016 on the PlayStation 3.

This ticket is the result of investigating the user report from here: https://forums.scummvm.org/viewtopic.php?f=4&p=87890

The game enters an infinite loop in TextDrawer::wrapText. This appears to be because TalkThread_Duckman::insertText casts _currEntryText from byte * to uint16 *. The resulting array has different values on little endian and big endian systems.

Attachments (2)

Crashlog_scummvm_2020-07-30_17-33-02.txt (40.5 KB ) - added by raziel- 2 months ago.
Crashlog_scummvm_2020-09-03_08-59-03.txt (41.4 KB ) - added by raziel- 4 weeks ago.

Download all attachments as: .zip

Change History (7)

comment:1 by raziel-, 2 months ago

ScummVM 2.2.0git (Jul 15 2020 10:24:49)
Features compiled in: Vorbis FLAC MP3 RGB zLib MPEG2 Theora AAC A/52 FreeType2 FriBiDi JPEG PNG cloud (servers, local)

Confirmed with demo on below platform.

I get this on start and running the demo:
User picked target 'duckman-demo' (engine ID 'illusions', game ID 'duckman')...

Looking for a plugin supporting this target... Illusions

WARNING: Unsupported Text stream detected!
_midiMusicCount: 18; midiMusicOffs: 00000010
WARNING: makeWAVStream: Trying to play a WAVE file with an incomplete PCM packet!
WARNING: makeWAVStream: Trying to play a WAVE file with an incomplete PCM packet!
WARNING: makeWAVStream: Trying to play a WAVE file with an incomplete PCM packet!
MidiPlayer::play(000B0011)

Duckman (Demo/Windows/English)

AmigaOS4 - PPC - BE - SDL
gcc (adtools build 8.3.0) 8.3.0

comment:2 by sev-, 4 weeks ago

Actually, there is the following piece which normalizes endianness:

https://github.com/scummvm/scummvm/blob/master/engines/illusions/resources/talkresource.cpp#L54

comment:3 by sev-, 4 weeks ago

This was committed recently, in bc85ff1868f13e119b1bb1659f71b9a2fa64bc2d. Does it still hang?

comment:4 by raziel-, 4 weeks ago

Not at the position OP is metnioning (the rocket exploding).

The screen text is displayed (far too fast to actually be usable) and the guy in his hole finished his "normally working behind a desk" sentence, and THEN it crashes.

See attached crashlog.

This seems to be the same crash as in https://bugs.scummvm.org/ticket/11528
and i think it's related to the OP crash

comment:5 by raziel-, 2 weeks ago

I left the warning in place from #11528 and it also shows an incredible high number just before crashing.

WARNING: C: 20992!

This happens when the jacuzzi scene ends (i think)

Note: See TracTickets for help on using tickets.