Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#5940 closed defect (fixed)

DC: Official NRG Simon Demo Crash

Reported by: SF/stryfe-dc Owned by: zeldin
Priority: normal Component: Engine: AGOS
Version: Keywords:
Cc: Game: Simon the Sorcerer 1

Description

Platform: Dreamcast Version: 1.4.0, and GIT (dc-master-adb53422) Game: Simon 1 Demo Bug Type: Crash

Hi.

After loading up the "Dreamcast Nero Image & Demos for engines named A-Q", the menu display the two demos properly. Goblins 1, and Simon the Sorcerer 1. While Goblins loads fine, attempting to load Simon causes the system to reset itself. I initially noticed this on the latest stable 1.4.0 release, but also built a GIT daily build version boot disc - labeled "dc-master-adb53422" in the archive. The results were the same, and the Simon 1 demo still caused a reset.

Here's the pastebin for the stable 1.4.0 version. http://pastebin.com/yjjb6UCD

Below is the nullDC log for the GIT.

Ticket imported from: #3467523. Ticket imported from: bugs/5940.

Attachments (3)

scummvm_git-log.txt (21.2 KB ) - added by SF/stryfe-dc 12 years ago.
md5.txt (2.2 KB ) - added by digitall 12 years ago.
Simon 1 Demo Datafile listing with MD5sums
ini.txt (330 bytes ) - added by digitall 12 years ago.
ScummVM config file for this case

Download all attachments as: .zip

Change History (14)

by SF/stryfe-dc, 12 years ago

Attachment: scummvm_git-log.txt added

comment:1 by digitall, 12 years ago

The relevant part of the Null DC output is: <snip> User picked target 'simon1' (gameid 'simon1')... Looking for a plugin supporting this gameid... AGOS Starting 'Simon the Sorcerer 1' <...> loadGamePcFile: Can't load gamexx file 'gameamiga'! SB/HOLLY : System reset requested <end snip>

"loadGamePcFile: Can't load gamexx file 'gameamiga'!" is a fatal error from the AGOS engine used for Simon indicating either a problem with resource/datafile loading or a misdetection of the game variant.

Please can you identify the specific demo you are trying from: http://demos.scummvm.org/agos/

AND/OR attach a text file to this bug with a file listing of your Simon1 demo datafiles and associated MD5sums. The output of a tool such as http://md5summer.org/ would be optimal.

comment:2 by SF/stryfe-dc, 12 years ago

It's been a while since I've done this, so I forgot to test it out on a PC platform. I use Linux, but it doesn't have the latest stable available. I ended up running the Win32 binary through wine, and got the same results. Attempting to load this demo causes the program to crash.

Here's the scummvm.ini with the game demo version. http://pastebin.com/7h5vNW13

For some reason I can only attach once file per tracker item. Here's the game file list with the md5 sums. http://pastebin.com/SaQF9ctK

Hope this helps.

comment:3 by digitall, 12 years ago

Attaching these to the bug on your behalf...

by digitall, 12 years ago

Attachment: md5.txt added

Simon 1 Demo Datafile listing with MD5sums

by digitall, 12 years ago

Attachment: ini.txt added

ScummVM config file for this case

comment:4 by digitall, 12 years ago

OK... Compared files and this is the demo found at: http://demos.scummvm.org/agos/simon1-amiga-floppy-demo-en.zip

All the same files are there and the md5sums match, so the contents should be identical.. The only difference I can see is that your system has converted all the filenames to upper case, but this shouldn't be an issue as the AGOS engine _should_ load files case-insensitive... Will check this and refer to the engine developer if we have a file access issue here.

comment:5 by digitall, 12 years ago

Owner: set to zeldin

comment:6 by digitall, 12 years ago

Tested with all datafiles uppercase and as per mixed case from zipfile on Linux x86_32. No problem observed. This may be due to restricted number of file handles on the DC platform? Assigning this to the Dreamcast porter to investigate...

comment:7 by SF/stryfe-dc, 12 years ago

I just thought I'd reiterate that this demo came from the officially packaged Nero image o the ScummVM downloads page (engines A-Q). The only way I can see the case on the file-names changing is that when I copied them over from the disc, they were recognized as ISO9660 instead of Joliet, or UDF.

comment:8 by digitall, 12 years ago

stryfe-dc: Thanks, but I can't investigate any further myself as I don't have a Dreamcast. I am just doing bug triage as the Dreamcast porter is very busy IRL and may take some time to get to looking at this issue. I therefore also doubt he tested all the games on the CD prior to packaging, so this is probably not due to anything you have done. If you have the technical ability to compile your own DC builds (See http://wiki.scummvm.org/index.php/Compiling_ScummVM/Dreamcast) and do further debugging investigation yourself, that would be appreciated.

comment:9 by zeldin, 12 years ago

Hm, some thoughts on this:

* The ISO9660 filesystem implementation is case insensitive, so it can't be a file case issue

* I can reproduce the problem with the 1.4.0 release discs (I only tested gobliins, sorry...), but if I boot 1.3.0 and then swap discs to the 1.4.0 disc, then Simon starts. So the datafiles are ok.

The idea about file descriptors has some merit. 64 fds are supported, which should be sufficient, but maybe one of the engines has an fd leak in the detection function?

If you have time, could you please try the daily build again, but this time remove all the plugins except SIMON (and GOB, if you like) and see if this makes a difference? Because I _have_ tested Simon with the same code base as 1.4.0 (but a static build instead of plugins) and seen it working...

Thanks

comment:10 by zeldin, 12 years ago

Ok, found the problem (finally).

The filename "gameamiga" does not contain a period (.), which is a violation of ISO9660. Therefore, mkisofs will add a period at the end, resulting in the filename "GAMEAMIGA.". But since the engine tries to open "gameamiga", it wil not find "GAMEAMIGA.". The soltion is to add the flag -d when running mkisofs, allowing the filename "GAMEAMIGA".

I suppose the reason it worked earler is because the engine didn't need to open this file in older version?

comment:11 by zeldin, 12 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.