stringtranslate.com

Взлом ПЗУ

Взлом ROM (сокращение от Read-only memory hacking ) — это процесс модификации образа ROM или файла ROM для изменения содержащегося в них содержимого, обычно видеоигры, чтобы изменить графику, диалоги, уровни, игровой процесс и/или другие элементы игры. Обычно это делают технически подкованные фанаты видеоигр, чтобы улучшить старую важную игру, в качестве творческого выхода или для создания новых, неофициальных игр с использованием движка старой игры. Взлом ROM либо перепроектирует игру для совершенно нового, веселого игрового процесса, сохраняя большинство, если не все, элементы прежними, а также разблокирует и/или повторно реализует функции, которые существовали в коде игры, но не используются в игре.

Взлом ПЗУ обычно осуществляется с помощью шестнадцатеричного редактора (программы для редактирования нетекстовых данных) и различных специализированных инструментов, таких как редакторы плиток и игровые инструменты, которые обычно используются для редактирования уровней, предметов и т. п., хотя иногда используются более продвинутые инструменты, такие как ассемблеры и отладчики . После того, как они готовы, они обычно распространяются в Интернете , чтобы другие могли играть на эмуляторе или игровой консоли. [1]

Перевод фанатов (известный как «взлом перевода» в сообществе хакеров ROM) — это тип взлома ROM; существуют также антицензурные взломы, которые позволяют восстановить игру в ее первоначальном состоянии, что часто можно увидеть в старых играх, которые были импортированы, поскольку политика издателей в отношении контента для видеоигр (в частности, Nintendo ) была намного строже в Соединенных Штатах, чем в Японии или Европе; а также рандомизаторы для определенных игр, которые перемешивают размещение сущностей. [2] Хотя большая часть метода применима к обоим типам взлома, в этой статье основное внимание уделяется «творческому взлому», такому как редактирование уровней игры.

Сообщества

Большинство хакерских групп предлагают веб-пространство для размещения хаков и скриншотов (иногда только размещение хаков членов группы и размещение практически любого хака), доску объявлений и часто имеют канал IRC . Существует также множество руководств, созданных несколькими хакерскими группами, которые направлены на то, чтобы помочь другим впервые освоить ROM-взлом, одним из которых была легендарная «Rom Hacking Bible» для NES, написанная в середине-конце 1990-х годов. [3]

Одним из самых популярных сайтов, посвященных взлому ROM-файлов игр, былROMhacking.net, который впервые появился в сети в конце 2005 года. Он размещал репозиторий хаков, переводов, утилит, документов и патчей для многих известных и малоизвестных видеоигр от третьего поколения до седьмого поколения . Ему предшествовал его непосредственный предшественник, ROMhacking.com, похожий сайт, ориентированный на ROM-взлом, который был запущен в 2000 году и был отключен в конце 2004 года. [4] 1 августа 2024 года сотрудники сайта объявили, что ROMhacking.net перейдет в режим новостного сайта только для чтения после почти 20 лет хостинга по различным причинам, не зависящим от сайта, а его бывшая база данных и файлы будут архивироваться в Интернет-архиве . Новые заявки на сайте также были навсегда закрыты в тот же день объявления, и все загрузки будут оставаться доступными на сайте до дальнейшего уведомления. [5] [6] [7] [8]

Методы

Данные ПЗУ могут быть очень разнообразными, поскольку их создавали разные программисты или группы программистов.

Редактирование шестнадцатеричного кода

Hex - редактор — один из самых фундаментальных инструментов в арсенале любого хакера ROM. Hex-редакторы обычно используются для редактирования текста и других данных, структура которых известна (например, свойства элементов), а также для взлома ассемблера.

Редактирование текста — одна из самых основных форм взлома. Многие игры не хранят текст в формате ASCII , и поэтому были разработаны некоторые специализированные шестнадцатеричные редакторы, которые могут сообщать, какие значения байтов соответствуют какой букве(ам) алфавита, чтобы облегчить редактирование текста; файл, который определяет эти отношения байт=буква, называется файлом «таблицы». Другие игры используют простые методы сжатия текста (например, кодирование пар байтов , также называемое кодированием двойной плитки или DTE, в котором определенные комбинации двух или более букв кодируются как один байт), которые соответствующим образом оборудованный шестнадцатеричный редактор может облегчить редактирование.

