2013-03-10 2 views
2

Я знаю, что это немного необычно, но я хочу попытаться выяснить, как я могу читать метаданные игры Nintendo DS? Когда на компьютере у них есть расширение .nds.Прочитать заголовок игры NDS?

Я пытаюсь работать с некоторыми домашними играми, которые у меня есть, и я хочу создать библиотеку. C# - это тот язык, который я бы предпочел использовать.

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

Я знаю, что это можно сделать, потому что есть некоторые программы, написанные на C#, которые это сделали. Итак, кто-нибудь знает, как? Я очень благодарен за любую помощь.

ответ

3

Все метаданные (включая заголовок/изображение) хранятся в заголовке ПЗУ, который является первым 512 байтами файла .nds. Вам нужно будет прочитать файл .nds в виде двоичного файла и изучить значения, сохраненные при определенных смещениях.

Например, 4 байта, начинающиеся со смещения 0x68h, содержат 32-битное значение, которое указывает смещение, в котором хранятся данные заголовка/значка игры. Английский заголовок хранится в 256 байтах (кодируется в 16-разрядном Unicode), найденном в 0x340h, из этого 0x68 смещения.

Аналогично, значок битовой карты (32x32 пикселей) хранится в 512 байт на 0x20h от 0x68h смещения, и палитра растрового изображения сохраняется в 32 байта на 0x220h от 0x86 смещения. Значок & его палитры закодированы в стандартной цветовой гамме/палитре GBA (см. Раздел Формат цвета по адресу http://www.cs.rit.edu/~tjh8300/CowBite/CowBiteSpec.htm#Graphics%20Hardware%20Overview).

Для получения дополнительной информации о формате заголовка .nds см. http://nocash.emubase.de/gbatek.htm#dscartridgeheader.

Если у вас есть сомнения, вы можете обратиться к ndstool, что является удобной утилитой для просмотра данных заголовков nds и извлечения файлов из файловой системы DS. Это с открытым исходным кодом и входит в состав инструментальной линейки devkitPro, доступный по адресу http://sourceforge.net/projects/devkitpro/.

+0

Мне еще предстоит применить это на практике, но, просто прочитав его, я вижу, что вы приложили немного усилий к этому. Если бы я мог увеличить это вдвойне, я бы это сделал. :) Благодаря :) –

Смежные вопросы