don't click here

Sonic CD Quirks/Deconstruction

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

  1. Brainulator

    Brainulator

    Regular garden-variety member Member
    It should be noted that frameout is the object deletion subroutine.
     
  2. BenoitRen

    BenoitRen

    Tech Member
    252
    105
    43
    Some sprite_pattern objects are noted to contain zero entries of sprite data, yet when you actually look at the array you see that there is an entry of data.

    The first time it appeared in BLOCK.C as the first pattern:
    Code (Text):
    1.  
    2. sprite_pattern block0 =
    3. {
    4.   0,
    5.   { { -12, -12, 0, 403 } }
    6. };
    Then as the last pattern of Metal Sonic's appearance in Collision Chaos (MSNCCG.C):
    Code (Text):
    1.  
    2. sprite_pattern msnc3_patF = {
    3.   0,
    4.   { { -28, -24, 0, 433 } }
    5. };
    And now again as the last pattern of one of Sonic's friends in Tidal Tempest:
    Code (Text):
    1.  
    2. sprite_pattern spr_friend4_99 = {
    3.   0,
    4.   { { -8, -12, 0, 497 } }
    5. };
    In the cases of BLOCK and FRIEND4, they share an index (the last number) with a neighbouring entry. Metal Sonic's doesn't.

    Could this be a typo made during conversion? I've noticed that data structures in Sonic & Knuckles Collection have zero-based numbers to denote how many entries they have. The loop that treats them counts downwards until the counter is negative.