» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


 17 12
发新话题
打印

友情转载另一个DSLink存档转换软件链接

另一个存档转换软件,我没试过呢,大家试试看
http://bbs.emu-zone.org/newbbs/v ... %3D1&sid=Vah2Kj


重要说明:
由于DSLink开机运行后总是要把上次运行的游戏在卡带中的存档写入tf卡中。所以如果上一次玩了“甲“游戏后关机,然后导入了一个新的进度覆盖,再开机时新进度会被卡带中的旧进度替换回去!!
因此要替换“甲”游戏进度时,一定要先玩一下“乙“游戏,然后关机。这时覆盖甲的进度就没有问题了。

24楼有“你上传存档我来转“的说明

0.5版支持导入导出双向转换、生成空白存档功能
导入导出功能均采用一般转换和强制转换两种方式
推荐使用一般转换,一般转换不行再采用强制转换。

导入时最好在存档文件名开头加上编号,这样可以大大提高一般转换的成功率
导出强制转换来的sav,或者本软件0.01版导入的sav,进行一般转换必须在文件名开头提供编号

编号格式:
0123 - AAAA.sav 或者
0123_-_AAAA.sav 或者
0123 AAAA.sav

更多说明请看readme.txt

使用中遇到问题、错误的请回帖说明,最好附上你的原始SAV文件
log.txt中的信息

覆盖存档前请自行做好存档备份,避免损失

运行需要.NET framework 2.0 runtime(windows vista不用runtime)
http://www.microsoft.com/downloa ... &displaylang=en

转换软件0.5版下载地址: (大小:21KB,经金山毒霸检查无毒)
http://rapidshare.de/files/31391828/dslinksave.zip.html

[ 本帖最后由 长牛角 于 2006-9-2 10:41 编辑 ]


TOP

引用:
原帖由 GSLylien 于 2006-8-29 17:59 发表
果然就是填充阿,FF3 MS 是64Kb的存档。
无所谓了,只要加长到DSLink需要的大小就行。

我记得SCSD其实不需要加长,只要不小于需要的大小就行了,比如恶魔城8KB得save文件照样用的。
ff3存档类型在nb的帖中是未知。但是我看它和2mbit的黑客计划存档方式相同,都是0x0开始的。所以推测为2mbit方式

sc确实可以把sav减肥。dslink可不可以我还不知道,没试过

[ 本帖最后由 长牛角 于 2006-8-29 18:11 编辑 ]



TOP

0x0就是0
ff3确实减肥后可以到64kB,我的推测是ff3用的save空间是2mbit的,但是它只使用了其中的64kbit
但是dslink的存档类型不是按照它使用了多少来定的,而是按照ds卡带中的save区域有多大决定的
也可能我的推测有误,毕竟我现在只看过dslink上的十几个游戏的save


TOP

引用:
原帖由 GSLylien 于 2006-8-29 18:43 发表

是不是SC得save文件DSLink不能直接读取? 但是简单填充加长后就可以?
对啊

ff3是从0x0开始的。火狐我还没测。我在研究是否可以填充0xff以外的东西,以及是否可以在0x0和0x80000都写入内容。希望可以找到简单的批量处理的方法~

[ 本帖最后由 长牛角 于 2006-8-29 19:08 编辑 ]

TOP

转换软件编写完成。测试了手头的十几个save没什么问题。今晚就可放出。
有一点必须说一下,我写的转换软件需要.net 2.0运行库

TOP

手动转换过程
需要一款十六进制转换软件,如ultra edit
1.去ndsbbs的下载区置顶帖查看rom的sav类型(4k,64k,2mbit)
2.1如果是2mbit类型,起始地址为0(十六进制用0x开头表示,0为0x0,255为0xff)
2.2如果是4k,或者64k,起始地址为0x80000
2.3如果存档类型为未知,先用dslink存个档,用ultra edit打开存档,看看从哪个地址开始数据不连续为0xff,该地址为起始地址
3.找到起始地址后,把原始的sav数据拷贝到起始地址,注意如果起始地址为0x80000,只拷贝原始sav中的前8kB
4.dslink存档文件为520kB,地址为0x0~0x81fff。现在从0x0开始或者从0x80000开始的一段数据是从原始sav当中拷贝过来的,其余地址需要全部填充上任意数据,我用的是0x11

