EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
( u/ {5 q, |% }) J& c& H
/ ]  u9 v& {$ F0 ]在此先感謝 管理員 疾風之狼 以下帖子的分享% @- S( N2 S3 @2 I. [$ Q
http://www.emu618.org/thread-21186-1-1.html$ O0 J+ |) e& M
* Z2 ~- M- R+ P5 N$ I; s5 u! A# {
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了* e/ M/ i# A" n% V7 z
成功一刻, 真是興奮莫名
: `" {6 |1 m1 p# T  x) P, e6 p( {
6 o/ I# @$ A9 Y& O; a& D# `+ F5 d, R- \+ a- K" Z! Y. n- h
: t! }3 e: n. O

2 w, L8 |6 ~; z+ c2 c不過也只是 完全 跟著指示, 過程中還是有很多疑問,7 f, d6 {$ y( t  n9 S( L. H- O( x
如不解開, 那麼修改 也只是 局限於 此遊戲3 Q8 \2 @% q  d: `2 I5 s
9 _$ J2 R$ a. \. T5 k
===============================
) |9 `7 u1 N3 n6 @4 Y) J  u/ T
& ~7 z' q/ `# ]0 e9 t+ F8 s8 ~圖6 後 的一段文字還是看不懂
# L) s" \1 W3 s, b: {0 K/ G
8 q4 |4 Z5 J# h; o2 n" b" ?[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
9 U, m0 l9 T/ b0 f問題一 # 指令表 就是說圖6 吧 ?5 @% q* i6 T' ]% {$ _3 X
9 Q- }# x9 R4 f/ J8 i# H
問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
# O1 L  x- m% I                0x13 不是應解作 數值 減13 嗎 ? # e( u0 E# z; r
                從何知道 0662+(X)=...數值減1      
; h: E! g+ W4 T5 u) o5 J- p8 z$ ]  K) l- m, ?
------------------------------------------------------------------------------------ t3 |. I8 B' g7 n8 t
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))& d- a3 S5 F) G- o! g' x7 Y
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
! L$ `8 _" ?! s- H7 b" D# U               
3 P" @/ v$ }& L$ P1 o0 ~, [/ C5 t  n問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
! v4 [; |/ h3 e- r- U! f# P8 O) p7 N7 e5 t( [9 x
7 c: Z0 ]& W3 b
-----------------------------------------------------------------------------------
: a) \" D3 z4 J+ N, u[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
% X$ A: E% w# x6 t7 Q問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
9 Y3 L3 a( X1 g; K2 G+ e: @! N; f' ~
問題二 # 尋區方式 即是什麼 ?- E7 m# D) ]- z4 A

1 H5 I: @- B2 i) {( y
5 Q! ^) m- l5 O其實還有其他問題的, 不過一次不問太多了- s/ H* |8 F0 Z' b  W2 M  _
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的0 h! R$ n+ t5 @8 x3 o6 Y3 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 编辑 , o* V% {/ U6 C, m
紫龙666 发表于 2014-7-23 15:22
9 m) \* Y, P7 F6 C. ?你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。
6 W6 E4 w. ]% W, N7 ]* `! v5 G
" X2 Z5 b' I2 c2 ^) S
先感謝 紫龍666 的回覆  {:4_118:}
5 l, c8 C3 q/ A5 _( Z  T& D3 x- \+ w! {
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘
' T' R$ ?: `5 _9 w2 G7 ]http://www.emu618.org/thread-20393-1-1.html
. |9 b8 a+ H+ R& [3 K
& Y, R4 P& T& p' V1 B0 R9 }下載解壓後 得到一個檔 ' L, ^. G$ a5 c; K

, i$ t/ G9 I6 f5 l; j6 Z3 t% R
- y8 I7 E& P6 d$ p5 u$ Q但我卻開不到這個檔, 顯示(無法開啟檔案)
. k) i/ v  ]+ V' w4 B! P愚昧請問一下   6052汇编大奥秘 是否 一個文字檔
# D% C2 ~/ X! O: f% _! H- b" n0 k此檔有很多文章在內 嗎 ?

点评

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

签到天数: 2092 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))& Z! C: a  F2 d* K
* P2 N1 V& O6 p7 E) w  a& ^
問題一 # 指令表 就是說圖6 吧 ?
- A  L# u( f- m6 R! {! z9 L" r1 e5 w
) R( D7 s) ~6 r: ^" n% L問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13  p: q, O- B, r/ t' Y' F

2 @; l& Q3 X, k0x13 不是應解作 數值 減13 嗎 ? / Z6 l1 \( z  o7 w
  O8 Y+ E  k8 E3 J8 L6 u/ b
從何知道 0662+(X)=...數值減1

; h, ~* ]& u: Q( Q4 [% `/ f% p+ n8 h2 Q. @1 ?! w" [: ^" M  Y' v
[0662]是地址,0x13是该地址的数值8 _. t- {0 T5 d, w9 z# F) d
7 g8 N" O. g  r# X. p+ @: G5 A
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X
: z# l, T' M  h" `& W. v7 j2 e. o; f$ j# r% [
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))$ H/ x, Q$ g1 J( ]) `
9 b) R2 _+ G# n2 r
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
6 t1 N* V. i' t  }+ A' ~
( q9 t; e0 J5 k$ n4 j1 D問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA

' k9 H; b+ Q# |) j
' f7 G# F* q2 KLDA是读,STA是写
; z+ N+ V/ C3 D0 b- c
& o* g# C6 Q& q! @; F  eDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了0 R7 I# s- f  R3 Y
2 Q- J1 `* O4 Z4 |1 G! |" u
BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转4 N: h+ C) G3 {. ?% A1 d- J
' ~% @7 I" L: h( l* J
AND是逻辑运算指令4 T, V+ D9 p5 E8 j3 N
1 s( b5 R# G2 }8 p/ S$ C
请看《6502汇编大奥秘》
7 L. `) N0 D& i* W
8 M" L8 g+ d# X- F( r4 o
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))7 f2 X7 E6 r, X' K; q" A

3 c& A5 @. D- ~# ^& P0 T( A問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
  y7 H) M3 x* ]7 J# A* b3 s- Q2 [) J' r! Y) t$ i6 O$ f: ~
問題二 # 尋區方式 即是什麼 ?
, `+ K4 W% i! Q" ]5 ?
$ X1 V9 M& T9 ~, ]! e
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?
8 ^5 O, Y0 u- z' |
, a2 A2 k" z8 v8 G, W/ d寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 5 K8 u2 ?8 J$ v8 D; F% x1 R
疾风之狼 发表于 2014-7-23 19:44
/ _- v, p7 z; H' E3 t. Z' n[0662]是地址,0x13是该地址的数值: }# @5 \) l" x4 x/ \
+ i# w8 T  i" D" U" f  W. C
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

