Добавление нового монитора в Sonic 2 SMS — различия между версиями
Speed TH (обсуждение | вклад) |
NeKit (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
{{GuideBy|[[Ravenfreak]]}} | {{GuideBy|[[Ravenfreak]]}} | ||
− | Возможно некоторые из вас, когда-нибудь играя в [[Sonic 2 SMS]] хотели бы добавить новые мониторы со способностями, чтобы насладиться еще более эффектной игрой, но | + | Возможно некоторые из вас, когда-нибудь играя в [[Sonic 2 SMS]], хотели бы добавить новые мониторы со способностями, чтобы насладиться еще более эффектной игрой, но не знаете как это сделать? Очень просто. |
− | Для начала, откройте '''s2.asm''' в блокноте | + | Для начала, откройте '''s2.asm''' в блокноте и найдите строчку '''collision_monitor''', а где вы увидите: |
<asm>Collision_Monitor: | <asm>Collision_Monitor: | ||
Строка 24: | Строка 24: | ||
ret</asm> | ret</asm> | ||
− | Это типы мониторов, | + | Это типы мониторов, используемых в игре. Теперь прокрутите ниже, там будет: |
<asm> LABEL_4845: | <asm> LABEL_4845: | ||
Строка 30: | Строка 30: | ||
ret</asm> | ret</asm> | ||
− | + | Вот один из двух мониторов, доступных для использования. Теперь вам, наверное, захочется добавить код нового монитора после операнда '''res''', но если это сделать, то игра зависнет. Чтобы этого избежать, вам нужна страница в банке процессора, содержащая мониторы, — банк 07. Поэтому после '''res''' добавьте: | |
<asm>ld a, :Bank07 | <asm>ld a, :Bank07 | ||
Строка 37: | Строка 37: | ||
ret</asm> | ret</asm> | ||
− | Вы можете переименовать лейбел '''New_Monitor''' как хотите | + | Вы можете переименовать лейбел '''New_Monitor''', как хотите. |
− | Теперь надо добавить код монитора. | + | Теперь надо добавить код монитора. Если вы хотели использовать монитор со знаком вопроса, то начните так: |
<asm> New_Monitor: | <asm> New_Monitor: | ||
Строка 44: | Строка 44: | ||
cp $07 | cp $07 | ||
ret z | ret z | ||
− | ; | + | ;здесь будет ваш код</asm> |
− | Вот и все. Не забудьте только добавить | + | Вот и все. Не забудьте только добавить новый монитор на какой-нибудь уровень, чтобы испытать его. |
[[Категория:Как сделать...]] | [[Категория:Как сделать...]] |
Версия 13:17, 14 ноября 2011
Возможно некоторые из вас, когда-нибудь играя в Sonic 2 SMS, хотели бы добавить новые мониторы со способностями, чтобы насладиться еще более эффектной игрой, но не знаете как это сделать? Очень просто. Для начала, откройте s2.asm в блокноте и найдите строчку collision_monitor, а где вы увидите:
<asm>Collision_Monitor: LABEL_47F6: ;collision with monitor ld hl, $D39D ld a, (hl) bit 0, a jr nz, Collision_Monitor_Rings bit 1, a jr nz, Collision_Monitor_Life bit 4, a jr nz, Collision_Monitor_Continue bit 5, a jr nz, LABEL_4845 bit 2, a jr nz, Collision_Monitor_Sneakers bit 3, a jr nz, Collision_Monitor_Invincibility bit 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>
Вот и все. Не забудьте только добавить новый монитор на какой-нибудь уровень, чтобы испытать его.