EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑 2 }  N9 n% ?& G6 E

1 `' e3 E  s' G, b0 \2 O在此先感謝 管理員 疾風之狼 以下帖子的分享
1 m9 H" }) H/ d5 Ihttp://www.emu618.org/thread-21186-1-1.html* p8 L% ?) H1 M- p; C- H, i

: H/ G+ E& B; i3 c我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了: F" ?& S0 H4 z% R3 K2 K
成功一刻, 真是興奮莫名9 u$ L- l2 |  E0 m3 L3 t
0 B$ }  V0 f+ @" b

/ L3 H. q8 Z9 T) E4 e1 P
3 `* u+ `4 N( [$ ?" E- d3 @$ |  C) K0 k
不過也只是 完全 跟著指示, 過程中還是有很多疑問,
7 E! b8 p- f& m- t$ R( Y3 B; u如不解開, 那麼修改 也只是 局限於 此遊戲1 f2 g% A' u5 ?& `9 J
' u0 s2 u. O7 ?+ B* Y3 u9 r! ]
===============================2 W- r# S1 H* A

4 \* e1 b: U7 _, H5 p圖6 後 的一段文字還是看不懂
  o) u! p$ r- U/ s7 @5 V: w4 G2 T  O) V0 j' m5 |) l, q: R! V
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))9 o$ `+ e4 B! S+ O6 c
問題一 # 指令表 就是說圖6 吧 ?
# M" o3 g/ V2 ~9 J5 m$ n! i+ t8 w7 J8 X5 v- A
問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
9 L  a* c3 n' g0 \: k% L                0x13 不是應解作 數值 減13 嗎 ? $ C- A' I1 b3 ^8 H
                從何知道 0662+(X)=...數值減1      % C2 Q1 Y, Y+ c7 B. H8 A  Q% I7 N6 ]

( `3 A& r3 ^5 E+ l" W! W-----------------------------------------------------------------------------------, u# Y/ r  Y- E) [9 U( x& \6 H
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))6 L! K- ]. `8 q& B8 b) Q5 m
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?/ Z- w" h# j3 g- U0 z+ W- s  L% r! O
               
. e3 Y$ O( n# S1 @4 g3 A% G問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
" W3 b' K" C6 F/ t0 o( |
" _  C4 K1 _. I5 b! k5 ]1 a; T# t1 q0 j) `1 ?( }/ ~+ A2 t
-----------------------------------------------------------------------------------" w) L- r) g9 \( @, e* V
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
9 w/ a9 O% ^) Y問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?& v/ q. p9 j+ r! H1 _8 [0 @* f6 _

+ f  @5 @  W6 W  A. M( T問題二 # 尋區方式 即是什麼 ?% u2 [. h& R) [! K

/ u! R9 d7 j. e9 ?& I1 K: S
' R; U) m1 `; u$ p$ M8 n5 w( b其實還有其他問題的, 不過一次不問太多了
9 V6 x6 }  o/ n1 m3 Q在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的
# g( \1 ]3 P* ?就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑
$ ~! v3 t+ k0 \! [6 g" M1 w# k
紫龙666 发表于 2014-7-23 15:22  o/ t0 F8 f7 V+ R) U3 u" P4 h
你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。

) X8 i) |4 C9 O7 ^$ \* t' ]$ E. F
先感謝 紫龍666 的回覆  {:4_118:} . A: y6 {$ e  u0 f& ]
7 x% J/ k. j( X/ }7 V$ b  f8 {
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘
# M) K  _2 G1 Uhttp://www.emu618.org/thread-20393-1-1.html! F8 v3 ~. w0 ^4 ]: ?" i% j
# p* k# Q4 y8 X, o' s
下載解壓後 得到一個檔 6 e8 T' }+ t3 V# U) S  V3 ]

- K, U* Y0 S7 J" v+ |' ?0 j" G! v
. N: I9 j* \' Z1 [  L4 B2 ~$ P但我卻開不到這個檔, 顯示(無法開啟檔案)
  U: R* L* o( O0 _3 ]# F! S愚昧請問一下   6052汇编大奥秘 是否 一個文字檔
, g( v+ m' r' ]6 Z9 Z0 C& ~7 R此檔有很多文章在內 嗎 ?

点评

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

签到天数: 2167 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
7 L& W, s1 P/ R& J+ w9 u
0 q5 R: y! M3 z% C! x4 a7 B: v/ J問題一 # 指令表 就是說圖6 吧 ?
: h# C# u0 N9 k% E; h; \/ _, w
8 n! c  |4 s% E8 X+ _# c$ X# L問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x130 P: U5 G" j7 L! t" f

6 S0 s! [1 ?! Q; b, j. \  N0x13 不是應解作 數值 減13 嗎 ?
8 c3 K! a0 O! ^0 I  ]" y8 J* }# x" Q* s, M' a
從何知道 0662+(X)=...數值減1

# X9 Z4 {( D3 m0 j5 g+ D0 @2 A& \$ d6 `/ O
[0662]是地址,0x13是该地址的数值4 d% P4 p+ q0 W3 Y/ C* C0 ~2 u  M( h

; Z* F! J! r! Z  hDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X
  X; A# y* k- l9 {% _4 M/ _0 P& y6 y( T
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
# O1 z4 L. S7 ~3 E- J  W4 I6 s
- w7 Z; S4 B' ^5 v; \問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?/ g/ Q3 n+ l3 I- ^: c' U1 r7 \

( L! m2 m8 @+ U問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
( L3 H' {( a- m' C1 ~- }
4 y* p5 t& W4 F' O$ ~7 I6 r1 I
LDA是读,STA是写. |: ]( J. }- U: Q2 M# b

# C2 S# t0 b: H) ]  {3 p4 lDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了
# O0 U& F3 u4 I' p9 {4 O
/ c/ R$ n/ B7 n7 lBEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转
. X: c/ M3 J9 X/ I7 |" B* |5 w; ?) I$ e" L# Q3 c
AND是逻辑运算指令
! K" k' W% V% E' ^" {2 z! p: ?$ E. {; K6 i; Q6 y+ P
请看《6502汇编大奥秘》
9 [3 u4 }- ]" \
6 o. T9 ~% q; b: u0 `
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
4 ~" ], }3 Y" J6 K: }! ^2 r7 K$ b  a" x
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?% {* N7 ~& f+ _- K% W
  p. `/ w/ U- T$ {
問題二 # 尋區方式 即是什麼 ?

' c" r* \0 Z) U4 u3 ]
& I; w: G% v4 s/ R" I' `我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?3 k2 G( t. h# l  T
0 N5 }4 ]0 h" D2 h9 V0 n
寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 + B! w% y8 E- j+ h
疾风之狼 发表于 2014-7-23 19:44
; U$ y, n$ ]3 E8 H% ^+ `, w[0662]是地址,0x13是该地址的数值
1 u$ J& T" m) D2 z2 v. B/ K9 @* }
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

, s4 y7 S; [% Z+ |8 d5 K% j9 b6 t. J7 n
先感謝 管理員 疾風之狼 的回覆 {:4_118:}
; E6 }7 V/ @+ ^/ K/ `. |! e9 Z( `) N* x  v
好像有些明, 又好像有些不明/ g5 X- K( j1 j7 K$ N: M, ^
於圖6 下面的 [0662] - - =0x13
( m! n' R4 K3 J! a- F* n8 p( _大大說  [0662]是地址,  0x13是该地址的数值
& K+ B" }: V% a8 I0 l+ H& p6 g
, l4 ?8 C4 x& [5 k  P$ X我先愚昧簡單的想:
! G* D0 ]2 T& E2 f(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫- f7 s% T. I; C: }* ]/ B
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 7 B& k# W0 A$ ^" P+ I1 R; r
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的
" _: R& q+ }. d* `% Q2 O4 S2 k$ o8 v' M8 K7 r
遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19! R$ w8 T# w0 }* V6 ~& |& D

. V: E7 `3 C! C! `  f------------------------------------------------------------------------------------------------" a5 a) y+ O" Q

4 s( t  Y# J+ V& t8 g4 q跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC; n1 O5 i, j! x
DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以+ F+ w5 h! G3 R9 o
LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A
' P" e. s6 a+ z. m/ j! n$ K8 P) o$ [6 \6 ]+ d6 @
雖然 讀入至 寄存器A 這方面 還想不通, * I; u' u/ c7 i) d8 a
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了 ; @+ J( M  [8 w! S& P, q( b
" Y- o* {8 e9 x+ b2 y
0 y' g+ b4 k+ t1 U4 F
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用& F3 Z2 w% j) S1 c2 U% f
2 F1 J$ N, k# y: d9 R
=================================================
1 k7 b) U2 L* j: M, t* o8 |" s" \9 p0 G( u% C4 W5 W; B5 N" T
說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :7 H* e* m7 p3 \/ X# x

) `8 i9 a' v, e8 m) N# ]" V$ c一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字,
/ b- W. B$ g6 x二 : 跟著 右按 選 以簡體模式開啟( I! l- v3 C+ X' H2 m' w
      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟
4 o% g. \- F. L# ^& P6 `' s3 r. i1 e  ]2 F: h
" {7 x1 {, }; f
/ O( M+ N9 F( O0 ?9 m8 Y
' _1 E1 s! _6 ^

9 j" c+ e. l8 h4 c2 K/ K7 F0 n, O# q( x
2 v& B: z9 v  h6 _# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了
; J* i8 x' t. `' q- @* ]7 C# S       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44
/ ]$ Q1 D4 V. q9 i" w3 Z[0662]是地址,0x13是该地址的数值$ c# I1 x7 I: Y# O5 `0 H" S
8 c. `1 P& j8 u3 N, K1 L& S3 \
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

3 \  N$ V! H8 J- ~8 p6 H" ^7 ?今天又領悟到多一件事 {:4_98:}
6 S  k5 M# q1 l" \4 g; ~1 W& }4 |3 a; d. ]! z
於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白
' a# a( x$ {8 M, Q& Q現在又想通明了少少
' |) c; C- x/ S" _" j9 j1 U+ G* L# V---------------------------------------------------------------------------------------------+ O% U% K8 _& Q) L$ P6 `
8 W- F" L' s) Z
中間寫著 :$ \) S% A" X6 O) L* v" g% t+ {
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A$ T/ r/ r, w: r% q: Q0 c1 z
起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?
8 |: @6 C# U7 U( b或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ? % p* m, ^/ k, X% R; J
0 \; i$ B4 d  R
原來又是 16進制 的因由
, j0 m% q, J) C0 ^
$ O3 O( ]+ [8 X$ w在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
# d# _% {( ~9 r即是說 9 之後 不是 10, 是 A/ u- K+ t. Q! U6 x! y& n+ z, U

/ q  v: a8 m5 [' v4 |% V所以 1234+6 不是=1240$ q  j* ~- v- A4 B/ D
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位 # m* @% U/ g( T0 U8 x7 o" W/ G
所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
. g3 o! r9 T) ?9 |, C8 Z4 k4 O/ f$ a * d, m' B9 w7 T- ?1 z2 M
==========================================
7 v) F# X, s8 X8 z6 e: F( y
2 j0 x& I5 X0 \2 w) Q# s其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了
9 F3 F  h# x3 L: P4 D除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝
$ i* F, I" Y% Y! |# A) G. Z7 H5 I" B$ j2 M: l1 u& r- H! j
其實研究如何修改遊戲, 真的是非常困難, 且非常耗時
4 r8 W  m& T" `* T. l5 }2 O我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
' o, Y* c7 X9 j/ [9 o. q1 ], U- i  F  X( i- t& }4 a
说白了
( r# e* M' D$ E5 c6 d) k修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 1 x5 W# i6 w$ l2 c& T
疾风之狼 发表于 2014-7-23 19:44
/ [# l9 H2 I4 J( g) F[0662]是地址,0x13是该地址的数值
- M( v: E- b, v; V# f0 z1 v9 @
/ R# G% r' V7 JDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
0 B2 v2 e: K5 V; J5 i  i2 S
* a- j5 t$ h/ b3 |0 k- M
終於成功修改了 赤影戰士 受攻擊不減血/ O. @# o* X) K9 p3 @& b

/ H# U4 k) G7 L& P% U+ ^4 F
8 k" ^0 Q& z* t0 n* P) N9 S- l
+ o6 v0 R3 @" X今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了
: z+ k$ Q# q$ R我曾試把此方法 套入其他遊戲去修改0 U  R( c$ H4 P# @9 T/ F: ]
但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型) Z3 S' G* y. {& m
所以都不成功呢
1 m, x2 U7 C4 o' ~4 Q最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-12-21 18:00 , Processed in 1.077148 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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