# PAL4PackTool **Repository Path**: nabaonan/pal4-pack-tool ## Basic Information - **Project Name**: PAL4PackTool - **Description**: 仙剑奇侠传4 PAL4打包工具 - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 5 - **Created**: 2025-05-31 - **Last Updated**: 2026-04-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PAL4打包工具 ## 项目介绍 PAL4打包工具是一个专门用于处理仙剑奇侠传4(PAL4)游戏资源文件的工具。此工具可以对游戏的CPK格式资源包进行解包和打包操作,主要用于修改或定制游戏内容。支持批量处理多个CPK文件,并保留完整的文件目录结构。 原始版本由geleisisisi开发,由betesla于2025-04-20进行了修改和增强。 ## 功能特点 - 完整的CPK文件解包功能,支持提取所有游戏资源 - 压缩和打包游戏资源文件(主要为.db文件) - 使用MiniLZO压缩算法处理文件 - 支持文件替换和资源打包 - 保留原始文件夹结构和层次关系 - 提供详细的日志记录和进度显示 - 内存安全处理,支持大型文件操作 ## 技术实现 - 使用C++编写,支持Windows系统 - 采用MiniLZO压缩算法进行文件压缩和解压 - 实现了CPK文件格式的完整解析和写入 - 使用自定义的文件索引加解密算法(使用密钥:"Vampire.C.J at Softstar Technology (ShangHai) Co., Ltd") - 使用虚拟内存管理大型文件,避免内存溢出 - 进度条显示实时处理状态 ## 使用方法 ### 解包操作 1. 将CPK文件放入程序目录下的`OriginalCPK`文件夹 2. 运行程序,选择"解包(Unpack)"选项 3. 程序会自动解包所有CPK文件到`Decompressed`目录下,保留原始目录结构 ### 打包操作 1. 将需要替换的文件放入程序目录下的`ToBeCompressed`文件夹,保持与原始文件相同的目录结构 2. 将原始CPK文件放入`OriginalCPK`文件夹 3. 运行程序,选择"打包(Pack)"选项 4. 程序会自动检测并替换相应文件,生成新的CPK文件在程序根目录 ## 目录结构 - `/OriginalCPK` - 存放原始CPK文件的目录 - `/ToBeCompressed` - 存放需要打包的文件的目录 - `/Decompressed` - 解包后的文件存放目录 ## 编译方法 项目使用CMake构建系统,支持以下编译方式: ### 使用CMake命令行 ```bash mkdir build cd build cmake .. cmake --build . ``` ### 使用提供的批处理文件 直接运行项目根目录下的`build.bat`文件即可完成编译。 ## 文件结构 - `main.cpp` - 主要程序代码,包含打包和解包功能的实现 - `cpk.h` - CPK文件格式定义和相关类结构 - `EncDec.h` - 索引加密和解密功能的实现 - `minilzo.c/h` - MiniLZO压缩算法实现 - `lzoconf.h`, `lzodefs.h` - LZO压缩算法配置文件 - `CMakeLists.txt` - CMake构建配置 - `build.bat` - 快速构建批处理文件 - `packing.log` - 程序运行日志,记录详细操作过程 ## 注意事项 - 本工具仅用于学习和研究目的 - 使用前请备份原始游戏文件 - 对游戏文件的修改可能导致游戏不稳定或无法运行 - 解包大型CPK文件可能需要较大的内存空间 - 如遇到解包或打包错误,请查看程序目录下的packing.log日志文件 ## 参考资料 - MiniLZO压缩库: https://github.com/yuhaoth/minilzo - PAL3CPK解包工具: https://github.com/xurubin/PAL3CPKUnpack - CPK文件格式分析: http://www.mayafei.cn/archives/440 ## 许可协议 本项目仅供学习和研究使用,请尊重原始游戏版权。