EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑 4 [9 ]5 y, d: r) _

3 D8 O; _6 k0 |! a1 {在此先感謝 管理員 疾風之狼 以下帖子的分享+ I# Q3 g  g$ `; c5 w* X
http://www.emu618.org/thread-21186-1-1.html) N$ D! o* [6 h( X; I% Z. w# w  q) [
# T$ w3 [2 d8 z) Z+ g! _: J
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了
) i2 I0 y. u  @& q) H; o0 E成功一刻, 真是興奮莫名1 g, ~0 {( [! l
3 l" g% h: g8 F1 D

) a$ w9 l9 c. B% h+ b7 k2 R
1 l! K$ |+ X0 J+ |/ U
9 @3 ~( E  `5 g+ p8 ]: ]7 h. }2 S不過也只是 完全 跟著指示, 過程中還是有很多疑問,3 S4 L1 u* c9 K. [5 `
如不解開, 那麼修改 也只是 局限於 此遊戲% |$ C% j$ Q# F

6 v4 h" q$ ^0 @6 d2 t. U) I1 O===============================& {) r, {! Q: V

! s' l  J8 h7 _/ D0 j; ?2 z圖6 後 的一段文字還是看不懂
8 t0 m( j* B1 H  O. P2 @% h: g# S7 E- a7 T9 n
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
" \( |  V) g2 _5 b問題一 # 指令表 就是說圖6 吧 ?: m$ k; |1 e( r; \

6 K: y1 O. f% F4 D問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13+ n0 f1 G: G5 p
                0x13 不是應解作 數值 減13 嗎 ? - u! s# q' [3 K2 t6 v
                從何知道 0662+(X)=...數值減1      1 b% O6 U. h1 P2 t3 J7 @

$ W+ s7 ]$ F! T: @9 ^-----------------------------------------------------------------------------------
& E/ j; x* U3 Y2 h) V[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
; T: d" J8 I; s- ~/ D  x/ z* r; e1 |問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?: r9 d  E0 n$ A& p5 u2 q" x
               
( {5 l$ W2 F) D1 k" Z* E5 X, D3 S問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
" i9 V; D% I; d) ]! J7 W: f& p! i3 N: G2 z' t, X

  W1 m; Z  ?1 s4 h, m+ x  |-----------------------------------------------------------------------------------  E% }7 \0 d$ i( r# Q% e4 t6 H% W
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
7 _8 W/ e; g( W0 e  p問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?( }: C/ L: K# N+ E

* g" w0 y- r" v  s. P+ G問題二 # 尋區方式 即是什麼 ?$ J: H& T. ^( p4 u/ D! J, d& {" G0 ^/ T
0 N; x  O4 w* S  F

3 A3 F! ?( d$ I- i" `$ c其實還有其他問題的, 不過一次不問太多了, s2 k6 [; O# e4 t( N' O
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的. F" e( f8 W' c; I; q& ^: ?0 b; g6 g
就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑 / T: X  x: M' T& j: h
紫龙666 发表于 2014-7-23 15:22
2 R, f% \& J! y  U你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。

+ L% V, Y  {6 {# u! \" l
3 n9 a  A9 G3 |$ L# V( i  m( h7 G先感謝 紫龍666 的回覆  {:4_118:} 5 h( ~( q# V/ e! L) s( p
( g' t6 ]% v& V" ?
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘0 p% \" k; t1 i4 y# ?
http://www.emu618.org/thread-20393-1-1.html
$ K5 o/ z0 q" @6 X; u& ?
/ z2 M; K7 Y3 E% k* k下載解壓後 得到一個檔
! W/ k8 p% Y3 D  N# R, A
3 U2 B: L  h! }! i9 z- @
7 x) Z2 y6 o& d/ C: @# e& V6 X但我卻開不到這個檔, 顯示(無法開啟檔案)" @& Q" B! q# [1 I" d: c6 }
愚昧請問一下   6052汇编大奥秘 是否 一個文字檔
: f  C5 y. @# L9 E9 M此檔有很多文章在內 嗎 ?

点评

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

签到天数: 1999 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
; M3 u' h0 l  E/ T  U7 b9 O( G. U9 j3 o! Y" ?% ^$ x. o! L
問題一 # 指令表 就是說圖6 吧 ?
  \  E! _9 p, D4 Z- `; v! M. ~+ g3 k" h; w, i
問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x138 I6 d& \) ]( ^
- c2 O9 S4 v( F1 _/ Q( {2 [- r
0x13 不是應解作 數值 減13 嗎 ?
. `6 \; Q# m7 B, U& n1 Z% j2 `" j/ g4 J% d( }& ~/ {( w+ J! F
從何知道 0662+(X)=...數值減1
; b7 p; d/ \6 i2 r/ y% b# m
5 T5 z3 X9 t- P$ x
[0662]是地址,0x13是该地址的数值: x" b. A& a0 N' ~( E. g

" Y0 B$ u9 O7 l8 UDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X& b3 X% w) b% U% q" K9 ^

3 Q. h& E# z% z4 W7 Z+ b3 X* b
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))9 b: L. ^+ g, {: O
3 w4 l, Q& j; ~
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?- K0 r# G$ z. i) }$ J+ Y5 P

2 Q7 J. g2 f* W1 A- ^問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
- J. B! b. k, g/ e! [: Z0 @

( g) g# z/ j  w* y1 pLDA是读,STA是写+ t- w1 A. w9 |* h! m

7 A  b) K$ X: Y4 h$ JDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了
; w6 T. C) h+ H. Q' t9 q5 Y- z8 W2 q6 |# U+ F, f
BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转- ^5 W: {7 O( q8 R+ y3 r
) A- f  y% s/ A5 Q
AND是逻辑运算指令; Q! @# ?3 W  x

7 @! k  w4 N  z# A- ~5 V请看《6502汇编大奥秘》5 i7 m6 G$ O7 `& \
- @7 r( G2 ^) l8 N, @: r* M
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))) [' k! ?9 G7 P( D9 U+ e  @
# R3 U9 w9 E& @+ _3 _; M
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
9 S) b, B9 E6 a* S4 e3 V2 {
! N4 G+ {  x$ N: o) t問題二 # 尋區方式 即是什麼 ?

0 N: w' g) ]- F4 L9 d1 a% k+ s- p! d3 V' f/ {0 J7 Y1 f
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?/ u  ]0 h* l+ \8 X
8 u- {# `$ K2 l
寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
5 z+ H9 y( r2 P* r) @9 ^4 z5 e  _
疾风之狼 发表于 2014-7-23 19:44
1 s; A4 }( z4 ^$ k9 U& ~, E% B[0662]是地址,0x13是该地址的数值
* T" j" |2 `3 s, y4 Q$ j* z3 ^! M: d  ~- Q* K6 a) p2 l
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

8 G" [2 i: H4 [+ g# g9 \
* }+ m( G: l. `  O, X  u: q先感謝 管理員 疾風之狼 的回覆 {:4_118:} 9 a, u+ s: q' S! H) O

/ k. t9 ^) ^8 \* _% i, H好像有些明, 又好像有些不明
+ `. X9 \4 y. t" E於圖6 下面的 [0662] - - =0x13
; U- f0 Y* _! D7 J! b大大說  [0662]是地址,  0x13是该地址的数值
; c! Z: }# t7 y+ d/ I9 M9 P2 ~" V, {9 K
我先愚昧簡單的想: & I4 u6 A+ C3 V6 _
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫4 E1 w: ^; F9 [0 |& U* r* f
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 ! |. I/ p. A: f0 X! b
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的) J" H* B4 B. a. o8 n. R
0 l* `% X: `3 x' ^5 D% h1 b1 r: W3 i( u
遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
: u9 K: n' o. w5 K' t% E8 u1 x, W7 |3 G
------------------------------------------------------------------------------------------------0 {: d8 ^! P& H; V

' T7 {: K4 ]$ {4 y8 G1 O跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC
# L0 N! g# e8 L. LDEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以
$ z6 p+ D0 m- b2 E1 {9 `$ \4 `  c' U6 JLDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A - e5 T% }+ D: o9 C8 ]2 G* ]
6 R: v  {8 ^1 P9 S( g  d0 s6 O5 |% u
雖然 讀入至 寄存器A 這方面 還想不通, 8 [+ L8 I- F7 D  b- M
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了
$ P# b5 y, y( C. M- o
# d5 s* u3 b# L7 {: [6 Q6 w9 C" @4 ~' U( r1 \! D
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用: _+ q/ _2 T' F4 S
% I: z8 p  F9 t# u# R
=================================================
0 j- q/ N0 K$ V3 h- ?; z2 d* x* \1 c, t
說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
+ J9 d. A5 P( d5 e+ y/ _9 q: s' b+ y3 l! b7 L/ y% z& m" R8 F
一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字, , L& L) q0 D2 d* W) j7 m. K3 V
二 : 跟著 右按 選 以簡體模式開啟
9 k* n$ {5 S  N! R5 ?( t5 J# ]: f      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟: V) G5 ^3 Y3 T- Z8 \( C

3 m  c7 V1 r8 P1 K# x3 x: M7 d

# W$ K) x0 n+ Q7 M
3 @/ F; ~. H4 h$ j) f! Y" m8 x2 q. G- q. f4 Y8 @+ H

9 O7 Q0 O+ S# O* K# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了% [7 p6 Z* K1 k7 K( Q, {  y
       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44
8 D% C& Z- s. q3 g0 P2 r) A% k) S[0662]是地址,0x13是该地址的数值
! `% j( I8 e4 c$ u
/ V+ g# h% _* q; o( S# e3 T. p1 MDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

3 W" Z$ b: L# P" ~今天又領悟到多一件事 {:4_98:} , _/ J3 Q3 l2 X, H) o  c, }
3 ?$ o& _! k$ w# E1 V/ q! F* F: Y
於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白
; y/ m. P& C6 I- t現在又想通明了少少
7 \1 ]: s1 j/ c2 o---------------------------------------------------------------------------------------------
. O/ E: \& A- C+ y9 I, `9 ~
2 ?* `' [. E( {- G) ?中間寫著 :; ~1 a3 C# k6 a0 n, s
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A0 _) i  R5 z& {8 V8 w# C8 L
起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?$ d0 |6 }+ J: R: w
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ? * X6 d8 c4 M, ]/ ]; m
, ~  b3 j# O& @3 J
原來又是 16進制 的因由
- B& f( {) k& @/ |2 b* _2 i  T% T! W* J
在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F! a& }' n6 P& z2 X5 c5 Q
即是說 9 之後 不是 10, 是 A: p4 ^8 W. V: w" q

