Cosmic Convoy

From C64-Wiki
Jump to navigationJump to search
Cosmic Convoy
Title screen of the game
Title screen of the game
Game No. 521
Voting 4.00 points, 1 votes
Developer Andy Walker
Company Taskset
Publisher Taskset, Corgi Software
Musician Mark Buttery
HVSC-File /GAMES/A-F/Cosmic_Convoy.sid
Release 1983
Platform C64
Genre Shoot'em Up
Gamemode Single player
2 players (in turns)
Operation Joystick Keyboard
Media Datassette
Language Language:english
Information aka Spazio 2000 Language:Italian


Description[edit | edit source]

The player-controlled spaceship

In the game Cosmic Convoy, the player controls a squadron initially consisting of three spaceships, which escorts and protects a fleet of interplanetary freighters. They fight enemies that attack this convoy from the front and rear, attempting to destroy the freighters through collisions. Once the player-controlled spaceships and the freighters have reached their destination planet, the player receives a bonus based on the number of undamaged freighters before embarking on the next, more difficult mission.

Backstory[edit | edit source]

A famine is raging in the Coman planetary system, and millions of people are desperately waiting for supplies. In orbit around Com-Alpha, a fleet of cargo ships is being assembled to deliver aid — and the player's task is to protect this convoy with a squadron of "H-Vip" space gliders equipped with "Gon-4" precision lasers and escort them to their destination planet, ComBeta. However, the convoy must cross the "TransCom" cargo route, where the most vicious space pirates might be lying in wait.


Departure of the convoy in orbit around the planet Com-Alpha
Enemies on a collision course must be destroyed before they reach the freighters...
...and destroy them (without any apparent benefit) by ramming them



Design[edit | edit source]

During the game, the screen is divided vertically into four sections, each displaying different information and graphics across the full screen width on a black background: The top line of text shows the current scores of the two players on the left and right, and the current highest score in the center. The largest section, extending from line 3 to line 17, shows the squadron controlled by the player and its immediate surroundings, including freighters and enemies. Line 19 is reserved for status messages, and finally, lines 21–25 show a scaled-down side view of the entire flight path with symbolic representations of all spacecraft, with the area where the player's squadron is located highlighted by a square marker. The areas are visually separated by white, horizontal lines.


With each enemy hit, the player-controlled squadron loses a spaceship.
The pause between two attack waves can be used to destroy enemies attacking from behind.
Three precision lasers can also be used to shoot precisely between enemies.



Graphics[edit | edit source]

The home planet is represented by 8 sprites, each colored differently for illustration.

The screen display is exclusively in monocolor text mode (screen memory at address $0400, character set in the range $2000–$27FF). Since the program does not utilize pixel-by-pixel scrolling supported by the VIC, nor sprite multiplexing, the developers came up with some creative solutions for the game's special graphical effects:

  • Both the home planet, which slowly disappears to the right when the game starts (left animation in the gallery above), and the target planet are represented by eight solid white sprites stretched in the X and Y directions. In the image on the right, these sprites are alternately colored light red and light green to illustrate this.
  • An ingenious layout assigns the maximum of eight sprites to the game's moving objects: The player-controlled squadron, although consisting of up to three spaceships, manages with only two sprites because the two spacecraft flying in parallel are combined into a single sprite (sprite 1), while the jet flying at the front is represented by sprite 0. Sprite 2 is used for all exhaust plumes of the squadron as well as all fired projectiles, so the exhaust plumes disappear briefly as soon as the player fires the laser. Sprites 3 and 5 are reserved for the enemy spaceships, with two spacecraft sometimes combined into a single sprite; sprites 4 and 6 are enemy projectiles. Finally, sprite 7 serves as a square marker of the current position in the zoomed-out side view at the bottom of the screen.
  • The cargo ships that slowly pass by in the background, on the other hand, are part of the text display. The game's character set contains not just one set of corresponding character definitions, but eight different versions, each shifted by a single pixel.

Sound[edit | edit source]

The gameplay is accompanied by four short, sometimes polyphonic, sound sequences (see section "Theme"). During the journey from one planet to the next, a monophonic melody also plays, which quickly becomes monotonous. Game events such as laser firing or being hit during combat are underscored by the noise generator of the sound chip.

Hints[edit | edit source]

The goal of the game "Cosmic Convoy" is to escort convoys of cargo ships on transport flights between two planets and protect them from attacks by space pirates. To do this, enemy spaceships, which attack the convoy partly from the front and partly from the rear, must be shot down before they can crash into and destroy a freighter — without being hit by their own missiles or colliding with the enemy ships.

At the start of their mission, the player receives three squadrons, each consisting of three spaceships, for a total of nine fighter jets. Only one squadron is active at a time. These spaceships can only be controlled together; they always accelerate, turn, and fire simultaneously. Each enemy hit destroys one of the spaceships; after the third hit, the player must begin the interplanetary journey again with the next three spaceships.

