Секрети гри супер маріо на денді. Як працює баг зі світом −1 у Super Mario Bros

Багато хто з вас повинен пам'ятати нехитру комп'ютерну іграшку для бравого водопровідника Маріо. Вона була видана для багатьох приставок, типів комп'ютерів і навіть мобільних телефонів. Своєю захопливістю та простотою вона може цілком тягатися з бестселерами на кшталт тетрісу. Я хочу розповісти вам дещо цікавих фактівпро цю гру, багато з яких я не знав.

У більшості редакцій Super Marioграфічні зображення хмар і кущів однакові, відрізняється їх колір.

У грі є негативний світ. Це, мабуть, дефект у програмі, який призводить гравця до кількох ігрових локацій із негативними порядковими номерами. Наприкінці кімнати 2-1 можна пройти крізь тверду стіну та потрапити у т.зв. "World -1", що є спотвореною версією кімнати 1-3. Дії в ній відбуваються під водою, там можна зустріти кількох цікавих персонажів, на кшталт автозаправника чи принцеси-поганки.

Можливо, своє ім'я – Маріо – персонаж гри отримав завдяки господарю будівлі в Америці, де була локальна команда розробників. У 1980-х роках американський офіс компанії переживав важкі часи, і в цей час до них зайшов власник будівлі Маріо Сігель на питання сплати чергової суми грошей за оренду приміщень. Після нетривалих переговорів було досягнуто згоди про продовження терміну оренди, а як компенсацію героя готової до випуску гри назвали Маріо. До цього персонажа звали Jumpman (стрибун).

Між Маріо та твором Керолла "Аліса в країні чудес" є багато спільного. Коли дизайнер гри Шігеру Міамото з колегами розробляв концепцію гри, вони дійшли того, що герой повинен пересуватися стрибками, а фоном служитиме Синє небо. Після цього ми припустили, що він має збільшуватися та зменшуватися. Яким чином? І тут на думку спала ідея використовувати гриби, після чого вони згадали про Алісу.

Попри поширену думку, Маріо розбиває блоки, підвішені над ним, не головою, а кулаком.

Гра Super Mario Bros у Японії була випущена у п'ятницю, 13 числа

Маріо носить головний убір через те, що його творець - Шігер Міамото - вважав, що намалювати волосся буде складно з урахуванням потужностей ігрової приставкита її художніх здібностей. Вуса Маріо отримав тому, що у восьмибітній графіці вони виглядають краще, ніж рот.

Існує безліч версій гри, зокрема дуже рідкісна All Night Super Mario Bros, персонажі якої взяті з японського шоу All Night Nippon. Ця версія поширювалася лише на цьому шоу у 1986 році та була призначена для ігрової системи Famicom Disk System. У грі персонажі були схожі на відомих у Японії музикантів та інших відомих японців.

Маріо одягнений у комбінезон, щоб зробити наочнішу анімацію в процесі його руху. Без цього спецодягу зображення зливалося б, і важко було б розібрати рухи бравого водопровідника. Тому причина не в красі, а виключно у зручності для анімації.

Хто ще може додати свої відкриття до скарбнички секретів цієї гри?

Ps. Для бажаючих пограти – ось ГРА

P.S. Мене звуть Олександр. Це мій особистий, незалежний проект. Я дуже радий, якщо вам сподобалася стаття. Бажаєте допомогти сайту? Просто подивіться нижче рекламу, що ви нещодавно шукали.

На сторінці зібрана вся серія ігор онлайн з популярним героєм. Перші частини відносяться до давніх часів, коли у кожного були приставки Денді, Сега чи Нінтендо. Тепер ви можете грати у всі представлені ігри, які можна проходити в онлайні. Популярні бродилки продовжують розвиватися, виходять цікаві новинки з красивішою графікою. Якщо ви любитель класичної версії, то обов'язково зіграйте у Супер Маріо Брос 1990 року. Ця складна гразавжди викликала труднощі з виконанням завданням, зараз настільки складних рівнівне зустрінеш. Легендарний персонажза тривалі роки трохи перетворився, але його риси залишаються легко пізнаваними. Весь матеріал відкритий без реєстрації, а онлайн-ігри можна розгорнути на весь екран.

