Opened 13 years ago

Closed 13 years ago

Last modified 13 years ago

#2915 closed defect (worksforme)

DIG: Spanish. Segfault on font loading

Reported by: SF/pentexsucks Owned by: sev-
Priority: normal Component: Engine: SCUMM
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-, 13 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-, 13 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, 13 years ago

Here they are:

File size: 34738 bytes
Md5: 32278079230f6797190efdbf759e742e

comment:4 by sev-, 13 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-, 13 years ago

Status: newclosed

comment:6 by sev-, 13 years ago

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