Warcraft 2: Battle.net Edition fails CD check in wine version 7.0 and greater

Questions about Wine on Linux
Locked
mmogilvi
Newbie
Newbie
Posts: 2
Joined: Sun Jul 24, 2022 5:19 pm

Warcraft 2: Battle.net Edition fails CD check in wine version 7.0 and greater

Post by mmogilvi »

I have a few versions of wine installed, and if I try to run Warcraft 2 in wine 6.0.2, it works, but if I try to run it version 7.0 or newer, the game's CD check fails.

This version works:

wine-vanilla-6.0.2 "/archive/wineData/games/war2/Warcraft II BNE.exe"

But these versions fail the game's CD check:

wine-vanilla-7.0 "/archive/wineData/games/war2/Warcraft II BNE.exe"
wine-vanilla-7.9 "/archive/wineData/games/war2/Warcraft II BNE.exe"
wine-vanilla-7.13 "/archive/wineData/games/war2/Warcraft II BNE.exe"

These are all already installed, and I run these in exactly the same environment with no other changes. (Of course, every time I try a different version, wine pops up a message about updating the configuration before it tries to run what I asked.)

Any clue on why this might happen, or if there is something I could do to make to work again with newer versions, or at least some tips to try to debug it somehow (eventually 6.0.2 will probably becomes hard to build, install, and run)? It isn't immediately critical, but it would be nice if I didn't have to resort to an older version to run this game.

-----
Additional Details:

As a reminder, Warcraft II has worked well under wine for many years, as long as you have loop-mounted the CD and setup your ~/.wine/dosdevices symlinks properly. See https://appdb.winehq.org/appview.php?iV ... 2&sAllBugs Obviously I've already done this, or 6.0.2 wouldn't work either.

When it fails, the CD check error message popup reads "Warcraft II Battle.net Edition is unable to read a required file. Your Warcraft II Battle.net Edition CD may not be in the CDROM drive. Please ensure that the disk in in the CDROM drive and press OK. To leave the program, press Exit."

I'm running on a Gentoo Linux system, and usually run its "stable" version of wine, but for testing this I've also tried a couple of newer "testing" versions, as well as used a gentoo "wine" overlay to install 6.0.2. I could potentially try a few more versions from the overlay, if it would be useful. The overlay appears to have 6.1 through 6.23 available, as well as earlier versions back to 4.0 (but no earlier).
invisible kid
Level 5
Level 5
Posts: 353
Joined: Tue Dec 24, 2019 3:23 pm

Re: Warcraft 2: Battle.net Edition fails CD check in wine version 7.0 and greater

Post by invisible kid »

Hi, just a regular user here. So are the executables you running physically checking for a disc? For some games I used to have to have the cd in the tray for it to run. Later they came out with patched versions that don't require the cd to be in the drive.

If it is physically checking for a cd and failing, I don't know why it worked in the past. Make sure your cd/dvd/br drive is configured in winecfg -> Drives tab. Sorry I can't be more help, good luck.
mmogilvi
Newbie
Newbie
Posts: 2
Joined: Sun Jul 24, 2022 5:19 pm

Re: Warcraft 2: Battle.net Edition fails CD check in wine version 7.0 and greater

Post by mmogilvi »

Yes, games of that era often "require" the CD to be in the drive. Often a game required additional game data files even if it didn't do any "special" checks (smaller hard drives back then; save space by leaving them on the CD). However, as vaguely alluded to in the first paragraph of my "additional details" section, it is usually possible to convince the game that it has the CD in wine by loop-mounting an .iso image of the CD somewhere, and creating two Linux symlinks: "dosdevices/d:" pointing to the mounted directory, and "dosdevices/d::" symlinked to the .iso itself. (I've also heard of doing conceptually the same thing with .iso's of games in real Windows, but I'm not sure about the details...)

This has long worked for Warcraft 2 running in wine, but for some reason it stopped working with wine version 7.0. I'm not sure how to track down why. Has there been changes in the code for emulating devices this way? Is it done differently now (something other than the symlinks)?
Locked