Tuesday, January 9, 2018

Eosian Balls

An anonymous commenter asked:
Could you write about the rotating red sphere thing on AIZ1 (Sonic 3 alone debug)? Did that have any purpose other than destroy the game´s palette and framerates?
Directly after the surfboarding Sonic object, Angel Island Zone 1's debug reel once again treats us to an unusual sprite: a set of red spheres revolving around each other in three dimensions:


What on earth could be the purpose of this object? Here's what I conjectured when I was just a kid: it's only available in AIZ1's debug reel, it comes right after the surfboard, it's red and it messes with the HUD once it's placed. It must be the early equivalent of the cutscene Knuckles object! I was a dumb kid.

The truth makes considerably more sense: it is a test of the 3D sprite effect seen in the game's special stages. The fact that the object is part of AIZ1's debug reel seems to be entirely circumstantial; it was likely added to the first level of the game simply for ease of access. However, its origins in the special stage become evident when we look up the location of its graphics within the ROM:

NameAddress
ArtUnc_SStageTailstails0909E8
Map_SStageTailstails0910E8
PLC_SStageTailstails091106
ArtNem_SphereTest0911CE
ArtNem_SStageShadow091B2E
ArtNem_GetBlueSpheres091B70
ArtNem_GBSArrow091CF2

The object's overall behavior can actually be controlled by player 2. The controls, although a tad obtuse, are as follows:
  • Down/Left: moves the object up and down
  • Up/Right/B: toggles the rotation of each axis
  • A/C: shrinks/enlarges the object
  • Start: toggles between automatic and manual rotation

No doubt owing to its roots, the sphere test object stores its movement and rotation state in a region of RAM starting at address $E400, which is used by the special stage for the same purpose. In the main game however, the same area is used to maintain a buffer of the player's last few positions. As a result, exiting debug mode and moving around will very quickly make the object become all kinds of messed up.

11 comments:

  1. Replies
    1. No, it uses a bunch of sprites pre-rendered at various sizes, just like the the special stage.

      Delete
    2. The Genesis VDP cannot scale graphics. The 32X and SNES can, however.

      Delete
    3. ...Hence software scaling.

      Delete
  2. What does "Eosian" even mean?

    That last sentence does explain why the controls were weird for me, so thanks.

    ReplyDelete
  3. Since you have covered the Surfboard and the Rotating spheres, could you talk about the "Eggman flying away" sprites?

    ReplyDelete
  4. Heh. Looking back through the blog as I do every now and then, and I can't help but smile reading this post - I never would've imagined that we'd one day actually *have* a proto showing the special stage test sphere in its "intended" habitat, as it were!

    I mean, sure, the location of the graphics in the ROM combined with the nature of the object itself pretty much confirm it was a special stage test, but it's still pretty fantastic to actually be able to see it in action.

    ReplyDelete
  5. There’s a lot of pallets glitches for the rings. Can you talk about those

    ReplyDelete