EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
% i* J+ |" G+ W6 c' N5 ?
. ]1 h3 y/ o- ~$ A$ W在此先感謝 管理員 疾風之狼 以下帖子的分享
4 t1 g) a( ~! T+ D8 J6 s, Z# Ohttp://www.emu618.org/thread-21186-1-1.html
1 \8 {9 h4 I. b# A+ p* d* X2 s5 J, D) a' K( P' q
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了; p. ]8 h+ Y0 p) @( n0 [7 |  \0 E
成功一刻, 真是興奮莫名
, z5 ^& B1 S, t; w
- X4 h6 \5 |5 L) o
' V6 l/ a4 s) R4 r9 {
' `( q1 u- U) D. `3 m+ T4 j$ {; \" N! b' u6 w, P! q4 v
不過也只是 完全 跟著指示, 過程中還是有很多疑問,8 s2 f) U! k9 U1 u
如不解開, 那麼修改 也只是 局限於 此遊戲
$ R* {5 c2 _: @8 \
* L% y9 R; n/ t& ]* p& Z===============================
; t! y) [' `. U4 t8 p) ~5 v
& Y. V3 r: V# }3 ^圖6 後 的一段文字還是看不懂* Q; a8 ]' W) ]  _) y# _& \, a0 E% j

2 H6 h1 y" i1 E. }  Y- M[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
; ^9 W* D2 J! d3 d問題一 # 指令表 就是說圖6 吧 ?
) f7 |# R; Q) r) d% }, ~$ G5 S( u3 I& ]& }  M$ r: i
問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
5 q3 p/ w9 W9 |                0x13 不是應解作 數值 減13 嗎 ?
7 N' b: E' ?' m& m" ?! {* P  f                從何知道 0662+(X)=...數值減1      ' d5 |6 n+ {5 n8 f4 ~  c

4 g. [- p+ W/ |! x; q-----------------------------------------------------------------------------------3 ?& p9 G6 T; q8 j# K1 }" i1 t
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))$ ]  b7 W% X* a
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
* d! b" d6 _7 I" g2 E8 F               
5 L" P. p2 I* f8 J5 f6 }2 o& ?問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
0 d5 u: E7 A, @3 S* `9 g3 a" c5 u3 u, g
' M2 C0 z0 ]# N2 K6 U3 k
-----------------------------------------------------------------------------------
( |+ |3 N4 `2 H[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
5 [! b- {' J& t' O8 R/ _問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
- Y- g! B7 d1 p, H6 \& V
$ w* _5 X4 m. V% V/ ~  }9 D問題二 # 尋區方式 即是什麼 ?
. Z& x8 ?1 `! Q# j# |$ W  _0 @! p" m" U3 p, y; `
! p7 H1 i/ B1 C# \. v/ y- w, U
其實還有其他問題的, 不過一次不問太多了! z9 f. Q1 W! Y9 C
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的
) H, z9 t5 x7 g; j就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑
* t9 }% K7 v7 s7 u2 D7 z6 \
紫龙666 发表于 2014-7-23 15:22
5 h  s, L- j3 F你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。
5 \% K) D- G2 ^4 V

$ t, x% L6 T, X; j/ E& S3 p先感謝 紫龍666 的回覆  {:4_118:} : E2 Z9 E8 N3 B5 ]  _" k3 `

! W: g  I% M$ m& v2 B8 G我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘
% x4 F% |* r0 w1 x' R/ S, Ohttp://www.emu618.org/thread-20393-1-1.html
2 n' `  G5 Q+ z7 _1 U
( |' j: r: l+ c7 H( \下載解壓後 得到一個檔
5 K5 U( ?5 _! L; O) l# O
' Y! B. E! E$ v1 H% p  [7 B* Y% Y( `8 e
但我卻開不到這個檔, 顯示(無法開啟檔案)
) S! F' F* D# s  @* C& F) |愚昧請問一下   6052汇编大奥秘 是否 一個文字檔
) q# @  F  Z2 t4 n; @" e此檔有很多文章在內 嗎 ?

点评

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

