设为首页收藏本站喵玉殿官方微博

喵玉殿论坛 · 喵玉汉化组

 找回密码
 少女注册中
搜索
12
返回列表 发新帖
楼主: wz520

[编程算法] 【更新到1.40】THKMC - 东方STG专用改键工具(通过直接改EXE实现,非外挂)

[复制链接]
发表于 2020-5-19 09:01:38 | 显示全部楼层
9}~BU]5XSH9}8`]F@H4IYUX.png IJ}3TF@KBKA8K)~M(EO$OI0.png 大佬为什么改了键之后thprac就打不开th10了啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-20 21:15:47 | 显示全部楼层
Satlno 发表于 2020-5-19 09:01
大佬为什么改了键之后thprac就打不开th10了啊

似乎thprac是使用EXE文件的校验码(MD5、SHA1之类的,由于thprac似乎不开源所以不知道具体是什么算法)来识别游戏程序的。
这就意味着thprac不允许游戏程序文件被修改哪怕一个字节,否则就会不认识。但是THKMC就是通过修改游戏程序来达到改键目的的。
我个人建议的解决办法是让thprac作者修改一下识别游戏程序的算法,以更好地兼容已经打过其他补丁的游戏程序。直接使用EXE文件校验码太过严格,不仅不能识别用THKMC改过键的程序,打过任何其他补丁的游戏程序理论上也不能兼容。
像THKMC就是仅仅根据 EXE文件长度 和 PE文件头中的UNIX时间戳(dwTimestamp) 来判断是哪个游戏,而不是简单地使用整个EXE文件的校验码,这样既可以比较准确地判断游戏版本,还可以很好地兼容已经打过其他补丁的游戏程序。(对于两个不同的EXE文件,在没有人工干预的情况下,文件长度和dwTimestamp都相同的几率是很低的。虽然硬要人工干预(修改文件长度和dwTimestamp)也很简单,但是这么做有什么意义?)

【另外要注意】:在thkmc.ini文件里,纯数字代表的是扫描码而非数字键,你截图里写的Z=4,代表的是“将Z键原本的功能映射到扫描码为4的按键”上,而扫描码为4的按键是大键盘数字键3。如果你要映射到大键盘数字键4,你应该写 Z=VK4 或者 Z=5(因为大键盘数字键4的扫描码是5)。当然如果你本来就想映射到数字键3那就当我没说
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 少女注册中

本版积分规则

合作与事务联系|手机版|小黑屋|无图版|喵玉殿

GMT+8, 2020-7-7 23:00

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表