Hex-редактор — это инструмент выбора для редактирования таких вещей, как свойства персонажа/предмета, если структура и расположение этих данных известны, и нет специального редактора для игры, который может редактировать эту информацию. Некоторые бесстрашные хакеры также выполняют редактирование уровней с помощью hex-редактора, но это чрезвычайно сложно (за исключением игр, формат хранения уровней которых очень похож на то, как он представлен в hex-редакторе).

Редактирование графики

Другим базовым навыком взлома является графический хакерский навык, который изменяет внешний вид игрового окружения, персонажей, шрифтов или других подобных вещей. Формат графических данных различается от консоли к консоли, но большинство ранних (NES, Super NES, Game Boy и т. д.) хранят графику в тайлах , которые представляют собой блоки данных размером 8x8 пикселей , которые располагаются на экране для получения желаемого результата. Редактирование этих тайлов также возможно с помощью шестнадцатеричного редактора, но обычно выполняется с помощью редактора тайлов (например, Tile Layer или Tile Molester), который может графически отображать данные ПЗУ, а также находить и редактировать тайлы.

Графические хаки могут варьироваться от простых правок (например, придание Марио афро или Луиджи клюшки для гольфа ) до «портирования» персонажей из одной игры в другую (например, создание пикселизированных «ретро-стилизованных» спрайтов покемонов более позднего поколения для использования в играх Pokémon IV поколения [9] ) и полномасштабных тематических изменений (обычно с сопутствующими изменениями палитры; см. ниже).

Более сложный графический взлом подразумевает изменение не только плиток и цветов, но и того, как они расположены или как генерируются группы плиток, что дает большую гибкость и контроль над конечным видом. Это достигается с помощью шестнадцатеричного редактирования или специализированного инструмента (либо для конкретной игры, либо для конкретной системы).

Примерами графических хаков являются неполный Pokémon Torzach , хак Pokémon FireRed , который пытается добавить в игру совершенно новое поколение покемонов и плиток, [10] и Super Mario Land 2 DX: 6 Golden Coins , улучшенная версия оригинальной игры , в которую, среди прочего, добавлена ​​поддержка полного цвета (оригинальная игра поддерживала только оттенки серого) и исправлены проблемы с мерцанием экрана из оригинальной игры. [11]

Редактирование палитры

Другой распространенной формой взлома является взлом палитры , когда значения цветов изменяются для изменения цветов, которые игрок видит в игре (это часто идет рука об руку с взломом графики); значения палитры обычно хранятся в Hex . Это довольно просто для игр NES , графика которых использует предопределенный набор цветов, среди которых игра выбирает (используя цветовую палитру на основе YIQ ); взлом палитры в этом случае влечет за собой изменение того, какие из этих цветов выбраны. Дело обстоит немного сложнее с играми Super NES , а также с играми для других систем (включая игры Sega Mega Drive/Genesis ), которые хранят абсолютные значения цветов RGB . Редакторы палитры обычно просты и часто входят в состав редакторов уровней или графических редакторов, специфичных для игры.

Редактирование уровня

Одна из самых популярных форм взлома ROM, редактирование уровней подразумевает изменение или переделку уровней или карт игры. Это почти всегда делается с помощью редактора, специально разработанного для конкретной игры (называемого редактором уровней ). Редактирование уровней может быть сделано, чтобы сделать игру более сложной, изменить течение сюжета игры или просто придать что-то новое старой игре. В сочетании с обширным взломом графики игра может приобрести совершенно другой вид и ощущение.

Редактирование данных

