Как исправить баг деформации EHZ
Автор гида: qiuu, Перевод на русский язык: vladikcomperОригинальный гид: «SCHG How-to:Fix the EHZ Deformation bug»
В Sonic 2 есть небольшой баг в EHZ, когда два нижних слоя неподвижны, потому что на них не действует код деформации.

Чтобы исправить это, нам потребуется исправить часть кода в роутине SwScrl_EHZ. Найдите лейбел SwScrl_RippleData, который является частью этой роутины. Прямо над ним вы увидите вот такой кусок кода:
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
Замените его на это:
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)+ 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
Как видите, здесь мы лишь дважды добавили в середину кода эти строки:
move.w d4,(a1)+ move.w d3,(a1)+
Они задействовали два нижних слоя при деформации, баг успешно исправлен.
