3dsconv 使用教程:3 步把 3DS 游戏从 CCI 转成 CIA
3dsconv 使用教程3 步把 3DS 游戏从 CCI 转成 CIA【免费下载链接】3dsconvPython script to convert Nintendo 3DS CCI (.cci, .3ds) files to the CIA format项目地址: https://gitcode.com/gh_mirrors/3d/3dsconv你的 SD 卡里躺着一堆.3ds卡带镜像想装进 3DS 主机却被告知格式不支持——这是许多 3DS 玩家都遇到过的事。3dsconv正是为解决这个痛点而生的开源小工具它用 Python 编写可以把任天堂 3DS 的 CCI.cci/.3ds文件转换为 3DS 能直接安装的 CIA 格式一条命令完成转换全程无需手动干预。下面这份 3dsconv 使用教程会带你从安装走到原理再到排错。动手前的 3 步准备安装到首次转换第 1 步克隆仓库并安装依赖项目依赖极简只有一个加密库pyaes它负责 AES-CTR 加解密。git clone https://gitcode.com/gh_mirrors/3d/3dsconv cd 3dsconv pip install pyaes第 2 步确认工具能跑起来直接运行主脚本且不带任何参数工具会打印版本号和完整的帮助信息python3 3dsconv/3dsconv.py看到3dsconv.py ~ version 4.21以及以Convert Nintendo 3DS CCI (.3ds/.cci) to CIA开头的帮助文本就说明一切就绪。你也可以写个小脚本做自动化验证#!/usr/bin/env python3 # verify_3dsconv.py —— 验证工具是否就绪 import subprocess result subprocess.run( [python3, 3dsconv/3dsconv.py], # 不带参数会打印版本号和帮助信息 capture_outputTrue, textTrue ) if Convert Nintendo 3DS CCI in result.stdout: print(3dsconv 已就绪可以开始转换) else: print(输出异常, result.stdout, result.stderr)第 3 步执行第一条转换命令单个文件转换只需一行命令--output指定输出目录python3 3dsconv/3dsconv.py my_game.3ds --outputcia_files/批量转换同样简单把多个文件一次性传给脚本即可python3 3dsconv/3dsconv.py game1.3ds game2.3ds game3.3ds --outputcia_files/转换过程中你会看到实时的进度条百分比 已处理字节数结束后命令行会汇总成功转换了 N 个文件。如果目标目录里已有同名.cia脚本会拒绝覆盖并提示你加上--overwrite。一行命令背后CCI 转 CIA 发生了什么知其然也要知其所以然理解内部流程能帮你排查 90% 的报错。整个转换可以拆成四步验证文件身份读取0x100处的 4 字节必须是NCSD再检查 Game Executable 分区头部必须是NCCH。这一步能拦截掉 NAND 转储等伪装文件。判断加密状态读取分区偏移0x18F处的加密标志位决定走哪条解密路线。提取并重组内容抽出 Game Executable CXI、Manual CFA、Download Play 子容器等分区同时从 ExeFS 中提取游戏图标SMDH。重构 CIA 容器按规范写入 CIA 头、证书链、ticket、tmd、分块记录与 Meta 区并在过程中实时计算 SHA-256 写入各字段。其中最有意思的是第 2 步——加密检测。源码里的判断逻辑非常直白# 读取加密标志位Game Executable 分区偏移 0x18F 处 rom.seek(game_cxi_offset 0x18F) bitmask rom.read(1)[0] encrypted not (bitmask 0x4) # 0x4 位未置位 → 原版 NCCH 加密slot 0x2C zerokey_encrypted bitmask 0x1 # 0x1 位置位 → zerokey 加密也就是说一个 CCI 文件在工具眼里只有三种状态未加密、原版 NCCH 加密和zerokey 加密。对加密文件脚本会结合 boot9 中提取的密钥与分区头部的 KeyY 推导出解密密钥用 pyaes 的 CTR 模式解密 ExtHeader 和 ExeFS 头部完成转换后还会把补丁后的头部重新加密写回保证输出文件符合 3DS 的安装规范。加密游戏怎么处理boot9.bin 的获取与搜索顺序如果你的.3ds是加密的大多数自购卡带 dump 都是工具需要一份ARM9 bootROM来推导密钥。获取方法很简单在已安装 boot9strap 的 3DS 主机上开机时按住START SELECT Xboot9 就会被转储到 SD 卡的sdmc:/boot9strap/boot9.bin。拿到文件后把它放进以下任一位置即可脚本会按顺序自动查找查找顺序位置说明1--boot9参数或环境变量BOOT9_PATH用户显式指定优先级最高2当前目录下的boot9.bin完整版 bootROM3当前目录下的boot9_prot.bin受保护版 bootROM4~/.3ds/boot9.bin完整版用户主目录5~/.3ds/boot9_prot.bin受保护版用户主目录为了确认文件完整可以用官方给出的哈希值校验sha256sum boot9.bin # 期望输出2f88744feed717856386400a44bba4b9ca62e76a32c715d4f309c399bf28166f工具内置了密钥校验会在加载 boot9 时比对 key 的 MD5文件不对会提示Corrupt file (invalid key)。如果没找到 boot9启动时会直接提示bootROM not found, encryption will not be supported这时处理加密文件必然失败。进阶选项一览从覆盖写到开发者密钥工具的参数不多但每个都有明确的适用场景参数作用典型用法--outputdir指定输出目录--output./cia_files--boot9file指定 boot9.bin 路径--boot9./keys/boot9.bin--overwrite覆盖已存在的输出文件--overwrite--ignore-bad-hashes忽略无效哈希强行转换--ignore-bad-hashes--ignore-encryption无视加密标志位按未加密处理--ignore-encryption--verbose打印详细过程密钥、各分区大小、哈希--verbose--dev-keys使用开发机密钥进行转换--dev-keys组合使用很常见比如处理一个已解密的 ROM同时希望看到详细日志python3 3dsconv/3dsconv.py my_game.3ds --outputcia_files/ --overwrite --verbose关于--dev-keys要特别说明它只适用于开发机加密的标题主要用于 SystemUpdater而且输出文件仍然是开发机密钥加密的普通零售机装不了。使用前需要把certchain-dev.bin放在当前目录或~/.3ds/下可以用ctrtool --certscertchain-dev.bin title.cia从开发版 CIA 中提取。零售版游戏请勿使用此参数。另外工具还支持通过环境变量BOOT9_PATH预设 boot9 路径适合在多项目间复用的场景export BOOT9_PATH/path/to/your/boot9.bin高频报错排错症状、原因与解法这里整理了几个最常见的报错按症状 → 原因 → 解法的节奏快速定位症状原因解法bootROM not found, encryption will not be supported没装 pyaes 或没找到 boot9pip install pyaes按搜索顺序表放好 boot9或用--boot9指定This file may be corrupt (invalid ExtHeader hash)加密状态判断错误或文件确实损坏已解密的 ROM 加--ignore-encryption确认文件无误后再加--ignore-bad-hashesxxx.cia already exists输出目录已有同名文件加上--overwritexxx doesnt exist.路径写错或通配符没匹配到文件检查路径脚本支持*.3ds这类通配符is not a CCI file (missing NCSD/NCCH magic)输入文件不是合法的 CCI如 NAND 转储确认文件确实是卡带 dumpIcon not found in the ExeFS.分区内找不到游戏图标数据多为文件异常换源重新 dump一个实用建议遇到任何可疑情况都先加--verbose重跑一遍。它会打印标题 ID、各分区大小、解密密钥、每段的 SHA-256信息量足够定位绝大多数问题。几点避坑提醒与诚实的说明最后是一些实战中的经验总结工具定位README 里作者自己说明了Decrypt9WIP 和 GodMode9 如今已支持直接把卡带转储为 CIA3dsconv因此部分过时但对于手头已有的存量.3ds转储文件它依然是最轻量、最省事的转换方案。转换前先备份永远保留原始.3ds文件转换过程是只读输入、新建输出的但以防万一。磁盘空间一个 4GB 的 CCI 转出的 CIA 体积接近原始大小请确保输出盘有足够空间。合法使用请只转换自己合法拥有的游戏备份不要涉及盗版分发。掌握这几个要点你已经能用3dsconv独立完成从卡带转储到 CIA 安装的全流程。装上游戏享受掌上时光吧。【免费下载链接】3dsconvPython script to convert Nintendo 3DS CCI (.cci, .3ds) files to the CIA format项目地址: https://gitcode.com/gh_mirrors/3d/3dsconv创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

