EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
# Q2 A+ A' S8 L5 h, D$ j1 C
5 ?# z: `3 C# K6 ^$ Q7 c$ V在此先感謝 管理員 疾風之狼 以下帖子的分享
2 }- T. W1 ^, fhttp://www.emu618.org/thread-21186-1-1.html
4 g) e: K, U" a6 D0 S# O8 b) X) h5 H9 ?. ]
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了' A  X. a# D: a  j1 u
成功一刻, 真是興奮莫名/ p0 O+ |0 D" P- O# {
3 w9 X) X2 W0 e1 C$ W. o8 g( M) g

0 A# `: g: X/ I. e7 w
) y' Z! w9 A8 y: c" j6 S0 n: W  b
' r. l6 `; P9 x- j不過也只是 完全 跟著指示, 過程中還是有很多疑問,( k$ @7 x3 a7 _" M
如不解開, 那麼修改 也只是 局限於 此遊戲
$ ^- {" o: N+ ], b0 c) F" i0 D
. Q- Z  E9 H' r0 A( D/ @===============================
9 N! _, \4 g) z+ t+ c7 J% {& ]/ P/ }1 R
圖6 後 的一段文字還是看不懂
  X6 y5 _# Y* o0 a6 v8 D: b* r
+ O. D9 q6 Q. _2 }& k- F[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
: Q$ R) e1 f7 P  Z$ {" A$ O問題一 # 指令表 就是說圖6 吧 ?
) u  L. g7 Q/ }1 c) d# h. ~* O# C. X" k, v, W
問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
( x* o* i: r$ B0 s$ ~- N                0x13 不是應解作 數值 減13 嗎 ? $ H0 s" w+ T2 e0 n* K7 `  w+ h
                從何知道 0662+(X)=...數值減1      2 K7 D/ ~1 ~! U& s. }' {, }
" y! G" [4 L& ]+ `
-----------------------------------------------------------------------------------
" ~0 y8 ]" f7 Q& M" d4 E9 |/ C[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
" o! o+ k8 f# P! A& K  D! o問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?8 Q3 }% n1 [% r$ h% |
               
; c6 n9 x5 ?2 t3 l. t問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
( B$ m% Q+ u2 [: {
4 E3 M5 }2 m( o; B% |! X5 K# m: c
-----------------------------------------------------------------------------------  u2 z5 b. f9 H7 E* C9 Z$ `; ]; O
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
* G1 j" E* }- s問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?3 }+ G/ j- m: \
" C- F0 j- d/ w
問題二 # 尋區方式 即是什麼 ?
% S5 v2 t; N" {; k3 }, k9 q& j: e) k- C0 l6 L- [. O

! [) S! X: _: K: k' I其實還有其他問題的, 不過一次不問太多了! I1 L% s* @1 b; H! K$ G/ ]2 }
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的
2 a6 U  j0 E, f, R: ^就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑 . f# o% ?  H7 }- s  i
紫龙666 发表于 2014-7-23 15:22
1 G4 b8 D: A3 N4 u3 Y0 c你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。
2 f* l, X6 `. a" k3 s/ M$ a
8 Q, M. V9 v3 x( w5 s
先感謝 紫龍666 的回覆  {:4_118:}
/ _3 p/ q8 F- X( d# t; g. N+ i) x1 A1 v6 g( H$ M: `
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘
/ G6 f/ k2 `5 Y3 ^7 A* Khttp://www.emu618.org/thread-20393-1-1.html
/ ?; l, Q5 Y; w
! j6 C* `3 t6 y下載解壓後 得到一個檔
7 g8 W! L! [- l5 Q; }& W* J% D: k5 u+ ?8 @. G7 V* k' l( Y# b

' Y3 \1 m: j4 a7 {2 F* T但我卻開不到這個檔, 顯示(無法開啟檔案)+ D, I: M- T4 N4 o6 |: D1 c
愚昧請問一下   6052汇编大奥秘 是否 一個文字檔
" f; f7 e( h' p6 ^$ a+ ?, D" l6 D此檔有很多文章在內 嗎 ?

点评

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