Основным компонентом многих взломов (особенно ролевых видеоигр ) является редактирование данных, таких как свойства персонажа, предмета и врага. Обычно это делается либо «вручную» (с помощью шестнадцатеричного редактора), если известны местоположение и структура данных, либо с помощью игрового редактора, который имеет такую ​​функциональность. С помощью этого хакер может изменить работу оружия, силу врагов или их действия и т. д. Это можно сделать, чтобы сделать игру проще или сложнее или создать новые сценарии для игрока.

Взлом сборки

Самый мощный и, возможно, самый сложный метод взлома — это редактирование реального кода игры, процесс, называемый взломом ASM («ASM» означает « ассемблирование », ссылаясь на низкоуровневый язык программирования, который выполняется центральным процессором). [1] Для взлома ASM нет установленного шаблона, поскольку код сильно различается от игры к игре, но большинство опытных хакеров ASM либо используют эмулятор, оснащенный встроенным отладчиком или трассировщиком, либо пропускают ПЗУ через дизассемблер , а затем анализируют код и изменяют его с помощью шестнадцатеричного редактора или ассемблера в соответствии со своими потребностями. Хотя это довольно сложно по сравнению с относительно простыми методами, перечисленными выше, с помощью взлома ASM возможно все в пределах аппаратного и программного обеспечения игровой платформы, начиная от изменения вражеского ИИ до изменения способа генерации графики. Если разработчики использовали типизированный язык , хакер может скомпилировать свой код для игры на том же языке, если у него есть доступ к надлежащему компилятору. Одним из таких примеров может быть использование языка C для взлома игр Nintendo 64 , поскольку MIPS - GCC может компилировать код для Nintendo 64. [12] [13]

Взлом музыки

Музыкальные взломы относительно редки в большинстве взломов из-за большого разнообразия способов, которыми игры хранят музыкальные данные (отсюда сложность в поиске и изменении этих данных), а также сложностей в написании новой музыки (или портировании музыки из другой игры). Поскольку взлом музыки очень редок, многие взломы не содержат добавленной портированной/сочиненной музыки. Существуют исключения, такие как самые последние взломы Super Mario World , где новая музыка может иметь новые инструменты, отсутствующие в оригинальной игре. Другие игры, в которых взлом музыки является частью их исследовательских и хакерских сообществ, — это игры NES Mega Man , Final Fantasy VI и игры Mega Drive (Genesis) Sonic the Hedgehog .

Поскольку многие игры Game Boy Advance используют движок M4A Engine (неофициально называемый «Sappy Driver» и официально известный как «MusicPlayer2000» или MP2k) для музыки, программа SapTapper может быть использована для взлома музыкальных данных Game Boy Advance. Для работы с движком были созданы различные другие утилиты, такие как Sappy 2006. Другой пример использования того же движка между играми — на Nintendo 64, где большинство игр используют один и тот же формат; хотя и с разными звуковыми банками. Утилита, известная как N64 Midi Tool, была создана для редактирования последовательностей, которые используют большинство игр Nintendo 64, однако она не охватывает игры N64 первой партии, которые используют немного другой движок, такие как Super Mario 64 .

Несколько игр для Sega Mega Drive/Genesis [14] использовали звуковой движок, обычно известный как «SMPS», который предлагался как в версиях на базе 68k , так и Z80 . [15] Этот звуковой движок в основном использовался в большом количестве игр, разработанных в Японии для этой системы (включая игры собственной разработки), при этом некоторые игры предоставляли модифицированные версии звукового движка, адаптированные для конкретной игры. Он исследовался в течение десятилетий многими хакерами. [16] Сегодня доступно множество инструментов [17] для изменения музыки в играх, которые использовали движок SMPS (в частности, игры Sonic the Hedgehog ); многие из них в конечном итоге попали в Steam Workshop . [18]

Расширение ПЗУ

