Opened 15 years ago

Closed 11 years ago

#4444 closed defect (fixed)

NIPPON: wont start in Dreamcast port

Reported by: SF/scorches-forge Owned by: zeldin
Priority: normal Component: Engine: Parallaction
Version: Keywords:
Cc: Game: Nippon Safes

Description

This issue happens with Nippon Safes Inc., DOS version.

I have encountered an issue where Nippon Safes Inc. game wont load. It occurs in the last stable DC build version"0.13.1", and the recently added SVN "1.0.0svn42599" version.

I've double-checked the required datafiles section to make sure I copied everything I needed from the discs. The game will appear in the selection menu as the multilingual DOS version, but after selecting the game, the system just resets itself.

That pretty much sums it up. It wont start, and I can't figure out why...

This issue doesn't occur in the latest stable, or svn windows build.

Ticket imported from: #2825128. Ticket imported from: bugs/4444.

Attachments (1)

nipponlog.7z (53.1 KB ) - added by SF/scorches-forge 15 years ago.
NullDC generated text

Download all attachments as: .zip

Change History (26)

comment:1 by fingolfin, 15 years ago

Maybe this game is simply not enabled in the DC port. Marcus?

comment:2 by fingolfin, 15 years ago

Owner: set to zeldin
Summary: Nippon Safes wont start in Dreamcast portNIPPON: wont start in Dreamcast port

comment:3 by fingolfin, 15 years ago

Owner: changed from zeldin to peres

comment:4 by fingolfin, 15 years ago

Or maybe it is enabled (considering that it seems to be detected); still it crashes immediately... maybe Marcus has an idea why. Maybe something simple, like the game requesting a huge amount of RAM right from the start... Peres might know about that :)

comment:5 by zeldin, 15 years ago

The Parallaction engine is enabled, but I notice that the filename for the plugin ("PARALLACTION.PLG") does not conform to ISO9660 Level 1 requirements (8+3). Because of this, it is imporant to enable use of Level 2 when mastering the CD (using e.g. -l in mkisofs), or the filename will be truncated and ScummVM will not find the file when trying to open with the full filename.

Was the test with 0.13.1 performed with a disc created from the Nero image, or from the plainfiles?

comment:6 by zeldin, 15 years ago

OTOH, if the game is detected, then there is no problem with loading the plugin either...

comment:7 by zeldin, 15 years ago

I tired running the Amiga Demo, and it starts, but it takes a rather long time to do so. The reason is that the engine speculatively tries to open 100 savefiles instead of using listSavefiles(). Depending on the number of memory cards attached, doing so may take several minutes.

But I guess this is not the reported problem, as the poster mentions a reset. So it seems the actual game is needed to reproduce, not just the demo.

comment:8 by peres, 15 years ago

Marcus: the engine is looking for the 100 savefiles to check their filenames. My first naming scheme was not standard, so I had to change it. In the process, I added some code to convert old names to new ones so that compatibility is not broken. Maybe we can trash that code now, but I would like to hear our mighty leads about it. Anyway, I think you're right when you say it is not related with the bug itself.

Is there any way to run ScummVM with debug settings? Or can we try it with a Dreamcast emulator somehow?

comment:9 by fingolfin, 15 years ago

Trying to open 100 savefile will cause problems on several ports; which is why we have the listsaves API. Why can't you use that API to check for files with your old non-standard name, I wonder? Looking at your code, you are looking for files named "game.%i", with a numerical suffix. Well, then change the code to first do a listSavefiles("game.*"), then only try to "convert" those games that actually occur in this list.

comment:10 by SF/scorches-forge, 15 years ago

I used the plain files, sorry bout that.

I created the disc with Bootdreams, which uses mkisofs. I had all ISO options enabled: Full filenames (-l), Joliet (-J), Rock Ridge (-r).

comment:11 by peres, 15 years ago

scorches-forge:

1) does the game work if you use the normal image instead of the plain files? 2) any chance of running ScummVM into a DC emulator? You could be able to get some debug output useful to find out what the problem is.

comment:12 by SF/scorches-forge, 15 years ago

Okay I downloaded the latest version "1.0.0pre043157", and tested it with the same results. It was recognized in the menu, but wouldn't load.

I do not know how to use the debugging features of the DC emulators, so all I could do was take a snapshot of the command window in NullDC when the game failed to load from the menu.

NullDC (ScummVM Nippon error pic) http://img21.imageshack.us/img21/8229/nipponerror.jpg

comment:13 by peres, 15 years ago

Your intention was good, but the results weren't ;). The text in the picture is unreadable because of the ultra-low resolution, and not all the output text would be visible in that small window anyway.

Please redirect the output of the emulator to a text file and attach that instead. It looks like you're using windows, so you may try the following:

nulldc >nipponlog.txt 2>&1

Of course you will need to use a console to type the command line. The emulator will write all its text output to a file called nipponlog.txt, which you should then attach to this thread.

