我想问EC修改器搜索到的数据和游戏中的固定数据有什么关系?
EC搜索到的数据只有一小部分是ROM的固定数据(机器码),大部分是可变内存数据,在游戏运行时才会生效。我们用EC修改游戏时发现的也是内存变化数据,而WinHex软件打开的是静态程序数据的ROM,所以地址完全不同。
有两种基本方法可以找到静态数据并修改ROM:
1怀疑法,比如设备基本属性的修改,这类数据是固定的,通常存储在ROM中。问题是这个设备在ROM中的排列占用了好几个字节。比如一件装备的属性是:攻3防2敏捷11。ROM中的数据是怎样排列的?这个要靠我们去猜测。如果设备数据的最大值是255,那么排列很可能是03020B。如果最大值是65535,可能的排列是0300 0200 0B00。用WinHex软件打开游戏ROM找到我们怀疑的数据串,尝试修改。但有些游戏的基本属性虽然是固定的,但可能是根据复杂程序代码的变化而得到的,所以固定的数据可能比较分散,基本无法猜测。
2.用调节器加载程序修改。这就需要学习一些特殊的编程语言。你可以先用EC找出要修改的数据的相关地址,然后用调节器跟踪它的地址断点,看看是哪个程序代码在修改这个数据,再尝试修改它的程序。确认其可行性后,用WinHex软件打开游戏ROM,找到与截获的程序代码一致的地方,修改保存。