Розничные ROM-ы


Anti-piracy #

AP (Anti-Piracy) - это метод, используемый разработчиками для обеспечения законных покупок и предотвращения пиратства. Это можно обойти либо в загрузчике, либо в самом RОМ-е.

  • nds-bootstrap может загрузить файл .ips, чтобы обойти указанные ограничения. Этот файл .ips будет применен nds-bootstrap в оперативной памяти, так что файлы ROM-а останутся нетронутыми. Пакет файлов .ips включен в TWiLight Menu++
  • В Wood R4 эти патчи включены в само программное обеспечение, вам не нужно будет модифицировать ROM

Если для вашего ROM-a нет файла .ips или ваша программа не модифицирует этот ROM вы можете попробовать изменить его напрямую с помощью DS-Scene ROM Tool.

Cloneboot #

Cloneboot - это когда игра отправляет свои собственные загруженные двоичные файлы ARM7 и ARM9 на другую консоль. Он используется в DS Download Play для многопользовательской игры использую лишь одну игровую карту. Однако не все игры с однокарточным мультиплеером используют cloneboot.

Файлы сохранения #

Картриджи Nintendo DS имеют 4 известных типа сохранений:

  • EEPROM - Electrically Erasable Programmable Read-Only Memory(Электрически Стираемая Программируемая Память, Доступная Только для чтения)
  • FLASH
  • FRAM - Ferroelectric Random-Access Memory (Сегнетоэлектрическое запоминающее устройство с произвольным доступом)
  • NAND - NOT-AND

В зависимости от загрузчика можно использовать разные форматы, но nds-bootstrap использует необработанный формат .sav. Если у вас есть сохранение в другом формате, вот сайт, который вы можете использовать для его конвертации: http://www.shunyweb.info/convert.php.

Ассемблер #

Язык ассемблера - это любой низкоуровневый язык программирования с сильной связью между инструкциями языка и инструкциями процессора. В DS ассемблерный код поставляется в виде инструкций ARM или THUMB, причем инструкции THUMB являются подмножеством инструкций ARM. THUMB используется для сакращение нагрузки на пропускноую способности памяти, поскольку он использует 16-разрядные инструкции вместо обычных 32-разрядных инструкций, используемых ARM.

Более подробные инструкции по сборке, а также много другой технической информации для DS и DSi можно найти на сайте GBATEK.

Чтение карты DMA #

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

Вы можете найти игру, использующую DMA, в no$gba, включив журнал DMA на ARM9. При доступе DMA к карте в качестве третьего параметра используется AF000001.

  • Например: DMA2: 04100010 023C18C0 AF000001

Читы Action Replay #

Читы Action Replay - это коды, позволяющие вносить низкоуровневые программируемые изменения в область памяти вашей любимой игры. Эти изменения варьируются от простых корректировок стоимости до чрезвычайно сложных корректировок ASM, причем и те, и другие могут полностью изменить впечатления от игры.

Флэш-картриджи могут дать воспользоваться преимуществами чит-кодов, используя базы данных. Функциональность чита интегрирована в ядро флэш-картриджа соответственно. Следующие ядра могут использовать читы:

  • Wood R4 (usrcheat.dat)
  • YSMenu (usrcheat.dat)

Homebrew/цифровые решения также могут использовать преимущества чит-баз данных, доступное в настоящее время программное обеспечение может использовать следующее:

  • NitroHax (cheats.xml)
    • NitroHax с флеш-картриджа позволяет вам использовать читы на настоящих игровых картах. Используемый здесь движок загружает всю базу данных cheats.xml в ограниченную оперативную память Nintendo DS и пытается управлять всем оттуда. Это накладывает серьезное ограничение на количество читов, поскольку NitroHax не будет загружать файл cheats.xml размером более 2,4 МБ
  • NitroHax3DS (usrcheat.dat форк) (cheats.xml или usrcheat.dat)
    • NitroHax3DS - это версия NitroHax, которая запускается с SD-карты на DSi или 3DS. Оригинальная версия использует файл cheats.xml с тем же ограничением в 2,4 МБ, что и оригинальный NitroHax, но есть также форк, который загружает читы из базы данных usrcheat.dat без ограничения размера
  • TWiLight Menu++ (usrcheat.dat)
    • TWiLight Menu++ считывает usrcheat.dat и отправляет значения включенных читов в другой файл, который подхватывает nds-bootstrap
    • Чит-движок, используемый в nds-bootstrap, основан на движке, используемом в NitroHax. Однако из-за того, что файл с читами содержит только включенные читы для этой конкретной игры, есть ограничение только на количество читов, которые могут быть включены, но размер базы данных не ограничен

