EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
% C2 K! |  d  Q2 S- K
1 _: p+ r+ [' A& u. A# x7 _: F7 H在此先感謝 管理員 疾風之狼 以下帖子的分享8 y6 a7 T4 C9 B5 S; V2 w3 T( q
http://www.emu618.org/thread-21186-1-1.html
- {( N% V, A; Z0 ]4 e
6 }+ d, ^6 N' N+ T: Q. _+ S+ |我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了- A* o' d5 B0 C* Z: k
成功一刻, 真是興奮莫名4 P+ g0 p8 x' K+ V9 l" a
  n4 t* A1 r4 P# W+ J0 H& A) |, T" A
+ u) E5 s7 D5 T" `# k

  q' l; q8 c  W; g+ K# q' B& A6 l" D+ l( ?6 V4 R
不過也只是 完全 跟著指示, 過程中還是有很多疑問,
/ ]1 z0 z2 o) D9 h/ V4 l如不解開, 那麼修改 也只是 局限於 此遊戲8 r4 O* S( l: z9 P' K

+ E( X% S, j1 u& d* w& S/ Q===============================
+ J" [/ S# ^; m% H6 w* s, c6 D$ s* F6 _" W" S
圖6 後 的一段文字還是看不懂5 p* K+ g9 T$ Q4 D

! Y$ l8 R# n4 A. j% {# L; N[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
1 ]# W4 P* F+ g/ ]問題一 # 指令表 就是說圖6 吧 ?# j1 s+ H7 b! x7 ~3 t
3 x9 E' q+ i1 z- ]( {
問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13. p) Q8 ^& i! C) P. `2 q: v5 d& t
                0x13 不是應解作 數值 減13 嗎 ?
" n# _. D" @( c) x! J  C                從何知道 0662+(X)=...數值減1      
3 i3 w  T9 e7 G9 y  i* B5 |1 n" p. h
-----------------------------------------------------------------------------------7 P- f7 Y7 h( u( o1 l' C
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了)), _+ y  Z. `# g7 H5 k$ D) _+ v; I
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?( I$ r! G+ p/ e# [% x* h5 ^) D
               
0 \1 m' |7 O. ^2 Q  s7 ?& @# D4 z問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA' q3 N" R0 o1 w8 H, p" d0 Z  f; Q! Y; [6 t

. L& d' W1 f( a5 L9 K% \
8 W, w; R1 Q9 y  h" G  d% a* J-----------------------------------------------------------------------------------
, n1 P/ W/ R1 v[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))6 {! P2 m1 l: G) q$ j) q
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?; X& c. j7 ^4 H3 O6 ]0 R, u. }

+ m& u$ K3 r& }4 J1 J/ p問題二 # 尋區方式 即是什麼 ?
) K! M. B6 Y' H; j
1 _) J1 O* @! j2 _) `$ z4 _. `% U& c3 K, }8 w0 {
其實還有其他問題的, 不過一次不問太多了  n! k4 D: j+ x& l! A
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的
- k1 T: x+ Q  a6 n) n就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑
) o8 G1 v% h1 ?* P& ]- h, E) }$ T
紫龙666 发表于 2014-7-23 15:221 d# s9 g, _% ^- y0 L
你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。
! j' F; L, U8 ~$ v

- k$ a( R9 t" D! z2 E先感謝 紫龍666 的回覆  {:4_118:} " k! ^  k2 C1 c8 W1 H! z- o3 }
9 j1 B8 N( F. H7 z3 H6 @; K
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘
  V/ p: A; P- J7 j# \2 s0 yhttp://www.emu618.org/thread-20393-1-1.html/ T, n7 M7 b0 U4 I  S( H* S& o) x' w

; z4 w+ t  N- Q下載解壓後 得到一個檔
! _* m5 U5 ]  T" m! ]6 x3 [9 A8 Q* B1 z! V: w3 }) F0 R/ }* y: S$ r

