Автор Тема: [NES] Super Mario Bros. Co-op - продолжаем когда один игрок умирает (by vitsum)  (Прочитано 24670 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн vitsum

  • Пользователь
  • Сообщений: 111
    • Просмотр профиля
SMB Two Players Hack — Coop Respawn (аддон-патч)

Мини-патч поверх известного хака Super Mario Bros. (Two Players Hack) (Ti, 2018). Меняет логику смертей в совместной игре:

  • Умер один — второй продолжает играть. Уровень не перезапускается: после короткого джингла смерти игра размораживается, музыка уровня возвращается, живой бежит дальше.
  • Респавн по кнопке. Погибший жмёт A или B — и возрождается прямо на месте живого напарника. Тратится одна жизнь (списывается в момент смерти), появляешься маленьким и с ~3 секундами неуязвимости (мигание).
  • Кончились жизни — выбываешь, напарник доигрывает один. Его смерти дальше идут по классической схеме (перезапуск уровня с чекпоинта).
  • GAME OVER — только когда жизни кончились у ОБОИХ.
  • Если живой хватает флагшток или входит в замок — ожидающий автоматически присоединяется и переходит на следующий уровень вместе с ним.
Установка: патч coop-respawn.ips накладывается на ром Super Mario Bros. (Two Players Hack).nes (НЕ на чистый SMB!) любым IPS-патчером (Lunar IPS, Floating IPS, онлайн-патчеры).

последняя версия:

(Хак часто обновляется, так что ищите в последних сообщениях темы)
« Последнее редактирование: 13 Сентября 2026, 19:00:25 от vitsum »
Балуюсь с ИИ и NES → Telegram-канал

Онлайн MaxWooD

  • Пользователь
  • Сообщений: 1174
  • Пол: Мужской
    • Просмотр профиля
vitsum, This is amazing!
 :thumbup:

Добавлено 18 июля 2026 года:
Потестил немного.
1. Можно ли убрать паузу при гибели одного из игроков? Например анимация проходит, но игра не замораживается, т.к. это тормозит геймплей. В принципе главный недостаток(
2. Вторым (белым) Марио взял флагшток, но пока первым (коричневым) не коснулся флагштока, уровень не закончился.
3. Когда второй погиб, и ты финишируешь только первым (у второго жизни еще есть, но он не респавнился) после того как первый прыгнул на флагшток, сразу респавнится второй, и уровень заканчивают уже двое. По идее респа не должно быть, и финишировать должен только первый (один).

Идея с респом у активного игрока понравилась :thumbup:

Добавлено позже:
Если дальше развивать тему хаков, то так же можно будет подобные игры модифицировать, чтобы при гибели одного, не перезапускался уровень. Например Баттлтодс.
« Последнее редактирование: 18 Июля 2026, 10:05:16 от ghostdog3 »
Сейчас Rumata придет, за халтуру по шапке надает!

Оффлайн vitsum

  • Пользователь
  • Сообщений: 111
    • Просмотр профиля
MaxWooD,

с респавном в конце уровня так и задумано было. сделать респавн только когда умерший игрок нажал на кнопку? или в начале следующего уровня?

про флагшток это наверное логика предыдущего хака. так же чтобы вдвоем в трубу залезть они одновременно должны это сделать

паузу наверное можно убрать

еще есть идея занимать жизнь у другого игрока если свои закончились)
Балуюсь с ИИ и NES → Telegram-канал

Онлайн MaxWooD

  • Пользователь
  • Сообщений: 1174
  • Пол: Мужской
    • Просмотр профиля
паузу наверное можно убрать
Попробуй пожалуйста именно с этого момента. Тесты пойдут легче.
Сейчас Rumata придет, за халтуру по шапке надает!

Оффлайн vitsum

  • Пользователь
  • Сообщений: 111
    • Просмотр профиля
Убрал паузу.
Игрок больше не появляется на флагштоке.
Балуюсь с ИИ и NES → Telegram-канал

Онлайн MaxWooD

  • Пользователь
  • Сообщений: 1174
  • Пол: Мужской
    • Просмотр профиля
Небольшой багрепорт:
1. Когда уровень заканчивает только один игрок, следующий уровень начинают уже два (по логике должен быть один, второй появляется при нажатии кнопки возрождения).
2. В вертикальную трубу можно попасть при одном условии - два игрока должны встать на трубу и одновременно нажать вниз. По идее в трубу должны попадать, когда любой из двух игроков нажимает вниз.
3. Когда в горизонтальную трубу всасывается один игрок, экран не сменяется, для этого нужно ждать пока всосется и второй. Смена экрана должна происходить, когда всосался ТОЛЬКО один игрок.
4. В замке, в локации босса, постоянно происходят баги: зависание игрока при смерти у горизонтальной движущейся платформы, второй игрок (Луиджи) не может активировать рычаг моста, при активации рычага моста игрок Марио погибает, но скрипт заставки продолжается, иногда с текстом иногда без.
5. В замке 4-4 не работают лабиринты - триггер не срабатывает при правильной комбинации, даже когда бегает один игрок.
6. С грибами какие-то баги, когда один выбивает, а другой берет, например один зависает в анимации движения.
7. Если второй игрок (маленький Луиджи) в первой форме выбивает гриб, а второй большой Марио во второй форме (но без огненных шаров) берет этот гриб, он не даёт апа до третей формы.

На данный момент игра непроходима, из-за бага с лабиринтом уровня 4-4. Приходится идти через варпы. На данный момент тест закончен на 7-1, в 7-4 тоже лабиринт в замке.
Сейчас Rumata придет, за халтуру по шапке надает!

Оффлайн vitsum

  • Пользователь
  • Сообщений: 111
    • Просмотр профиля
MaxWooD, 4-4 при игре вдвоём, когда оба живы, оба игрока были на одной и той же высоте?

* coop-respawn-v0.3.ips (0.69 КБ - загружено 31 раз.)

4-4 исправлено когда один игрок мертв

патч на 99 жизней для тестов (накладывается отдельно):
* coop-respawn-99-lives.ips (0.02 КБ - загружено 37 раз.)
« Последнее редактирование: 19 Июля 2026, 17:02:57 от vitsum »
Балуюсь с ИИ и NES → Telegram-канал

Онлайн MaxWooD

  • Пользователь
  • Сообщений: 1174
  • Пол: Мужской
    • Просмотр профиля
4-4 исправлено когда один игрок мертв
4-4 пройти лабиринт можно только первым игроком - Марио. Если играть только за Луиджи - первую часть лабиринта можно пройти (триггер срабатывает) вторая часть зациклена (триггер не срабатывает).
Сейчас Rumata придет, за халтуру по шапке надает!

Оффлайн vitsum

  • Пользователь
  • Сообщений: 111
    • Просмотр профиля
MaxWooD,

* coop-respawn-v0.4.ips (0.72 КБ - загружено 35 раз.)
Балуюсь с ИИ и NES → Telegram-канал

Оффлайн vitsum

  • Пользователь
  • Сообщений: 111
    • Просмотр профиля
Изменения в версии 0.5
  • После смерти игрок больше не возвращается автоматически на следующем уровне. Он остаётся в режиме ожидания и может вернуться в игру по нажатию A или B, если у него остались жизни.
  • Для входа в трубу теперь достаточно одного игрока. Второй игрок переносится вместе с ним автоматически.
  • Исправлено зависание при появлении из трубы, если второй игрок погиб и ожидает возвращения.
  • Топор в конце моста с Боузером теперь может взять любой игрок.
  • Второй игрок больше не погибает на разрушающемся мосту.
  • Погибший игрок больше не мешает завершению сцены с Боузером.
  • Победная заставка и финальный текст больше не зависают.
  • Погибший игрок больше не застревает на движущейся платформе. Падение и потеря жизни теперь завершаются нормально.
  • Исправлены зависания во время увеличения персонажа, получения урона и получения огненной способности.
  • Возвращена нормальная последовательность улучшений: если большой Марио или Луиджи берёт Супергриб, он получает огненную способность.

* coop-respawn-v0.5.ips (1.15 КБ - загружено 39 раз.)
« Последнее редактирование: 21 Июля 2026, 13:04:23 от vitsum »
Балуюсь с ИИ и NES → Telegram-канал

Оффлайн vitsum

  • Пользователь
  • Сообщений: 111
    • Просмотр профиля
Если выбрано 2 игрока, то жизнь дается за каждые 50 монет, вместо 100.

* coop-respawn-v0.6.ips (1.22 КБ - загружено 31 раз.)
« Последнее редактирование: 15 Августа 2026, 12:15:42 от vitsum »
Балуюсь с ИИ и NES → Telegram-канал

Оффлайн Mad

  • Модератор
  • Сообщений: 10476
  • Пол: Мужской
    • Просмотр профиля
vitsum, Зачем так?

Оффлайн vitsum

  • Пользователь
  • Сообщений: 111
    • Просмотр профиля
Mad, MaxWooD попросил)
Балуюсь с ИИ и NES → Telegram-канал

