EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
' ?6 ~. Q4 ~# Y# S! X
7 d* C/ x( ]- x0 V% Q7 d% N在此先感謝 管理員 疾風之狼 以下帖子的分享6 m) Y# \) _+ l! O9 X4 K: Z* Y
http://www.emu618.org/thread-21186-1-1.html7 E+ t7 r. D/ c2 Z  z2 c
; z7 Y' Y$ G" j0 }+ t3 s
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了
: [/ x5 C* p  c! l. X/ t( w" S4 h% w/ Q成功一刻, 真是興奮莫名$ @" P2 y5 g, t! J( m+ s% m) Q5 u

8 z2 Z/ w' ^/ U
( G3 I" x/ O5 x, o2 l 4 j' z3 F- w0 i9 x7 V

* w7 ]- O  w  }; ]! ?9 Z4 E不過也只是 完全 跟著指示, 過程中還是有很多疑問,% o0 c* y5 O. I
如不解開, 那麼修改 也只是 局限於 此遊戲
& o2 X% ~. e( y$ [' {: M; V6 w4 O+ H5 Q  z. B
===============================" _4 h0 o) e  r# {: s

; e0 @! {& K. W' K" k1 }圖6 後 的一段文字還是看不懂7 @" N; E/ F7 k/ O

* F8 G' a4 h* k9 K; Z! J[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))8 g. e$ Z  i) L
問題一 # 指令表 就是說圖6 吧 ?1 v3 M8 |3 z+ R, U7 L
4 s# ^; k3 W) T. O* d+ {, V/ U
問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13* E- H' [7 c9 X  w$ V/ h
                0x13 不是應解作 數值 減13 嗎 ?
- ]; }* `6 B& b: b# [3 L                從何知道 0662+(X)=...數值減1      
' ^5 U- Z6 \% @" ?& M4 Z5 ~% V
- z0 s0 w- `2 u; R-----------------------------------------------------------------------------------
' G0 Y$ I2 ?# J/ `  L7 Z[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
0 N" y1 Y& i1 L問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?9 `- d8 b2 I4 t; I# z7 {& S- X
                3 s" c) m" `9 R; v- H- D/ O3 C
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
1 m, U! M: o" @% W# Q
4 O* ~3 N1 n" r! f4 a, q' n( u6 O, ~4 t; j) |
-----------------------------------------------------------------------------------
% A: H8 {# c* o[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
" ?! `2 S# A. ^1 U& r問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
. @- e7 e. g3 P5 [# f' Z2 q( I4 y3 ]
問題二 # 尋區方式 即是什麼 ?
3 `5 Y. d! C6 J* J4 {" d0 M& X
6 l, ]( i9 ~, {1 c
2 Z0 y! j. y! }# B/ j其實還有其他問題的, 不過一次不問太多了
) |  y+ A+ y9 @7 r在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的
0 c; ^! ]% T/ j# I- ^就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑
" C: V3 A' r- f3 e% q
紫龙666 发表于 2014-7-23 15:224 t! |+ [8 _; h4 N7 ?+ B; P) c
你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。
5 _$ `% z6 ]6 d

% f+ q+ j( ?- K2 F) ]( G! X先感謝 紫龍666 的回覆  {:4_118:}
$ D4 A6 h5 D7 o$ q8 l" ~$ [6 X: O0 t. k, a; Y; u
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘# p9 K8 T  u7 o. \; @& t( I
http://www.emu618.org/thread-20393-1-1.html/ }" \5 Z; M! i3 ?

& O1 c! W% t" w$ W( y( v$ U下載解壓後 得到一個檔
  A1 b% j  G/ Y$ u% _  l  n9 }% s, V  b( b
3 D# v) Q1 ?, i
但我卻開不到這個檔, 顯示(無法開啟檔案)9 y$ t$ l5 i. D& q& N# b
愚昧請問一下   6052汇编大奥秘 是否 一個文字檔 8 p6 \  H" a% i: @) T! E; U3 D. m8 h) c% p
此檔有很多文章在內 嗎 ?

点评

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

签到天数: 2100 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
9 C3 w4 T% r  f, K6 i
3 w$ U. D& H7 ~( w6 x' J% l問題一 # 指令表 就是說圖6 吧 ?
7 ]) m# B+ J7 P# v6 d( p# @7 L5 O# `' h9 Z. V# i$ K5 z8 }
問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x138 ^8 V, b  S) U) v# f
2 S1 C# a3 O2 e' c( I) }  M
0x13 不是應解作 數值 減13 嗎 ?
9 z8 w  \. y. l# f; n6 a. u0 O$ ]4 G' [: v' d
從何知道 0662+(X)=...數值減1

