EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
/ l2 ?6 ?/ I% {: h+ H  d" D  @4 h7 E3 V6 Q2 w$ o
在此先感謝 管理員 疾風之狼 以下帖子的分享+ d1 t- |$ r" k/ {" b
http://www.emu618.org/thread-21186-1-1.html
/ N$ j. `$ M/ `9 w- `! s- N
0 R- P1 ~2 o. a# P7 d我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了: {) h$ E* o" `: `/ a% M& L% W
成功一刻, 真是興奮莫名
1 w6 u* D' w; @( z  ^5 y/ o* h  Q
7 r; u3 c, |8 X/ @( F2 ?! O3 `* M3 U+ C4 r2 \: N

9 B' y& K& @0 k! q( H! v: \' B, t$ K- f$ P
不過也只是 完全 跟著指示, 過程中還是有很多疑問,
. A& X' [; a( p# g$ a$ f1 Y0 {8 }8 u如不解開, 那麼修改 也只是 局限於 此遊戲
$ }/ x% q3 e) q5 w$ e- X
, b) Z" q5 U0 L& H0 X! W===============================
  j- |8 W' j8 U* e  x$ \5 S- ~
" v" m. m3 }1 ~8 R/ W9 K3 K& V* [# X" Z圖6 後 的一段文字還是看不懂8 r* E1 o* A0 w& l+ y& j- J

( i, V4 ~3 _+ Q[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))4 V. H0 o6 s2 g. }5 z3 c) R) j
問題一 # 指令表 就是說圖6 吧 ?
" a( t7 j- W! A* B9 J% \
( }; e2 Q# W- X; n問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
. w+ u2 y1 [% b2 G  M                0x13 不是應解作 數值 減13 嗎 ?   W! r3 Y2 D. i% M
                從何知道 0662+(X)=...數值減1      4 h* V& P% r2 _4 E

3 l1 D( C: g9 a-----------------------------------------------------------------------------------
; _/ `1 k/ v* D3 b2 u# Y7 X[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))2 l$ Y2 [" R1 M
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
6 a1 L8 ^3 L, n% T                  X) J/ p) S" X) j$ \; M
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA1 ]. `/ r7 k- K* f$ U1 L6 W+ N( t

6 ]: t& ?9 o- k1 p1 D$ r2 k
, @6 W& ]5 I' k  J# z-----------------------------------------------------------------------------------. F* k: u  _0 Q6 K. Z1 G8 K2 N. J8 d' c
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
/ D5 X( A; b" Q" i問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?8 \2 Q! y) o: T* |" u' c: `/ {
2 L+ z3 ?4 b; x  H+ G! t* r/ u
問題二 # 尋區方式 即是什麼 ?! _% P# h  a1 `$ _/ v% c) i. j

( k  T9 v2 J% K; n* J4 B
9 ?" F7 r$ w+ D. Y# |- H3 b  j其實還有其他問題的, 不過一次不問太多了
& m) T! C# V7 Y2 f+ \' N在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的
+ j8 ]- L" W+ [: z5 [+ v( R" k. P$ d就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑
- Q7 N* C5 _# r3 g
紫龙666 发表于 2014-7-23 15:22
" Z# s# n; k9 {- A& y: `你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。
- L' Z/ `% ?7 I9 M' s

