主题 : 【讨论】DC redump规范与CHD互转当前最佳方案(科普+翻译+工具转载)
级别: 模拟专家
UID: 89721
精华: 0
发帖: 87
威望: 0 星
金钱: 2295 浮游币
贡献值: 45 点
好评度: 240 点
人气: 1 点
在线时间: 246(时)
注册时间: 2005-12-22
最后登录: 2024-11-21
楼主  发表于: 2021-12-05 00:06

【讨论】DC redump规范与CHD互转当前最佳方案(科普+翻译+工具转载)

先说结论:

目前最佳互转方案:

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重新编辑 ]
本帖最近评分记录:
  • 人气:+1(willzyj) 辛苦了,送你 1 点人气
  • 金钱:+10(YZB) 辛苦了,送你 1 点人气
  • YZB
    级别: 超级版主

    UID: 12451
    精华: 6
    发帖: 19097
    威望: 173 星
    金钱: 2010 浮游币
    贡献值: 10063 点
    好评度: 54867 点
    人气: 4322 点
    在线时间: 19687(时)
    注册时间: 2004-10-02
    最后登录: 2024-11-22
    沙发  发表于: 2021-12-05 23:06

    说下我的个人看法

    简单点说CHD格式可以理解为一种类似于rar zip的打包压缩格式,就类似于模拟器支持rar或者zip压缩后的光盘镜像一样,容量上肯定占很大优势,读取速度借助于现在越发强大的硬件也几乎和原始镜像一样,所以很多人热衷于这个格式

    但是对我个人来说,CHD格式不支持实机GDEMU MODE都不支持,因为论坛还有很多朋友是用实机玩的(包括我),所以仅这一点就只能放弃了,也许以后CHD支持实机了会考虑深入了解一下(估计不行)


    最后说下结论

    模拟器玩家,松鼠症爱好者,喜欢一张卡包圆所有游戏的用户,可以选择chd

    gdemu mode usb 实机用户,只能GDI cdi


    另外不知道2352的bin格式压缩的时候是否会跳过edc ecc的校检数据,如果不跳过的话,可以先转成2048的iso格式在压缩,压缩比会更好~
    [ 此帖被YZB在2021-12-05 23:13重新编辑 ]
    YZB
    级别: 超级版主

    UID: 12451
    精华: 6
    发帖: 19097
    威望: 173 星
    金钱: 2010 浮游币
    贡献值: 10063 点
    好评度: 54867 点
    人气: 4322 点
    在线时间: 19687(时)
    注册时间: 2004-10-02
    最后登录: 2024-11-22
    板凳  发表于: 2021-12-12 20:35

    但是模拟器是支持  mode1/2048的GDI格式,而且gdemu mode光驱版也同样支持

    chd说白了已经脱离精确模拟的范围了,等于是给主机加大了内存...............

    另外,突然想起来,好奇问问redump官方是否发布过chd格式的镜像??
    [ 此帖被YZB在2021-12-12 23:28重新编辑 ]
    YZB
    级别: 超级版主

    UID: 12451
    精华: 6
    发帖: 19097
    威望: 173 星
    金钱: 2010 浮游币
    贡献值: 10063 点
    好评度: 54867 点
    人气: 4322 点
    在线时间: 19687(时)
    注册时间: 2004-10-02
    最后登录: 2024-11-22
    地板  发表于: 2021-12-13 19:26

    我知道chd是一种压缩格式,本身格式没有任何问题,但是我指的精确模拟不是指这种格式,而是指模拟器支持这种格式的话就不能算是精确模拟了

    另外redump都只放cue+分轨bin,既然chd那么好,为什么他们不放chd格式呢?

    说白了,cue+分轨bin算是原始格式,chd就类似于rar zip 7z的之类的压缩格式,只是特别针对光盘镜像做了优化压缩而已

    模拟器能支持chd也是只能是模拟器,在加载这种格式的时候需要比实机多分配内存出来进行预处理,你甚至可以编译模拟器,在上面预先分配个1g的内存出来把整个镜像都加载进去,这样读取速度会更快......