EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑 % K; J+ _! p6 o1 h# v1 N
$ h/ p, ]6 O6 O( j
在此先感謝 管理員 疾風之狼 以下帖子的分享
- L2 w* W% U6 lhttp://www.emu618.org/thread-21186-1-1.html) i4 c, p. M$ d
$ o- I& }6 r3 d+ ]9 Y3 ^1 J
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了
$ L' K5 u! e7 F& H0 h4 @成功一刻, 真是興奮莫名- n) r6 _! p' ?, B

2 u8 u. \2 O4 \1 V
3 f$ b3 s8 q( p
- \! w5 B3 y$ k4 x; u
* y- Q  {+ b, b" X9 G, h9 i不過也只是 完全 跟著指示, 過程中還是有很多疑問,
" v$ o6 w7 i9 [如不解開, 那麼修改 也只是 局限於 此遊戲' Z- C% m+ Y. Q+ J) a8 [# \5 u& G
& ^( g) n; Q) \
===============================
  T2 w4 J1 `4 P( v+ _8 P
6 ^: z* d8 _4 t8 l$ }圖6 後 的一段文字還是看不懂
( y/ M; M& |" F) W7 P
* ^$ r( Y) ~1 b" D! @[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
) E) g8 H$ Q1 _; _% E問題一 # 指令表 就是說圖6 吧 ?. ]. W- Q2 z. a" x$ `
6 t$ P: X( `& o; J
問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x136 f/ X  y) q8 g1 c1 J
                0x13 不是應解作 數值 減13 嗎 ?
6 ~7 s, l! U1 c$ R1 I                從何知道 0662+(X)=...數值減1      
  A! A# s/ p1 p$ f/ k3 `' Q# k5 b
-----------------------------------------------------------------------------------
# u8 n% w0 D8 _( Y5 E8 K* C[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
0 m% C# e: N! L( c  [! s, ~7 h0 ^問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
) M* t6 w3 m; u, ]! ^                - K  a6 e. l/ q5 r& w
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
* k+ @1 @) B, C+ r; t; i/ l- B% F- A$ \/ m4 A
0 X* f% ?/ H( A) ?" n! E3 z2 r; P0 F
-----------------------------------------------------------------------------------
& }; |6 r3 U- a/ w' w0 q[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))8 v+ Y. s4 V5 S" K7 t
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
3 ?  X" V% X4 V/ W
" @- F* W; i9 w  p問題二 # 尋區方式 即是什麼 ?
  I; x! N* |$ g9 ?/ b+ c: o4 x5 @8 C& }$ k% j4 ^# }