告别“蜗牛下载“:网盘直链下载助手帮你解锁八大网盘的真实下载链接

告别“蜗牛下载“:网盘直链下载助手帮你解锁八大网盘的真实下载链接

告别"蜗牛下载":网盘直链下载助手帮你解锁八大网盘的真实下载链接 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 …

2026/8/15 10:56:53 阅读更多 →
千问    LeetCode 3911. 移除子数组元素后第 K 小偶数 TypeScript实现

千问 LeetCode 3911. 移除子数组元素后第 K 小偶数 TypeScript实现

这道题是 LeetCode 3911「移除子数组元素后第 K 小偶数」,核心思路是二分答案 前缀和计数:对每个查询,在值域上二分"第 k 个剩余偶数",用前缀和快速统计子数组中被移除的偶数个数。题目理解给定严格递增数组 nums 和查…

2026/8/16 12:02:18 阅读更多 →
DeepSeek    LeetCode 3911. 移除子数组元素后第 K 小偶数 JavaScript实现

DeepSeek LeetCode 3911. 移除子数组元素后第 K 小偶数 JavaScript实现

根据 LeetCode 3911 题意,nums 是严格递增的正整数数组,每个查询 [l, r, k] 表示移除子数组 nums[l..r] 后,在所有正偶数序列 2,4,6,... 中找出第 k 小的、未被移除的偶数。核心解法:二分答案 前缀和 将答案表示为 2 * t&#xf…

