Tales of the Arabian Nights

From C64-Wiki
Jump to navigationJump to search
Tales of the Arabian Nights
Title screen of the game
Title screen of the game
Game No. 554
Voting 6.00 points, 1 votes
Developer Ian Gray
Publisher Interceptor Micros
Musician Chris Cox
HVSC-File /MUSICIANS/C/Cox_Chris/Tales_of_the_Arabian_Nights.sid
Release 1984
Platform BBC Micro, Amstrad CPC, Arcade, C64, ZX Spectrum, Acorn Electron
Genre Arcade, Platformer
Gamemode Single player
Operation Joystick
Media Datassette Diskette
Language Language:english
Information Developed in 1983 by Sun Electronics for arcade machines


Description[edit | edit source]

Imrahil, Prince of Kalendar

"Tales of the Arabian Nights" is a platformer in which the player takes on the role of the Prince of Kalendar and rescues his sister Anitra from the clutches of Sultan Saladin. In a total of 8 levels, the player character must collect 7 jars in the correct order, cover a specific distance, and fight various enemies along the way. They must beware of foes such as birds, krakens, and ghosts, as well as dodge cannonballs and arrows.


Backstory[edit | edit source]

On the inside of the Inlay for the cassette version of the game is a short description of the backstory:

THE STORY OF THE CALENDAR PRINCE

... on a raft
... on a flying carpet

An expectant hush settled upon the tribesmen. Scheherazade, most famous story-teller of the Bedouin, stood in the moonlight between the palm trees, and began her tale.

"Long ago, in the city of Baghdad, there lived the Sultan Saladin. Convinced of the faithlessness of women, he swore to put to death each of his wives after the first night. In time his avaricious gaze fell upon beautiful Anitra, a princess of the Kalendar province. His soldiers came silently in the night, and by dawn they and their helpless captive were far away. The fate of the wives of Saladin was known throughout Arabia, and greatly was he loathed by the people of the land. But such was the awesome might of his armies, that no-one dared oppose him, even in thought. None that is, save Imrahil, eldest prince of Kalendar, who set out on the trail of his beloved sister with vengeance in his heart. His quest began aboard Sindbad's ship, sailing the Red Sea. Despite the many hazards of the long ocean voyage, Imrahil safely came ashore at the delta of the river Ahnil. Aboard a simple raft, he followed the river upstream until the waters swept him into a great cavern, deep in the bowels of the Earth. Here he fought with the bewitched genies of Al-Khemizd, too dreadful even to imagine. Escaping from the cavern, on a flying carpet stolen from the blind weaver Ahxmihnsta, Imrahil fought his way through the skies, across the burning desert - to Baghdad! Dodging the guards at the city gates, Imrahil ran along the high walls to the gardens of the Sultan's Palace. He climbed swiftly up the tallest tree in the garden, and jumped through a window into the palace. He fought past the guards, and reached the battlements, where Anitra was being held by the Sultan! Swiftly they leapt together onto the carpet, and rose high above the towers of Baghdad."

Design[edit | edit source]

Of the game's eight levels, five consist of a single, full-screen game board in which the player character, Prince Imrahil, runs, climbs, or he must collect seven jugs in the correct order while jumping. In doing so, he must dodge various, sometimes very unusual, enemies (for example, several flying krakens on Sinbad's ship). Otherwise, the levels are lovingly and intricately designed, creating an atmosphere that perfectly suits the titular "Tales from One Thousand and One Nights."

In the remaining levels, the prince travels partly on a raft and partly on a flying carpet through a continuously scrolling landscape from left to right, where he encounters various enemies at regular intervals, which he can either fight or avoid. The landscape consists partly of hilly desert terrain with palm trees and Bedouin tents, and partly of the domes and towers of Baghdad, and in both cases is predominantly yellow. These levels have no objective to reach but end abruptly after a predetermined time has elapsed.

Technical details regarding the graphics can be found in the section "Technology".


Seven jugs must be collected in the correct order — but where to begin?
Stone-throwing nomads and hungry crocodiles make the raft trip an adventure.



