Sonic Unused Content/Prototype Digging General

Discussion in 'Discussion & Q&A' started by Devon, Jun 30, 2022.

  1. Mega De Glitcher

    Mega De Glitcher Newcomer Trialist

    Joined:
    May 20, 2023
    Messages:
    6
    Location:
    Secret Jungle Zone
    I am not sure if this is really a proto, so I am sorry,
    but I think i might have found the cleanest version of that red wrecking ball footage so far!
     
  2. MDTravis

    MDTravis Local Prototyper Member

    Joined:
    Dec 22, 2019
    Messages:
    24
    None of these were in-game. They were edits done, placed over a context of what should've shown footage of Mickey Mouse: Castle of Illusion.
    Recordings of the film are available for these, which shows way better where the edits are placed in the footage.
     
    Devon and JGamer2151 like this.
  3. Devon

    Devon Down you're going... down you're going... Member

    Joined:
    Aug 26, 2013
    Messages:
    1,372
    Location:
    your mom
    I apologize if this has been pointed out before, but I haven't seen this before anywhere.

    I was doing some digging into Knuckles' Chaotix on my own time and I came across this totally unreferenced sprite that seems to have been meant to go with sprite set 0x2E (the one at 0x172F64). This particular sprite can be found at address 0x173B68. It looks like some kind of coil. The Sonic Retro wiki does mention something about "a coiled spring-like object", but I wasn't sure if it referred to this, so here it is.

    [​IMG]

    This is the only unreferenced sprite in the game it seems.
     
  4. Devon

    Devon Down you're going... down you're going... Member

    Joined:
    Aug 26, 2013
    Messages:
    1,372
    Location:
    your mom
    There's this string of text at address 0x2D997E that lists the programmers of the game. I don't think this appears in-game (it doesn't appear to be referenced anywhere by the game, plus it uses \r\n for line breaks) nor does it seem to be documented anywhere online.
    Code:
    32X CHAOTIX TEAM PROGRAMER HIROSHI OKAMOTO,TOSHIAKI YAJIMA,TATUO YAMAJIRI,KENJI KAWAI AND CHIKAHIRO YOSHIDA
    
    MD SONIC TEAM PROGRAMER HIROSHI OKAMOTO,TOSHIAKI YAJIMA,KENJI KAWAI,CHIKAHIRO YOSHIDA,SYUJI TAKAHASHI AND ARATA HANASHIMA
    
    THANK YOU FOR PLAYING!! AND SEE YOU AGAIN!!
    
     
  5. Devon

    Devon Down you're going... down you're going... Member

    Joined:
    Aug 26, 2013
    Messages:
    1,372
    Location:
    your mom
    So, people know that in the Nick Arcade prototype of Sonic 2, Green Hill Zone has broken collision. This is due to the game using a different set of collision blocks that Green Hill is not compatible with. I've seen people throw around that the cause was due to stage layout or chunk format changes. The thing is that collision happens on the 16x16px blocks that make up the chunks, which was only really updated to handle 2 sets of solid setting bits for the path swapping mechanism instead of 1, so the way collision detection works is more or less the same as in Sonic 1. Again, just an incompatible set of collision blocks.

    Perhaps lesser known is that the original Sonic 1 collision block data remains in the ROM, and there does exist Game Genie codes to make the collision functions use that instead. But, did you know there's a dummied out function in the game that was meant to pick between the Sonic 1 and Sonic 2 collision blocks, depending on if it was in Green Hill Zone or not? Check it out, it's found at ROM address 0x13024.
    Code:
    SetCollisionBlocks:
            rts                                             ; This rts makes the function immediately exit out
    
            lea     ColArray1_S1,a1                         ; Use Sonic 1 collision block heights
            tst.b   Current_Zone                            ; Are we in Green Hill Zone?
            beq.s   .StartBlockSet                          ; If so, branch
            lea     ColArray1_S2,a1                         ; If not, use Sonic 2 collision block heights
    
    .StartBlockSet:
            lea     ColArray1_S2,a2                         ; Overwrite collision block height area
            move.w  #$1000/2-1,d1                           ; $1000 bytes total
    
    .SetHeights:
            move.w  (a1)+,(a2)+                             ; Set collision block height data
            dbf     d1,.SetHeights                          ; Loop until finished
    
            ; a1 now points to the collision width data
            ; after their associated collision height data
    
            lea     ColArray2_S2,a2                         ; Overwrite collision block width area
            move.w  #$1000/2-1,d1                           ; $1000 bytes total
    
    .SetWidths:
            move.w  (a1)+,(a2)+                             ; Set collision block width data
            dbf     d1,.SetWidths                           ; Loop until finished
    
            lea     AngleMap_S1,a1                          ; Use Sonic 1 collision block angles
            tst.b   Current_Zone                            ; Are we in Green Hill Zone?
            beq.s   .StartAngleSet                          ; If so, branch
            lea     AngleMap_S2,a1                          ; If not, use Sonic 2 collision block angles
    
    .StartAngleSet:
            lea     AngleMap_S2,a2                          ; Overwrite collision block height area
            move.w  #$100/2-1,d1                            ; $100 bytes total
    
    .SetAngles:
            move.w  (a1)+,(a2)+                             ; Overwrite collision block angle area
            dbf     d1,.SetAngles                           ; Loop until finished
            rts                                             ; Exit out of function

    This does get called when a stage is initialized, but with it being dummied out, it doesn't do anything at all. It wouldn't have worked with a normal ROM chip anyways since it's designed to overwrite cartridge area data. Nevertheless, it's still a fun fact to know that they did account for it, and probably worked on whatever development hardware they had... it's just nonfunctional in this specific build.

    Also, here's a visualization of the broken collision in Green Hill Zone.

     
    Last edited: Nov 11, 2023
  6. Devon

    Devon Down you're going... down you're going... Member

    Joined:
    Aug 26, 2013
    Messages:
    1,372
    Location:
    your mom
    So, someone by the name of Legobouwer9 discovered that part of the raw graphics used for Brenda's Sand Shower concept was found in one of Tom Payne's disks. No palette data was found, so this is what was released, using Sonic's palette:

    [​IMG]

    I went ahead and attempted to reconstruct the palette, based on both the portfolio tape and a potential set of colors used for the sandcrab enemy in the Tom Payne disks.

    [​IMG]

    With palette cycling:

    [​IMG]
     
    Last edited: Jan 13, 2024
    Nik Pi, JGamer2151, Super321 and 4 others like this.
  7. Devon

    Devon Down you're going... down you're going... Member

    Joined:
    Aug 26, 2013
    Messages:
    1,372
    Location:
    your mom
    Zone 0D act 1 in Sonic 3 is not an actual scrapped stage, but rather the basis for a quick hack.

    Act 1 used as a dummy slot in the stage graphics table. The way the game handles loading the Angel Island act 1 graphics is that if you are playing as Sonic and you have not hit a checkpoint, then it uses the normal slot for loading the intro specific data. Otherwise, if you are playing as Tails or Knuckles, or if you have hit a checkpoint, then it uses the dummy entry defined for zone 0D act 1 to load the normal stage data instead.

    [​IMG]

    For instance, here's palette $0A used by Zone 00 act 1:
    [​IMG]

    And here's palette $2A used by Zone D0 act 1:
    [​IMG]

    Here's an example check used to pick between the intro or stage slot, commented for readability:
    [​IMG]

    tl;dr it's basically just an easy and quick way to spawn into AIZ1 with its data already properly set up while skipping the intro cutscene. As for act 2, it's just the ending for Sonic (3) & Knuckles.

    I also saw a claim that zone 0D was also just used to give Hidden Palace its title card, but that's also not true. The title card graphics table isn't necessarily tied to zone IDs, because they do some manual zone ID checks. Here's one for Hidden Palace:
    [​IMG]
     
    Last edited: Feb 8, 2024
    Pokepunch, JGamer2151 and DeltaWooloo like this.
  8. The Beard

    The Beard Newcomer Trialist

    Joined:
    Jan 28, 2024
    Messages:
    5
    I've been digging through the Sonic 1 Prototype dumped by drx of Hidden Palace, and I found some weird, glitched lift platform in Star Light Zone Act. 2... I don't know what it is, so figured i'd ask here.
    Sonic_the_Hedgehog_(16-bit)_(Prototype)-240214-163416.png