Skip to content

Repository files navigation

DivaScanner — Project DIVA Mod Conflict Scanner

License Version

⚠️ Upgrading from v0.1.0-beta

v0.1.0-beta could corrupt your mod files when repairing. If you ever ran a repair with it, follow the check-and-restore steps in the v0.2.0-beta release notes before using this version. v0.2.0-beta cannot cause that damage.

DivaScanner is a mod conflict scanner for Project DIVA. It scans a mods folder, detects ID collisions between mods (ObjectSet / Object / Texture / Sprite / Aet), and can resolve them with a single click.


Features

  • Fast scanning — parses _db.bin files and reports conflicts across all five ID types
  • Safe repair — assigns a free ID and rewrites the file, one conflict at a time or in bulk
  • Refuses mismatched writes — a repair is rejected outright when the target file is not the kind that ID lives in, leaving the file byte-for-byte untouched
  • Verified writes with rollback — every saved file is reloaded and checked; on failure it is restored from its .bak and an error is reported, so a repair can never silently break a file
  • Incremental rescans — unchanged files are reused from the cache, which is invalidated automatically whenever the parser changes
  • Multi-language UI — Chinese (Simplified/Traditional), English, Japanese, Korean, French, Spanish, Italian
  • Multi-select — checkbox selection in the tree, with the same ID cascading automatically
  • Ignore management — ignore a whole mod or a single conflict; the choice is persisted
  • config.toml aware — reads each mod's config.toml to detect the disabled state

Download

  1. Go to the Releases page
  2. Download the latest DivaScanner-vX.X.X-beta.zip
  3. Extract anywhere and run DivaScanner.WinForms.exeno installation required

Requirement: .NET 8 Desktop Runtime (Windows) must be installed. Windows will tell you if it is missing when you start the program.


Usage

  1. Click Browse... and select your Project DIVA Mods folder
  2. Click Start Scan and wait for it to finish
  3. The tree on the left lists every mod that takes part in a conflict:
    • Expand a mod to see the conflicting IDs and the opposing mods
    • Use the checkboxes to select several conflicts for a bulk action
    • Conflicts sharing the same (Type, ID) are selected together automatically
  4. Right-click a conflict node to:
    • Repair this mod — change this mod's ID and leave the opponent alone
    • Repair opponent — change the other mod's ID instead
    • Ignore this conflict — skip it for now
  5. The toolbar offers Bulk Repair and Bulk Ignore for multi-selection
  6. Click Generate Report to write mod_id_report.txt into the mods folder

Every repair backs the file up as <name>.bak before the first change, so the original is always recoverable.


Options

Option Meaning
☑ Include disabled mods Also scan mods whose config.toml says enabled = false
☑ Show ignored Show mods and conflicts that have been ignored (greyed out)
🌐 Expand all / Collapse all Expand or collapse every mod node at once

Interface languages

Language Code How to switch
简体中文 ZhCn Default
繁體中文 ZhTw Language dropdown
English EnUs Language dropdown
日本語 JaJp Language dropdown
한국어 KoKr Language dropdown
Français FrFr Language dropdown
Español EsEs Language dropdown
Italiano ItIt Language dropdown

Built with

  • .NET 8 / C# 12
  • Windows Forms
  • MikuMikuLibrary — reads and writes the Project DIVA _db.bin formats

Building

git clone https://github.com/yydfh33/DivaScanner.git
cd DivaScanner
dotnet build -c Release

Output lands in bin/Release/net8.0-windows/.


License

MIT — see LICENSE.

Third-party components and their licenses are listed in THIRD-PARTY-NOTICES.md.


Feedback

Bugs and feature requests are welcome on the Issues page.



中文说明

⚠️ 从 v0.1.0-beta 升级

v0.1.0-beta 在执行修复时可能损毁 mod 文件。如果你曾用它修复过,请先按 v0.2.0-beta 发布说明 中的自查与恢复步骤处理,再使用本版本。v0.2.0-beta 不会再造成该损坏。

DivaScanner 是专为 Project DIVA 制作的 Mod 冲突扫描工具,能够扫描 Mod 目录,检测不同 Mod 之间的 ID 冲突(ObjectSet / Object / Texture / Sprite / Aet),并提供一键修复功能。


功能特性

  • 快速扫描 — 解析 _db.bin 文件,识别全部 5 种 ID 类型的冲突
  • 安全修复 — 自动分配空闲 ID 并替换,支持单个修复或批量修复
  • 拒绝类型不符的写入 — 目标文件若不是该 ID 所属的类型,修复会被直接拒绝,文件一字节不变
  • 写入校验与回滚 — 每次保存后都会重新载入检查,失败则从 .bak 恢复并报错,修复不会悄无声息地 弄坏文件
  • 增量重扫 — 未改动的文件复用缓存;解析器一旦变更,缓存自动失效
  • 多语言界面 — 中文(简/繁)、英文、日文、韩文、法文、西班牙文、意大利文
  • 多选操作 — TreeView 复选框支持批量勾选,相同 ID 自动级联选中
  • 忽略管理 — 可忽略特定 Mod 或单个冲突,配置持久化保存
  • config.toml 识别 — 自动读取 Mod 目录下的 config.toml 以识别禁用状态

下载与安装

  1. 前往 Releases 页面
  2. 下载最新版 DivaScanner-vX.X.X-beta.zip
  3. 解压到任意目录,运行 DivaScanner.WinForms.exe 即可,无需安装

依赖:需要安装 .NET 8 Desktop Runtime (Windows)。 若未安装,启动时 Windows 会给出提示。


使用说明

  1. 点击 浏览... 选择你的 Project DIVA Mods 目录
  2. 点击 开始扫描,等待扫描完成
  3. 左侧树状列表将显示所有存在冲突的 Mod:
    • 展开 Mod 节点可查看具体冲突的 ID 和对手 Mod
    • 勾选复选框可选中多个冲突进行批量操作
    • 相同 (Type, ID) 的冲突会自动级联选中
  4. 右键点击冲突节点可:
    • 修复自身 — 修改当前 Mod 的 ID,保留对手不变
    • 修复对手 — 修改对手 Mod 的 ID
    • 忽略此冲突 — 暂时跳过该冲突
  5. 工具栏提供 批量修复 / 批量忽略 按钮,支持多选操作
  6. 点击 生成报告 可导出 mod_id_report.txt 到 Mods 目录

每次修复前都会把文件备份为 <名称>.bak(仅首次),原始文件始终可恢复。


选项说明

选项 说明
☑ 含禁用Mod 勾选后扫描包含 config.tomlenabled = false 的 Mod
☑ 显示忽略项 勾选后显示已忽略的 Mod / 冲突(灰色显示)
🌐 全部展开 / 全部折叠 快速展开或折叠所有 Mod 节点

技术栈

  • .NET 8 / C# 12
  • Windows Forms
  • MikuMikuLibrary — 用于读写 Project DIVA 的 _db.bin 文件格式

编译(开发者)

git clone https://github.com/yydfh33/DivaScanner.git
cd DivaScanner
dotnet build -c Release

输出位于 bin/Release/net8.0-windows/


许可证

MIT — 详见 LICENSE

第三方组件及其授权见 THIRD-PARTY-NOTICES.md


问题反馈

如有 Bug 或功能建议,欢迎前往 Issues 提交。

About

Project DIVA Mod Conflict Scanner

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages