Wondering if this animation quirk can be considered a bug or not

Discussion in 'Engineering & Reverse Engineering' started by Blastfrog, May 7, 2020.

  1. Blastfrog


    Frog blast the vent core! Member
    Hey, so I have a question. In Sonic 2, Sonic's first frame of the walk animation only lasts a single refresh because he lacks one line of code that Tails has that allows the full duration to play of the first frame. In Sonic 1, Sonic's first frame plays in full. and in Sonic 2 if you change it back to how it still is for Tails, it honestly looks far better (in my opinion, at least).

    Can this be considered a bug or oversight by SEGA? Or is there some reason to believe that this 1-refresh first frame thing may have been intentional and not just a result of sloppy coding? I imagine they were just trying to cut down on code that didn't seem necessary after changing from a 12 frame walk to 8 frame, since the Wait beta has extra code to make it animate faster.

    I personally believe it's a bug, but I'm curious what others think.
  2. RetroKoH


    Project Sonic 8x16
    Funny enough, I managed to recreate this in an old Game Maker engine I was working on years ago, when I ported over some code, just messing about a bit.
    I will look into it when I get home, but to answer your question, I'd consider it a minuscule bug at worst. Most would likely never notice it.

    Speaking of bugs in animations, there are two more. In one of the later games (I forget which), if you press a button to rev the spindash, Sonic's spindash animation resets because each press leads to the animation being set to the Spindash animation again. I fixed that in my hack because it annoys the hell outta me.

    Another one can be seen in stock Sonic 1. IDK about later games... but when Sonic is walking and walks off a ledge, his walking animation seems to reset back to the first frame and it looks so janky.

    I'm sure we could muster up a ton of animation/mapping related bugs in here. How about Sonic's ducking sprite in Sonic 1, or Knuckles look up animation in S3K. Both are off center and it triggers me something fierce.
  3. Ralakimus


    pretty much a dead account Tech Member
    It's in Sonic 2 and 3K. I think it was deliberate because they also went out of their way to set $1D(a0) to 0. $1D(a0) is primarily used for checking if the animation ID was changed, so that it can properly initialize it, so setting it to be different than the current animation ID will cause the current animation to reset.

    $1D(a0) gets set to 1 in that instance, which resets the animation (as long as the current animation ID isn't 1, though, that's the running animation, which is already handled as a special case for animation ID 0, which is what is used throughout the game, so whatever), so I'd argue that was also done on purpose, too. This is in all of the main classic Sonic games.
    Last edited: May 7, 2020
    • Like Like x 1
    • Agree Agree x 1
    • List