EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
2 }0 ]0 Q6 Z" e: B( P( G6 ~: I
$ \% |* }" E" D- I在此先感謝 管理員 疾風之狼 以下帖子的分享
; N4 L1 p* g, C3 g0 W3 |& ?& \6 x5 `http://www.emu618.org/thread-21186-1-1.html7 @! b. `( y; }+ E6 H9 O; I) i

9 Y' z! C+ J0 C0 t. J我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了
7 N  R/ q3 z( X) n成功一刻, 真是興奮莫名) z1 ^" i# i# s" k
* f" e% u5 C+ o1 I6 H

! |& e# R' X9 }' f) k. C/ z6 x
9 g& o9 w" T# F5 X/ J2 p& A8 X! [% z& r7 H2 [$ o0 s2 B
不過也只是 完全 跟著指示, 過程中還是有很多疑問," ?- `+ S! ^  x, @* G2 L8 U( ]& G& G
如不解開, 那麼修改 也只是 局限於 此遊戲! K3 p8 g3 N5 b% w4 p) J: o

) z" z9 t/ m2 s% v4 ?7 g===============================& V* q7 X/ S2 p7 u: v

1 j  k5 ^, n( L: s圖6 後 的一段文字還是看不懂
& ]: x6 d4 P& v+ Q# `
) M0 r. S9 A4 ~1 u, Y# T) n[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
5 I5 K5 E) K6 D8 a! E問題一 # 指令表 就是說圖6 吧 ?8 F3 j' r( f0 G/ A8 g

' J" Y& f/ W. d9 ?' q$ R3 S問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
3 O9 N7 v! h5 X                0x13 不是應解作 數值 減13 嗎 ? 3 {4 n2 x  {( y/ [3 ]' Z3 R
                從何知道 0662+(X)=...數值減1      
/ R% Y! a; h8 q$ H1 b# e7 f( V1 H& I; y2 n0 V4 A9 k9 J* Y( O
-----------------------------------------------------------------------------------) e+ ]* ?: _& E; Y7 p# [, C
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了)); R# w( g  a' d+ K( C$ E/ I4 a
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
, q2 r  x& j; M3 `/ B               
; U8 n) ?& l* H0 m6 U- O' e# V問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA. b1 @) D( Z2 U7 |% P! T
- i7 n  u( F/ W' \

! b6 d9 c& J( ]# I, A-----------------------------------------------------------------------------------
" g* ?) h& t% C* P& x- @[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))- L/ w' H$ @, m6 U5 A- p- P  n4 C
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
2 V5 u* \. q, @1 H+ k) f1 e+ l8 q; T  Z! m) O1 Z
問題二 # 尋區方式 即是什麼 ?
7 ?. [2 o0 E) e8 i  p$ ?9 @% a( D  Y0 I" Z( v$ {
4 Z+ ~1 a$ R& l
其實還有其他問題的, 不過一次不問太多了
$ d: l; _6 C- |2 _在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的2 Z" A) E8 y6 S1 r" v6 C& G
就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑 4 ^5 ~( v; ~. s6 G: R3 x7 F
紫龙666 发表于 2014-7-23 15:22, r3 ]& h9 S" w2 w& b
你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。
, I1 T: L. ~& k. B& a9 X- Q  u% X" P

4 g7 r2 H0 d" B& g: [/ u# D先感謝 紫龍666 的回覆  {:4_118:} 3 M. a/ ~% V9 s8 y* r% R" N

6 D% A/ L5 t+ V* [5 P& V' |我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘8 W1 \0 e( M1 y, W" [6 X/ U
http://www.emu618.org/thread-20393-1-1.html0 m# z$ t, }8 @
* Y/ s+ o" f( ?+ o7 X2 c" O
下載解壓後 得到一個檔
7 a" J. c- M. l9 q- c1 f$ E$ [3 f9 g3 v9 D
  r) O3 O7 F6 q% J0 V
但我卻開不到這個檔, 顯示(無法開啟檔案)* t: D0 f; T  v+ H
愚昧請問一下   6052汇编大奥秘 是否 一個文字檔
: P$ D& o" @! x8 M; Z: h2 q此檔有很多文章在內 嗎 ?

点评

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

签到天数: 2049 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1)). [8 y! n# g  Z) m3 C. z' X" m: m

& M! p$ Z" g: t4 E& D問題一 # 指令表 就是說圖6 吧 ?+ c- @) r8 s/ D0 T" s& R/ o  }5 ^

# i( _. {( S  I3 c問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
6 [( A; ]- f* {4 n# u7 a% L$ C
0 ?0 A& m+ c5 ?! F8 H3 X& V5 O0x13 不是應解作 數值 減13 嗎 ?
, _2 p- i+ p/ M+ y# A- E
8 c1 k! d5 S* b# \! D從何知道 0662+(X)=...數值減1
; s, J) n9 L2 M+ N0 [& {) D( i" a

: B* |/ S) ?% B% c; l  b/ F[0662]是地址,0x13是该地址的数值# G0 I9 e" @; W2 l* g. X

5 N  {' a1 U% `3 G- MDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X' @4 }. @5 H, J+ }4 \
, z  o" Q2 I5 h# v
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
* H1 A; ~' X4 e% v! h* D$ W# ^/ J/ V7 J
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
7 X& v- z: N& E
9 Z. z% `1 r/ Z. V6 k* u問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA

. h+ k1 y7 ], q1 Y* _6 g9 h% {# [' a( C" b2 d1 G6 `
LDA是读,STA是写, x6 V- R2 O/ g6 [7 h
7 r3 d* [" L% C$ c! q( G5 t/ x
DEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了; p, g3 I  q7 X1 b
8 F* d) n- i7 j8 M2 Y8 p# k3 u" J
BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转
9 ^2 G7 G9 l, b; C8 h3 T* V/ \3 \% p2 D/ E
AND是逻辑运算指令; r, o/ {* e- }5 y# z: A
+ y& L# ]: q" Y4 p
请看《6502汇编大奥秘》8 C# d  W. r4 L3 W) P6 c  @# [, ^

& i1 w0 Z4 _/ N; n/ [: b  Y; d
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...)), ]0 g% [' b( Q6 G. h5 @, W" s
! f/ g) @$ v: |; |
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
8 S4 ~0 Q! O: Z. t
3 w2 Q7 B0 w- E/ i5 L+ x' V! t1 A  ~7 c問題二 # 尋區方式 即是什麼 ?

