Under the Microscope: Astal

In honor of the 30th anniversary of its original release, I took a look at Astal. Here’s what I came up with:

  • An alternate title screen
  • A more complete level select menu
  • A more complete sound test
  • CPU debug display

Details are below! Here’s a video of the alternate title screen in action:

You can check it out for yourself with this Action Replay code:

060b02a8 e204


Mode select

A lot of games operate something like this:

That is, they run an infinite loop that executes logic for a bunch of different “modes.” When the mode number changes, different logic executes.

Astal’s “primary loop” lives in the function at 060b0000. It knows about 10 different modes. The ones you encounter during a normal startup are:

  • 00: Loading during the Sega logo
  • 02: The opening animation
  • 08: The title screen
  • 05: Gameplay

The “current mode” is controlled by the value at 060dbb82. If we set a write breakpoint for it, we can have the game change to whatever mode we want. What’s 01?

An alternate Sega logo that looks like it was poorly captured from a VHS tape

A different Sega logo. Weird! How about 03?

Still from the intro video

Aha, the anime-style video (which has vocals in the Japanese version). And 04?

…an alternate title screen?


The unused title screen

This title screen seems to be less polished than the one that’s normally used. It does match what’s shown in anime-style video, though. Maybe it’s an older version?

Left: The unused title screen. Right: The normal one.

This title screen has a stage select menu available by default. It’s better than the one you can activate with button codes — unlike that one, you can select boss rounds and the between-stage cut scenes.

The sound test is also better than the one that’s normally available. It lets you play more things, and tells you their file name.


Enabling debug data

It’s almost always worthwhile to see what plain text strings are defined in the game’s code. Astal has a few suggestive ones:

If we follow their references, we wind up at 060dbb9e. When it’s set to something other than 00, debug information pops up on the screen.

This is not super useful information, at least to me. Some games (like NiGHTS Into Dreams) will show your character’s coordinates on the debug screen, which can help lead to interesting game functions.

Alas, I don’t know how to make the ASS HEAD or ASS PALETTE messages show up.


Odds and ends

For completeness, the other modes are:

  • 06: difficult to explain, but not very exciting
  • 07: the auto demo
  • 09: the Sega logo you get after a soft reset
Many games show a different Sega logo after a soft reset

Astal has several known cheat codes. I checked for extra ones, but didn’t come up with any.

Also, I checked into the the Mario sprite that’s mentioned at The Cutting Room Floor. There didn’t seem to be a way to make it display — it’s part of the code that displays the opening movie, weirdly.

Incidentally, the message that’s mentioned on TCRF (“Guu… I’m sleepinggguuu…”) also appears in lots of other games — it seems to be part of a CPK (video file) library.


Outro

Which other games should I be examining? Give me your suggestions in the comments!

This article is syndicated from Rings of Saturn, my reverse engineering blog. Check it out for dozens of articles on the inner workings of retro games.

About the author

Bo Bayles

Rings of Saturn: 32bits.substack.com

Readers Comments (1)

  1. Saturn Memories 2025-04-23 @ 13:22

    Do Digital Dance Mix and find those hidden VF3 connections! 😉

Leave a comment

Your email address will not be published.


*