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

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

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

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

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

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

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

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

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

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

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

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

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

Advertisements

17 Comments

  1. Александр
    Posted 05/08/2010 at 00:28 | Permalink

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

  2. cah4e3
    Posted 05/08/2010 at 01:50 | Permalink

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

  3. roman_pro
    Posted 05/08/2010 at 05:16 | Permalink

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

  4. HardWareMan
    Posted 05/08/2010 at 12:17 | Permalink

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

  5. clover
    Posted 05/09/2010 at 19:07 | Permalink

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

  6. DavidMG
    Posted 05/11/2010 at 21:25 | Permalink

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

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

  7. Posted 10/20/2010 at 15:43 | Permalink

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

  8. Posted 01/22/2011 at 18:04 | Permalink

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

  9. Matamune
    Posted 01/23/2012 at 04:24 | Permalink

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

  10. Posted 06/29/2012 at 03:57 | Permalink

    Где можно скачать этот РОМ с этой пиратской игрой? Хочется вспомнить как я сидел и over9999 часов раз убивая босса F уровня )))

  11. Posted 12/11/2012 at 08:06 | Permalink

    был такой! эх, ностальгия…

  12. Evgeniy
    Posted 01/27/2014 at 19:35 | Permalink

    Я помню того не проходимого босса У меня досих пор остался картридж 4 в 1 с четырмя робокопами. 3 и 4 Так мне не получилось пройти Робокоп 4 тоже похоже глучаный А где найти ром с таким глюком ? искал так не нашел

  13. Evgeniy
    Posted 05/21/2014 at 00:47 | Permalink

    Cah4e3’s выложи этот дамп этой игры с глюком пожалуйста

  14. cah4e3
    Posted 05/21/2014 at 13:30 | Permalink

    он на любом пиратском дампе с таким хаком титула или многоигровке

  15. Evgeniy
    Posted 05/21/2014 at 16:34 | Permalink

    cah4e3 Где можно скачать пиратский ром или ром многоигровки ? вот к примеру в файле Shatterhand.7z именно такого нет

  16. cah4e3
    Posted 05/21/2014 at 18:27 | Permalink

    Не знаю, где ты взял shatterhand.7z и что там, но пиратский ром в интернете давно и называется «Tokkyuu Shirei — Solbrain (J) [p1]»

  17. Evgeniy
    Posted 05/21/2014 at 22:24 | Permalink

    cah4e3 Большое спасибо нашел у когото в контакте
    .
    Shatterhand.7z я скачивал на
    emu-russia и emu-land
    Там нет именно того пиратского Даже список напишу Все меня посылали на эти сайты
    Shatterhand (E) [!]
    Shatterhand (U) [!]
    Shatterhand (U) [b1]
    Shatterhand (U) [b2]
    Shatterhand (U) [o1]
    Tokkyuu Shirei — Solbrain (J)
    Tokkyuu Shirei — Solbrain (J) [b1]
    Tokkyuu Shirei — Solbrain (J) [o1]
    Tokkyuu Shirei — Solbrain (J) [o1][T+Eng1.01_AGTP]
    Tokkyuu Shirei — Solbrain (J) [T+Bra1.0_BRGames]
    Tokkyuu Shirei — Solbrain (J) [T+Chi]
    Tokkyuu Shirei — Solbrain (J) [T+Chi][a1]
    Tokkyuu Shirei — Solbrain (J) [T+Chi][a2]
    Tokkyuu Shirei — Solbrain (J)
    [T+Eng1.01_AGTP]
    Tokkyuu Shirei — Solbrain (J) [T+Swe1.0_General CoolNES]
    Tokkyuu Shirei — Solbrain (J) [T-Eng1.0]

Прокомментировать

Required fields are marked *

*
*

%d такие блоггеры, как: