EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
0 W# X; ]& n- h  j9 i2 O7 Y& j
: q- @3 O6 E+ `4 e0 t在此先感謝 管理員 疾風之狼 以下帖子的分享
- f1 ?) F  \0 h9 I" j# ^http://www.emu618.org/thread-21186-1-1.html
7 t& l0 q, e5 v1 {2 C& L& [* Q5 z( X* x! v* w
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了$ l' P; J4 `# ?! V: [
成功一刻, 真是興奮莫名
8 p8 _6 e3 h. V! |. j' ?# e0 Q" p+ p& Y
' Z) X: f4 o& i
7 n& `) j/ _* i2 T+ h5 |
& {7 u; Z- k4 r1 I5 G' l0 M
不過也只是 完全 跟著指示, 過程中還是有很多疑問,
$ i9 R; A' P" K: T  s如不解開, 那麼修改 也只是 局限於 此遊戲5 b' l: T. z$ |

- i# \& m6 f- d( i===============================+ `% a* _" B7 w  E- m
) @8 }. [& z5 i/ X: a* J! ?
圖6 後 的一段文字還是看不懂
6 y) N/ H2 U* @; r! o  ]- V
! I9 W4 ~+ l4 v2 X2 ~[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
5 `: X1 S# a9 T, k問題一 # 指令表 就是說圖6 吧 ?
5 S" ]* L; N/ I$ A- B4 _- c
2 @* A' k5 h, f6 H, n8 g問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
/ O( b2 ]1 f% F- X% s                0x13 不是應解作 數值 減13 嗎 ?   ], R# ], W+ b0 I' [1 x
                從何知道 0662+(X)=...數值減1      $ q# q  g/ \; f6 h7 j, T2 c

' k  @9 {2 S* o( E6 e-----------------------------------------------------------------------------------* l- f: O  v" C' @0 O
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))" E% a, G: v/ R
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?! @. S; A$ R" d
               
& {: o1 Q( ?2 O% C! t# T9 E問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
2 r8 _% r- c! D9 V. _
6 j/ j7 _$ ]; [- I  @* {. N) G7 w: A$ m! f- f# l" L
-----------------------------------------------------------------------------------* s- y# e4 _' O% V
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))9 k; j  Z; Z  I+ ]1 p$ H
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
$ k! x+ K9 K7 a: i; Z) a+ ?6 ~) F2 B
/ B1 ~) @+ s4 T, @) d問題二 # 尋區方式 即是什麼 ?
6 Y& r  p# ~' [" C- J/ r6 Y. W" V, U  x( H+ T3 ]6 y
# A9 q- k# r) Q6 E* D
其實還有其他問題的, 不過一次不問太多了
% X, C- v) C, \/ }在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的
: @+ w/ c! A9 z* 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 编辑
* d* i# W. [4 u. L
紫龙666 发表于 2014-7-23 15:22
, A4 A7 U' x5 T- Y你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。

0 b$ m  ]. _6 L0 R1 @! {+ t" p" _9 }+ j1 A. \$ z8 M/ Z- }
先感謝 紫龍666 的回覆  {:4_118:}
  h8 w/ P8 o' G6 E8 J3 b* |. O6 V! C4 K7 g
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘
0 s2 x2 ]1 V1 F# Y* x% L) d* Qhttp://www.emu618.org/thread-20393-1-1.html
: t8 R' y# A  M* Y; l6 J7 e$ a5 G+ k" P0 X
下載解壓後 得到一個檔
' C9 ~" P, v# H( \3 X2 K  Z( f5 O: Y/ Y9 V7 I0 F

; Q  b/ H" y: i6 K7 z* L但我卻開不到這個檔, 顯示(無法開啟檔案)
1 v: x( d4 W3 J9 G愚昧請問一下   6052汇编大奥秘 是否 一個文字檔
# x& g+ z0 P# B% W& c$ X7 u! a此檔有很多文章在內 嗎 ?

点评

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

签到天数: 2152 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
$ B6 J& u) T2 p% i  x! z
0 D( b" R  y' Y6 b問題一 # 指令表 就是說圖6 吧 ?, E7 U! f0 J% Q  C' T
+ ]  m0 a. C! S* d: B( G9 j
問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
6 e/ ~; w  I  o$ E$ ?; s6 r; y9 T
( ?9 i8 m( W! g+ y1 B2 u0x13 不是應解作 數值 減13 嗎 ?
6 x& A9 j  `* h- e( g) w5 q* h* r9 }5 k' i- _2 _* |
從何知道 0662+(X)=...數值減1

9 P% w, s- N: K
: R+ W% V& O+ z/ T8 a% E* o[0662]是地址,0x13是该地址的数值( y! _. m2 n3 @/ D7 O

& d' ^& ^, V8 A' c, p" cDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X) h1 T- v/ L0 L2 a6 ?
$ J8 n; {( b' |0 c5 B7 @
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了)); L1 E3 J7 Q: x, n1 l& ^9 U! X

1 Z) J! J- h$ x6 I1 W0 {% i8 @問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?) u3 }8 u: x# O1 O
0 d+ V% W6 {8 r: c/ u0 K0 W8 P
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA

% a& c. F* ~3 o4 ~7 s
3 G6 X, O# i% {) zLDA是读,STA是写
, K$ H3 Y$ [( V. f$ V- Z9 U: h9 c! r; M4 L: w  X- X& u6 X
DEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了
' u4 W: V. \& |; C+ S9 L& J8 F$ `
BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转* X* I5 _, ?- U0 B/ i

- Q& b0 ~- }$ J* B( w7 qAND是逻辑运算指令
7 F& F: s7 O; W
* w4 N* F. W* L! ~" ~+ p请看《6502汇编大奥秘》1 [. X: m) [- J1 A: y# I

9 H8 P" q5 x8 U# h6 a, k" u
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))$ q: R: t9 ?! [5 d- c9 ~+ D2 l

! K+ N' L* O. W$ `) J1 A問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
. T- c/ l) B+ A  B
2 |+ B$ w. s& N/ }問題二 # 尋區方式 即是什麼 ?