Нова частина гри, яка має тривалу сюжетною лінією. Головний геройнавчився літати повітрям, тому зможете вивчати навіть хмари і там битися з ворогами.

Сучасна комп'ютерна гра, яку перенесли в онлайн для швидкого та безкоштовного проходження Використовуйте нові таланти персонажа для битви!

Цікава переробка стандартної версії. Кожен рівень зберіг знайомі риси, тож пройти деякі завдання виявиться просто.

Два відважні герої вирушають у складний шлях. Луїджі допомагатиме братові перемогти монстрів і знайти викрадену принцесу. Зроблено весело та красиво!

Друга частина старої гри, яку багато хто втратив з уваги. Надолійте втрачене і спробуйте пройти важкі рівні, де мешкає багато злих монстрів.

Великий набір нових рівнів, які повністю оформлені у класичному стилі. Проберіться через складний лабіринт і переможіть всіх ворогів на дорозі.

Красива онлайн граз покращеною графікою, де з'явилися нові рівні. Зроблено у стартовому стилі, кожне завдання дуже тяжке для проходження.

Згадайте старі рівні, знайдіть приховані труби і просто дістаньтеся до фіналу. Графіка збережена в оригінальному вигляді, але виглядає чудово.

Друга частина отримала цікаві нововведення, коли треба використовувати кнопки, щоб відкрити приховані монетки або блоки. Пройти повністю змогли мало хто.

Цікава варіація гри, де треба проходити смугу перешкод. Кожен рівень складається з окремих частин, тому є зручна система збереження.

