Dolphin模拟器RVZ压缩指南:3步为存储优化省下空间
【免费下载链接】dolphinDolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.项目地址: https://gitcode.com/GitHub_Trending/do/dolphin
Dolphin 是一款开源的 GameCube / Wii 模拟器,它的 RVZ 格式正是为游戏镜像做存储优化的方案:把体积庞大的 ISO 压缩成明显更小的 RVZ 文件,同时模拟器可以直接读取运行。这篇文章带你完成 RVZ 压缩转换的具体步骤、参数取舍和报错排查,帮你把镜像库的磁盘占用降下来。
为什么选RVZ:原理只用三句话
一张 GC/Wii 镜像动辄 1GB 以上,镜像库稍微大一点,硬盘压力就很明显。RVZ 是 Dolphin 基于 WIA 格式扩展出来的压缩镜像格式,仓库里的官方文档给出了完整定义。
它的做法可以概括为三句话:
- 把整个镜像切分成若干块(block),每一块独立压缩,这样模拟器想读哪个位置就直接定位解压缩对应的块,不需要先解包整个文件;
- 块数据支持 zstd、bzip2、lzma 等压缩算法,全零的块只占极少字节;
- 光盘里大段的伪随机填充数据,用专门的 "RVZ packing" 编码无损记录,而不是硬压缩。
所以转成 RVZ 之后,文件会比原始 ISO 小上一截,游戏内容却完全保留。
转换步骤:把ISO变成RVZ
方法一:图形界面操作
在 Dolphin 主界面的游戏列表里,选中一个或多个镜像,右键选择 "Convert Selected Files..."。弹出的转换对话框里可以用下拉框选输出格式、块大小、压缩算法和压缩等级,支持一次批量转换多个文件。转换结果会另存为新文件,原镜像不会被改动,这点可以放心。
方法二:dolphin-tool 命令行
图形界面能选的所有参数,命令行都有对应的选项。一条最基本的转换命令如下:
# ISO 转 RVZ:块大小 128KiB、zstd 算法、等级 5(均为项目建议值) dolphin-tool convert -i game.iso -o game.rvz -b 131072 -c zstd -l 5注意:RVZ 转换时块大小(-b)和压缩算法(-c)是必填项,不指定工具会直接报错退出。如果镜像里有大量无用填充数据,可以加--scrub先清理再转换,不过对 RVZ 容器来说额外收益有限(工具会给出相应提示)。
参数怎么选:块大小与压缩算法
块大小的规则与取舍
工具的建议值是 131072,也就是 128KiB。源码里对块大小的合法性有明确校验,你可以照着记:
- 最小 32KiB,再小不合法;
- 小于 2MiB 时必须取 2 的幂次(32KiB、64KiB、128KiB、256KiB……);
- 大于 2MiB 时必须取 2MiB 的整数倍。
| 块大小 | 读取特性 | 适用场景 |
|---|---|---|
| 32KiB | 寻址粒度最小,压缩效率略低 | 随机访问多的镜像 |
| 128KiB(建议值) | 读写与压缩效率平衡 | 大多数游戏 |
| 256KiB~2MiB | 压缩效率更高,寻址稍慢 | 优先省空间 |
图形界面的块大小列表就是 32KiB 到 2MiB 这一档。源码注释也说明了原因:块太大反而不利于性能,所以不建议超过 2MiB。
压缩算法与等级
命令行支持none、zstd、bzip2、lzma、lzma2五种算法,项目对 RVZ 的建议组合是 zstd + 等级 5:
- zstd:速度快,等级范围宽,等级越高文件越小、转换越慢,5 是个稳妥的起点;
- bzip2 / lzma / lzma2:等级范围固定为 1~9,高压缩比但转换耗时更长;
- none:不压缩,文件只分块不缩小,一般用不上。
如果你追求极限体积,可以把 zstd 等级往上调,然后对比转换前后的大小再定。
常见问题:报错怎么排查
⚠️ 提示 "Block size is not valid for this format"
原因是块大小不满足上一条的规则。直接改用建议值131072即可通过校验。
转换完如何确认参数和完整性
转换结束后,可以用随模拟器提供的两个命令做检查:
# 查看 RVZ 文件的块大小、压缩算法与等级 dolphin-tool header -i game.rvz -b -c -l # 计算文件摘要(sha1),方便核对完整性 dolphin-tool verify -i game.rvz -a sha1转换后游戏无法启动
按顺序排查:
- 先用
verify命令检查源 ISO,源文件本身损坏是最常见的原因; - 确认
header输出里的参数符合预期; - 用建议参数(128KiB + zstd + 等级 5)重新转换一次。
上手清单
动手之前,把这几件事过一遍:
- 保留原始 ISO,转换时输出到另一个文件,不覆盖源文件;
- 默认用 128KiB 块大小 + zstd + 等级 5,先跑通再调参;
- 批量镜像用图形界面多选转换,或在脚本里循环调用
dolphin-tool convert; - 转换完成后用
header命令抽查参数,用verify抽查完整性; - 想深入理解块结构和 RVZ packing 编码,看下面延伸阅读里的官方文档与源码。
延伸阅读
- docs/WiaAndRvz.md:WIA / RVZ 两种镜像格式的完整结构说明
- Source/Core/DiscIO/:镜像读取、格式校验与转换的核心源码
【免费下载链接】dolphinDolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.项目地址: https://gitcode.com/GitHub_Trending/do/dolphin
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考