Вообще говоря, хакер ROM обычно не может добавлять контент в игру, а может просто изменить существующий контент. Это ограничение можно преодолеть с помощью расширения ROM , при котором общий размер образа ROM увеличивается, освобождая место для большего количества контента и, в свою очередь, для более крупной игры. Сложность этого зависит от системы, для которой была сделана игра. Например, расширение ROM NES может быть сложным или даже невозможным из-за используемого игрой маппера . Например, если маппер допускает 16 банков ROM и все они используются, дальнейшее расширение ROM невозможно без преобразования игры в другой маппер, что может быть как простым, так и чрезвычайно сложным. С другой стороны, расширение игры SNES (и даже игры Mega Drive/Genesis, если на то пошло) (относительно) просто. Чтобы использовать добавленное пространство, части кода игры должны быть изменены или переписаны (см. взлом Assembly выше), чтобы игра знала, где искать. Другой тип расширения ROM , который довольно прост, — это ROM Game Boy Advance . Сами ПЗУ, как правило, имеют небольшой объем, но доступный объем памяти иногда превышает его в 17 раз.

Распределение

После завершения взлома (или неполной версии, которая считается подходящей для промежуточного выпуска) она выкладывается в Интернет для игры другими. Общепринятым способом сделать это является создание неофициального патча (в формате IPS или других), который может быть применен к немодифицированному ROM. [1] Это, и обычно некоторая форма документации, помещается в архивный файл и загружается куда-либо. IPS — это формат для записи различий между двумя двоичными файлами (в данном случае между немодифицированным и взломанным ROM) и подходит для взлома ROM. [19] IPS до сих пор используется для небольших патчей, однако, поскольку ROM стали больше, этот формат стал бесполезным, что привело к созданию довольно большого количества форматов файлов, таких как NINJA и PPF (также известный как « PlayStation Patch Format»). PPF до сих пор используется, особенно для исправления больших файлов, таких как образы ISO CD-ROM , а также игр Nintendo 64 . Новый формат исправлений, UPS, также был разработан сообществом хакеров ПЗУ, призванным стать преемником IPS и PPF. [20] Более новый формат исправлений, система исправлений APS, также был разработан преданным хакером ПЗУ Game Boy Advance. [21] Система APS более экономична, обратима и быстрее, чем ее предшественник. [22]

Основная цель распространения взлома в форме патча — избежать юридических аспектов распространения целых образов ROM; патч записывает только то, что изменилось в ROM, поэтому его распространение обычно не распространяет части оригинальной игры. В этом случае патчи обычно содержали изменения кода, внесенные пользователем в игру, а не защищенный авторским правом код оригинальной игры, что устранило бы любые проблемы с авторским правом, которые могут возникнуть при распространении неофициальных патчей для игр. [ необходима цитата ] Патч также обычно значительно меньше полного образа ROM (ROM NES может занимать от 8 КБ до 2 МБ; ROM Super NES может занимать от 256 КБ до 6 МБ; а ROM Mega Drive/Genesis могут занимать от 512 КБ до 4 МБ).

В качестве нового примера легального распространения Sega выпустила виртуальный хаб на базе Steam для своей предыдущей коллекции игр Mega Drive/Genesis под названием Sega Mega Drive Classics Hub . Hub , помимо того, что позволяет игрокам играть в эмулированные версии этих старых игр, использует поддержку Steam для пользовательского контента через Steam Workshop, официально разрешая распространение ROM-хаков любой из предлагаемых игр. [23]

Использование

Пропатченные ПЗУ часто воспроизводятся на эмуляторах, однако, возможно воспроизводить пропатченные ПЗУ на оригинальном оборудовании. [24] Целевой картридж может быть оригинальным картриджем, из которого был извлечен исходный непропатченный ПЗУ (что обычно включает замену оригинального чипа ПЗУ на новый), или другим совместимым картриджем того же типа, например флэш-картриджами. Это особенно популярно для фанатских переводов , домашних игр , прототипов, игр, для которых картриджи ПЗУ никогда не производились, или для игр, которые требуют точного времени или других элементов оригинального оборудования, которые недоступны в эмуляторах.

Системы и игры

Большинство взломов ROM выполняется в играх 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 Coins , 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 опубликовал ежемесячную колонку под названием «Program Pitstop». Она была сосредоточена в основном на чит- хаках для игр, но также включала как принтер карт уровней [25] для оригинальной Gauntlet , так и полноценный редактор уровней [26] для той же игры.