If at least one of the player's spaceships reaches the target planet, they receive 1,000 points for each cargo ship that survives the journey undamaged. They then embark on the next mission, with these transport missions becoming progressively more challenging: Firstly, the number of cargo ships gradually decreases from an initial 15 to a final 5, making it increasingly difficult to deliver at least one freighter to its destination undamaged; secondly, both the player's and the enemy's spaceships move progressively faster.

Screen Layout[edit | edit source]

Typical scene from the game

Controls[edit | edit source]

"Cosmic Convoy" can be controlled either with a joystick or with the keyboard. Controlling the spaceship with a joystick is incredibly intuitive, while using a keyboard takes some getting used to:

press fire button or 1 : Move the spaceship up
press fire button or [25]larr; : Move the spaceship down
Joystick left or CTRL : Turn/accelerate the spaceship left
Joystick right or 2 : Turn/accelerate the spaceship right
press fire button or SPACE : Fire a laser

Enemies[edit | edit source]

A multitude of enemies attack the fleet of cargo ships, usually from the front, but sometimes also from behind. Unfortunately, due to their consistently either light green or dark green coloring and similar design, the enemy spaceships are difficult to distinguish in the heat of the game. Each enemy destroyed is worth 100 points.




Tips[edit | edit source]

  • The easiest way to engage approaching enemy spaceships is to fly far ahead of the freighters and, using the overview view at the bottom of the screen, fall back a bit only when an encounter with enemy spaceships is imminent. Since the enemies always fire a single shot immediately after appearing on the left side of the screen, you should choose the vertical position of your squadron so that it is not flying at the same altitude as the nearest enemy, thus ensuring that its shot will miss. Then, you move to the same altitude as it and shoot it down.
  • In the early levels, you should ignore enemies attacking the convoy from behind: The fleet of freighters is so long that you would only reach its end when the next wave of attacks is already threatening from the front. In the later levels, when only a few freighters need to be escorted, the time between two frontal attacks is sufficient to briefly fly to the rear of the convoy, destroy one or two enemies there, and then get back to the front of the convoy in time.


Solution[edit | edit source]

The sole objective of "Cosmic Convoy" is to escort as many supply convoys as possible and score as many points as possible by shooting down enemies and protecting the freighters. A "solution" to the game, such as ending the famine in the Coman planetary system or completely destroying the nasty space pirates, is not included.


Allegedly, a medal is awarded after each successful escort flight — but only four are displayed.




Cheats[edit | edit source]

On CSDb, there is a crack of Hokuto Force with various trainer functions: [1]

Crack of Hokuto Force with trainer function



Internal Data Structures[edit | edit source]

For developing custom trainer functions and for analyzing or manipulating the data used by the game, knowledge of memory allocation and internal workings is helpful. The following table therefore compiles a range of information about "Cosmic Convoy."

Address Content Range of values Comments
$0376 Active Player 1...2
$03A3 Number of completed convoys 0...255 Basis for determining the number of cargo ships in the convoy
$03E3 Number of squadrons remaining 3...0 Will be tripled for displaying the number of remaining spaceships
$0407 — $040B Player 1 score 0...99900 The points are added up directly in the screen memory
$0423 — $0427 Player 2 score 0...99900 The points are added up directly in the screen memory

The number of cargo ships that need to be escorted and protected in the next round is determined in an unusually cumbersome way from the number of completed convoys at address $03A3:

649E: LDA $03A3 ; Get the number of completed convoys
64A1: CMP #$00  ; So far, 0 convoys? (redundant command)
64A3: BNE $64A8 ; Jump if not 0 convoys
64A5: LDY #$0F  ; otherwise escort 15 cargo ships
64A7: RTS       ; and return from subroutine
64A8: CMP #$01  ; So far, 1 convoy?
64AA: BNE $64AF ; Jump if not 1 convoy
64AC: LDY #$0C  ; otherwise escort 12 cargo ships
64AE: RTS       ; and return from subroutine
64AF: CMP #$02  ; So far, 2 convoys?
64B1: BNE $64B6 ; Jump if not 2 convoys
64B3: LDY #$0A  ; otherwise escort 10 cargo ships
64B5: RTS       ; and return from subroutine
64B6: CMP #$03  ; So far, 3 convoys?
64B8: BNE $64BD ; Jump if not 3 convoys
64BA: LDY #$08  ; otherwise escort 8 cargo ships
64BC: RTS       ; and return from subroutine
64BD: CMP #$04  ; So far, 4 convoys?
64BF: BNE $64C4 ; Jump if not 4 convoys
64C1: LDY #$07  ; otherwise escort 7 cargo ships
64C3: RTS       ; and return from subroutine
64C4: CMP #$05  ; So far, 5 convoys?
64C6: BNE $64CB ; Jump if not 5 convoys
64C8: LDY #$06  ; otherwise escort 6 cargo ships
64CA: RTS       ; and return from subroutine
64CB: LDY #$05  ; In all other cases, escort 5 cargo ships
64CD: RTS       ; and return from subroutine

