我知道这有点不寻常,但我想知道如何读取任天堂DS游戏的元数据?在计算机上时,它们的扩展名为.nds。
我正在尝试使用一些自制的游戏,我想做一个库。C#是我更喜欢使用的语言。
我试着在互联网上搜索它,我找到的最接近的选择是阅读文件头。然而,考虑到游戏文件应该有一个标题和一个图像,我最接近它的是获得标题的一部分。
我知道这是可以做到的,因为有一些用c#编写的程序已经做到了这一点。有谁知道是怎么回事吗?我将非常感谢任何人的帮助。
发布于 2013-03-31 12:29:33
所有元数据(包括标题/图像)都存储在ROM头中,即.nds文件的前512个字节。您必须以二进制文件的形式读入.nds文件,并检查存储在某些偏移量处的值。
例如,从偏移量0x68h开始的4个字节包含32位的值,该值指定存储游戏的标题/图标数据的偏移量。英文标题存储在该0x68偏移量的0x340h处的256个字节(以16位Unicode编码)中。
类似地,图标位图(32x32像素)从0x68h偏移量存储在0x20h的512字节中,而位图的调色板从0x86偏移量存储在0x220h的32字节中。图标及其调色板是用标准的GBA配色方案/调色板编码的(请参阅http://www.cs.rit.edu/~tjh8300/CowBite/CowBiteSpec.htm#Graphics%20Hardware%20Overview的颜色格式部分)。
有关.nds标头格式的更多信息,请参阅http://nocash.emubase.de/gbatek.htm#dscartridgeheader。
如果有疑问,可以参考ndstool,它是一个方便的实用工具,用于查看nds头数据和从DS文件系统中提取文件。它是开源的,并包含在http://sourceforge.net/projects/devkitpro/上的devkitPro工具链中。
https://stackoverflow.com/questions/15318956
复制相似问题