Back in the early 90s, the PC demo scene was starting to heat up. And
when I’d show these demos to my friends and family one of the common questions
I’d get asked is “why don’t these demo coders make games instead?” And well the answer is,
sometimes they did. One such example is Zone 66, a very visually impressive game for 1993.
This was one of the first PC games to actually look as good as an arcade machine of the era.
Well, some of the same guys came back together in 1995 and created Xixit. It’s
more or less a clone of a game that came out a few years earlier known as columns,
as you can see here. In fact Columns was on at least a dozen different platforms,
but lacked an MS-DOS version. So, Xixit came along to fill that gap, and it was
considerably more impressive in terms of graphics and sound, which made it more enjoyable to play.
Xixit employed plasma fields and fire effects and the like, which were commonly used in demos
of the time. And the music was a mod-tracker type playback system, mixed in real-time,
which was very uncommon for DOS games, which usually used the Ad-Lib chip instead.
Well, I’d been looking to make another game for the Commander X16, and unlike Petscii Robots,
I wanted to make something that had a quick and easy, fast learning curve. Something that people
could just pick up and learn how to play real quickly without having to read the manual. So,
I had been looking at Xixit for a while as a possible candidate. And even though the
original game requires like a 486 CPU, I was pretty sure I could pull this off
on our little 8 Mhz 6502 system. Also, my friend Jim Leonard put me in contact
with the original programmer and musician and they said it was okay to make a port.
One interesting thing about Xixit is that it used a rather unusual screen
resolution. Most VGA games of the era ran in the standard 320x200 mode,
but Xixit actually ran in 320x240, which lucky for me is the native resolution of the X16.
So the first thing I did was grabbed a bunch of screenshots of the game
and brought them into paint-shop pro. I had to reduce these down to 16 colors.
And although the X16 does have a 256 color mode, it comes with a lot of disadvantages,
and I felt 16 colors would work better for the video RAM layout and multiple layers.
I ended up actually just re-drawing a lot of the assets by hand, to match their DOS
counterparts the best I could. I also had to re-create the Xixit font by hand. I used my
own PetDraw program for that on the Commodore 64 since it can edit the font and save it.
Of course, due to the way the X16’s graphics layers work I can still actually have more than
16 colors on screen. That’s because each layer can have its own palette. And then
there’s the sprites. I’m using 65 sprites for the playfield, so each position has a dedicated
sprite. All I need to do is turn sprites on or off to show whatever shape I want to show. I’m
also using 3 more sprites to show the next piece, and 3 more for the falling block. So,
a total of 71 sprites. And the good news is, each sprite can have its own palette as well.
So, how many colors are actually being shown? Well, as an example,
if I look at this screenshot in PaintShop Pro and ask it to count colors, it will
tell me there are 84 colors being used. So quite a bit more than 16.
Let’s talk about some other challenges. In the DOS version, when you make a match,
the shapes turn into little white dots and go flying around. Now, not to say that I
couldn’t do this, but it would going to be a lot of extra work and I wasn’t sure I had
enough left over sprites to accommodate all situations. So I decided to go another route,
and as you can see in my version the pieces have a self-contained explosion.
One little piece of trivia. I needed an animated explosion that was 16 by 16 pixels wide. So I
grabbed the artwork from the planet X3 tile set. And so, any time you see a little explosion in
Planet X3, that’s the same explosion in Xixit, so that’s a neat little tie in.
So, what about the music? Well, the original music was a 4 track scream tracker file, which is very
similar to Amiga Mod-Tracker files, only on DOS machines they had to be mixed in realtime by the
CPU because the sound card only had 2 channels. Actually, some of the songs used 6 voices.
The X16 also has the same 2-channel style digital output as a SoundBlaster would have.
The trouble is, nobody has yet created any sort of MOD tracker player for the X16,
and I’m not even sure if we have enough horsepower to do it,
especially as a background task. So, we needed to convert the music over to the Yamaha FM chip.
We have some amazing musicians in the X16 community, and Nico1690 took on
the job of converting the music. So he just opened the scream tracker file and
Furnace at the same time and transposed the tunes over note by note. Of course,
it’s not quite that simple. For example, he had to attempt to create sounds on the FM chip to
closely match the digital samples of the scream tracker file. And he did a really amazing job.
In fact, listen to this clip back to back. Here’s the original. And here’s the X16 version.
As a programmer, two of the biggest challenges were getting the scanning routine working,
and doing the plasma fields. Keeping in mind that I’m writing all of this in 6502 assembly language.
The way the scanning works, is each time a block hits the bottom, it will scan horizontally across
each row like this looking for any matches of 3 or more. If it finds any, it makes a note of
the matches, but doesn’t change anything yet. Then it performs a vertical scan like this,
again looking for matches and marking them. And then a 3th scan which is diagonal.
And a 4th scan which is diagonal the other direction.
Once it it is finished, it will explode any of the tiles that were marked. And then drop down
any pieces to fill gaps. But then it will run the routine again because as you can see sometimes
there are chain reactions. So the scanning routine keeps running until no more matches are found.
OK, so the plasma. Yeah, I brainstormed over this for a while and just couldn’t figure out how to do
it, especially with the resources I had, keeping in mind the original game ran on a machine with
probably 30 or 40 times the processing power, and I think most of it was written in C. So I
kind of cheated. I simply took a screenshot of some plasma, and down converted it to 16 colors,
or really 16 shades of gray. And so, all I needed to do was modify the 16 color
palette and cycle through whatever colors I wanted. The effect looks pretty good,
or at least I think it does. The shape doesn’t change like in the DOS version. But honesty,
most of the time you are focused on the pieces in the playing field anyway.
Of course, once I decided to go with color palette cycling, that opened up some other ideas for me.
So I implemented some of my own backgrounds such as this one, And heck, I even have one level where
it is snowing. And yes, this is color cycling too. You see, if you look at the original art,
I just had to carefully place each bit of snow in the correct color, and then write the software
accordingly. You can actually see here for example, if I play with the palette, I can have
no snow at all, or light up a single section of snow. It’s an old trick, but it works well here.
Of course, in the original version, you did have the option to disable the animation. In fact,
some of my beta testers said they found the animation distracting. But in the original
version, if you disable animation you are left with this static background of green
pieces for every level. Honestly, I find this to be distracting. So, what I did was
created some unique static backgrounds like this. And then, when you level up,
you will get a new static background. So, I think that worked out really well as an enhancement.
And now I just want to show you a few other changes I made to the game. This
is the instruction screen. I went ahead and embedded it into the main screen like
this. In the original DOS game, there was a dedicated screen for this. So, I did it
this way mostly to save RAM so I didn’t need to store a 3rd graphical screen for instructions.
I also changed the block sets. So, in the original game, you had crystals,
sparklies, wild, faces, and blobs.
And the big problem was sparkles was animated. Not to say I couldn’t do this, but it was going
to be a lot of work trying to draw all of these animation frames by hand. So I left that one out.
So in my version you get crystals, faces, blobs, wild, and a new one I call 8-Bit. So, just to show
you what some of these look like, here’s blobs. Here’s wild. Here’s faces. And here’s 8-Bit.
And the last change I made had to do with music. In the original DOS game,
you could pick your musical selection in the menu and you were stuck hearing that same
music over and over again. So, in my version, you get a random song when you start the game,
and the song will change every 2 levels, so you get some variety.
And well, that’s it. I just wanted to show some of the work that goes
into porting a game like this. You might be surprised it only took me about 4 weeks to
port this game. And a lot of people might be surprised by that and be asking, “well gee,
why did it take a year to make Planet X3, and 6 months to make the, at least the original,
Petscii Robots for the PET?” And the reason boils down to a number of factors and probably one of
the biggest factors is just the simplicity of Xixit. The game rules are fairly simple.
Petscii Robots, is an amazingly complex game as the player can choose to do 1 of a thousand
different things. Heck, I think I spent probably a week just designing a single map for the game,
and the current version has like 16 maps.
So, I often tell people who are learning to code, to start off with a smaller project, something
like this, before they move onto something more complex. And so that’s really it. I’m not selling
this game or anything like that. I just wanted another launch title for the Commander X16, which
by the way, we’re actually in the middle of producing the first batch of those, right
now. And there will be a follow up video on that pretty soon showing you how we are doing that. And
if you want to play around with this game, you can always download the Commander X16 emulator
and I’ll put a link down in the description where you can download the game for free.
Oh and one more thing. I sent a video clip over of the game running to Tran,
the original programmer of Xixit, and he actually replied just today and said that
he was impressed with how similar it looks to the original version. So, that’s pretty cool.
But that’s it for this episode, so as always, thanks for watching!