Для получения наиболее полной базы читов рекомендуется использовать DeadSkullzJr’s NDS Cheat Database.

Чит-коды обычно имеют типы от 0 до F, и здесь представлено их (незаконченное) описание:

  • Тип кода 0xE - это 32-битный тип кода, который позволяет выполнять несколько записей по многим последовательным адресам одновременно. По сути, он похож на базовый 32-битный тип кода записи в ОЗУ (0x0), за исключением того, что в нем нет адресов, перечисленных рядом со значениями, которые вы хотите записать. Вместо этого тип кода 0xE запрограммирован на автоматическое ответвление от начального адреса, а затем определение адресов для записи. Далее вам просто нужно указать значение для записи и задача будет выполнена
    • Известно, что в настоящее время чит-коды такого типа, как правило, не работают
  • DeadSkullzJr работает над более полным списком описаний чит-кодов, ссылка на него появится в этом разделе, как только он будет готов

Демонстрация и распространение программ: #

Демонстрационные (Демо) игры отличаются от своих розничных аналогов по разным параметрам. Очевидно, что рассматриваемая игра является демонстрацией того, какой будет розничная версия, по сути, это быстрый взгляд на то, что будет в будущем, когда выйдет полноценный розничный релиз. В случае с линейкой Nintendo DS эти игры часто имеют на обложке пометку “Не для перепродажи”, каждая демоверсия имеет свой идентификатор, отличный от розничных аналогов, а на задней стороне картриджа с игрой также присутствует наклейка “Не для перепродажи”. Обычно такие игры представляют собой демо-версии для стендов в магазинах и т. д.

В большинстве случаев ситуация с играми для дистрибуции обстоит совершенно иначе, однако очень редко демо-версии игр также могут быть обозначены, как будто они предназначены для широкого распространения. В большинстве случаев игры для распространения - это просто розничные версии игр, которые предназначены только для демонстрации или поставляются в рекламных упаковках. На этих изданиях, так же как и на демоверсиях, можно увидеть надпись “Не для перепродажи”. Иногда их используют на стендах, чтобы дать игрокам опробовать игру. Однако, зная, что в большинстве случаев они по сути такие же, как и их розничные аналоги, они, как правило, имеют дополнительный идентификатор в ID на этикетке.

Пример ID: DIS-NTR-NTRJ-JPN

DIS - Для распространения

Идентификаторы #

Если посмотреть на нижнюю часть этикетки картриджа, можно увидеть идентификатор игры, а также другую информацию. Для примера рассмотрим следующий ID:

  • NTR-NTRJ-XXX

XXX представляет собой следующее:

  • AUS - Австралия
  • CHN - Китай
  • DEN - Дания
  • EUR - Европа (Многоязычный)
  • EUU - Европа (Только на голландском или итальянском языке)
  • FRA - Франция
  • GER - Германия
  • HOL - Нидерланды
  • ITA - Италия
  • JPN - Япония
  • KOR - Корея
  • NOE - Европа (Только немецкий язык)
  • NOR - Норвегия
  • RUS - Россия
  • SPA - Испания
  • UKV - Великобритания
  • USA - Соединенные Штаты

Последняя буква ID игры обозначает её язык. Рассмотрим следующий пример:

  • NTR-NTRX-JPN

X представляет собой следующее:

  • A - Мир (Можно забыть, так как использовалась только лишь единожды)
  • C - Китайский (упрощенный)
  • D - Немецкий
  • E - Американский Английский
  • F - Французский
  • G - Греческий
  • H- Голландский
  • I - Итальянский
  • J - Японский
  • K - Корейский
  • М - Шведский
  • N - Норвежский
  • O - Английский (Игры адаптированные для DSi)
  • P - Европейский многоязычный
  • Q - Датский
  • R - Русский
  • S - Испанский
  • T - Английский (Игры адаптированные для DSi)
  • U - Австралийский Английский
  • V - Британский английский
  • W - Другие языки (Варьируется)
  • X - Другие языки (Варьируется)
  • Y - Другие языки (Варьируется)
  • Z - Другие языки (Варьируется)

Что касается системных идентификаторов:

  • NTR - Nitro - Nintendo DS
  • TWL - Twilight - Nintendo DSi

Адаптированные для DSi: #

Игры с функцией “DSi Enhanced” - это игры, которые используют преимущества некоторых аспектов аппаратного обеспечения DSi, оставаясь при этом совместимыми с DS Phat/Lite. Эти игры помечены как TWL, но на обложке написано “Nintendo DS”, а не “Nintendo DSi”.