. H2 u: g3 h8 D% }先感謝 紫龍666 的回覆  {:4_118:}
( S$ ]. B# P3 V" ?7 J' x/ S8 K$ W4 X* n. K7 H
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘) b0 A* ~: U* {1 i
http://www.emu618.org/thread-20393-1-1.html# @0 }5 F% K" V0 V- F1 F

1 S( V+ v' t+ M下載解壓後 得到一個檔 $ v  J. Z; [; H  _7 E1 W  Y

8 S+ `8 \, [0 K, e/ m4 h' @& b! v/ z+ |/ Q+ s+ b* |/ M
但我卻開不到這個檔, 顯示(無法開啟檔案); M0 l. U7 |$ t& n3 O
愚昧請問一下   6052汇编大奥秘 是否 一個文字檔 9 o3 d+ Q% C9 S9 a: Z6 c" ?
此檔有很多文章在內 嗎 ?

点评

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

签到天数: 1826 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))" ]1 T; r- v' W* c

$ C' I* e' v; E4 t問題一 # 指令表 就是說圖6 吧 ?: m& D- j3 u) k7 K8 h
4 U* K, J0 C& P8 |, @
問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
3 Z; T7 c1 B9 _$ C0 V, }! ]) O$ t- E7 L: R! L) b
0x13 不是應解作 數值 減13 嗎 ?
% M) f: I9 q) ~1 W6 R3 R  ?: P, m& T/ n+ T
從何知道 0662+(X)=...數值減1

, U+ J& D4 d, O/ V7 r. ~$ L$ x+ S2 S, H+ ^
[0662]是地址,0x13是该地址的数值
) a3 L% c4 [* j( n5 @$ o. e
: w; n9 G2 i$ e6 K9 l# C5 [( I+ ZDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X
8 m3 _. u# O& x, z& @
: p6 D9 e# V/ i1 v$ v
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))7 |- m9 o. {, Z2 }1 k' e" S
$ `1 v6 j3 G) q  h6 P! [) ]
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
5 C3 b% x. u9 o/ \% U% t! G9 H" @6 c' d9 C4 U
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
( P- P( q9 Q# w* T6 @2 m4 H

! |5 }  D; l" A* \9 g* W  ~LDA是读,STA是写
2 B7 |7 f! @! j" J$ y( U8 x4 N+ R4 j: W9 {) A+ q" V
DEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了  C( k: H8 G' X8 v1 T; z

* z3 E& L! O3 G& hBEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转) X. o' b  p& g- ]

  H' E+ F9 w) a: NAND是逻辑运算指令
' z9 }: e1 X3 B" y6 x9 U! m; f9 i6 U/ d5 g6 A$ J
请看《6502汇编大奥秘》
7 t* S/ J' l' o' ~3 I; E
- V' X  }6 w  _) m/ i# D
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
: @" @8 |9 Q4 ?  d+ G9 \& [: j3 N8 v2 H9 Y" F/ `
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
0 {% m& D+ x: \; [& T# d: `4 ^% A3 `1 A2 B4 b  ?( v$ |7 w6 R
問題二 # 尋區方式 即是什麼 ?

$ q4 L! y$ b$ D7 e6 s% Y$ F- {& k4 \. k" x% H8 B/ f0 D% Q. V; S
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?
6 M7 x" o5 f! }/ P
' C3 C6 X9 h0 s$ M" R: Y- @  g9 t寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 7 M2 v$ Z# p9 Z! n: ?/ q
疾风之狼 发表于 2014-7-23 19:44
+ u! c0 y3 W: \& y/ e[0662]是地址,0x13是该地址的数值8 @% o' F9 q& U: O6 M5 C2 \

9 a$ c  T3 \% Y# d7 EDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

0 Q1 Q* c  y( {- g
8 k2 O3 ~( ^/ R1 x$ X先感謝 管理員 疾風之狼 的回覆 {:4_118:}
: F, l) I$ r- G4 a) r+ X$ \- k
6 P5 y' O5 |2 ?6 w5 {好像有些明, 又好像有些不明
, G, c( `4 Q1 x4 }3 J; I& i# l. Y於圖6 下面的 [0662] - - =0x133 i$ O5 D1 L. r: b/ Z5 N
大大說  [0662]是地址,  0x13是该地址的数值6 [, l1 E6 r: d1 y
8 M7 A. u& A8 {8 \9 B6 D$ Z
我先愚昧簡單的想: 3 s& A' K, s1 a
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫$ F7 Z% k4 v! W) [+ S) V* J& t6 k
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢
* ?( h! D" ]; u9 B                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的+ n3 f: {; f% U

, Z( q3 B2 O3 f! ^4 @# V遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19) h- }( d3 g  _

& z! N# ]# S' T5 ?5 q% P# N" H0 n! _------------------------------------------------------------------------------------------------
! M8 t" S! K' {* v3 J2 e
+ s1 g) F) H% ^, l跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC
6 D, v! p: N/ ]& P5 IDEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以: ^) E4 f2 s/ m
LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A
! Y! l5 D2 [1 a; Q( ~
) ~+ b, g' h" ^% W雖然 讀入至 寄存器A 這方面 還想不通,
3 T0 Q2 e$ C( N9 \: g總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了
2 a, A4 L$ l0 f9 G$ B
* Q; }, h. {/ n% E2 r$ m: D9 f  t3 L" t# X
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用
0 h3 M9 `" N0 Q" \
5 r2 w: _7 w- D6 k=================================================5 n; Z2 l8 D( s% m5 `( h7 y
0 _3 \- r; c# g, g
說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
2 s3 b4 j9 B  P: i. _1 P
( }& w7 Q9 \+ _; {一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字,
) J7 ?  d0 y* X  V6 `; N% z, N二 : 跟著 右按 選 以簡體模式開啟; P* l# {% r9 i% D. ?  q
      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟0 m- `5 M7 V8 M# B$ v) p3 j
  W% _) U$ j9 Z
- R) t6 Y2 d5 Y5 |! o8 s" i' }8 H
/ s" e. E6 G  S7 X- z8 i+ C2 }

- Y3 a. }+ z5 ]# P" t
8 [- W( j' g: \( L* V* p2 J8 N8 I1 B+ ^
# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了
9 l3 l& e4 q# q' [       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44
9 F. Z" }. m( J! a% w2 H" V[0662]是地址,0x13是该地址的数值/ J/ Q' Y; x$ I

6 l. F  x; i6 q- F8 r6 |DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

- b0 d( t5 R$ B( m: a今天又領悟到多一件事 {:4_98:} 8 h; L2 z& k+ s5 K+ R) N; |
, l& }  ^/ E7 a, n+ e
於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白, v4 A$ H  p! |  G( V6 {7 k
現在又想通明了少少6 f% g& |; O" P6 U
---------------------------------------------------------------------------------------------
: j- Q9 r$ I+ x3 z  G7 M0 u
; F6 R9 }% ~0 [0 }# @4 a$ w# A中間寫著 :- r5 Y8 O$ C8 j$ [
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A
- i# l. {' \# ]7 a起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?& L2 c; V! b! A2 d
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ?
4 X. j% n9 i; E! j% w* C! d2 I/ b
+ f9 N6 |! q9 [+ }( S原來又是 16進制 的因由
" T6 W( L& b( e1 l  U* O% ~0 @0 l
在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F% K" K  ^+ M0 H0 h
即是說 9 之後 不是 10, 是 A
. v/ e- O0 K8 B7 w6 x3 ]7 ^1 S9 N' u; [
所以 1234+6 不是=1240
2 W' Y6 _& H, K2 E% T0 ^5 d) u+ N2 A個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位 5 X3 n* `/ w& ]/ K( u
所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
  G) ~$ b& l/ t ' n! N4 k7 e: [1 t" z+ a
==========================================# ~% {+ T; P' G8 R# u
3 ^" P# i' F$ k) @  |. ^  g
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了
+ S, k, `& o* `9 y$ a& Y除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝
8 C7 \6 `) g2 ^5 L# f
, C# ~2 c2 e% J' p0 R其實研究如何修改遊戲, 真的是非常困難, 且非常耗時2 E  a  n5 Z5 \" C6 X
我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改: K  _$ F7 z' q5 x; F+ \

: z, V+ N; }$ f/ W- s. e* j$ y说白了
% F& m2 p  Y) q修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 ; P9 I  {+ Z, y. X/ c
疾风之狼 发表于 2014-7-23 19:44; I& K& S" j) t% h) y8 p
[0662]是地址,0x13是该地址的数值
: y0 I! N! h8 m9 @9 c6 R8 b8 @) W) V  i% C6 w
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
6 }: k& r0 U/ U* G6 Z" M
( @8 y; B) l* O0 G4 ~' I+ C
終於成功修改了 赤影戰士 受攻擊不減血% O4 Q8 t) Z0 Q. y- Q+ b$ S! s% V/ K
# r+ m( ^0 U" n

+ I; {( n6 x' H' t
, Y: o4 z+ k3 a6 q今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了, r( o- n5 l9 z$ F0 `
我曾試把此方法 套入其他遊戲去修改6 D+ ~5 j# u6 j
但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型
' x0 h  N! Q7 T所以都不成功呢
3 P1 d1 O& d" r( t最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-1-11 15:57 , Processed in 1.081054 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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