VOGONS


First post, by ErikGG

User metadata
Rank Member
Rank
Member

Creating a bin/cue using ISOBuster for my Tomb Raider CD resulted in an unuseable cue file. But this is ISOBusters fault.

Anyways, after fixing the cue from ISOBuster (setting mode 1 and changing CDR to Audio), I mounted the Tomb Raider cue file using ImgMount with the -t iso flag.

Starting DOSBox with the conf file resulted in a crash
(With the Windows XP "Let MS know about the error maybe we can fix this in the future" dialog).
After checking the cue file again, I found that ISOBuster had created a cue file not "linked" to the bin file.

FILE "CD.bin" BINARY

While the bin file was called "track1.bin".

Changing the CD.bin to 1_trackk1.bin fixed it.

Erik.

Last edited by ErikGG on 2007-10-20, 00:04. Edited 1 time in total.

Read the new FAQ.doc

Reply 1 of 22, by dh4rm4

User metadata
Rank Oldbie
Rank
Oldbie

Your title is ambiguous. The way you've worded it assumes that DOSBox is at fault while in truth you're feeding it a bum file. Maybe DOSBox's error trapping could be better but the reality is that some apps will crash when being given incorrect config data.

Reply 3 of 22, by ErikGG

User metadata
Rank Member
Rank
Member

I get this every day as a tester.

The question wether an application should out an error or the user should know that the file used contains an errors and thus should expect errors is up to the answer on the question how far do the analysts/developers want to go in making their application error/dumb proof.

And I concurr with wd.

Erik.

Read the new FAQ.doc

Reply 4 of 22, by `Moe`

User metadata
Rank Oldbie
Rank
Oldbie

dh4rm4: An application crashes is always a bug. This has nothing to do with what data it is being fed. An application must always gracefully cope with malformed input. After all, it is being used by the nr. 1 source of garbage input, humans.

Reply 5 of 22, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

There's one major point where i don't agree that being bug-free is the top goal:
when it affects performance very badly. There are lots of cases in dosbox where
you could go for correctness, but it simply isn't feasible.
But imgmount surely isn't such a case, so hoping to find some time to get into this 😉

Reply 6 of 22, by `Moe`

User metadata
Rank Oldbie
Rank
Oldbie

Well, a crash is performance relevant: it can kill all data (game state, whatever) you have created in that session so far. All performance doesn't help if at the end that, which was "created" by that performance is lost.
(Example (not DOSBox but a game itself, that crashes): the totally annoying crashes I get in Alien Legacy that negated hours of gameplay...)

Not implementing features is perfectly valid, of course, but in no case should dosbox itself crash. Note that I don't consider "E_Exit" a crash. It is an unrecoverable(!) error that is cleanly handled, even though it might look like a crash, and even though it is not the most user-friendly action.

Reply 7 of 22, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

the totally annoying crashes I get in Alien Legacy

Dunno about that, sounds like a "regular" bug. Was more thinking of
for example that game Greedy (writing over pmode segment limits
and requiring pagefaults to bank-switch during drawing routines).

Reply 9 of 22, by ErikGG

User metadata
Rank Member
Rank
Member

The question wether an application should out an error or the user should know that the file used contains an errors and thus should expect errors is up to the answer on the question how far do the analysts/developers want to go in making their application error/dumb proof.

Seems the answer is a tough nut to crack?
For me it would come down to priorities and these differ from person to person.

Erik.

Read the new FAQ.doc

Reply 11 of 22, by njaydg

User metadata
Rank Member
Rank
Member
wd wrote:

I only get nice error messages,
but never anything close to a crash.

Same here. I've created plenty of bin/cue images of DOS games to use in DOSBox and in a "worst case scenario", when I tried loading it through the CUE file, DOSBox just gave me a simple message (in the command line) that it couldn't load the image due to some unspecified error (can't remember the exact message).

In fact, DOSBox detects a faulty (bin/cue) image far better than most Windows applications. I had a few cases that UltraISO/Alcohol/etc would load up the image just fine and only in DOSBox some small errors/faults got detected.

By reviewing the image creation process (sometimes trying another app), the problem was solved and DOSBox loaded the bin/cue just fine.

So ErikGG, either the CD/game has some tricky protection scheme that DOSBox can't (easily) handle (hope it's not another FIFA), or you just created a faulty image. Maybe someone else has the game and could also verify this?

Reply 12 of 22, by ErikGG

User metadata
Rank Member
Rank
Member

The crash can be generated using the attached cue file.

I also added the conf file used to start DOSBox.

DOSBox 0.72 was used.

In Windows XP : Can we fix this dialog.
In Windows 2K : AV-error referencing to a null pointer.

Edit : Just found out that DOSBox doesn't crash if you keep only the mount of the cue file.

Erik.

Attachments

  • Filename
    Tomb.conf.txt
    File size
    1.42 KiB
    Downloads
    402 downloads
    File license
    Fair use/fair dealing exception
  • Filename
    1_trackk1.cue.txt
    File size
    477 Bytes
    Downloads
    422 downloads
    File license
    Fair use/fair dealing exception

Read the new FAQ.doc

Reply 13 of 22, by njaydg

User metadata
Rank Member
Rank
Member
ErikGG wrote:

Edit : Just found out that DOSBox doesn't crash if you keep only the mount of the cue file.

