Difference between revisions of "Retain Rings Between Acts in Sonic 1"
From Sonic Retro
m (→SVN/GitHub disassembly) |
m (→SVN/GitHub disassembly) |
||
Line 30: | Line 30: | ||
==SVN/GitHub disassembly== | ==SVN/GitHub disassembly== | ||
− | |||
− | |||
Go to "'''Level_LoadObj:'''". You'll notice this line: | Go to "'''Level_LoadObj:'''". You'll notice this line: | ||
Line 40: | Line 38: | ||
This line deletes all of your rings. So, delete this line. | 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: | ||
+ | |||
+ | <syntaxhighlight lang="asm"> | ||
+ | move.b #0,(v_invinc).w ; remove invincibility | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | add this line: | ||
+ | |||
+ | <syntaxhighlight lang="asm"> | ||
+ | move.w #0,($FFFFFE20).w ; clear rings | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Now you'll retain rings between acts. | ||
{{S1Howtos}} | {{S1Howtos}} | ||
[[Category:SCHG How-tos|Retain Rings Between Acts in Sonic 1]] | [[Category:SCHG How-tos|Retain Rings Between Acts in Sonic 1]] |
Revision as of 13:07, 11 December 2017
(Original guide by Afti)
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,($FFFFFE20).w ; clear rings
Now you'll retain rings between acts.