Мой туториал "как добавить выбор уровней из соника 2 в соник 1" (Он полностью работает).
Скачиваем "s2menu.rar" (он снизу) и разархивируем в свой дизассембл.
Теперь добавляем выбор уровней в игру:
заходим в "sonic1.asm",
Идём в конец и видим:
; end of 'ROM'
EndOfRom:
END
добавляем над этим кодом вот эту строчку:
include "s2_menu.asm" ; Sonic 2 Level Select
Теперь ищем вот это:
Title_ChkLevSel:
tst.b ($FFFFFFE0).w ; check if level select code is on
beq.w PlayLevel ; if not, play level
btst #iA,(Joypad|Held).w ; check if A is held
beq.w PlayLevel ; if not, play level
moveq #2,d0
bsr.w PalLoad2 ; load level select pallet
lea ($FFFFCC00).w,a1
moveq #0,d0
move.w #$DF,d1
и заменяем на это
Title_ChkLevSel:
tst.b ($FFFFFFE0).w ; check if level select code is on
beq.w PlayLevel ; if not, play level
btst #iA,(Joypad|Held).w ; check if A is held
beq.w PlayLevel ; if not, play level
jmp Level_Select_Menu ; if yes, goto Sonic 2 level select
moveq #2,d0
bsr.w PalLoad2 ; load level select pallet
lea ($FFFFCC00).w,a1
moveq #0,d0
move.w #$DF,d1
Выбор уровней добавлен!
Теперь заходим в "_inc\Pallet Pointers.asm"
и добавляем в самый низ вот это:
dc.l Menu_Palette
dc.w $FB00
dc.w $1F
Теперь заходим в "s2_menu.asm" и ищем:
Menu_Level_Select_Text:
dc.b $0E, _G, _R, _E, _E, _N, __, _H, _I, _L, _L, __, __, __, __, __
dc.b $0E, _L, _A, _B, _Y, _R, _I, _N, _T, _H, __, __, __, __, __, __
dc.b $0E, _M, _A, _R, _B, _L, _E, __, __, __, __, __, __, __, __, __
dc.b $0E, _S, _P, _R, _I, _N, _G, __, _Y, _A, _R, _D, __, __, __, __
dc.b $0E, _S, _T, _A, _R, __, _L, _I, _G, _H, _T, __, __, __, __, __
dc.b $0E, _S, _C, _R, _A, _P, __, _B, _R, _A, _I, _N, __, __, __, __
dc.b $0E, _F, _I, _N, _A, _L, __, __, __, __, __, __, __, __, __, __
dc.b $0E, _S, _P, _E, _C, _I, _A, _L, __, _S, _T, _A, _G, _E, __, __
dc.b $0E, _E, _N, _D, _I, _N, _G, __, _S, _E, _Q, _U, _E, _N, _C, _E
dc.b $0E, _S, _O, _U, _N, _D, __, _T, _E, _S, _T, __, __, _st,__, __
теперь изменяем тексты...
Видите в начале "s2_menu.asm" вот эти строчки?
Level_Select_Menu_snd = $0081
Emerald_Snd = $0093
Ring_Snd = $00B5
Volume_Down = $00E0
Stop_Sound = $00E4
Я скажу что они делают:
Level_Select_Menu_snd = $0081 ; Это музыка в выборе уровней
Emerald_Snd = $0093 ; Это звук после наведения кода на все изумруды
Ring_Snd = $00B5 ; Это звук после кода на Debug
Volume_Down = $00E0 ; Это НЕ трогать)
Stop_Sound = $00E4 ; Это тоже))
Всё! Легко не правда ли?
s2menu.rar