Онлайн Игрок6310

  • Пользователь
  • Сообщений: 26
    • Просмотр профиля
продолжаем когда один игрок умирает
« Ответ #13 : 15 Августа 2026, 12:37:57 »
а можете в этой игре сделать  Duck Tales 2 New Journey 2 players v.2.0 чтобы когда кто то умирал появлялся заново

Онлайн MaxWooD

  • Пользователь
  • Сообщений: 1174
  • Пол: Мужской
    • Просмотр профиля
Зачем так?
Имей немного терпения ;)
Сейчас Rumata придет, за халтуру по шапке надает!

Оффлайн Mad

  • Модератор
  • Сообщений: 10476
  • Пол: Мужской
    • Просмотр профиля
MaxWooD, в каком плане? Это дисбаласный апдейт, он сильно в этом плане отличается от предыдущих. Потому интересно, с чего такая идея появилась.

Оффлайн vitsum

  • Пользователь
  • Сообщений: 111
    • Просмотр профиля
продолжаем когда один игрок умирает
« Ответ #16 : 15 Августа 2026, 18:16:32 »
а можете в этой игре сделать  Duck Tales 2 New Journey 2 players v.2.0 чтобы когда кто то умирал появлялся заново

пока сил на новый проект нет)
Балуюсь с ИИ и NES → Telegram-канал

