tata2007
孤独之狼
级别: 火花会员
编号: 88604
精华: 6
发帖: 420
威望: 30 点
配偶: 单身
火 花 币: 20592 HHB
注册时间:2008-05-13
最后登陆:2024-09-26
|
你指的是这段话么?
...以"圣火法拉"为例修改,其原始属性的武器说明项是BA AE ,是会出错的地址,我就在已有的地址之间找了块空地:00 18 2D DA ( 对应DA AB ),...
这段话说的是rom地址与指针之间的转换,前面的是rom地址,后面括号里面的是指针。SFC游戏在运行的过程中需要从rom中读取数据,而这就需要知道数据保存在rom的什么位置,为了达到这个目的就需要用到指针,这个过程相信你应该可以理解。 SFC rom是以bank为单位的,如果是在bank内部转移,只需要使用2字节指针,如果超出一个bank,就要用到3字节指针。在上面的一段话里面用到的是2字节指针,也就是数据在同一个bank内,因此在换算指针的时候完全不必考虑前面的那个00 18,只需要换算后面的2D DA就行了。 1、假设rom地址的2个低字节数值是xxxx,对于LoROM有一个规律:如果xxxx<8000,那么就要xxxx+8000;否则不变。 776就是一个LoROM,根据这个规律,上面的2D DA转换之后就是2DDA+8000=ADDA。 2、需要注意的事,776 rom前面还有一个200的header,而指针里面是不包含这个的,因此前面的这个结果还要减去一个200,也就是ADDA-200=ABDA,这个就是我们需要的指针了。 3、现在我们只需要将这个指针写入rom就行了,只要你学过一点微机原理什么的你就会明白低字节在前高字节在后,因此是写入的时候应当将AB DA倒过来也就是DA AB了。 好了,罗嗦了这么一大堆,相信你应该看明白了吧?
|
圣战系谱TS改造版
|
[4 楼]
|
Posted:2008-05-25 00:28| |
顶端
| |