Difference between revisions of "Add Spin Dash to Sonic 1/Part 4"
From Sonic Retro
Scarred Sun (talk | contribs) m (Text replace - '[[Category:SCHG How-tos|' to '{{S1Howtos}} [[Category:SCHG How-tos|') |
Green Snake (talk | contribs) m (Added fix for annoying bug) |
||
Line 9: | Line 9: | ||
move.w d0,(a2)+ ; fill in Y | move.w d0,(a2)+ ; fill in Y | ||
dbf d2,@looppoint ; loop</asm> | dbf d2,@looppoint ; loop</asm> | ||
+ | |||
+ | |||
+ | There is one stupid bug we haven't looked at: Going through objects. This is rather annoying bug, and can be used to glitch the game. So why not fix this. Obviously it wont fix all the problems, but using springs to make screen delay like crazy is easiest way to do this glitch. So, add following just before Obj41_AniLR: label: | ||
+ | <asm> move.w #0,($FFFFC904).w ; clear screen delay counter</asm> | ||
{{S1Howtos}} | {{S1Howtos}} | ||
[[Category:SCHG How-tos|Add Spin Dash to Sonic 1/Part 4]] | [[Category:SCHG How-tos|Add Spin Dash to Sonic 1/Part 4]] |
Revision as of 13:22, 24 January 2013
(Original guide by Mercury)
This will fix the issue which causes weird camera movements if the player performs a Spin Dash at the very beginning of a level since the camera will try to follow bad data from the array of Sonic's previous positions. The following code therefore clears the aforementioned array and should be added right after the loc_60D0 label: <asm> clr.w ($FFFFF7A8).w ; reset Sonic's position tracking index lea ($FFFFCB00).w,a2 ; load the tracking array into a2 moveq #63,d2 ; begin a 64-step loop @looppoint: move.w d1,(a2)+ ; fill in X move.w d0,(a2)+ ; fill in Y dbf d2,@looppoint ; loop</asm>
There is one stupid bug we haven't looked at: Going through objects. This is rather annoying bug, and can be used to glitch the game. So why not fix this. Obviously it wont fix all the problems, but using springs to make screen delay like crazy is easiest way to do this glitch. So, add following just before Obj41_AniLR: label:
<asm> move.w #0,($FFFFC904).w ; clear screen delay counter</asm>