Онлайн MaxWooD

  • Пользователь
  • Сообщений: 1174
  • Пол: Мужской
    • Просмотр профиля
vitsum, протестировал последнюю версию, отписываюсь  :D

Баги:
1. Когда один игрок поднялся вверх по растению к бонус-уровню, должен быть переход на следующий экран, не зависимо поднялся второй игрок или нет (аналогично механике с трубами).
2. После топора (у Боузера), когда игрок заходит в комнату принцессы, иногда анимация бега не останавливается.
3. После топора (у Боузера), когда игрок заходит в комнату принцессы, иногда игрок просто идет вперед, и не останавливается, а принцесса и описание так и не появляется. Переход на следующий уровень происходит.
4. Был момент, при игре вдвоем, когда при возраждении Марио (на трубе, или на уступах в начале Замка), у него сразу появлялась анимация прыжка (рука вверх) и он застыл в этом положении. После этого Марио перемещается (без анимации) только в горизонтальной плоскости. Софтлок, т.к. не дает скроллить экран, если впереди препядствие.
5. Был интересный баг, когда Луиджи погиб, а Марио в этот момент спустил флагшток и зашел в замок (Большой, который с Боузером), но перехода на следующий уровень небыло, просто откинуло на чекпоинт текущего уровня. Наверное смерть игрока засчиталась раньше перехода на следующий уровень.

