Opened 5 years ago
Closed 3 years ago
#11236 closed defect (fixed)
ILLUSIONS: Endianness issue in text handling
Reported by: | bgK | Owned by: | dwatteau |
---|---|---|---|
Priority: | normal | Component: | Engine: Illusions |
Version: | 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)
Change History (10)
comment:1 by , 4 years ago
by , 4 years ago
Attachment: | Crashlog_scummvm_2020-07-30_17-33-02.txt added |
---|
comment:2 by , 4 years 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 , 4 years ago
This was committed recently, in bc85ff1868f13e119b1bb1659f71b9a2fa64bc2d. Does it still hang?
comment:4 by , 4 years 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
by , 4 years ago
Attachment: | Crashlog_scummvm_2020-09-03_08-59-03.txt added |
---|
comment:5 by , 4 years 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)
comment:7 by , 3 years ago
I can confirm that PR 3125 does fix the problem on PS3 as well, here.
This ticket can probably be closed, then. Thanks.
comment:8 by , 3 years ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → closed |
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')...
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