5.从铸剑物语3武器修改说起:
其实,铸剑物语3的武器修改,早在@dashash13 的时代就已经研究透了,并且一直都有人在铸吧反复提及,包括精品区那个内存机制研究的贴子,这也是楼主一直没有就这方面发贴的原因。
不过,鉴于gba修改方面的确仍有不少小白,楼主就稍微再说一说铸3武器的修改。不过,这个贴子将不着重于金手指代码的发布,而会谈一谈与这些金手指有关的内容。
首先,修改铸三武器需要知道一件事情:铸三的主人公身上最多只能携带30把武器。对此事有疑问的话不妨动手实验实验,看身上带满30把武器后是否还能从武器屋购入新铸模

知道这一事实后,我们还需要知道另一个事实:在各种游戏中,我们通常都会遇到数据,并且,在许多游戏中,同类型的数据往往是以相同规律存储的。
举个例子,口袋妖怪系列游戏中,玩家可以携带6只精灵。在计算机看来,这6只精灵就是6组数据,每一组数据包括了精灵的种类,等级,hp等信息。并且,这些数据的存储是十分规律的。这种规律体现在两个方面:一方面,假设第一只精灵a的种类数据后面的是a的等级数据,那么第二只精灵b的种类数据后面就也是b的等级数据;另一方面,假如第一只精灵的种类数据后面隔17个地址是第二个精灵的种类数据,那么第一只精灵的hp数据后面隔17个地址就也是第二个精灵的hp地址。
明白这一点的重要意义在于,假如你知道了第一只精灵的hp修改金手指,又知道了两只精灵的数据间隔是17,那么你马上就能知道这6只精灵所有的hp修改金手指。不仅如此,你还可以猜到,确定一个精灵的各方面属性的,就是这17个数据,从而通过简单的实验方法,找出修改精灵种类,等级等其他方面的金手指。因为每隔17个数据,就会对应到下一只精灵的同种数据,因此这17个数据,就是一只精灵的所有数据。(当然,如果hp数据不是一只精灵在计算机存储中的第一个属性,那么两个hp数据之间夹着的就不是一只精灵完整的数据,而是第一只精灵排在hp后面的属性与第二只精灵排在hp前的属性)
如果以上两点明白后,我们就不难理解,铸剑物语3的武器修改金手指的相关内容了:
首先,请参考
https://tieba.baidu.com/p/3344275836这个贴子里的“第一个武器”系列金手指(代码格式为raw码),注意看到这些金手指之间明显的关联性:地址仅仅相差1。这表明武器这些数据在存储时是挨着的。
之后,注意该贴1L最后一句话“地址+1C(hex)为下一个武器的地址",这句话相当于我上面举的口袋妖怪的那个例子的17。
楼主决定说上面那些基本就够了,考虑考虑的话,这里基本就能明白(因为本身其实也不难)。不过楼主最后补充两点:
1.玩家在铸3中的武器存储是类似于口袋妖怪的。唯一的一点区别在于,口袋妖怪中,如果玩家将一个pm放入电脑,那么第二个pm的数据会自动进入第一个pm的位置,其他的类推。
区分这一点的意义在于,假设玩家一开始,背包里第一只pm是a,第二只是b,玩家使用一条金手指,让第一只pm的hp变为999,此时a的hp变为999。当玩家把a放入电脑时,b的hp将变为999。
但是,在铸剑物语3中,这样的事情却不会发生。假设玩家在游戏流程中获得的第一把剑为a,第二把剑为b。玩家使用一条金手指,使第一把武器的tec变为255。此时,a的tec变为255。但是,当玩家将a剑卖了之后,b剑的tec并不会变为255。