schellingb / dosbox-pure

DOSBox Pure is a new fork of DOSBox built for RetroArch/Libretro aiming for simplicity and ease of use.
GNU General Public License v2.0
732 stars 61 forks source link

Suggest: Possibility set default D: letter for CD-ROM games. #308

Open gordon81-afk opened 1 year ago

gordon81-afk commented 1 year ago

Hello,

Some games required D letter for cd-rom checking, and many games like moto racer 2, midtown madness 2, Pitfall Mayan Adventure and Wipeout XL wont launch if D letter for cd-rom is used.

retroarch-2022-07-13-12-57-25

It is possible add D letter for CD-ROM?

Thank you!

TradeDraft commented 1 year ago

Could be Possible fix for this Issue:

https://github.com/schellingb/dosbox-pure/issues/295

PoloniumRain commented 1 year ago

Wipeout 2097/XL has the same issue on real hardware, so i don't think it's a copy protection issue. Looks like it needs D: for the CD-ROM drive... Embarrassing coding. Using a no-CD crack will fix it but then there's no music, which is obviously a big part of the Wipeout games. It also runs too fast unless you set the exact correct CPU speed. It's a poor port.

I'd recommend the original PSX game with the DuckStation core, which can massively enhance the graphics too. Plus if you go to core Options > Advanced Settings > Internal Run-Ahead and set it to 5 frames it will entirely eliminate input lag.

PoloniumRain commented 1 year ago

I just got 2097 working with the E: drive, it's not ideal but if you still want to play it.... There's a specific no-CD crack by Mad Cracker that will also play music from any disc drive. But obviously i can't link it here. There's apparently also a patch that fixes the game speed, which i can't find. BTW this port lacks the licensed music from the original PSX game, so no Prodigy or Chemical Brothers :(

schellingb commented 1 year ago

When working on the recent version with the OS install option I actually wanted to have the CD drive as D: and the second hard drive as E: but I couldn't make that work in Windows, it always listed the hard drives first. Which I guess is similar how it works in DOS where MSCDEX allocates the CD-ROM drive letter to be any free letter after hard and floppy disks.

So I'm not sure there is a way except an option to remove the entire D: drive.

A way you can get rid of the D: drive with the current version is by extracting the tiny dummy hard disk IMG file from this ZIP: NOPARTITION.img.zip, and place it next to your content. For example if you have a game with CD image(s) in R:\GAMES\Wipeout XL (1996).zip then you can have that IMG file as R:\GAMES\Wipeout XL (1996).zip.img. Similarly if you launch an ISO or CUE file directly from R:\GAMES\Wipeout XL (1996).iso it would need to be placed as `R:\GAMES\Wipeout XL (1996).iso.img. Now when launching it in DOSBox Pure into Windows 95 or 98, there won't be a D: hard drive and the CD-ROM should become D:.

TradeDraft commented 1 year ago

Which File we Load From @schellingb ?

spikeyxx commented 1 year ago

When working on the recent version with the OS install option I actually wanted to have the CD drive as D: and the second hard drive as E: but I couldn't make that work in Windows, it always listed the hard drives first. Which I guess is similar how it works in DOS where MSCDEX allocates the CD-ROM drive letter to be any free letter after hard and floppy disks.

So I'm not sure there is a way except an option to remove the entire D: drive.

A way you can get rid of the D: drive with the current version is by extracting the tiny dummy hard disk IMG file from this ZIP: NOPARTITION.img.zip, and place it next to your content. For example if you have a game with CD image(s) in R:\GAMES\Wipeout XL (1996).zip then you can have that IMG file as R:\GAMES\Wipeout XL (1996).zip.img. Similarly if you launch an ISO or CUE file directly from R:\GAMES\Wipeout XL (1996).iso it would need to be placed as `R:\GAMES\Wipeout XL (1996).iso.img. Now when launching it in DOSBox Pure into Windows 95 or 98, there won't be a D: hard drive and the CD-ROM should become D:.

I've done this with Wipeout 2097 (Redump Verified) and it still gives a the following error:

"Wipeout 2097 CD Validator" "Make sure Wipeout 2097 CD is in the CD Drive."

Can't get in game due to this.

UPDATE:

Just checked with Thief the dark project - same problem - CD not recognized.

killer1500nw commented 1 year ago

It technically is a form of copy protection, the game checks for Redbook Audio (the cd tracks) and there is simply no way to copy them to an HDD in Win 9x. So back in the day you couldn't just pass the game onto a mate and copy the game to a HDD and hand it back without a No-CD crack, as there is no way to copy the Redbook Audio tracks inside of Windows 95.

Pitfall would be perfect to copy to a HDD back in the day due to its size for example (and it does works from a HDD, along as it reads the redbook audio tracks from D drive) .

rishooty commented 1 year ago

If i recall correctly from my prior 98 builds, USB drives and actual zip drives (despite being called image-zip, its not actually recognized as a zip drive, just as another hard drive) come after the CD drive so long as they're mounted after.

Like if you have your usb plugged in before start your computer, it should show up first. But if you started your computer and plugged in your usb after, it would show up after the CD drive. There was also this very messy dos/9x application that let you force drive letters on boot by doing this mount order for you, I forget what it's called.

Maybe make the D: drive show up as a usb or zip, and add a small delay as to when it gets added? Maybe 2 seconds or so?

DJoneK commented 1 year ago

I figured this out. It's not that the games look for the CD on the D: drive. It's just that there's something weird going on with the way either dosbox-pure or RA loads discs with multiple binary tracks. It seems to look for something that is not properly loaded and it fails to detect the CDs. If you merge the multiple tracks into a single bin/cue, they load just fine. I used Isobuster to convert/merge/redump (however you want to call it) into a single bin/cue by loading the multitrack cue, then right-click CD, Extract CD , RAW (.bin, .iso). Using the new merged image will allow them to load in just fine.

So far on my end, all the instances where it fails to detect the CD in the drive is due to this. Copy protection like Safedisc is another matter though.

As a side note, I never tried Wipeout XL. I did try Pitfall and Thief, and numerous others that gave me that same error like Secret of Monkey Island, Half-Life and others I forget.

rishooty commented 1 year ago

@DJoneK You may be right for those particular games, but there are some like heroes of might and magic 2 and 3 which so aggressively look for the d: drive that the only way around it back then was to edit a registry key to make it point to somewhere else, and even then it didn't always work.

TradeDraft commented 1 year ago

So far on my end, all the instances where it fails to detect the CD in the drive is due to this. Copy protection like Safedisc is another matter though.

I found when using Windows 98 you use Daemon Tools and can get around like Safedisc.

Though I don't know when using Dos Games though

You may be right for those particular games, but there are some like heroes of might and magic 2 and 3 which so aggressively look for the d: drive that the only way around it back then was to edit a registry key to make it point to somewhere else, and even then it didn't always work.

I had no Problem with 2nd Game but Had to use Daemon Tools to play the 3rd Game on Windows 98

DJoneK commented 1 year ago

I tried all first 3 Heroes of Might and Magic games and they worked without any issues on Win98 SE using the default loading method. My images are inside .zip files. Didn't even have to merge the discs with audio tracks into a single bin/cue. Maybe it's a difference in regions?

Anyway, I know some games may need the CD to be the D: drive, I just wanted to point out that most errors that fail to detect the CD drive can be worked around by merging multi-track images into a single bin/cue.

alexb3d commented 1 week ago

I previously commented here...

For all the games mentioned here:

-. DOSBox does not support CUE+Multiple BINs, you have to convert them to CUE+Single BIN. The way is to compress it to CHD and then to CUE+BIN. When compressed to CHD, it is automatically converted to single CUE+BIN. In linux from the terminal it looks like this:

CUE to CHD: chdman createcd -i "input file.cue" -o "output file.chd" CHD to CUE: chdman extractcd -i "input file.chd" -o "output file.cue"

-. Early copy protections were easy to bypass., you just had to change the default directory.

-. There are games that can only be installed by updating the CD-ROM driver, in My PC > Drivers > blah, blah, blah...