Opened 17 years ago

Closed 17 years ago

Last modified 17 years ago

#2915 closed defect (worksforme)

DIG: Spanish. Segfault on font loading

Reported by: SF/pentexsucks Owned by: sev-
Priority: normal Component: Engine: SCUMM
Version: Keywords:
Cc: Game: The Dig

Description

The Spanish version of The Dig segfaults when I try to start it.It happens with 0.9.1 as well with today's snapshot. Both were compiled with gcc 4.1.1

Here's the output I get with today's svn:

javier@uberbox ~/sources/scummvm-latest/scummvm $ ./scummvm -f Using configuration file: /home/javier/.scummvmrc WARNING: Config 'modern' is NOT usable for themes or not found! WARNING: falling back to classic style! Looking for dig Trying to start game 'The Dig' Violación de segmento

Backtrace:

(gdb) bt #0 0x08072793 in READ_BE_UINT32 (ptr=0x28773ae2) at endian.h:178 #1 0x0816a611 in Scumm::NutRenderer::loadFont (this=0x8771990, filename=0xbff75739 "font0.nut") at nut_renderer.cpp:107 #2 0x080a26eb in Scumm::SmushPlayer::setupAnim (this=0x85912d0, file=0x8618b62 "sq1.san") at smush_player.cpp:1055 #3 0x080a43b1 in Scumm::SmushPlayer::play (this=0x85912d0, filename=0x8618b62 "sq1.san", speed=12, offset=0, startFrame=0) at smush_player.cpp:1307 #4 0x0815f76e in Scumm::ScummEngine_v7::o6_kernelSetFunctions (this=0x86340d0) at script_v6.cpp:2537 #5 0x0815c074 in Scumm::ScummEngine_v6::executeOpcode (this=0x86340d0, i=201 'É') at script_v6.cpp:379 #6 0x081676bf in Scumm::ScummEngine::executeScript (this=0x86340d0) at script.cpp:472 #7 0x08167817 in Scumm::ScummEngine::runAllScripts (this=0x86340d0) at script.cpp:922 #8 0x08061f5a in Scumm::ScummEngine::scummLoop (this=0x86340d0, delta=0) at scumm.cpp:1775 #9 0x08062604 in Scumm::ScummEngine::go (this=0x86340d0) at scumm.cpp:1630 #10 0x0805318a in runGame (plugin=0x8587dc0, system=@0x8580008, edebuglevels=@0xbff76398) at main.cpp:229 #11 0x080538d4 in scummvm_main (argc=1, argv=0xbff76754) at main.cpp:327 #12 0x08052338 in main (argc=1, argv=0xbff76754) at sdl.cpp:115

Full Backtrace:

