don't click here

Sonic 3 Complete

Discussion in 'Engineering & Reverse Engineering' started by Tiddles, Dec 25, 2009.

  1. MainMemory

    MainMemory

    Kate the Wolf Tech Member
    4,741
    338
    63
    SonLVL
    Because Act 1 doesn't have an outdoor section that matches Act 2's?
     
  2. RetroKoH

    RetroKoH

    Member
    1,662
    22
    18
    Project Sonic 8x16
    Is it not possible to put that outdoor section into Act 1? I understand what you mean about that outdoor section, I see it in SonLVL... but is it not possible to put this in the first act layout? Or is it not that easy?
     
  3. Josh

    Josh

    Oldbie
    2,123
    1,087
    93
    USA
    I think he knew that, but was just jabbing me over the filter. :P It's okay, I like 'em.

    You can also see an odd effect if you climb the final section of Flying Battery 2 quickly enough, which is fairly easy to do with Super/Hyper Knuckles. It's a little less obvious with FBZ at night, but you see the sky color rising through the background.

    [​IMG]
     
  4. Knucklez

    Knucklez

    I love 2B 'n' ass. Member
    687
    21
    18
    Not sure if this was posted elsewhere already, but this just made me burst into tears. This game is truly at my core and is a significant part of who I am today.

     
  5. RetroKoH

    RetroKoH

    Member
    1,662
    22
    18
    Project Sonic 8x16
    I didn't see any such bugfix in the changelog... so I'm wondering, does anyone know of a game crashing bug involving the MGZ2 boss? I got a game crash where the boss starts to go up after drilling into the ground for the boss fight. I'm playing as Sonic alone, w/ Lightning Shield, and got about 6 to 7 hits on him before he was about to go up, and the game just up and reset.

    I can't seem to replicate this bug, nor have I EVER seen it before (in all the time I've ever played this since around 97). Tiddles, I'm curious if you've seen it before? I also didn't see it in Orkal or Razor Zenon's S3K bug videos.

    ALSO
    "Is it not possible to put that outdoor section into Act 1? I understand what you mean about that outdoor section, I see it in SonLVL... but is it not possible to put this in the first act layout? Or is it not that easy?"
    Re-asking this question just outta curiousity... ICZ Act 1 transition, I'm on about here.
     
  6. Tiddles

    Tiddles

    Diamond Dust Tech Member
    471
    0
    0
    Leicester, England
    Get in an accident and wake up in 1973
    Have you had this happen in S3C? It sounds like "Fixed possible Marble Garden 2 boss corruption after killing a Spiker with hyper dash," which was fixed back in 091230 - that's caused by Tails' dormant SST in Sonic Alone mode getting some bum data in it in those conditions, causing Tails to break things when he spawns. The fix just makes sure to clean out his object slot when he appears in that case, so it should cover any other causes of that scenario.

    The thing you have to remember is that Sonic 3 Complete tries its damnedest to be as stable as or more stable than the original, and that every significant change carries risk. In this case, redoing the chunk layout, object layout, transition, screen events and background events (don't forget both bosses visibly appear against Act 2's backgrounds) to possibly avoid a rare, non-game-breaking glitch isn't really compatible with that goal. On the plus side, it's much harder to reproduce with flamewing's improved Kosinski decompressor implemented anyway.
     
  7. RetroKoH

    RetroKoH

    Member
    1,662
    22
    18
    Project Sonic 8x16
    I only had it happen in a clean S3K... that said it wasn't caused by a hyper dash. I was regular Sonic alone with just an electric shield... that said, it may very well be fixed anyway...
     
  8. muteKi

    muteKi

    Fuck it Member
    7,851
    131
    43
    I've definitely seen that bug, but I also have to say that I can't remember the last time I saw it while playing this version of the game. It is indeed quite difficult to trigger.
     
  9. Blastfrog

    Blastfrog

    See ya starside. Member
    Not difficult when you're hyper. Though, I don't know what it's like with the decompressor being rewritten.
     
  10. RetroKoH

    RetroKoH

    Member
    1,662
    22
    18
    Project Sonic 8x16
    Difficult for me then. I've NEVER triggered this when Hyper...
     
  11. Tiddles

    Tiddles

    Diamond Dust Tech Member
    471
    0
    0
    Leicester, England
    Get in an accident and wake up in 1973
    Which one are we talking about now? The decompressor is only relevant to Icecap (out of the discussions here).

    In case you're interested, here's a demo of the worst way I know of breaking it between the release build (first) and the current build (second).
     
  12. RetroKoH

    RetroKoH

    Member
    1,662
    22
    18
    Project Sonic 8x16
    Oh wow... I just now realized that Sodahlic was talking about something COMPLETELY different. (I think) MuteKi and I were referring to the MGZ boss thing...
     
  13. Doesn't the snow on the ground slow you down? Maybe strategically putting something that you have to jump over, like those pillar things that go up and down?
     
  14. Blastfrog

    Blastfrog

    See ya starside. Member
    Personally, I'm curious about how feasible it'd be to make the foreground part of Act 2 part of the same layout as Act 1 and just swap the background. Not asking that this be done as the current solution is good enough, but I was wondering if it's theoretically doable or if it'd take too much memory.

    Yeah, I was talking about the Ice Cap thing.

    I think it'd be best not to change the design in that way. With the video Tiddles posted, it's already a lot more stable, and the visual effect is much more subtle. And that was the worst way to break it, normally you don't even encounter it at all.
     
  15. muteKi

    muteKi

    Fuck it Member
    7,851
    131
    43
    I was referring to the ICZ transition, actually
     
  16. RetroKoH

    RetroKoH

    Member
    1,662
    22
    18
    Project Sonic 8x16
    Oh... well I done gone and derped then. LOL
     
  17. RetroKoH

    RetroKoH

    Member
    1,662
    22
    18
    Project Sonic 8x16
    I need to bump the topic for bringing up something that I believe to be a bug. This bug exists in the last S3C release AND the original game.

    As Sonic or Tails, if you have a fire shield and are going at a horizontal speed of 4.5 or greater... you can bust through the wall simply by jumping into it. Mind you, I'm not talking about performing Sonic's fire blast technique, I mean simply jumping into the wall fast enough when having the fire shield, as either Sonic or Tails. This doesn't happen with Sonic or Tails with any other shield, or invincibility, or when they are shieldless... in fact, the only other time they could bust through walls by jumping into them is when in Super form.

    I believe this is not the intended thing to happen, and is due to an oversight in the Breakable Wall's coding: (Relabeled code but otherwise identical to vanilla S3K)

    Code (Text):
    1.  
    2.  
    3.         tst.b   (Super_Sonic_Knux_flag).w   ; is character in his Super/Hyper form?
    4.         bne.s   BreakWall_Break         ; if yes, branch
    5.         cmpi.b  #id_Knux,character_id(a1)   ; is Player 1 playing as Knuckles?
    6.         beq.s   BreakWall_Break         ; if yes, branch
    7.         btst    #4,status_secondary(a1)     ; does the character have a Flame Shield?
    8.         bne.s   BreakWall_ChkRoll       ; if yes, branch
    9.         btst    #5,status(a0)           ; is character pushing against the wall?
    10.         beq.s   BreakWall_ChkP2         ; if not, branch
    11.  
    12. BreakWall_ChkRoll: ;loc_215E0:
    13.         cmpi.b  #2,anim(a1)         ; is character rolling?
    14.         bne.s   BreakWall_ChkP2         ; if not, branch
    15.         move.w  d1,d0
    16.         bpl.s   BreakWall_ChkSpeed
    17.         neg.w   d0              ; get absolute value of Player 1's horizontal speed
    18.  
    19. BreakWall_ChkSpeed: ;loc_215EE:
    20.         cmpi.w  #$480,d0            ; is character's speed $480 or higher?
    21.         bcs.s   BreakWall_ChkP2         ; if not, branch
    22.  
    23. BreakWall_Break: ;loc_215F4:
    It checks for the flame shield... for what I believe the reason is that you can perform that flame dash move, and use it to break walls easily while in the air... as Sonic. From then it branches to where it simply checks if the player's animation is the rolling animation... which is usually reached to check if the player is on the ground spinning into the wall. However... this now allows Sonic or Tails to do a basic jump into the wall, busting it in midair as if they were Knuckles. That isn't right!!!

    I believe to fix this, the flame shield check needs to branch to a new block of code that checks the shield object's animation byte to see if it is in the dash animation.
    What do you guys think? Bug? Oversight? Leave this anomaly as it is???
     
  18. Tiddles

    Tiddles

    Diamond Dust Tech Member
    471
    0
    0
    Leicester, England
    Get in an accident and wake up in 1973
    Good spot, and it's nice to have the answer laid out for you too. I swapped the order of the push/fire shield checks and added a check for character_id and double_jump_flag, and that seems to make it behave as you'd expect - although note that a similar breakable wall object also has to be changed at loc_1FD72.
     
  19. flamewing

    flamewing

    Emerald Hunter Tech Member
    1,161
    65
    28
    France
    Sonic Classic Heroes; Sonic 2 Special Stage Editor; Sonic 3&K Heroes (on hold)
    I had encountered the fire shield thing when TASing and when porting it to my hack; I disagree about it being a bug, though: the code seems to indicate that this is an additonal power granted by the fire shield, like being Super Sonic.
     
  20. Tiddles

    Tiddles

    Diamond Dust Tech Member
    471
    0
    0
    Leicester, England
    Get in an accident and wake up in 1973
    Yeah, there's nothing in the code that clearly indicates it's a bug.

    Still, you could say that of various behaviour that arguably becomes more logical in the presence of additional checks; the closest thing I can liken it to is projectile deflection based on double jump state, which I'm convinced was meant for the instashield, but actually doesn't work for it and causes different effects for Tails and Knuckles (which I compromised on since they're relatively well known and used, though I tried to at least have Tails' flight deflection make more sense).

    This, I think, isn't as well known, and feels contrary to expectations, but I'll keep in mind any feedback given here.