Difference between revisions of "Fix the EHZ Deformation bug"
From Sonic Retro
Scarred Sun (talk | contribs) m (Text replacement - "</asm>" to "</syntaxhighlight>") |
Scarred Sun (talk | contribs) m (Text replacement - "<asm>" to "<syntaxhighlight lang="asm">") |
||
Line 7: | Line 7: | ||
To fix this, go to '''SwScrl_EHZ:'''. Scroll down until you see '''SwScrl_RippleData:'''. Above it you should have this piece of code: | To fix this, go to '''SwScrl_EHZ:'''. Scroll down until you see '''SwScrl_RippleData:'''. Above it you should have this piece of code: | ||
− | <asm> move.w #($B4)/12-1,d1 ; $B4 bytes | + | <syntaxhighlight lang="asm"> move.w #($B4)/12-1,d1 ; $B4 bytes |
- move.w d4,(a1)+ | - move.w d4,(a1)+ | ||
move.w d3,(a1)+ | move.w d3,(a1)+ | ||
Line 23: | Line 23: | ||
rts</syntaxhighlight> | rts</syntaxhighlight> | ||
Copy and paste this code twice into it: | Copy and paste this code twice into it: | ||
− | <asm> move.w d4,(a1)+ | + | <syntaxhighlight lang="asm"> move.w d4,(a1)+ |
move.w d3,(a1)+</syntaxhighlight> | move.w d3,(a1)+</syntaxhighlight> | ||
In the end it should look like this: | In the end it should look like this: | ||
− | <asm> move.w #($B4)/12-1,d1 ; $B4 bytes | + | <syntaxhighlight lang="asm"> move.w #($B4)/12-1,d1 ; $B4 bytes |
- move.w d4,(a1)+ | - move.w d4,(a1)+ | ||
move.w d3,(a1)+ | move.w d3,(a1)+ |
Revision as of 21:45, 20 December 2015
(Original guide by qiuu)
In Sonic 2 is in EHZ a small deformation bug, the lowest two layers don't scroll as they are not affected by the deformation code:
To fix this, go to SwScrl_EHZ:. Scroll down until you see SwScrl_RippleData:. Above it you should have this piece of code:
move.w #($B4)/12-1,d1 ; $B4 bytes
- move.w d4,(a1)+
move.w d3,(a1)+
move.w d4,(a1)+
move.w d3,(a1)+
move.w d4,(a1)+
move.w d3,(a1)+
swap d3
add.l d0,d3
add.l d0,d3
add.l d0,d3
swap d3
dbf d1,-
rts
Copy and paste this code twice into it:
move.w d4,(a1)+
move.w d3,(a1)+
In the end it should look like this:
move.w #($B4)/12-1,d1 ; $B4 bytes
- move.w d4,(a1)+
move.w d3,(a1)+
move.w d4,(a1)+
move.w d3,(a1)+
move.w d4,(a1)+
move.w d3,(a1)+
swap d3
add.l d0,d3
add.l d0,d3
add.l d0,d3
swap d3
dbf d1,-
move.w d4,(a1)+
move.w d3,(a1)+
move.w d4,(a1)+
move.w d3,(a1)+
rts
And that's it! Now it should look fixed: