CrossOver Support

My CD is in the drive and the game doesn't see it!


This is usually due to a DRM or Copy Protection mechanism included in the installer for the game.

These are simplistic understatements of what's at play.

DRMs


Essentially speaking, there are 2 types of disc based DRM -- one is sector referenced software based, the other is mechanical device 'dwell angular' -- the latter form of disc based DRM the Mac scsi driver does not support (and it doesn't always work on linux).

Software Centered DRMs

In some cases, wherein you have to have the disk in the drive to play the game and it works, they are using the software centered method based on filesystem block location.
Iso9660 filesystems have a set number of data blocks, and the game executable is expecting to find some software data at some certain block number, or in a most simple case it's just checking the correctly named disc is in the drive, these systems typically work on both Mac and linux

Dwell Angular DRMs

Conversely, if they are using the mechanical dwell angular system, then the software executable takes no notice of the filesystem (or block location/numbers) at all.
The software interrogates the actual device itself, to determine the physical positioning of the disc spinning in the drive, and tries to read data from that physical location -- sometimes, that location is outside of the filesystem on the disc itself, or instead embedded in 'holes' within the filesystem itself.
These will never work on the Mac, because the Mac scsi driver does not allow this 'raw mechanical' access to the optical drive. Although linux -does- allow this kind of device access, the physical disc location is determined by time.
In so many milliseconds after it sees a location marker, it attempts to access data at that physical location (this is known as dwell time)
This doesn't always work in linux either because the timing mechanism that's measuring the milliseconds is calculated on constants that are part of a 'real' windows kernel/driver arrangement - the linux constants differ, and therefore the DRM software goes looking for the data at the wrong time or in consequence at the wrong position on the disc media.

It is also worth mentioning here that sometimes, the original game developer releases an official 'patch' for some games, that removes the DRM routine from the game executable - a lot of the time this is only done because the newer release windows kernels no longer have the same builtin data constants that the DRM was built for/relies on...ie; it works with a win98 windows kernel/drivers but not with the winxp pairing.

In most countries it is illegal to remove/circumvent such DRM systems unless the original game developer lawfully permits such -- that typically is only the case when a game developer -does- release an 'official' patch.

The saddest part of this, the actual *game* software itself probably *will* run in crossover/wine -- it's just the disc based DRM stopping the show. For this reason, and especially so in the case of the Mac, it is always preferable to buy non-disc based game titles...ie; Steam based games, direct/digital download versions etc. They still have DRM embedded in the game software, but we don't have to deal with the physical/mechanical device access that stops us from getting these things to work.

This article still needs a good explanation of copy protection itself or a sister article for copy protection items

Special thanks to Don for the disk based copy protection explanation, we couldn't have put it better ourselves
Last modified on 2010-09-01 11:32:40 by Caron Wills
Are you sure you want to delete this page?
Note: Any nested pages that are under this one will be moved up one level. Any attachments tied to this page will be deleted.
Move / Rename Page
Unknown Error, unable to move!
That page exists already!
One or more of the parent pages specified in new path do not exist!
/support/wiki/ /support/wiki/mac/faq/cxgamesdrm
Please Wait...
eyJjYXJ0IjowLCJ0enMiOi01LCJjZG4iOiJodHRwczpcL1wvbWVkaWEuY29kZXdlYXZlcnMuY29tXC9wdWJcL2Nyb3Nzb3Zlclwvd2Vic2l0ZSIsImNkbnRzIjoxNTI1ODk4MDg2fQ==