签到天数: 2074 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))9 {6 x; i; o1 `2 @5 N1 O5 {% G: d
. b) t" O# c& z* n% o8 z4 L
問題一 # 指令表 就是說圖6 吧 ?
4 U& I" j4 w7 k! B+ @
  s& P7 |& c! P問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
6 {+ N% h- X( x! R$ x+ o! k& ~8 m& v  e: C3 V& L( N! T/ m5 _
0x13 不是應解作 數值 減13 嗎 ? * r. Z5 K* H0 m7 Q0 h

+ S0 E8 z4 n. [" F0 V從何知道 0662+(X)=...數值減1

% Y% c- {+ k7 Z/ Q- u. T- N8 W: i
[0662]是地址,0x13是该地址的数值
0 |& `) a- F. w1 J+ T* K. E5 x6 C6 d- ]$ g  a+ i4 E7 H" E4 Q
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X) V! F/ S" j# O4 ^

. J& A) G) D4 `5 S* ?$ p! S
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
. C' B7 j. D, v& j$ s+ K1 ?. `+ l
! d3 w2 Y6 c3 U: r: z; X: E問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?5 _2 c1 q7 j7 z+ r4 }

: r( d1 N% Y9 i! S問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
3 H% r$ K0 D2 w
. r1 n: R; _( E0 v, v0 m% Z: v
LDA是读,STA是写
8 v1 \  \9 z% f- _3 O& A% a
  k: D1 I2 H5 o7 M# z( G: fDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了: F  `8 B0 X' c2 ~$ I
+ _8 j7 u" L8 Q  q$ c. X2 N
BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转
& a2 u6 A" Z0 M% o5 I- Q
* l# L4 F- `6 \  q. iAND是逻辑运算指令$ w; p8 H  ]; y5 P# d" V
- y: P: ~- S, k) K8 y
请看《6502汇编大奥秘》
6 b  ~) _# ^, F0 }; ?
: x% ?, n+ X/ d
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))/ W/ b5 r) a' w3 G: s: o
1 Z( Z1 W( j, w  ~2 M  W( C& b9 J
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?, }, |$ I0 u; G2 v& ?

% e+ ]/ B: b8 o2 G問題二 # 尋區方式 即是什麼 ?

, o* X" \5 W1 t9 m
" {! Z7 x* Z, e9 z9 m我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?/ L# o7 r. J3 U' B) t8 Y! l
% g' Y5 [6 l3 s8 W1 b/ L0 b. k/ C
寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 ! d# v5 n- a+ p! L: M
疾风之狼 发表于 2014-7-23 19:441 ~) Q/ O5 T$ f/ A, [
[0662]是地址,0x13是该地址的数值2 A. E& J/ d  J

/ h! a. {1 e. w/ GDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
% n" l1 i( x& g  M$ e
+ p" X+ D! P( b8 s0 s  D. C
先感謝 管理員 疾風之狼 的回覆 {:4_118:} 8 _4 s$ W) s; A1 n
/ U* `! b  V: C+ J
好像有些明, 又好像有些不明- \; ]$ g( T; G- b% w' Y! F, X
於圖6 下面的 [0662] - - =0x13
. ?& T4 K' o, U( g+ i大大說  [0662]是地址,  0x13是该地址的数值
* v. j8 Z2 S4 D) [1 v5 J2 Q3 @3 F8 u. i+ M4 r
我先愚昧簡單的想: 8 N  ]( f5 i6 ?) Q- h) z6 S" J
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫
7 L; P( {$ \3 O% q( ~* l1 H1 K(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 + ~3 D6 ^3 d. Q" x" p8 A7 H+ @
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的# {8 C) r( }! Z1 V
. ~1 l, A+ L7 S) `
遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
7 Y( n9 u" u) Z. u  n. W: z& i# w% f! O
- n- M* A' ~0 ?4 Q0 R1 U0 d------------------------------------------------------------------------------------------------
# d9 w) j2 ]1 U. k/ F' }7 ~. R, m, h9 E; @5 T5 G% I
跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC
: A& N, z4 a4 ZDEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以
2 h! }6 U4 d$ ULDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A
2 z! J. u% s$ {& k2 |; y0 |8 G4 m
. z2 C: N/ m2 d' r0 A7 ^2 g雖然 讀入至 寄存器A 這方面 還想不通,
+ i: g7 J9 O. y# Z總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了
2 \( N, }. T" c3 N" b6 h* c; a5 V$ B0 Q8 E

0 M5 [( b. I* |# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用
; g9 @( v0 K# |. V& a! q( O, T
. C* L6 q0 |  f# c=================================================' h5 N2 H' v' q3 f( m, Z0 e
: Q+ i$ n4 _: \! F5 O, Z$ i) F
說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
! h* P( c$ c! q* V* s5 B( I, T( I- H$ w; t! u6 f$ u
一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字, # B+ k; _( E! z1 ^7 c5 v( B, t
二 : 跟著 右按 選 以簡體模式開啟
$ l% S6 j5 ~4 w      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟
9 S% c# ~6 l4 @6 X/ U8 |6 G, P) P! g# J' S& r% T1 w8 }* _
* ^: [/ v) ?+ I* c0 n& J

: q' b% L3 ?* [$ N2 s7 {6 _3 E
# c1 O- Y5 {0 J1 a  r4 a8 Z! {. g" ]& j% k' i' |7 x. A
# \# v9 D( z! S9 s: l4 t. G7 D+ o
# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了/ M1 Y/ C- e  N. ?7 C
       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44
+ {5 k& p& n% L2 G7 E[0662]是地址,0x13是该地址的数值
$ ]( U/ ]" h3 |& l8 C# `6 h2 P% x
1 ?1 i" c: \9 [3 f% _0 NDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
' P3 Y+ L& J. C; _
今天又領悟到多一件事 {:4_98:} 6 \, ^8 y& w( {6 q4 \

7 E; k( R4 B1 j7 J9 x  v於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白
! B( {5 z- k4 ?+ o0 M& ]現在又想通明了少少
* s6 @' m, P% a---------------------------------------------------------------------------------------------
3 I9 M2 ], P. H( v2 [4 C& M$ p* i
3 J2 W, y2 z. d, ], c中間寫著 :
9 A  ?" k7 T) Z" m舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A
; o8 W+ {( A3 e: L" w起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?" B6 ~) d2 s* F2 }5 n& H. C- P
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ? ' v& M$ F6 {) ?: \
, L# A0 ]  _) [* |: U+ F( \; t, S
原來又是 16進制 的因由5 f% Q, N0 I# @( s: g2 V/ U
$ Y2 W/ [2 z8 f; v
在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F  _' w5 \  ~3 ]4 Q" q* e0 {" K
即是說 9 之後 不是 10, 是 A
7 A0 z' m- h( k" {
1 i/ X9 A3 \7 `3 l所以 1234+6 不是=12405 m" m5 @0 K" ^
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
/ }3 _% ^# }: ~3 f/ Y  }+ Z3 o- ?所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  ( ?4 ?# y7 T7 @. l; B
/ y. e" b" ~6 U" D
==========================================
, ?) j+ T% J9 U# L/ w& |: G9 x3 A# a5 J2 {/ o' k
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了2 I# H  d0 ^3 I" p; e
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝
. ~( ]6 ]4 X" C& w% a5 X  B& m. f2 J
其實研究如何修改遊戲, 真的是非常困難, 且非常耗時9 d+ A+ D% h/ {) W
我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改' \* v/ o$ L8 ~# I1 U3 f
, d1 H" ], q5 \! Y
说白了
) e. M4 w, i# O' b修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 ) _( ]. R3 h- B% p
疾风之狼 发表于 2014-7-23 19:449 w9 |, U/ S5 l# ?
[0662]是地址,0x13是该地址的数值
8 _9 \" B. s6 d" [
: ?0 J/ M+ \7 v: ~. [* MDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

0 b6 Z4 s# ~* A$ P* t+ Z4 A' Y% K. \5 t0 m
終於成功修改了 赤影戰士 受攻擊不減血
* E$ T/ g' n7 ~! ?- V  w8 G* L1 ~! F! g" X! q
' S5 ?2 O; ~# q6 }& ?

" r5 @, e) Y1 k今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了* D' p. O  y% x2 X5 ~* U
我曾試把此方法 套入其他遊戲去修改
2 O( J3 m* j/ h; G2 g+ P# u, z% _但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型
) C6 ?" [+ J1 b# ?; P所以都不成功呢" f5 H4 D: ^: s* |
最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-9-18 08:10 , Processed in 1.193360 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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