Opened 3 months ago

Last modified 13 days ago

#11528 new defect

ILLUSIONS: Duckman - Crash after option menu "times out"

Reported by: raziel- Owned by:
Priority: normal Component: Engine: Illusions
Keywords: Duckman Cc:
Game:

Description

ScummVM 2.2.0git (Jun 28 2020 09:39:26)
Features compiled in: Vorbis FLAC MP3 RGB zLib MPEG2 Theora AAC A/52 FreeType2 FriBiDi JPEG PNG cloud (servers, local)

Crash after intro has played and Option menu "times out".
Sorry for not being clearer, i don't know if at that point a demo should play or something else should happen, but the Option text (Start New Game etc.) is removed when it happens.

Steps to reproduce:

  1. Start Duckman
  2. Let the credits roll completely until you reach the Options (Start New Game etc.)
  3. Let the game sit there until the second Duckman animation has played (where he rolls up a poster of presumably James Dean)
  4. Duckman will make an angry face, the options will vanish, the cursor will jump to the top left and then the crash happens.

This is what i get in the console:
User picked target 'duckman' (engine ID 'illusions', game ID 'duckman')...

Looking for a plugin supporting this target... Illusions

WARNING: Unsupported Text stream detected!
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(000B000D)

If more information is needed, just let me know.

Crashlog and serial log attached.
Sorry for the incomplete report, but i have neither found a "Duckman" entry in the "Game" field nor a "Engine: Duckman" entry in the "Component" field.

Duckman (Windows/English)

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

Attachments (3)

Crashlog_scummvm_2020-07-01_16-18-58.txt (40.2 KB ) - added by raziel- 3 months ago.
Debug_Serial_1.txt (8.0 KB ) - added by raziel- 3 months ago.
Duckman (Windows_English)_000.png (8.0 KB ) - added by raziel- 3 months ago.

Download all attachments as: .zip

Change History (15)

by raziel-, 3 months ago

Attachment: Debug_Serial_1.txt added

comment:1 by raziel-, 3 months ago

Actually you can skip the intro with SPACE and start right at the options.

And i'm not sure if that might be of help, but here are the last two opcode outputs gathered with -d9:

execOpcode([00020341] 56) opStartTalkThread
ARG_UINT32(objectId = 00040008)
ARG_UINT32(talkId = 000F00E1)
ARG_UINT32(sequenceId1 = 00060042)
ARG_UINT32(sequenceId2 = 00060016)
Starting talk thread

execOpcode([00020341] 2) opSuspend
VoicePlayer::cue(A00A040)
000206D8 000F00E1 [What the hell are you starin' at?]

There is no "talking" and no text output (see screenshot)

by raziel-, 3 months ago

comment:2 by raziel-, 3 months ago

Summary: DUCKMAN: Crash after options menu "times out"DUCKMAN: Crash after option menu "times out"

comment:3 by raziel-, 2 months ago

Component: --Other--Engine: Illusions
Summary: DUCKMAN: Crash after option menu "times out"ILLUSIONS: Duckman - Crash after option menu "times out"

comment:4 by sev-, 4 weeks ago

Priority: highnormal

comment:5 by sev-, 4 weeks ago

Priority: normalhigh

comment:6 by sev-, 3 weeks ago

Does it still happen? For me it plays a video and then loops back.

comment:7 by raziel-, 3 weeks ago

Yep, same place, same crash (with a fresh build from today)

comment:8 by sev-, 3 weeks ago

Any way of producing at least some kind of backtrace or name of the method where it crashes?

comment:9 by raziel-, 3 weeks ago

The attached crashlog with stacktrace isn't sufficient then, i guess? :-(

Sorry, gdb is totally broken here, it will crash when running scummvm from within it, not even the launcher window will come up, so unusable, i'm afraid.

I'm guessing here it has to do with this issue:
https://bugs.scummvm.org/ticket/11236

BE issue here aswell, i suppose

comment:10 by sev-, 3 weeks ago

Priority: highnormal

Could you please put a debug output to getCharWidth(uint16 c) function in engines/illusions/textdrawer.cpp:211 like the following

int16 TextDrawer::getCharWidth(uint16 c) {
	warning("C: %d", c);
	return _font->getCharInfo(c)->_width + _font->_widthC;
}

Run the game and provide me with the output near the crash.

comment:11 by raziel-, 3 weeks ago

Will do asap

comment:12 by raziel-, 13 days ago

@sev-

The second to last number (C: 32!) is when the cursor changes from the hand icon to something else (which i cannot make out, because it is teleported to the top left) and the last (exceptionally high) number (C: 22272!) is when it crashes.

User picked target 'duckman' (engine ID 'illusions', game ID 'duckman')...

Looking for a plugin supporting this target... Illusions

WARNING: Unsupported Text stream detected!
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(000B000D)
WARNING: C: 32!
WARNING: C: 83!
WARNING: C: 116!
WARNING: C: 97!
WARNING: C: 114!
WARNING: C: 116!
WARNING: C: 32!
WARNING: C: 78!
WARNING: C: 101!
WARNING: C: 119!
WARNING: C: 32!
WARNING: C: 71!
WARNING: C: 97!
WARNING: C: 109!
WARNING: C: 101!
WARNING: C: 76!
WARNING: C: 111!
WARNING: C: 97!
WARNING: C: 100!
WARNING: C: 32!
WARNING: C: 83!
WARNING: C: 97!
WARNING: C: 118!
WARNING: C: 101!
WARNING: C: 100!
WARNING: C: 32!
WARNING: C: 71!
WARNING: C: 97!
WARNING: C: 109!
WARNING: C: 101!
WARNING: C: 79!
WARNING: C: 112!
WARNING: C: 116!
WARNING: C: 105!
WARNING: C: 111!
WARNING: C: 110!
WARNING: C: 115!
WARNING: C: 81!
WARNING: C: 117!
WARNING: C: 105!
WARNING: C: 116!
WARNING: C: 32!
WARNING: C: 71!
WARNING: C: 97!
WARNING: C: 109!
WARNING: C: 101!
WARNING: C: 32!
WARNING: C: 22272!

Note: See TracTickets for help on using tickets.