简体中文 繁體中文 English Deutsch 한국 사람 بالعربية TÜRKÇE português คนไทย Français Japanese

站内搜索

搜索
AI 风月

活动公告

03-01 22:34
03-01 19:23
通知:本站资源由网友上传分享,如有违规等问题请到版务模块进行投诉,资源失效请在帖子内回复要求补档,会尽快处理!
10-23 09:31

CARD MAKER maimaiDX Opt资源读取问题的探究与修复方法

4

主题

18

科技点

61

积分

太初窥星

积分
61
发表于 2025-8-5 17:22:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x

本帖最后由 SkyDynamic 于 2025-8-5 17:25 编辑

用于修复SDED HDD无法读取maimai的opt资源文件

原因分析

通过逆向Assembly-CSharp.dll可知, 游戏初始化的时候会执行CardMaker.MAI.MaiContext#Awake, 然后执行AssetBundleDB#initialize进行AssetsBundleDB初始化, 但是CardMaker.Common.AssetBundleDB#initialize方法有两种传参方式:

  • void initialize(AssetBundleDB.Title title)
  • void initialize(AssetBundleDB.Title title, List optionDirectories)

第一个则是只初始化StreamingAssets\assets_mai内的资源

第二个则是传入opt的Path, 在完成StreamingAssets\assets_mai初始化后进行添加opt的AssetsBundle

但是CardMaker.MAI.MaiContext#Awake使用的是前者, 而在后续也没有进行任何的资源添加, 导致后续获取资源的时候一直为null

修复方法

将资源文件重新进行索引

如果对与assets_mai文件夹进行过研究, 就会发现除了ui_cardxxxx_xxxx之外, 还有会有个assets_mai.bytes

而这个bytes文件则为索引了资源文件的文件

通过Hxd HexEditor可以知道这个文件是一个以@.......为文件头的文件并不是任何的传统意义上的文本, 也不是什么数据库, 现有的工具无法正常读取

在逆向CM之后, 可以知道这个实际上是一个CM自己维护的结构文件, 那么我们就可以进行读取和修改了.

本贴会提供两个py脚本进行参考

使用方法:

  • copy_assets.py: 放到option目录下进行执行, 会自动读取Mai的资源文件并且复制到StreamingAssets\assets_mai
  • cardmaker_mai_assets_builder.py: 放到StreamingAssets\assets_mai下执行, 会自动读取该目录下的所有资源文件, 然后会生成一个新的assets_mai_modify.bytes文件, 该文件就是重新索引资源后的资源结构文件, 将原本的备份后, 将该文件命名为assets_mai.bytes就可以正常使用CM

脚本源码: https://gist.github.com/SkyDynamic/8715376f0a984c52f3638e9655ecabf6

使用mod

我基于上述编写了一个BepInEX Mod进行修复

CardMaker.MAI.MaiContext#Awake执行之后, 使用AssetBundleDB#appendAssetsBundleSet方法将opt的资源重新进行正确的添加, 游戏就能正常读取资源文件了

mod源码仓库: https://github.com/SkyDynamic/cm-mai-resource-fix

评分

参与人数 1成就点 +2 星票 +1 收起 理由
+ 2 + 1 那很好了

查看全部评分

回复

使用道具 举报

4

主题

18

科技点

61

积分

太初窥星

积分
61
 楼主| 发表于 2025-8-5 17:26:56 | 显示全部楼层
本帖最后由 SkyDynamic 于 2025-8-5 20:55 编辑

带有mod的segatool
segatools_sded_with_maimai_fix_mod.zip
文件大小: 17.16 MB • 上传时间: 2025-8-5 20:55
下载次数: 1 • 每日限制: [max]次 • 今日剩余:
NRI

0

主题

33

科技点

39

积分

太初窥星

积分
39
发表于 2025-8-5 19:10:07 | 显示全部楼层
温馨提示:看帖回帖是一种美德,您的每一次发帖、回帖都是对论坛最大的支持,谢谢! [这是默认签名,点我更换签名]
SunJu_FaceMall

3万

主题

361

科技点

3万

积分

白金月票

碾压王

积分
32697

立华奏

发表于 2025-8-6 08:59:40 | 显示全部楼层
好厉害,不过你要发附件的话就不能用markdown格式了,纯文字内容可以重新编排一下。

点评

好哦  详情 回复 发表于 2025-8-6 11:38
「七転び八起き(ななころびやおき)」

4

主题

18

科技点

61

积分

太初窥星

积分
61
 楼主| 发表于 2025-8-6 11:38:54 来自手机 | 显示全部楼层
威震华夏关云长 发表于 2025-8-6 08:59
好厉害,不过你要发附件的话就不能用markdown格式了,纯文字内容可以重新编排一下。 ...

好哦
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

手机版|联系我们|小黑屋|TG频道|RSS |网站地图

Powered by Pixtech

© 2025-2026 Pixtech Team.

>