我知道这有点与众不同,但我想尝试一下如何阅读任天堂DS游戏的元数据?在计算机上,它们具有.nds
扩展名。
我正在尝试使用我自己的一些自制游戏,我想创建一个库。 C#是我更喜欢使用的语言。
我试过在互联网上研究它,我发现最接近的选项是读取文件头。然而,考虑到游戏文件应该有一个标题和一个图像,我最接近它只是获得标题的一部分。
我知道这可以做到,因为有一些用c#编写的程序已经完成了。那么,有谁知道怎么样?我非常感谢任何帮助。
答案 0 :(得分:5)
所有元数据(包括标题/图像)都存储在ROM头中,这是.nds
文件的前512个字节。您必须将.nds
文件作为二进制文件读取,并检查存储在某些偏移量中的值。
例如,从偏移0x68h
开始的4个字节包含一个32位值,用于指定存储游戏标题/图标数据的偏移量。英文标题存储在0x340h
偏移0x68
处的256字节(以16位Unicode编码)中。
类似地,图标位图(32x32像素)存储在0x20h
偏移的0x68h
的512字节中,位图的调色板存储在0x220h
的32字节中。 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/中。