EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑 / |1 v5 d0 N3 y* s/ V. V" i. J
1 o: }1 R5 x& z
在此先感謝 管理員 疾風之狼 以下帖子的分享
# `  j* [' g3 ahttp://www.emu618.org/thread-21186-1-1.html
6 u, ^/ [' ]( l8 Z0 Z  n. b5 N! [2 x& j! l* v2 z' m8 ?
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了/ G2 {5 a0 I1 h7 d: q% w
成功一刻, 真是興奮莫名. S6 T# M" |3 n

- p& b) U/ X/ [: ?! `9 X( x8 H9 O3 D: @! \6 U) `/ u% q% D: e
7 ~" i& s- X, o$ h$ J

. e/ v6 P) z0 z/ H不過也只是 完全 跟著指示, 過程中還是有很多疑問,9 u. ?9 y4 U4 o) ~% W) ?
如不解開, 那麼修改 也只是 局限於 此遊戲$ q5 b% g. I" e' }+ p  `& X
' l5 r3 A+ ?) r' O3 h0 z
===============================
+ C+ r- t/ H8 i
  g! d& [& \+ J1 E# ^: e3 E圖6 後 的一段文字還是看不懂
% u+ u- @; H/ e# Q- P: B/ @+ S# _6 n8 E
( P1 \2 I9 k4 J[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
' T0 S  h" ?) ^( }; I問題一 # 指令表 就是說圖6 吧 ?4 o/ Z$ f- I8 R# q" W

! o8 H" T3 ^# L/ C. Q問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
0 L  k6 W, {* ?& X( E                0x13 不是應解作 數值 減13 嗎 ?
) I7 h6 s" o0 O! B. i                從何知道 0662+(X)=...數值減1      
# o, x' d% o+ Z% w8 U
5 l1 y! d& U5 }; }% H. P2 }-----------------------------------------------------------------------------------5 O9 ?4 @0 h; T
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))9 j! Q- t1 e; j. u5 a
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
9 u. R& @9 H" S) s/ G" x. j) c' a                4 A4 w% m2 d4 X2 v. [9 x
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
) S3 g: q" b/ _+ T/ b: v  \
; ^  z6 m* _% X9 Q9 F6 ]$ A" p. _5 v5 }  ^5 l3 K& C! R- Z- f
-----------------------------------------------------------------------------------
' F# |2 H5 c1 z[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
& _. o& |; m/ z8 j# V' c問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?& N7 U. L7 w  |2 T& q

5 F$ M, w2 O: E( ~! h問題二 # 尋區方式 即是什麼 ?8 D0 N4 r# F; W) _& F$ w

* u6 B5 K$ m4 ?6 C
) l6 j% C. }2 r$ H* Z其實還有其他問題的, 不過一次不問太多了* ?# R% i  z4 d
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的% O4 S) z4 b' W! \" S1 S
就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑
6 j5 E* f; F. `
紫龙666 发表于 2014-7-23 15:22- H8 [- k# i7 }! Q/ z& u% E4 P
你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。

7 q- z" f2 m# P3 D7 Y3 e- k% b( Y; M4 l) ~  f
先感謝 紫龍666 的回覆  {:4_118:} * K0 [! w- u9 S! E1 d+ n
. ~. b) `( \. V$ ~5 S
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘; N0 \4 N: s/ S; R- d4 t7 e
http://www.emu618.org/thread-20393-1-1.html( a# z" |- V9 S7 h! U9 }; D2 ]  N
8 L7 A/ y" Q1 t5 W# P, L: G& ]0 ]
下載解壓後 得到一個檔
+ z6 Y( Y: l: w1 H& M! ^2 r2 G& P5 w6 i8 G! }# ]
8 A5 `  ^1 q3 }' q- I' L" x/ C
但我卻開不到這個檔, 顯示(無法開啟檔案)/ j; `0 J4 Y; I4 g
愚昧請問一下   6052汇编大奥秘 是否 一個文字檔
. ?0 H# j$ ~8 V" ?此檔有很多文章在內 嗎 ?

点评

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

签到天数: 1978 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
* p7 `: H! g2 ~- G( \. C% r9 r$ @3 a. F
問題一 # 指令表 就是說圖6 吧 ?1 H6 S: M) w0 G# Z5 j

/ Z: H# u8 D2 t" e問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13/ ?% _& i+ A! R' J
8 b2 U* h; F0 }! t* x' D
0x13 不是應解作 數值 減13 嗎 ? . O7 ~4 x+ |7 v5 r+ v- O* i
* v0 @1 n2 X! k! V+ `1 O
從何知道 0662+(X)=...數值減1
& ^$ D6 `# @# C+ f; C

5 L6 c' L0 v0 R( s[0662]是地址,0x13是该地址的数值
! r/ X* \) r. ?; Y
4 m. A7 G7 r/ Z( E" P* oDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X2 {2 ^" v# j. S& W/ @, m
- J9 b, x# k$ y
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
! [/ u6 p- a: K! L
; X0 ?" H. p5 h& P0 C問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
4 e7 g1 @$ ?" q6 ?. {$ y( E$ O* T' J
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA

; o/ e+ @: z" @
1 d7 L0 R9 A' X1 k! FLDA是读,STA是写! G" D/ i+ X; R- q/ w
8 u( K1 ?2 L0 ~0 x5 N  Z- ^6 a
DEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了* \3 I% l( z& f, l% @- t& ]

3 H8 b* `2 u; A3 |- O! |" t5 E; f: `/ VBEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转
8 f! R: |& c1 _- g0 ~
& g; A' ~. X8 P- uAND是逻辑运算指令
, n8 E; y- h* n4 Q$ i4 B' h! K5 G. @2 p- K  [) L; ~
请看《6502汇编大奥秘》1 P5 o7 i) |9 ?3 p3 ^* u
# `2 Q! s& R: v0 m0 _* g' l
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
/ a. |6 X: C( Q* Y2 w/ D) _: Y! c  G% T! S, Z; T) t$ _
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
* |, f6 N& k- j" D. m' v  U
' N, _1 }/ [4 q問題二 # 尋區方式 即是什麼 ?

. P- X8 l  K: d- S& |# v  h- a( n+ Z- ]2 z
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?
4 j7 o% Q0 Q$ x6 e  u0 Z5 F8 T0 w$ ?! Z
寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
4 |. _- l4 ?6 M* K9 M2 d
疾风之狼 发表于 2014-7-23 19:44- O1 t$ D$ q6 w; i( [
[0662]是地址,0x13是该地址的数值
* b3 Q6 Z' _0 [( u$ q7 u2 V2 B  ~% u
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
2 D. ~; g( G) ?

& D$ k, E9 L  g% k) E; v5 h先感謝 管理員 疾風之狼 的回覆 {:4_118:} 4 L9 ~) X/ f" C) A5 i# A
, Q5 n/ a- n# e  O4 }! q/ t8 C
好像有些明, 又好像有些不明
2 h9 A2 h7 a3 D: k於圖6 下面的 [0662] - - =0x13. ^6 i0 h" N) n8 ], y
大大說  [0662]是地址,  0x13是该地址的数值
& r( c9 H! B! L. C8 ]5 p1 N( f$ y5 s0 Q! O9 q& y& t5 v
我先愚昧簡單的想:
7 d! u0 M- q: J. d% e/ q0 a+ N1 ~(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫
4 @4 A6 J: P- G, @6 Z: d1 O(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢
+ G/ W1 X! {  A                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的- g/ D' K+ h  ]# }

  p5 V2 L2 y/ P1 E2 B( l& l& x3 o/ I遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
, W6 h, _7 r( Y( t8 L- m2 q0 X! C, J4 V2 W$ g
------------------------------------------------------------------------------------------------
& I# D0 {8 G' x. a  r6 D% Q) h
$ S$ m$ A% {. Q5 V( U跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC; k: N  s% B" z6 b( h' w
DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以: }1 f: p! \" M; T0 F3 `) O7 U. a
LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A 5 h2 u- W  b8 k# y; t% r* ^

+ s3 o% V3 D* z( _4 D雖然 讀入至 寄存器A 這方面 還想不通, 7 b, q# X! ]9 v
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了
, l! {  t2 L9 [: m! o8 @6 ^& X% |/ W0 l7 p" o3 l9 d1 u3 o
+ W/ m: W4 m0 h0 {7 q' d
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用
. a! {" o5 Q5 ^" A, E7 V  N+ S: {5 L4 T! w% Y% c- s
=================================================" @* L7 w7 Q) T6 b
, [( d, b/ ^0 N) f: ]0 ?3 c
說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
7 b! S: }# G7 L4 T) _) O8 N% v; l3 L9 v/ X$ ~
一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字,
: [, r. g5 {9 O8 [二 : 跟著 右按 選 以簡體模式開啟
/ z2 x9 f, v2 z      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟
- p" n, g# s3 S* }( d1 O( s! C0 ~8 x% L/ Y* _% ~7 Y
1 z8 S: m" P' a) T5 T) g' b: r

7 V- P1 z3 R0 `0 k! q& L
& u! p7 q, e# g1 N- U7 U3 G3 y3 U2 b8 c' ]5 g! I0 f
3 s9 ^6 c5 c$ z$ t
# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了
4 L9 K  B' Q1 L6 c/ R  K; }       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44
8 P* V# V' u( t* z  C7 m[0662]是地址,0x13是该地址的数值
2 Z# M" l9 l) s3 ~
  ?* R! W0 F* K$ \) nDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
" l! {2 r% z5 |- n2 G. Z
今天又領悟到多一件事 {:4_98:}
5 h& E$ [1 [" D! o
1 ]3 F* }: }4 {於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白5 X1 X+ _& g8 r5 P9 K
現在又想通明了少少+ }/ b( Z6 }" r5 g/ z
---------------------------------------------------------------------------------------------
( x. z9 k6 b" O" [& h0 ^! U, Z: Q$ ^( {+ H
中間寫著 :" ^' _/ g# R) Z& d
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A
2 r6 z+ E8 b7 Z7 V3 @起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?" n& D' _% \: f( j7 a5 r
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ?
3 J2 M9 m. W( B3 F( i. `, l6 p" B% z
原來又是 16進制 的因由. b# Y6 s9 j1 _. {4 w) c. W
+ L  a3 y4 {# e& q6 i, [
在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
3 D* ~6 n3 G  [& y! S即是說 9 之後 不是 10, 是 A. O& f; |' N. n7 k' y

" K1 [  C6 i* @所以 1234+6 不是=1240% p, C6 _3 G( k$ [) Z
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位 ; i, D5 o3 `4 \- W: I1 h3 ?
所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
9 V1 r% k$ I" y& M* W8 m- f
. V4 H( f1 j( ?$ G2 s! b, S==========================================
  ^$ A! t6 V9 [0 A* H# R: J" E1 x  Y7 }! h% X4 |
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了
, Y" v7 D4 G+ d4 j$ e" T+ R4 u/ g2 F除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝
  M( J/ k- l- P' a
/ f! J  p" Z& A* E其實研究如何修改遊戲, 真的是非常困難, 且非常耗時! q+ N* k# G9 X8 U) x
我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
" {6 }+ i  @1 r1 |9 R5 Z7 a8 ]0 r4 o0 T! |- R0 v
说白了/ l9 N+ p5 z& z/ M1 y7 x
修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
& L- K4 E2 i' O# F" h2 Z0 ~
疾风之狼 发表于 2014-7-23 19:44- C1 H% s( P: ?$ V) J  O! D
[0662]是地址,0x13是该地址的数值
8 k5 b+ E) M& ]& ]2 Z2 _% |$ O& E# Z) H
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

1 H$ ?9 E: N& O- J8 S: r# \
) H7 t/ J2 L5 W* f! u* T終於成功修改了 赤影戰士 受攻擊不減血# m0 V( E6 T$ _$ z
& ?. _; Q, ^1 E  x1 Z9 Z
& o: q! [- Z& @, l

! A6 H3 |9 q9 ]% D  E+ \) z今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了5 E% J: e5 c- f0 v" ^
我曾試把此方法 套入其他遊戲去修改
/ h; a* k: \% I+ P9 x: d: m6 v但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型$ F' q9 u* q* j' O7 k
所以都不成功呢
- s8 s: M& l% v( V最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-6-14 23:48 , Processed in 1.084961 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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