This page is a wiki. Please login or create an account to begin editing.

Sword of Kadash

No votes yet
Year released:
[www].se [ftp].se [mirror].us [mirror].de (153.58 KB)
MD5: aa1d00e37c0c9be592b97fa7c280f9b4
[www].se [ftp].se [mirror].us [mirror].de (153.86 KB)
MD5: e6fc5aeadfbf0f09fa674a1373bca358
Guides on emulating older games

"To the north lies an enchanted sword, the Sword of Kadash. It can be found somewhere in the deadly catacombs of the Fortress of the Dragon, guarded by fierce beasts and vile demons."

When you ask why the brigands don't get the sword themselves, the leader laughs cruelly. "A score of men have been sent into the Fortress, and none have returned. That is why we are sending you — one with such prowess should have no problem walking into the Fortress and walking out with the Sword."

Download 1:  

This is a nonfunctional image of a copy-protected disk.


Download 2:  

This is a cracked image. Use this one. -- barberd


Architecture: 68k

Please note the keyboard only works on pre-ADB Macintoshes, such as the 128K, 512K, Plus, and 512Ke.


systemseven's picture
by systemseven - 2021, April 1 - 5:56pm

thanks for your hardwork!

barberd's picture
by barberd - 2021, April 1 - 3:38pm

Spent a good chunk of time and cracked the copy protection on this game. The copy protection was again courtesy of our temporal friends at PACE Anti-Piracy.

First off, I removed the lock bit on the filesystem allowing modifications.

The CODE2 and CODE3 resources are anti-piracy routines created by PACE Anti-Piracy using the same encryption algorithm as MacWars. However, unlike MacWars, the actual game code wasn't encrypted, just the bad sector check code, so it was fairly easy to bypass entirely. I did this in two places, CODE1+0x184-0x18D and CODE1+0x3eda-0x3eed, which was the jump to CODE2/CODE3 and the instructions to perform when the sector check failed, replacing these areas with NOPs.

Failing the CODE2 check wouldn't let the game start past the intro screen. Failing the CODE3 check sets a global flag, later checked at CODE1+0x3f50, which then bypasses a lot of code. I suspect this cripples the game in some way, making it unplayable or unwinnable, but not an immediately noticeable way. Clever.

Also, I replaced a _Control system trap call at CODE1+0x8e06 with a NOP instruction.
This triggered a crash when saving and quitting the game on emulators.
This is a direct low level driver call, and I'm pretty sure this bypassed the filesystem lock protection present on the original disk, allowing the game to save. As many emulators don't emulate down to the floppy chipset, this would throw a system error. As I removed the lock bit on the image, such a call is no longer needed in the first place.

Note: The keyboard works fine when I tested in emulation of the Mac 128k and Mac Plus, but did not work on my Mac Classic. There are no system trap calls to _GetKeys, and the game uses _GetNextEvent to read the keys. As such, this game only seems to run correctly on pre-ADB keyboard Macintoshes, eg the Macintosh 128K, 512K, Plus, and 512Ke.