Commit Graph
38 Commits
Author SHA1 Message Date
chinosk 318107b6af Merge pull request '解锁技能卡特效、PC端模拟陀螺仪、修复缺字bug、修复名片bug' (#7) from chihya72/gkms-localify-dmm:main into main
Reviewed-on: https://git.chinosk6.cn/chinosk/gkms-localify-dmm/pulls/7
2026-09-17 11:31:26 +08:00
chihya72 9462265bca fix: restore gyro and meishi fixes for v3.5.0 2026-09-17 09:33:51 +08:00
chihya72 d372b0d22c bump version to v3.5.0 2026-09-09 02:01:28 +08:00
chihya72andClaude Fable 5.1 860f02d32a feat: PC 版 Live/拍摄陀螺仪模拟(右键拖动 + 小键盘)
Windows 没有陀螺仪,Live 全景拍摄的陀螺仪按钮在 DMM 版被禁用。
新增 enableGyroEmu 开关(GUI 摄像机设置,含灵敏度与轴反转),打开后
按住鼠标右键拖动转动视角,小键盘 4/6 8/2 左右上下、7/9 翻滚、5 复位。

实现分三层,每层都有过失败尝试,原因记录在注释里:
- GyroIcall:改写 il2cpp icall 包装里的 static 缓存指针,向
  SystemInfo.IsGyroAvailable / Gyroscope.getEnabled/setEnabled/
  attitude/gravity 提供假读数。不能 hook 原生 icall——Windows 上它们是
  return 常量的桩,被链接器 ICF 合并进 IsDebugBuild 等无关函数,改一个
  等于改全局(实测 [Debug] 变 True、开场黑屏);也不能 hook 托管包装——
  PC 版 MSVC 把它们内联进了调用方,实测一次不被调用。
- GyroForceInit:PC 版把 IsPanoramaGyroDisabledOnPlatform() 内联成
  常量 true,CampusGyroController 根本不会创建,IsGyroReady 永远 false。
  在 LivePanoramaCameraManager.LateUpdate 里自己 new 出控制器和 VLGyro,
  按 3.3.0 布局置字段后复用游戏自己的 ResetRotation。
- 两个方法体足够大、实测会被调用的托管 hook 放开 UI 闸门。

姿态换算来自反汇编:gyroRotationRaw = base ⊗ (-a.x, -a.y, a.z, a.w),
相对旋转里 base 被消掉,因此 attitude 直接编码相机欧拉角。

顺带:Windows 版日志同步写 gakumas-local/log.txt,便于无控制台排查。

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-08 17:17:40 +08:00
chihya72andClaude Fable 5.1 937c45ba8c fix: 汉化后特效大字随机缺字
游戏的 TMP_FontAsset 是全局共享的 Dynamic 资产,特效大字与普通 UI
共用同一张 2048² 图集,单页只装约 735 个字形,主页几屏就会溢出到
第 1 页。第 1 页字形拿到第二个材质进入 meshInfo[1],而特效文字组件
只提交 meshInfo[0],于是这些字消失(保留 advance,表现为空格)。

修法(UpdateFont):
- 替换字体时把图集抬到 4096²(约 2900 字形),开启多图集;
- 用 ClearFontAssetData(false) 代替 UpdateFontAssetData,后者会把
  原字符表全集重新加回来白占第 0 页;
- 清空后广播 ON_FONT_PROPERTY_CHANGED,让已生成网格的文字重排,
  否则 ruby 等先排版的文字会拿着失效的图集坐标显示错字或空白;
- 以 (fontAsset 地址, InstanceID, sourceFont InstanceID) 追踪资产,
  只有真正新资产才重建;Resources.UnloadUnusedAssets 回收替换字体
  后重新赋值即可,不再清空图集。
- 图集溢出到第 1 页时记录错误日志,便于观察天花板。

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-08 16:17:05 +08:00
chihya72andClaude Opus 5 5af7956318 feat: 未拥有技能卡皮肤时也播放该卡的 cut-in 演出
考试内所有皮肤表现都由 ExamCardData.ProduceCardSkinId 派生:
PrePlayCardAsync -> PlayCutInAsync(skinId) -> TryGetCutInParams
-> mov_{id}_skillcard.usm + cutInType,以及 ExamCardButtonImage
-> GetThumbnailLoopMovieName(skinId) 的手牌循环缩略图。

于是在该 getter 上,把没挂皮肤的卡按 produceCardId 补成主表里
CutInType 最高的皮肤 id,一个 hook 覆盖 cut-in 与手牌缩略图。
映射表从 ProduceCardSkinMaster 惰性构建一次。

跟随 dbgMode 生效,不额外加配置项和 GUI 开关。

已知代价:该 getter 另有 ExamDataSerializeData 与 ExamParameterModel
两个读取方,伪造的 skinId 会进考试状态序列化和 play log,
竞赛回放会随之上传。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 17:16:50 +08:00
chinosk 098a41459e Merge pull request 'main' (#6) from chihya72/gkms-localify-dmm:main into main
Reviewed-on: https://git.chinosk6.cn/chinosk/gkms-localify-dmm/pulls/6
2026-08-06 18:13:02 +08:00
chihya72 854c13e26a merge upstream 2026-08-06 18:11:55 +08:00
chihya72 3595913448 bump version to v3.4.1 2026-08-06 18:08:52 +08:00
chinosk a529342d46 Merge pull request 'main' (#5) from chihya72/gkms-localify-dmm:main into main
Reviewed-on: https://git.chinosk6.cn/chinosk/gkms-localify-dmm/pulls/5
2026-08-06 14:58:41 +08:00
chihya72 a74effabe7 修复dbgmode下歌词显示异常问题
进入 Live 时歌词默认显示(仅每个 Presenter 实例第一次设置时强制 true),
之后玩家手动开关原样透传,不再覆盖关闭操作
2026-08-06 02:11:55 +08:00
chihya72 f62d6f6529 移除 windowsPlatform.cpp 的非必要改动,聚焦相机修复 2026-08-06 02:00:41 +08:00
chihya72 fa139a81e5 merge upstream 2026-08-06 01:57:08 +08:00
chihya72 c12073e3c3 修复 Unity 6 下自由相机失效与崩溃
- 新增 CinemachineBrain.PushStateToUnityCamera hook,在状态层接管相机
  (RawPosition/RawOrientation/修正项/FOV),不再依赖 Transform icall
- 相机/Transform 改从游戏自身调用被动捕获,避免 UnityResolve managed
  Invoke 在 Unity 6 下返回无效指针导致空指针崩溃
- 新增 C++ LookRotation 计算,移除 Internal_LookAt_Injected 依赖
- 相机窗口查找改为按进程 ID 匹配 UnityWndClass,修复输入失效
- CheckNewY NaN 防护;CalcFirstPersonPosition 归一化修正
2026-08-06 01:53:44 +08:00
chinosk 22b62a3a09 Merge pull request '拍照页服装解锁 + 修复 SP 标记' (#4) from chihya72/gkms-localify-dmm:main into main
Reviewed-on: https://git.chinosk6.cn/chinosk/gkms-localify-dmm/pulls/4
2026-08-05 12:03:20 +08:00
chihya72andClaude Opus 5 66bfb38fba 拍照页服装解锁 + 修复 SP 标记
拍照(Photography)页支持解锁服装:
- 新增 UserDataCollection_GetAll hook,把主表缺失的服装/头部克隆成用户
  记录 Add 进集合本体。拍照页 CreateItemModels 读的是字典 Values 视图,
  走不到原有的 FindBy 路径,必须从集合本体补。
- 主表补充范围:CostumePhotoGroup 白名单 + 与基础服装共享 colorGroupId
  的异色变体 + 已过 ViewStartTime 的活动/商店服;未实装条目会黑屏卡死,
  按 ViewStartTime 跳过。
- 新增 PhotographyCostumeSettingData_GetCostumes/GetCostumeHeads,按角色
  从 IdolCardSkin 主表补齐卡面专属服装;get_IsDisabled 恒 false 取消置灰。

修复 UserCostumeCollection_FindBy 的共享泛型调用:改用运行时集合类型的
MethodInfo 并传入末尾隐藏参数。此前头部集合误用了服装集合的泛型上下文,
会在字典扩容时抛 ArrayTypeMismatchException,表现为换装页无限 Loading。

修复 ExamExtensions.ExchangeSpToNormal 被误改成调用原函数导致 SP 标记
失效。此 hook 必须原样返回传入的 type,调 _Orig 就是原版行为。

以上功能统一收到 dbgMode 门下,与 unlockAllLive 系列保持一致。

hook-reference/ 加入 .gitignore(IL2CPP 逆向工作目录,数 GB)。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-05 10:56:09 +08:00
chinosk 43da4e8313 fixed wide string adapt 2026-06-13 17:59:58 +08:00
chinosk 2d05557bdf Compatible with Unity 6 2026-06-13 15:26:36 +08:00
chinosk 0ea432c854 update handle 2026-06-11 21:33:45 +08:00
chinosk 2d809b4caa changed orig text dump to orig.json 2026-06-02 16:46:07 +08:00
chinosk a503243f13 Merge pull request '修复bug' (#3) from chihya72/gkms-localify-dmm:main into main
Reviewed-on: https://git.chinosk6.cn/chinosk/gkms-localify-dmm/pulls/3
2026-05-14 20:08:18 +08:00
pm chihya 345bcf4d89 修复bug 2026-05-13 23:16:49 +08:00
chinosk 5b3f736e62 Merge pull request '分割hook.cpp文件' (#2) from chihya72/gkms-localify-dmm:main into main
Reviewed-on: https://git.chinosk6.cn/chinosk/gkms-localify-dmm/pulls/2
2026-05-13 14:44:59 +08:00
pm chihya 0073e27982 分割hook.cpp文件 2026-05-10 16:26:42 +08:00
pm chihya 4d731ba32b 添加贴图替换功能 2026-05-09 20:52:51 +08:00
chinosk 3c4b16e03b add general text support by @chihya72 2026-03-19 17:37:51 +08:00
chinosk 3ea8efbaa0 bump version to 3.1.1. 2025-12-10 13:20:32 +08:00
chinosk c4b13a1392 bump version to 3.1.0 2025-06-06 03:10:57 +01:00
chinosk 7cc0c95e5c fixed live 2025-04-27 15:50:13 +01:00
chinosk d02864526c bump version 2025-03-22 11:58:27 +00:00
chinosk de9a3ede6d fixed duplicate space 2025-03-22 11:56:57 +00:00
chinosk 4be0798660 Add unlock window size. Fixed lyrics localify. 2025-03-22 10:56:41 +00:00
chinosk 1fc9e69ded bump version 2025-03-20 01:32:40 +00:00
chinosk 6950616cb1 restore 2025-03-20 01:27:20 +00:00
chinosk b38fabd65b fixed Use Remote ZIP Resource
fixed typo
2025-03-20 01:20:24 +00:00
chinosk 4a77a4fc06 Add version display 2025-03-18 12:03:52 +00:00
chinosk 3fe2d1775b update 2025-03-18 09:28:58 +00:00
chinosk 45338b40cd 初始适配 2025-03-17 21:53:55 +00:00