I have made a new web page about the copy protection used in Dungeon Master and Chaos Strikes Back.
This page is not yet integrated into the site, but you can view it here: http://dmweb.free.fr/FFCopyProtection.htm
Many thanks to Meynaf who did most of the real job, I only wrote the page.
The DM copy protection explained
Moderator: Ameena
Forum rules
Please read the Forum rules and policies before posting. You may
to help finance the hosting costs of this forum.
Please read the Forum rules and policies before posting. You may

- ChristopheF
- Encyclopedist
- Posts: 1603
- Joined: Sun Oct 24, 1999 2:36 pm
- Location: France
- Contact:
- ChristopheF
- Encyclopedist
- Posts: 1603
- Joined: Sun Oct 24, 1999 2:36 pm
- Location: France
- Contact:
Yes, the random disk accesses are cause by the copy protection.
Christophe - Dungeon Master Encyclopaedia
- Paul Stevens
- CSBwin Guru
- Posts: 4322
- Joined: Sun Apr 08, 2001 6:00 pm
- Location: Madison, Wisconsin, USA
I think much of the 'Copy Protection' was abandonded in
Atari's Chaos Strikes Back. I saw a lot of code that looked
like copy protection code but it seemed not to do much of
anything. It reminded me of code that had not been maintained
and had lost its original use. There were checksums of
some of the program's functions but no use was made of
them. Of course I worked from a hacked version and perhaps
the Copy Protection had already been cleverly bypassed.
The paper refers to CSBwin code that remains from the
copy protection schemes. This is the Watchdog Timer. In my
opinion, the Watchdog Timer is a very simple mechanism
designed to catch errors in the timer queue. It puts a timer
in the queue and starts counting. Every time the timer comes
out of the queue the count is reset and the timer is put back
into the queue. If the timer fails to come out then an error
is reported. It certainly may be a remnant of a copy protection
scheme but I don't remember seeing it that way. This is exactly
how the Watchdog Timers in embedded processors work except
that in the case of embedded processors the error report
amounts to a reset (or reboot). The rover on Mars recently
recovered itself using such a mechanism.
Atari's Chaos Strikes Back. I saw a lot of code that looked
like copy protection code but it seemed not to do much of
anything. It reminded me of code that had not been maintained
and had lost its original use. There were checksums of
some of the program's functions but no use was made of
them. Of course I worked from a hacked version and perhaps
the Copy Protection had already been cleverly bypassed.
The paper refers to CSBwin code that remains from the
copy protection schemes. This is the Watchdog Timer. In my
opinion, the Watchdog Timer is a very simple mechanism
designed to catch errors in the timer queue. It puts a timer
in the queue and starts counting. Every time the timer comes
out of the queue the count is reset and the timer is put back
into the queue. If the timer fails to come out then an error
is reported. It certainly may be a remnant of a copy protection
scheme but I don't remember seeing it that way. This is exactly
how the Watchdog Timers in embedded processors work except
that in the case of embedded processors the error report
amounts to a reset (or reboot). The rover on Mars recently
recovered itself using such a mechanism.
- ChristopheF
- Encyclopedist
- Posts: 1603
- Joined: Sun Oct 24, 1999 2:36 pm
- Location: France
- Contact:
CSB on Atari ST used the same copy protection mechanism as DM. I confirm that the hacked version you used for CSBwin was already cracked, that explains why you may have found "useless" parts of code.
For the watchdog timer, I don't know the precise link with the protection, maybe Meynaf can give us more details.
But the consequence of the watchdog timer error is indeed the same as a copy protection check failure. Is there such code elsewhere in the program?
For the watchdog timer, I don't know the precise link with the protection, maybe Meynaf can give us more details.
But the consequence of the watchdog timer error is indeed the same as a copy protection check failure. Is there such code elsewhere in the program?
Christophe - Dungeon Master Encyclopaedia
- dungeon.master
- Artisan
- Posts: 178
- Joined: Wed Dec 25, 2002 8:29 pm