先说结论:
目前最佳互转方案:
redump → CHD
官方chdman 转 cue+bin
CHD → redump
改版chdman 转 chd
简介:CHD 文件格式是一种无损压缩转储格式,用于存储镜像。数据轨道采用 LZMA 压缩,音频轨道采用 FLAC 压缩。它的压缩率是≥ 7z 压缩的。(7z不支持 FLAC 压缩,对音轨依然采用数据方式而力不从心)
除了压缩率,CHD最大的优点是:支持随机读取。传统的zip,7z压缩基于文件压缩,没有文件块索引,无法对文件内的数据块精确定位,所以如果需要读取压缩包内某一文件的某一块数据时,需要解压缩整个文件。而CHD压缩基于文件块索引。需要某一块数据,不需要解压缩整个文件,能像定位光盘 LBA一样准确定位。另外此转换也是可逆的,不喜欢了可以无损回原镜像,文件具有相同的校验。另外CHD也是带校验的。用verify 命令可冶ΡΓ验文件是否被损坏或者修改。现在新的模拟器基本都支持这种存储格式。可以预见,随着模拟技术的推进,mame作为行业龙头的规范效应,会有越来越多的模拟器和玩家对这种格式持欢迎态度。
当前官方CHD转换工具,CHDMAN对DC镜像支持不足。(DC家用机还未纳入MAME仿真的范畴)。
官方CHDMAN目前已知的问题:
1. redump规范 gdi + bin 转储 CHD 可逆转为 gdi+bin ,文件名有改变,不过bin 文件校验匹配。2. redump规范 cue + bin 转储 CHD 用官方CHDMAN不可逆转.转回 cue + bin ,cue丢失镜像低/高密度信息,bin变为合并镜像。转回 gdi + bin ,部分轨道(通常是第二轨)大小和校验不匹配。
2. Dreamcast MIL-CD (CD规格发售的带(Unl)标记的游戏,例如Pier Solar and the Great Architects (USA) (Unl),Sturmwind (Europe) (Unl) )转储压缩到 .CHD 不能被主流模拟器(retroarch, flycast, demul)识别。
而且,redump.org 从几个月前就取消了对 gdi + bin 的支持,虽然后来因为抗议声大又重新放出。但是gdi 文件本身已经不再更新(现在官网上能下载到的gdi索引文件已经是旧版)。而且Datfile也没了gdi文件的校验,用GDI-Utils作者的话说:Redump.org GDI 和 通用 GDI 虽然有相同的文件扩展名“.gdi”,但是有些许差异。详见此
www 点 romhacking.net/utilities/1449/
由此可见未来的规范依然是 cue+bin
那么,如果在DC redump 和 CHD 之间完美互转有几种方法呢?
1. 官方CHDMAN + Redump gdi+bin ,目前redump 官网能下载到gdi索引,但是有部分缺失。缺失的可以用 cue 转 gdi 索引工具。
Gdi2CHD.zip (773 K) 下载次数:57 CHD 转回 Redump 如果用官方CHDMAN,只能输出gdi格式。输出后的gdi +bin 需要手动改名以匹配Redump规范。
2. 改版chdman
chdman (1).zip (1678 K) 下载次数:78 此改版基于chdman0.237.可以完美转换 官方CHDMAN+Redump cue+bin转换的CHD文件回到Redump cue+bin规范。已有网友实验转换redump全套cue+bin → CHD 又转回 CHD → cue+bin 全部通过CM校验
cue2gdi 出处:
forum 点 batocera.org/d/4668-dreamcast-emulators-and-the-chd-compressed-file-format-support
改版chdman及源代码出处:
github 点 com/mamedev/mame/pull/7717
此链接有大量关于DC gdi的技术讨论,非常精彩。可惜mame官方给与了关闭
[ 此帖被lanyer在2021-12-08 13:57重新编辑 ]