Добавление нового монитора в Sonic 2 SMS — различия между версиями
Red TF (обсуждение | вклад) м (Замена текста — «{{GuideBy|» на «{{Руководство|») |
Red TF (обсуждение | вклад) м (Замена текста — «bit» на «бит») |
||
Строка 8: | Строка 8: | ||
ld hl, $D39D | ld hl, $D39D | ||
ld a, (hl) | ld a, (hl) | ||
− | + | бит 0, a | |
jr nz, Collision_Monitor_Rings | jr nz, Collision_Monitor_Rings | ||
− | + | бит 1, a | |
jr nz, Collision_Monitor_Life | jr nz, Collision_Monitor_Life | ||
− | + | бит 4, a | |
jr nz, Collision_Monitor_Continue | jr nz, Collision_Monitor_Continue | ||
− | + | бит 5, a | |
jr nz, LABEL_4845 | jr nz, LABEL_4845 | ||
− | + | бит 2, a | |
jr nz, Collision_Monitor_Sneakers | jr nz, Collision_Monitor_Sneakers | ||
− | + | бит 3, a | |
jr nz, Collision_Monitor_Invincibility | jr nz, Collision_Monitor_Invincibility | ||
− | + | бит 6, a | |
jr nz, LABEL_4884 | jr nz, LABEL_4884 | ||
ret</asm> | ret</asm> |
Версия 08:30, 2 апреля 2014
(Оригинальное руководство написано Ravenfreak)
Возможно, некоторые из вас, когда-нибудь играя в Sonic 2 SMS, хотели бы добавить новые мониторы со способностями, чтобы насладиться еще более эффектной игрой, но не знаете как это сделать? Очень просто. Для начала, откройте s2.asm в блокноте и найдите строчку collision_monitor, где вы увидите:
<asm>Collision_Monitor: LABEL_47F6: ;столкновение с монитором ld hl, $D39D ld a, (hl) бит 0, a jr nz, Collision_Monitor_Rings бит 1, a jr nz, Collision_Monitor_Life бит 4, a jr nz, Collision_Monitor_Continue бит 5, a jr nz, LABEL_4845 бит 2, a jr nz, Collision_Monitor_Sneakers бит 3, a jr nz, Collision_Monitor_Invincibility бит 6, a jr nz, LABEL_4884 ret</asm>
Это типы мониторов, используемых в игре. Теперь прокрутите ниже, там будет:
<asm> LABEL_4845: res 5, (hl) ret</asm>
Вот один из двух мониторов, доступных для использования. Теперь вам, наверное, захочется добавить код нового монитора после операнда res, но если это сделать, то игра зависнет. Чтобы этого избежать, вам нужна страница в банке процессора, содержащая мониторы, — банк 07. Поэтому после res добавьте:
<asm>ld a, :Bank07
ld ($FFFF),a Call New_Monitor ret</asm>
Вы можете переименовать лейбел New_Monitor, как хотите. Теперь надо добавить код монитора. Если вы хотели использовать монитор со знаком вопроса, то начните так:
<asm> New_Monitor:
ld a, ($D39D) cp $07 ret z ;здесь будет ваш код</asm>
Вот и все. Не забудьте только добавить новый монитор на какой-нибудь уровень и испытать его.