EMU618社区

 找回密码
 立即注册
搜索
查看: 731|回复: 10

[求助] 請教自行修改遊戲檔一些疑問

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑 . ?1 \9 m  {' b6 L6 M

& {( v3 z# v4 \& w0 |在此先感謝 管理員 疾風之狼 以下帖子的分享
6 H0 w0 C. v% v4 D) q. mhttp://www.emu618.org/thread-21186-1-1.html
* Z0 L. v: G; Q) u1 o* F
. U( y$ e; w' }. [* E' [' p5 b9 q我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了% {6 D6 [2 ~$ T% u
成功一刻, 真是興奮莫名; W5 V: F) R3 o- U

0 g+ l: |8 X1 P+ |, W
. t2 f) x& `3 V7 p 2 [/ e' s' d3 a& d0 C
; C" G5 ~! I0 b5 }. ]- T$ u
不過也只是 完全 跟著指示, 過程中還是有很多疑問,( `2 T  s* a/ ~1 t( B  O1 D
如不解開, 那麼修改 也只是 局限於 此遊戲
7 w- J* @8 a% n8 l* S: p
6 D+ h4 Q$ p% {6 E, E===============================" k: o& _" V9 ?! i( H. Y: h
5 a! U) p" s6 a3 }4 H+ [' y! A+ Y
圖6 後 的一段文字還是看不懂. M) \2 B# e# `6 I

' \3 d1 `! p" K7 E4 m8 C[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
5 D, f- v) I5 [- d. r! u) Q問題一 # 指令表 就是說圖6 吧 ?
- \( x0 S/ E4 ?1 r( `' _: R! P) F! L. T* B/ g$ w; a
問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
/ R1 \* ]" p4 F( X! X" k) L                0x13 不是應解作 數值 減13 嗎 ? ; p+ T- A! m& |: h
                從何知道 0662+(X)=...數值減1      7 `# e  Z/ ~9 S7 ]3 U7 ^2 T" ~

5 A! T6 P$ d" ]! f% \* d& e2 p-----------------------------------------------------------------------------------
- u/ y/ b4 @0 ^- {5 K. t[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
7 i0 C0 X! @: o# r, j7 G問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
9 C1 u0 R7 B4 e! Q" [                & c1 ~2 J# C- r' L0 d, \3 X
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
' _8 O, Q, N! Z- \
+ e2 T$ S1 Q! w
7 x% ?% {! R) o% ^" Z& k# N-----------------------------------------------------------------------------------
9 N" l2 r  t$ b  Q[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
6 s, v/ f" C+ G( m8 S, A& }! m問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?8 W) Z5 a' h& _9 ?* I
$ O" ?1 j8 N" B- c* q
問題二 # 尋區方式 即是什麼 ?, P* }" |& Y8 r9 o$ C. U
' `  V% {1 _7 V; P" F- I
# o% x- s: q! v% J4 e+ M
其實還有其他問題的, 不過一次不問太多了+ [+ S" Q4 p2 s( Y$ V' O. ?5 Z" _
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的! L0 y# V8 V" [4 n& Y! W
就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: fanco238 在网吧通宵,花了 8 个 柠檬. 幸运榜 / 衰神榜

签到天数: 134 天

[LV.7]常住居民III

发表于 2014-7-23 15:22:08 | 显示全部楼层
你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-23 18:51:31 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
2 G( u) l8 m4 O% h
紫龙666 发表于 2014-7-23 15:226 J; a- o; _( T4 y1 i( K+ C* z) p- Q
你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。

1 o. I# G1 n- [5 E1 a
! [& n5 e& u' ^2 W  C; C7 z" `先感謝 紫龍666 的回覆  {:4_118:}
* }# ?" w+ T$ y" o! d' Q' ?% e' @; A0 F. ~9 l% [7 M5 R
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘
7 T2 N6 T5 }* N$ xhttp://www.emu618.org/thread-20393-1-1.html
( J8 Q, X2 \) [, m. A& W8 O7 ^) g" e' G( p! p; _
下載解壓後 得到一個檔
5 W' G7 W8 j7 z* F4 b. _' Z0 p! [0 e6 D

0 x1 R) P* L5 D9 F但我卻開不到這個檔, 顯示(無法開啟檔案)
) j4 f1 O8 s  J/ O愚昧請問一下   6052汇编大奥秘 是否 一個文字檔 ' A, j* I5 s# q2 B% X
此檔有很多文章在內 嗎 ?

点评

CHM档打不开请百度一下解决办法  发表于 2014-7-23 19:49
[发帖际遇]: fanco238 被钱袋砸中进医院,看病花了 2 个 柠檬. 幸运榜 / 衰神榜

签到天数: 1927 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))1 {0 a- k3 J6 z7 X( D
3 d3 n5 M' P& ^8 p: s) o% v/ B) l
問題一 # 指令表 就是說圖6 吧 ?
1 }+ k$ |! _, w, e% p/ ~$ j- f& J
問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
) a5 n) S4 w# y$ \4 a$ [2 |5 r
% a3 Z; I2 n0 [! {' K2 }5 \: J0x13 不是應解作 數值 減13 嗎 ?
, ~* g3 u1 F* T+ Q  v  E8 \
5 `# n+ b: F* P  `2 x從何知道 0662+(X)=...數值減1

( H1 V4 @. J4 z- T
9 h% A7 P+ b8 Z& B[0662]是地址,0x13是该地址的数值
  Q& e8 h- V- j& H; P6 k3 F9 L* u* K) c. C" m0 M
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X
8 _; y) a5 T3 r$ g9 n
9 ~3 ?4 |$ u1 b% j- z! n' O! G( c
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
) Q" d, r$ v" w% W& e1 ]7 r  u8 E- l* h. x! ^5 }
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
8 V5 Q' ^' ]: m) u9 S% v
3 ]8 {9 z4 i: E- x$ b4 D! a問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA

. F. P. \2 F/ L/ {1 e, I
0 }/ e' \4 Z& g# p$ Z' w5 e+ L* YLDA是读,STA是写
* g9 F3 }1 L6 u) G) l9 |" I: N
/ o4 }+ x0 \& f' }1 aDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了
2 o, b2 m0 P1 D+ y/ q' L8 ~
; W* k( X2 \6 ~, B" hBEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转
7 u) a$ \4 B) r, I; x/ f+ Z: N- C' m% q8 D
AND是逻辑运算指令' V- L- O; m  y# |

