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
770 stars 65 forks source link

DOS games that don't launch when being moved from their original install location #87

Open TradeDraft opened 3 years ago

TradeDraft commented 3 years ago

Got Fallout but when I try to run the Game it. Message comes up just saying they it can Detect the CD.

Is this Fixable.

Video showing it doing it in other Games:

https://www.youtube.com/watch?v=-FvDOzQ-SVI

Tasosgemah commented 3 years ago

Can't make Elder's Scrolls Daggerfall work. DosBox pure does not detect the CD for this game also.

Are there any written instructions on how to do it? Because i can't understand what he is talking about with this accent.

TradeDraft commented 3 years ago

Also found Constructor comes up and says "Error = Constructor CD must be in the Drive"

bigroy00 commented 3 years ago

I got fallout to work, just put the bin and cue files in a folder called cd and zip it up into a file called fallout.zip Run this through pure and in the puremenu run the install.exe, you can use minimum install option then setup your soundcard with autodetect This will create all the files needed to run, then exit the game Run fallout.zip through pure and select fallout.exe to autoboot Optionally you can copy the contents of retroarch\saves\fallout.save.zip back into your original fallout.zip to make it standalone

schellingb commented 3 years ago

While most DOS games don't care where they were installed and can be moved around freely on the harddrive, some of the games mentioned in this issue are all well known as being picky about installation location and CD mount point or disc label.

I can't give specific help about these game distributions but what I learned is that {REDACTED} (Admin: removed reference to piracy) is quite incoherent.

The way DOSBox Pure handles ZIP files that have nothing but a single directory in the root, it will mount that directory as C: drive. Which, for these 3 examples, ends up breaking Fallout and Daggerfall but fixing Orion Burger. One could fix Fallout and Daggerfall by adding any file (an empty text file would work) to the root of their ZIP files which would cause the root directory to be mounted as the C: drive.

One possible solution I can think of is to mount the single directory in two points. For example Fallout would mount the fallout1 directory under both C:\ and C:\fallout1\. Though this would end up doubling all items listed in the start menu, so it should be optional and rather confusing without a lengthy explanation like this.

Another more comprehensive but more complex solution would be to create a list of all known games that are picky like this and make DOSBox Pure read the configuration files (for example it would read the line path C:\ESdagger\arena2\ from Daggerfall's Z.CFG and know where it needs to be mounted. But that would need some help from people who can help with testing and have more games than I do.

TradeDraft commented 3 years ago

@bigroy00 did that and I get same Result saying no CD Detected

TradeDraft commented 3 years ago

@schellingb The 1st Solution sounds be the Quickest way of Fixing it sounds. Though would it effect other games?

The 2nd ones guess you need to find People to help you with that Project

schellingb commented 3 years ago

@TradeDraft The 1st solution is the one I could come up with that doesn't break anything (no saves that people might already have in the current version). But it would end up showing everything twice in the start menu for any ZIP that has only one folder in its root. Which means every game coming from that {REDACTED} (Admin: removed reference to piracy) as far as I can tell. Not great.

So maybe I can try implementing that solution but for now only apply it when a content with "fallout" or "daggerfall" gets loaded. They are well known DOS games with high chance of people wanting to play so it makes sense to focus on them first.

Tasosgemah commented 3 years ago

Yeah, a per-game solution would be good. With enough people reporting, most of the ones that need it will be covered.

TradeDraft commented 3 years ago

@schellingb I agree that doing that be the Best Way of Doing it and Daggerall and Fallout are 2 games where lot of People want to Play

@Tasosgemah so be reported the Word has to go our to ask people IF this happens where to Report it

bigroy00 commented 3 years ago

@TradeDraft I have recorded a video here: https://youtu.be/tgFv4JtwLu8 (the sound is choppy because I am running in a window in order to record the video)

bigroy00 commented 3 years ago

As far as Daggerfall is concerned, look for the iso version, then you can use the same method as Fallout

TradeDraft commented 3 years ago

Thanks for the Video @bigroy00 that made lot more Sense to me.

But Today I have found a Way to make them work on Dosbox Pure.

I use D-Fend Reload to Install the Game from CD thru the Wizards.

Install it and have it Add the CD Image.

Then I go to the Vitrual HDD Folder where games are Installed. Then I just Zip the Folder Up and Run the Zip File thru Dosbox Pure and it Loads Fine.

Worked on Both Fallout and Daggerfall

schellingb commented 3 years ago

List of games that don't run from C:\ or have specific paths in some config file:

I still have no idea how to tackle this and have these "just work" but this list will help once I can find time to focus on this.

TradeDraft commented 2 years ago

I found that Installing the Game will get it to work

schellingb commented 2 years ago

I think it's time to finally deal with this. During development of DOSBox Pure I had a brain fart of making things "cleaner" by omitting empty root directories when loading a game. So a ZIP file containing /GAME/GAME.EXE and /GAME/GAME.DAT will be mounted as C:\GAME.EXE and C:\GAME.DAT instead of C:\GAME\GAME.EXE and C:\GAME\GAME.DAT. Which is what causes most of the problems reported here and in a few other issues.

I really want to stop doing that and keep the paths as they were. But that would break a lot of save games. Not great, but it might be unavoidable. I tried to think of a way to convert old savegames automatically but I just can't come up with any reasonable system that would work for everybody. Currently save games are saved as "GAME.save.zip". I could make it so that if .save.zip exists, use the old behavior. If not, don't and save the game as "GAME.save2.zip". I really like .save.zip though. Maybe .sav.zip. Or .load.zip. Or .changes.zip. Or .x.zip. Or .dbp.zip. Help

Tasosgemah commented 2 years ago

What if we renamed the saves we already have in order to work with this potential change?

schellingb commented 2 years ago

I wish I could politely ask all users of the core to fix things up for me but I don't think that's possible. There really is no nice way out of this for me. I even thought about making a new core with a new name and continue there just to get rid of this ugliness.

I might go with GAME.pure.zip for the save file. If the old file GAME.save.zip exists, use that with the old behavior, otherwise run fixed. I'm not sure if the core needs to provide a "reset save data" functionality or if it'd be enough to just tell users to delete their old save file if they need this fixed.

schellingb commented 2 years ago

Finally gotten around to implement and commit this change. It's not yet released because it's the only change since the last version and so much time has passed since the core was initially released that it hardly is a pressing matter anymore. I'm hoping to make some more changes for the next version that will be more useful for existing user than this change that at this point in time is more of an annoyance than anything else.

schellingb commented 2 years ago

So this is now finally finally out in the newly released 0.9.0 beta. As mentioned before and in the release notes this won't magically fix save data that might have been created with an older version of DOSBox Pure but it should help with games launched for the first time from now on.

schellingb commented 1 year ago

Updated list of games that don't run when being moved from their original install location (or refuse to run from C:):


If anyone knows other games that have quirks in this regard please post them here. Looking for games that do stuff like

Tasosgemah commented 8 months ago

Is there any update on this? Still can't figure out how to make Daggerfall to work.