2026/8/16 11:27:03 阅读更多 →

最新新闻

snapDOM 完整实战指南:高性能 DOM 截图与导出,一文看懂怎么用

snapDOM 完整实战指南:高性能 DOM 截图与导出,一文看懂怎么用

snapDOM 完整实战指南:高性能 DOM 截图与导出,一文看懂怎么用 【免费下载链接】snapdom High-performance engine for capturing, modifying, and converting DOM elements into any format. 项目地址: https://gitcode.com/GitHub_Trending/sn/snapdo…

2026/8/16 17:48:32 阅读更多 →
从生肉到熟肉,XUnity.AutoTranslator游戏实时翻译插件实战全攻略

从生肉到熟肉,XUnity.AutoTranslator游戏实时翻译插件实战全攻略

从生肉到熟肉,XUnity.AutoTranslator游戏实时翻译插件实战全攻略 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 半夜两点,你终于下完心心念念的日文 RPG,兴冲冲点开游…

2026/8/16 17:48:32 阅读更多 →
收盘后自动运行选股策略:配合 APScheduler 实现定时行情抓取与分析

收盘后自动运行选股策略:配合 APScheduler 实现定时行情抓取与分析

📌 摘要 / 快速解答 通过 APScheduler 定时调度框架与 QuantDash Python SDK 的结合,开发者可以用极简代码实现收盘后自动拉取多市场行情数据并执行选股策略。QuantDash 提供统一的 A股/美股/港股 K线接口(如 .SH、.SZ、.US、.HK)…

2026/8/16 17:48:32 阅读更多 →
Godot 逆向工程完整实战指南:用 gdsdecomp 免费恢复丢失源码的 PCK 项目

Godot 逆向工程完整实战指南:用 gdsdecomp 免费恢复丢失源码的 PCK 项目

Godot 逆向工程完整实战指南:用 gdsdecomp 免费恢复丢失源码的 PCK 项目 【免费下载链接】gdsdecomp Godot reverse engineering tools 项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecomp 想象一个深夜:你的游戏已经打包成 PCK 文件、…

2026/8/16 17:48:32 阅读更多 →
JsonQ性能优化5个实用技巧:海量JSON数据查询提速方案

JsonQ性能优化5个实用技巧:海量JSON数据查询提速方案

JsonQ性能优化5个实用技巧:海量JSON数据查询提速方案 【免费下载链接】jsonq A PHP query builder for JSON 项目地址: https://gitcode.com/gh_mirrors/js/jsonq JsonQ 是一个轻量优雅的 PHP JSON 数据查询构建器(A PHP query builder for JSON&…

2026/8/16 17:48:32 阅读更多 →
大学生如何快速适应大模型时代

大学生如何快速适应大模型时代

暑假快结束了,现在各类 AI 生产力工具迭代很快,workbuddy、千问工作、Trace Work 等已经开始改变工作模式。年轻人正是学习上手的黄金阶段。这个暑假还没有尝试搭建相关环境,多年后会后悔没有在这个时间段用学习AI的。如下适合机械等专业、力…

2026/8/16 17:47:32 阅读更多 →

日新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/16 6:00:23 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/16 6:00:24 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/16 6:00:27 阅读更多 →