EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑 * n5 k: p- [7 k; F3 A) e/ R

  u6 J3 Z% k! o在此先感謝 管理員 疾風之狼 以下帖子的分享- _2 a* H8 w. ^
http://www.emu618.org/thread-21186-1-1.html
" U  c. k1 Q' Z0 ^2 X0 P2 |1 D% m  M: J  N. e# [+ o. m) C
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了  T/ A$ d/ s1 H# P/ D5 g; z
成功一刻, 真是興奮莫名
/ W% M$ V. z+ o( W# }
1 R) _( C& `. r" t. P7 R
) }9 Y7 L" |5 `. M0 x+ w; _ - Y5 B; ^7 D& L. Q. W) p

, `- G6 k, A/ V- p  I$ C不過也只是 完全 跟著指示, 過程中還是有很多疑問,
) l9 j5 J% l- L如不解開, 那麼修改 也只是 局限於 此遊戲
! h3 o4 O6 S5 m3 I* y" A8 e* O$ Y2 H; l: p
===============================7 n) w& \, f! w$ Y+ p
9 @5 X: R, B3 x# O; m
圖6 後 的一段文字還是看不懂8 O/ X+ y& g/ O1 z) t

3 O5 A( W+ P  O7 L, N, w: g[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))4 R( M& J, |! h5 Z- Q& W* @
問題一 # 指令表 就是說圖6 吧 ?9 c1 m) {3 V) x# h2 c! H
1 F) K8 Q0 e1 O9 [$ `
問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13: U6 |1 o8 Y/ ^. g' g
                0x13 不是應解作 數值 減13 嗎 ? 1 B* K, l' e' z" L8 E0 S* T, B( @
                從何知道 0662+(X)=...數值減1      
/ W; f4 l: c5 B+ i+ {; `0 ~! ~- P# ?# P- g/ Y/ @1 a
-----------------------------------------------------------------------------------
; E1 m) u* p+ r# w4 T0 U/ F[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))1 j& q, T; P" f2 d) I  s0 U
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
7 I' N% ?; f" r( H9 T- |) v6 C               
5 q6 L3 W/ q9 p6 m問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA3 ]/ x7 c4 M% z: a/ O; U3 e
; A& E2 M! K  u; u. }) y8 D$ n' B
' r9 k. q+ I6 }" _, Z
-----------------------------------------------------------------------------------
3 x: i3 l& M/ \[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))1 |, N5 W. ]0 `( `, @% }. M
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
& v0 `' m/ B( [. R
, [; c! B5 r8 L問題二 # 尋區方式 即是什麼 ?
3 v4 g: k9 b( t: V* `1 [) G1 @* {3 R; @1 \2 c

! u. ?8 `; K6 e其實還有其他問題的, 不過一次不問太多了
/ W9 E7 y9 Y& R* o! _- e在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的
# Q' W% z" |% A5 b2 e就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑
. d7 R- n$ E/ _% ?1 g9 q
紫龙666 发表于 2014-7-23 15:22
( ?! }* G1 W2 b; U, t& P. y0 l1 o你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。

3 F. p1 i- S% R% U: {) p0 _7 Q2 {6 K; |% A8 B$ I) L: c: t
先感謝 紫龍666 的回覆  {:4_118:} $ K9 G0 x, J) J. a8 U
# [) I: ?8 G5 m7 W& x, d
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘  ~- s4 _2 ?8 j% m. L
http://www.emu618.org/thread-20393-1-1.html
! N5 H" O1 A4 v  F) }$ f' c
) m( e$ z; i6 G: i: h2 F下載解壓後 得到一個檔
* E( P  R( B4 A4 }  o
! X; I' {5 r1 _8 _0 e2 Q& r. L: W, E  ]
但我卻開不到這個檔, 顯示(無法開啟檔案)3 Y% h) ~5 a& E& X
愚昧請問一下   6052汇编大奥秘 是否 一個文字檔
* l" }$ L7 d7 |. j此檔有很多文章在內 嗎 ?

点评

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

签到天数: 1837 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
- F! s8 G- p) h) Q0 Q4 H
2 J* q5 Z- ^: q問題一 # 指令表 就是說圖6 吧 ?$ h& ~+ E9 a7 Y" V3 Q; O1 U  p
/ @  c3 L7 Q, O* |
問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
; m. }( e2 w* J1 Q% `$ w
1 r  {: \! z- N" r0x13 不是應解作 數值 減13 嗎 ?
0 u: _( C, _1 Y7 `% t6 [
( n" d8 d. t+ @1 Y9 L9 S) h- P1 `從何知道 0662+(X)=...數值減1

5 u% Q3 E! q$ v2 D5 Y6 j' w3 P) u( _# @
[0662]是地址,0x13是该地址的数值
0 q+ F: U* f& H% b; }9 S, i( ]7 S2 R9 i% j# {2 c; b3 @
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X
: D0 r5 {; w  L/ m
. k; }- g) F) m5 \
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))  Y2 q. M& G6 a$ M) q

