Cah4e3′s Blog

05/07/2010

Немного истории 2

Filed under: Занимательное рядом — cah4e3 @ 19:59

В продолжение старой темы о проблемах игр на пиратских картриджах, не могу не рассказать еще об одном занимательном случае. Тем, кому посчастливилось стать обладателем вот такого картриджа, посвящается:

Несмотря на вполне определенное название “Robo Cop III” на картридже игра не имела ничего общего со всем известным Роботом-полицейским и играми по одноименному фильму. Название игры на титульном экране, как и положено в любой нормальной японской игре, написано по-японски, но, хотя и существует другая пиратская версия этой игры с другим, не менее распространенным для нее названием “Super Resque” на титуле, было прекрасно видно, что игру “Tokkyuu Shirei – Solbrain” с натяжкой можно все-таки назвать игрой про робота-полицейского.

Что же получали счастливые обладатели сего пиратского картриджа? Начнем с того, что оригинальная версия игры имела возможность выбора любого из оставшихся пяти уровней в произвольном порядке после прохождения первого обязательного. В пиратской же версии того, кому удалось пройти первый уровень, выбрасывало сразу же на уровень F с горящими зданиями и большим лифтом, поднявшись на котором, игрок попадал к боссу.

Тут то и ждало главное разочарование. Убив босса, игрок не перемещался на следующий уровень или в режим их выбора. Вместо этого босс уровня появлялся снова живее всех живых и битва продолжалась. Самые упорные убивали его несколько десятков раз подряд, так и не достигнув никакого результата. Прочие оставляли картридж пылиться на полке.

Так в чем же проблема? У вас появилась эксклюзивная возможность узнать это прямо сейчас. ;) Начнем с того, что пиратская игра отличается от оригинальной не только стертыми копирайтами на титульном экране, что можно наблюдать на скриншотах выше, но и наличием встроенного искусственно чита для восстановления жизней. В любой момент игры можно, нажав знакомую до боли комбинацию Start + Up, восполнить потерянную энергию. Вот он, код чита, добавленный в конец файла:

	BANKF:FF80 26 91      ROL     $91
	BANKF:FF82 A5 90      LDA     $90
	BANKF:FF84 29 18      AND     #$18
	BANKF:FF86 C9 18      CMP     #$18
	BANKF:FF88 D0 05      BNE     locret_B7F8F
	BANKF:FF8A A9 08      LDA     #8
	BANKF:FF8C 8D C5 05   STA     $5C5
	BANKF:FF8F 60         RTS

Виноват чит? Ни в коем случае. Он абсолютно ничему не мешает. Помешала как всегда спешка. Во время хака, судя по всему, было принято решение изменить игру таким образом, чтобы она отличалась от оригинала. Как правило, проще всего это делается изменением порядка уровней. Было принято решение убрать выбор уровня и сделать игру линейной, с чередующимися друг за другом уровнями и боссами. Так как внутренние номера уровней и боссов не расположены в строгом порядке возрастания, а в общем то выбираются по совершенно другим соображениям, предполагалось, что не только порядок уровней, но и соответствие боссов уровням будет иное. Таким образом китайскими умельцами была сделана простейшая модификация кода:

	BANKE:DAF2 A5 55      LDA     $55
	BANKE:DAF4 EA         NOP		; BNE     $DAFB
	BANKE:DAF5 EA         NOP		;
	BANKE:DAF6 A9 1D      LDA     #$1D
	BANKE:DAF8 85 02      STA     2
	BANKE:DAFA 60         RTS
	BANKE:DAFB 20 C9 C5   JSR     $C5C9
	BANKE:DAFE A9 13      LDA     #$13
	BANKE:DB00 20 8C EF   JSR     $EF8C

Опкод BNE, проверявший, пройден ли первый обязательный уровень и перенаправлявший в положительном случае управление на код выбора дальнейшего уровня, стерт начисто. Теперь игра должна была бы получать сразу номер уровня в переменной $55 и двигаться дальше. Не тут то было.

Логикой игры не предусмотрено последовательное увеличение номера уровня. Соответственно, первый уровень имеет индекс 0 и инициализируется при старте. После прохождения первого уровня, переменной номера уровня явно присваивается первое и последнее ненулевое значение – 1, которое является индексом уровня F, стартующего сразу за пройденным уровнем A. В дальнейшем все изменения переменной номера уровня осуществляются только в режиме выбора уровня и в конце каждого из них при переходе к боссу. Сами того не понимая, пираты просто напросто отключили любую возможность перехода в другой этап, отключив ветку кода с режимом их выбора. Результат мы можем ощутить воочию.

