Сайт Влада

Как исправить Walk-Jump Bug

Автор гида: Cinossu, Перевод на русский язык: vladikcomper
Оригинальный гид: «SCHG How-to:Fix the Walk-Jump Bug in Sonic 1»

В первом Сонике есть замечательный баг, когда Соник прыгает с анимацией ходьбы. Он часто происходит в MZ и LZ и из-за него мы теряем наши драгоценные кольца. Но вы можете остановить это безобразие.

Для этого нам придется несколько подправить главного виновника бага — суброутину SolidObject. Найдите лейбел loc_FB92, который к ней относится. Его код будет выглядеть как-то так:

loc_FB92:
		btst	#5,$22(a0)
		beq.s	loc_FBAC
		move.w	#1,$1C(a1)	; use walking animation
 
loc_FBA0:
		bclr	#5,$22(a0)

Замените код выше на это:

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)

Вот и все! Баг исправлен. Скомпилируйте ваш РОМ и убедитесь в этом.