Opened 11 years ago

Closed 11 years ago

Last modified 13 months ago

#3963 closed defect

WIN: Games Crash on Startup

Reported by: SF/mthreepwood Owned by: Kirben
Priority: normal Component: Port: Win32
Keywords: Cc:
Game:

Description

I compiled my code on WinXP using:
MinGW + GCC 3.4.2 and ScummVM r34494 (the head revision at time of writing). And, it has SDL, and all required libs.

And, here's my problem: Half of my games don't start up. They segfault (according to gdb). I've tried to trace it, and it appears to crash while trying to create a new Node in List::Insert when trying to add the game's path to the global searchset. Though, I haven't found the root cause of the problem.

I'm not sure if anyone else has had this problem (I've not heard of this with anyone else).

Ticket imported from: #2106292. Ticket imported from: bugs/3963.

Change History (15)

comment:1 by SF/mthreepwood, 11 years ago

Forgot to mention:

When I moved my Zak V1 to another folder (the desktop), added a new detection entry for it and ran it, it worked fine. But, it no longer worked in my original folder.

comment:2 by fingolfin, 11 years ago

The problem could be caused by trailing (back)slashes in your game path.

This sounds like a problem caused / unveiled by the recent FSNode changes, plus problems with the Win32 FSNode implementation (which may not have been updated to the new specs yet).

comment:3 by fingolfin, 11 years ago

Owner: set to Kirben
Summary: Games Crash on StartupWIN: Games Crash on Startup

comment:4 by Kirben, 11 years ago

I'm unable to reproduce this problem, and I recently (r34493) mass added all my games again.

Could you list some example game paths that are currently causing this issue under ScummVM.

comment:5 by SF/mthreepwood, 11 years ago

These ones do not work. Here is how they are listed:
C:\GAMES\ScummVM\MONKEY2\
C:\GAMES\ScummVM\MONKEY1\
C:\GAMES\ScummVM\Putt-Putt Zoo\
C:\GAMES\ScummVM\SimonI\
C:\GAMES\ScummVM\Zak V1\

These ones do work:
C:\GAMES\ScummVM\Monkey Island 1 Mac\
C:\GAMES\ScummVM\Monkey Island 1 SegaCD\
C:\GAMES\ScummVM\Monkey Island 1 MegaCD\
C:\GAMES\ScummVM\Putt-Putt Time\
C:\GAMES\ScummVM\SimonI Enhanced\

comment:6 by Kirben, 11 years ago

Strange, even when using the exact same paths, I still can't reproduce this issue under Windows XP (Media Centre 2005). The paths that work and don't work look similar, with long names been used by both.

If you change base/main.cpp line 167 from:
Common::File::addDefaultDirectoryRecursive(path);
To:
Common::File::addDefaultDirectory(path);

Does it make any difference? as 4 levels of directories are searched, when a game path is added now too.

comment:7 by SF/mthreepwood, 11 years ago

No, that didn't make a difference.

And, continuing the strangeness of all of this, I just tried the daily build and it works fine. Perhaps there's a problem with my compiler then? Which version of GCC are you using, Kirben?

comment:8 by Kirben, 11 years ago

I'm using gcc version 4.2.1-dw2 (mingw32-2).

comment:9 by SF/mthreepwood, 11 years ago

I'm using gcc 3.4.2. I'll try updating to 3.4.5 and see what that does.

comment:10 by SF/mthreepwood, 11 years ago

Using gcc 3.4.5 seems to have fixed the problem.

comment:11 by fingolfin, 11 years ago

Resolution: invalid
Status: newclosed

comment:12 by wjp, 11 years ago

One small note which may or may not be relevant: the non-working paths are all at least 33 bytes, the working ones are all smaller. (The built-in capacity of a String object is 32 bytes.)

comment:13 by joostp, 11 years ago

A similar issue is occurring on IRIX - see: http://sourceforge.net/tracker/index.php?func=detail&aid=2120595&group_id=37116&atid=418820

The compiler used was gcc 3.4.0

comment:14 by joostp, 11 years ago

Resolution: invalid

comment:15 by digitall, 13 months ago

Component: --Unset--Port: Win32
Note: See TracTickets for help on using tickets.