Смотрите также

Ссылки

  1. ^ abc "Словарь терминов по взлому ПЗУ". ROMhacking.net .
  2. ^ "БОЛЬШОЙ список рандомизаторов видеоигр". Гийом Фортен-Дебигаре . Получено 10 июля 2020 г.
  3. ^ "NES - Библия взлома Rom - NES - Автор SeRiAlKLR - GameFAQs". gamefaqs.gamespot.com . Получено 2024-08-05 .
  4. ^ "Наследие - ROMhacking.com/ROMhacking.org". ROMhacking.net . Получено 27 августа 2024 г. .
  5. Джошуа Уоленс (2 августа 2024 г.). «Основатель уничтожил Nexus Mods ромхакинга спустя 20 лет, потому что «самая бесчестная и полная ненависти группа перешла границы», но другие рассказывают другую историю». PC Gamer . Получено 2 августа 2024 г.
  6. Кэтрин Льюис (2 августа 2024 г.). «20-летний сайт ромхаков, который был сокровищницей фан-игр Pokemon и переводов JRPG, закрывается, добившись «почти всего, что он намеревался сделать»». gamesradar . Получено 2 августа 2024 г.
  7. ^ МакВертор, Майкл (2 августа 2024 г.). «Лучший сайт по взлому ROM закрывается спустя почти 20 лет». Polygon . Получено 2 августа 2024 г.
  8. ^ "Сайт: ROMhacking.net переходит в режим "Только новости", база данных и файловый архив перенесены в интернет-архив". ROMhacking.net . Получено 27 августа 2024 г.
  9. ^ "Список хаков Pokemon Rom: GBC, GBC и NDS - PokemonCoders". PokemonCoders . 2019-04-13 . Получено 2023-03-08 .
  10. ^ "Взломы Pokemon FireRed ROM". PokemonCoders.com . 11 марта 2019 г.
  11. ^ Мачковеч, Сэм (25 декабря 2017 г.). «Рождественский подарок от хакеров Game Boy ROM: Super Mario Land 2 в цвете». Ars Technica . Получено 18 февраля 2023 г.
  12. ^ "vg64tools - Размещение проектов на Google Code" . Получено 2009-09-09 .
  13. ^ "Super Mario 64: Pong Of Death (messiaen)". Архивировано из оригинала 2011-10-10 . Получено 2009-09-09 .
  14. ^ "Список звуковых драйверов Mega Drive/Genesis". GDRI (Исследовательский институт разработчиков игр) .
  15. ^ "SMPS". Sega Retro . 30 марта 2024 г.
  16. ^ "Исследование SMPS компании Valley Bell". Доска объявлений Sonic и Sega Retro .
  17. ^ "Утилиты взлома Sonic". Sonic Retro .
  18. ^ "Steam Workshop :: SEGA Mega Drive и Genesis Classics". steamcommunity.com .
  19. ^ "Pokemon Rom Hacks". InverseGamer.com . 20 сентября 2020 г. Получено 31 марта 2021 г.
  20. ^ "Сегодня дебютирует новый формат исправлений, UPS". www.romhacking.net . 27 сентября 2023 г.
  21. ^ "Форумы PokéCommunity - Просмотр профиля: HackMew". www.pokecommunity.com . 27 июня 2006 г.
  22. ^ "Новейший формат исправлений, APS, недавно выпущен". www.pokecommunity.com . 20 мая 2007 г.
  23. ^ Yin-Poole, Wesley (29 апреля 2016 г.). «Моддеры уже развлекаются с классикой Sega Mega Drive в Steam». Eurogamer . Получено 3 мая 2016 г.
  24. ^ «Базовое воспроизведение NES».
  25. ^ "World of Spectrum - Принудительное перенаправление". www.worldofspectrum.org .
  26. ^ "World of Spectrum - Принудительное перенаправление". www.worldofspectrum.org .