: ^, }. B5 P, n( n; `2 ?* @6 k7 T
先感謝 管理員 疾風之狼 的回覆 {:4_118:}
8 }: f* Q: n( M& S+ z. o
9 Z4 h4 `7 X- p好像有些明, 又好像有些不明
2 T' r4 t+ X( m4 U0 j6 [於圖6 下面的 [0662] - - =0x13
$ ^" k+ e6 t* y: x大大說  [0662]是地址,  0x13是该地址的数值
8 S4 Q! v- `- S  O/ S5 ^3 W' F8 p8 K* h
, _1 m) i1 d$ U& V+ Q5 T4 e2 k4 o我先愚昧簡單的想: 1 g$ z* w$ o; d5 ~+ U0 M; `5 @
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫; k1 q7 J, Z/ W- a/ t# _
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 % ]) |( P# |" Z$ h) F
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的
2 Z% W9 Q2 z1 r/ r
! _1 g) u, H9 t1 c$ _  [遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 195 L0 H4 N, e6 j" P  Q1 O  b1 B3 P

; }$ o) d6 p/ U( ]* y) r------------------------------------------------------------------------------------------------
3 I& ^, _" |/ F# U) d8 k) |4 Q& u- }: N: U
跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC
2 |9 E2 S; S, E/ N  ~DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以3 o* i7 h0 q  ~. j
LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A
9 e+ h- l& N, Q7 n1 I% m+ o( }, ^; Z) j& }+ C! {1 n
雖然 讀入至 寄存器A 這方面 還想不通,
% C; i% G# S" L總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了 2 S& e6 ^; A! X$ K6 G9 @
; r# {) L, M& u
2 }# t) D1 x! I. U
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用$ j4 s$ v, R! h, _+ W
4 N: q8 ]$ z1 T) Y- L1 H0 U# k- |
=================================================
6 ?# L- g! s- x* j  ~4 `# D" o* e3 A/ Y( Q/ m1 w9 R! G
說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
# n; z1 M4 c2 s: c+ ]8 K9 A8 S( I3 \  B2 s3 U
一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字, 1 c& \1 [) G" N
二 : 跟著 右按 選 以簡體模式開啟
  U. a) b& s4 }: q& @; a      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟" w" O$ F7 f) s8 k
4 y- k& W- I( B4 ?7 g0 Z

! H, I% O2 z  e; H, l# S/ U+ D
- A( [& N. `0 x5 |" |, V2 v! \
" N' S4 Y# t! I* b7 [/ q  z9 O' \
8 U0 g4 P( B) G" X5 F# L$ u& X8 b1 M* L  @7 r5 x% P- m
# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了
3 |6 q# W* M2 e; ^5 I. ^4 D       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44
& u. q3 f. _2 T) m& F[0662]是地址,0x13是该地址的数值
8 D. {& W* A% |9 h- X3 B% v# Q, L! }& j
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
+ A( x1 w/ m, n: a2 y, D
今天又領悟到多一件事 {:4_98:}
0 t% S2 G! ~" c4 S
6 ^: O. ?. R% q! B於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白8 T2 \, A, Q( F8 {3 T& A1 N* n
現在又想通明了少少
" a) r3 S( M3 ]+ @7 l; d---------------------------------------------------------------------------------------------+ K  \( i6 M5 H9 j8 T8 n( L' D% [

/ d4 t  A+ |' L# A8 t% @# N中間寫著 :5 k4 n/ {: y% d3 S/ l% k2 Q: W5 y) C
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A
1 p" Z! Z: D1 h. X8 g* [起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?
) D5 b1 r* Z& h; n; a  Y) G或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ? ) h' d, Z/ H& K

, m- W& e9 [/ N2 K5 l3 {2 ?原來又是 16進制 的因由
6 N. e8 I6 e/ E5 E2 q
  {, s7 u0 l& G* f8 P9 v在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F! A. n% A( h' N/ x. c; f5 U* e
即是說 9 之後 不是 10, 是 A# w& y2 Z( O6 t$ {% o7 H
6 T/ E3 Z" {+ Y' `9 O
所以 1234+6 不是=12406 r5 c- {" P  E
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
+ F) D; d& i% E* B# T所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
& u1 u0 c, W$ T. E2 x
' |9 C) b/ j" |6 P' W! O' j==========================================, D4 l# m; Y1 B; S
" y# q! R) H9 F# ~3 l2 S, E
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了% l, ~8 o% j  p! \6 k2 `
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝
$ E3 G4 ^; W& ]3 }: O9 V% u$ y$ y) m1 A" J7 ?
其實研究如何修改遊戲, 真的是非常困難, 且非常耗時" g& [; r' q, l/ N- @
我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改4 F$ V0 R  b( o$ t
$ x( X  l2 I, W
说白了5 V! K$ l6 Y8 M2 c, r
修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 . O- I- O4 R- u* ~
疾风之狼 发表于 2014-7-23 19:446 T+ O6 q0 ]! x) D
[0662]是地址,0x13是该地址的数值% k/ D( d8 d/ ]. Z! _, b% _8 g% i  C
9 ^6 r/ Y+ u' I- q
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
$ V+ b3 }, H# J# j( K
: G- r, T% ?# x) e" |" X
終於成功修改了 赤影戰士 受攻擊不減血
& ^  s6 q- V2 b+ T4 s
4 J, m3 @" F3 h) `9 Z# Z% h
& Z; Q( \: c2 A  t4 H5 c6 N( i& U. _* \1 {
今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了* }: I" D$ J; M. b
我曾試把此方法 套入其他遊戲去修改
" j0 }7 t: J. V! o  C5 R! P但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型1 s# G, d. I$ C6 v* d) Q3 Y4 @
所以都不成功呢
( P; e, f: f1 O/ s! a! K( p最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-10-6 19:16 , Processed in 1.072265 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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