EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
) [  p2 \  P% w: k1 m3 x: z  y5 f0 L' a# l8 t" h
在此先感謝 管理員 疾風之狼 以下帖子的分享
: {% @9 Z8 L6 X  Fhttp://www.emu618.org/thread-21186-1-1.html; u, B$ _. B' e, q2 X3 _

3 N4 L" m  U8 o# L. W( a我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了9 l% h$ f  T* {. s' R1 m
成功一刻, 真是興奮莫名! _0 z0 j: n9 p4 U. H/ C9 L
2 d, ]2 A8 e! ?; p* A' f" Y" r
" d* ]6 r, @) ?$ v! f% T9 h: x2 |
  z+ s, a$ b6 w. N$ }- i. {. F

1 b& ?8 E/ u3 ~2 J$ |不過也只是 完全 跟著指示, 過程中還是有很多疑問,
3 w; m' C+ @9 T如不解開, 那麼修改 也只是 局限於 此遊戲* `1 ~9 Y: U' |& O  ]" ~

2 y- r3 k, H5 k; O' R3 K4 _3 g===============================
$ ]! v) e' }4 M- V) W7 h( H  m- ?' M5 T- I- S$ \8 c0 N
圖6 後 的一段文字還是看不懂
4 o0 E: g+ h8 |# o  k" L& Z1 b+ l+ n7 W, ~- h+ u
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
( Z" U& Z/ v5 p( r7 E8 |3 l問題一 # 指令表 就是說圖6 吧 ?/ r* K0 \. l; b4 f+ y& d

  U' D) s+ i$ C2 d7 c( T' U問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13% Z& ?: b8 o: T+ {5 j( C
                0x13 不是應解作 數值 減13 嗎 ?
+ \  {: A; P, N9 b" i3 v  b                從何知道 0662+(X)=...數值減1      - @. a4 Y1 u( d9 h$ _
2 a9 x/ L/ `1 x( q2 B4 c' K
-----------------------------------------------------------------------------------3 N; P0 @' I+ g. e8 p& j
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
) d0 O3 V( z2 I4 {. p2 Z問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?" S1 U" ^& g* q( g; A% g! ~
                # c& S! n% r1 i' c8 Y! n5 i
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
3 Q! i# J7 ?  Z/ ]$ o1 O, |) d$ b! O  P# `" F( V: F& U) p/ ^+ R) {$ }
. j9 q" R1 b2 r2 f. t4 d3 R4 m0 ~
-----------------------------------------------------------------------------------
: @  \$ A0 ?/ q5 @& W& I[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
3 k) k1 t9 k6 W7 n  R- X( B問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?1 \% b' g* F/ h) V7 B; ?" v
- M  K6 q) {; P, J
問題二 # 尋區方式 即是什麼 ?
2 t3 m6 X' F6 @6 C% Q4 J* f4 p; P6 x5 H2 O. }
5 H8 P4 ~. B9 D8 {4 k7 D  J
其實還有其他問題的, 不過一次不問太多了: \: Q4 ~' D" a- ~: g
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的  ~& F7 o" _0 k( t, m- q( T6 B
就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑 ; P+ f9 J& v( ~" U0 F! V, a" b
紫龙666 发表于 2014-7-23 15:22
" p0 b: w7 @4 c$ R( K# c/ d你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。

6 g3 L1 `6 a* I# @8 d6 s6 Q. l& o+ J! B( ~: T
先感謝 紫龍666 的回覆  {:4_118:} 0 r; _; E+ y) Q' ]( Y6 h0 ~9 G

. n" x; K& o' A1 ]8 L" [我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘
: X" O: Y2 Y9 j- b3 x8 e2 J+ y, n) Qhttp://www.emu618.org/thread-20393-1-1.html
! w* y0 u7 x+ j; I4 W' r/ y. Z+ z* |
下載解壓後 得到一個檔
6 `( u4 Y1 v- S4 g5 c
7 l3 n) ^: I/ }4 @- k5 F1 I0 N! {$ J0 K; ?% D
但我卻開不到這個檔, 顯示(無法開啟檔案)
0 t( d0 m; Q/ J  I. m. _愚昧請問一下   6052汇编大奥秘 是否 一個文字檔 9 X2 Z% X  [8 \% x8 E9 g9 m( x0 k
此檔有很多文章在內 嗎 ?

点评

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

签到天数: 2173 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
. ^% S% R) B! C: @& e: {, m- Z1 p& q* o; W& v
問題一 # 指令表 就是說圖6 吧 ?/ V* H- h: g# ]! L7 Z8 z. ~1 r
( k  p+ K: h: y' |& I
問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
" Z) M8 e# T& m* a2 z8 K: `' ~* w$ e6 m+ R$ }
0x13 不是應解作 數值 減13 嗎 ? + P3 I2 `% |1 Y+ ^, d$ l9 V) e3 @
0 i; E5 n; p6 H; K
從何知道 0662+(X)=...數值減1

0 {2 e9 c+ Y- n4 K5 }
1 u( S9 S$ T6 z* |; H5 |, l[0662]是地址,0x13是该地址的数值/ |; G- H0 W+ ?7 ^" W/ f7 m% J3 g
3 \% E# D% D  H0 f, ~) G8 X
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X
' n5 Y" ]4 u- [8 |& `' a' B
$ j: x/ V( z! B# L5 ^" P+ ]
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
6 X( u# I. |1 K+ V6 g, N6 G
  B$ B9 J7 |. k* }: t問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?, Y5 u7 H- K5 J( ?, d: V) @

! J9 D: G) H4 p' J* X( i! o$ z問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA

% g, X$ l3 C' t! Q1 L9 ^4 [* t3 t
* z. g4 H7 A) G8 e) N0 ~' u! ]LDA是读,STA是写6 K7 a$ r5 n9 g* [4 a' S

+ h" K& Q7 v$ |0 x; nDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了9 n8 l# K# C' `( Q
/ [( L, o) `) F: d9 |5 K* W
BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转
& Z& u  T; f* s+ U  r6 W( K- m1 O) X& S' P, x9 @3 _
AND是逻辑运算指令) E- }2 p$ L# ?  \. q

  i, x2 ?. z+ H# d" s4 R请看《6502汇编大奥秘》& B2 l4 J/ f2 A0 |2 s. J/ ^
' a8 H9 u, N$ c# J' ]9 U' n+ `' Y( i
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
  R3 W# K# B7 F9 c/ P+ W1 x: G* h5 Y. p/ i$ m
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?% y6 t; u' f6 \  L% O" k) Q6 |

* D. Y/ @4 ?$ O+ k: U+ [0 @" a" G問題二 # 尋區方式 即是什麼 ?

" C- Q+ ^2 c% B2 y2 n5 m- L/ H$ F- g7 U7 h8 w
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?2 P9 O6 _0 M2 ?
$ b5 j+ h  `. w4 @
寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 2 E; Q# B4 C# d0 ]$ x
疾风之狼 发表于 2014-7-23 19:445 E  H7 P: Z6 |6 `0 T
[0662]是地址,0x13是该地址的数值* x" `9 g0 u& Y, ]5 r
9 Q, j! k' F# c
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
0 k. Q* h" A6 W. L/ r

' |. Q+ m" X: A+ s) T0 T/ U先感謝 管理員 疾風之狼 的回覆 {:4_118:}
/ Z' f: ?9 d; U" k
5 B! r; i! }" I% S3 M$ Y6 O+ Z: ~好像有些明, 又好像有些不明
1 m% j3 u8 F+ X) l於圖6 下面的 [0662] - - =0x13& b- @6 g- K+ A2 A8 f
大大說  [0662]是地址,  0x13是该地址的数值% `5 y2 m1 }( w
$ t: H4 z! h+ _2 E  |3 [
我先愚昧簡單的想:
- z$ Q1 D: ~, k! A/ V(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫1 z8 ^- h% M7 f
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 - u: y" }' M0 Y# d5 S5 ]) H: |; j
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的. b: J1 m9 w& [& ~' h

# s% k0 q( k* D5 U6 m遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
; e& o- I# Y, J  j+ w; Y, `5 Y6 }. n* z9 N' Z
------------------------------------------------------------------------------------------------
' |* |) h! F% l, j1 ^
. R5 w- W1 ^. K) S/ X跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC; @1 c5 o! V7 K2 J0 T
DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以9 @3 A; n; m5 y9 f- o, h4 O
LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A
4 ]& A9 o6 t8 e7 c' l9 G- m
( _9 c% @0 |) u) {$ S6 o* y" l5 I# Q雖然 讀入至 寄存器A 這方面 還想不通,
7 c2 Z( [4 Z) a1 ?4 M總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了
0 D4 p3 |; b5 F0 w- h
6 G9 T! V0 \: v% ?) p
2 P( A  N# \: U2 R7 d# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用
( d8 T% x) i+ h$ E0 g- J7 O+ B& w8 U( g) y( b3 Z% l9 I
=================================================, b4 o* J' g* o4 Y0 b, z
. t8 Y; Y1 V) c0 ~% w; _* {
說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
) O# {" [5 J* }+ a' f
8 ^1 L  S$ o  ^* [/ O. `# V3 v一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字,
& J, [# J# E8 o二 : 跟著 右按 選 以簡體模式開啟. R! u( I. M$ x2 H- K* J4 A3 N! j! z
      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟3 V: l! _( t: |5 ^/ }9 {5 B9 |

* E0 R2 D. P7 r2 F& U; C/ X6 l0 f' O* U
- i5 F! E( |& B7 r. \* Y
, q  a* _2 V$ d6 K

* y% X- v9 V- g5 b; p; `2 E% r) U, J. [3 p
# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了
8 U( }3 z" R, r8 h$ O2 [       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44
$ ^) J8 t3 F3 O, i) h' e4 i) j  |[0662]是地址,0x13是该地址的数值2 y$ _9 J2 u2 q& R) D" [
0 y( s2 ~" }6 w/ P" w4 A5 B
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

- l  R* `7 }: ?; Q今天又領悟到多一件事 {:4_98:} " p/ f+ s/ k+ L
; Y3 e1 Z& f! ]  t! a: ]4 b7 I
於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白$ N, s/ m, C! s% ]7 R
現在又想通明了少少) `* ^) Y1 E0 E' Y/ s  R* u
---------------------------------------------------------------------------------------------8 x) V3 f$ Q' s+ Y* T6 B9 [. h
& k  p6 l4 w6 J9 o
中間寫著 :
) K8 n9 {3 B. E) [: O舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A
; _8 p6 s, s4 e8 R起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?
. o  l7 V  G( [' R或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ? : `: f5 p. ^1 r. ]8 L+ t. U* a

/ M8 O! B/ D& t) v: V原來又是 16進制 的因由7 g8 ~4 y) s: v6 [, @. e

: ^- E$ |0 B  m在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F; k' k1 x7 i; j9 N- \
即是說 9 之後 不是 10, 是 A+ k- ^# B- M' H% ?0 J
' Z, d- D. T. V5 x7 x8 y: v: N+ Q( u
所以 1234+6 不是=1240
* V  _  n9 H  y. u4 ^& `個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位 + q, v! R/ ~* \: V8 E
所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
8 y% I, Y8 T/ }1 \! z* q0 c4 J
8 z0 ^' w/ p# Q7 ?6 P==========================================( H; f' Y# b  S4 I5 t! X7 e
0 _7 f) V8 e5 R  @2 Z
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了6 K7 y, T5 w2 j. i' W7 k
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝7 T8 `0 D$ Z: q: |
; G0 ?. A$ t5 j5 ^3 h' B+ z$ S
其實研究如何修改遊戲, 真的是非常困難, 且非常耗時
  f2 {9 g4 h8 \, C! e  b& s我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
3 D3 o7 G3 \' @2 f% r1 g: Y/ t+ E" w8 U% U
说白了
- I# t1 `5 b8 J! D修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 5 {( K2 x7 c+ g
疾风之狼 发表于 2014-7-23 19:44$ r) H* Q# @2 u
[0662]是地址,0x13是该地址的数值7 v: R* z# D1 s4 @/ o' ~0 r  ~8 N7 z

7 J3 z, Q( ?2 }DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
6 Z; C" y1 C0 k' o7 n8 Q

& d  g7 I- x4 c4 Q1 `% p+ F6 M/ \終於成功修改了 赤影戰士 受攻擊不減血6 V0 C7 n5 t5 I$ `+ {

4 A* i$ U2 H/ H' H7 z' X1 I
) y; u! \% A* k
( |: F0 G3 Z$ Q今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了
) O% K$ l7 {5 t我曾試把此方法 套入其他遊戲去修改+ u  b8 ]6 V( D* B, v( i
但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型
* L1 L( X6 b3 {1 o; U/ M所以都不成功呢; v: u- z" K* }1 C* H, @
最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-12-27 15:28 , Processed in 1.074218 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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