Posted By
 Csabo on 2025-07-28 21:04:06
| Re: If you were ever curious about...
Let's take a very close look at Zodiac. (Don't want to read? You can listen instead.)
It's one of the earliest Commodore 16 games, from 1985. It was written by Robert Henderson, who also wrote Dark Tower and Video Poker. He has some credits on other systems too, but we don't know much about him.
First, I'll go over the gameplay in detail.
There's a simple title screen, where we can select our character's run speed (ranging from 1 to 4, with 1 being the fastest and 4 being the slowest). We press fire and we're off! We find ourselves in a corridor. Moving either way, we see some enemies that we can shoot. Touching an enemy or the walls of the maze causes the player to lose one of the initial 5 lives. Occasionally, we find a cyan colored Zodiac sign in the middle of rooms. We must collect 12 of these. Unfortunately, the game doesn't show which ones have been collected. The signs themselves are distributed randomly in the maze, and there are many duplicates.
Once the 12 signs are found, the game has a second phase. We're taken to a different room with no exits, and 5 unkillable enemies. We have to pick up each of the 12 signs and place them in the middle of the room. In this phase of the game, we basically bait the monsters to follow us to a corner, then quickly run around them. Once all 12 signs are placed in the middle, the game is "won", but there's absolutely no indication of this; we're simply placed back in the first room, and we can start all over again if we wish.
Interestingly, this game is currently listed as a "This game has an ending!" type game on Plus/4 World, and the 2nd phase is shown to be the "ending". I would disagree with this; I would simply call the room with no exits a "second phase". Once that phase ends, there isn't even a measly "congratulations".
Technical details:
There's an interesting tidbit mentioned on the cover that says the game has "nearly" 400 screens. It's the "nearly" part that's odd. A couple of days ago, I created a map for the game, which can be seen here. The map is 20-by-20 rooms, which technically means 400 screens; however, many of them cannot be reached during normal gameplay, they are "dead" areas.
If you wondered how the author could squeeze this many rooms into the Commodore 16's memory, here's the explanation: each room is only described by a single byte (even more precisely, a nibble, which is half of a byte). There are only 16 types of rooms; they can be seen here. The entire map is built from these.
The code
Looking at the code, there are a couple of interesting things. First, it's very cleanly written; the author must have used a high-level compiler or at a minimum, a good assembler. All of the game variables are in one chunk, followed by game data, followed by code, and finally followed by separate code for the sounds. That to me looked like they reused some existing code for sound generation. Second, this also leads to many things that appear "oddly coded". One example is, in the beginning, the game has a loop, which runs 3 times, and in each iteration it calls a function that turns off one of the TED voice channels. It achieves that by reading the current value of the TED sound register ($FF11), ANDing it with a specific value, which is looked up from a table, and then putting that back to $FF11. This is a TON of code, which essentially equals to "LDA #$00 / STA$FF11". Another odd thing is the use of color; the game actually reads all colors from the ROM color table. Even though we have 8 shades of each color, only the default ones are used. This is another missed opportunity; the game could have been a lot more colorful. Third, the code ends around $3200, so there's about 3.5K of free memory, which could have been used for any number of things to improve the game. Fourth, even though there's extra room after the game's code and data, a small chunk of the game code is copied to the lower memory, to $0200. That code only comes up later in the game, when the player receives a "Cubic Gate Opening" bonus, which grants an extra life. Because of this, several cracks of the game crash at that point. The game appears to start and run normally, so the crackers (and Italian bootleggers) very likely assumed that their crack is fine. We can only speculate why this was done, but I would guess that this is a form of copy protection.
My opinion on the gameplay:
This is the type of game that, once you've seen the first couple of screens, you've seen the entire game. The fact that you can't clear out a room for good gets annoying very quickly. Not showing which signs have been collected is also a missed opportunity. The scoring is pretty bad, since a player can easily move back and forth between any two rooms, shoot some monsters, and rack up points indefinitely. The use of color is very odd to me, the game only uses the default color values instead of the many other available shades. Also, the walls of the maze are always a random color, which is another odd choice. Choosing them differently could have helped with the navigation. The size of the map is one of the best examples of "bigger isn't always better.", I don't think it's fun to have that many rooms, especially since the monsters block quick navigation. Overall, this isn't a very good game.
There's more?
After all that, you'll probably be surprised that a Deluxe version is coming. RĂ¼diger asked me to make the map, which prompted me to look at the code, which then prompted me to mention this to KiCHY. He made a mockup for a visually updated version, and so I decided that we'll do it, we'll make a "Deluxe" version. Plans are some obvious graphical updates, new music, and some quality-of-life improvements like showing which signs you've collected. More importantly, I will make some gameplay changes that will hopefully make it more fun to play. One thing is, I'll reduce the map to 12-by-12 rooms, which will total 144 screens. I also want to make the "final room" to be actually part of the map, not a separate location you get teleported to. One idea I'm playing around with is that once a room is cleared of enemies, they do not regenerate. This would help with scoring; there would be a theoretical maximum that can be achieved by clearing out the entire map, and the only way to score higher would be to keep playing more rounds. I also want to add a small actual ending, at a minimum, a congrats message.
This is where YOU come in! If you have any ideas about how to improve the game (without completely rewriting it), let me know, I would be very interested in hearing it. I will probably need testers as well, so that we don't end up with bugs. If you're up for it, let me know!
3 |