签到天数: 1976 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))1 [- m: h5 I# W3 j8 Q# m. c3 B
7 t3 g% r* Y- b- D5 Q, @" q! `
問題一 # 指令表 就是說圖6 吧 ?
# F& @+ M3 O, k0 E
" t+ [" X6 M: |" A& ~* X問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x139 @1 H. J2 K1 B( p. ?5 F- j- e

0 c% H8 v+ z8 E1 P* h7 ]" f0x13 不是應解作 數值 減13 嗎 ? $ e0 P9 Q+ I; _& u

2 F2 a3 f. {+ Z( n( g6 ^7 V從何知道 0662+(X)=...數值減1
( I& T7 q7 I+ N. w# y: R
/ ?! l; a8 \6 I; k% Y, }# v0 z
[0662]是地址,0x13是该地址的数值3 o1 u* W  z9 S! H, T9 U

8 R5 z" O, m, E( tDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X, K" Z  a% @  S9 n, _& o# S& p

( v6 o, r8 S3 r- a8 `
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))/ Y9 G- Y2 x3 c3 K9 r( B
  _, a0 [- J+ ~
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?& U9 e) w/ y, T& Y
8 L& x# i; K  \$ b/ W) j
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
7 R$ z4 Q- _" r6 P
! b2 ]) W: L2 D' i6 J9 i
LDA是读,STA是写
1 l, C+ l) N7 k& h2 R
% J" D- U( K2 f: GDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了
! c$ c1 ]# w) x( I  D! n
6 W8 c$ n" ^- P5 Z0 Q  x/ W5 qBEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转
) F; j- C/ Z; P1 a3 ?! i, l5 k0 K- Y
AND是逻辑运算指令# e$ S- F% h: d/ `5 \& p

# ^1 r' A* r+ e) u5 h+ U请看《6502汇编大奥秘》
  F" h3 Y* ~+ q2 F4 G) B' l) g* p6 q5 Y+ M3 `; z- O; ?
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))' H" M3 E) _9 d# k

4 u8 H% i7 C' ?/ N+ c問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
* G. m# U/ r2 U( J7 S8 Z. F5 H1 {6 X4 b) Z
問題二 # 尋區方式 即是什麼 ?

6 t7 b# n# Q5 B. \4 o8 K9 l! b! \, B0 |5 u8 w
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?4 e7 M4 {' X8 l5 w% N- r0 Q: n& T
( B9 W* b- c0 b) Q# W
寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 1 `% l: X- j1 g1 a3 K. V, }  j. v
疾风之狼 发表于 2014-7-23 19:44/ A% s' w, J/ t% _% |
[0662]是地址,0x13是该地址的数值( S1 ~+ U# K: X9 |
0 w6 L6 {+ R) C
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
+ W$ |0 [. I$ p) f

! a; l$ M1 l$ p' \& g先感謝 管理員 疾風之狼 的回覆 {:4_118:} . T: C7 p2 e" P' `# o5 R) \$ c% b
; v% X: [; ?; ?) d/ g
好像有些明, 又好像有些不明
9 {' z6 t: n4 G於圖6 下面的 [0662] - - =0x13
2 X0 _" F8 V6 w7 n3 w大大說  [0662]是地址,  0x13是该地址的数值0 K" G5 d8 b# N5 s3 Q, y  x. H
; M. ^5 L; r8 }) D, x) n$ v
我先愚昧簡單的想: ) `* w6 [; @" c
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫
& P, _" K* [$ L) M(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 6 \4 l$ x- z- n: c  n
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的7 Z5 U7 n' m. A" W* a+ y; c" W
, w" H+ a) ?5 ^, ?5 y* [
遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
, ^9 q* g, z+ P* }' K! V4 b) `1 w) h; Z  i6 ?1 @4 i! e" \4 S: u
------------------------------------------------------------------------------------------------
; `1 g- J  ~7 S/ {
& Q, U' M. _+ G/ `, H( A跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC) W# u( O/ u* [" \; J. M, ~
DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以, ^, n2 C7 v3 _' d( w) e& C( G
LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A
( D0 a3 i2 Q5 k0 \
0 L! T) K' F4 j; [- d1 c雖然 讀入至 寄存器A 這方面 還想不通, - D. G, W0 [& c" n- W
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了 0 A  |/ h2 `; G+ A

* [8 x0 j6 ]: [" p8 p+ {0 @6 G+ P/ u( T3 B+ _1 ?2 D8 d5 U
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用; @2 X! ^. O+ i% I( B" z

- x1 D# e9 b- Y: [. a=================================================
4 F! ~% H  N' i1 l" r3 U; c. _0 z+ q# a
7 m! E& l8 E( r0 P! D說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :2 ]( Y4 O. l1 S) d
: Q) h5 L& d* ?% W5 I
一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字, * t. f$ {9 V9 A$ \* [
二 : 跟著 右按 選 以簡體模式開啟
1 `( c8 T- W+ r5 T1 V      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟
- r) P/ ^2 z* |* T8 ~4 U: L
- f4 y' Y: H! w! W6 E3 y; ^9 D9 Z% E6 R7 y* k5 u9 m' N4 |9 R

9 f7 t. W' n6 F7 @+ N* |( ~: H+ Q3 z7 F+ G. x8 V" W- |8 E# ?

) R) y; J. U( w0 Y4 c, k$ S# }) n0 w0 g/ J4 \$ J8 E1 H1 f
# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了
  e- s/ d1 _5 M' _  A6 M. {" k8 j       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44% f% W' D) |6 }8 b9 b! ~* \8 ?2 q  a
[0662]是地址,0x13是该地址的数值% ?  e3 M/ T# ]8 i6 |/ ?( M* p+ T

- G6 s) L( F6 Z' G$ I# R( zDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

! N. c: a' y6 X9 v8 U; d今天又領悟到多一件事 {:4_98:}
; z2 f7 Q4 R! d, Z  J$ i5 Q& s/ p2 j+ q
於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白
/ t( a! a- ~* H' y+ C) b現在又想通明了少少
/ n% v0 D. h0 r1 n& t---------------------------------------------------------------------------------------------) E  D5 [0 Z, u- f9 Z
' f/ E# D$ j, w) W; T, [
中間寫著 :7 s: |6 X  k. e6 F
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A
* }1 p# @0 j/ ?7 N9 h$ W" }3 m3 G& L起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?1 P" N9 J  t0 a2 g9 [" k. I
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ? ) v+ T. F/ W% b( n) y; z
4 A; a4 j: Y' `* Q; j
原來又是 16進制 的因由( q9 f. K3 b9 W( ]
% h; n5 G  e) ~% D! h' r
在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
. |: O6 i" q6 i3 f即是說 9 之後 不是 10, 是 A
; Q8 ?8 v$ M  W
% y: B3 x! C5 n$ O$ M7 y8 W" f所以 1234+6 不是=1240
" c" b0 ^- c/ S3 P$ d$ I& L1 y個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
* k3 Z, I! ^; v3 N所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
, h. |. i2 e: `+ |
! z: G. N) a  f1 y% H==========================================
6 `! W. P. A4 t( `# z' `. w- \+ P3 p/ N% J, h% v) w# v
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了3 S0 j, [! C9 q; `# H& B) I
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝( f# b$ F$ q, N' @- {# j! j

4 l; d# }$ v# t& I; s: }8 b其實研究如何修改遊戲, 真的是非常困難, 且非常耗時
2 D- n3 L2 C) M/ j' z我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改9 i8 B; `- B5 U0 Z' b$ ]

+ _$ v2 f2 e( o- b说白了
, Y  V: {, o) g  n- p, r5 ^修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 1 c8 R! g5 _# L! f  ?) p
疾风之狼 发表于 2014-7-23 19:44
1 W( G4 a  \6 U7 [" o, `9 o: {" W[0662]是地址,0x13是该地址的数值; B/ h2 B) u. Z- G, n
; Q1 H$ @, W" Q2 N$ l
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
* Q. W6 z9 M: n7 o4 B6 H) n7 @
" S& Q5 T8 n- D4 J
終於成功修改了 赤影戰士 受攻擊不減血
* K4 {0 c/ N1 B* T1 |5 ?" k, {
/ l$ O) r7 A2 X5 {3 n
% h3 j/ w' a4 U1 w; M' Z# C  }, r9 J: P" V
今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了# M8 l( \. L9 M$ D) `, M
我曾試把此方法 套入其他遊戲去修改  M0 A3 l1 E: }  r2 b- u4 x
但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型3 S8 I) c) m% }0 G! x1 }
所以都不成功呢
5 @! M* i2 Z& `9 x8 Q最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-6-12 20:07 , Processed in 1.080079 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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