VOGONS


First post, by Big Fat Tony

User metadata
Rank Newbie
Rank
Newbie

Hey Guys.

Trying to run Fragile Allegiance on Dosbox. It all appears ok, but when I try to enter the construction menu it crashes to 'DOS' and tells me that it can't find _MA\_MA. The file is missing from C:\Fragile\_MA but does exist in D:\_MA\_MA

Motherboard - No Idea, but it is on a Dell Inspiron 6400
Processor type and speed - Core 2 Duo T5300
Video board w/ RAM amount and type - Nvidia GeForce Go 7300. Not sure about ram
Sound board - No Idea, but it is on a Dell Inspiron 6400
Operating system - Windows 7 Professional 64bit SP1
Game name (and version, if applicable) - Fragile Allegiance
Description of problem - Game crashes when entering construction menu
Reproducibility of problem - Always
Sound mode used - default
Video mode - default
Version of emulator - Dosbox 0.74
Steps already attempted to solve the problem - tried copying the _MA file to the C: drive, but it won't do it. tried following the no CD guide on http://www.dosbox.com/comp_list.php?showID=236&letter=F but no luck. Tried dumping an iso via dd if=\\?\Device\CdRom0 of=fragile.iso bs=1M and then IMGMounting but no luck.

Note: I am using the real CD. not a copy, nor one of the isos that you can find on the internet.

EDIT: Erm, just realised that I can get round this by copying the file in Windows. Not sure if this is the best way to do it, or THE way or just a bad idea as it doesn't tell me if I'll run into this problem again later. Can anyone cleverer than me confirm if this is a good idea?

Reply 1 of 12, by Jorpho

User metadata
Rank l33t++
Rank
l33t++

What are the "mount" lines you are using?

Reply 2 of 12, by Big Fat Tony

User metadata
Rank Newbie
Rank
Newbie

I've tried doing this in a couple of ways and used:

when mounting the real CD

mount c c:\dosbox\c
mount d d:\ -t cdrom

When using the aforementioned dd'd image

mount c c:\dosbox\c
imgmount d c:\dosbox\d\fragile.iso -t iso

Really quite strange. the config.ini is all correct (stating SourcePath=D: DestinationPath=C:\FRAGILE), the CD is mounted to d: and the _ma\_ma file exists within D:\.

After inspecting the INSTALL.INI that comes on the Fragile Allegiance CD, I notice that for the installer is supposed to for all installs:

copy %SourcePath%\_ma\*. _ma

and then on a Maximum install it is supposed to:

copy %SourcePath%\_ma\*.vid _ma

I think this could be a potential bug in Dosbox, or at the very least, a badly written script that Dosbox can't handle correctly. The _ma folder on the CD ONLY contains *.vid files with one exception, being the _MA file (no extension). I'm guessing that the _MA file should be copied over when copying _ma\*. _ma but it should ignore the .vid files.

in fact, if I do a dir d:\_MA\*. it only outputs the _MA file. However, if I do a copy d:\_MA\*. C:\FRAGILE\_MA I get D:\_MA\*.\*.* not found, which would imply a bug in the copy command. What are your thoughts?

EDIT: Looks like it is a bug with newer versions of Dosbox. Tried it with Dosbox 0.65 and it works fine and copies files correctly. 0.74 misses it.

EDIT 2: After a bit of messing with the source, getting rid of:

if (attr & DOS_ATTR_DIRECTORY && !strstr(source_p,"*.*"))
strcat(source_x,"\\*.*");

from around Line 598 in src/shell/shell_cmds.cpp appears to fix the problem (tested in arch linux, though as I haven't got a decent C++ development set up on my Windows PC). Editing it to

if (attr & DOS_ATTR_DIRECTORY && !strstr(source_p,"*.*") && !strstr(source_p,"*."))

keeps the functionality that these lines of code provide and also fix this issue too.

Any thoughts?

EDIT 3: Just something of note, a few files get missed because of this, not just the one from _MA. I haven't got a definitive list, but other files that get missed include those from _ZOOM, _INTRO, and more. The above fix does correct this.

EDIT 4: Last edit, I promise. That line of code appears at line 606 of the SVN trunk

Reply 3 of 12, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

I recall something on the beta forum about this as well. Got to check. Thanks for investigating

Water flows down the stream
How to ask questions the smart way!

Reply 4 of 12, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

The issue with the FA CD install was previously reported. The *. finds the dot dirs in a sub directory, which have the directory attribute, so *.* is added for a dir copy. Any term that finds the dot dirs will have the same problem, like ? or * for example.

The solution proposed was to use

&& !strpbrk(source_p,"*?")

instead of

&& !strstr(source_p,"*.*")

because *.* should not be added for a dir copy if wildcards are already present.

Reply 5 of 12, by Big Fat Tony

User metadata
Rank Newbie
Rank
Newbie

FYI, I have tested Ripsaw's edit on the SVN code and it works fine. A lot tidier than my edit too 😀

Reply 6 of 12, by Gamecollector

User metadata
Rank Oldbie
Rank
Oldbie

Missed files are d:\_ma\_ma, d:\_scitek\_scitek and d:\_zoom\_zoom.
Manual copying is a temporal solution. We all are waiting version 0.75. 😀
Tnx for this info.

Reply 7 of 12, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author
The solution proposed was to use […]
Show full quote

The solution proposed was to use

&& !strpbrk(source_p,"*?")

instead of

&& !strstr(source_p,"*.*")

Maybe that could/should be limited to "occurrence of * after \" but i don't mind the strpbrk with *? either.

Reply 8 of 12, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

I think a wildcard in the path before the last \ should not be tolerated in any case (DOS would say path not found), but no point making things more strange by maybe adding *.* to it. 😉

Reply 10 of 12, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

the strpbrk has been commited.

Water flows down the stream
How to ask questions the smart way!

Reply 11 of 12, by SJD

User metadata
Rank Newbie
Rank
Newbie

Hi
I had the same problem, every things where ok but when I tried to enter the construction menu it crashed to 'DOS' and told me that it can't find _MA\_MA. The file is missing.
I tried to copy _MA file from CD to that direction, but the problem persists, but when I copy and replace all the files in _Ma folder form CD into _Ma folder in the installation path, the problem fixed!!!! 😕 😀 😀 😀 😀
Now the game runs with dosbox 0.74 with no problem.
I don't know my CD is original or rip, I just download this CD game from a torrent link for free 🤣

Reply 12 of 12, by SKARDAVNELNATE

User metadata
Rank Oldbie
Rank
Oldbie
SJD wrote:

I don't know my CD is original or rip, I just download this CD game from a torrent link for free 🤣

Then it is obviously not an original.