Как исправить Walk-Jump Bug в Sonic 1
(Оригинальное руководство написано Cinossu)
В первом Сонике есть замечательный баг, когда Соник прыгает с анимацией ходьбы. Он часто происходит в MZ и LZ и из-за него мы теряем наши драгоценные кольца. Но вы можете остановить это безобразие.
Для этого нам придется несколько подправить главного виновника бага — суброутину SolidObject. Найдите лейбел loc_FB92, который к ней относится. Его код будет выглядеть как-то так:
<asm> loc_FB92: btst #5,$22(a0) beq.s loc_FBAC move.w #1,$1C(a1) ; use walking animation
loc_FBA0: bclr #5,$22(a0) </asm>
Замените код выше на это:
<asm> loc_FB92: btst #5,$22(a0) beq.s loc_FBAC cmp.b #2,$1C(a1) ; check if in jumping/rolling animation beq.s loc_FBA0 move.w #1,$1C(a1) ; use walking animation
loc_FBA0: bclr #5,$22(a0) </asm>
Вот и все! Баг исправлен. Скомпилируйте ваш РОМ и убедитесь в этом.