& L" M  ]  h: Z; n. p4 R& F問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
3 S: p& C7 F/ g. m9 M* t" v# L5 Y$ A$ O2 D- Q; Z$ J
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA

1 T0 H$ k. C. w2 c8 z: U8 g
2 w% \& {* U, u7 OLDA是读,STA是写5 ]! T! T) C- I- L9 O

- b5 `' n6 o9 c5 I. PDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了7 I! T, N6 @5 a- C; d" J
4 ^; B; }/ m; g# _8 J" i
BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转
' Y' W6 W8 R% l+ ^- @1 L7 A; ]- B# Y+ h6 F2 d
AND是逻辑运算指令$ k! \) P8 L' \& b, G8 ]
, f; b% B! C% x' e; s1 V) [% t
请看《6502汇编大奥秘》. [5 N$ E0 _. Q; W% F8 l$ M
6 M! R8 \5 }- p: m: s+ Y
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
9 e8 {1 p" ~4 _4 j# r" m( s4 _/ X3 z& M8 _0 ^1 E
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?! v2 V/ ]6 _0 _/ D8 k

/ w/ ^4 M: x4 M2 B0 e( Z. y問題二 # 尋區方式 即是什麼 ?
4 |+ s4 b0 c% C  n$ J4 E7 a

) o4 p6 R/ o) s3 I我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?
( v: }' f: |% L# t
2 s8 z5 O  a# ]) J8 @& v+ G+ q寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 ' h# q& |9 _& n0 V* }
疾风之狼 发表于 2014-7-23 19:44. [0 H2 J/ A3 F( O1 Y$ C+ G
[0662]是地址,0x13是该地址的数值
' s. k' `; ]# ~! G
3 ^4 v3 k/ {7 b) SDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

- A! {: t; ]1 ~) ]" o$ v1 r4 g% w. {4 o& c4 I; ]
先感謝 管理員 疾風之狼 的回覆 {:4_118:} $ g, i" w: M( }! Y5 {

