作者Append (鸦片)
看板Rockman
标题[心得] RXCM 武器FM转换复制的原理
时间Tue May 26 10:33:21 2020
# 武器-FM转换的原理
在
#1M0UEvEr (Rockman) 我们有介绍过武器-FM的转换,
大致上就是,FM列表有一百个栏位,
然而用手动整理可以发现底下多出了第101格,
而且这一格的内容随着武器列表的第一格的内容,有一一对应的关系。
详细的过程请参考上面那篇文章。
在这个过程中,玩家很容易会发现,空格是真的有意义的。
游戏真的有记得道具栏有哪些格子是空的。
实际上去看记忆体,每个空格是用4个Byte,
FM的栏位总共是400个Byte的记忆体;
紧接着就是武器的栏位,相同的每个空格都是用4个Byte。
因此,FM的第101格,刚好就会指向武器栏的前4个Byte。
经过研究,GC版的储存方式和PS2版有一些微妙的差异。
GC 物品种类 现有个数 已装个数 00
PS2 物品种类 00 现有个数 已装个数
# 武器复制的原理
如果你的FM栏位第一格是「雷防盾两张」
而且目前身上「已经有人装了一个雷防盾」
GC版中,记忆体的部份就会长的像
2F 02 01 00
2F是雷防盾
02是现在有两张
01是已经有人装了一张(所以你卖掉东西的时候这格子会显示0,不会不见)
00目前没看出来可以干嘛 似乎不会变成其他数字
於是 当你如果试着要装备上「其中一张雷防盾」
这四个byte就会变成
2F 01 02 00
可以看到第二格会-1 第三格会+1
如果现在身上是0个,那麽这个格子就会变成灰色,没有办法装备。
如果把这格雷防盾手动整理移到第101格,
2F 01 02 00 的情况下,
那麽武器栏的第一格就会把2F当成艾克斯炮MK3;
01是现有1个,02是已经有装备了两个(虽然是假的)
选择装上武器,武器栏的第一格会变成
2F 00 03 00
这时候如果用FM选单把他移开,武器栏第一格就会是空的。
然後,用其他武器替换掉当前装备的X炮MK3,
换下来的X炮MK3找不到现有的
2F xx 01 00 的格子 (因为刚才被我们搬走了)
这种时候游戏的行为会选择 "生出一个这样的格子",
位置会是武器栏最上面的空位。
於是第一格武器会变成
2F 01 00 00
好,把它搬到第二格,把第一格空出来,
然後把刚才搬去FM列表那格搬到101格,也就是武器栏的第一格──
这样武器栏记忆体应该会是
2F 00 03 00 (第一格)
2F 01 00 00 (第二格)
所以会分别显示成「
0个X炮MK3」和「
1个X炮MK3」。
如果这时候想要装上X炮MK3,第一格会是灰色的,但是第二格会是亮的。
选择第二格装上,他会让 "同样都是X炮MK3的格子都执行一样的操作"
所以第二格会变成
2F 00 01 00,情况看起来很正常;
第一格原本是
2F 00 03 00,
第二个byte-1,第三个byte+1,所以他会变成
2F FF 04 00
也就是说,系统会判定第一格变成255个X炮MK3,这就是武器的复制。
除了武器的复制以外,FM的复制概念也是很接近的。
基本上也是透过"两格重复的物品"的行为来复制。
# 修改相关
如果是用模拟器搭配Cheat Engine,理解资料之後可以简单的直接搜寻 Array of Bytes
像是如果我知道FM的前三格分别是LE+100两张、LE+300一张、WE+5三张,
都没有人正在装备中:
我就能够预期他应该会对应到
GC版 01 02 00 00 02 01 00 00 05 03 00 00
PS2版 01 00 02 00 02 00 01 00 05 00 03 00
连续准备好8~16个byte的内容就比较有把握找到;
如果没有把握「已经装备了多少个」,那麽可以打??代替。
不过这边有比较需要注意的是,
CheatEngine如果要搜寻Dolphin的记忆体,
需要去 Edit->Settings->Scan Settings 里面勾选搜寻 MEM_MAPPED 区域。
最後,
哪个FM或哪个武器分别对应到什麽数值,
请参考列表
https://reurl.cc/D9Ydmd
列表中同时有附上一些PS2和GC专用的「无名FM」效果,会在下一篇中作介绍。
--
███◣ ◢██◣ ◢██◣ █ ◢█ ◣ ◢ ◢██◣ ◣ █
█ ██ █ ██ █ ██ █◢█◤ █◣◢█ █ ██ █◣ █
█ ██ █ ██ █ ██◤ ████ █ ██ ██◣█ @ ptt.cc
███◤ █ ██ █ ██◣ █◥◤█ ████ ████
█◥█◣ █ ██ █ ██ █◥█◣ █ █ █ ██ █◥██ 鸦片(Append)
█ ◥█ ◥██◤ ◥██◤ █ ◥█ █ █ █ ██ █ ◥█twitch.tv/append
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.135.48.54 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Rockman/M.1590460405.A.F74.html