(gdb) bt full #0 0x08072793 in READ_BE_UINT32 (ptr=0x28773ae2) at endian.h:178 b = (const byte *) 0x28773ae2 <Address 0x28773ae2 out of bounds> #1 0x0816a611 in Scumm::NutRenderer::loadFont (this=0x8771990, filename=0xbff75739 "font0.nut") at nut_renderer.cpp:107 codec = 44 srcSize = 14 fobjptr = (const uint8 *) 0x8773aa6 "\002" l = 27 file = {<Scumm::BaseScummFile> = {<Common::File> = {<Common::SeekableReadStream> = {<Common::ReadStream> = {<Common::Stream> = { _vptr.Stream = 0x8472de4}, <No data fields>}, <No data fields>}, <Common::WriteStream> = {<No data fields>}, _handle = 0x0, _ioFailed = false, _refcount = 1, _name = {_vptr.String = 0x85161f8, static _builtinCapacity = 32, _len = 9, _str = 0xbff75664 "font0.nut", {_storage = "font0.nut", '\0' <repeats 22 times>, _extern = { _refCount = 0x746e6f66, _capacity = 1970155056}}, static emptyString = {_vptr.String = 0x85161f8, static _builtinCapacity = 32, _len = 0, _str = 0x857faec "", { _storage = '\0' <repeats 31 times>, _extern = {_refCount = 0x0, _capacity = 0}}, static emptyString = <same as static member of an already seen type>}}}, <No data fields>}, _encbyte = 0 '\0', _subFileStart = 0, _subFileLen = 0} tag = 1095649613 length = 34730 ---Type <return> to continue, or q <return> to quit--- dataSrc = (byte *) 0x8772da8 "AHDR" offset = 536874298 __PRETTY_FUNCTION__ = "bool Scumm::NutRenderer::loadFont(const char*)" #2 0x080a26eb in Scumm::SmushPlayer::setupAnim (this=0x85912d0, file=0x8618b62 "sq1.san") at smush_player.cpp:1055 i = 0 file_font = "font0.nut\000\b" #3 0x080a43b1 in Scumm::SmushPlayer::play (this=0x85912d0, filename=0x8618b62 "sq1.san", speed=12, offset=0, startFrame=0) at smush_player.cpp:1307 f = {<Scumm::BaseScummFile> = {<Common::File> = {<Common::SeekableReadStream> = {<Common::ReadStream> = {<Common::Stream> = { _vptr.Stream = 0x8472de4}, <No data fields>}, <No data fields>}, <Common::WriteStream> = {<No data fields>}, _handle = 0x0, _ioFailed = false, _refcount = 1, _name = {_vptr.String = 0x85161f8, static _builtinCapacity = 32, _len = 7, _str = 0xbff75b98 "sq1.san", { _storage = "sq1.san", '\0' <repeats 24 times>, _extern = { _refCount = 0x2e317173, _capacity = 7233907}}, static emptyString = {_vptr.String = 0x85161f8, static _builtinCapacity = 32, _len = 0, _str = 0x857faec "", { _storage = '\0' <repeats 31 times>, _extern = {_refCount = 0x0, _capacity = 0}}, static emptyString = <same as static member of an already seen type>}}}, <No data fields>}, _encbyte = 0 '\0', _subFileStart = 0, _subFileLen = 0} ---Type <return> to continue, or q <return> to quit--- oldMouseState = false startTime = 7 frameNo = 65 skipped = 135647352 #4 0x0815f76e in Scumm::ScummEngine_v7::o6_kernelSetFunctions (this=0x86340d0) at script_v6.cpp:2537 videoname = 0x8618b62 "sq1.san" args = {6, 0 <repeats 29 times>} num = 2 a = (class Scumm::Actor *) 0x86340d0 __PRETTY_FUNCTION__ = "virtual void Scumm::ScummEngine_v7::o6_kernelSetFunctions()" #5 0x0815c074 in Scumm::ScummEngine_v6::executeOpcode (this=0x86340d0, i=201 'É') at script_v6.cpp:379 op = {__pfn = 0x149, __delta = 0} #6 0x081676bf in Scumm::ScummEngine::executeScript (this=0x86340d0) at script.cpp:472 c = 1163930052 #7 0x08167817 in Scumm::ScummEngine::runAllScripts (this=0x86340d0) at script.cpp:922 cycle = 1 i = 5 numCycles = 1 #8 0x08061f5a in Scumm::ScummEngine::scummLoop (this=0x86340d0, delta=0) ---Type <return> to continue, or q <return> to quit--- at scumm.cpp:1775 oldEgo = 3 #9 0x08062604 in Scumm::ScummEngine::go (this=0x86340d0) at scumm.cpp:1630 delta = 0 diff = 2531 #10 0x0805318a in runGame (plugin=0x8587dc0, system=@0x8580008, edebuglevels=@0xbff76398) at main.cpp:229 desc = {_vptr.String = 0x85161f8, static _builtinCapacity = 32, _len = 7, _str = 0xbff75f3c "The Dig", { _storage = "The Dig", '\0' <repeats 24 times>, _extern = { _refCount = 0x20656854, _capacity = 6777156}}, static emptyString = { _vptr.String = 0x85161f8, static _builtinCapacity = 32, _len = 0, _str = 0x857faec "", {_storage = '\0' <repeats 31 times>, _extern = { _refCount = 0x0, _capacity = 0}}, static emptyString = <same as static member of an already seen type>}} result = 0 gameDataPath = {_vptr.String = 0x85161f8, static _builtinCapacity = 32, _len = 21, _str = 0xbff75fc0 "/home/javier/The_Dig/", { _storage = "/home/javier/The_Dig/\000\000\000\000\000\000\000\000\000\000", _extern = {_refCount = 0x6d6f682f, _capacity = 1634348901}}, static emptyString = {_vptr.String = 0x85161f8, static _builtinCapacity = 32, _len = 0, _str = 0x857faec "", { _storage = '\0' <repeats 31 times>, _extern = {_refCount = 0x0, ---Type <return> to continue, or q <return> to quit--- _capacity = 0}}, static emptyString = <same as static member of an already seen type>}} path = {_vptr.String = 0x85161f8, static _builtinCapacity = 32, _len = 21, _str = 0xbff75f94 "/home/javier/The_Dig/", { _storage = "/home/javier/The_Dig/\000\000\000\000\000\000\000\000\000\000", _extern = {_refCount = 0x6d6f682f, _capacity = 1634348901}}, static emptyString = {_vptr.String = 0x85161f8, static _builtinCapacity = 32, _len = 0, _str = 0x857faec "", { _storage = '\0' <repeats 31 times>, _extern = {_refCount = 0x0, _capacity = 0}}, static emptyString = <same as static member of an already seen type>}} engine = (class Engine *) 0x86340d0 err = kNoError caption = {_vptr.String = 0x85161f8, static _builtinCapacity = 32, _len = 7, _str = 0xbff75f68 "The Dig", { _storage = "The Dig", '\0' <repeats 24 times>, _extern = { _refCount = 0x20656854, _capacity = 6777156}}, static emptyString = { _vptr.String = 0x85161f8, static _builtinCapacity = 32, _len = 0, _str = 0x857faec "", {_storage = '\0' <repeats 31 times>, _extern = { _refCount = 0x0, _capacity = 0}}, static emptyString = <same as static member of an already seen type>}} #11 0x080538d4 in scummvm_main (argc=1, argv=0xbff76754) at main.cpp:327 result = -1208271712 plugin = (const Plugin *) 0x8587dc0 ---Type <return> to continue, or q <return> to quit--- specialDebug = {_vptr.String = 0x85161f8, static _builtinCapacity = 32, _len = 0, _str = 0xbff763a4 "", { _storage = '\0' <repeats 31 times>, _extern = {_refCount = 0x0, _capacity = 0}}, static emptyString = {_vptr.String = 0x85161f8, static _builtinCapacity = 32, _len = 0, _str = 0x857faec "", { _storage = '\0' <repeats 31 times>, _extern = {_refCount = 0x0, _capacity = 0}}, static emptyString = <same as static member of an already seen type>}} command = {_vptr.String = 0x85161f8, static _builtinCapacity = 32, _len = 0, _str = 0xbff76378 "", {_storage = '\0' <repeats 31 times>, _extern = {_refCount = 0x0, _capacity = 0}}, static emptyString = { _vptr.String = 0x85161f8, static _builtinCapacity = 32, _len = 0, _str = 0x857faec "", {_storage = '\0' <repeats 31 times>, _extern = { _refCount = 0x0, _capacity = 0}}, static emptyString = <same as static member of an already seen type>}} system = (class OSystem &) @0x8580008: {_vptr.OSystem = 0x843a8a8} settings = {_arr = 0x8582090, _arrsize = 53, _nele = 0, _hash = {<No data fields>}, _equal = {<No data fields>}} __PRETTY_FUNCTION__ = "int scummvm_main(int, char**)" #12 0x08052338 in main (argc=1, argv=0xbff76754) at sdl.cpp:115 res = -1211387916 __PRETTY_FUNCTION__ = "int main(int, char**)"

f I can provide any more useful info, please tell me.

Ticket imported from: #1599141. Ticket imported from: bugs/2915.

Change History (6)

comment:1 by sev-, 17 years ago

This is one of the best bug reports we get. Thank you.

Please, provide md5 and file size for your font0.nut.

comment:2 by sev-, 17 years ago

Owner: set to sev-
Summary: Segmentation Fault when trying to start the gameDIG: Spanish. Segfault on font loading

comment:3 by SF/pentexsucks, 17 years ago

Here they are:

File size: 34738 bytes Md5: 32278079230f6797190efdbf759e742e

comment:4 by sev-, 17 years ago

That's the broken file. Correct MD5 is 339268c9c839b4bb3094d3aaf34827d8 file size matches. Also it is same across all international versions except Russian. That's why the game crashes.

comment:5 by sev-, 17 years ago

Status: newclosed

comment:6 by sev-, 17 years ago

Resolution: worksforme
Note: See TracTickets for help on using tickets.