Спидран — способ быстрого прохождения игр. Обычно при этом не используются обычные читы или коды. Но разрешено использовать глюки игр вроде возможности выбраться за пределы основного экрана и идти поверх всех уровней. Приверженцы такого способа прохождения игр показывают иногда просто удивительные результаты. К примеру, Doom 2 некоторые умельцы проходят за пару десятков минут.
Особая любовь у спидраннеров — к Super Mario. Человек может пройти Super Mario для 8-битной приставки примерно за 6 минут. Два года назад появилось новое направление — спидран с роботом. Здесь уже практически не используются секреты игры, речь идет о прохождении всех уровней специальной компьютерной системой. Она не нажимает на кнопки, а подключается прямо к порту игрового контроллера. На днях такая система поставила новый рекорд прохождения игры — все уровни удалось пройти менее, чем за секунду.
В чем секрет робота? В новой системе работает дифференциальная импульсно-кодовая модуляция NES. Одноразрядный поток данных используется для проигрывая элементарных аудио-сэмплов из некоторых игр, включая Super Mario Bros. 3.
Как оказалось, в аппаратном обеспечении NES есть небольшой баг, который приводит к тому, что считывание данных такого канала приводит к тому, что СPU иногда выполняет дополнительную операцию чтения с одного из каналов ввода данных (контроллеров). Результат — нажатие на кнопку регистрируется, хотя нажатия не было. В текущей игре разработчики заставили свою систему опрашивать канал ввода данных контроллера несколько раз за кадр игры.
Роботу нужно убедиться в том, что игра не регистрирует два одинаковых нажатия за кадр. В противном случае игра вываливается в бесконечный цикл, постоянно отслеживая входной канал данных, пока не получит запрос на прерывание цикла для следующего фрейма. В таком случае система начнет считывать инструкции с самого начала памяти.
Через несколько фреймов игра переходит к той области памяти, где сохранены данные по нажатию кнопок контроллера. Робот-спидраннер вводит в эту область код перехода на финальную заставку игры. И все это — менее, чем за секунду.
Система, о которой идет речь, получила название micro500. Она умеет эмулировать нажатия на кнопку контроллера со скоростью 7984 операций в секунду. Понятно, человек на это не способен. Пока что речь идет только об использовании micro500 для Super Mario Bros. 3. Другая игра, например, Zelda II: the Adventures of Link уже содержит в коде инструкции по выходу из цикла.
Самое интересное то, что этот рекорд является официальным. Создатели компьютерной системы, использующей баг в аппаратном обеспечении приставки, не модифицируют память приставки напрямую. Все, что они делают — эксплуатируют особенность «железа», позволяющую выполнить сторонний код. И все это они делают, используя лишь контроллер — вернее, его аппаратную эмуляцию в виде системы собственной разработки. Правда, сообщество спидраннеров разделилось. Одни считают, что все корректно. Вторые, в целом, согласны с этим, но утверждают, что это неинтересно, поскольку компьютерная система такого типа портит все удовольствие.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Комментарии (55)
DracoL1ch
14.07.2016 11:12Никакое сообщество спидранеров не «делилось» и не спорило. Есть TAS (tools assisted speedrun), где скрипты и прочие надстройки в каждом моменте. Это вполне легитимный вид прохождений. О «чистоте» спорят люди, далекие от культуры спидранов в целом, фанаты же в восторге.
swelf
14.07.2016 11:54+3из вики
>> Идея TAS заключается в том, чтобы превзойти ограничения человеческой реакции и способностей игрока ради достижения теоретических пределов игры, то есть границ реальных возможностей игрового движка
и я с этим согласен, а то что описывают в статье, никак не достижения пределов движка, а использование бага железки. Да еще и немного бессмысленное.FireSol
14.07.2016 12:07Русскоязычный вариант немного неточен. Задача TAS ранов показать результаты которые не зависят от физических способностей человека, что и демонстрируется в приведенном ролике.
swelf
14.07.2016 12:25+5да в англ тоже самое)
>>The idea is not to make gameplay easy with such «tools», but rather to produce a demonstration of gameplay pushed to the limit that would be theoretically possible where human limitations in skill and reflex were not an issue.
в любом случае, как уже многие тут заметили, в игре часто можно перескочить на титры из меню, это тоже спидран?FireSol
14.07.2016 12:45+1Как раз-таки не тоже самое, разница между ограничениями движка и физическими возможностями игрока огромна. В данном случае человек просто не способен нажимать на кнопки с со скоростью где-то 6000 нажатий в секунду, бот позволил обойти это ограничение, результат в видео.
Если перескок к титрам требует выполнения определенного алгоритма действий(за исключением ввода читкодов), не важно в меню это или нет, то вполне себе засчитывается за ран, только он будет относится к отдельной категории типа 0% или «warp to credit»QWhisper
14.07.2016 14:43+2ну вот если бы бот нажимал кнопки быстрее чем отрисовывается изображение, а машина бы их все равно обрабатывала, и итогом бы было, что он прошел игру только она не успела отрисоваться, вот тогда да.
FireSol
14.07.2016 15:06+1Тогда это уже была бы совершенно другая категория, не относящаяся к «warp to credit»
Darth_Malok
15.07.2016 15:30Так использовался не баг движка, а баг консоли. Это всё равно, что найти какой-нибудь глючный клон x86 процессора, который при быстрых нажатиях клавиши пишет данные прям в оперативку, запустить на этом процессоре doom и пройти его за секунду.
AVL93
14.07.2016 13:17+6> but rather to produce a demonstration of gameplay
> gameplay
Вот геймплея в этом варианте то и нет.
Deosis
14.07.2016 12:28В данном случае игре устроили DDoS.
Все равно что ударить молотком в катридж, чтобы его замкнуло и выкинуло на титры.
tmin10
14.07.2016 11:49+5Хм, как я понял, этот робот не эмулирует прохождение (для чего потребовалось бы анализ картинки на экране), а используя хак, делает переход сразу на финальную сцену? Но это же не прохождение игры в прямом смысле. Аналогично можно было бы сразу запустить титры в любой игре и назвать это прохождением, хотя самой игры-то мы и не увидели...
selezian
14.07.2016 12:28А нужен ли анализ картинки на экране для прохождения Марио, или положение врагов всегда одинаково и все команды можно просто заскриптовать?
tmin10
14.07.2016 12:29Не подумал об этом. Ну тогда да, нужен набор команд, проигрываемый на скорости. Вот это будет прохождением, а не телепорт в конец сразу.
Trosp
14.07.2016 18:15В prince of percia(2д) была возможность не бежать за мечом, а обойти охранника и перейти на следующий уровень. По сути тоже телепорт в конец.
tmin10
14.07.2016 22:25Всё равно принцу надо нажимать на педали, прыгать и бегать, а потом выпить нужную буковку. Прохождение было, просто чуть более лёгкое, чем обычно.
Trosp
15.07.2016 10:49Тут проблема песчинки и кучи. В какой момент можно сказать, что прохождение уже не «чуть более легкое», а никакое.
robert_ayrapetyan
15.07.2016 00:32+2Даже в начале второго уровня так же можно обойти охранника, скинув его в яму. А вот с третьим охранником (наверху) уже облом… Долго пытался его перепрыгнуть.
p.s. Кто ж знал что меч берется Ctrl-ом (или шифтом), запретили нажимать все кнопки, кроме стрелок, что б не «испортить компьютер».
ariksu
14.07.2016 12:56+2«скипы» считаются легитимными в спидранах. Но вообще статья не полна без упоминания вот этого рекорда (другого супермарио, но зато без использования сторонних утилит) www.youtube.com/watch?v=ZHQaYc8OwlA
mihmantis
15.07.2016 15:31Очень крутая штука на самом деле, писать пэйлоад с помощью панцирей от куп.
Тот же хак, но с наглядным разбором в самом видео.
youtu.be/vAHXK2wut_I
Tinavie
14.07.2016 14:53+2В спидранах прохождением является показ финальных титров, для многих игр есть отдельные категории Any%, Low%, 100%, Glitchless и прочие (включая комбинации). В частности, есть отдельная категория спидранов (не только Tool-Assisted, но и выполняемая людьми) связанная с модификацией памяти игровыми средствами, такие раны даже проходят с завязанными глазами (в ютюбе pokemon blindfolded). Все это является «законным» в рамках этой категории.
master_of_mastery
14.07.2016 15:03связанная с модификацией памяти игровыми средствами, такие раны даже проходят с завязанными глазами (в ютюбе pokemon blindfolded)
На этом SGDQ, кстати, была пройдена пройдена Castlevania: Symphony of the Night с завязанным глазами, без гличей и манипуляций с памятью, на тру концовку.Vehona
14.07.2016 16:53Игроку, правда, пришлось в паре мест просить комментаторов описать, где он находится, после того, как его геймпад решил добавить «изюминку» в игровой процесс, умертвив одну из кнопок, из-за чего играющий минут 15 пытался понять, почему у него не удается проследовать дальше по запланированному пути.
lingvo
14.07.2016 12:28-1Насчет прохождения игр роботом. Меня все подмывает сделать такой чит для уличного автомата по разрезанию ленточки, на которой висят разные телефоны. Там всего две кнопки, которые надо нажать с определенным интервалом, чтобы ножницы остановились четко напротив веревки.
То есть надо всего пару соленоидов с толкателями + платка с таймером. Только в рукава или перчатки как-то это засунуть надо.tmin10
14.07.2016 12:30+2Думаю в них изначально при конструировании заложен низкий процент побед, как например у автоматов с захватом игрушки манипулятором, там просто манипулятор слабо держит и сам выпускает игрушку.
huhen
14.07.2016 14:53+1Там не сам выпускает, в обычной ситуации захват и удержание идет с заданным усилием и раз в определенное количество игр идет захват с максимальным усилием. По тетрису задается возможность выиграть супер приз только после накопления аппаратом определенной суммы денег, думаю с возможностью разрезать ленточку аналогично.
perfect_genius
14.07.2016 15:53Интересно, а как дела обстоят с другими играми при помощи этого «бага»…
madf
14.07.2016 18:21+1прохождением игры считается: выполнение всех временных рамок, действий задуманные разработчиком, если используются баги, то это уже не имеет никакого отношение к игре
если бы железка играла вместо человека (как сборка кубика-рубика), то это было бы прохождениеStalker_RED
14.07.2016 18:47+3Как это, выполнение всех действий, задуманных разработчиком? Если в локации есть 100 сундуков с сокровищами, обязательно нужно найти все? Если существует короткий путь, им нельзя пользоваться?
У speedrun'а есть подвиды, в том числе с использованием багов.
Один из подвидов спидрана — Tool-assisted speedrun (TAS), позволяет использовать программные и аппаратные средства для ускорения прохождения. Один из подвидов TAS позволяет эмулировать игровой контроллер, и именно о такой эмуляции эта статья.madf
14.07.2016 18:57+1в игре есть динамика (прыжки, ходьба, бег) — вот используя их и оптимизируя движения/уклонение (с постреливанием) — проходим игру
я довольно понятно суть описал, зачем так извращать… да… да… системным блоком можно колоть орехи и что… и "СPU иногда выполняет дополнительную операцию чтения с одного из каналов ввода данных" — не является коротким путём
Lure
14.07.2016 19:56+1>> прохождением игры считается:
Довольно безапелляционно. Кем считается? Всемирной палатой мер и весов? Играют люди как хотят и где хотят. И это не запрещено, если не нарушает закон. Вот у кого-то есть СВОЁ определение прохождения, они его так установили в своём сообществе, и в него такой способ нормально укладывается.
FireSol
15.07.2016 10:12https://www.youtube.com/watch?v=5NeR-bT3uv0
Вот этот ран можно назвать прохождением или нет?
Lockal
14.07.2016 20:31Пользуясь случаем, хочу попросить все speedrun-сайты зарегистрировать за мной рекорды по прохождению всех игр на ПК за полминуты. Алгоритм прохождения: нажать ctrl+tab, запустить интерпретатор а-ля powershell, заменить в сейве или ресурсах игры пару байтов, чтобы при перезапуске игры или загрузке сейва вывалился эндинг. И не подумайте ничего плохого! Я всего лишь использую баг контроллера «клавиатура», позволяющий CPU выполнять различного рода операции.
3lnc
15.07.2016 00:35Подозреваю, вы пропустили часть про «Самое интересное то, что этот рекорд является официальным. Создатели компьютерной системы, использующей баг в аппаратном обеспечении приставки, не модифицируют память приставки напрямую»
master_of_mastery
15.07.2016 09:54+1запустить интерпретатор а-ля powershell, заменить в сейве или ресурсах игры пару байтов
Не, так не пойдет, сделаешь как этот парень (редактирует память изнутри игры, без сторонних средств) — приходи.
swelf
15.07.2016 10:08Если акцент делать на «хакнули память при помощи геймпада» это уже по другому воспринимается, но тут время не сильно играет роли.
TigerHawk
15.07.2016 15:29Интересно, конечно, но в качестве именно «прохождения» игры выглядит примерно так:
www.youtube.com/watch?v=RN0-QHZnvKk
WanderVlad
Конечно, придумка интересная. Но я всё же думаю, что результат не стоит сравнивать с «ручным» прохождением.
Автору: мб стоит опрос прикрутить, глянуть, кто что думает?
marks
Да, согласен. Добавил опрос.
brzsmg
Я думал сравнивают рекорды не с ручным прохождением, а прохождением с помощью «компьютерной системы».
Я считаю что используя этот баг, новый рекорд нельзя назвать прохождением.
Так в некоторых играх можно через меню, без всяких багов перейти сразу к титрам, или выбрать с какого уровня начинать.
FireSol
Так с ручным никто и не сравнивает, тк TAS(Tool-assisted speedrun) является отдельной категорией, у них отдельные таблицы рекордов, которые никак не пересакаются с обычными ранами. Плюс сами по себе TAS крайне полезны для коммьюнити, тк иногда они позволяют найти стратегии, которые потом повторяются обычными игроками.
Как пример Super Mario World 0 Exit Credits Warp
www.twitch.tv/sethbling/v/64033764