Opened 14 years ago

Closed 14 years ago

Last modified 23 months ago

#2575 closed defect (fixed)

ALL: Crash on starting SCUMM games from launcher

Reported by: SF/andrej4000 Owned by: fingolfin
Priority: normal Component: GUI
Keywords: Cc:
Game:

Description

I can't start any SCUMM games (I tested all v1 till v8) through the launcher. The problem is in the curent SVN

* 0.9.0svn (Apr 25 2006 08:42:45) and self compilation of current SVN * I can't start any SCUMM games (I tested all v1 till v8) through the launcher. Starting any other engines works. Starting SCUMM games without launcher but with start parameters works, too. * Win32 Daily Snapshot and self compilation with DevCpp on my WinXP Home (German) machine. * Unfortunately I can't test, when this bug was invented.

Ticket imported from: #1476342. Ticket imported from: bugs/2575.

Change History (23)

comment:1 by SF/andrej4000, 14 years ago

Here is an example error message:

Looking for loom Trying to start game 'Loom' WARNING: Failed to instantiate engine for target looma!

comment:2 by fingolfin, 14 years ago

Works fine over here.

Are the gameid values set correctly? I.e. if you look at your config file with a text editor, and look at your "looma" target/section -- does it contain "gameid=loom" ?

comment:3 by sev-, 14 years ago

Looks like path key for each game points to wrong directory. Please, doublecheck that.

I.e. current code behaves (IMHO) rather strangely. I.e. it assumes that if game path is defined, then it is always valid. Thus engine is created, then it tries to find a game there, fails, and returns back to launcher, which spits above mentioned message.

Would be really nice to report that engine can't find game in that directory. And moreover, if directory does not exist, we get an assert().

Will try to fix both things now. Closing this report as 'works for me'.

comment:4 by sev-, 14 years ago

Owner: set to sev-
Resolution: worksforme
Status: newclosed

comment:5 by SF/andrej4000, 14 years ago

Well... No I can't start ANY games, even non-SCUMM targets which worked before don't work. Everytime I get such message: --------------- Looking for sky Trying to start game 'Beneath a Steel Sky' WARNING: Game directory does not exist (C:\Spiele\scummvmwin32\BASS-Floppy\)! ---------------

The Path is correct, this target I added right before this error message. PLZ reopen the bug. *g*

comment:6 by SF/andrej4000, 14 years ago

OK, I'm experiencing bug #1476651 now, so wait with reopening.

comment:7 by SF/andrej4000, 14 years ago

I found a fix for my problem, but I don't know if it won't disturb the behaviour of scummvm in some special cases.

In backends\fs\windows\windows-fs.cpp search in the function

WindowsFilesystemNode::WindowsFilesystemNode(const String &p)

for the line

_isDirectory = ((fileAttribs & FILE_ATTRIBUTE_DIRECTORY) != 0);

and add this new line after it:

_isPseudoRoot = false;

After this every SCUMM game starts in normal way directly and via the launcher.

comment:8 by fingolfin, 14 years ago

I can't really comment on Windows specific code. Arisme wrote it, maybe Kirben and aquadran have an idea about it, too...

But it definitely *is* bad that this constructor does not set _isPseudoRoot! From what I understand in this windows specific code, it makes a lot of sense to add _isPseudoRoot = false; to the end of this constructor (around line 161).

comment:9 by fingolfin, 14 years ago

Owner: changed from sev- to Kirben
Resolution: worksforme
Status: closednew

comment:10 by SF/andrej4000, 14 years ago

Indeed. Well, for some reasons this bug doesn't occure on every system, Kirben (ond probably other people) didn't notice the bug.

comment:11 by SF/andrej4000, 14 years ago

Owner: changed from Kirben to sev-
Resolution: worksforme
Status: newclosed

comment:12 by fingolfin, 14 years ago

Owner: changed from sev- to SF/arisme
Resolution: worksforme
Status: closednew

comment:13 by fingolfin, 14 years ago

Did you re-close the bug on purpose?

comment:14 by fingolfin, 14 years ago

Owner: SF/arisme removed
Summary: Crash on starting SCUMM games from launcherALL: Crash on starting SCUMM games from launcher

comment:15 by SF/andrej4000, 14 years ago

Me? No, I didn't touch the options. Perhaps I viewed the bug when it was closed, then reloaded the page and my browser didn't update the controls properly...

comment:16 by SF/joachimeberhard, 14 years ago

This bug happens for me also:

WinXP SP2, ScummVM 0.9.0 SVN April 27

It happens for many LucasArts games I tested, except when I freshly added Monkey1, it worked 1 time. After I started ScummVM again, and started the game from the launcher again, it didn't work anymore.

The strange thing is, most games work one time, thans refuse to work thereafer.

Example for MI1CD:

Contents of the ini:

[monkey] description=The Secret of Monkey Island (English/DOS/CD) path=X:\Spiele\ScummVM\LA\ENGLISH\DOS\MONKEYCD\ platform=pc gameid=monkey language=en

Output of ScummVM:

Looking for monkey Trying to start game 'The Secret of Monkey Island' WARNING: ScummEngine: unable to locate game data! Output sample rate: 22050 Hz

Regards

Joachim

comment:17 by SF/joachimeberhard, 14 years ago

Ah, sorry, most games don't even work 1 time.

And Indy3 EGA works all the time, while VGA doesn't.

comment:18 by fingolfin, 14 years ago

I commited a fix to windows-fs.cpp, based on Andrej's observations. Still not sure whether it is 100% correct, but at least it is less wrong than the current code.

Does that help?

comment:19 by SF/andrej4000, 14 years ago

I compiled and testet ScummVM several times for different reasons, everytime including the added significant line since yesterday, end everything worked fine for me.

Well, I don't see any cases, where this var should be initialised with "true" except of calling the constructor without any parameter, which is done everytime to get the root node. This works fine. As far as I see, setting this var to true automatically sets the node to root (meaning it's the list of drives available in the windows environment). I don't think it's a FIXME, but the proper solution. :-)

Let's wait for joachime's testing results, but I'm optimistic.

comment:20 by SF/joachimeberhard, 14 years ago

So, it finally works. :) I tested all the English DOS and German fan-tranlations for FM-Towns.

For your information, Loom and Monkey1 FM-Towns german translations work, ZakTownsDE Crashes right at start with Bad ID!, Monkey2TownsDE crashes after difficulty selection with ERROR: Unknows Screesn effect, 30 and Indy3TownsDE hangs at an unanimated LucasFilm games logo, Music playing, and you have to hit <Esc> to skip the intro, then it works fine.

Also, I am begging you to output unknown MD5s again.

If it would help, I'd file a feature request for the lost feature.

Regards

Joachim

comment:21 by fingolfin, 14 years ago

Owner: set to fingolfin
Resolution: fixed
Status: newclosed

comment:22 by fingolfin, 14 years ago

Glad to know things work again. Not sure how such a serious bug could have slipped by for so long, but I guess it was only by the extende use of the FS code in the new SCUMM detector that it got triggered in a regular fashion.

As for the localized FM-TOWNS versions not working: Odd. The italian Zak apparently works fine.... The platform is correctly set to fmtowns, I assume? Anyway, this is not the right place to discuss, please open a new bug report on these games, and I'll give this a look.

comment:23 by digitall, 23 months ago

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