EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑 1 O( f1 ^6 Y3 W, G

/ w' x0 w% l9 C7 G' h在此先感謝 管理員 疾風之狼 以下帖子的分享
0 y7 W; o: }3 Uhttp://www.emu618.org/thread-21186-1-1.html
) Z  |8 g- B. y* o4 ?8 v  W2 x* b; C+ ~, ?; a
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了
0 Z, B" ^& i# F* z4 O成功一刻, 真是興奮莫名1 |3 `$ z' J. A
# D, U" d; _  v) y3 n/ t
, l: U* |, C' S( H' N6 ~4 z& ~" _

3 ^" t( A$ p6 U& x
  l/ V5 Y  {" j4 i) s7 \8 E不過也只是 完全 跟著指示, 過程中還是有很多疑問,6 a9 v/ r- g% z) ]0 D$ q7 Y
如不解開, 那麼修改 也只是 局限於 此遊戲
8 u: D& t4 d# c: z2 z' Z5 `  v  G) J7 C7 h2 K
===============================. j* ^3 ^6 H$ x

. I7 P/ p% N3 p圖6 後 的一段文字還是看不懂
* k( Y9 p' U2 w; E1 ]# _( F( p+ D6 C8 S; t/ g
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))8 p1 e) D: z9 z0 }, |' u; Z
問題一 # 指令表 就是說圖6 吧 ?
/ U- `! [# C$ Q! y; f% c/ e" E! `: s
問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
/ |( P9 a6 a7 F; h& z                0x13 不是應解作 數值 減13 嗎 ?
3 Q7 ~' ~; T* @" }' J4 B. E- z                從何知道 0662+(X)=...數值減1      
' ?$ g$ p/ y6 ]8 A' J$ R5 ?% N) f! Q/ t
-----------------------------------------------------------------------------------
5 j# L: @' }( x5 V) y0 R3 ^[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了)): Q% s/ o$ S& m9 o
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
5 R* T! ~4 |. r  b               
1 J3 V1 f3 G3 b/ ]問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA/ G) u/ b& J: e$ A

$ R7 \0 V$ h! Z, u7 I0 z$ S9 w% g0 I3 E* K7 Y1 ~% L+ C( U
-----------------------------------------------------------------------------------
$ n+ H& _9 T( `. ]& X[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))( h% J% `- {$ u8 X1 y1 g0 I6 `
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?1 w9 r4 @7 p: N. I! P

8 j) H( a, W# t# c! p問題二 # 尋區方式 即是什麼 ?. S6 i# e; t( e9 y
! J) h  Z) d. G. ]  Z2 b0 `

2 A8 z% Q: O1 b, Y! U' q$ a% w! _其實還有其他問題的, 不過一次不問太多了
. `( M/ B2 l+ Q2 X; z- c# O在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的" u9 q' {4 b- c9 q* o9 d3 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 编辑
& [9 |$ M, Y% Y# O/ R7 l
紫龙666 发表于 2014-7-23 15:22! n1 h6 ^0 H7 {3 f
你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。

8 d9 T2 H1 G' P* {* A+ h. ~' s/ p
! R1 x1 F" Z9 z/ z9 B. a& N  g先感謝 紫龍666 的回覆  {:4_118:} , k2 c& |( ^) F! l

/ f! o  u5 |' j2 c3 |4 w我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘- C7 B! X2 ?1 J1 [, q1 w9 C- \
http://www.emu618.org/thread-20393-1-1.html( `  t( \, W$ h, w. u+ b

+ N( ]/ D  k. E  m& _9 T  r" `% x/ I下載解壓後 得到一個檔
$ b* T: L" O* _8 A+ S! C5 W5 U8 s# S* W2 C; ?' P7 K6 ?2 L9 I; u4 G

; y* c; @) y% w+ t# W7 Z6 y8 l但我卻開不到這個檔, 顯示(無法開啟檔案)
$ Z! o. N8 _3 [: J0 W愚昧請問一下   6052汇编大奥秘 是否 一個文字檔 ( E) L7 C+ F% Q
此檔有很多文章在內 嗎 ?

点评

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

签到天数: 2115 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))- ^2 Z) `% _5 H$ j& M2 t& p

/ U. O1 n, I! z. H7 V問題一 # 指令表 就是說圖6 吧 ?9 p( R4 ?' h* J9 G4 K  l3 v

+ z, G, f2 f' p問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
7 D$ |2 {9 D1 G' J. k. `4 u* Z. A1 i0 f+ r+ n2 i2 R' M- Y  A& p8 [
0x13 不是應解作 數值 減13 嗎 ?
0 o9 T, ]% \+ b2 E: Z' S" G5 `6 x; f+ L
從何知道 0662+(X)=...數值減1
/ C3 H9 Z4 Q6 e# @6 V) L; t4 w
4 u  T! t  _: S: \; e
[0662]是地址,0x13是该地址的数值
2 R$ t2 V  V: V3 v8 g6 E+ G
5 d+ A$ ?: h& O5 WDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X& u7 b9 ]- i  c' q0 p! g  t
# O) {  c+ X$ a8 S
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
# W. o" \9 T  U
1 ^( n' z7 i8 q5 V: J問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
, D2 |' C- t4 V4 h' ^' ?. ]: `! p9 [/ Y/ y
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
: _. V% t. F0 ~) i" y' D  X5 Z8 Q
. f' {" {! J+ K4 ]( W
LDA是读,STA是写) C1 R' E" g% z- l

) ~- Q! z, {% wDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了
* _7 {% D, s" B
2 U+ k" }8 }6 f6 d- A7 PBEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转
# N" G' R* u7 }2 s( K! O
, A4 J8 C1 x3 r6 u3 UAND是逻辑运算指令
! @4 `& c9 S* W, J- H6 |, u7 X. Q
请看《6502汇编大奥秘》" _7 c% s! k* s0 J4 D, E
1 N& Q+ k$ W8 j' |7 R2 p' W% n
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))2 @5 m; Y0 i& @# T
4 x% K7 E: O2 y) H  i$ i
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
& U1 a" C2 p/ F( z6 d
' l5 g1 {9 s5 B8 \* r; R問題二 # 尋區方式 即是什麼 ?
. r. y9 o" C- F' t& s
/ W* G) a9 H* X! }. i9 a. q
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?8 H/ b' G6 b+ A3 E4 ?) H
5 s: i) m4 D( H( x& y
寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
/ l; G5 M8 L! |/ ^' }1 N6 d, a
疾风之狼 发表于 2014-7-23 19:44
2 o+ s: m% t( D3 F! e2 l+ o% P4 g[0662]是地址,0x13是该地址的数值$ N3 ~& h# v& o! q* ~

8 ^' ~. D; f2 i: l, x7 qDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

  |% G+ a+ I4 }0 T
7 s( W% {# I  N! i* m先感謝 管理員 疾風之狼 的回覆 {:4_118:}
$ U  L5 L2 L/ Y1 s* n- }. o
/ T0 B# u; i, e' \好像有些明, 又好像有些不明
- w, d7 }4 x6 q於圖6 下面的 [0662] - - =0x13. v* D, g1 q9 r
大大說  [0662]是地址,  0x13是该地址的数值" O* [1 G, M8 P4 Q1 j3 j
3 k! l$ x0 G" e6 w$ k
我先愚昧簡單的想: - z# Y2 d; Q' r6 \
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫
* q. _- @/ w; T' Q# Z(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 . s! ~9 H- f8 [2 R
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的, Z0 \- I' Y- S  q
: t4 b) _: @" ]! a
遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
' J0 t3 O% y# Q! n  v
- D- c2 p7 x0 Y9 ?4 _( `% {4 P------------------------------------------------------------------------------------------------2 E( b( r8 m' l
* b2 R2 j- J# P* C/ Z
跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC
+ v+ d2 u& I! f- R% Z0 {7 H$ c! GDEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以
7 ]7 T9 x5 ^2 ALDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A 9 j& s7 ?! L4 l2 T

4 `" u+ J3 V5 v2 q8 p/ x雖然 讀入至 寄存器A 這方面 還想不通,
* W# l0 I5 S( U8 @9 }總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了
) t0 x" Y; d" d- Y  P5 H" ]6 o- {7 @. U

2 b) m4 U  `7 w! T2 O+ y8 K! F# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用! y  S3 D. o, d! b& ~

3 j0 p( B" f4 E* n  R1 F3 g$ _; T=================================================
4 M# w' Z" j4 a0 f0 X1 k/ }* g' D6 W& m) N
說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
. w* C+ Q# W  `+ W2 O
  G$ K. [; ~5 z/ ]2 _1 n一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字,
8 @% I- m: V4 N, j% i7 y二 : 跟著 右按 選 以簡體模式開啟
! t3 r0 Z3 ]) V      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟5 t7 ]. q1 D; N! i$ ^  S+ T

5 A( o8 r2 a* e4 k: A8 x0 o! U
8 i9 K  O6 o! R% \9 Z, Q6 {3 `+ T/ m- N+ r3 Y, u, H4 s$ h1 l
2 `1 @9 ~8 G5 K  }/ K7 _& l
2 ]# {) N6 `8 ^# ^" l
. Z, k+ v' U% d
# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了
4 p( p6 H( N9 g* R/ s       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44$ h; J( l& f" L. w7 @- o6 P
[0662]是地址,0x13是该地址的数值
4 S% Q2 a2 V6 O" a1 f2 U& ]6 u3 Y
6 w' g% T# f" DDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

; F$ I! B# _- E! m今天又領悟到多一件事 {:4_98:}
1 u: l( v4 s0 Q0 B/ q9 w1 v' Y# O) o+ F8 O2 T% d- X; A* Z; [* Z
於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白3 b0 x8 S0 D2 q* J" v: w9 Z3 f
現在又想通明了少少
' ]( [! o6 y4 U  T8 M: w& q---------------------------------------------------------------------------------------------2 }( q" O! G/ b: t- v0 S! M
* W$ D5 l* k! M
中間寫著 :
( |& ?1 u+ A. n6 _舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A  H/ z  n0 l- k
起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?
1 V( q; c# O6 e+ p" W9 u% L或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ?
: M5 s) ?4 W- l3 q( \6 w  ^( w1 h, f$ d
* i, t- u+ c* J+ ~6 Y5 a- l原來又是 16進制 的因由
4 T' K) a5 ^6 o! {7 ]  W3 t/ j
8 H! V; Z& U( j0 U在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F# ~9 T  w3 H" L+ F( d- \
即是說 9 之後 不是 10, 是 A& T$ ^  S4 m& q) ]' T5 f; C

% @3 k7 {, T  [& S# k所以 1234+6 不是=1240+ @, I. R& ?+ Z/ [% Y' }& t
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
3 }) K' J9 S6 T7 j- q( \# I2 Z所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
# l+ K8 r# ?" W" V
8 J* x2 w$ Y, ]5 q$ s6 d$ @2 i==========================================" x" n7 J& b2 |, @7 J: N0 ^

+ `6 g3 v: r0 @2 F# X) w7 C& n" |& G其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了2 a2 A% |- v- r) \* i- W
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝% A- @2 h% x  j% J1 C2 W9 I# x1 h: V

2 |$ |3 J# |1 [其實研究如何修改遊戲, 真的是非常困難, 且非常耗時
- l$ @- J2 t' c我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改% q$ U7 n$ @9 f1 k% ?% e

5 F& x2 B8 G* s  u; _# p说白了* X- ^+ D9 r0 Q1 V. G
修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
5 Q4 O( q7 x  s4 }: R
疾风之狼 发表于 2014-7-23 19:44
# j: `3 R1 @" g; c2 k% ~' G5 @: ?! \[0662]是地址,0x13是该地址的数值
2 u1 i, C4 t$ x9 r$ }
$ j5 w9 A  f0 a& P/ b" aDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

* Z5 U5 e  U+ H5 e  F; i2 P0 S5 q% Z/ r- J+ q$ d
終於成功修改了 赤影戰士 受攻擊不減血
3 w+ }+ H; d7 U0 u+ e/ x. a: y* m* C# S

2 F5 P! r9 F3 {6 I5 M( V' T" K: `5 d( i1 j
今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了
$ L( c  P7 k4 B我曾試把此方法 套入其他遊戲去修改9 X! p! e6 K; ^$ N
但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型' `" y9 d( R# Q% [0 t
所以都不成功呢
  z* _( \, n9 t) [/ A最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-10-29 10:25 , Processed in 1.077148 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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