Что можно доработать:
1. Звуковой эффект (мелодия): при гибели игрока обрезать стандартную мелодию - оставить коротку первуюю часть первую часть (семпл длиной 0.23 мс от стандартной, прикреплён к посту). После гибели обоих игроков (или одного, без второго) - играть стандартную полную мелодию (можно послушать по ссылке под названием Mario dies).
2. После гибели одного игрока, когда другой жив, не должно быть перезапуска основной музыки игры.

Хаки (желательно сделать отдельными патчами):
1. Когда у одного из игроков закончились жизни, он может занимать их у другого игрока. Наверное, чтобы небыло ложных срабатываний, это лучше сделать комбинацией клавиш, например вверх+В.
2. Добавить багфикс Лакиту.
3. Иконка большого и маленького игрока на экранах при переходе между уровнями.

В принципе, больше замечаний к хаку в плане доработок у меня нет.

На данный момент, в режиме на двоих, игра ощущается как полноценный кооператив - каждый игрок независим. Надеюсь у vitsumа всё же получится довести хак до логического конца  ;)


Это дисбаласный апдейт, он сильно в этом плане отличается от предыдущих. Потому интересно, с чего такая идея появилась.

Эта идея появилась у Lipetsk, вот в этом посте.
Учитывая то, что ресурсы игры изначально рассчитаны на одного игрока (бонусы и монетки), а при игре вдвоем геймплей не облегчается, а наоборот усложняется, и выживать становится сложнее (например прыжки на платформах *-3 уровень, и пр.), вероятность потери жизни каждого игрока кратно увеличивается, поэтому считаю, что это решение способно сбалансировать игру на двоих.
Сейчас Rumata придет, за халтуру по шапке надает!

Оффлайн vitsum

  • Пользователь
  • Сообщений: 111
    • Просмотр профиля
обновление v0.6 → v0.8

v0.7 — исправления багов:

1. Подъём по лиане в бонус-зону: переход срабатывает, как только наверх
   долез один игрок (как у труб) — ждать второго больше не нужно.
2. Комната принцессы после топора: игроки больше не пробегают мимо
   принцессы и не застревают с бегущей на месте анимацией — финальная
   сцена честно ждёт обоих, текст появляется всегда.
3. Исправлен софтлок при возрождении: игрок мог появиться застывшим в позе
   прыжка, без гравитации и анимации.
4. Если напарник погиб в момент флагштока или входа в замок, пройденный
   уровень больше не откатывается на чекпоинт — живой спокойно завершает
   уровень.
5. При одновременной смерти обоих жизнь теперь списывается у обоих
   (раньше платил только один — обычно Луиджи).
6. GAME OVER — только когда жизни кончились у обоих. Потративший последнюю
   жизнь выбывает, напарник продолжает играть.

v0.8 — звук и монеты:

1. Пока второй игрок жив, музыка уровня при чьей-то смерти не прерывается
   и не начинается заново — вместо полной мелодии проигрыша звучит её
   короткое узнаваемое начало (0.23 с) поверх музыки.
2. Полная мелодия проигрыша с паузой — как раньше: когда погибает
   последний живой или оба сразу.
3. Возрождение погибшего стало доступно примерно на 3 секунды раньше.
4. Жизнь за 50 монет теперь даётся всю игру на двоих — даже если напарник
   уже выбыл (раньше в этот момент порог незаметно возвращался к 100).
   В одиночной игре — как в оригинале, 100 монет.  (может зря)

* coop-respawn-v0.8.ips (1.69 КБ - загружено 24 раз.)
Балуюсь с ИИ и NES → Telegram-канал

Онлайн MaxWooD

  • Пользователь
  • Сообщений: 1174
  • Пол: Мужской
    • Просмотр профиля