+ U) x6 C4 W$ x2 I+ n, Q# a/ b$ c% l2 g0 m6 {
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?
7 u8 c  z& p7 q8 V" ^  C  l
+ U+ {8 \. l/ J( @7 b寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
, d$ F/ p" [. `2 Q/ z/ P+ f
疾风之狼 发表于 2014-7-23 19:44- G: S0 a5 S6 G& ?
[0662]是地址,0x13是该地址的数值+ y; I7 ?( o4 V/ Q. ^/ |% H

2 S5 Y2 I0 @# M: f! ^" d! NDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

6 ?& R3 X5 R! E# l& {, i
8 S( G. e3 \4 a& m8 Y! x( S, e0 F先感謝 管理員 疾風之狼 的回覆 {:4_118:}
" ?& E: X, I9 d2 @8 G4 |+ N# v& }5 W  T- g" B) n# _
好像有些明, 又好像有些不明
0 J( h  x" I2 b# ~7 N7 G於圖6 下面的 [0662] - - =0x13
9 ]* Z6 v3 R2 t) }& B4 Q( k4 A大大說  [0662]是地址,  0x13是该地址的数值
1 S% R- ]3 Y0 E- k; W1 W$ b5 H: {  N8 P
我先愚昧簡單的想:
4 e! X# W% d, j7 M/ s6 v(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫5 b3 \+ j6 \' x( w+ d
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢
" d  }. B0 M) g" h3 l$ V                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的
; ^9 C' t9 M5 x0 T5 }. U+ [8 n
遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
+ U9 U) {" r" Y& e; i% E7 Q
7 p+ {' J5 o$ l# i2 K------------------------------------------------------------------------------------------------) L) l6 b  p  J. s9 Y( h

/ h4 ^. F9 x7 u! O跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC
; g& Z# Y( p7 q9 I3 ODEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以9 B7 s5 H" O" E0 |. n7 A
LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A ! k0 v" ^# S0 J8 |7 p6 `) B
# |7 |; s' }  u0 ]
雖然 讀入至 寄存器A 這方面 還想不通, 7 L, S7 A, q2 l9 m8 _! c0 Q. H- {
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了 5 a" N( a+ M$ o5 @+ f5 k6 f7 [

2 \( D# b2 P. F; [9 [2 V* C+ @5 s3 {6 K2 h8 ~
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用# A; C# ?. x  b% L3 z4 s

1 D% ~4 `1 P; q/ K0 K& |=================================================
6 r: F" ^) Q1 F+ O" I9 w% G* H# K' W  `) p& T
說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
# k. S3 H5 w& ~# F! A3 b
5 U. Q3 L# U4 }0 Y5 A一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字,
: ]& `3 }: v. G% |6 x! K3 A2 N二 : 跟著 右按 選 以簡體模式開啟
8 m( l) }+ f# Y+ t7 S: {      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟+ X3 C$ U6 {  [! @* J/ n

' |* n: J, x5 F
9 I+ f1 A+ W/ U, Q8 S/ J' t0 Y; W0 [8 }# {$ {" v

' E% \  t( M; x7 T& E  o' Q8 J" w: }3 i9 o

( [% O* p, B% ?& w+ Y6 l# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了/ a+ [: F" r9 t. b
       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44
- L% q0 \: Y% q6 ~5 C[0662]是地址,0x13是该地址的数值& X8 Z0 w# ^! @7 `' K0 g

7 C2 g! W2 y# e' Q/ fDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

1 E  y; I0 W/ G5 H  y" g6 G今天又領悟到多一件事 {:4_98:}
3 `+ O( C; q% p5 A4 e; c( ^, |% J) J* V: [) z
於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白
+ [- i0 x& C* G! n* |現在又想通明了少少
4 v4 i$ _7 O' M7 k! O2 x---------------------------------------------------------------------------------------------* u. x1 F* c3 y+ M; j) B3 j

+ h$ H- B+ Q6 j中間寫著 :, a) ?! O' g; d/ k& N/ s+ l
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A
2 J2 z" l7 X9 C* C3 H起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?- D5 W/ G  c# S$ P
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ? 3 f8 o+ f5 W* G% Z# J8 @) W0 |0 H

4 m( a, k  j4 ]7 S+ `- B原來又是 16進制 的因由& X& L, D6 ?! r/ s4 @+ M& M
# _2 B! b9 Y& f- M/ |
在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F' g) f: _, {% n( T. E
即是說 9 之後 不是 10, 是 A5 }* q! ^+ p( B1 ], E6 _6 R& Z

3 O) {' D* j, t! K所以 1234+6 不是=1240% F1 I5 I: F  s$ ~0 q
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位 0 g/ |2 P; u" e. F. ~0 M3 k
所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  1 z; B6 A$ E/ Y3 S! p: V% w

' J( Y! [# B7 ^# b! f  e+ n6 O==========================================: I% q. w( S8 u$ M
7 e2 [* c# C! X% L3 z( M0 W- l$ r
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了. @1 A4 o3 h' G3 a% t
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝
- _. `1 j, e/ ^5 i# M. M- g" ~0 t+ Z* \4 r- K: U+ z6 B
其實研究如何修改遊戲, 真的是非常困難, 且非常耗時6 ]3 j8 ^9 N+ S% M
我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
, Z4 A7 L' J# x/ d3 Z- d( f: p' x7 x# i% K5 }6 e- [
说白了
+ D6 w. m# k! u' b1 j8 y6 G修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
( x! I! p  ]7 z, [
疾风之狼 发表于 2014-7-23 19:44
+ c/ A$ R2 A( z+ q! M9 Q[0662]是地址,0x13是该地址的数值
' \2 ~- H4 X5 M( _* x0 Y) K% p- B; m6 x% S# N
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

" D2 B0 k. C- y$ L5 @5 N' H  ?, q; f7 i/ \7 Y
終於成功修改了 赤影戰士 受攻擊不減血# E8 h" z2 ]6 b) ?1 P3 H0 {% ^
% F8 ~! V9 z3 P* k! V9 u& v+ t
4 @( C, \! b" v

5 f. ^8 Y1 T9 I4 x9 G2 s/ I今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了9 B+ X; o" D8 M: j4 E2 b9 v) G
我曾試把此方法 套入其他遊戲去修改: t- w" L; x  T9 G' d2 R. Z4 e& y; a
但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型
, r4 \8 y# Q7 X0 L. i所以都不成功呢9 y, F# T4 R6 I: \6 d% m. T/ I
最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-12-6 14:18 , Processed in 1.097656 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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