Retain Rings Between Acts in Sonic 1
From Sonic Retro
(Original guide by Afti, updated for the SVN/GitHub disassembly by MarioMario456)
This is a very simple guide to retaining rings between acts in Sonic 1. It's extremely easy, but, for those who literally have no ASM ability whatsoever...
Well, here it is. You literally need to delete one line, and add one line elsewhere.
Hivebrain's 2005 disassembly
Go to "Level_LoadObj:". You'll notice this line:
move.w d0,($FFFFFE20).w ; clear rings
This line deletes all of your rings. So, delete this line.
Then, go to "KillSonic:", and before this line:
move.b #0,($FFFFFE2D).w ; remove invincibility
add this line:
move.w #0,($FFFFFE20).w ; clear rings
And you'll retain rings between acts.
SVN/GitHub disassembly
Go to "Level_LoadObj:". You'll notice this line:
move.w d0,(v_rings).w ; clear rings
This line deletes all of your rings. So, delete this line.
Then, open "_incObj\sub ReactToItem.asm". Then, go to "KillSonic:", and before this line:
move.b #0,(v_invinc).w ; remove invincibility
add this line:
move.w #0,(v_rings).w ; clear rings
Now you'll retain rings between acts.
|Retain Rings Between Acts in Sonic 1]]