[转]NDS烧录卡存档格式研究

来源:小蚂蚁工作室官方博客
链接:http://www.chinablog.com/user/user5/anter/archives/2007/165292.shtml

存档文件分为三类:

A:标准存档格式,有0.5K(4K bit)、8K(64K bit)、64K(512K bit)、256K(2M bit)、512K(4M bit)五种类型,绝大多说烧录卡均是这种格式,但某些烧录卡可能仅支持其中的一种或两种大小。

B:标准存档格式的扩展:这类存档是在标准存档格式的基础上修改而成的,特征是比标准存档格式大一点,一般为1~8k。

C:烧录卡自己的存档格式:这种烧录卡很少,比如DS-X。它的存档理论上只是第一种或第二种格式的一种变化,但具体格式未知。


烧录卡存档格式分类,括号内是支持的存档大小:

A:SC(256K)、G6(256K、512K)、EZ4(256K)、AK(ALL)、SCDS(ALL)、R4(512K)、M3DSS(512K)、EWIN2(256K)、N-CARD(256K)……

B:M3(256K+1k、512K+1K)、DSLINK(512k+8k)

C:DS-X(2-8k)

不知道是哪种存档格式的烧录卡:未知


对于A类存储卡,存档转换很简单或根本不需要转换。在我编写的软件中,转换后格式直接选择“Other”,只要存档大小选择正确,基本就不 会有任何问题。对于B类存储卡,转换的关键是知道多出的那1~8k数据的结构和作用以及生成这段数据的方法。对于C类存档就比较麻烦了,关键是知道这种存 档格式和标准存档格式之间的相同点和不同点,以及这种存档的存储方式。


另外,在A和B类型的存档文件中,会有很多无用的数据,比如一个512k的存档,其中的有用数据有可能不足整体的十分之一。对于无用数据,一般采取的办法就是使用“00”或“FF”填充。C类存档好像没有这类问题,估计把无用数据压缩了。
本人对几种具体存档格式的研究:

1、SC、G6、EZ4:A类存档,标准的256k存档。

2、R4、M3DSS:A类存档,标准的512k存档。

3、AK、SCOne、R4、M3DSS:A类存档,标准存档格式,手动或自动(其实本质上还是手动)选择存档大小。

4、M3:B类存档,存档大小为257k和513k,其实就是A类的256k和512k存档加上1k的rom对应信息。到现在为止,513k的存档只有《口袋妖怪-珍珠/钻石》。

5、DSLINK:B类存档,存档大小为520k,其实就是512k的标准存档加上8k的额外数据,总容量:512K+8K。如果是512b(4K bit)或8k(64K bit)的话,放在最后8K的位置,前面512K为FF;64K(512K bit)、256K(2M bit)、512K(4M bit)的均放在前面的512K的位置,后8K为FF。

6、DS-X:C类存档,存档大小很小,一般为2-8k。格式为的GZ压缩格式,且在压缩後的档案前加上24个byte的0x00(未核实)。

引用通告地址: 点击获取引用地址
标签: DS
评论: 0 | 引用: 0 | 阅读: 960
 加入网摘
发表评论
昵 称(*): 密 码:
网 址: 邮 箱:
选 项:    
内 容(*):