阅读NDS游戏的标头?

Con*_*ers 3 c# nintendo-ds

我知道这有点与众不同,但是我想尝试找出如何读取Nintendo DS游戏的元数据?在计算机上时,它们具有.nds扩展名。

我正在尝试使用一些自制游戏,并且想建立一个图书馆。C#是我更喜欢使用的语言。

我尝试在互联网上进行研究,发现最接近的选项是读取文件头。但是,考虑到游戏文件应该具有标题和图像,因此我所接近的只是将其作为标题的一部分。

我知道可以做到这一点,因为有一些用c#编写的程序已经做到了。那么,有人知道吗?非常感谢您的帮助。

RCr*_*iro 5

所有元数据(包括标题/图像)都存储在ROM标头中,该标头是.nds文件的前512个字节。您必须将.nds文件作为二进制文件读取,并检查以某些偏移量存储的值。

例如,从偏移量开始的4个字节0x68h包含一个32位值,该值指定存储游戏标题/图标数据的偏移量。英文标题存储在0x340h从该0x68偏移量起的256个字节(以16位Unicode编码)中。

同样,图标位图(32x32像素)存储在0x20h距离0x68h偏移量512字节的位置,位图的调色板存储在0x220h距离0x86偏移量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文件系统提取文件。它是开源的,并包含在devkitPro工具链中,可从http://sourceforge.net/projects/devkitpro/获得