Дуже стара граз приставок, яку багато хто міг зовсім забути. Спробуйте виконати завдання, перемогти монстрів і зібрати більше монеток.

  • Ігри та ігрові приставки
    • Переклад

    Світ −1 в оригінальній Super Mario Bros. - один із найвідоміших багів на NES. Якщо до зони переходу (Warp Zone) зайти спеціальним чином, гра глючить, і при вході в трубу ви потрапляєте у дивний світ.

    Потрапити у світ −1 можна, майже пройшовши рівень 1-2 і вставши на трубу, що веде на поверхню землі, до флагштока та кінця рівня. Потім потрібно пересунутись до лівого краю труби, пригнутися і підстрибнути вправо, щоб Маріо опускався майже під стелею. Може знадобитися кілька спроб, але в результаті він потрапить у потрібну точку та автоматично пройде крізь трубу, а потім через стіну до кімнати із зоною переходу. Якщо не буде видно хоч би один піксель труби, Маріо опиниться в пастці і гравцеві доведеться чекати, поки не закінчиться час.

    Ще один спосіб попадання у світ −1: розбити два цегляні блоки на стелі, залишивши найправіший. Потім потрібно підійти до лівого кінця труби і підстрибнути праворуч. Пригинатись у цьому випадку не обов'язково, тому що Маріо може спробувати вдарити (насправді не руйнуючи його). При цьому в грі відбудеться збій, і Маріо зможе пройти крізь трубу та стіну. Але цей спосіб складніший і довгіший. Якщо все зроблено правильно, гравець побачить перед собою три труби зони переходу. Якщо залізти у ліву чи праву трубу, Маріо потрапить у світ −1. Якщо ж опуститись у середню трубу, він перейде на рівень 5-1. Якщо права стіна зони переходу стає видимою, баг перестає діяти.

    Але це не вся історія, чому працює цей баг. Деякі кажуть, що так відбувається, тому що на екрані зони переходу над трубою не відображається номер світу, коли ви заходите до неї. Але це неправда, і ті, хто має розуміння механіки гри, ніколи не повірить у таке пояснення. Прочитавши цю статтю, ви зможете розповісти фантазерам, що відбувається насправді. У цій статті ми докладно розберемо та розкриємо таємниці виникнення бага «світу мінус один».

    Як працюють зони переходу

    Щоб зрозуміти, як ми потрапляємо у світ −1, нам потрібно спочатку розібратися, як працюють Warp Zone. У грі є три такі зони: одна в кінці світу 1-2 (для переходу в світи 2, 3 або 4), друга в кінці 4-2 (переміщає у світ 5), а в третю можна потрапити по лозі у світі 4- 2 (і вибрати світ 6, 7 чи 8). Давайте подивимося, як гра дізнається, у які світи має вести зона переходу.


    Малюнок 1

    Номери зон зберігаються починаючи зі зміщення $87F2 запущеної програми, дані виглядають так: 04 03 02 00 24 05 24 00 08 07 06 00 (00 відокремлюють зони один від одного). Перші 4 байти відносяться до зони у світі 1-2, наступні 4 байти - до підземної зони світу 4-2, а останні 4 байти - до надземної зони світу 4-2. Ми можемо довести це, зламавши гру. Я використовував редактор HEX, щоб змінити значення 04 на 08, і подивіться, що вийшло:

    За допомогою редагування пам'яті можна потрапити і до інших світів-багів, наприклад, у світ 0.

    Наступна частина даних (на малюнку 1 червоного кольору) відноситься до підземної зони у світі 4-2, і складається з 24 05 24. Це відповідає переходу у світ $24 (36) через ліву трубу, світ 5 через середню трубу і знову в світ $24 (36) через праву трубу. Але ліва та права труби не існують, тому ми можемо потрапити лише у світ 5. Що ж означає 24 у зоні переходу? Числами $24 у Super Mario Bros. позначаються порожні місця. Вони потрібні, тому що у зміщенні $87F2 вказується не тільки те, куди переміщують труби, а й що на них писати. Об'єкт зони переходу повинен завжди малювати три тайли, що відповідають трубам зони, але оскільки у другій зоні є лише одна труба, гра малює порожні простори ліворуч і праворуч. Ми можемо показати хак, який змінює ці значення ліворуч і праворуч для відтворення непотрібних нам значень. Тому використання порожнього місця виправдане.

    Ці переходи технічно все одно працюють, ми просто не можемо використовувати їх без труби. Хаком я вставив ще одну трубу, щоб показати вам, що відбувається при вході в трубу, що переносить у світ 36. Як труба з цифрою 5 переносить нас у світ 5, так і труба без цифри переносить у світ _, тобто на рівень −1 .

    Так як технічно $24 означає 36, ми насправді переносимося у світ 36. Але гра означає це число порожнім місцем, тому здається, що ми потрапили у світ _. Насправді це світ 36. Але стривайте, значення 24 є лише у другій зоні. Як же ми переходимо у цей світ із рівня 1-2?

    Як працює баг світу −1

    Насправді всі зони переходів – це один і той самий об'єкт. Гра визначає, яку зону завантажити на основі значення за адресою $06D6. За умовчанням це значення дорівнює 00, тобто не відповідає жодній зоні. Але це нормально, бо більшу частинучасу ми не знаходимося поряд із зонами переходу. Однак поруч із кінцем рівня 1-2 ми створюємо об'єкт блокування скролінгу.

    Він створюється, коли ми перебуваємо по горизонталі у цьому місці.

    Цей об'єкт виконує код, який також збільшує значення за адресою $06D6 на одиницю, створюючи труби в зоні переходу. Зазвичай ми потрапляємо в зону переходу, пробігши по верхній частині екрана, при цьому створюється ще один об'єкт блокування скролінгу, а той створює правильне значеннязони переходу.

    Ось як це працює:

    • Спочатку гра завантажує значення 04 на адресу $06D6. Це означає, що використовуватиметься перша зона переходу.
    • Потім вона перевіряє, на якому рівні гравець. Якщо гравець у світі 1, вона використовує 04 і зберігає це значення $06D6, а потім пропускає весь наступний код.
    • Якщо гравець в іншому світі, вона завантажує значення 05. Потім гра перевіряє, на якому рівні знаходиться гравець. Якщо гравець на підземному, підводному або замковому рівні, вона зберігає в $06D6 значення 05.
    Як сказано вище, якщо ми на рівні 1-2, це збереження не виконується, тому що гра пропускає ці інструкції та значення залишається 04. Якщо ж гравець знаходиться на рівні над землею, гра записує значення 06 на адресу $06D6.

    В результаті для зони рівня 1-2 значення буде 04, для підземної зони рівня 4-2 - 05, а для надземної зони - 06. Гра виводить на екран повідомлення WELCOME TO WARP ZONE, якщо значення за адресою $06D6 дорівнює 04, 05 або 06, що завжди істинно, коли ми створюємо зони переходу при звичайному ігровому процесі. Коли ми проходимо об'єкт створення зони переходу, гра створює текст вітання зони переходу.

    Після виведення тексту процедура визначає, яку зону переходу потрібно завантажити, віднімаючи 04 значення $06D6. Так що якщо значення дорівнює 04, ми отримуємо 00, якщо 05, то 01, а якщо 06 ​​- 02. Але оскільки ми створили об'єкт блокування скролінгу, а після цього увійшли в стіну, значення $06D6, як і раніше, дорівнює 01.

    Це значення 01 відповідає зоні переходу рівня 4-2, тому гра думає, що ми у зоні рівня 4-2, а чи не 1-2. Ми можемо перевірити це, зайшовши до другої труби, яка переносить нас у світ 5. Якщо ми заходимо в ліву чи праву трубу, ми переходимо у світ 36, або світ −1. Це пояснює, як ми потрапляємо у світ −1.

    Світ −1

    Чому цей світ є нескінченно зацикленою копією світу 7-2? Спочатку розберемося, чому світ −1 схожий на 7-2. Коли ми заходимо в трубу, гра запускає алгоритм, який визначає, в яку кімнату потрібно помістити Маріо. Якщо значення за адресою $06D6 дорівнює 00, що буває в більшості випадків, гра пропускає цей код і відправляє Маріо в область, визначену за адресою $0650.

    Це означає, що коли ми проходимо крізь вигнуту трубу на рівні 1-2, значення $06D6 дорівнює 00, що можливо тільки при зломі, ми переходимо туди, куди нас відправляє зміщення зі значенням 25, що відповідає кінцю рівня. Так відбувається, коли Маріо заходить у вигнуту трубу. Але якщо значення не дорівнює 00 і це не випадок світу −1, тому що блокування скролінгу встановлює значення 01, то гра використовує номер світу для пошуку відповідного зміщення області в таблиці пошуку, щоб зрозуміти дані якого рівня потрібно завантажити.

    Якщо встановити як номер рівня $24, то код зони переходу, що визначає місце для переходу, використовує значення $24 для зміщення світу і отримує значення $33, яке говорить грі шукати зсув на $33 (51) байта від початку таблиці пошуку, яке має значення 01, відповідне світові 7-2. Таблиця пошуку складається всього з 34 байтів, тому що зазвичай цього вистачає для гри, тому зміщення на 51 байт знаходиться за межами області таблиці пошуку в області таблиці даних ворогів. Ми беремо ці дані з таблиці, яких таблиця пошуку насправді має мати доступу. І так само працюють інші світи-баги. Отже, гра завантажує те, що вважає рівнем 36-1, але містить дані рівня 7-2.

    Тепер давайте дізнаємось, чому рівні зациклені. Все тому, що гра змінює об'єкти даних ворогів. Подивимося, як це працює. Об'єкт зміни області має довжину 3 байти. Перший байт – це розташування об'єкта у грі, другий – зміщення адреси області, що повідомляє грі, куди відправити гравця, коли він спускається в трубу або піднімається по лозі. Третій байт поділено на дві частини. Важлива частина – це перші три біти: номер світу.

    Поточний номер світу відповідає номеру в об'єкті. Зміщення області не оновлюється, тому завантажує клон рівня 7-2, який призначений для зміни об'єкта області, але оскільки зміщення області встановлено на $25, ми переміщуємось у світ 7. Коли ми насправді перебуваємо на рівні 7-2, зміщення області встановлено значення $25, тому що номер світу відповідає поточному номеру світу об'єкта.

    Однак світ −1, який зчитує дані з 7-2, знаходиться не у світі 7, тому гра не завантажує зміщення області $25 у змінну зміщення, що дозволило б нам залишити рівень. Натомість, воно, як і раніше, містить значення 01, встановлене на рівні 1-2. Оскільки усунення ніколи не змінюється, замість виходу на поверхню рівень завантажується спочатку. Тому світ −1 нескінченно зациклений.

    Так ми дозволили загадку бага зі світом −1 у Super Mario Bros.! Тепер ми знаємо, що таке світ -1 і як він з'являється, а найголовніше - як нам вдається туди потрапити. Сподіваюся, що вам було цікаво.

    • Багато хто з вас повинен пам'ятати нехитру комп'ютерну іграшку для бравого водопровідника Маріо. Вона була видана для багатьох приставок, типів комп'ютерів і навіть мобільних телефонів. Я хочу розповісти вам кілька цікавих фактів про цю гру, багато з яких я не знав.
    • У більшості редакцій Super Mario графічні зображення хмар і кущів однакові, відрізняється їх колір.
    • У грі є негативний світ. Це, мабуть, дефект у програмі, який призводить гравця до кількох ігрових локацій із негативними порядковими номерами. Наприкінці кімнати 2-1 можна пройти крізь тверду стіну та потрапити у т.зв. "World -1", що є спотвореною версією кімнати 1-3. Дії в ній відбуваються під водою, там можна зустріти кількох цікавих персонажів, на кшталт автозаправника чи принцеси-поганки.
    • Можливо, своє ім'я – Маріо – персонаж гри отримав завдяки господарю будівлі в Америці, де була локальна команда розробників. У 1980-х роках американський офіс компанії переживав важкі часи, і в цей час до них зайшов власник будівлі Маріо Сігель на питання сплати чергової суми грошей за оренду приміщень. Після нетривалих переговорів було досягнуто згоди про продовження терміну оренди, а як компенсацію героя готової до випуску гри назвали Маріо. До цього персонажа звали Jumpman (стрибун).
    • Між Маріо та твором Керолла "Аліса в країні чудес" є багато спільного. Коли дизайнер гри Шігер Міамото з колегами розробляв концепцію гри, вони дійшли того, що герой повинен пересуватися стрибками, а фоном служитиме блакитне небо. Після цього ми припустили, що він має збільшуватися та зменшуватися. Яким чином? І тут на думку спала ідея використовувати гриби, після чого вони згадали про Алісу.
    • Попри поширену думку, Маріо розбиває блоки, підвішені над ним, не головою, а кулаком.
    • Гра Super Mario Bros у Японії була випущена у п'ятницю, 13 числа.
    • Маріо носить головний убір через те, що його творець - Шігер Міамото - вважав, що намалювати волосся буде складно з урахуванням потужностей ігрової приставки і його художніх здібностей. Вуса Маріо отримав тому, що у восьмибітній графіці вони виглядають краще, ніж рот.
    • Рідкісний японський варіант Маріо
    • Існує безліч версій гри, зокрема дуже рідкісна All Night Super Mario Bros, персонажі якої взяті з японського шоу All Night Nippon. Ця версія поширювалася лише на цьому шоу у 1986 році та була призначена для ігрової системи Famicom Disk System. У грі персонажі були схожі на відомих у Японії музикантів та інших відомих японців.

    • Маріо одягнений у комбінезон, щоб зробити наочнішу анімацію в процесі його руху. Без цього спецодягу зображення зливалося б, і важко було б розібрати рухи бравого водопровідника. Тому причина не в красі, а виключно у зручності для анімації.

    Хто ще може додати свої відкриття до скарбнички секретів цієї гри?

    Для охочих пограти –



     

    Можливо, буде корисно почитати: