【问题标题】:Read header of NDS game?读取 NDS 游戏的标题?
【发布时间】:2013-02-25 11:18:03
【问题描述】:

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

我正在尝试使用我拥有的一些自制游戏,并且我想制作一个库。 C# 是我更喜欢使用的语言。

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

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

【问题讨论】:

    标签: c# nintendo-ds


    【解决方案1】:

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

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

    同样,图标位图(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 文件系统中提取文件。它是开源的,并作为 devkitPro 工具链的一部分包含在 http://sourceforge.net/projects/devkitpro/ 中。

    【讨论】:

    • 我还没有将这些付诸实践,但仅从阅读中,我可以看到您在这方面付出了一些努力。如果我可以两次投票,我会的。 :) 谢谢 :)
    猜你喜欢
    • 1970-01-01
    • 2013-11-13
    • 2023-03-11
    • 2015-10-11
    • 2021-09-23
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 2020-01-21
    相关资源
    最近更新 更多