Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#3418 closed defect (fixed)

IHNM/ITE: Error loading Game resources (fs-node regression)

Reported by: (none) Owned by: SF/david_corrales
Priority: normal Component: Engine: SAGA
Keywords: detection Cc:
Game: I Have No Mouth


ScummVM 0.11.0svn (Sep 25 2007 16:51:37)
Features compiled in: Vorbis FLAC MP3 zLib MPEG2

I get the error message "Error loading Game resources"
on both IHNM and ITE. Nothing more than that. I
attached both logs in a .zip. Hope it helps.

I Have no Mouth (DOS/English)

gcc version 4.0.2 (AmigaOS build 20051012)

Two weeks ago (or so) it worked, cannot pinpoint it.

Ticket imported from: #1804403. Ticket imported from: bugs/3418.

Attachments (2) (24.2 KB) - added by SF/*anonymous 12 years ago.
ITE_Snoopy.log (12.8 KB) - added by SF/*anonymous 12 years ago.
Snoopy log

Download all attachments as: .zip

Change History (19)

Changed 12 years ago by SF/*anonymous

Attachment: added

comment:1 Changed 12 years ago by bluegr

These logs seem very strange, it looks like the engine never starts at all. I'm not sure if this a problem with the engine itself or with the latest changes to the filesystem node. Have you tried any other games with the latest SVN? Do they all play correctly?

comment:2 Changed 12 years ago by (none)

ScummVM 0.11.0svn (Sep 29 2007 05:57:27)
Features compiled in: Vorbis FLAC MP3 zLib MPEG2

AGI, AGOS, Cine, Gob, Kyra, Parallaction, Queen, SCUMM,
Sword1, Sword2, Sky and Touche all work fine...

I'll try to pinpoint the revision where it breaks

comment:3 Changed 12 years ago by (none)

revision 28943 is fine whereas
revision 28944 breaks...

comment:4 Changed 12 years ago by bluegr

Owner: set to SF/david_corrales

comment:5 Changed 12 years ago by bluegr

Thanks for your work vampir_raziel. Revision 28944 was the merge of the filesystem node (GSoC project). I'm assigning this to david_corrales, as the filesystem node is his code

comment:6 Changed 12 years ago by bluegr

Summary: IHNM/ITE: Error loading Game resourcesIHNM/ITE: Error loading Game resources (fs-node regression)

comment:7 Changed 12 years ago by fingolfin

Does this only occur on AmigaOS or also on other systems?

Is there maybe a demo version of this game with which one can reproduce the issue?

comment:8 Changed 12 years ago by SF/david_corrales

Today I was trying out both demos (IHNM and ITE) in Linux without problems. Still can't pinpoint the error in the Amiga platform.
I checked the changes made by my FSNode patch but couldn't find anything obvious.

Changed 12 years ago by SF/*anonymous

Attachment: ITE_Snoopy.log added

Snoopy log

comment:9 Changed 12 years ago by (none)

OK, i may have not found the solution for my problem, but
i'm pretty sure to have found the cause.

I let run a "snooper" kind of program which writes a log of
"nearly" all system calls with paths and more information.

This i found

00048 : scummvm [9] : o.k. = Open("Games:ScummVM/Games/DreamersGuild/InheritTheEarth/Games:ScummVM/Games/DreamersGuild/InheritTheEarth/SCRIPTS.RSC",
00050 : scummvm [9] : FAIL = IsInteractive("Games:ScummVM/Games/DreamersGuild/InheritTheEarth/Games:ScummVM/Games/DreamersGuild/InheritTheEarth/SCRI
00055 : scummvm [9] : DIR = ParentOfFH(0x17AEE1BC) "Games:ScummVM/Games/DreamersGuild/InheritTheEarth/Games:ScummVM/Games/DreamersGuild/InheritTheE
00057 : scummvm [9] : o.k. = Open("Games:ScummVM/Games/DreamersGuild/InheritTheEarth/Games:ScummVM/Games/DreamersGuild/InheritTheEarth/SCRIPTS.RSC",
00059 : scummvm [9] : FAIL = IsInteractive("Games:ScummVM/Games/DreamersGuild/InheritTheEarth/Games:ScummVM/Games/DreamersGuild/InheritTheEarth/SCRI
00067 : scummvm [9] : DIR = ParentOfFH(0x17AEE0F4) "Games:ScummVM/Games/DreamersGuild/InheritTheEarth/Games:ScummVM/Games/DreamersGuild/InheritTheE
00069 : scummvm [9] : o.k. = Open("Games:ScummVM/Games/DreamersGuild/InheritTheEarth/Games:ScummVM/Games/DreamersGuild/InheritTheEarth/ITE.RSC",OLD)
00071 : scummvm [9] : FAIL = IsInteractive("Games:ScummVM/Games/DreamersGuild/InheritTheEarth/Games:ScummVM/Games/DreamersGuild/InheritTheEarth/ITE.
00076 : scummvm [9] : DIR = ParentOfFH(0x17AEE1BC) "Games:ScummVM/Games/DreamersGuild/InheritTheEarth/Games:ScummVM/Games/DreamersGuild/InheritTheE
00078 : scummvm [9] : o.k. = Open("Games:ScummVM/Games/DreamersGuild/InheritTheEarth/Games:ScummVM/Games/DreamersGuild/InheritTheEarth/ITE.RSC",OLD)
00080 : scummvm [9] : FAIL = IsInteractive("Games:ScummVM/Games/DreamersGuild/InheritTheEarth/Games:ScummVM/Games/DreamersGuild/InheritTheEarth/ITE.
00088 : scummvm [9] : DIR = ParentOfFH(0x17AEE1BC) "Games:ScummVM/Games/DreamersGuild/InheritTheEarth/Games:ScummVM/Games/DreamersGuild/InheritTheE

It seems tha these commands do a "path path file" instead of
"path file", whereas "Lock" and DupLock" work as expected.

The rest is attached.
File Added: ITE_Snoopy.log

comment:10 Changed 12 years ago by (none)

With help from thebluegr ([md5]) and david_corrales we
pinpointed the problem to a path issue in the AmigaOS4
backend (arising in the SAGA engine)

Here's the IRC transcript (cut to only hold important info)

[21:14:29] <Raziel_AOne> [md5] with the latest patch you made IHNM work again
[21:15:09] <[md5]_> the _gf_compressed_sounds = false; one?
[21:15:18] <Raziel_AOne> yes, i believe so

[21:15:13] <Raziel_AOne> I have no Mouth and i must scream works again!!!
[21:15:29] <Raziel_AOne> ITE still doesn't
[21:15:18] <[md5]_> right
[21:15:22] <[md5]_> so I know what's the problem
[21:15:56] <[md5]_> it seems that there are problems when trying to find a file with a space in its name
[21:16:01] <[md5]_> in Amiga
[21:16:03] <[md5]_> i.e.
[21:16:21] <[md5]_> it's trying to find file "inherit the earth voices" or "inherit the earth voices.cmp"
[21:16:33] <[md5]_> and that always fails for some reason or gives incorrect results
[21:16:39] <[md5]_> but I don't know why
[21:16:51] <[md5]_> well
[21:16:56] <Raziel_AOne> it HAS to be " " marked, otherwise it fails (if not added automatically)
[21:17:05] <Raziel_AOne> Amiga FS
[21:17:11] <Raziel_AOne> e.g.
[21:17:23] <Raziel_AOne> This is a path: to a file
[21:17:27] <Raziel_AOne> has to be
[21:17:34] <Raziel_AOne> "This is a path:L to a file"
[21:17:50] <Raziel_AOne> Amiga FS will otherwise stop at the first space
[21:17:58] <[md5]_> so we got a winner :)
[21:18:09] <[md5]_> david_corrales, does that point you to the right direction?
[21:20:14] <[md5]_> well Raziel_AOne, to make both games work, change all parts where it's checking for "inherit the earth voices" and make it look for "inherittheearthvoices" (no spaces) till david_corrales fixes that

First patch (the one that made IHNM working again was:
in detection.cpp
line 177, add the following right above "return _resource->createContexts();":
_gf_compressed_sounds = false;

A workaround has been found and the bug 50% fixed, it would
be nice to have in official and 100% working fix in SVN, though

Thanks for the help so far, guys

comment:11 Changed 12 years ago by (none)

Not fixed in revision 29279, i'm afraid

Still that "doubled path" problem with ITE from the
2007-10-24 10:16 post.

comment:12 Changed 12 years ago by bluegr

Do both games fail to start then? Or just ITE?

comment:13 Changed 12 years ago by (none)

ITE is still failing, whereas IHNM is fixed

(sorry for holding back that information)

comment:14 Changed 12 years ago by SF/david_corrales

Resolution: fixed
Status: newclosed

comment:15 Changed 12 years ago by SF/david_corrales

The solution was to properly implement the AmigaOSFilesystemNode::exists() method, since the stub was returning true for all cases, thus messing the loading logic.
Thanks a lot to [md5], Raziel_One, LordHoto and Peres for their help :D

comment:16 Changed 12 years ago by bluegr

Indeed, thanks to all the aforementioned people for fixing this one :)

Raziel reported that it's working now, so I'm finally closing this as fixed

comment:17 Changed 12 years ago by fingolfin

Great work, folks!

Note: See TracTickets for help on using tickets.