Sound[edit | edit source]

The game is accompanied throughout by a total of nine three-part melodies that play in turn (see section "Theme") and are based on the symphonic poem "Scheherazade" (Opus 35) by Nikolai Rimsky-Korsakov. They have a distinctly "oriental" feel and thus contribute to the game's fairytale atmosphere, but can also be turned off before starting the game. Events in the game are underscored with simple sound effects (see the gallery below), which are briefly played in place of the second part of the accompanying melody.


Sound effect when collecting a jug (1.436 s) ...
... and when losing a life (2.453 s)



At the start of the game, at the beginning of each level, and after successful completion, short announcements in English can be heard, which are quite easy to understand (see section "Speech Output), although the relevant text is also displayed on the screen simultaneously.

Hints[edit | edit source]

The goal of the game is to successfully complete all 8 levels with the player character, the Prince of Kalendar, and thereby free his sister Anitra from the clutches of Sultan Saladin. The individual levels consist partly of full-screen scenes in which 7 yellow jugs must be collected in such a way that the individual letters on the jugs together form the word "ARABIAN", and partly of endlessly scrolling landscapes that the Prince traverses while fighting various enemies.

In the labyrinths, only those jugs can be collected that show the next letter needed to spell the word "ARABIAN"; all other jugs are ignored. In particular, in each such round, any one of the three jugs labeled "A" can be collected first; then the jug labeled "R" must be sought out. However, even the choice between three jugs labeled "A" often doesn't offer an additional degree of freedom, but rather presents the challenge of having to find the only possible sequence in which the level can be completely solved. The player receives 150 points for each collected jug.

When traversing the landscapes, the only objective is to avoid enemies and their projectiles or to destroy them with one's own shots. If the prince is traveling on a flying carpet, he must also avoid all obstacles (such as sand dunes, palm trees, walls, and domes). During the raft ride out of the river, shooting down a boulder earns 25 points and killing a crocodile earns 50 points; during the journeys on the flying carpet, killing a bird earns 100 points, destroying an archer earns 125 points, and eliminating an enemy on a flying carpet earns 200 points.

At the start of the game, the player character begins with a total of 5 lives (displayed as the number "4" representing the remaining lives in the screen header). These must be sufficient for the entire mission, as there are no extra lives available during the game (e.g., based on the score).

Screen Layout[edit | edit source]


Typical scene from the game (labyrinth with jars to collect)
Typical scene from the game (scrolling landscape with oncoming enemies)



Controls[edit | edit source]

After starting the game, the sound output can be configured on the title screen. Pressing F1  toggles the voice output. The game is switched on and off, while the F3  key deactivates and reactivates the background music. Pressing the fire button on a joystick connected to port 2 then starts the game.

By moving the joystick up, down, left, or right, the character moves in the corresponding direction. The function of the fire button depends on the type of level: If yellow jars need to be collected in a screen-filling maze, pressing the fire button makes the character jump in the direction of their current movement. If, on the other hand, the character is traversing a landscape that scrolls across the screen from right to left, a shot is fired in the direction the joystick is currently moved.

Pressing any key pauses the game; pressing it again resumes it. The RESTORE  key cancels the current game and returns to the title screen.

Levels[edit | edit source]

The following gallery illustrates the individual levels of the game. To avoid To avoid giving hints at this point, the player character remains passive. The animations repeat after the first loss of a life.


Level 1: Crossing the Red Sea on Sinbad's ship
Level 2: Rafting down a crocodile-infested river
Level 3: Battle against the magician Al-Khemizd's djinn



Level 4: Travel to Baghdad on a flying carpet
Level 5: Infiltrating the city of Baghdad
Level 6: Making your way through the palace garden to the castle tower



Level 7: Climbing the battlements of the Sultan's palace
Level 8: Returning to Kalendar



Original-Texte

The following short introductions to each level are displayed on the screen and, if enabled, spoken with a fairly easy-to-understand voice:

1st Level: "IMRAHIL BEGAN HIS QUEST ON SINDBAD'S SHIP, SAILING THE PERILOUS WATERS OF THE RED SEA."

2nd Level: "ON A SIMPLE RAFT, HE PADDLED INLAND ALONG A CROCODILE-INFESTED RIVER, THROUGH A LAND OF HOSTILE NOMADS."

3rd Level: "IN A CAVERN DEEP BENEATH THE DESERT, IMRAHIL FOUGHT THE GENIES OF AL-KHEMIZD THE SORCERER."

4th Level: "ON A STOLEN FLYING CARPET, HE FLEW ACROSS THE BURNING DESERT - TO BAGHDAD, HOME OF THE SULTAN SALADIN."

5th Level: "DODGING THE GUARDS AT THE CITY GATES, IMRAHIL CLIMBED THE HIGH WALLS OF THE SULTAN'S PALACE."

6th Level: "IN THE PALACE GARDENS, HE SWIFTLY CLIMBED THE TALLEST TREE, AND LEAPT THROUGH A WINDOW INTO A HIGH TOWER."

7th Level: "HE FOUGHT PAST THE GUARDS, AND REACHED THE BATTLEMENTS, WHERE ANITRA WAS BEING HELD BY THE SULTAN."

8th Level: "THEY LEAPT ONTO THE CARPET, AND FLEW AWAY, HIGH ABOVE THE DOMES AND MINARETS OF THE CITY OF BAGHDAD."

Tips[edit | edit source]

  • In Level 2 (raft trip across the crocodile-infested river), a position on the left side of the screen is advantageous for spotting oncoming crocodiles early. You can then either shoot them or raft over them while they dive. Afterward, you can fall back to the left side.
  • In Level 3 (battle against the magician Al-Khemizd's djinn), the light blue djinn always moves purposefully but slowly toward the player character. By choosing a suitable position, you can lure it away from the jars so you can collect them.
  • When planning routes within the labyrinths, keep in mind that ladders can be entered at any height, but exited only at the top or bottom.
  • In levels 4 and 7 (flight on a flying carpet), the archers on the ground can only shoot diagonally upwards and to the left, and in level 4, the oncoming enemies can only shoot horizontally. If you position your character in the center of the top of the screen in both levels, you will usually remain undisturbed by all enemies — and should an enemy approach at the same level, a single shot or a quick downward evasive maneuver will be enough to regain peace.


Solution[edit | edit source]

The following animations demonstrate the solution for those levels in which jugs must be collected in the correct order. However, the levels in which Prince Imrahin travels by raft or on a flying carpet can be completed using only the advice given in the "Tips" section and a little practice.


Solution to Level 1
Solution to Level 3
Solution to Level 5



Solution to Level 6
Solution to Level 7



Once the final level is solved, meaning Prince Imrahil and his sister Anitra have safely returned home to Kalendar, a final, redeeming message appears and is heard:

"SO IMRAHIL AND ANITRA RETURNED TO KALENDAR, AND THEY ALL LIVED HAPPILY EVER AFTER."

Finally, the player may enter their name in the high score list (maximum 12 letters or spaces), see the right-hand illustration in the gallery below.


Successful completion of the game
Invitation to enter the high score




Cheats[edit | edit source]

Several cracks with a trainer function are available on CSDb. The version of "Remember" available at https://csdb.dk/release/?id=41958 is particularly recommended, offering a total of 5 individually selectable functions (first illustration in the gallery below).






The abundance of 32 trainer functions in the version by "Hackersoft" (second illustration in the gallery above) is also entertaining; however, this crack has a bug in level 8 (an 8th jug stuck in a castle wall with another letter "A", visible in the center of the lower half of the following illustration):




Internal Data Structures[edit | edit source]

Knowledge of memory allocation and internal workings is helpful for developing custom trainer functions and for analyzing or manipulating the data used by the game. The following table therefore compiles a range of information about "Tales of the Arabian Nights".

Address Content Value Range Remarks
$03E4 Remaining Number of Lives 5...0 The number is 1 greater than the number displayed in the screen header.
$03E5 Current Level 1...8
$03E6 — $03E7 Current Score 0...65535 Binärzahl im Little Endian-Format (niederwertiges Byte zuerst)
$17AD — $17B5 High Score List: High Bytes of Scores 0...255 Binary number in little endian format (lowmost first)
$17B7 — $17BF High Score List: Low Bytes of Scores 0..255 The list actually includes 9 scores, but only the first 8 are displayed.
$1E8A — $1EF5 High Score List: Names je 12 Zeichen The list contains 9 names, but only the first 8 are displayed.
Storage in screen code

Votes[edit | edit source]

Voting of the C64-Wiki users (10=the best vote):
6.00 points at 1 vote.
You need to be logged in to cast a vote.
Lemon 64 6.9 April 5, 2026 - 82 votes
Ready 64 6.29 April 5, 2026 - 7 voti
Home Computing Weekly 5/5 (Instructions 30%, Playability 90%, Graphics 90%, Value for money 85%) Issue 71 (July 17-23, 1984)
Computer and Video Games 8/10 (Graphics 7/10, Sound 10/10, Originality 6/10, Lasting interest 8/10) Issue 10 (September 1984)
Personal Computer Games Getting started 8/10, Graphics 9/10, Value 8/10, Playability 9/10 Issue 36 (October 1984)
Popular Computing Weekly 5/5 Issue 117 (July 26, 1984)
TV Gamer Graphics 3.5, Sound 5, Gameplay 4 Issue 11 (October 1984)
Tilt Intérêt 4/6, Graphisme 5/6, Bruitage 4/6 N° 18 (Janvier/Février 1985)
Your Computer 3/5 Issue 37 (September 1984)
Sinclair User 4/5 Issue 41 (August 1985)
Universal Videogame List 4.1/5 April 5, 2026 - 82 votes
Rombach 8 September 1984 - "Verdict 2"

Critics[edit | edit source]

Stephan64: "Tales of the Arabian Nights is a beautifully designed game from the early days of the C64. It stands out from the crowd of similar programs, particularly due to its voice output, which connects the individual levels into a continuous narrative, and its lovely background music. Unfortunately, the game is so fast-paced and the number of lives so limited that the higher levels can only be reached with a lot of practice. But even those who lack this patience and only play the program briefly will enjoy it... 6 points from me."

Rombachs C64-Spieleführer: "The only new feature of the program is the voice output. Otherwise, the program is to be classified in the same quality category as Manic Miner, China Miner, or Blagger 64 (Judgment 2)." [1]

Miscellaneous[edit | edit source]

Cover[edit | edit source]


Cassette cover
Back cover of the cassette version



Inlay[edit | edit source]


Cassette inlay, outside
Cassette inlay, inside



Theme[edit | edit source]

The following gallery shows the first four accompaniment melodies of the game in standard musical notation. For creative reuse, the sheet music for all nine melodies is also available as a PDF document (File:ArabianNights Theme PDF.pdf) and in ABC musical notation (File:ArabianNights Theme.abc.txt).


Sheet music for the first accompaniment melody (first page), reconstructed by logging all write accesses to the SID
Sheet music for the second and third accompaniment melodies
Sheet music for the fourth accompaniment melody



Video Recording[edit | edit source]

Several well-made longplay videos of the game can be found on YouTube. The video embedded here is unique in that it also includes voice-over narration for the level descriptions. In this way, the individual scenes are linked to form a continuous story.


Longplay with the complete solution to all levels

Trivia[edit | edit source]

According to the entries that pre-populate the high score at the start of the game, the game's design is inspired by traditional Arabian Nights tales. Indeed, both the game and its backstory use well-known names from "One Thousand and One Nights", but without regard for the actual roles of the individuals in question within this collection of stories. For example, the game's plot revolves around the cruel Sultan Saladin, whereas in the original tales he only appears peripherally as a wise ruler, and instead, King Shariyar is mentioned. Furthermore, in the game, Scheherazade is the most famous storyteller of the Bedouin, while in "One Thousand and One Nights" she is Shariyar's wife and antagonist. And finally, the magician Al-Khemizd in the third level is entirely fictional.

Cassette[edit | edit source]

Cassette for the game "Tales of the Arabian Nights"

Technical Details[edit | edit source]

Graphics[edit | edit source]

The entire screen display is in multicolor mode (screen memory at address $0400, character set starting at $0800). When detecting collisions between the player character and their opponents, the program relies on the VIC's sprite-sprite collision register at address $D01E; when detecting collisions between the flying carpet and elements of the passing landscape, it relies on the sprite-background collision register at address $D01F. All moving elements of the screen display are single-sized sprites (player character represented by sprite 0, remaining opponents and projectiles by sprites 1-7).

The game's timing is controlled by raster line interrupts on raster lines 153 and 234. However, since the area in which the scrolling landscape is displayed extends from lines 103 to 184, the program periodically waits for these area boundaries to be reached by polling the VIC register at address $D012.

Speech Output[edit | edit source]

Speech output at program startup, before the start of each level, and at the game's happy ending is achieved by writing a sequence of 4-bit samples to the volume register of the SID at address $D418 at an average rate of approximately 6,000 values ​​per second. The following graphs illustrate the resulting waveforms using the word "Arabian" as an example, with the horizontal zero line corresponding to sample value 8.

Waveform during speech output of the word "Arabian" (871 ms). The short pause approximately in the middle of the graph separates the syllables "Ara-" and "-bian".



Waveform of the speech output of the sound "A" at the beginning of the word "Arabian" (87 ms)



Waveform of the speech output of the sound "N" at the end of the word "Arabian" (87 ms)


It is evident that the write accesses to the SID, by means of which the samples are output, are not equidistant, but rather the time interval between successive write accesses is approximately an integer multiple of 50 μs. In this way, consecutive, identical samples can be grouped together.

Fastloader[edit | edit source]

The cassette version of "Tales of the Arabian Nights" uses an integrated software fastloader, which is automatically activated during loading and speeds up the loading process by a factor of approximately 6.

The fast loader is capable of sequentially loading any number of program segments to any location in memory (except for the RAM below the I/O area). Each such program segment is preceded by a 4-byte data structure containing the starting address of the subsequent data block and the two's complement of the block length; the block is then followed by a checksum calculated by performing an exclusive-OR operation on all data bytes. Thanks to optimized encoding (shorter intervals for 0 and 1 bits, no duplicate storage of program data), loading "Tales of the Arabian Nights" takes less than four minutes, whereas the KERNAL's datasette routines would take more than 20 minutes for a file of this size.

The fastloader consists primarily of an interrupt routine that bears some resemblance to that of Novaload: Using a branch instruction, which acts as a central jump distributor thanks to changing offsets, the routine independently executes all the necessary steps for loading a data block and informs the foreground program, via a block counter at address $00FA, how many data blocks remain. In the case of "Tales of the Arabian Nights", however, the foreground program merely prepares the display of the loading screen by switching the VIC to multicolor bitmap mode and clearing the graphics memory. Otherwise, it simply switches off the screen output again as soon as the corresponding memory is needed to load another part of the program, and then remains in an infinite loop. Starting the game is also handled by the interrupt routine.

The authors of the fast loader made no effort to conceal how their program works: A short routine is loaded sequentially to prepare the display of the loading screen (272 bytes at address $C800—$C90F), then the loading screen itself (bitmap at $E000—$FFFD, color information at $C400 — $C7FF and $D800—$DBFF), and finally the actual program code at $0800—$CFFF and $E000—$FFFD, as well as a patch at $C000-$C680.


Loading screen of the cassette version



Highscore[edit | edit source]

Topscore of Stephan64
Topscore of Stephan64
  1. Stephan64 - 3.000 - 2 (24.04.2026)
  2. Keiner - 0 (tt.mm.jjjj)
  3. Niemand - 0 (tt.mm.jjjj)


#2 Keiner #3 Niemand
#2 Keiner #3 Niemand


Links[edit | edit source]

Magazine

Videos[edit | edit source]

Sources[edit | edit source]

  1. Oswald Reim, Martin Scholer: "Rombachs C64-Spieleführer", Rombach, 1984, page 352