Opened 14 years ago

Closed 14 years ago

Last modified 13 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, 13 months ago

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