顶楼转换软件实现方法略有不同:
因为除了从原始sav中拷贝过来的数据外,其他地址可以任意填充数据,所以我没有对sav类型进行判断,而是把数据在0x0,和0x80000开始部分各拷贝了1份(0x80000开始只拷贝了前8KB内容)

TOP

解释一下dslink的存档为什么是520kB(我用大写B表示Byte字节,小写b表示bit,1Byte=8bit)
ds正版卡的存档为3种类型:2mb,64kb,4kb
转换为电脑用的Byte为256kB,8KB,512字节
看见没?其实SC的存档方式就是一视同仁按照最大的256KB处理!所以sc的存档可以减肥使用(但实际效果不明显,因为sc只支持fat16,所以即使sav是512字节的,也要占用16Byte的空间)
回来说Dslink的存档方式为什么是520kB
520KB=512KB+8KB
512KB=4Mbit,也就是0x0~0x7ffff的地址空间.
DSLink一个特色功能就是写着支持4M flash存档,这个4M是4Mbit,也就是说dslink支持ds正版卡目前最大存档的2倍!而520KB中的前512KB就是存这个的!
后面的8KB,这个是ds存档类型中间的64kb
总结起来说dslink目前的520KB存档,最开始256KB用来放ds 2mbit存档,然后256KB空白,最后剩下的8KB放一个ds 64kbit或者4kbit的存档。
所以存档的起始位置有0,和0x80000两种(0x80000开始是最后的8KB)

解答一下如何知道的问题:用dslink每种存档类型玩几个游戏,用ultraedit看看sav文件规律很明显的

TOP

引用:
原帖由 dejisae 于 2006-8-30 20:12 发表
楼主解释的很详细,我估计按照楼主说的方式,软件很容易编写。
不知道你用什么语言写的。至少VC++下好象只附带一个dll文件就可以了。嘿嘿!
现在是用c#写的,所以需要.net runtime

0.5版双向转换软件已经放出,测试用

TOP

开通新服务:
觉得转个存档还得下载运行库太麻烦?
现在只需要把你的存档(可以多个)找个地方上传,然后在本帖回帖并给出链接
我会尽快把转好后的存档传回给你~
只有一个小小的要求:最好存档文件含有编号,至少也要告诉我是哪个游戏的存档(以及美版,日版还是汉化版?)

[ 本帖最后由 长牛角 于 2006-9-1 12:26 编辑 ]

TOP

引用:
原帖由 dejisae 于 2006-9-1 12:02 发表
要不我用VC++写一个得了。
也不需要什么运行库之类。
C#写的东西怎么这么麻烦?
写吧,支持

c#目前需要运行库,明年的vista会自带库的

TOP

以后官方rom转换软件会添加导入存档功能,届时就不麻烦了

TOP

引用:
原帖由 dejisae 于 2006-9-1 13:02 发表
我先把V7刷好,之后研究研究,不过毕竟你研究的很深,有些不会的还得问问你。不好意思。
没办法,我刚买到DSLINK!
好,一起研究

TOP

jun4rui老大的空间有点问题,我下载不了

补充:jun4rui的空间对中文名支持的不好,请用英文或者拼音,不过我已经下载了你的存档了~请稍等

[ 本帖最后由 长牛角 于 2006-9-1 13:37 编辑 ]

TOP

洛克狼的转后存档,不好意思我还是用的raidshare空间
先使用一般转换文件夹中的存档,有问题的再使用强制转换文件夹中的对应存档

366kB左右
http://rapidshare.de/files/31515979/luokelang.rar.html

[ 本帖最后由 长牛角 于 2006-9-1 14:04 编辑 ]

TOP

不用谢,收集些存档也帮我测试软件了
最好能告诉我哪些使用的是强制转换可以的,哪些两种转换的都不行

TOP

 17 12
发新话题
     
官方公众号及微博