阅读NDS游戏的标题?

时间:2013-03-10 04:36:43

标签: c# nintendo-ds

我知道这有点与众不同,但我想尝试一下如何阅读任天堂DS游戏的元数据?在计算机上,它们具有.nds扩展名。

我正在尝试使用我自己的一些自制游戏,我想创建一个库。 C#是我更喜欢使用的语言。

我试过在互联网上研究它,我发现最接近的选项是读取文件头。然而,考虑到游戏文件应该有一个标题和一个图像,我最接近它只是获得标题的一部分。

我知道这可以做到,因为有一些用c#编写的程序已经完成了。那么,有谁知道怎么样?我非常感谢任何帮助。

1 个答案:

答案 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/中。