Semi-Ported Hyper Sonic in Sonic 1

Discussion in 'Showroom Archive' started by Selbi, Apr 18, 2010.

Thread Status:
Not open for further replies.
  1. Selbi

    Selbi The Euphonic Mess Member

    Joined:
    Jul 20, 2008
    Messages:
    2,429
    Location:
    Northern Germany
    One day I re-played S3K and as soon as I got all super emeralds, I had the idea of putting it in S1. I knew doing a basic Super Sonic is piss easy (well, you don't need to understand much to get it).


    And I got it to work, the palette cycle, the hyper sonic blast (aka. jumpdash with white flash that kills every enemy on the screen). I even did the S3 Sonic sprites, but I didn't do the Super sprites, being too lazy to do that. Same thing for the stars, I was able to port the art, but making it actually behave like in S3K seemed to be impossible to do from scratch (unless you have damn good eyes). I used the normal stars instead.


    So yeah, showing off a semi-ported Hyper Sonic in Sonic 1 because I don't plan to work on it anymore:


    Download


    I'd like you to note that you only need 5 instead of 50 rings to go. Also, please ignore the various art and palette issues on other things.


    No screenshots as it's pretty impossible with the few art things that are done.
     
  2. theocas

    theocas #! Member

    Joined:
    Apr 10, 2010
    Messages:
    375
    Would you be willing to share the source so I could port it to Sonic 2?
     
  3. Selbi

    Selbi The Euphonic Mess Member

    Joined:
    Jul 20, 2008
    Messages:
    2,429
    Location:
    Northern Germany
    Would you be willing to learn ASM so you can do it yourself?


    Really, it wasn't hard. The basic idea is to make you invincible and substract 1 ring every 60 frames (60 frames = 1 second) and return to normal once you don't have any rings any more.
     
    Last edited by a moderator: May 4, 2010
  4. theocas

    theocas #! Member

    Joined:
    Apr 10, 2010
    Messages:
    375
    So technically I could just make a copy of the Super Sonic code, set up a timer to subtract a ring every second (or 59 frames) and apply the hyper pallet on the super sprites? I did get a bit better at ASM, and that was why I wasn't on here or retro as much recently. Learning ASM. I did manage to start my Sonic 2 Hack since I gave up on my shitty Sonic 1 Hack, and I start out by following tutorials, reading the code, and understanding the code before compiling. Then I modify it to be extra-hyper-super cool in my hack :)
     
  5. vladikcomper

    vladikcomper Well-Known Member Member

    Joined:
    Dec 2, 2009
    Messages:
    415
    1 second is 60 frames.


    Look at the original S2's code:



    Sonic_Super:
    tst.b (Super_Sonic_flag).w ; Ignore all this code if not Super Sonic


    beq.w return_1AC3C


    tst.b (Update_HUD_timer).w


    beq.s Sonic_RevertToNormal


    subq.w #1,(Super_Sonic_frame_count).w ; Has timer hit 0?


    bpl.w return_1AC3C ; if not, branch


    move.w #60,(Super_Sonic_frame_count).w ; Reset frame counter to 60



    Though it would be 59 frames if you counted from zero. :p
     
  6. Selbi

    Selbi The Euphonic Mess Member

    Joined:
    Jul 20, 2008
    Messages:
    2,429
    Location:
    Northern Germany
    You are working on Sonic 2? Why would you set up a complete new Super Sonic code (or copying it) instead of simply using the code you already have in there and doing little tweaks? You know, the entire Super Sonic system is handeled by the flag $FFFFFE19. You can set that flag and an additional flag, that uses the Hyper Sonic palette cycle instead of the yellow one and all the other various things.

    Oops, my bad, forget that (rarley use timers). ^^'
     
  7. MarkeyJester

    MarkeyJester ♡ ! Member

    Joined:
    Jun 27, 2009
    Messages:
    2,867
  8. vladikcomper

    vladikcomper Well-Known Member Member

    Joined:
    Dec 2, 2009
    Messages:
    415
    Haha, I always felt some strangeness about this code.


    Also, I've just noted that I annotated a line in code I've posted above incorrectly. It should be:



    subq.w #1,(Super_Sonic_frame_count).w
    bpl.w return_1AC3C ; if value is positive, branch



    So, like was said in that topic, when the timer hits 0, it isn't cleared, so it comes out that Sonic loose a ring every 61 frame, not 60.
     
  9. zigazav

    zigazav Newcomer Exiled

    Joined:
    Jan 4, 2012
    Messages:
    10
    YAHOO! Hyper Sonic in Sonic 1! Thanks for doing this! Not that anyone asked you, I'm just greatfull is all. (I REALLY need to find a good picture for an avatar.)
     
  10. DarkLeach

    DarkLeach Well-Known Member Member

    Joined:
    Jul 3, 2011
    Messages:
    193
    Location:
    In the middle of desert heat
    It's cool that people can do these kind of things. I was trying to port Super Sonic to Sonic 1, but I have a few Issues.


    1. The Instant I get 50 Rings (And have all the Chaos Emeralds) I go Super (For what I have in there so far) not when Sonic is at the max of his jump (Which I still can't figure out to do.


    2. I can make the rings decrease (At least I think I do), because I can't get the Ring counter to decrease, what is the RAM Variable for that?


    If Anybody could help me it would be greatly appreciated! :p
     
    Last edited by a moderator: Jan 6, 2012
  11. Animemaster

    Animemaster Lets get to work! Member

    Joined:
    Mar 20, 2009
    Messages:
    1,229
    Location:
    UK
    Have a look at object 25 (The ring Object), you'll find what your looking for.
     
  12. Spanner

    Spanner The Tool Member

    Joined:
    Aug 9, 2007
    Messages:
    2,570
    Nice bump from 2010 there. Read the damn rules.
     
  13. DarkLeach

    DarkLeach Well-Known Member Member

    Joined:
    Jul 3, 2011
    Messages:
    193
    Location:
    In the middle of desert heat
    Oops, I hope I didn't do anything wrong... I saw that someone posted a day before, I didn't know this thread was a year and something old.

    I'll check that out. Thanks! :p
     
Thread Status:
Not open for further replies.