snes :fe4 rom hack for the graphic and animate #1
生活随笔
收集整理的這篇文章主要介紹了
snes :fe4 rom hack for the graphic and animate #1
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本學期學習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肯定是存放某些數據的地址(這是廢話……),應該說是對我要的目標又作用的地址。
??? ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ? ?????
是從昨天開始的,不過因為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肯定是存放某些數據的地址(這是廢話……),應該說是對我要的目標又作用的地址。
??? ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ? ?????
總結
以上是生活随笔為你收集整理的snes :fe4 rom hack for the graphic and animate #1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Unity Shader graph 毒
- 下一篇: 探讨Python在开发中的重要性!