ROM хакерство является процессом модификации ROM изображения или файл ROM в виде видеоигры , чтобы изменить графику игры, диалоги, уровни, геймплей, и / или другие элементы. Обычно это делают технически подкованные фанаты видеоигр, чтобы вдохнуть новую жизнь в заветную старую игру в качестве творческого выхода или для создания принципиально новых неофициальных игр с использованием движка старой игры.
Взлом ПЗУ обычно осуществляется с помощью шестнадцатеричного редактора (программы для редактирования нетекстовых данных) и различных специализированных инструментов, таких как редакторы плиток , а также инструменты для конкретных игр, которые обычно используются для редактирования уровней, предметов и т.п., хотя иногда используются более продвинутые инструменты, такие как ассемблеры и отладчики . После того, как они готовы, они обычно распространяются в Интернете, чтобы другие могли поиграть на эмуляторе или игровой консоли. [1]
Фан-перевод (известный как « взлом перевода » в сообществе хакеров ПЗУ) - это тип взлома ПЗУ; Существуют также хаки против цензуры, которые используются для восстановления игры в исходное состояние, что часто наблюдается в более старых играх, которые были импортированы, поскольку политика издателей в отношении контента для видеоигр (в первую очередь, Nintendo ) была намного строже в Соединенные Штаты, чем Япония или Европа; есть также рандомизаторы, которые перемешивают размещение сущностей. [2] Хотя большая часть метода применима к обоим типам взлома, в этой статье основное внимание уделяется «творческому взлому», например редактированию уровней игры.
Сообщества
Большинство хакерских групп предлагают веб-пространство для размещения взломов и снимков экрана (иногда только размещение взломов от членов группы, иногда размещение почти любого взлома), доску сообщений и часто есть канал IRC .
Методы
Данные ROM, созданные многими разными программистами или группами программистов, могут быть очень разнообразными.
Шестнадцатеричное редактирование
Шестнадцатеричный редактор является одним из самых основных инструментов в репертуаре любого ROM хакера. Шестнадцатеричные редакторы обычно используются для редактирования текста, а также для редактирования других данных, структура которых известна (например, свойств элемента), и взлома сборки .
Редактирование текста - одна из основных форм взлома. Многие игры не хранят свой текст в форме ASCII , и из-за этого были разработаны некоторые специализированные шестнадцатеричные редакторы, которые могут сообщить, какие значения байтов соответствуют какой букве (буквам) алфавита, чтобы облегчить редактирование текста; файл, который определяет эти отношения байт = буква, называется "табличным" файлом. В других играх используются простые методы сжатия текста (такие как кодирование пар байтов , также называемое кодированием двух фрагментов или DTE, в котором определенные комбинации из двух или более букв кодируются как один байт), редактирование которых может облегчить надлежащим образом оборудованный шестнадцатеричный редактор.
Шестнадцатеричный редактор - это предпочтительный инструмент для редактирования таких вещей, как свойства персонажа / предмета, если структура и расположение этих данных известны и нет редактора для игры, который мог бы редактировать эту информацию. Некоторые бесстрашные хакеры также выполняют редактирование уровней с помощью шестнадцатеричного редактора, но это чрезвычайно сложно (за исключением игр, формат хранения уровней которых очень похож на то, как он представлен в шестнадцатеричном редакторе).
Редактирование графики
Еще один базовый навык взлома - это взлом графики, который изменяет внешний вид игрового окружения, персонажей, шрифтов или других подобных вещей. Формат графических данных варьируется от консоли к консоли, но большинство ранних (NES, Super NES, Game Boy и т. Д.) Хранят графику в тайлах , которые представляют собой блоки данных размером 8x8 пикселей , которые размещаются на экране для произвести желаемый результат. Редактирование этих плиток также возможно с помощью шестнадцатеричного редактора, но обычно выполняется с помощью редактора плиток (например, Tile Layer или Tile Molester ), который может отображать данные ROM в графическом виде, а также находить и редактировать плитки.
Графика писака может варьироваться от простых изменений (такие , как предоставление Luigi в гольф - клуб , или сделать пиксельные спрайты для позже поколения покемонов) , чтобы «портирование» персонажи из одной игры в другую, чтобы полномасштабные тематические изменения ( как правило , с сопутствующими изменениями палитр; см ниже).
Более сложный взлом графики включает в себя изменение не только плиток и цветов, но и способа их расположения или создания групп плиток, что дает большую гибкость и контроль над окончательным внешним видом. Это достигается с помощью шестнадцатеричного редактирования или специального инструмента (либо для конкретной игры, либо для конкретной системы). Хорошим примером графического хака является незавершенный Pokémon Torzach , хак, который попытался добавить в игру новое поколение покемонов и тайлов. С тех пор взлом был прекращен, но он по-прежнему служит хорошим примером того, чего можно достичь с помощью доступных инструментов.
Редактирование палитры
Другой распространенной формой взлома является взлом палитры , когда значения цвета изменяются, чтобы изменить цвета, которые игрок видит в игре (это часто идет рука об руку с взломом графики ); Значения палитры обычно хранятся в шестнадцатеричном формате . Это довольно просто для игр NES , графика которых использует заранее определенный набор цветов, среди которых выбирается игра; взлом палитры в этом случае влечет за собой изменение того, какой из этих цветов выбран. Немного сложнее обстоит дело с играми Super NES и играми для других систем, в которых хранятся абсолютные значения цвета RGB . Редакторы палитр обычно просты и часто используются с редакторами уровней или графическими редакторами для конкретных игр.
Редактирование уровня
Одна из самых популярных форм взлома ПЗУ, редактирование уровней, влечет за собой изменение или переработку уровней или карт игры. Это почти всегда делается с помощью редактора, специально созданного для конкретной игры (называемого редактором уровней ). Изменения уровней могут быть сделаны, чтобы сделать игру более сложной, изменить ход сюжета игры или просто добавить что-то новое в старую игру. В сочетании с обширным взломом графики игра может выглядеть совершенно по-другому.
Редактирование данных
Основным компонентом многих хаков (особенно ролевых видеоигр ) является редактирование таких данных, как свойства персонажа, предмета и врага. Обычно это делается либо «вручную» (с помощью шестнадцатеричного редактора), если местоположение и структура данных известны, либо с помощью редактора для конкретной игры, который имеет эту функцию. Благодаря этому хакер может изменить принцип работы оружия, силу врагов, их действия и т. Д. Это можно сделать, чтобы упростить или усложнить игру, или создать новые сценарии, с которыми игрок может столкнуться.
Сборка взлома
Самая мощная и, возможно, самая сложная техника взлома - это редактирование реального кода игры, процесс, называемый взломом ASM («ASM» означает « сборка », имея в виду тип языка программирования, который использовался в ранних видеоиграх). [1] Не существует установленного шаблона для взлома ASM, поскольку код сильно различается от игры к игре, но большинство опытных хакеров ASM либо используют эмулятор, оснащенный встроенным отладчиком или трассировщиком, либо запускают ПЗУ через дизассемблер , а затем проанализировать код и изменить его с помощью шестнадцатеричного редактора или ассемблера в соответствии с их потребностями. Хотя довольно сложные по сравнению с относительно простых методов , перечисленных выше, ничего возможно с ASM взлома (конечно, в пределах аппаратного / программного обеспечения игровой платформы), начиная от изменяющий противника ИИ , чтобы изменить то, как формируются графики. (Конечно, возможности все еще ограничены способностью хакера понять и изменить существующий код.)
Если разработчики использовали типизированный язык , хакер может скомпилировать свой собственный код для игры на том же языке, если у них есть доступ к подходящему компилятору. Одним из таких примеров может быть использование C для взлома игр Nintendo 64 , поскольку MIPS - GCC может компилировать код для Nintendo 64. [3] [4]
Музыкальный взлом
Музыкальные взломы относительно редки из-за большого разнообразия способов хранения музыкальных данных в играх (отсюда трудности с поиском и изменением этих данных) и трудностей при создании новой музыки (или переносе музыки из другой игры). Поскольку взлом музыки очень редок, во многие хаки не добавляется портированная / составленная музыка. Однако, поскольку многие игры Game Boy Advance используют M4A Engine (также называемый «Sappy Driver») для музыки, программу SapTapper можно использовать для взломать музыкальные данные Game Boy Advance. Для работы с движком были созданы различные другие утилиты, такие как Sappy 2006 .
Другой пример того же движка, который используется между играми, - это Nintendo 64, в которой большинство игр используют один и тот же формат; хотя они используют разные звуковые банки. Утилита, известная как N64 Midi Tool, была создана для редактирования последовательностей, используемых в большинстве игр для Nintendo 64, хотя она не распространяется на игры для N64, которые используют немного другой движок, например Super Mario 64 . Некоторые [5] игры Mega Drive используют звуковой движок, неофициально известный как «SMPS», [6] который десятилетиями исследовался многими хакерами. [7] На сегодняшний день существуют различные [8] инструменты для изменения музыки в играх, в которых используется движок SMPS ( в частности, игры Sonic the Hedgehog ), и многие из них попали в Steam Workshop. [9]
Расширение ПЗУ
Вообще говоря, хакер ПЗУ обычно не может добавлять контент в игру, а просто изменять существующий контент. Этот предел может быть преодолен путем расширения ПЗУ , в результате чего общий размер образа ПЗУ увеличивается, освобождая место для большего количества контента и, в свою очередь, более крупной игры. Сложность этого варьируется в зависимости от системы, для которой была создана игра. Например, расширение ПЗУ NES может быть трудным или даже невозможным из-за модуля отображения, используемого игрой. Например, если сопоставитель позволяет использовать 16 банков ПЗУ, и все они используются, дальнейшее расширение ПЗУ невозможно без преобразования игры в другой сопоставитель, что может быть легко или чрезвычайно сложно. С другой стороны, расширение игры для SNES (относительно) несложно. Чтобы использовать добавленное пространство, части кода игры должны быть изменены или переписаны (см. Взлом сборки выше), чтобы игра знала, где искать. Другой довольно простой тип расширения ПЗУ - это ПЗУ Game Boy Advance . Сами ПЗУ, как правило, небольшие, но доступное пространство памяти иногда превышает его в 17 раз.
Распределение
После того, как взлом завершен (или неполная версия считается подходящей для промежуточного выпуска), он публикуется в Интернете, чтобы другие могли поиграть. Общепринятый способ сделать это - сделать неофициальный патч (в формате IPS или других), который можно применить к неизмененному ПЗУ. [1] Эта документация, как и обычно, помещается в архивный файл и куда-то загружается. IPS - это формат для записи различий между двумя двоичными файлами (в данном случае между немодифицированным и взломанным ПЗУ) и подходит для взлома ПЗУ. [10] IPS до сих пор используется для небольших патчей, однако, когда размер ПЗУ стал больше, этот формат стал бесполезным, что привело к созданию довольно большого количества форматов файлов, таких как NINJA и PPF (« Формат патчей PlayStation »). PPF все еще используется сегодня, особенно для исправления больших файлов, таких как образы компакт-дисков ISO и игры для Nintendo 64 . Новый формат исправлений, UPS, также был разработан сообществом хакеров ROM, призванным стать преемником IPS и PPF. [11] Более поздний формат исправлений, система исправлений APS, также был разработан преданным хакером Game Boy Advance ROM. [12] Система APS более компактна, обратима и быстрее, чем ее предшественница. [13]
Цель распространения взлома в форме патча - избежать юридических аспектов распространения полных образов ПЗУ; патч записывает только то, что изменилось в ПЗУ, поэтому его распространение обычно не распространяется на части исходной игры. Патч также обычно значительно меньше полного образа ПЗУ (ПЗУ NES может работать от 8 КБ до 2 МБ; ПЗУ Super NES может работать от 256 КБ до 6 МБ).
В качестве нового примера легального распространения Sega выпустила виртуальный хаб на базе Steam для своей предыдущей коллекции игр Mega Drive / Genesis под названием Sega Mega Drive Classics Hub . Hub , к тому же позволяют игрокам играть ЭМУЛИРОВАННЫЕ версии этих старых игр, пользуется поддержкой в Steam , созданные пользователей контента через Steam , Workshop, официально позвуюся ROM хак любой из предлагаемых классиков. [14]
Применение
Исправленные ПЗУ часто воспроизводятся на эмуляторах, однако также можно воспроизводить исправленные ПЗУ на исходном оборудовании. [15] Картридж назначения может быть исходным картриджем, из которого было извлечено исходное ПЗУ без исправлений, или другим совместимым картриджем того же типа. Это особенно популярно для фанатских переводов , домашних игр, прототипов или других игр, для которых никогда не производились оригинальные картриджи, или для игр, для которых требуется точное время или другие элементы оригинального оборудования, недоступные в эмуляторах.
Системы и игры
Большая часть взлома ROM выполняется в играх NES , Super NES и Sega Genesis , поскольку такие игры небольшие и простые по сравнению с играми на более продвинутых консолях, таких как Nintendo 64 или Nintendo DS . Игры для Game Boy , Game Boy Color и Game Boy Advance также популярны для взлома, а также игры для Sega Mega Drive и PlayStation в меньшей степени. Однако игры, предназначенные для более поздних консолей, не защищены от взлома, поскольку компьютеры стали быстрее, и было написано больше программ и утилит, появилось больше хаков для PlayStation, Nintendo 64 и Nintendo DS.
Среди них самые популярные игры - это игры, которые можно взломать; выпущено много хаков по играм серии Sonic the Hedgehog , Super Mario (включая Mario Bros. , Super Mario Bros. , Super Mario Bros. 2 , Super Mario Bros. 3 , Super Mario 64 и Super Mario World ), Mario Серия карт (особенно Super Mario Kart , Mario Kart Wii , Mario Kart 7 и Mario Kart DS ), серия Pokémon , Chip's Challenge , Castlevania , Final Fantasy , The Legend of Zelda , игры из серии Mega Man, серия Fire Emblem , EarthBound , Super Metroid и многие другие.
Известной аркадной игрой была Street Fighter II Blackbelt Edition , которая отличалась повышенной скоростью игры и новыми специальными движениями. Успех этой игры побудил Capcom выпустить Street Fighter II: Hyper Fighting в качестве официального ответа.
Ваш журнал Sinclair публиковал ежемесячную колонку под названием «Program Pitstop». В основном этокасалось чит- хаков для игр, но также было предусмотрено как принтер карты уровней [16] для оригинальной Gauntlet , так и полный редактор уровней [17] для той же игры.
Смотрите также
- Эмерджентный геймплей
- Фанатский перевод видеоигр
- Форкинг (разработка программного обеспечения)
- Game Genie
- GameShark
- Homebrew (видеоигры)
- Мод (видеоигры)
- Отмена подписки
Рекомендации
- ^ a b c "Словарь терминов ROMhacking" . ROMhacking.net .
- ^ «БОЛЬШОЙ список рандомизаторов видеоигр» . Гийом Фортин-Дебигаре . Проверено 10 июля 2020 .
- ^ «vg64tools - Хостинг проектов на Google Code» . Code.google.com . Проверено 9 сентября 2009 .
- ^ «Супер Марио 64: Понг Смерти (мессиан)» . Sites.google.com . Проверено 9 сентября 2009 .
- ^ «Список звуковых движков Mega Drive / Genesis - GDRI :: Исследовательский институт разработчиков игр» . gdri.smspower.org .
- ^ «SMPS - Sega Retro» . segaretro.org .
- ^ "Исследование SMPS Valley Bell" . Доска объявлений Sonic и Sega Retro .
- ^ «Sonic Hacking Utilities - Sonic Retro» . info.sonicretro.org .
- ^ "Мастерская Steam :: SEGA Mega Drive & Genesis Classics" . steamcommunity.com .
- ^ "Pokemon Rom Hacks" . InverseGamer.com . Проверено 31 марта 2021 года .
- ^ «Новый формат исправлений, UPS, дебютирует сегодня» . www.romhacking.net .
- ^ «Форумы PokéCommunity - Просмотр профиля: HackMew» . www.pokecommunity.com .
- ^ «Новейший формат исправлений, APS, выпущенный недавно» . www.pokecommunity.com .
- ^ Инь-Пул, Уэсли (29 апреля 2016 г.). «Мододелы уже развлекаются классическими играми Sega Mega Drive в Steam» . Eurogamer . Проверено 3 мая 2016 года .
- ^ "Базовое воспроизведение РЭШ" .
- ^ «Мир Спектра - Принудительный редирект» . www.worldofspectrum.org .
- ^ «Мир Спектра - Принудительный редирект» . www.worldofspectrum.org .
- Carless, Simon, Gaming взломы
- Кастро, Рэдфорд, позволь мне поиграть: истории игр и эмуляции
- Джордан, Уилл (2007). От нарушения правил до взлома ПЗУ: теоретизирование компьютерной игры как товара (PDF) . Расположенная Игра, Материалы конференции DiGRA 2007.
- Ньюман, Джеймс, Играя в видеоигры