' }& P* s5 e6 i请看《6502汇编大奥秘》, r! ^2 U& e5 |+ o) z

! _- J/ M* T- a* k# _
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
1 N8 p% }' m" r' g) P8 c* q( e  b. q0 A, M+ y1 W3 F
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?) [; j7 U- q: a2 \8 }
! M7 I, h# x0 y* [/ Y1 s& m
問題二 # 尋區方式 即是什麼 ?
, d  d+ ?# M! o3 i! C) d( `

3 O5 V1 m0 b, J! r' V" P' ]我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?; q, H+ q. k( q5 T
( ]% S  u* c+ d0 ^: _, T0 J
寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 4 Q9 `- `* f4 f
疾风之狼 发表于 2014-7-23 19:443 R) h# B0 K' c% y
[0662]是地址,0x13是该地址的数值
" O+ }+ a; j; e( Q4 z' I' v
( ^0 l) e* u4 ]5 LDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

* _" _& I  ]" ]3 a6 Z& K0 w5 u8 S& Z' s1 E2 M0 j
先感謝 管理員 疾風之狼 的回覆 {:4_118:} ; O" r) X/ \3 a* m% z

/ \; d' M; R5 u$ Z# J9 T0 m; M好像有些明, 又好像有些不明+ W. Z# F1 d' a- h, P
於圖6 下面的 [0662] - - =0x130 l$ ^) K3 |3 s
大大說  [0662]是地址,  0x13是该地址的数值
, o( [4 Y: ~. f/ C4 ~
3 Y' {" w* S( d- m6 @' R我先愚昧簡單的想:
6 t# L) \' O7 _; U9 y  y$ R(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫$ H( e* A3 j- ]) w! D$ ?/ t
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 0 Q/ J/ x5 Y/ S" ^
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的& I" g* i: ^) ?8 u
& G9 X% S0 x6 l' O& F! S
遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
' i: }) U6 f4 E. ~6 `, x+ b; ~
# H5 i9 j- B; r------------------------------------------------------------------------------------------------
6 ?. I; A- z2 X9 W- |( f7 s2 d+ }( m5 ~6 m9 u: b
跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC
9 q3 @: k& ^. ADEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以) q1 ]. Y) d  U) b* a! v
LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A 6 u  D" K1 k' [- M3 Q

& P0 Z: Q/ @* u: T% M雖然 讀入至 寄存器A 這方面 還想不通, / ]: L1 n/ o5 G' u
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了 3 P8 b4 G  X, g# p; U5 s, h

$ q9 a5 k) [0 x% h# T- r2 O4 }
& Y' x# I. V% z* T# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用, E7 E! x. c% L1 j7 b) H$ Z

1 ^; J: C/ S7 s- }/ ~! H( W=================================================
" `6 ]+ g7 f2 @# n' Y8 H+ i' S
8 g' }: z  \( W/ E# m說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
& ]4 ^0 k" Y* Z( \2 ]5 F6 t: F7 q* q% F8 M
一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字,
# k% c; c0 \0 M+ J二 : 跟著 右按 選 以簡體模式開啟; `9 T4 Z; f' J6 k8 @) m
      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟
: R4 f9 Z' w0 A/ M7 U8 X0 _* X# ^8 E

) H$ X. H* M. V8 q6 |( R& K# \$ }! ~% e" h) g' N

5 j  u) X8 z4 _8 z* t9 W7 L" R6 F# Q% |1 u1 O
, W1 p+ U( x3 A2 X2 ?" [  f
# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了% B+ R* o1 d6 l" W/ o
       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44' l* A; F7 Q, w6 R2 j9 S6 C
[0662]是地址,0x13是该地址的数值
7 Q& }' E; m! o  H6 U" f1 ]- [
: d/ r4 Z5 ^3 l- ^7 B% xDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
3 B9 v+ ^. }( o3 G
今天又領悟到多一件事 {:4_98:}
& w7 P$ j# t$ ]  ]* G& Q) w# F
4 @$ E( b: o$ u5 S" R於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白' p3 s$ I" I7 }* j0 d
現在又想通明了少少" v/ A" C- ~! m8 U9 y
---------------------------------------------------------------------------------------------& ~: ?" a" f8 ~% k% Q7 I

5 y% F1 o3 R* j2 T中間寫著 :, O9 W6 M. V" {
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A7 a9 d! j& E8 Y& j
起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?/ p9 @+ z& P( M' g4 S9 _) O( |
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ?
5 X3 G( ]2 s3 x9 i! L
- _4 C/ S) v0 b# K9 a! M原來又是 16進制 的因由
. g' Y/ E! p+ P  }% b' E% w; X# B. X
: w5 n) o; [6 P' k" W9 _( K2 E6 o在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F# g0 d& B6 h5 J3 A  `
即是說 9 之後 不是 10, 是 A
% k' Q1 t/ ?- F2 N8 k- |  A/ S+ m% U  j0 F5 K
所以 1234+6 不是=1240
8 w! _7 Y* s* W0 F, @+ v個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位 ) q  s! w; m# F4 a4 e0 w; @2 C9 z
所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
  E/ w; v, U- m
& z: y5 R: D: D: {; V) H==========================================7 |: v4 J: \8 a' ?: R$ v

% q6 p5 o' r  X% S% N+ ^其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了
0 |8 p! t& }9 c+ r: G5 ]+ w除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝
, ]# F7 R8 J' b  Q2 ]0 T) q' i4 n6 g. _, e
其實研究如何修改遊戲, 真的是非常困難, 且非常耗時
2 @; q9 m6 ^8 N" U4 P- R我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改/ A. F5 _$ P* Z- Z. ]' P+ d7 ~

1 q, L6 W$ m) C+ C说白了
1 c* e+ r( W/ c! C2 k7 i修改游戏就是这么的简单

点评

這麼的簡單 >_< 這句說話就簡單, 其實是在取笑我嗎 ...? 無言了  发表于 2014-7-24 20:29

评分

1

查看全部评分

[发帖际遇]: 银河漫步 捡了钱没交公 柠檬 降了 2 个 . 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
# i8 U  I/ C' o
疾风之狼 发表于 2014-7-23 19:44, ~1 O% _4 T. G5 t, @2 k4 A
[0662]是地址,0x13是该地址的数值
! }4 ?4 t5 B2 S0 `2 S. ~
' D& d& O& p/ Y( x. WDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

  G' ]: J4 B" H. w/ ?' n) B4 u3 a3 E
1 A' U& A$ ?5 i8 f終於成功修改了 赤影戰士 受攻擊不減血
8 ?- K2 y/ Y3 W6 ?% f( ?& a9 n3 p( q; K$ b4 d8 u

1 w" A) g" m9 N' a! D6 W3 g$ j; o( U# ~6 A
今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了& d$ Q8 {* L: N& ~) T: G0 v  ]
我曾試把此方法 套入其他遊戲去修改# J# e! I, h& k. F& Z5 P5 m6 u  r$ W
但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型
7 B: K2 r: l3 }6 T8 x( K0 W% J' X4 j7 Q所以都不成功呢
2 y! }' D2 f: N8 x! h& c最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

受伤即死很容易的,在减血后面必然有一个当前血量是否为0的判断,改成必定跳转即可  发表于 2014-9-3 15:22
[发帖际遇]: fanco238踩坏了花花草草,被罚款8 个 柠檬. 幸运榜 / 衰神榜
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|国治模拟精品屋 ( 沪ICP备15012945号-1 )

GMT+8, 2025-4-22 16:10 , Processed in 1.156250 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表