Взлом ПЗУ
Взлом ПЗУ (сокращение от «взлом памяти только для » ) — это процесс изменения образа ПЗУ или файла ПЗУ видеоигры чтения для изменения графики игры, диалогов, уровней, игрового процесса и/или других элементов. Обычно это делают технически подкованные фанаты видеоигр, чтобы улучшить старую важную игру в качестве творческого выхода или создать новые неофициальные игры с использованием движка старой игры. Хаки ROM либо перепроектируют игру для совершенно нового, увлекательного игрового процесса, сохраняя при этом большинство, если не все элементы, прежними, а также разблокируют и/или переопределяют функции, которые существовали в коде игры, но не используются в игре. .
ПЗУ Взлом обычно осуществляется с помощью шестнадцатеричного редактора (программы для редактирования нетекстовых данных) и различных специализированных инструментов, таких как редакторы плиток , а также инструментов, специфичных для игры, которые обычно используются для редактирования уровней, предметов и т.п., хотя более продвинутые инструменты, такие как ассемблеры и отладчики Иногда используются . Когда они готовы, их обычно распространяются в Интернете , чтобы другие могли играть на эмуляторе или игровой консоли. [ 1 ]
Фанатский перевод (известный в сообществе хакеров ROM как «взлом перевода») — это тип взлома ROM; существуют также хаки против цензуры, позволяющие восстановить игру в исходное состояние, что часто наблюдается в старых импортированных играх, поскольку политика издателей в отношении контента для видеоигр (в первую очередь, политики Nintendo ) была гораздо более строгой в Соединенные Штаты, чем Япония или Европа; а также рандомизаторы для некоторых игр, которые перемешивают места размещения объектов. [ 2 ] Хотя большая часть метода применима к обоим типам взлома, в этой статье основное внимание уделяется «творческому хакерству», например редактированию игровых уровней.
Сообщества
[ редактировать ]Большинство хакерских групп предлагают веб-пространство для размещения хаков и снимков экрана (иногда размещают только хаки членов группы и размещают практически любые хаки), доску объявлений и часто имеют канал IRC .
Один из самых популярных сайтов, посвященных взлому ПЗУ, Romhacking.net , заархивировал свою базу данных в 2024 году. [ 3 ] [ 4 ]
Многие руководства по взлому сцен были созданы, чтобы помочь другим освоиться, в том числе легендарная «БИБЛИЯ ROM HACKERS» середины-конца 1990-х годов. [ 5 ]
Методы
[ редактировать ]Данные ПЗУ, созданные множеством разных программистов или групп программистов, могут быть очень разнообразными.
Шестнадцатеричное редактирование
[ редактировать ]Шестнадцатеричный редактор — один из самых фундаментальных инструментов в репертуаре любого ROM-хакера. Шестнадцатеричные редакторы обычно используются для редактирования текста, а также для редактирования других данных, структура которых известна (например, свойств элемента), и взлома сборок .
Редактирование текста — одна из самых основных форм взлома. Многие игры не хранят свой текст в форме ASCII , поэтому были разработаны некоторые специализированные шестнадцатеричные редакторы, которые могут сообщать, какие значения байтов соответствуют какой букве (буквам) алфавита, чтобы облегчить редактирование текста; файл, который определяет эти отношения байт=буква, называется файлом таблицы. В других играх используются простые методы сжатия текста (например, кодирование пары байтов , также называемое двойным кодированием фрагментов или DTE, в котором определенные комбинации двух или более букв кодируются как один байт), которые может облегчить редактирование соответствующим образом оборудованный шестнадцатеричный редактор.
Шестнадцатеричный редактор — это предпочтительный инструмент для редактирования таких вещей, как свойства персонажа/предмета, если структура и расположение этих данных известны и для игры не существует редактора, специфичного для игры, который мог бы редактировать эту информацию. Некоторые отважные хакеры также выполняют редактирование уровней с помощью шестнадцатеричного редактора, но это чрезвычайно сложно (за исключением игр, формат хранения уровней которых очень похож на то, как он представлен в шестнадцатеричном редакторе).
Редактирование графики
[ редактировать ]Еще один базовый хакерский навык — это взлом графики, который меняет внешний вид игрового окружения, персонажей, шрифтов и других подобных вещей. Формат графических данных варьируется от консоли к консоли, но большинство ранних моделей (NES, Super NES, Game Boy и т. д.) хранят графику в тайлах , которые представляют собой блоки данных размером 8x8 пикселей , которые располагаются на экране для произвести желаемый результат. Редактирование этих тайлов также возможно с помощью шестнадцатеричного редактора, но обычно это осуществляется с помощью редактора тайлов (например, Tile Layer или Tile Molester ), который может графически отображать данные ПЗУ, а также находить и редактировать тайлы.
Графические хаки могут варьироваться от простых изменений (например, придать Марио афро для или Луиджи клюшку гольфа ) до «переноса» персонажей из одной игры в другую (например, создание пиксельных спрайтов в «ретро-стиле» покемонов более позднего поколения для использования в Поколении IV). Игры про покемонов [ 6 ] ), до полноценных тематических изменений (обычно с сопутствующими изменениями палитры; см. ниже).
Более сложный графический взлом включает в себя изменение не только плиток и цветов, но и способа их расположения или создания групп плиток, что обеспечивает большую гибкость и контроль над конечным внешним видом. Это достигается с помощью шестнадцатеричного редактирования или специального инструмента (либо для конкретной игры, либо для конкретной системы). К таким примерам графических хаков относятся неполный Pokémon Torzach , хак Pokémon FireRed , который пытался добавить в игру совершенно новое поколение покемонов и плиток, [ 7 ] и Super Mario Land 2 DX: 6 Golden Coins , полноцветная версия оригинальной игры , в которую, среди прочего, добавлена полноцветная поддержка (исходная игра поддерживала только оттенки серого) и исправлены проблемы с мерцанием экрана, присутствующие в оригинальной игре. [ 8 ]
Редактирование палитры
[ редактировать ]Другой распространенной формой взлома является взлом палитры , при котором значения цветов изменяются для изменения цветов, которые игрок видит в игре (это часто идет рука об руку со взломом графики ); Значения палитры обычно хранятся в Hex . Это довольно легко сделать для игр NES , графика которых использует заранее определенный набор цветов, среди которых выбирает игра (с использованием цветовой палитры на основе YIQ ); Взлом палитры в данном случае влечет за собой изменение выбранного из этих цветов. Немного сложнее дело обстоит с играми Super NES , а также играми для других систем (включая игры Sega Mega Drive/Genesis ), которые хранят абсолютные RGB значения цвета . Редакторы палитр обычно просты и часто включают в себя редакторы уровней или графические редакторы для конкретной игры.
Редактирование уровней
[ редактировать ]Одна из самых популярных форм взлома ПЗУ — редактирование уровней, влекущее за собой изменение или перепроектирование уровней или карт игры. Почти всегда это делается с помощью редактора, специально предназначенного для конкретной игры (так называемого редактора уровней ). Редактирование уровней может быть сделано, чтобы сделать игру более сложной, изменить ход сюжета игры или просто придать что-то новое в старой игре. В сочетании с обширным изменением графики игра может выглядеть совершенно по-другому.
Редактирование данных
[ редактировать ]Основным компонентом многих хаков (особенно ролевых видеоигр ) является редактирование таких данных, как свойства персонажа, предмета и врага. Обычно это делается либо «вручную» (с помощью шестнадцатеричного редактора), если известно расположение и структура данных, либо с помощью редактора для конкретной игры, который имеет такую функциональность. Благодаря этому хакер может изменить работу оружия, силу врагов или их действия и т. д. Это можно сделать, чтобы сделать игру проще или сложнее или создать новые сценарии для игрока.
Взлом сборки
[ редактировать ]Самый мощный и, возможно, самый сложный метод взлома — это редактирование реального кода игры, процесс, называемый хакингом ASM («ASM» означает « сборка », имея в виду язык программирования низкого уровня, который выполняется процессором). [ 1 ] Не существует установленного шаблона для взлома ASM, поскольку код сильно различается от игры к игре, но наиболее опытные хакеры ASM либо используют эмулятор , оснащенный встроенным отладчиком или трассировщиком, либо запускают ПЗУ через дизассемблер , а затем анализируют код. и модифицируйте его с помощью шестнадцатеричного редактора или ассемблера в соответствии со своими потребностями. Хотя это довольно сложно по сравнению с относительно простыми методами, перечисленными выше, с помощью взлома ASM возможно все (конечно, в пределах аппаратного/программного обеспечения игровой платформы), начиная от изменения искусственного интеллекта противника до изменения способа генерации графики. (Конечно, возможности по-прежнему ограничены способностью хакера понять и изменить существующий код.)
Если разработчики использовали типизированный язык , хакер может скомпилировать свой код игры на том же языке, если у него есть доступ к подходящему компилятору. Одним из таких примеров может быть использование C для взлома игр для Nintendo 64 , поскольку MIPS - GCC может компилировать код для Nintendo 64. [ 9 ] [ 10 ]
Музыкальный взлом
[ редактировать ]Музыкальные хаки относительно редки в большинстве хаков из-за большого разнообразия способов хранения музыкальных данных в играх (отсюда и трудности с поиском и изменением этих данных), а также из-за трудностей с созданием новой музыки (или переносом музыки из другой игры). Поскольку взлом музыки происходит очень редко, во многие хаки не добавляется портированная/сочиненная музыка. Исключения можно найти в последних хаках Super Mario World , где новая музыка может содержать новые инструменты, которых нет в оригинальной игре. Другими играми, в которых взлом музыки является частью их исследовательских и хакерских сообществ, являются игры NES Mega Man , Final Fantasy VI и игры Mega Drive (Genesis) Sonic the Hedgehog .
Поскольку во многих играх Game Boy Advance для музыки используется движок M4A (также называемый «Sappy Driver»), программу SapTapper можно использовать для взлома музыкальных данных Game Boy Advance. Для работы с движком были созданы различные другие утилиты, такие как Sappy 2006 .
Другой пример использования одного и того же движка между играми — это Nintendo 64, где большинство игр используют один и тот же формат; хотя и с разными звуковыми банками. Утилита, известная как N64 Midi Tool, была создана для редактирования последовательностей, используемых в большинстве игр для Nintendo 64, однако она не распространяется на оригинальные игры для N64, в которых использовался немного другой движок, например Super Mario 64 .
Несколько для Sega Mega Drive/Genesis. игр [ 11 ] использовал звуковой движок, широко известный как «SMPS», который предлагался как в версиях на базе 68k , так и на Z80 . [ 12 ] Этот звуковой движок в основном использовался в самых разных играх для этой системы, разработанных в Японии (включая игры сторонних разработчиков), при этом в некоторых играх использовались модифицированные версии звукового движка, и он десятилетиями исследовался многими хакерами. [ 13 ] На сегодняшний день существует множество инструментов [ 14 ] это может изменить музыку в играх, в которых использовался движок SMPS ( в частности, в играх Sonic the Hedgehog ); многие из них в конечном итоге попали в Мастерскую Steam . [ 15 ]
Расширение ПЗУ
[ редактировать ]Вообще говоря, хакер ROM обычно не может добавлять контент в игру, а просто изменяет существующий контент. Это ограничение можно преодолеть за счет расширения ПЗУ , в результате чего общий размер образа ПЗУ увеличивается, освобождая место для большего контента и, в свою очередь, для более крупной игры. Сложность этого зависит от системы, для которой создавалась игра. Например, расширение ПЗУ NES может быть затруднено или даже невозможно из-за картографа используемого в игре . Например, если картограф позволяет использовать 16 банков ПЗУ и все они используются, дальнейшее расширение ПЗУ невозможно без какого-либо преобразования игры в другой картограф, что может быть легко или чрезвычайно сложно. С другой стороны, расширение игры для SNES (и даже игры Mega Drive/Genesis, если уж на то пошло) (относительно) несложно. Чтобы использовать добавленное пространство, части игрового кода необходимо изменить или переписать (см. «Взлом сборки» выше), чтобы игра знала, где искать. Другой тип расширения ПЗУ , который довольно прост: ПЗУ Game Boy Advance . Сами ПЗУ, как правило, небольшие, но доступный объем памяти иногда превышает его кратно 17.
Распределение
[ редактировать ]Как только взлом завершен (или неполная версия считается подходящей для промежуточного выпуска), она выкладывается в Интернет, чтобы в нее могли играть другие. Общепринятый способ сделать это — сделать неофициальный патч (в формате IPS или других), который можно будет применить к немодифицированному ПЗУ. [ 1 ] Эта и, как правило, какая-то документация помещается в архивный файл и куда-то загружается. IPS — это формат записи различий между двумя двоичными файлами (в данном случае между немодифицированными и взломанными ПЗУ) и подходит для взлома ПЗУ. [ 16 ] IPS до сих пор используется для небольших патчей, однако по мере того, как ПЗУ стали больше, этот формат стал бесполезным, что привело к созданию довольно большого количества форматов файлов, таких как NINJA и PPF (также известный как « Формат патчей PlayStation »). PPF до сих пор используется, особенно для исправления больших файлов, таких как образы ISO CD-ROM , а также игр для Nintendo 64 . Сообществом хакеров ROM также был разработан новый формат патчей UPS, призванный стать преемником IPS и PPF. [ 17 ] Более поздний формат исправлений, система исправлений APS, также был разработан преданным хакером Game Boy Advance ROM. [ 18 ] Система APS более компактна, обратима и работает быстрее, чем ее предшественница. [ 19 ]
Целью распространения хака в виде патча является избежание юридических аспектов распространения целых образов ПЗУ; патч записывает только то, что изменилось в ПЗУ, поэтому при его распространении обычно не распространяются части исходной игры. Патч также обычно значительно меньше полного образа ПЗУ (ПЗУ NES может иметь размер от 8 КБ до 2 МБ; ПЗУ Super NES может иметь размер от 256 КБ до 6 МБ; а ПЗУ Mega Drive/Genesis могут иметь размер от 512 КБ). до 4 МБ). Распространение патчей не является незаконным, поскольку они обычно содержат изменения кода игры, внесенные пользователем, а не код исходной игры, защищенный авторским правом.
В качестве нового примера легального распространения компания Sega выпустила виртуальный хаб на базе Steam для своей предыдущей коллекции игр Mega Drive/Genesis под названием Sega Mega Drive Classics Hub . Hub , помимо того , что позволяет игрокам играть в эмулированные версии этих старых игр, использует поддержку Steam для пользовательского контента через Steam Workshop, официально разрешая распространение хаков ПЗУ любой из предлагаемых игр. [ 20 ]
Использование
[ редактировать ]Исправленные ПЗУ часто воспроизводятся на эмуляторах, однако можно воспроизводить исправленные ПЗУ на оригинальном оборудовании. [ 21 ] Целевым картриджем может быть оригинальный картридж, из которого было извлечено исходное непропатченное ПЗУ (что обычно предполагает замену исходного чипа ПЗУ на новое), или другой совместимый картридж того же типа, например флэш-картриджи. Это особенно популярно для фанатских переводов , доморощенных игр , прототипов, игр, для которых никогда не производились ПЗУ-картриджи, или для игр, требующих точного тайминга или других элементов оригинального оборудования, недоступных в эмуляторах.
Системы и игры
[ редактировать ]Большая часть взлома ПЗУ выполняется в играх для NES и SNES (включая Sega Mega Drive/Genesis в некоторой степени игры ), поскольку такие игры маленькие и простые по сравнению с играми более продвинутых консолей, таких как Nintendo 64 или Nintendo DS . Игры для Game Boy , Game Boy Color и Game Boy Advance также популярны для взлома, как и игры для PlayStation в меньшей степени. Однако игры, предназначенные для более поздних консолей, не застрахованы от взлома, и по мере того, как компьютеры со временем становились быстрее и было написано больше программ и утилит, появилось больше хаков для PlayStation, Nintendo 64 и Nintendo DS.
Из них популярные игры — это популярные игры для взлома; выпущено множество хаков игр серии Sonic the Hedgehog , серии Mario (включая Mario Bros. , Super Mario Bros. , Super Mario Bros. 2 , Super Mario Bros. 3 , Super Mario Land , Super Mario Land 2:6 Golden Монеты , Super Mario 64 и Super Mario World ), серии Mario Kart (особенно 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: Rainbow Edition , в которой была увеличена скорость игры и появились новые специальные приемы. Успех этой игры побудил Capcom выпустить Street Fighter II: Hyper Fighting в качестве официального ответа.
Журнал Your Sinclair опубликовал ежемесячную колонку под названием «Программа Pitstop». В основном это было сосредоточено на чит- хаках для игр, но также включало принтер карт уровней. [ 22 ] для оригинальной Gauntlet , а также полноценный редактор уровней [ 23 ] для той же игры.
См. также
[ редактировать ]- Неожиданный геймплей
- Фангейм
- Фанатский перевод видеоигр
- Форкинг (разработка программного обеспечения)
- Игровой джинн
- GameShark
- Доморощенный (видеоигры)
- Моддинг видеоигр
- Отмена дубляжа
- Группа Твин Иглз
Ссылки
[ редактировать ]- ^ Перейти обратно: а б с «Словарь терминов для взлома ПЗУ» . ROMhacking.net .
- ^ «Большой список рандомизаторов видеоигр» . Гийом Фортен-Дебигаре . Проверено 10 июля 2020 г.
- ^ опубликовано, Кэтрин Льюис (2 августа 2024 г.). «20-летний ромхак-сайт, который был сокровищницей фанатских игр про покемонов и переводов JRPG, закрывается после того, как достиг «почти всего, что намеревался сделать» » . игровой радар . Проверено 2 августа 2024 г.
- ^ Маквертор, Майкл (2 августа 2024 г.). «Лучший сайт по взлому ROM закрывается спустя почти 20 лет » Полигон . Проверено 2 августа 2024 г.
- ^ «NES — Библия Rom Hacking — NES — Автор SeRiAlKLR — GameFAQs» . gamefaqs.gamespot.com . Проверено 5 августа 2024 г.
- ^ «Список хаков Pokemon Rom: GBC, GBC и NDS — PokemonCoders» . PokemonCoders . 13 апреля 2019 г. Проверено 08 марта 2023 г.
- ^ «Хаки для Pokemon FireRed ROM» . PokemonCoders.com . 11 марта 2019 г.
- ^ Мачкович, Сэм (25 декабря 2017 г.). «Рождественский подарок от хакеров Game Boy ROM: Super Mario Land 2 в цвете» . Арс Техника . Проверено 18 февраля 2023 г.
- ^ «vg64tools — Хостинг проектов в Google Code» . Проверено 9 сентября 2009 г.
- ^ «Супер Марио 64: Понг Смерти (мессиаен)» . Архивировано из оригинала 10 октября 2011 г. Проверено 9 сентября 2009 г.
- ^ «Список звуковых драйверов Mega Drive/Genesis» . GDRI (Научно-исследовательский институт разработчиков игр) .
- ^ «СМПС» . Сега Ретро .
- ^ «Исследование SMPS компании Valley Bell» . Доска объявлений Sonic и Sega Retro .
- ^ «Утилиты для взлома Sonic» . Соник Ретро .
- ^ «Мастерская Steam :: SEGA Mega Drive и Genesis Classics» . Steamcommunity.com .
- ^ «Хакерство Pokemon Rom» . InverseGamer.com . 20 сентября 2020 г. Проверено 31 марта 2021 г.
- ^ «Сегодня дебютирует новый формат исправлений UPS» . www.romhacking.net . 27 сентября 2023 г.
- ^ «Форумы PokéCommunity – Просмотр профиля: HackMew» . www.pokecommunity.com .
- ^ «Недавно выпущен новейший формат исправлений APS» . www.pokecommunity.com .
- ^ Инь-Пул, Уэсли (29 апреля 2016 г.). «Моддеры уже наслаждаются классикой Sega Mega Drive в Steam» . Еврогеймер . Проверено 3 мая 2016 г.
- ^ «Базовое воспроизведение NES» .
- ^ «Мир спектра — принудительное перенаправление» . www.worldofspectrum.org .
- ^ «Мир спектра — принудительное перенаправление» . www.worldofspectrum.org .
- Карлесс, Саймон, Игровые хаки
- Кастро, Рэдфорд, «Позвольте мне поиграть: истории игр и эмуляции»
- Джордан, Уилл (2007). От нарушения правил до взлома ПЗУ: теоретизирование компьютерной игры как товара (PDF) . Расположенная игра, материалы конференции DiGRA 2007.
- Ньюман, Джеймс, Играя в видеоигры