
游戏ISO一键转CHDtochd完整使用指南让Linux模拟器玩家告别格式混乱【免费下载链接】tochdConvert game ISO and archives to CD/DVD CHD for emulation on Linux.项目地址: https://gitcode.com/gh_mirrors/to/tochd去年我整理自己的复古游戏收藏时面对一个尴尬的现状几百GB的PS1、PSP和Dreamcast游戏散落在硬盘各个角落有的是单个ISO有的是CUEBIN两件套还有大量7z压缩包没解压。想用RetroArch统一运行结果发现每个核心对格式的要求还不一样而当时让我最头疼的是找到一款能处理游戏ISO转CHD这件事的工具——直到我遇见了tochd。这是一个运行在Linux上的命令行小工具作用非常纯粹把ISO、CUEBIN、GDI这些光盘镜像以及装着它们的压缩包一键批量转成模拟器生态里的标准答案CHD格式。这篇文章会从原理讲到实操把我在使用中踩过的坑和攒下的技巧一并分享给你。tochd到底解决了什么问题三句话讲清楚在深入细节之前先用最简单的方式说清它的价值把多文件变成单文件一张PS1游戏通常是CUEBIN两个文件Dreamcast游戏更夸张一个GDI经常带几十个bin轨道文件。tochd把它们合并成一个CHD拷贝、备份、整理都变成复制一个文件的事。压缩率惊人CHD内置了针对光盘数据的压缩算法实测多数游戏能比原镜像缩小一半以上一个4GB的PSP游戏经常能压到1.5GB左右。自动处理压缩包你甚至不需要先解压。直接把7z、zip、rar丢给它tochd会自己解压、识别内部镜像、完成转换然后清理临时文件。换句话说它把解压→识别格式→转换→重命名→清理这条原本要手动操作五步的流水线压缩成了敲一条命令。对我这种手上有几百个文件要处理的人来说省下的不只是时间还有大量重复劳动带来的烦躁。它凭什么能做到原理其实很简单tochd本身不发明任何新格式它更像一个聪明的调度员。真正干活的是两个老牌工具7z负责解压各种压缩包把藏在里面的ISO、CUE、GDI文件请出来chdman来自MAME工具包是CHD格式的发明者和权威转换器负责把镜像真正压成CHD。tochd做的事情就是站在两者中间分析输入文件类型、决定调用顺序、管理临时目录、生成命名规则、最后汇总结果。你可以把它理解成一个全自动的中转站——货物压缩包进来它负责拆箱、分拣、打包最后送到你指定的货架目标目录上。整个项目就是一个Python脚本不依赖任何第三方Python库只要系统里有7z和chdman就能跑这让我这种喜欢折腾、也怕依赖地狱的人格外安心。从零到第一个CHD最短的上手路径如果你的系统是Arch系一条命令就能装好sudo pacman -S p7zip mame-tools # 安装7z和chdman yay -S tochd # 从AUR安装tochd其他发行版或者不想用AUR的话手动安装也不复杂git clone https://gitcode.com/gh_mirrors/to/tochd cd tochd bash suggested_install.sh安装脚本会自动把tochd.py重命名成tochd命令放进系统PATH里可写的目录。装完先验证一下tochd --version接着找一张ISO试水。最简单的用法是把当前目录整个交给它tochd -q .-q是静默模式隐藏7z和chdman的进度输出只看tochd自己的任务清单。不出意外几秒钟后你就会在ISO旁边看到一个同名CHD文件。就这么简单第一个转换完成了。完整实战把整个下载文件夹变成CHD收藏库假设你和我一样~/Downloads里堆着几十个游戏文件既有ISO也有7z压缩包来自PS1、PSP、Dreamcast各个平台。我的习惯是先把它们按平台分成子文件夹然后挨个处理。但tochd允许一次搞定tochd -q -d ~/Games/CHD ~/Downloads这条命令的含义是扫描~/Downloads里所有支持的文件包括递归进子文件夹解压压缩包把生成的CHD统一输出到~/Games/CHD目录。源文件原封不动输出目录整整齐齐。跑完之后如果你想确认哪些成功了、哪些失败了加上-s和-n看统计tochd -qs -n ~/Downloads-s会输出类似这样的总结Started: 12 Skipped: 0 Failed: 2 Completed: 10 Elapsed time: 0:08:41-n则让每条任务只显示文件名不显示完整路径刷屏没那么恐怖。看到失败列表也不用慌先确认是不是某些文件本身不支持后面我专门讲怎么排查。进阶技巧几个值得收藏的参数用熟基础操作之后下面这些参数能让你的效率再上一个台阶。用DVD模式处理PSP游戏这是新手最容易忽略、却最重要的一条。PPSSPP官方明确建议用chdman createdvd而不是createcd来转换PSP游戏因为PSP用的是DVD格式的光盘。tochd默认是CD模式所以转PSP游戏一定要加-m dvdtochd -m dvd ~/PSP_Games/*.iso如果不确定手里的光盘属于哪种可以用-m auto让tochd按文件大小自动判断以750MB为分界线。注意我实测PS2游戏用DVD模式在PCSX2核心上运行会有问题所以自动判断虽方便特殊情况还是要手动指定。多线程并行处理机器够好、文件够多时开启并行能省下大把时间tochd -p -t 4 -- *.7z-p开启多线程默认2线程-t 4指定最多4个任务同时跑--后面跟文件名防止文件名以-开头时被误认成参数。想限制chdman占用的CPU核心数再用-c 2控制给系统留点余量。需要注意两点并行模式下进度条会被禁用多个进程的输出会互相打架这是正常现象另外-p和-s同时使用时代码里出于线程安全考虑统计计数会不显示不影响转换本身。保留压缩包内部的原始文件名压缩包里的镜像名往往带版本、语言等关键信息但tochd默认会把输出的CHD重命名成压缩包的名字信息可能就丢了。这种情况加-Rtochd -R -q game_collection.7z先演练再执行对一个大文件夹动刀之前我强烈建议先跑一次-X干跑模式。它不会真的转换只会列出将要处理的任务清单让你提前发现意外tochd -X .自定义临时目录转换压缩包时tochd会在输入文件旁边创建隐藏的.tochd_*临时文件夹来解压。磁盘空间紧张的话可以把它挪到指定的地方tochd --temp-dir /tmp/tochd_temp game.7z新手最容易踩的坑以及对应的解法我用tochd踩过的坑不算少挑几个有代表性的分享出来帮你绕开。压缩包里有多个同名ISO有些游戏补丁包会把覆盖用的ISO和其他文件打在一起解压后会出现多个同名ISO。tochd对此的处理策略是只要压缩包里出现了CUE或GDI这种分轨表文件就忽略所有ISO只处理分轨表文件。大多数情况这是对的但如果转换结果不对直接手动解压、清理掉多余文件再转即可。音频文件格式不匹配部分CUE文件引用的是APE格式的音频而chdman不认APE转换就会失败。这种情况需要先把APE转成WAV再交给tochd。判断方法很简单打开CUE文件看一眼引用的文件后缀或者查压缩包自带的说明文档。单个坏文件卡住整个队列有一个已知的边界情况当GDI文件内部引用了不存在的文件时可能导致后续任务全部停止。如果遇到整批卡住先定位出那个异常的GDI把它排除出扫描目录再重新跑。强制终止后记得清理普通CtrlC是优雅终止会跳过当前任务继续下一个临时文件也能自动清理。但如果是强制杀掉进程tochd_开头的临时文件夹可能残留——它们体积可能很大转换完最好检查一下源文件所在目录。想一次CtrlC就彻底停掉所有任务用-E参数。PSP转换后无法运行不用怀疑自己操作错了八成是没加-m dvd。这是PPSSPP的硬性要求CD格式转出来的CHD在PPSSPP上兼容性很差重新用DVD模式转一遍就好。不止PS1和PSPCHD还能怎么用CHD的生态其实比很多人以为的更广。除了RetroArch各核心和PPSSPPFlycastDreamcast模拟器也原生支持CHD。把实体光盘抓成镜像后再转CHD等于给你的实体游戏做了数字化备份一套收藏多个设备通用。因为CHD单文件、体积小它特别适合放在多设备之间同步——比如Steam Deck和电视盒子共享一个游戏库或者传到网盘做云端备份。相比几十个文件的GDI文件夹单个CHD文件的传输和校验都省心太多。另外tochd支持的输入格式里还包括bz2、gz这类单文件压缩格式加上-参数可以从stdin逐行读取文件列表配合其他脚本做自动化批量处理也没问题。现在就去整理你的游戏库回到开头我的故事那次用tochd批量整理完几百GB的游戏后我的游戏目录从一堆乱七八糟的ISO、CUEBIN、GDI、7z变成了整齐划一的CHD文件硬盘还腾出了接近一半的空间。之后无论是换设备还是备份都只跟单个文件打交道那种清爽感用过就回不去。如果你也是Linux上的模拟器玩家手上正好有一批光盘镜像或压缩包没整理不妨今天就试一下tochd。先装好依赖跑一条tochd -q .看看效果再按自己的习惯组合参数。整理游戏库这件事真的可以十分钟之内搞定。【免费下载链接】tochdConvert game ISO and archives to CD/DVD CHD for emulation on Linux.项目地址: https://gitcode.com/gh_mirrors/to/tochd创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考