读取NDS游戏的标题头?

3
我知道这可能有点不同寻常,但我想尝试找出如何读取任天堂DS游戏的元数据?当它们在计算机上时,它们具有“.nds”扩展名。
我正在尝试处理一些自制游戏,并且想要创建一个库。 C#是我想使用的语言。
我已经在互联网上进行了研究,最接近的选项是读取文件头。然而,考虑到游戏文件应该具有标题和图像,我仅仅得到了部分标题。
我知道这是可行的,因为有一些使用C#编写的程序已经做到了。那么,有人知道如何做吗?我会非常感激任何帮助。
1个回答

5
所有元数据(包括标题/图像)都存储在ROM头部,即.nds文件的前512个字节。您需要将.nds文件读入为二进制文件,并检查存储在特定偏移处的值。
例如,从偏移0x68h开始的4个字节包含一个32位值,该值指定存储游戏标题/图标数据的偏移量。英文标题存储在从该0x68偏移量开始的256个字节(以16位Unicode编码)中的0x340h
类似地,图标位图(32x32像素)存储在从0x68h偏移0x20h处的512个字节中,位图的调色板存储在从0x86偏移0x220h处的32个字节中。图标及其调色板使用标准的GBA颜色方案/调色板进行编码(请参见http://www.cs.rit.edu/~tjh8300/CowBite/CowBiteSpec.htm#Graphics%20Hardware%20Overview中的Color Format部分)。
有关.nds头格式的更多信息,请参见http://nocash.emubase.de/gbatek.htm#dscartridgeheader
如有疑问,您可以参考ndstool,它是一个方便的实用程序,可用于查看nds头数据并从DS文件系统中提取文件。它是开源的,并作为devkitPro工具链的一部分提供,可在http://sourceforge.net/projects/devkitpro/上获得。

我还没有将这些内容付诸实践,但仅从阅读中,我可以看到您已经花了一些精力。如果我能投两次赞,我一定会的。:)谢谢 :) - Connor Deckers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接