Soulstar – Under The Hood – Part 2

Before I go any further, a special mention should be made of the music. All the music for the game was composed by the excellent Nathan McCree. I personally love the music, I still listen it today in the car from time to time with a big grin on my face as I remember the old days… Ah, I can still remember Nathan finishing the title music and letting myself and my artist and friend, Roberto Cirillo, have a listen. Well, I was so happy, and knew the music was going to be great.

Linear Stages

On the linear stages of the game, we had all the attack runs planned out in time of seconds, so that Nathan could compose the music to suit. So, when mid-stage bosses appear, you’ll hear the music change mood. This can especially be heard on the Guha Surface music, when the large alien ship swoops down to attack the player. The game syncs itself with the music, adjusting the speed of the scrolling if the game starts to lag due to dropped frames when the screen gets very busy. Fortunately on the Mega-CD, there was a way to read the current time code of the audio, so keeping everything in sync was relatively easy.

Countdown Music

One other musical mention has to be for the countdown stages, one inside the Warpship to select an exit gate, and the walker stage of Bulkan. I sometimes wonder if people saw it coincidental that the countdown and music were in sync… but I can assure you it was very much intentional, as I’ll explain.

The game has a 99 second countdown before the level explodes and kills the player. Since I knew how to sync the game with music, we thought it would be a great idea to make the countdown music in time with the countdown itself.

Well, Nathan did an amazing job, and the code worked flawlessly. It was so awesome to see it for the 1st time, just a neat little touch.

Planet Leira

The first section of the game is actually split into 3 parts, although the music plays throughout.

The first part is the approach to the planet Leira. All the enemies use my scaling sprite system, so there isn’t much to say about them other than most use the software depth fading applied to the most distant sprites.


The background is a standard playfield, with horizontal scrolling as the player moves left/right across the screen.

There is a 2nd playfield in front of the background, and this one has an image of the planet, drawn by the scaling chip. To keep down the number of characters drawn and used by the 2nd playfield, only part of the playfield is defined by characters, with the rest filled with a transparent character.

I should point out that pretty early on I worked out that there wasn’t enough time to draw and transfer the entire screen, concluding that half a screens worth of background graphics could be drawn without any problems. On later stages I had to use a few tricks to make everything work, but I’ll detail those later. But for Leira, I defined a square region, centred at the bottom of the screen.

As the stage progresses, the planet slowly grows in size as you approach it. I was inspired by Galaxy Force II, one of my favourite arcade games of the time. Since there isn’t enough characters to make the planet fill the whole screen, instead the planet slowly works its way down the screen as it enlarges, finally fading the screen out as it reaches its maximum permitted size.

So here’s a few images to show the progress of the planet scaling; notice how it moves down the screen…



When the planet reaches its largest size, the screen fades out. This is to cover the setup for the 2nd part, the flight across the surface.


The background is changed to show a horizon of spikes, using the same palette as the floor. We did this so that the floor blends into the background.

Although it looks like it’s on the same playfield as the background, the floor is actually on a 2nd playfield. This is so the background can be scrolled left/right as the player moves. The upper half of the 2nd playfield is set to a transparent character so it doesn’t need to be drawn. Only the bottom half is used, and that has a perspective floor drawn onto it. Some would call it a “Mode 7” floor, but on the Mega-CD it’s just one operation the scaling chip could do.

The scaling chip works by rendering a rectangular image line by line, each line needing a start x,y position, and a delta x,y to trace across the source image.With the right maths plugged in, it can draw a 3D looking floor. Again, as with other 3D floors, the distant lines are software modified by using depth fade tables, so that the floor blends into the background.

All the objects are drawn by using the sprite system, with the towering structures using the same palette as the floor so that they blend in nicely.

At the end of the stage, the ship fires its thrusters and climbs as the screen fades out, fading back in on part 3, the approach to the warpship.

Only half of the warpship is drawn, the rest being x-mirrored.

The far background is the same as used by the first part, but with a 2nd playfield for the scaling warpship. All the enemies are drawn using my sprite system, so there’s not much to say about that.

Again, since there isn’t enough time to draw the entire screen, only half of the warpship is drawn. To render the 2nd half, the left side of the playfield is defined normally, with the right half mirrored using the MegaDrives character x-flip. As a result, only half the screen needs to be drawn, as the playfield hardware will mirror the other half.

When the warpship is small enough, the screen scrolls left/right as the player moves. But once the warpship becomes too large, the background is centred and locked so it can’t move. I had to do this, otherwise there would be an ugly gap along the edge of the warpship as the player moved left/right, thus exposing the transparent characters surrounding the scaling portion of the screen.

Warpship is centred when it becomes too large to allow side scrolling.

Since only half of the warpship is drawn, once it’s centred, it can easily fill the whole screen. I have to say, I had a bit of a giddy excited moment when it all worked. To me, it was like a re-creation of the first stage of Galaxy Force II, when the moon expands large enough to fill the whole screen.

That’s all for now, folks!

Hope you found the above interesting, but there’s plenty more tricks to talk about in part 3…

6 thoughts on “Soulstar – Under The Hood – Part 2

  1. Thanks for sharing, I really wondered how that worked out knowing the Mega CD and Megadrive limitations and we can say that you really made a fantastic work to work around them. It’s exactly the details I wanted to know.

    Liked by 1 person

  2. Thank you very much for this. Not just for the posts about Soulstar, but for the game itself. It is to this day one of my fondest gaming memories.
    The warship could be a bit confusing at first, but that could also have been me being in my teens.

    Was the only difference for difficulty the order of the stages? IIRC the easy route gave you the stage where you could get the yellow laser as the first one after the warship, making the game easier going forward. Other than that I didn’t notice any changes. (I don’t think I ever tried the hard portal though).

    Once again, thank you so much for this game. I really love it, might have to replay it sometime soon (also bought Thunderhawk and Battlecorps, but BC was just too hard for me)


  3. This music sinch with the in game putt cinematrograph felling to the gameplay I have to say !

    The silence before the big boss in the cave was something !

    I am replaying that game… Dispite I have the CD I don t have the console anymore… so I have to use retroarch or Kegen to play it (using a iso), but the good point of this is that I m using mine airplane old control from logitech, that I use to play afterburner (Imagine an afterburner in your witch hands….omg)

    Part 3 part 3 : ) y

    Liked by 1 person

  4. Thank you so much for posting part 1 and part 2. Looking forward to you sharing more of your knowledge of the SEGA CD hardware!


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s