MENU
Главная » Статьи » Гайды по хакингу Sonic 1

Гайд по редактированию босса GHZ

Находим субротину Obj3D_ShipStart. Она выглядит примерно так:

Obj3D_ShipStart: ; XREF: Obj3D_ShipIndex
 move.w #$100,$12(a0) ; move ship down
 bsr.w BossMove
 cmpi.w #$338,$38(a0) ; has the ship reached $338 on Y-axis?
 bne.s Obj3D_ShipProcess ; если нет, бранч
 move.w #0,$12(a0) ; stop ship
 addq.b #2,$25(a0) ; goto next routine

То, что нам надо, хранится в строчке:

 cmpi.w #$338,$38(a0) ; has the ship reached $338 on Y-axis?

Изменяя первое значение, мы сможем установить правильную высоту полёта.

Теперь про скорость. В той же самой субротине есть строчка:

 move.w #$100,$12(a0) ; move ship down

Изменяя первое значение, мы сможем установить правильную скорость приземления. Это только для приземления. Теперь переходим к субротине Obj3D_MakeBall. Она выглядит примерно так:

Obj3D_MakeBall: ; XREF: Obj3D_ShipIndex
 move.w #-$100,$10(a0) ; move left
 move.w #-$40,$12(a0) ; move slightly up
 bsr.w BossMove
 cmpi.w #$2A00,$30(a0) ; has the boss reached $2A00 on X-axis?
 bne.s loc_17916 ; если нет, бранч
 move.w #0,$10(a0) ; stop him
 move.w #0,$12(a0) ;
 addq.b #2,$25(a0)
 jsr SingleObjLoad2
 bne.s loc_17910
 move.w #$E6,d0 ; не обращай внимания сюда :)
 jsr PlaySound_Special ; play boss music
 move.b #$48,0(a1) ; load swinging ball object
 move.w $30(a0),8(a1)
 move.w $38(a0),$C(a1)
 move.l a0,$34(a1)

Находим строчку:

 move.w #-$100,$10(a0) ; move left

Изменяя первое значение, мы сможем установить скорость приближения корабля к центру, чтобы тот выпустил шар. Теперь изменим скорость движения с уже выпущенным шаром. Переходим к субротине Obj3D_ShipMove. Она выглядит примерно так:

Obj3D_ShipMove: ; XREF: Obj3D_ShipIndex
 subq.w #1,$3C(a0) ; subtract 1 from timer
 bpl.s Obj3D_Reverse ; if time remains, branch
 addq.b #2,$25(a0)
 move.w #$3F,$3C(a0)
 move.w #$100,$10(a0) ; move the ship sideways
 cmpi.w #$2A00,$30(a0) ; has the boss reached $2A00 on X-axis?
 bne.s Obj3D_Reverse ; если нет, бранч
 move.w #$7F,$3C(a0) ; set timer to $7F
 move.w #$40,$10(a0)

Находим строку:

 move.w #$100,$10(a0) ; move the ship sideways

Изменяя первое значение, мы сможем настроить правильную скорость полёта корабля с уже выпущенным шаром. 

Кмпилируем, проверяем.

Категория: Гайды по хакингу Sonic 1 | Добавил: tntheromhacker (18.08.2016)
Просмотров: 1292 | Рейтинг: 3.0/2
Всего комментариев: 0
avatar