RibShark / SafeDiscShim

SafeDiscShim is a compatibility tool that allows for SafeDisc protected games which utilize the insecure Macrovision Security Driver ("secdrv.sys") to run on modern versions of Windows .
Other
386 stars 12 forks source link

[Not a SafeDiscShim issue] Certain SafeDisc 2 protected executables do not start #1

Open RibShark opened 5 months ago

RibShark commented 5 months ago

Certain SafeDisc 2 executables seem to not launch on modern Windows. This happens even when using the official driver rather than SafeDiscShim, so it isn't a problem with this tool. Regardless, I will list the affected titles here and continue to look for a solution:

mirh commented 5 months ago

Setup.exe doesn't look like the kind of thing that would have drm? Maybe even the other game doesn't really have a problem with safedisc itself

RibShark commented 5 months ago

Setup.exe doesn't look like the kind of thing that would have drm?

It actually does, surprisingly. Seems to be an unusual case.

I can tell if it's a compatibility issue or not by running the EXE with the disc ejected; if I get a "Cannot locate the CD/DVD-ROM" error, I know that SafeDisc is working fine. Anything else and there is some sort of incompatibility, and if it happens even when using the official driver rather than SafeDiscShim (as is the case with these two), it seems to be some sort of non-driver related compatibility issue.

mirh commented 5 months ago

Interestingly there was a wine problem that hit just the same. I suppose everything is smooth with good ol' windows 7 rtm?

tomsons26 commented 5 months ago

Same result on win 10 for RA2, instantly closes. Cracked setup.exe runs fine btw, so it is a SD issue.

There was seemingly a screwup in multiple Westwood games where the setup.exe also had SD applied, RA2 and Emperor are two such examples, Emperor's SD issues got so bad they released a official crack for it as well as a unprotected setup.exe that can be run from hard drive.

Log isn't being created at all so something fails, race condition while doing logging init perhaps? That leads to a heap crash which usually is a instant close unless the binary is built with all sorts of CRT memory features are enabled?

tomsons26 commented 5 months ago

If i try to run setup.exe in a debugger i do get to see "Fault tolerant heap shim applied to current process. This is usually due to previous crashes" so a heap corruption is indeed occurring.

Quick way you can test if setup reaches its actual code is with command line -v, v shows version info as a message box and closes setup so no need to launch a fullscreen application every time(tho if you do want to do that you can use -w to run it windowed). Currently it doesn't get that far.

Stavanger1 commented 5 months ago

Currently testing out Command & Conquer The First Decade with SafediscShim. I believe all the C&C games aside from the original C&C and Red Alert use Safedisc.

Tiberian Sun and Firestorm gave a "Cannot locate the CD/DVD-ROM" error but deleting drvmgt.dll got it working.

Renegade worked fine as did Red Alert 2.

However Yuri's Revenge and both Command and Conquer Generals and Zero Hour both gave "Cannot locate the CD/DVD-ROM" error and deleting drvmgt.dll didn't resolve.

With both Generals games I would get a different error when trying to run the game which I don't believe is DRM related but setting the .exe files compatibility to Windows XP Service Pack 2 would give me Cannot locate the CD/DVD-ROM" error.