EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
; A; `: q* P( D8 }' }2 c& N: [, U8 L/ a# l) s
在此先感謝 管理員 疾風之狼 以下帖子的分享
, w7 W1 @6 K4 Lhttp://www.emu618.org/thread-21186-1-1.html
; Q2 C# Z4 D# Z" y; U3 l1 j9 x( o) W5 y3 \
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了6 T- d. S, c! C& e9 l" X
成功一刻, 真是興奮莫名0 z/ }2 j# w5 Q; O9 e

4 M/ S5 J9 B. W! A3 z5 d) Y7 A) ^. i1 W2 \) `* |

* H, T8 k, g6 ^( N, n" ?( J7 T5 \5 e% X/ _" [
不過也只是 完全 跟著指示, 過程中還是有很多疑問,
3 y& [7 N, o7 U如不解開, 那麼修改 也只是 局限於 此遊戲
5 G# X7 U! W. Y) T; p& D4 h
7 O" g  v) O$ b===============================
% p/ ~8 [9 ^5 s5 c* s
. i  ~$ A6 z. C9 T圖6 後 的一段文字還是看不懂
" y/ p+ z* c# @4 M: z6 G& |5 P; A( K& m
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
* I2 i& n' X. O, F8 v, f9 o6 J問題一 # 指令表 就是說圖6 吧 ?* S7 m6 |: V$ I
1 ]4 X+ E9 a" b2 e
問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13+ B) q5 W: D# r  W! V& S: ^
                0x13 不是應解作 數值 減13 嗎 ?
. c* i+ d1 P4 f) ]. {# M1 G# P& Y                從何知道 0662+(X)=...數值減1      
$ W! ^" s* I" q1 E7 R. t& \+ U1 h" s3 q. F$ L! E; L$ l1 B2 {
-----------------------------------------------------------------------------------
0 Z0 E% K4 W* I: p[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
. k# L( S2 m5 I5 }( c; |  p+ E, s( k問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?0 g. N2 w( g. ~% C, i0 m" ~4 x: D
               
3 U( f' [; z9 ]1 `' A/ e8 |, p問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA) x2 Q5 @- F4 {9 f, r# N
( V( L0 \" p/ B1 ]8 Z5 V" X

  m. d0 h& ^6 P+ @( F: N6 T-----------------------------------------------------------------------------------" M3 b8 F6 c$ @" u
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))7 `' y# u) V2 Z7 |: L: T
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
* C5 ~' X: ?& _/ c% ?" N1 ^3 ?7 e7 v" [2 c
問題二 # 尋區方式 即是什麼 ?
  {5 {( F; V8 _, U% O, k  x0 x% \0 S/ O& m, D% p0 c

: r' S) o5 C' X其實還有其他問題的, 不過一次不問太多了& X. `7 |, r0 t; S
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的
5 D, H5 u# S1 \3 H就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑
7 b$ P* j4 q9 z$ O4 |& `9 a
紫龙666 发表于 2014-7-23 15:22
7 H- Z& F0 ~- n/ p* O, M$ {: Y你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。
6 f+ \  }' @! ~! j
/ _- Z* U3 Y* S
先感謝 紫龍666 的回覆  {:4_118:}
" o- @" Y2 M# P4 D: x
) U% c; v; ~5 S% ]3 F" Z我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘4 m8 s* b, |& |9 R9 P+ H" H* L
http://www.emu618.org/thread-20393-1-1.html% W. ]9 [4 q% q' @
( `4 ~6 y( {, W- U
下載解壓後 得到一個檔   _; K. k: W& `2 s

0 V8 s* Q& l+ I0 D0 ]
# x* p* u3 c! v/ ^  _4 o# `但我卻開不到這個檔, 顯示(無法開啟檔案)
; O  j1 R9 D* Z4 q愚昧請問一下   6052汇编大奥秘 是否 一個文字檔 - W% d6 O: r3 |. U& Y( N
此檔有很多文章在內 嗎 ?

点评

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

签到天数: 1837 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))1 g# R' b& A. v& l9 u; q& t
: Q. ?$ r- b" v& t6 |; x
問題一 # 指令表 就是說圖6 吧 ?' e# S, w2 ~3 |( X8 |
6 }0 L4 x2 H4 ~( L% t
問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13: Q- b+ t3 w/ v$ O# D1 d$ N
. b% r$ B4 y) f% b$ V* f0 Y
0x13 不是應解作 數值 減13 嗎 ?
4 [; D+ p& Z3 i# G1 l: u: z9 P! N1 U- g8 N1 ~
從何知道 0662+(X)=...數值減1

: q$ k5 ~/ g8 ?2 b, }% {( N4 f# {
+ v5 h2 u; f' O+ e[0662]是地址,0x13是该地址的数值4 F9 s, E; {8 G. t3 ?6 Q9 a
$ m' S1 M( c; t3 w! v: R6 b
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X& n6 d" `. Q( F
; A; o' r" N& c
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了)), U0 V" H0 b5 z; d7 q; K& K

) f) C# T# Y# F$ S6 N# u問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
1 X  c+ T! [4 [- F# X: ]7 H. c" m1 O
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA

& s0 d5 P. X  @1 \7 k4 }, x  d
3 u5 T/ s% ?6 L/ k; GLDA是读,STA是写# A8 y' c! U& H1 S5 z" @. G) U

1 {7 }" Q- F) Q5 _. Z, fDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了
/ ~* y/ e7 r; f" w! E) [
# P7 w- |9 d7 y( X( f' QBEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转
) Y* j3 m& b3 U8 O5 z
5 `! t3 i/ {% f1 H8 r- j: OAND是逻辑运算指令
- Z2 g3 {5 L9 n% }
$ B. n, l5 l% s3 M" f( F请看《6502汇编大奥秘》
; n! d" d) R, n9 J9 @( I
* z( H5 K: `& a7 p* c
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))8 Z6 s6 [7 ]4 w- x6 N& K6 Y* [! J
- i1 e; g& Q& |0 ?5 c) m/ Q& u
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?3 Q! R& x5 b* d7 E% f# M( w. @: k