4 R3 L/ R( S/ I9 l1 B7 Y. J但我卻開不到這個檔, 顯示(無法開啟檔案)
& p* Z: ^9 z# T3 j; Q愚昧請問一下   6052汇编大奥秘 是否 一個文字檔
% `( l- q3 U- L& A: x3 U此檔有很多文章在內 嗎 ?

点评

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

签到天数: 2050 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))6 @; G6 d. c6 N/ ~; t
4 G5 B% h- z5 r5 P- p5 b
問題一 # 指令表 就是說圖6 吧 ?" i% C9 [( S/ g' @9 G
5 M" ?2 u, x5 H+ q5 b
問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
1 z7 g% k8 i) f' h+ ^
; d$ {4 D% k4 i. L. D0x13 不是應解作 數值 減13 嗎 ? 9 D% l) C& p  V& ?, q
8 q5 q/ s; H6 e- Z; D; T& m
從何知道 0662+(X)=...數值減1

3 W( D3 a. E, o+ T
" n3 a: l) @( t8 D[0662]是地址,0x13是该地址的数值9 x& F, {0 `- w" |) X- j+ z

+ N& p: `0 o- z: k% [3 f; TDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X  U! i3 S3 Z5 d5 i2 j, @

* o. ~+ Q5 e+ }' m( `- x
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
6 P( R6 V3 t2 a8 a+ W: d
2 J* W6 [9 J0 q2 D) Q問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
% Q+ U# W# T. A% E( d
# Y: x5 ~" |; U4 J8 u% j問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA

- `" D/ q. l  K8 S& d9 ~2 P0 ?; P) i* b% F8 b2 K+ R
LDA是读,STA是写
( A- \/ y/ u1 }& K8 R- y+ ]2 O, C
1 D/ l: q& Y3 l8 X- V# ZDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了
+ d$ K3 w$ C+ g: H# B7 z  }& Q$ t* {6 Q) O
BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转
& w' _' K7 d: @) n& D- y% o& l4 b* |) v' _- u
AND是逻辑运算指令5 ~) E# M9 u0 h3 A1 a

) I# D4 Z" u4 ~6 ?' |! @请看《6502汇编大奥秘》
, O! D* G) w  s) @( E4 c+ Y" j/ ]2 r3 K5 N7 X
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))* n, S" d7 F+ b7 I6 ^
- {( R- G# @" m
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?% o% M1 p% P. c  p8 y* y/ m
9 q, Q4 B% K4 k& ]  |. S1 l
問題二 # 尋區方式 即是什麼 ?
: q4 L1 F7 H7 {1 z: P2 _
0 F  B- r" m! ^- h( A% ?2 V
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?
3 f5 V$ O" f6 z8 N( ~6 k1 E# j! k$ \  C8 f. C0 u
寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 4 {5 o: Y- O% z4 O
疾风之狼 发表于 2014-7-23 19:44) Y& x7 F9 t5 A
[0662]是地址,0x13是该地址的数值! X# I, o4 a  X, W
2 M3 `: A, ^. ?) d# X/ C
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
3 r  O0 y' k* r7 W# Z! \9 n
" I' U; l' l- }. k0 z
先感謝 管理員 疾風之狼 的回覆 {:4_118:}
0 ?+ p& b* S; s" o" |$ |1 b6 h: _4 C# T/ M. F2 F5 N- D  C
好像有些明, 又好像有些不明
) R: M7 q( k5 t9 {: P( f於圖6 下面的 [0662] - - =0x13
- D$ Q# l/ f* `: y, x) j大大說  [0662]是地址,  0x13是该地址的数值) s; m) m  @9 U. Y' m1 q- N
! ]# G" d! Y, f" q+ x
我先愚昧簡單的想: + x9 [# c- Q0 W, u% e: \' y; o
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫
! q5 l* r- [1 ?+ l(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢
5 Q, I" Z9 b/ M5 Q/ X2 b7 C* X, G! [' X* d                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的0 ~& ~' v+ z. b" U- ?

4 a5 L2 L5 A) a, N9 F( @遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
. G* u) `6 l0 o2 R" C
: i  R/ K0 \! ?- W6 ^------------------------------------------------------------------------------------------------
  u3 L$ ~, F3 u$ Y' E% S( j& G! Q2 C) f4 M* p+ M9 V
跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC
6 e- C* U) l4 I! SDEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以
* J* O6 c. M* _+ @0 @LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A
7 T0 _8 Z0 Y- ?1 `
% W! v' @. Z6 V* O) g4 G雖然 讀入至 寄存器A 這方面 還想不通,
% {2 [2 C1 \6 Y7 s! ~* j總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了 9 |* V" c8 e2 B" s
/ H3 P, O$ B5 y

1 d, q# B9 \) V/ N! ~* D0 [$ ]# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用3 P1 z+ r$ {1 v  Q
7 A- l0 N4 Y+ P
=================================================% D8 v  p8 Y( F
- f  ~+ l3 E" A* ?4 J5 W
說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
: n9 P, @% }4 S6 w6 V4 j) q) N8 Z9 ~) R( \' ~- B  C, I: U
一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字,
2 p3 L2 X" D4 Y  C# m1 e二 : 跟著 右按 選 以簡體模式開啟2 q" X1 Q5 B- E) N) n+ G
      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟$ D: x: u% z( b7 l9 @3 L
5 X2 {7 k) R8 w- b2 e1 Z+ h8 U

' V9 O0 T) h+ F) n8 x: l& M& J' [! R) z5 N! P) B- j6 w

4 L. f5 A: d" Q: P' a1 U' G. ]1 W) F* X  n* g% G

" n3 S5 G2 K2 Z1 I* p7 ]  V$ ?# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了
$ [( D3 ]5 z) L3 _9 \$ `" ~, a       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:444 [8 I& `2 @2 Z! ?
[0662]是地址,0x13是该地址的数值  @: s* E+ z* q, q+ Q. V

9 ]9 X+ H3 P: h; S- H; ?: y9 |DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

4 t3 h# a6 X# s9 ?# A今天又領悟到多一件事 {:4_98:} 7 Q+ c+ n' i& R9 T  d8 |5 s7 l

- A8 O$ u! k8 M! ?9 D於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白
, r* p9 ^$ g5 v+ S* U* B現在又想通明了少少
& N, ?, x& z- y* w, N+ c3 a8 m7 _% j---------------------------------------------------------------------------------------------
$ i* m; k0 T/ w: R: ~2 D6 G3 J% K+ V& q% C
中間寫著 :
9 `9 @0 f$ C; q7 @5 D  c舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A
5 H! V; T0 e. r/ O0 K起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?7 T" z) X# t" d
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ? 6 `( u% J% i: M& D& ^

! Q3 g( s; a" E  f/ w  y原來又是 16進制 的因由
) K5 n9 I2 a' M; q7 d; X1 S
, E& I8 u& u8 q* u! N& U7 L! A在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F, W: Y7 t( `% `
即是說 9 之後 不是 10, 是 A% K$ i6 z3 }2 l5 ~
2 j+ |% T; l  J" P& \% o
所以 1234+6 不是=1240, G% Q- J3 `$ F5 Q) T
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位 - H) ?5 f8 `/ |2 f  q/ T6 L
所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  6 o' N" m5 C1 X+ ]- g& D" z& {/ C* w
$ N: K1 v* _4 h1 G% z: e! @
==========================================
+ O" u/ `2 l9 y0 G# x. l% Q# a, b7 v3 e& o' x& i$ o- \) P( A
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了1 [8 j( k$ k9 ]& x7 J- E
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝, @6 F8 [, _: I

# J8 X4 D+ @' Q/ e$ J. V! R其實研究如何修改遊戲, 真的是非常困難, 且非常耗時5 n8 p2 y/ U# T. D( ~
我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
3 S- D- ]! W; c" {* g9 L7 v+ f) K1 ^' ^* a3 {1 }; H- p& I; `
说白了' R+ T3 A+ s) `
修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 $ a* p$ Z# H& n. N
疾风之狼 发表于 2014-7-23 19:44
. B" O7 m) d# l[0662]是地址,0x13是该地址的数值
! ~. O5 [! q: {6 V/ H- G
& }, {; \6 ?% }% EDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

( Q8 a- `) M* M3 ~/ Y, Y6 ~/ T( ]; n
終於成功修改了 赤影戰士 受攻擊不減血. g. |+ e! w* Y0 V" X1 I" w. j
1 H, g3 V+ ~+ {" o9 ?7 [
7 I8 _6 n7 ~, i2 O1 F$ N
% x) Z/ A; w& L3 P4 @
今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了
: n1 ?; P6 V  H/ b, F我曾試把此方法 套入其他遊戲去修改7 r" [- q- k+ |" ~$ ?9 n0 O
但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型; |- ]9 _: k% M
所以都不成功呢
, W) V6 f) K( r" G; h3 e最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-8-25 01:44 , Processed in 1.087891 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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