v0.8
Баги:
1. После взятия флагштока одним игроком игра не завершается - нужно ждать, чтобы второй тоже взобрался.
2. Если в первом уровне погобнет Марио, а уровень закончить одним Луиджи, очки будут начисляться Марио.
3. Один игрок: если взобраться на лиану (но не подниматься вверх, чтобы экран не сменился), и возродить второго игрока, он забагуется в горизонтальной плоскости.
4. Один игрок: если в бонус-уровне (небо после лианы) взобраться на облако, и возродить второго игрока, он забагуется в горизонтальной плоскости. Наверное баг горизонтальной плоскости проявляется, когда один из игроков держит направление право/лево, а второй игрок кнопку возраждения.
5. Бонус уровень (небо, после лианы): 1. Если в пропасть падает Марио - после смены экрана звук гибели (Луиджи), Марио падает сверху; 2. Если в пропасть падает Луиджи - после смены экрана звук гибели (Луиджи), Марио поднимается из невидимой трубы. На уровне-небо Луиджи погибает в любом случае.
Сейчас Rumata придет, за халтуру по шапке надает!

Оффлайн vitsum

  • Пользователь
  • Сообщений: 111
    • Просмотр профиля
когда-нибудь мы исправим все баги))
Балуюсь с ИИ и NES → Telegram-канал

Онлайн MaxWooD

  • Пользователь
  • Сообщений: 1174
  • Пол: Мужской
    • Просмотр профиля
vitsum, правим новые - появляются старые  :lol:
Сейчас Rumata придет, за халтуру по шапке надает!

Оффлайн vitsum

  • Пользователь
  • Сообщений: 111
    • Просмотр профиля
1. После взятия флагштока одним игроком игра не завершается - нужно ждать, чтобы второй тоже взобрался.
2. Если в первом уровне погобнет Марио, а уровень закончить одним Луиджи, очки будут начисляться Марио.
3. Один игрок: если взобраться на лиану (но не подниматься вверх, чтобы экран не сменился), и возродить второго игрока, он забагуется в горизонтальной плоскости.
4. Один игрок: если в бонус-уровне (небо после лианы) взобраться на облако, и возродить второго игрока, он забагуется в горизонтальной плоскости. Наверное баг горизонтальной плоскости проявляется, когда один из игроков держит направление право/лево, а второй игрок кнопку возраждения.
5. Бонус уровень (небо, после лианы): 1. Если в пропасть падает Марио - после смены экрана звук гибели (Луиджи), Марио падает сверху; 2. Если в пропасть падает Луиджи - после смены экрана звук гибели (Луиджи), Марио поднимается из невидимой трубы. На уровне-небо Луиджи погибает в любом случае.

баги 3/4 не удалось воспроизвести, остальные исправлены (но не проверено).


* coop-respawn-v0.9.ips (1.84 КБ - загружено 18 раз.)
Балуюсь с ИИ и NES → Telegram-канал

Онлайн MaxWooD

  • Пользователь
  • Сообщений: 1174
  • Пол: Мужской
    • Просмотр профиля
vitsum, по новы/старым багам v.09:
1. Баги 3/4 появляются при возрождении второго игрока (см. видео):
 Баг 3. Игрок 1 находится на лиане (до анимации подъёма) второй игрок прожимает кнопку воскрешения.
 Баг 4. Игрок 1 на облаке в прыжке, в этот момент возрождается Игрок 2.
2. Когда на экране одновременно два игрока, и один прыгает на флагшток - отсутствует звук опускания флажка (см. видео).
Сейчас Rumata придет, за халтуру по шапке надает!

Оффлайн vitsum

  • Пользователь
  • Сообщений: 111
    • Просмотр профиля
1. Баги 3/4 появляются при возрождении второго игрока (см. видео):
 Баг 3. Игрок 1 находится на лиане (до анимации подъёма) второй игрок прожимает кнопку воскрешения.
 Баг 4. Игрок 1 на облаке в прыжке, в этот момент возрождается Игрок 2.
2. Когда на экране одновременно два игрока, и один прыгает на флагшток - отсутствует звук опускания флажка (см. видео).

v0.10 — исправления багов:

1. Возрождение у лианы / на облаке: возрождённый игрок больше не зависает
в воздухе, нормально падает и приземляется (баг проявлялся, если погибший
ждал возрождения ещё с предыдущего уровня).
2. Звук опускания флажка снова играет, когда оба игрока живы.
Балуюсь с ИИ и NES → Telegram-канал

Онлайн MaxWooD

  • Пользователь
  • Сообщений: 1174
  • Пол: Мужской
    • Просмотр профиля
vitsum, по новы/старым багам v.10:
1. При игре за Луиджи, когда Марио мертв, при взятии флажка за салют очки начисляются и Марио. Даже если Марио не начинал игру, очки за салют всё равно начисляются.
2. Когда погибает второй игрок (короткая музыка) анимация игрока мерцает. Считаю, что лучше убрать мерцание при гибели игрока.
3. В варпе зоне (мир 1-2) время было менее 100, мелодия изменилась и я всосался в трубу (мир 1-4). Когда начался мир 4-1 музыка так же была ускоренной, а таймер начался как и положено с 400.

В целом данная версия вполне играбельна, за исключением вышеперечисленных недочётов. Баги искать становится сложнее  :lol:

Если можно, я бы предложил сделать немного громче звук смерти второго игрока, который короткий. Интересно как это будет звучать в игре.
Сейчас Rumata придет, за халтуру по шапке надает!

Оффлайн vitsum

  • Пользователь
  • Сообщений: 111
    • Просмотр профиля
1. При игре за Луиджи, когда Марио мертв, при взятии флажка за салют очки начисляются и Марио. Даже если Марио не начинал игру.
2. Когда погибает второй игрок (короткая музыка) анимация игрока мерцает. Считаю, что лучше убрать мерцание при гибели игрока.
3. В варпе зоне (мир 1-2) время было менее 100, мелодия изменилась и я всосался в трубу (мир 1-4). Когда начался мир 4-1 музыка так же была ускоренной, а таймер начался как и положено с 400.

v0.11 — исправления багов:

1. Очки за салют не начисляются мёртвому игроку.
2. Труп не мерцает.
3. Ускоренная музыка не переезжает в следующий мир через варп.

Звук смерти громче не сделать — он уже на максимуме канала.
Балуюсь с ИИ и NES → Telegram-канал

Онлайн MaxWooD

  • Пользователь
  • Сообщений: 1174
  • Пол: Мужской
    • Просмотр профиля
vitsum, по старым багам v.11:
1. Очки начисляются мертвому Марио, когда черепаха убивает врагов за экраном (см.видео).
Сейчас Rumata придет, за халтуру по шапке надает!

Оффлайн vitsum

  • Пользователь
  • Сообщений: 111
    • Просмотр профиля
1. Очки начисляются мертвому Марио, когда черепаха убивает врагов за экраном (см.видео).

Сделай пожалуйста для теста еще код на 99 жизней - прошлый код после применения игры ломает её механику.

v0.12 — исправления багов:

1. Очки за врагов, убитых панцирем, идут тому, кто его пнул.

99 жизней: патч не менялся, он накладывается поверх рома с уже наложенным coop-respawn. То же самое кодами Game Genie: ZTKALAZA + ZTVANTZA. Что именно ломалось — напиши.
« Последнее редактирование: 06 Сентября 2026, 13:37:06 от vitsum »
Балуюсь с ИИ и NES → Telegram-канал

Оффлайн vitsum

  • Пользователь
  • Сообщений: 111
    • Просмотр профиля
Что нового:

Яйца Лакиту летят вбок, как задумано в оригинале (фикс бага «Spiny Egg»).

Выбитый «?»-блок в подземельях, воде и замках больше не зелёный: он окрашен в цвет игрока, который его выбил.

В меню титула добавлен выбор персонажа для одиночной игры: 1 PLAYER MARIO / 1 PLAYER LUIGI / 2 PLAYERS GAME (переключается SELECT).

Бонус: код Game Genie AVSUIVOZ — таймер останавливается на 100, время не кончается.
Балуюсь с ИИ и NES → Telegram-канал