Подобные вещи не столь редкое явление для пиратских картриджей. Отдельной темы заслуживает система противопиратской защиты в играх Konami, ставшая причиной огромного числа проблем у пользователей пиратской продукции у нас в стране. Неубиваемые Шреддеры, легко убиваемый Bucky O’Hare, зацикливание уровней – только малая часть всего веселья, о котором я, может быть, расскажу в следующий раз.

Если вы знаете еще какие-то примеры подобного рода “глюков” в пиратских играх, рассказывайте. Может быть кто-то знает и имеет пиратский картридж с данной игрой, лишенной описанного недостатка. Кто знает, может быть и они смогут найти свое логическое объяснение.

Комментарии (9) »

  1. Занимательная статья!Был у меня такой дефектный картридж когда-то.Был ещё дефектный Wacky Races,но там был явно производственный дефект,т.к.довелось сыграть в нормальный.А вот что интересно(не по теме):есть вынутая из игр Денди музыка.Слушаешь музыку каких-либо игр и слышишь,что некоторых мелодий в игре нет.Например,такое есть в некоторых играх от Sunsoft,таких как Journey To Silius(RAF World)(там,вроде,один “лишний” трек),Batman-Return Of The Joker(также один),Super Spy Hunter(два трека).Интересно,как это можно объяснить…Даже не представляю условий,при которых можно их услышать.

    комментарий от Александр — 05/08/2010 @ 00:28

  2. Лишняя музыка – только малая часть того, что можно оставить лишнего в игре.
    http://wiki.rustedlogic.net/The_Cutting_Room_Floor

    комментарий от cah4e3 — 05/08/2010 @ 01:50

  3. Был такой картридж с читом и без глюка, экран выбора уровня работал нормально. Наклейка была немного другая вроде, но тоже гласила “Robocop 3″. Чит, кстати, нашёл сам случайно при забавных обстоятельствах – на заводе упал в лаву с последней палкой жизни и по привычке нажал старт (во многих играх после смерти это ускоряет начало следующей попытки), вверх видимо было зажато ещё при прыжке (ну чтоб прыгал выше типа :) ) и офигел когда восстал из мёртвых. Уже многим позже узнал что это любимая пиратами комбинация кнопок.

    комментарий от roman_pro — 05/08/2010 @ 05:16

  4. А у меня был такой же картридж, но на этикетке было совсем другое нарисовано и название было “Super Rescue”. ;)
    PS Так что моя теория о прохождении босса 256 раз (переполнение байта) была изначально провальной. Я одолевал его только 64 раза (проверял лимиты на степень двойки). ;)

    комментарий от HardWareMan — 05/08/2010 @ 12:17

  5. да, неубиваемого шредера я до сих пор помню… ох как мы с соседом намучались тогда

    комментарий от clover — 05/09/2010 @ 19:07

  6. Эхх…. Вот он красавец!
    Сколько сил и времени на него потратил…))
    Для меня это была игра-тайна =)

    Спасибо за статью, очень интересно было узнать об ошибке)

    комментарий от DavidMG — 05/11/2010 @ 21:25

  7. Был картридж 15 игровка, там Captain America, черепашки 3 и эта игруха под названием Super Rescue (хотя в выборе игры и на картридже было написано Robocop 3), с иероглифами. И был точно такой же глюк – зацикленные боссы. Да и в черепахах Шредер внутри Технодрома был вечно живой, никакие хитрости не помогли, убить не получилось:(. Тоже всего придумывали, но похоже что не от игроков зависело :)

    комментарий от misha1024 — 10/20/2010 @ 15:43

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

    комментарий от Bugrim — 01/22/2011 @ 18:04

  9. А этот баг сложно будит исправить через Debugger(FCEU)? или через ArtMoney?
    хочется увидит что там дальше после Area F

    комментарий от Matamune — 01/23/2012 @ 04:24


RSS-лента комментариев к этой записи.

Добавить комментарий

Fill in your details below or click an icon to log in:

Логотип WordPress.com

You are commenting using your WordPress.com account. Log Out / Изменить )

Фотография Twitter

You are commenting using your Twitter account. Log Out / Изменить )

Фотография Facebook

You are commenting using your Facebook account. Log Out / Изменить )

Connecting to %s

Theme: Silver is the New Black. Блог на WordPress.com.

Follow

Get every new post delivered to your Inbox.