% \$ ^' x6 b. ^: Z/ U3 G' K  N& ?: {, T: X8 j, t
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?
9 j0 u6 S* b( s1 I  {  x* X/ L8 {6 R$ s. z3 y% d6 ~: Q) N4 g5 i2 |
寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 . {! V0 ~( d0 {3 v+ p5 C7 V8 r
疾风之狼 发表于 2014-7-23 19:449 X3 d! H8 W. m# m, a# N, Z! @8 R" N
[0662]是地址,0x13是该地址的数值- {; R: f- u5 \" v8 _+ b/ e, l

0 G! ]7 D) L6 ~1 y  pDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

; d3 ?3 I  U# R
( a6 {$ o* }2 v$ S" j先感謝 管理員 疾風之狼 的回覆 {:4_118:}
9 f* ^/ x" S! H  u3 {! }7 l" x- ?+ E3 ~8 l
好像有些明, 又好像有些不明
. i1 i% V- v% e: L6 ~5 v於圖6 下面的 [0662] - - =0x13
5 o: l# H0 c5 S3 p" ^! W+ E0 A) l大大說  [0662]是地址,  0x13是该地址的数值
9 j+ _6 _. V: y+ r6 C" B1 u% T" ^
" g4 ?( T$ M+ \我先愚昧簡單的想: " ^2 ~0 g# c* Q* T; r2 S' P/ j
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫, P, K6 m1 w+ C& }4 s1 g2 w" o
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 + W7 [: Q$ J; j/ t2 |2 I* |0 X
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的5 z% G# n# d; f1 |

+ f9 V# s) y9 S% k遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19( x* F! i6 W1 k
; u5 {* m9 Z. `
------------------------------------------------------------------------------------------------  S$ N5 S& ?. D* T

0 l' S8 _+ n* Z+ T; |+ W" `跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC
: f; J# c2 K8 J6 u* dDEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以( @5 T$ T$ V- t7 W+ l  ?. l
LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A
) ]) f& t( S7 F5 {: {, m# b. H$ k9 U+ j7 w. F7 j& u
雖然 讀入至 寄存器A 這方面 還想不通, , ?7 t% d, v9 @+ W" e* [( Z
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了 9 i0 `9 M" c/ q1 x# R7 K  p1 z

) t! d4 ~' M2 C3 m8 B8 U! A5 _+ ^6 E" r9 R6 l5 p5 ?
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用
0 s. M2 W5 P! o4 i! i; R6 W6 R; Q3 @9 y; Y% _% p5 r+ S5 o2 K$ _) V
=================================================
1 @6 ^( ?$ k9 H* ]7 r* @; [+ H$ ?2 S& v
說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :: }: i; Y  c& F2 z+ R) y
$ N. H& V3 U% o: g( _3 A$ J& s: U
一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字, ' d/ E3 p! R4 v2 ~$ p
二 : 跟著 右按 選 以簡體模式開啟( I( A3 s! z8 ]9 M# y, t5 ?
      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟
1 _% h; L" ~% J* G$ A+ E2 E/ _0 j" ?& a  b9 Q3 P- f
8 i0 ^: Y* h! `
2 L, ]5 \0 m5 a2 x$ {

' ]- L7 F3 u) r
% p4 e2 H4 u1 ~: Y7 h. @" b+ z& T: D- l
% [4 M% r  F4 z# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了
+ \5 w) r" f2 S# W$ O( X0 u       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44' K- y& V1 M5 X8 v% i; C. h7 t* o
[0662]是地址,0x13是该地址的数值6 J, m& N! f- p3 c; m
: `: t4 j3 B8 Z$ K" W
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
5 Y6 o1 X- P: V" d% ^
今天又領悟到多一件事 {:4_98:} - \7 F, W1 \& `* r0 H

3 ?6 E# t% N- U8 O0 `於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白
( V2 G  V! Z9 k( [) L現在又想通明了少少$ a# l0 e& u& T0 i, P
---------------------------------------------------------------------------------------------/ i; Y1 w- ~9 X1 ^1 T

; r! L: W7 _' t5 K, t; }. ~1 q中間寫著 :+ z% N5 I. z5 I$ o) T
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A+ [/ o' c0 M1 z2 b( V$ I* A
起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?* H  \1 ]9 M3 O9 @+ J0 j& A
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ? & L/ u8 D; d: j
1 t3 q+ ?4 n& |" F% z6 U
原來又是 16進制 的因由
+ t( A' c. @/ [1 I% F( p' r8 o% E& y# q( ^- Y, U! [4 s
在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
: t  Q7 X: U$ x; b' o, P, `即是說 9 之後 不是 10, 是 A
. p2 a& f, ]" A" X; J1 Y9 o1 ~, x- @& q+ Q" I8 d
所以 1234+6 不是=12406 s8 Y+ r; k: b, M  Y
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位 9 X& w2 s5 c4 v. p* K5 j5 M3 b
所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  ! d5 J8 k9 T8 `+ h# Z$ k; `" @$ h
/ V! o7 x  Q0 c3 @! `
==========================================# _1 U8 x5 {6 L
8 P0 D! V; y  d  x
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了+ Y2 v: W( w3 I
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝! ^# ]' \+ j4 R4 M; E& K

% J& e6 C2 K0 ^/ g; H其實研究如何修改遊戲, 真的是非常困難, 且非常耗時
  w" o+ H) D/ ^我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
) T- M0 v  Z' ]
5 q1 E1 |0 p, R* }* t; F) e说白了
% Y' J/ ?" b; [  A6 G修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
7 h, h, |7 m$ h: p" o+ h% f* g6 I
疾风之狼 发表于 2014-7-23 19:44# H* _: f* N+ U4 M0 V
[0662]是地址,0x13是该地址的数值
' {" W1 E. g1 T1 g* U" ~' y$ W; {# U0 Y; M; U
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

, Y3 D0 y1 V" |% V4 [# n1 j7 @# E7 o* e5 S, O
終於成功修改了 赤影戰士 受攻擊不減血& A2 X5 W+ L8 G* @+ |2 r. |! w
9 s( w5 [  A2 ]$ d6 p# [( w, b

7 `/ F- e' V' q0 X" h$ w. Z! m% M5 P
今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了
' U3 H* ^9 ^- U% d& j0 c6 o; n  K我曾試把此方法 套入其他遊戲去修改
& j3 Q% g' D% e8 |9 j但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型
1 t: y9 ]/ \8 a% U* {3 P6 O& h# s所以都不成功呢: T6 w' Q8 M* a+ k6 r% ]1 K
最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-8-24 22:09 , Processed in 1.108398 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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