终于是熬到了新典发布,爽玩了几把,但太久没玩stg已经生疏了,被红师傅吊打,官方也推出了练习模式,但我想走正常流程看到个好结局,闲来无事,ce启动~
不想跟流程的可以直接跳到文末下载做好的CT表(需要电脑已安装ce软件),想看教程可前往
# 修改方法小节
操作环境
- windows 11 (能运行起来ce和游戏即可)
- Cheat Engine 7.7 (版本不影响什么,基本上同大版本内都可以;下称CE)
- 东方红魔乡:新典 正式版 (如果版本不同也可以,但是地址偏移量等信息和教程会不一样)
前情提要与踩坑
我之前写过一篇幕华祭修改器教程的文章,当时给游戏改残机走的常规套路:搜数值 → 指针扫描找静态基址 → 做成CT表。在这个游戏发售后,我立马玩了一会,结果在几次没打过第三面后打开了ce(
最开始是用"未知初始值 → 减少的数值 → 变动的数值"的方式去筛选数据,但哪怕开的是全部类型,残机数和Bomb数最后是一个没筛出来,反而是无意间发现一个随着死亡数增加的一个计数变量。跟随变量去查询,发现在这一段上下文好像是和死亡处理有关系,我尝试给mov填nop,结果试了好几个,填完后回到游戏一死亡就卡死亡动画不会复活了(不过此时按下x触发bomb倒是可以救活)。最后折腾了好一会没结果,那时候已经很晚了就休息去了,直到第二天深入研究才发现,变量存放的没这么简单。
复盘之后发现当晚的失败原因特别简单,但也是踩了个坑:
这游戏的残机数和Bomb数是两个紧挨着的单字节(byte),不是常见的四字节。 四字节视角下,残机这个位置读出来的是把旁边数据打包在一起的 0x43000304 这种值,永远不等于HUD上显示的数字,所以精确值扫描第一轮就把真身排除在候选外了。这一作的内存布局非常紧凑(猜测可能是原版的习惯,没研究过),残机和Bomb两个字节还是紧挨着存放的。
游戏修改方法
方法一:直接用CT表
ct文件在文章末尾链接
0、在下载链接内包含CE软件v7.7本体+ce汉化包+CT表,可按网络教程安装好ce与其汉化后再往下走;如已经安装了其他版本CE也可以直接使用
1、启动游戏,可以停留在主界面
2、打开CE,选择进程“th06nc.exe”
3、在CE的 文件-加载 选择ct文件进行加载
4、进入游戏关卡,ce的地址列表会出现对应的值,可以手动修改值也可以在前面打勾以锁定值


方法二:自行扫描数值
适用于想自己研究,或者游戏更新而本文ct没及时更新情况下可以自己探索
按下面步骤筛选:
- 在游戏设置内将默认残机改成最大值5,便于后面查询搜索
- 进入关卡后暂停,扫描类型选
未知初始值,值类型字节,点击首次扫描,等待扫描文完毕 - 游戏内死亡一次并复活,暂停游戏
- 回到CE,在下一次扫描选
数值减小了,并在上方填入1 - 持续2、3步骤约3-4次,在彻底死亡续关之前大概率可以扫描到只剩一个的唯一地址。不唯一也没事,寻找列表中是否有
th06nc.exe+开头的地址,大概率是目标地址。 - 双击将其添加到下方地址列表中,修改它的值,观察游戏内是否跟随变化,即为成功。并且该地址不需要进行指针扫描,本身存放在静态区,重开关卡、游戏均不会变化。(更新版本后有概率改变,需要重新查找)
- 如需寻找Bomb的值,也可以按“字节”类型如上方式查找;而Power则是二字节。如果需要找的值不确定值类型,可以改成
全部,但筛选难度较大耗时久,最终同样可以找到需要的值。


已知地址速查表
| 项目 | 地址 | 类型 | 说明 |
|---|---|---|---|
| 残机数 | th06nc.exe+4FF0F0 | byte | 锁定=无限复活 |
| Bomb数 | th06nc.exe+4FF0F1 | byte | 锁定=无限炸弹 |
| Power | th06nc.exe+4F1E88 | word | 满值128,死亡掉16下限8 |
| 死亡统计 | th06nc.exe+4F1E60 | dword | 仅结算记录用,不影响游戏 |
结尾
在研究时发现状态区里除了残机/Bomb还有一整套存档式结构:+4FF0CC 死亡数、+4FF0D4 存档时间戳、+4FF0DC 续关数,后面紧跟着CLRD/PSCR开头的记录,感兴趣的可以自己翻翻
如果游戏后续更新导致地址失效,按方法二的差分流程很容易就可以重新定位,也欢迎在文章下留言
CT文件下载(残机+Bomb+Power锁定,已附作者信息):
https://yanhy.lanzouu.com/b0341nbera 密码:c86k

评论