snes :fe4 rom hack for the graphic and animate #1

类别:编程语言 点击:0 评论:0 推荐:
本学期学习asm,加上上学期一个fe4pc的需要,所以决定干fe4 rom hack。

是从昨天开始的,不过因为debugger使用不熟练的原因,所以今天又把昨天干的重复了一遍,并作了些记录。
由于个人习惯的原因,希望不会给大家带来阅读的困难……

首先我使用的是znes1.7版,所以不能dump出缓存,按照前人的经验,我从战斗画面开始读代码(就是一开始男主角站在那颗树上攻击第一个斧兵的动画)

废话少说,开始读:(这里写下的只是代码地址和我的理解,一些不懂的东西省略或者用??表示)

这里首先程序进行了DMA#0的一些设置:
   
Source Address=$D204;        我认为这个地址应该对应着ROM中的某段地址,但是由于对DMA知识和snes硬                                                         件知识的缺乏,所以还不是很了解
DMA reading size=$78;            是120个字节

最重要的是这两个,还有一个Source Bank Address ,我理解应该是内存中的地址
Source Bank Address=$7F;    而且这个地址在后面出现了很多次,有很多命令对7FE4XX的数据进行了操作

在进行了几次程序的跳转后:
8081BD~D4-〉80BF04-〉95C368-〉95C3C2-〉跳回80BF04-〉969FD7-〉跳回80BF04-〉96D5DB
-〉80BF04-〉95A086。

中间可能有疏漏,这是没办法的事啊,代码很多……

接下来这段,可能是对这些地址里面的数据进行操作,因为对7FE441~7FE4XX进行操作,但是还没来得及分析代码的意义。

又是子程序的跳转:

80BF56-〉95A086-〉95A0BD-〉跳回80BF56-〉96EB1E-〉跳回80BF56-〉80A34F-〉80807C

只有其中有一段我理解了是,7FEC70~7FEC7A 全部被赋值为0,我猜想是不是为rom里面的数据初始化空间。(好像有点问题,应该不是这样初始化吧……)

然后得到了:Source Address=1C00
                        DMA reading size=20
                        Source Address=0100
                        Platte=0000;
具体作用,还不是很了解,要找点计算机结构的书看看,了解一下DMA到底是么东西!!如果有大虾了解,恳请赐教阿~~~~!!

接下来,又出现了个DMA,不过这次的是# 7
然后由设置了:Source Address=E1F6
                        DMA reading size=??
                        Source Bank  Address=7F
                        Platte=??
反正在内存中,7F肯定是存放某些数据的地址(这是废话……),应该说是对我要的目标又作用的地址。
                                                      

本文地址:http://com.8s8s.com/it/it22477.htm