- h/ A! f# f. j0 b) I好像有些明, 又好像有些不明
* r- y& k! P# C: p2 n8 j: h! C於圖6 下面的 [0662] - - =0x134 X0 c8 k) s: x
大大說  [0662]是地址,  0x13是该地址的数值
, I2 T% S' r3 B9 M) w$ H# o2 b" A  p5 d. V9 R: i( m
我先愚昧簡單的想: 1 H( o( b, G! D: Z' J" M% f4 }
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫1 [. P! g  q, A4 g8 ]7 b6 a
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 * |: }) }5 ]0 d
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的
8 g( _$ y! d) ?6 _! H
( s/ [/ [. l# g5 ~7 x0 T遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 192 h- t! j  G# N& O  o  H+ t
, F* P! |1 u# ?8 v8 ?4 P8 ^
------------------------------------------------------------------------------------------------7 U1 _( ~3 ~: P

  {: C, I) Y9 T4 V9 t跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC
% K( S' m! c  a2 Q8 Z8 W( O0 Q, UDEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以) b# ~& ]: B9 O/ j2 _1 y# s
LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A 3 h8 A& H$ R! ~# }
$ l0 F2 e; X8 `: g9 ]) [+ Q5 X
雖然 讀入至 寄存器A 這方面 還想不通,
- p$ N: V/ m& X' S. R總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了
/ {! k/ m0 h3 ^4 k
% \+ y! a8 m. F  m- B6 `8 q& a
8 n. G9 `. r1 N* }# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用
5 Y' V, f5 ~/ n4 ~( X- ~0 r1 P* \- X
=================================================
9 O2 R! p! S6 O3 \. o: }4 j; `: r2 u, Z! h5 I* W4 Q( U
說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :, M; H! o& |5 [" D

- W- |# \# i" q# w3 a一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字,
3 b2 \! w* W' p$ A& S/ X+ B+ |二 : 跟著 右按 選 以簡體模式開啟. X# B5 M; T& s% o* G* y$ U
      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟" Y, M% l. {7 ?8 k1 O' a* B  U

9 u; w/ p5 q; V1 M6 k
7 i; J$ m0 C9 {8 N; w% u2 T" ^: E' t6 d- S) \: a
, a3 a) L& }9 e' F+ N* ~. }1 N; t

+ f: {; k! C! d: O7 e3 L4 }) A: W; P* h) J- P* k4 `7 w9 |6 R
# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了
& ^4 V+ t/ V/ S/ {       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44" P2 d, q! q  c' ?6 ?5 B5 `. ^# e8 a6 p
[0662]是地址,0x13是该地址的数值
, l, r/ L! a9 Q1 L% D6 k, {5 E+ T2 n  b3 \
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
" E; \! \+ R3 C% j
今天又領悟到多一件事 {:4_98:}
, o. M2 Q$ `" O, S: `' K; J
  f: K9 @: N* O: I2 T" y% T1 Y於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白3 a# D% }6 T! S+ T& i' p
現在又想通明了少少
! p& v4 P. ~) Y3 |! F) S---------------------------------------------------------------------------------------------
7 T4 b) Q0 z5 H! }
, }5 r0 }! a5 M) u2 z中間寫著 :( S# M9 g) }. h& p
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A
. \  v& j( Z; h; z1 e5 Q  P起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?* ^/ O9 W0 B7 R8 i
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ?
% V4 W/ x; a: R% _4 I1 @' ?
  x. \/ ^; c3 f1 U# h2 i# b, ~原來又是 16進制 的因由, p- F% C( M1 Q/ `. U, V
$ T- m; T4 h2 x. V. `& Q/ C$ ^
在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
3 w  _4 E7 ^# B& c: z' J1 f即是說 9 之後 不是 10, 是 A- i6 q/ e1 y* F. j; o

" a3 q. a( d) C- e1 A所以 1234+6 不是=1240
$ ^9 |# a2 G$ _/ M" O. i; X% `9 W個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位 % A4 w  b7 y. `9 D
所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
: O& L# ^5 z% ], r& i) H3 B 3 k; B/ p' F; `: q( b* X- v
==========================================
" z0 p7 W: {3 m- {& o+ @$ h# l# e% j4 S# w, M" i! [
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了8 c' F$ n9 g+ t8 n6 a
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝$ a+ D9 m" v" d" x9 J  C# q

, Y& M4 o& v3 P$ N其實研究如何修改遊戲, 真的是非常困難, 且非常耗時6 M9 I3 J% I2 s/ _( w
我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
4 ]  E1 u+ ?/ k5 z; }  N# b% K
# L+ v' T% U( e. A, T& N& V+ T说白了
  ^) Z; Y* o, M5 b3 `- ?修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑   p  c4 N. J6 Z% f9 i/ @7 T' ~
疾风之狼 发表于 2014-7-23 19:44
3 ?" [" F1 R8 W5 g& E[0662]是地址,0x13是该地址的数值
0 t! e$ D6 i0 n
6 p! m' S2 F9 N' }% TDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

# Y# Y) H% f. e3 P# H" B$ H7 X% `+ _) z5 {, S" x
終於成功修改了 赤影戰士 受攻擊不減血+ H) R( ^5 N) c# V$ M5 k, m) P

9 J! c% E8 q& M7 [) b1 I' \5 b  r. q  d' L9 f, F+ P1 q+ t

7 M) k8 K( w) I3 S( x5 C/ L今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了
* I+ i3 y3 \9 V% N, n# N8 g" Q3 ~我曾試把此方法 套入其他遊戲去修改
3 |- h- Y( ]+ w但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型
! ]& F3 p/ n" z' P. R所以都不成功呢
7 z+ j8 x3 u* `: f最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-1-22 08:30 , Processed in 1.076172 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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