Random Hack/Mini Project Thread

Discussion in 'Engineering & Reverse Engineering' started by Malevolence, Jul 4, 2009.

  1. TheInvisibleSun

    TheInvisibleSun

    OVER THE TOP TECHNO-BLAST Member
    Introducing.......the Super Special Spindash in Sonic 1:

    [​IMG]



    So, for years people have asked me to port the spindash into Sonic 1. Before, I didn't think that the Spindash was a necessity in Classic Sonic gameplay, but now, I have finally seen the light. Instead of just porting the same old move, however, I decided to go even further beyond, and made a few enhancements to the seminal technique. This new and improved spindash not only grants Sonic the power to dash forward with a burst of speed, but also grants him the ability to move through space and time, and even across different dimensions. However, with great power, comes great responsibility, so be careful! It is a bit more difficult to control than your ordinary, standard spindash, so use wisely!

    Special Thanks to ProjectFM, vladikcomper, and all of those involved in making the spindash guide(s) on Retro.

    Welcome to the next step in Classic Sonic Gameplay Evolution. Welcome to the Next Level.

    Download
     
  2. VAdaPEGA

    VAdaPEGA

    Untalented Recolor Member
    73
    18
    8
    Portugal
    Probably something minimalistic

    Recreated Sonic Mania's Title Screen as an April Fools joke.
    Download it here
     
  3. .hack//zero

    .hack//zero

    Member
    3,001
    2
    18
    Working on a vulkan game engine for fun. Learning Ray-Tracing.
    We were talking about Fiz's Red Ring of Death hack in the discord.
    So I made a quick demo of it in Sonic 2. It's just a quick 5 min hack.

    Just made quick update that makes the Ring Monitor hurt you to for more consistancy.

    Anyway it was just a quick change from:

    Code (Text):
    1. CollectRing_1P:
    2.  
    3.     if gameRevision=0
    4.     cmpi.w    #999,(Ring_count).w    ; does the player 1 have 999 or more rings?
    5.     bhs.s    +            ; if yes, skip the increment
    6.     addq.w    #1,(Ring_count).w    ; add 1 to the ring count
    7. +
    8.     ori.b    #1,(Update_HUD_rings).w    ; set flag to update the ring counter in the HUD
    9.     move.w    #SndID_Ring,d0        ; prepare to play the ring sound
    10.     else
    11.     move.w    #SndID_Ring,d0        ; prepare to play the ring sound
    12.     cmpi.w    #999,(Ring_count).w    ; does the player 1 have 999 or more rings?
    13.     bhs.s    JmpTo_PlaySoundStereo    ; if yes, play the ring sound
    14.     addq.w    #1,(Ring_count).w    ; add 1 to the ring count
    15.     ori.b    #1,(Update_HUD_rings).w    ; set flag to update the ring counter in the HUD
    16.     endif
    17.  
    18.     cmpi.w    #100,(Ring_count).w    ; does the player 1 have less than 100 rings?
    19.     blo.s    JmpTo_PlaySoundStereo    ; if yes, play the ring sound
    20.     bset    #1,(Extra_life_flags).w    ; test and set the flag for the first extra life
    21.     beq.s    +            ; if it was clear before, branch
    22.     cmpi.w    #200,(Ring_count).w    ; does the player 1 have less than 200 rings?
    23.     blo.s    JmpTo_PlaySoundStereo    ; if yes, play the ring sound
    24.     bset    #2,(Extra_life_flags).w    ; test and set the flag for the second extra life
    25.     bne.s    JmpTo_PlaySoundStereo    ; if it was set before, play the ring sound
    26. +
    27.     addq.b    #1,(Life_count).w    ; add 1 to the life count
    28.     addq.b    #1,(Update_HUD_lives).w    ; add 1 to the displayed life count
    29.     move.w    #MusID_ExtraLife,d0    ; prepare to play the extra life jingle
    30.  
    To:

    Code (Text):
    1. CollectRing_1P:
    2.     if gameRevision=0
    3.     cmpi.w    #999,(Ring_count).w    ; does the player 1 have 999 or more rings?
    4.     bhs.s    +            ; if yes, skip the increment
    5.     addq.w    #1,(Ring_count).w    ; add 1 to the ring count
    6. +
    7.     ori.b    #1,(Update_HUD_rings).w    ; set flag to update the ring counter in the HUD
    8.     move.w    #SndID_Ring,d0        ; prepare to play the ring sound
    9.     else
    10.     jsr    (HurtCharacter).l
    11.     endif
    12.  
    13.     cmpi.w    #100,(Ring_count).w    ; does the player 1 have less than 100 rings?
    14.     blo.s    JmpTo_PlaySoundStereo    ; if yes, play the ring sound
    15.     bset    #1,(Extra_life_flags).w    ; test and set the flag for the first extra life
    16.     beq.s    +            ; if it was clear before, branch
    17.     cmpi.w    #200,(Ring_count).w    ; does the player 1 have less than 200 rings?
    18.     blo.s    JmpTo_PlaySoundStereo    ; if yes, play the ring sound
    19.     bset    #2,(Extra_life_flags).w    ; test and set the flag for the second extra life
    20.     bne.s    JmpTo_PlaySoundStereo    ; if it was set before, play the ring sound
    21. +
    22.     addq.b    #1,(Life_count).w    ; add 1 to the life count
    23.     addq.b    #1,(Update_HUD_lives).w    ; add 1 to the displayed life count
    24.     move.w    #MusID_ExtraLife,d0    ; prepare to play the extra life jingle
    25.  
     

    Attached Files:

    Last edited: Apr 9, 2021 at 1:59 AM