An indexed access to a table that stores the number of cargo ships per round, using the round counter (limited to 6) as the index, would have required only half the memory.

Votes[edit | edit source]

Voting of the C64-Wiki users (10=the best vote):
4.00 points at 1 vote.
You need to be logged in to cast a vote.
Lemon64 5,14 October 8, 2024 - 29 votes
Ready64 4,17 October 8, 2024 - 12 voti
Universal Videogame List 2.5/5 October 8, 2024
Personal Computer Games 5/10 (Graphics 8/10, Sound 6/10, Ease of use 4/10, Originality 6/10, Lasting interest 4/10) Issue 5 (April 1984)
Rombachs C64-Spieleführer 8 September 1984 - "Verdict 2"


Critics[edit | edit source]

Stephan64: "Cosmic Convoy is a simple shooter that quickly becomes boring because you have to endlessly destroy the same enemies with the same moves. And if you do manage to have a bit of fun for a while, it's over as soon as the collision detection fails. Considering its early release date and in recognition of some well-designed graphical and musically appealing sequences, I'm still giving it 4 points."

Rombachs C64-Spieleführer: "Unlike other shooters, this game doesn't just require quick reflexes; a certain tactical sense is also necessary (Rating 2)." [1]

Miscellaneous[edit | edit source]

Cover[edit | edit source]

"Cover".
"Cover".

Cassette[edit | edit source]

"Cassette".
"Cassette".

Inlay[edit | edit source]

"Cassette".
"Cassette".

Theme[edit | edit source]

A total of five short sequences underscore individual gameplay situations. The following gallery shows these melodies in standard musical notation. For creative reuse, the sheet music for all melodies is also available as a PDF document (File:CosmicConvoy PDF.pdf) and in ABC musical notation (File:CosmicConvoy.abc.txt).


Polyphonic accompaniment melodies during convoy assembly and upon arrival at the target planet, reconstructed by logging all write accesses to the SID
Continuous accompaniment melody during flight, as well as short sequences at the beginning of the journey and when the laser is fired



Video Recording[edit | edit source]


Short demonstration of the game

Kassettenversion[edit | edit source]

The cassette version of "Cosmic Convoy" released by Taskset (found in both Ultimate Tape Archive [2] and Ric64's C64 Tape Archive [3]) has neither a fast loader nor copy protection. Instead, the cassette contains a loading routine written partly in BASIC and partly in machine code, which loads a total of four program blocks sequentially into different memory areas and then starts the game:

Dateiname Adressbereich Länge
"COSMIC CONVOY" 2049 — 2591 ($0801 — $0A1F) 543 bytes
"CHARACTER" 8192-10751 ($2000 — $29FF) 2560 bytes
"HI-TABLE" 10031 — 21759 ($272F — $54FF) 11729 bytes
"MASTER" 24576 — 34303 ($6000 — $85FF) 9728 bytes
"ALIENS" 49152 — 51711 ($C000 — $C9FF) 2560 bytes

If you load these files sequentially from the tape using absolute address 1 and save the aforementioned address ranges to a second cassette, you will then have a working copy.

The version of the game distributed by Corgi Software, however, advertises on its cover that it uses the "pavloda" fastloader.

Bugs[edit | edit source]

  • Collision detection is remarkably poor, as can be seen in the following gallery. In the left animation, even clear overlaps between the player-controlled squadron and the oncoming enemy spaceships are not detected. The middle sequence shows, in slow motion, a section of the second animation in the "Design" section, in which an enemy is clearly hit by the player's laser but takes no damage. And on the right, also in slow motion, is a section of the third animation in the "Design" section, in which the player has already shot down an enemy without ever touching it, yet still loses one of their spaceships.


Even with a clear overlap between your own and the enemy spaceship, collision detection often fails.
Even a clear hit with the precision laser cannot harm this opponent (slow motion).
Although the player never touches the opponent, who has already been shot down, this situation costs them a spaceship (slow motion).


  • The number of points achieved is calculated directly in the screen memory and is limited to 5 decimal places (the last two of which are always "00"). If a player achieves more than 99,900 points, the counter restarts at "00000", without the missing 100,000 points being indicated in any way.

Highscore[edit | edit source]

The following list invites you to immortalize yourself with your highest score. A level is not specified, as the number of transfers performed in the game is not displayed and only a maximum of 4 medals are awarded.


Topscore of Ivanpaduano
Topscore of Ivanpaduano
  1. Ivanpaduano - 65.300 (16.01.2024)
  2. Stephan64 - 57.900 (21.10.2024)
  3. Niemand - 0 (tt.mm.jjjj)


#2 Stephan64 #3 Niemand
#2 Stephan64 #3 Niemand


Links[edit | edit source]

Sources[edit | edit source]

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