Thursday, January 4, 2018

Flying Battery enemies in S3A

In my previous post, I pointed out how S3A's object layout for Flying Battery Zone 2 has a second object placed slightly to the left of the end capsule, at coordinates $3130, $6D8:
FBZ2_Sprites:   dc.w   $80,   $80,     0, $3130, $86D8, $B400, $3210, $8660, $C600
                dc.w $FFFF,     0,     0
There isn't really any easy way to make the game load the level properly, and even if it did, there aren't any level blocks to stand on. Instead, let's just look up object ID $B4, or 180 in the object list:
    dc.l Obj_ICZEndBoss             ; 178
    dc.l Obj_ICZMiniboss            ; 179
    dc.l Obj_FBZEndBoss             ; 180
    dc.l Obj_HCZEndBoss             ; 181
    dc.l Obj_AB_1_FBZ_Laser_Boss    ; 182
    dc.l Obj_C6_1                   ; 183
    dc.l Obj_ICZCrushingColumn      ; 184
That's right! Like I documented in this video a couple of years back, Flying Battery Zone's bosses are fully implemented in Sonic 3, apart from an overall lack of sound effects, anyway. This includes act 2's laser miniboss even though it's not actually placed in the object layout.

Incidentally, I based that video's presentation on GoldS' legendary Sonic 3 and Knuckles Glitches and Oversights video series, which I sure hope all of you have already watched by now.

That's not all, though. If we go a bit further up the list, what do you suppose we'll find sandwiched between the enemies for Marble Garden Zone and Icecap Zone? (Carnival Night Zone's enemies are even higher up for some reason.)
    dc.l Obj_Spiker                 ; 165
    dc.l Obj_Mantis                 ; 166
    dc.l Obj_Blaster                ; 167
    dc.l Obj_TechnoSqueek           ; 168
    dc.l Obj_AIZ_EndBoss            ; 169
    dc.l Obj_Penguinator            ; 170
    dc.l Obj_StarPointer            ; 171
Both of Flying Battery Zone's regular enemies are also implemented! However, since their graphics normally get loaded through a PLC at the start of the level, they went out the door with the rest of the level load block.

Much like the bosses, both enemies are fully functional, except that Blaster tends to get stuck in place after firing some of his bullets. Oh, and you can jump on his bullets and they blow up like enemies. Freaky.


  1. According to TCRF, placing a sideways TechnoSqueek in debug mode crashes the game. I assume it wasn't properly coded yet. Then again, they seem to act as if the TechnoSqueek and Blaster graphics are in S3A. It would explain why they appear in the Western Sonic 3 manuals.

    1. There does seem to be something wrong with vertical Technosqueeks; they somehow pull out a bad mapping frame, which probably results in a misaligned read and indeed, a crash.

    2. Actually, Kega Fusion seems to instead have a frame in which the garbage mapping frame is displayed with results akin to when you enter debug mode on a 3D object, so I imagine the same thing is happening.

  2. Seems like they modified the object layout and deleted many of the objects.

    1. I doubt they deleted anything. The bosses are there so the screen locks could be tested, but it's far more likely that the rest of the item placement simply wasn't done yet.

      Contrast with the unused Mushroom Valley Zone layout, which even features objects whose ID points to a dummied-out entry in the object list.