' i2 I8 o2 R9 @! }* j: d
其實還有其他問題的, 不過一次不問太多了! ~- S+ t7 R5 ~
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的. }+ e1 G+ [1 B
就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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& u  d6 s1 D
紫龙666 发表于 2014-7-23 15:227 C7 V% a/ P1 Z
你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。

0 a6 b% }2 _' f& _! Z" o; y- T
0 t' O  z; C( k" w+ Q先感謝 紫龍666 的回覆  {:4_118:}
+ b) q/ Z0 b' q4 n% A9 Q
; r/ _! x% B, t9 @( Q我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘
# s9 {9 u- B3 V# h$ ^+ y* ghttp://www.emu618.org/thread-20393-1-1.html
! j9 v' T- I# U
, ?$ v' }* s9 r. a2 {1 u下載解壓後 得到一個檔 & L3 N! N5 b; |- ^5 s
0 x# x. ?4 F8 O6 k8 v+ U# J

! u: |/ t1 `4 R5 P0 I' z+ `5 a但我卻開不到這個檔, 顯示(無法開啟檔案)
, M2 ^% R" y4 C4 C9 A8 C# }愚昧請問一下   6052汇编大奥秘 是否 一個文字檔 ( w+ @  U1 i( B; B7 p: x
此檔有很多文章在內 嗎 ?

点评

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

签到天数: 1951 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
/ c) m) Z+ k% o5 L8 i6 X3 l: V8 ]" K2 `) D. o5 E2 B  [
問題一 # 指令表 就是說圖6 吧 ?
1 w* R" U/ e2 A  W! f1 v2 \$ o  l/ R: {( m1 N( S
問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
$ B4 J! S4 c6 ?( X9 |' c/ y3 x. q( B. d: A1 Q
0x13 不是應解作 數值 減13 嗎 ? 6 v5 ^" w6 i7 K0 _! R" k: X
6 e1 [* H5 C+ K  @! X
從何知道 0662+(X)=...數值減1

- G7 _6 z) j# y4 k: l
, f. d  q! h& {* {& o[0662]是地址,0x13是该地址的数值+ t. F* G3 V& n. C% a* E; X  L, n

, l8 c2 d) Y# u; hDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X
) Q* a" K  @0 R. R1 H; f6 I
# X0 e. _4 ]9 a# S$ ^2 S
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))7 p/ L. s' m+ w, @& k  t
; g: B6 U* k$ A' N/ f
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?% ^' i& o8 e6 n" C) ?  ^) n; U
- N( r/ \8 O! {8 E+ C- p' \+ v& q) m
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA

- M+ u- t! g. F# ^8 [$ L) [6 A5 _3 ]* @% o/ N+ v
LDA是读,STA是写) h% f8 x$ t4 y$ t5 n$ A- }
; i  E9 Z  D6 z5 z) z
DEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了  }, \8 r! \, @$ x9 d2 ]
/ f% K# q5 i: C  ?) S5 X
BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转8 e& g! B+ _* w" x' l7 h
1 V: n- Q' w2 f& \; V
AND是逻辑运算指令
5 i) _: c& O" ~7 [: r; t- d+ u" z% I! o5 r" g
请看《6502汇编大奥秘》
$ K- W, ]& s) V: g$ N; R+ }1 Z6 F& ^' c/ x' L# G: [" N) A# h5 U
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...)). G3 s, N  f, I, v  \3 \- V

) p" V3 }: j+ a+ ^; f3 n問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
$ [) {- K. A0 n! o
3 L% @' H4 Q. _7 f" `1 t; Y問題二 # 尋區方式 即是什麼 ?
4 t: y" ]6 a) N& ~; k2 @
  `6 N: E' |) m& v0 A* O) f
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?
* W  g, q  d& z. A" ?' i* X  R" n2 G2 B# I1 T' n
寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
! k( ^$ f- G. {& i
疾风之狼 发表于 2014-7-23 19:44
$ y% r4 t. E6 `9 B+ k$ v[0662]是地址,0x13是该地址的数值
2 \: E; j% B. e0 t9 y  {
; r; K, D! z& J) |: h$ yDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
- I$ ]' D; p8 ~! t
7 j8 @, B1 g! ~1 O5 s) d
先感謝 管理員 疾風之狼 的回覆 {:4_118:}
/ n$ g7 R  @8 w, [7 N
3 P, e- J- U/ I# Z! v5 O6 l/ h好像有些明, 又好像有些不明4 X. O8 U% n( L8 [5 @$ J" y- z. E
於圖6 下面的 [0662] - - =0x13
' Z0 u) V- g" k+ w' \! x大大說  [0662]是地址,  0x13是该地址的数值) D3 l; I% T0 d- t4 T
% @7 B8 W6 V$ O& S2 j
我先愚昧簡單的想: ( Q0 U  h" F3 H" T' t% ]3 T8 I
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫
, Q: G  ?4 d2 {% w& J( V  j* D. F(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢
1 \/ _: t  T! X/ e: o+ G                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的. }' ^0 u" F8 e+ u

2 }& y1 }5 [! h0 M4 m- G& [遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
) j) j( _" @- _; S; |( d) W5 Y9 b# R0 x2 }
------------------------------------------------------------------------------------------------* c) z% v5 h- H0 L2 l* L
3 a, Z, e; _8 a( \# H5 h4 H
跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC6 U  Y5 D4 M* K7 |" p8 t
DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以# x- R- I4 v$ z* l# R
LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A
" g7 t; `! {% M* b: E! V3 ^6 t1 D4 F2 q0 a2 ]
雖然 讀入至 寄存器A 這方面 還想不通, : e5 m2 L/ B; u! C% K8 ]# t2 q1 T4 a
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了
, D( `( V# Z7 ]8 {8 Y
% K3 R* E" ~/ i+ z5 E6 ?7 U0 O) q; _& s( |7 x
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用
" W! I4 B, Y' U1 x+ i4 H
# N6 D1 C; R2 o' o. Q+ o( ~8 x=================================================' `+ \9 n3 R8 J% l

. K7 H9 C3 y8 l* F說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
2 e4 P$ V5 X* e& P* R9 \  ]  V* V$ Z! U1 L7 l; z0 |% B. e8 A
一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字, 3 I7 Q  M0 [' H) @7 [
二 : 跟著 右按 選 以簡體模式開啟
9 [4 W2 o6 X+ Z      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟
3 n. @5 |2 H% F' a* C
! g, v9 i  F8 f  j/ ]* k# D9 A: L
6 t; G! ?2 X, J. \$ b) [4 O* O. {

1 H6 N+ c- j- Z) z5 S" f" m& l
  p. [4 `( V) l, ?
3 S+ D/ T8 d7 D# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了
5 R$ [7 D. ~. M       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:440 J& c" _; v, R! n
[0662]是地址,0x13是该地址的数值
5 g; U; X/ I2 \  p. I+ w: i; r/ l+ n6 j) Z, l& P
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

, Q5 j3 O1 ^" m& X6 ]) R今天又領悟到多一件事 {:4_98:}
& L& m0 l' x" r% b  k6 k0 {" C+ d3 L$ s
於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白
! e# K$ b8 t  T$ ~$ Q現在又想通明了少少
, U4 V3 u* b) b% }/ f1 a---------------------------------------------------------------------------------------------) Z  |+ u0 P! D2 s, E" U

" ~+ b4 C& `4 Q; D) [' h) P1 b中間寫著 :
- i* H6 c* s1 N* W! ?舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A
; T+ |0 x) b7 n  ^* ?- a起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?7 \1 Q) p% v4 R5 O; ~
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ? # N! v4 X9 u' \2 b+ T+ I7 X
- H/ J' }$ o: P/ {/ r
原來又是 16進制 的因由
* D5 Y% V; q( X
* [/ n* Z& J( z; g( F4 F, {9 T在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
/ ]3 `: i6 b3 k8 s9 F即是說 9 之後 不是 10, 是 A
9 N. N" p7 E# N3 w9 g! a5 j- m( @2 j$ N# ]4 w3 P
所以 1234+6 不是=1240: h9 }* ~: O  U
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
" i5 Q6 {3 g4 p9 m) P2 r1 N所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
' v) F' Y3 p3 R" [2 x+ r5 x/ r% X
) i8 x8 c2 z( Q3 \==========================================
. s7 y) ]; Y, ~6 O9 V8 {3 f; g: R+ G0 b' ~1 Q) u" g
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了- q6 k( s1 [2 r& w+ L6 ~
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝
# K- l& f. V0 t  k/ ^3 h) P0 H4 W6 Y! X* c. h
其實研究如何修改遊戲, 真的是非常困難, 且非常耗時
/ G8 U+ X* f; K7 G我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
+ d5 v# E8 D4 Y3 @
0 \, a$ z. ~* S9 M+ C说白了5 ^' x$ ~0 C! o+ s, w
修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
9 _2 h3 x# I+ J1 t8 I, `
疾风之狼 发表于 2014-7-23 19:44# B0 u. o' n# v' B0 @- n9 Q7 [
[0662]是地址,0x13是该地址的数值
, t% ~/ a/ a/ B0 k) }$ ~
6 t9 Q9 `. k" s: D& vDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

- i4 g5 H; h* I: ]! K7 n2 u! y
/ k8 e+ g- e1 Z7 V# p. A# w2 V& M1 D終於成功修改了 赤影戰士 受攻擊不減血
3 @5 D4 i/ c1 ?  \! J  [, Q
! ]& O) k& N- x8 ?* k" e/ L! T$ n. Z- F5 v$ B2 J5 c
, u: B+ H  q8 ?* W& _+ a, y
今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了
8 t6 S! O! G9 L# R( _我曾試把此方法 套入其他遊戲去修改
, x+ l* ?4 @  \; j, Z# H但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型5 ~, Y5 @2 j, S5 x) R# b
所以都不成功呢+ g& `- l! }4 n' u; u8 B
最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

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

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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