Blog

Software

AN.

Blog

Datasoft Saracen

3 January 2019

This is a strategy game with a puzzle element. You control Ilan the Crusader around a maze of obstacles with the ultimate goal to destroy the chief. It's fun and frustrating - I don't know of any other games like it. I have loads of nostalgic memories of playing this game in my primary school lunchbreaks.

Screenshot of Saracen on the Amstrad CPC.

Those Saracen Chiefs sure look evil with their red eyes...

The game was originally written by Ilan Ginzburg and was released on five machines - the Commodore 64, the Apple II, 8-bit Atari computers, the ZX Spectrum and of course, the Amstrad CPC. The Atari version was ported by Greg Hiscott. The latter two platforms were converted by Paragon. Each version has its own unique graphics set, but the gameplay is unmistakably the same. There is also music, but it gets on the nerves real fast, even on the C64 with its SID chip.

Of the ports, the CPC version runs the slowest. Moving between screens becomes incredibly tedious because everything stops while the blocks all shift along. The Apple II, C64 and Atari versions all scroll in realtime. Even the Spectrum version is faster. On the upside, it does give you an extra slice of time to dodge a hazard.

The early levels teach you the mechanics of the game in a gentle fashion. There is also no need to play them in sequential order, which is nice as some levels are mega-hard. There are a total of 100 levels, however some ports didn't get all of them. The C64 disk version got 100, tape got 50. The Atari got 90, and the CPC/Spectrum got a mere 40.

The low level counts are almost certainly due to using cassette tape. All of the levels have to fit in RAM, or be loaded from tape at runtime (but imagine rewinding and fast-forwarding a tape to the right level...). The Spectrum only has 48KB of RAM, and so the CPC ended up with the same limitations. Even the subset of levels is the same. The CPC disk edition is the same program binary as the tape, sadly.

I only recently found out about the levels I'd never played. As I am most familiar with the CPC edition, I wanted to find out if it was possible to add the missing levels back in and play them.

Levels

If the game is stored on tape, the levels are compressed. Otherwise, a simple byte-per-block system is used. The compression is a basic but effective form of RLE. Each level is always on a grid of 40x24 squares, and the viewing area is 20x12 squares. Working out the level maps from the disks was rather easy; the most common bytes are for walls and empty pathways. Comparing a screenshot to the level data revealed the values for uncommon objects.

After extracting the raw level data from all five ports, I decided to write a program to convert them to a simple text format. That way, I can find out what is different between them. I could also write something to convert those back to binary format, effectively allowing me to take a level from one platform and put it on the CPC. I could also write my very own levels, too.

Flowchart showing conversion of binary levels to text levels.

I put the levels through Meld to find out what is different: not a lot, actually. In some cases, a soldier is in a different starting place. A circle of bombs might be larger or smaller by one square. The "biggest" changes are actually on the CPC version. Perhaps acknowledging the lack of speed on the CPC, some cannonball traps have been widened by one extra square. Also, having more than one chief on a map is disallowed, and so is having more than one keyholder, key, or target.

Screenshot showing more space in a cannonball trap.

I decided to convert the C64 levels. After fixing the noted limitations, they work fine. Well, mostly fine. The CPC version has four different rotations for the soldiers. This information is missing in other ports, so when you load the level on the CPC you sometimes get them spinning around in circles instead of patrolling walls. This can be fixed in the level file after comparing it to another port.

Screenshot of my level viewer.

Basic level viewer.

After all these years, I hadn't noticed that some levels have motifs. For example, level 17 is a car. I'm not sure what level 29 is supposed to be, but it looks like a painting. Other levels have patterns. Also, on the CPC only, there is a little easter egg in the final level - some initials in an area you can't reach (Ilan will die the moment you leave the well-guarded safety zone at the top).

Entire view of level 39, showing the easter egg.

IG is probably Ilan Ginzburg, but MT and TW? Perhaps they are the initials of the people who worked on the CPC port.

As for making my own levels... I can indeed. But it takes a certain creativity that I lack. Thankfully I now have about 60 more levels to try, so there's no need for that. But it shows that the art of good level creation requires about as much skill as creating the mechanics behind the game, so I give my respects to all involved for that.

Return to Blog Index

2024

2023

2022

2021

2020

2019

2018

© Andrew Nile 2018-2024. Privacy