' O3 \0 L( M9 C2 T8 h9 c. J; l( u$ y& b9 J
[0662]是地址,0x13是该地址的数值* S; `' ^4 w( a; A7 v1 O- p9 r5 U

) p" o5 J. Q4 iDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X
  Q- q" a+ k+ L' {9 t0 }
! g8 K8 G& p0 u, @
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))4 W9 k! r0 E5 P# x8 _

& D' s, a. q0 Y# ~問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?1 Y- n1 z0 \" p8 r7 a6 w3 I: w; d

4 K4 a. a- I0 w; r問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
8 Y! s" V4 h# B. n" B9 ?, ^
4 U  |8 ?" p) U
LDA是读,STA是写% H. Z; s: E; a  u  ^' V

& j& b3 [0 G4 M/ UDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了
( \; A  b6 t5 u) I! W
. x' M- M' `! c, Z3 {BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转1 L! x+ e8 L0 ]2 U7 j7 W3 s4 \
& `6 ~. _' f5 c/ t
AND是逻辑运算指令
- N% O7 H) a! ^# c6 O$ G8 M0 v
! k6 c8 z/ S  `$ i4 |4 v5 E1 q4 t请看《6502汇编大奥秘》
9 n+ W/ z* i$ I2 N' F2 k/ W% M, ~6 ~+ \0 @! m/ G' g. Z
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
/ i! Y4 D% \1 m" p* V
6 n* t- p5 M* j6 h, S問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
, R- q' {6 b# Q( ?+ L5 e6 L" I3 @  ]8 d. E9 |* W$ R
問題二 # 尋區方式 即是什麼 ?
3 U: V' m3 }! n9 T0 ^" {
1 ^# K3 }. C0 a
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?% T% y3 {$ d' P# e
; @7 [7 Y/ z: Z+ j% S! e
寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
, c0 j0 J; `) d5 {6 D- G% L* _
疾风之狼 发表于 2014-7-23 19:44$ l0 v7 C  `* K# U7 B# {
[0662]是地址,0x13是该地址的数值
# l, E% _% Z5 R. D6 x7 }# e" V- s1 S7 O4 V" ?8 P! ~" I; N/ I) Z
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
8 ~' b+ d2 T9 g: j9 V. c
+ i! _# L( u% u8 [1 M' ^
先感謝 管理員 疾風之狼 的回覆 {:4_118:} ' E0 B% H  V, ~0 a" ]$ r; [- g7 F

  D7 k( l2 w. |# {6 a好像有些明, 又好像有些不明
" b9 o  v( x9 r- C& }於圖6 下面的 [0662] - - =0x132 T$ f; P/ x4 ~0 _) ?) m1 i! _" D  U2 V! B
大大說  [0662]是地址,  0x13是该地址的数值/ C" g/ i/ }& u" x

9 w( S; N( [. i3 Y: ?* t我先愚昧簡單的想: / I& D) k. C4 x
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫; q; W3 o& y! P1 O3 L. n' ~
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 & n7 H$ M9 f. j
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的8 _4 }  D0 a) x/ j) j

2 l. J8 N" ^1 k' L' |遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
6 I. f9 E. p5 O; A( R
0 R( z! r  r- P1 u9 D4 i) V: v------------------------------------------------------------------------------------------------
% b: s6 f8 C4 d! u: O: t# K/ Y: ?; p$ e0 r% U' H. |- o
跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC
, w$ r/ |0 E3 X. g" u# CDEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以# U8 [, h0 S" u0 L
LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A   \. r& b# K9 G. k

) ]2 l+ D. @: c3 h雖然 讀入至 寄存器A 這方面 還想不通,
! J. w& L8 G( x) b4 f  W總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了
2 j8 l* M4 c9 d: o
) L7 L4 h; Z2 s8 p0 a: D1 d1 H
. k, P8 N5 J) B  B  ^, B8 X8 H# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用
1 u0 q5 }3 o- k, J7 [! A6 T8 [/ j9 b  n6 `
=================================================' d) U: p* t. p; A( j
* g! T, H' k( F" O
說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
0 h" q( x# b, w8 _
3 P/ \; K& y) L! i3 e一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字,
. M5 d$ v& H3 V$ a6 i2 Z2 D0 I. K二 : 跟著 右按 選 以簡體模式開啟5 J! v1 Q$ o( W7 A; z
      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟
1 p. r2 k/ x- q: m- Z" e3 k/ P! J  y' ^6 Y! N
; N7 W8 j4 _& z; {

# {3 j8 \, Q9 |; t" G; f7 a& x
. H* U# @# Y& R! g! G* u8 s- z$ a* V7 h  y: U# l

+ o% n8 H: A4 @; N$ I# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了2 ]2 I) {" i: `9 t
       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44, L2 r7 u5 o  [* w9 m& e9 T& O
[0662]是地址,0x13是该地址的数值
5 G) H' O* x+ y* W) r; k* ]4 J5 T' q- @# H4 r* p$ ^0 S1 T6 l
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
9 {9 m( X- t7 a; N
今天又領悟到多一件事 {:4_98:} ) ^5 X0 L# ?- x$ \& d9 c; k
  W, O. w2 M4 s' |
於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白
; d' ^" J  Q9 i+ y+ {& q5 ~現在又想通明了少少1 r2 M! c) Y3 T# d9 i
---------------------------------------------------------------------------------------------
/ ]: O! m$ h7 s! m# K' T: m* G( Q7 ?" u+ t9 `, Z* H  s5 [% @9 T: {
中間寫著 :
7 D/ a- A5 d" e2 T1 T6 d舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A
+ X' R! _8 g, J* k; p起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?
& K6 c$ ^' i8 X5 p1 ?或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ? % r( c+ ~0 N5 F$ A

# H; a3 M* z: Z. U  }- ^) p原來又是 16進制 的因由
' s4 h0 b5 `# x7 X. W- ~. D2 v1 _* O0 _: g) g% s$ i% K
在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
- X' D% R% p. p. K- x$ o即是說 9 之後 不是 10, 是 A
4 q* p# c0 _3 r% j- M6 T5 K4 P0 t% j4 V! S# v' J
所以 1234+6 不是=1240- G8 q6 P& X/ ?) P9 w- d9 S0 F
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
! d7 i* z# y6 `" e" b所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
- }0 R& W7 l: j: ]0 v& r/ l+ G8 ]0 L
( R% l6 v4 X/ x# O. @/ I3 W5 ~==========================================" y( D& I! \' ]- j
+ z& w& r$ o" C) O8 z. b+ Z
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了' C- [* `0 e! R' s! F
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝
/ J# j- h# d- F2 o6 b
$ O' G* x$ X, X其實研究如何修改遊戲, 真的是非常困難, 且非常耗時
& j5 E5 P0 J5 S% I我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
6 l, w1 D2 `5 f/ V* _7 c; I' U7 l0 Q7 \. d$ e
说白了
- P6 A# S3 k1 r8 Y" x修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 0 {& ]& e$ M& E% S+ r
疾风之狼 发表于 2014-7-23 19:44: f7 A, a- L7 s# h. \; H
[0662]是地址,0x13是该地址的数值8 f+ v2 y& x/ w4 l

$ [) K, A9 R0 y  F. c) oDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
7 M6 ]& o* ~, k6 Q+ [0 i( n' v$ T

+ `# r# Z) p5 I, H9 r終於成功修改了 赤影戰士 受攻擊不減血, m! \+ J7 ~) ]1 B% y& t6 N! J

. G% N( G6 y7 n: u! L2 I' T5 }! d4 }. i) }& b+ T9 [  m
: I5 I9 E# _; _
今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了! d9 K8 c1 Y8 V! b  U0 E: Y
我曾試把此方法 套入其他遊戲去修改! P' L  c8 _6 }4 [3 L
但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型
+ @8 j' I, b* c+ N$ ~所以都不成功呢
* k7 M" x3 g/ P( [最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-10-14 21:06 , Processed in 1.085938 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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