8 C( {9 K3 Z, r- y# l% S問題二 # 尋區方式 即是什麼 ?
% ]' a( _7 r7 H0 B' [$ S
" _/ d8 x! |2 c+ z) l2 A9 @. a
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?
; w+ D+ j* n! S7 v# m& l5 g% C+ k5 j& k
寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 " z" ~+ H! K$ u
疾风之狼 发表于 2014-7-23 19:44
: W( h5 U7 J1 p0 j" ]* p7 S[0662]是地址,0x13是该地址的数值
. i$ f9 w. r' ~" I7 R' I, }# }$ H5 D' F! ]
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
5 x8 B' ?' W' D# g" H
; c" `) [- ~" y& \$ a
先感謝 管理員 疾風之狼 的回覆 {:4_118:}
3 a/ q6 z# q( _; }% F9 n  R1 B6 x+ y" E/ x$ h1 R5 K3 @$ D# w
好像有些明, 又好像有些不明1 ]5 S+ t) f) ^$ T3 j4 I
於圖6 下面的 [0662] - - =0x138 B0 U0 X% s$ ?4 b3 v/ b
大大說  [0662]是地址,  0x13是该地址的数值
& p" S- \3 e/ B) M* o- n$ q& t
9 }; H9 @0 M9 |* r  X5 o5 ^我先愚昧簡單的想:
, W3 E& I) w2 ~" z) u: [! `(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫+ T$ G" u- `9 l7 a# L# i) I
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 , P1 f- K' W; U! V2 \/ K' R
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的0 d; t1 p6 v9 \4 S9 H7 b2 P( O' e0 H
) E( v8 ^! O9 k' H7 x, J
遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19/ K2 \/ t- s. G8 t5 B

- m- ?7 \1 f( ^: }) N! d3 o$ X------------------------------------------------------------------------------------------------
7 S7 C9 D  N6 g( k- ^; p+ s0 r- `3 Z( J
跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC* \! j7 w5 \+ M7 r. p; }
DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以
; \6 q- W, G- O( V1 w2 E! R6 |; lLDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A - R+ ^( B  {9 \1 [8 k9 s, Q6 d

& c1 N1 |, R  C& H& i4 @2 P雖然 讀入至 寄存器A 這方面 還想不通,
$ p% o& d) T1 q% r1 A6 v4 t總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了 * ]9 v3 A2 {' S' M) S# L

" t4 F- p6 g/ `0 W7 ^# V# f4 ^6 y0 H4 S. T* ~& p; g  H
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用
6 o& }8 W8 u, Q, a( p
9 e* x( r  y; r2 @6 K=================================================% F" |7 X, k3 x2 l+ t

! G8 W' L; t8 K1 u& C說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :2 Q/ E" |2 N: W

$ R6 C5 \, p( O- z1 r一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字,
8 l. S* R2 ~  j( c3 Y8 j% k0 d二 : 跟著 右按 選 以簡體模式開啟8 r. i9 Q2 u7 }3 y1 G
      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟" u. x0 L" ~! |9 R: w7 h  m3 h) y8 U3 p
% _: X& A2 d0 y
5 p7 Z: D/ ]5 g' Q7 p

5 B1 V- {6 R* C) f. t
! n6 L( J+ v" f- }, j2 |+ ]/ T0 l' X) g' D, j; R) M

! I' m0 H5 l! Q! w9 H2 R# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了: X( w! B5 l: A- B4 [: n
       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44
8 Z2 s2 q% J) Q: J5 L[0662]是地址,0x13是该地址的数值
9 B6 `- g% X8 q% V" K
/ J8 w' H9 w% O5 r( F  }DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

, @$ ~! X2 b! m( P& A1 T4 u今天又領悟到多一件事 {:4_98:}
3 a+ S3 l/ W  K1 ]! k1 I, b
+ a: N0 X* Y  e0 v於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白
! L$ m8 g. `5 A! {  Y現在又想通明了少少
1 h# ^( l0 Z1 r) D! z: k* k* b; Q---------------------------------------------------------------------------------------------
* b; }" @- I, Q: \8 c. X: H
- V0 L) A6 H5 ?5 a中間寫著 :; y3 N$ ^" S) W9 ^# b; H
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A3 `( Y0 R" K) _* T* m
起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?, `, w: H( O, z6 k& Q; x3 |+ l& y
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ?
' ^" t! W3 b% D6 n- K' _
3 Z' I( O: m- K原來又是 16進制 的因由# H1 h) }9 a0 \6 N
  q: {! ]* e* k  j
在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F$ H5 M" z# i" S5 j
即是說 9 之後 不是 10, 是 A
4 m& @9 }. I2 w( v
( e( d$ N8 J# N3 l所以 1234+6 不是=1240
  g- W; t, P, E8 n( m個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
+ q  R/ D4 N, F% ]% ]所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
5 _7 G" n- }  D' c  e: T
: V' y3 l& t- L3 n9 {; w9 V4 i==========================================4 U, G$ |; U* W% Y/ P. V
2 U9 P6 s, q4 [( B" ]- \" F
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了$ u3 t2 D8 }% p# e
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝
" i9 d7 u  ]" r7 V! ]2 q
$ M6 o& L: S& ~) r' }其實研究如何修改遊戲, 真的是非常困難, 且非常耗時/ k- V) a7 I* H3 d  o- d1 N
我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改% r# \- f: _- A2 O4 N* }
; J# {; \# v0 G0 X/ V
说白了" H# U1 i6 V! C  j) X( ^4 h
修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
, p6 ~2 m9 z( L# T+ ^8 F- u  D
疾风之狼 发表于 2014-7-23 19:44
9 O- m0 F0 P/ M[0662]是地址,0x13是该地址的数值
8 {  R+ ~9 Y' q  f6 J0 `/ _  R2 Q% A1 E0 `' L
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

0 I0 c# p% F" m% D2 M/ q# }- C( e2 W; ~4 d# F" ?( V
終於成功修改了 赤影戰士 受攻擊不減血
9 i- j: w/ ^7 R2 w+ }7 l' m, w! p8 R9 E2 Z& i* r/ `
4 R) d$ ^, S( X; {% [. L& i2 r

' P1 m  S! d4 v( H7 ~4 @% |: _0 D今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了& F& x' N2 U" a% j; w+ N
我曾試把此方法 套入其他遊戲去修改
1 E) x3 n) }. d- x* l9 ]! S但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型
6 y7 W4 f  W, D/ O所以都不成功呢
8 M) ~6 l* {6 k! k( }; }1 s9 T/ k最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-1-22 08:20 , Processed in 1.070312 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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