by SF/scorches-forge, 15 years ago

Attachment: nipponlog.7z added

NullDC generated text

comment:14 by SF/scorches-forge, 15 years ago

Okay one last late check in. I attached a 7zipped text file after running the command line you asked, but I had to sop it manually as it kept increasing in size (well over 400MB).

I hope it has enough to work with.

I've now attempted to do this with the 0.13.1, and two different 1.0.0 testing versions plainfiles. I also attempted building with Bootdreams 1.0.6b & Dir2Boot, and unlike almost any other port using a HD, the DC can only use cd-rs.

So, I'll not be wasting any more discs on this right now, sorry.

comment:15 by fingolfin, 15 years ago

Peres, did you have a look at the file Scorch attached?

comment:16 by fingolfin, 15 years ago

Peres?

comment:17 by digitall, 11 years ago

Owner: changed from peres to zeldin

comment:18 by digitall, 11 years ago

@marcus_c: Just tried both the NS Amiga Demo and NS Amiga full game with the latest buildbot dc-serial-master-9afeafd3. These both crash out at startup with the following trace:

User picked target 'nippon' (gameid 'nippon')... Looking for a plugin supporting this gameid... Parallaction Starting 'Nippon Safes Inc.' Disk_ns::addArchive() couldn't find archive 'disk0'! EXCEPTION AT (void )0x8c0c96dc {pr = (void )0x8c0c96d8} : 000000e0 r0 = 0x00000000, r1 = 0x8c2f8a7c, r2 = 0xffe8000c, r3 = 0x4328e3ff r4 = 0x00000000, r5 = 0x000000dc, r6 = 0x8c3950f4, r7 = 0xfff3b9c8 r8 = 0x00000000, r9 = 0x8cffef14, r10 = 0x8c2ff638, r11 = 0x8c4aef38 r12 = 0x00000000, r13 = 0x8c4aef40, r14 = 0x00000002, r15 = 0x8cffeb04

Running sh-elf-addr2line -e scummvm.elf 0x8c0c96dc gives: /opt/buildbot/slave/master-dc-serial/build/../../src-master/src/engines/engine.cpp:87

comment:19 by digitall, 11 years ago

Right. Adding _taskbar=no; to the dreamcast section of configure prevents the exception, but you still get the previous error and ScummVM exits to the Dreamcast menu.

So the issue here is an engine error of: Disk_ns::addArchive() couldn't find archive 'disk0'!

However, both demo and full version have the disk0 file present... Will need to investigate to work out why this is not being found.

comment:20 by zeldin, 11 years ago

@digitall: Did you read the comments on the first page about ISO authoring?

Although in this case, it's probably -relaxed-filenames you need rather than -l, since "disk0" is not too long, but is missing a "." to conform to ISO 9660 requirements.

See http://wiki.scummvm.org/index.php/Dreamcast#Notes_on_CD_mastering

comment:21 by digitall, 11 years ago

Ah.. I did read the notes on ISO formatting, but only the part about -l and I am using that ie. mkisofs -l -C 0,11702 -o tmp.iso cd-image

Will try remastering a new CD and see how I get on then.

comment:22 by digitall, 11 years ago

Nope. Still the same error when I master the CD with -relaxed-filenames. :/

Will add some debug output to Parallaction's disk_ns.cpp code to see if we can see what is going on here.

comment:23 by digitall, 11 years ago

Ah. Worked out the cause of this. This is the same issue as the reason why some versions of Simon2 (AGOS engine) are failing: http://forums.scummvm.org/viewtopic.php?t=13490

The file "disk0" has a trailing dot on CD and this had a workaround for this issue in the file access code which was broken recently: " I did a bisection on this as my English CD version has these trailing dots.

This was broken by this commit: commit 5346ac18b7e33a603aa2743fa57f430d96cdbc33 Author: Travis Howell kirben@optusnet.com.au Date: Sun Aug 28 00:40:55 2011 +1000

AGOS: Integrate InstallShield support.

The installshield support changed the resource code such that it bypassed the workaround in Common::File::open(). :/"

comment:24 by digitall, 11 years ago

This issue seems to be a general problem with any datafile with no suffix will have a trailing period added if it is placed on an ISO9660 file system or passed via one i.e. mastered to CD.

There is a workaround for this for Dreamcast, by passing the -d option to mkisofs. From the man page for mkisofs: -d Omit trailing period from files that do not have a period. This violates the ISO-9660 standard, but it happens to work on many systems. Use with caution.

I remastered the CD with this option and the result starts both NS Amiga full version and demo fine. Will document on the relevant wiki page.

However, a gfx issue occurs which results in the vertical height of the Ego, Items and all Text to be compressed. Will try to trace down.

Closing this bug as fixed as NS now starts fine with this option.

comment:25 by digitall, 11 years ago

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