# p* H2 K4 z$ a0 C所以 1234+6 不是=12404 B  ?: U6 H- i, O
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
' Y  v2 y( t7 W$ M! ?2 S* A所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  : n9 x# q: [: }0 q

/ @+ k' n' |- ?0 `6 m3 X/ u3 a! b% M; R==========================================
' K8 J$ \: I  L4 L$ T( r) z. `2 U
  m  y, L$ _8 E& |其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了
2 v' m6 M  O$ t! ^$ H9 k除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝
" V! |  E/ c% U6 G# F
) W5 I) i# m, h) j' X& {- |* {- p其實研究如何修改遊戲, 真的是非常困難, 且非常耗時
# R) x, N/ [) [0 \! |我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
1 U, {1 {) q/ P9 O
  u( j) X; W, v& h. X: [5 k说白了7 \$ V, r$ F9 n  a4 C$ V
修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 , a8 `- M: I5 p# d, j
疾风之狼 发表于 2014-7-23 19:44
# f3 t+ L! u1 o+ D) a3 s[0662]是地址,0x13是该地址的数值
4 n; r0 O, f  ^5 h6 h4 p3 T" a
' f3 g, D; E8 V) Q, M/ ^DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

) G0 A. I* n' Y( H% e# U( H+ T* V6 D
終於成功修改了 赤影戰士 受攻擊不減血
# \3 |3 o# k: r( Q% a
8 T, p. G3 q  ^7 }. Y
9 N' x) e. N( z* p$ T
  u3 W7 U4 ]  q8 h8 N1 m5 y# ?$ O今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了
5 g. N' n  w* ]% Z0 [6 y4 N3 ^我曾試把此方法 套入其他遊戲去修改
/ T5 N" L, q/ y2 u9 B但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型
) ?4 a/ }( ]* C  s& T所以都不成功呢- Q) e" l1 Q: N7 s
最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-7-6 07:38 , Processed in 1.129882 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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