Молодец, Alexey, полезную темку создал! У меня как раз есть пара собственных туториалов =)
Туториал по build.bat
1. Если вы такой же ленивый человек, как и я, и не хотите после каждого компиля копировать файл s1built.bin из папки с дизасемблом в папку с РОМами, то можно заставить build.bat делать это за вас. Откройте build.bat в Блокноте, и добавьте в конец файла строчку:
copy s1built.bin [Путь к паке с РОМами]\s1built.bin
Примеры:
copy s1built.bin ..\ROMs\s1built.bin
copy s1built.bin C:\Program Files\Sega Emulator\ROMs\s1built.bin
Вы также можете находу переименовывать файл, для этого достаточно изменить "s1build.bin" в конце строчки на что-нибудь свое:
copy s1built.bin ..\ROMs\Sonic_1_High_Force_[RUS].bin
2. Иногда получается так, что build.bat выдает ошибку, но вы просто не успеваете ее прочитать, потому что окно сразу закрывается. Чтобы окно не закрывалось, откройте файл build.bat в Блокноте и добавьте в конец строчку:
@pause
Как добавить Jump Dash
ОК, я все-таки решился раскрыть свой код Jump Dash'а. Это как бы альфа-версия. Не бойтесь, вставить Jump Dash намного легче, чем Spin Dash.
Итак, идем к суброутине "Obj01_MdJump:" и добавляем после "bsr.w Sonic_LevelBound" строчку "bsr.w Sonic_Jump_Dash", получится вот так:
Obj01_MdJump:; XREF: Obj01_Modes
bsr.w Sonic_JumpHeight
bsr.w Sonic_ChgJumpDir
bsr.w Sonic_LevelBound
bsr.w Sonic_Jump_Dash; Ха! Вот наша строчка!
jsr ObjectFall
btst #6,$22(a0)
beq.s loc_12E5C
subi.w #$28,$12(a0)
Сделайте то же самое в суброутине "Obj01_MdJump2:"
Теперь напишем саму суброутину "Sonic_Jump_Dash". Вставим-ка ее после суброутины "Sonic_JumpHeight", для этого найдите строчку "; End of function Sonic_JumpHeight" - это конец суброутины. Сразу после нее вставьте код нашей новой суброутины:
Sonic_Jump_Dash:
cmpi.b #2,$1C(a0) ; Соник свернут в клубочек?
bne.s Sonic_Jump_Dash_Rts; если нет, уходим
move.b ($FFFFF603).w,d0
andi.b #$70,d0; нажаты ли A,B или C?
beq.w Sonic_Jump_Dash_Rts; если нет, уходим
move.w #$BC,d0
jsr (PlaySound_Special).l
move.w #$900,$10(a0)
btst #0,$22(a0)
beq.s Sonic_Jump_Dash_Rts
neg.w $10(a0)
Sonic_Jump_Dash_Rts:
rts
Вот, собственно, всё. Правда, у этого кода есть недостаток - Jump Dash получается многоразовым, но думаю те, кто решил всерьез заняться АСМом, смогут его устранить (я уже могу, только вам не скажу =Ъ).
Ведь многоразовый Jump Dash - это же лучше да?