don't click here

Sonic CD Quirks (Sega CD Version)

Discussion in 'Engineering & Reverse Engineering' started by Devon, Jul 11, 2022.

  1. Devon

    Devon

    Tech Member
    970
    880
    93
    They just exist to extend the floor collision. The crusher works just fine without those invisible blocks.
     
    • Informative Informative x 3
    • Like Like x 1
    • List
  2. Devon

    Devon

    Tech Member
    970
    880
    93
    A more detailed look on the unused swinging platform object in Sonic CD v0.02 (object 0x29):



    While not placed in the stage, its graphics are loaded in act 2 around the area in which a swing is placed in the final.

    The number of chain links it spawns is determined by the lower 4 bits of its subtype value (0 = underflow, 1 = 0 links, 2 = 1 link, etc.). The upper 4 bits determine how it moves. There are 8 unique movement types:
    • 0x - Moves in a circular motion clockwise.
    • 1x - Moves in a circular motion counter-clockwise.
    • 2x - Moves 180 degrees downwards.
    • 3x - Moves 180 degrees upwards.
    • 4x - Moves 540 degrees, starts facing west.
    • 5x - Moves 540 degrees, starts facing north.
    • 6x - Moves 90 degrees downwards.
    • 7x - Moves in a circular motion counter-clockwise, and also spawns object 0x13, which is a Mosqui in Salad Plain. It is unknown what the object was intended to be (maybe a switch?).
    It was speculated before that it was meant for Tidal Tempest, but the fact that the graphics do load here say otherwise. In fact, the final swing object in Palmtree Panic also features 8 different movement modes, while the one in Tidal Tempest only has 2 movement modes, both moving in circular motions.




    Really, the idea of remnant objects from other zones in v0.02's R1 doesn't really work out when you realize that Sonic's movement code references the Collision Chaos pinball flippers by object ID, yet the actual object is not found in the v0.02 build. Also, the Collision Chaos remnants in v0.02 are all within Sonic's object code, which makes sense, since it's shared between stages.

    Also, in v0.02, a pre-v0.02 FM sound driver can be found in the stage files, and they contain an even earlier version of the time warp sound.
     
    Last edited: Feb 26, 2023
    • Like Like x 11
    • Informative Informative x 3
    • Useful Useful x 1
    • List
  3. Brainulator

    Brainulator

    Regular garden-variety member Member
    God, that sound is the worst of the time warp sounds I've ever heard!
     
  4. Billy

    Billy

    RIP Oderus Urungus Member
    2,062
    131
    43
    Colorado, USA
    Indie games
    Oddly fitting for that time warp background though.
     
  5. RagaSonic

    RagaSonic

    Member
    3
    0
    1
    Strangely time warp remembered me Sonic Spinball after to get Emerald
     
  6. Devon

    Devon

    Tech Member
    970
    880
    93
    I've received a few comments on Twitter that compared it to Sonic Spinball among those commenting on how dreadful it sounded, so you're not alone there.

    [​IMG]
    [​IMG]
    [​IMG]
     
    • Informative Informative x 2
    • List
  7. The flowers throughout the game have a small bug that I don't think has been documented anywhere (probably because it is only noticeable when moving very slowly). When moving horizontally, they disappear way too early (as in, they vanish the moment they are more than halfway off the left and right sides of the screen). This seems to be the result of the fact that they never bother to set their width:

    Code (ASM):
    1.  
    2. .TouchDown:
    3.    move.b   #4,oRoutine(a0)           ; Set routine to animate
    4.    move.b   #1,oAnim(a0)           ; Set animation to seed planted animation
    5.    move.b   #$30,oYRadius(a0)       ; Set Y radius
    6.   ; oWidth ($18 pixels) should be set here, but it isn't...
    7.    bra.w   ObjFlower_Animate       ; Continue to animate sprite
    8.  
    With no width set, DrawObject culls them the moment they are more than halfway off the screen. As far as I can tell, this should be a single-line fix with "move.b #$18,oWidth(a0)".
     
    • Like Like x 2
    • Informative Informative x 2
    • Agree Agree x 1
    • List
  8. Devon

    Devon

    Tech Member
    970
    880
    93
    I would like to make a correction, as these are incorrect, actually. The track structure address is actually incremented before calling the update function, and on top of that, each song adds in a dummy slot for the removed rhythm channel, so things are actually kept aligned properly. My apologies!

    [​IMG]
    [​IMG]
     
    • Like Like x 2
    • Informative Informative x 2
    • List