When using a BIN/CUE pair (I'm refering within DOSBox, but also applies to the actual OS), one is "supposed" to mount directly the CUE file, as it points to the BIN image (in this case, also manages the use of the audio tracks).

What is the actual message you get by mounting the CUE?

Also, have you tried creating the image through another program? And does changing the mounting parameter " -t iso " to " -t cdrom " makes any difference?

Oh, and I've sometimes had problems loading this type of images in long paths, especially the ones likes "documents and settings" that are converted to 8 charactes inside DOSBox.

Last edited by njaydg on 2007-10-12, 08:23. Edited 1 time in total.

Reply 14 of 22, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

And does changing the mounting parameter " -t iso " to " -t cdrom " makes any difference?

Don't bother. It is identical. ( I added -t cdrom as I always typed it instead of iso.)

Here is the code:

if(type == "cdrom") type = "iso"; //Tiny hack for people who like to type -t cdrom

No hidden magic.

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

Reply 15 of 22, by njaydg

User metadata
Rank Member
Rank
Member

Thank you for clarifying that for me, Qbix!

That's the joy of this forum... Almost everyday I keep learning new things. 😀

*** EDIT ***

Qbix, could what I mentioned above about mounting images stored in long paths (and directories with converted names - more than 8 chars) be causing this? It has happened in the past and the only workaround was changing the file path (can't remember if I changed the image name itself, as it also happened with images with converted names).

Reply 16 of 22, by ErikGG

User metadata
Rank Member
Rank
Member

njaydg thanks for the help but I'm not having any trouble mounting the image...

After checking the cue file again, I found that ISOBuster had created a cue file not "linked" to the bin file. Code: FILE "CD.bi […]
Show full quote

After checking the cue file again, I found that ISOBuster had created a cue file not "linked" to the bin file.
Code:
FILE "CD.bin" BINARY
While the bin file was called "track1.bin".
Changing the CD.bin to 1_trackk1.bin fixed it.

I only found that using DOSBox 0.72, starting it with the conf file posted above, together with the above cue file, makes it crash with and Acces Violation referencing a null pointer.

Is this reproducable on other systems?

Erik.

Read the new FAQ.doc

Reply 17 of 22, by MiniMax

User metadata
Rank Moderator
Rank
Moderator
njaydg wrote:

Qbix, could what I mentioned above about mounting images stored in long paths (and directories with converted names - more than 8 chars) be causing this?

I don't think so. The problem there is with the command line buffer being of limited length, so the (img)mount command only sees a partial mount specification.

ErikGG wrote:

Is this reproducable on other systems?

I will give it a try.

DOSBox 60 seconds guide | How to ask questions
_________________
Lenovo M58p | Core 2 Quad Q8400 @ 2.66 GHz | Radeon R7 240 | LG HL-DT-ST DVDRAM GH40N | Fedora 32

Reply 18 of 22, by gulikoza

User metadata
Rank Oldbie
Rank
Oldbie

Yes, I've seen these crashes, but never been able to reproduce them. But it also happens with Erik's cue file

Program received signal SIGSEGV, Segmentation fault.
0x00000000 in ?? ()
(gdb) bt
#0 0x00000000 in ?? ()
#1 0x0046c243 in CDROM_Interface_Image::GetRealFileName(std::string&, std::string&) (this=0xa409958, filename=@0x22aeb0, pathname=@0x22b2b0)
at cdrom_image.cpp:608
#2 0x0046e683 in CDROM_Interface_Image::LoadCueSheet(char*) (this=0xa409958,
cuefile=0xa409904 "1_trackk1.cue ") at cdrom_image.cpp:484
#3 0x0046f56d in CDROM_Interface_Image::SetDevice(char*, int) (
this=0xa409958, path=0xa409904 "1_trackk1.cue ", forceCD=-1)
at cdrom_image.cpp:165
#4 0x00470f24 in CMscdex::AddDrive(unsigned short, char*, unsigned char&) (
this=0xa3fae40, _drive=3, physicalPath=0xa409904 "1_trackk1.cue ",
subUnit=@0xb3aa7c1) at dos_mscdex.cpp:305
#5 0x00473350 in MSCDEX_AddDrive(char, char const*, unsigned char&) (
driveLetter=68, physicalPath=0xa409904 "1_trackk1.cue ",
subUnit=@0xb3aa7c1) at dos_mscdex.cpp:1215
#6 0x0048aada in isoDrive::UpdateMscdex(char, char const*, unsigned char&) (
this=0xb370048, driveLetter=68 'D', path=0xa409904 "1_trackk1.cue ",
subUnit=@0xb3aa7c1) at drive_iso.cpp:234
#7 0x0048b640 in isoDrive::isoDrive(char, char const*, unsigned char, int&) (
this=0xb370048, driveLetter=68 'D', fileName=0xa409904 "1_trackk1.cue ",
mediaid=248, error=@0x22bf08) at drive_iso.cpp:154
#8 0x006525ef in IMGMOUNT::Run() (this=0xa409778)

http://www.si-gamer.net/gulikoza

Reply 19 of 22, by MiniMax

User metadata
Rank Moderator
Rank
Moderator

Confirmed. Crashes 0.65, 70, 71, 72 and a recent CVS version.

DOSBox 60 seconds guide | How to ask questions
_________________
Lenovo M58p | Core 2 Quad Q8400 @ 2.66 GHz | Radeon R7 240 | LG HL-DT-ST DVDRAM GH40N | Fedora 32