EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
( u% h$ P+ Z& {% m6 ]8 ?
3 h: g  l0 b. s# k& g/ m在此先感謝 管理員 疾風之狼 以下帖子的分享2 Z% [+ N5 _* l2 R! z: R6 J. G) j
http://www.emu618.org/thread-21186-1-1.html7 I- F- Q5 K" ^# j" h8 N
( ]* d1 T; u) O( A" q- S5 ~  B$ z. l
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了- x3 G; @; M0 K0 G0 u' E  H
成功一刻, 真是興奮莫名
1 i4 X' P: q# s1 D* U6 g/ y- u
* h0 @- A4 }" k1 B9 b1 U; l4 |! L: f  x: ~0 |% Y

& X1 D; G( ^+ e+ s3 o" X3 j, g/ E# X  Y4 p0 g
不過也只是 完全 跟著指示, 過程中還是有很多疑問,% W8 j6 x: c: c5 G* C1 M- i
如不解開, 那麼修改 也只是 局限於 此遊戲% t6 z3 w7 T% [; b2 N/ ]
) \5 X& v' Q+ s8 \! i+ Q( V' h  D
===============================( r2 n9 l) F- k) @. Y

. z: \- l" |6 Q, U6 `圖6 後 的一段文字還是看不懂7 W% P3 p/ \9 \' O5 L1 H

4 {: ~. P7 O, N- g7 R4 d$ d[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1)): l9 U, _% i" |, ?
問題一 # 指令表 就是說圖6 吧 ?
5 y2 r) O6 _- D! Q2 `2 N" {
( n& _1 p0 f# D) A& D問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
. j9 ^' l6 ^. v* t' I                0x13 不是應解作 數值 減13 嗎 ?
# ~8 }( |  ]' ]  D: B. m' M                從何知道 0662+(X)=...數值減1      ; d, P& ?8 q8 }

4 c9 g2 l; J( E3 ?: `/ w3 h- j-----------------------------------------------------------------------------------
3 V6 O( K9 P7 n4 b% B: w[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))5 V1 k9 T' S6 ]5 V1 B6 [, J
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
- }5 p2 }& p4 G               
, F$ h1 M  T6 w, H# S問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
' K1 E; O3 H7 |* i# x, d% ]8 p2 ~# x
: j& G% y3 A. b. v* F" }/ ~( E) X- h( }5 {7 G; q, I9 ]/ O* i
-----------------------------------------------------------------------------------( s( J( M2 @! g" g) x3 ?' N# d
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))  f8 ~* d. L$ |8 ^$ G) ^- j' T
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
. f  H1 D1 V+ b5 |) \6 k
+ D( P8 a* U1 G) k4 Z: @8 A問題二 # 尋區方式 即是什麼 ?: ^) [1 c# {; v# O/ D/ Y
2 A  J* K8 _5 C4 p9 G- J8 s
  p' R6 d, p4 @9 v7 x
其實還有其他問題的, 不過一次不問太多了2 y+ Z6 X. W! |5 m7 |0 m+ S
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的! |9 U* W- G$ }9 e% b' {, i  A
就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 I, s- E; [9 m% [8 K7 S4 o7 z: h/ G
紫龙666 发表于 2014-7-23 15:22
$ }0 r: r  Y: p9 @4 @! x0 l你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。

$ y; Q  {+ W8 m6 I! d$ S- i2 B
先感謝 紫龍666 的回覆  {:4_118:} & j2 e9 L. n. G  D" ]+ t/ Z

8 ~8 b1 c4 Y9 v7 I0 j3 r我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘
+ w( ~4 c* X6 F" e) ahttp://www.emu618.org/thread-20393-1-1.html; [/ l4 L: b( |7 T. @. `- M' O- s
" `( c8 `: P; j0 M
下載解壓後 得到一個檔
% W6 N6 x! d3 L( v2 v* E- E! A1 l3 t) |: g
* Z, m  h: Y8 z/ K5 o! N
但我卻開不到這個檔, 顯示(無法開啟檔案)
  h6 |: H6 G* b: U1 i愚昧請問一下   6052汇编大奥秘 是否 一個文字檔 # ?" P+ d: Q, i. H
此檔有很多文章在內 嗎 ?

点评

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

签到天数: 1937 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1)), p( `' ~& \6 S& A1 R' |
; E" l) ~6 B$ j, S5 r5 H$ b
問題一 # 指令表 就是說圖6 吧 ?  [2 U- X5 T- e* X7 ^' F/ Z1 @

" B3 H, V" B" x* t, _問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13, T$ k7 F- b0 l: A5 E* I
  Q% G7 s5 [! }# j
0x13 不是應解作 數值 減13 嗎 ?
9 L( `8 h2 x5 X) a) j7 q$ Y: O
7 h$ n+ m4 ~& [% d2 @從何知道 0662+(X)=...數值減1

8 ]  d5 ~% i; ~% S1 W: S" u  |. F  R0 W- q6 A, S2 i5 u+ O. U
[0662]是地址,0x13是该地址的数值* I5 P: h4 O" [$ A! V

, q* v8 @& [/ K3 iDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X
/ q, o( V" d9 K
1 S$ ?  D+ j0 _# o
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
, Z  w( D' D* l! A  u2 J- t3 Y( s: r% J5 q
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
- h2 S6 O1 h0 Y2 c  D7 \4 n: r5 s; B0 p( [& ~$ b& |
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA

; p/ _! i$ G2 p# A* U( O$ p; x; z! |, j
LDA是读,STA是写8 ~- }' D! \" I
, @6 }$ Y- l2 h7 O0 |3 X
DEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了
8 p; Z0 z7 P# E4 v* t
. o* n+ d" R! v; k  Z7 qBEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转
' G" U0 v( L3 Q+ J! R. Y) R1 @6 ?' o- D+ e+ w  A4 u
AND是逻辑运算指令6 v5 ^6 N& P; Q8 R* H8 r

8 p, d6 i  r; ]4 a, s/ R请看《6502汇编大奥秘》
; _  F8 V# f9 a6 q
" o% t3 ]3 \  \/ }4 m0 K
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
  ]* i  A2 e4 l. c9 r
8 Y2 Y# J1 W/ @( S問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
  T. S, d" Q: o  c# r5 J; Z1 s' E/ q: C/ a" ^. ~4 w: z; C
問題二 # 尋區方式 即是什麼 ?
  c! L) |# F* \

; Q4 ~' F/ P6 L; e我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?
# k: j. W. E% Y4 `$ O  Q$ m! {- J, j3 D, q5 W3 c! `7 ]6 l8 r
寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
* _) R' n5 |' S* L1 G7 [+ `
疾风之狼 发表于 2014-7-23 19:448 O7 c6 B3 T. u
[0662]是地址,0x13是该地址的数值9 [- c7 {% K# k2 h8 P
* S* h9 }* x% C; x% Y
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
/ s8 F7 w0 g/ C5 S1 b& w7 J& O
9 I7 \0 g) W$ u) @$ j
先感謝 管理員 疾風之狼 的回覆 {:4_118:} 7 q  X+ M, x8 `
' B- U3 ]1 G: J# l5 a* k
好像有些明, 又好像有些不明% V* F1 C9 k: l; d/ D
於圖6 下面的 [0662] - - =0x13( ~& d! D' t/ }; [
大大說  [0662]是地址,  0x13是该地址的数值" j6 a5 D5 T* p$ q3 Z  }

: D, D8 _) @  o1 X% o; a9 P我先愚昧簡單的想:
' R+ \3 Y2 k7 E+ p(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫2 u) i5 K* o) J( C6 x$ X1 @
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 : a+ q2 P- r, w4 q
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的
$ W6 u+ L5 K6 q% \0 H! a
& B0 u% [% _+ P" @+ b" N遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
3 ^0 Q/ G/ a6 M) [+ ]
# _; ^; Q6 S) t7 v  r, _' M1 b! _4 @------------------------------------------------------------------------------------------------4 f+ n- r$ H  y8 [) S

6 N5 H7 `7 [( o跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC
, I* a' T( n4 E. @' HDEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以
& |+ k3 ]) b8 x! n( V* y; uLDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A
7 N% s! d' g5 |# }* D7 `* a/ y# ^2 t3 P8 ^8 n
雖然 讀入至 寄存器A 這方面 還想不通, # j/ R* q% p( B# t- G/ Q
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了 ' \+ ^4 C% a: d) K0 i) i
$ N, X- J) s. p5 S) r
3 m* \/ D; O9 k) a. X
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用& t+ A; N1 h4 A9 A5 R# T% A0 C1 }) t" G
: h5 a& ]; }: y' }/ ?: T! f7 G
=================================================: p. y" |/ a' r! {; @6 Z) [3 S

6 Q; f/ R% l/ x- d$ s4 m說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
; S1 u; [# U. n# o2 a* c
) x! w& G/ b" A' t) f9 `5 b1 {一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字, + P9 B4 O$ Y1 r, r) E
二 : 跟著 右按 選 以簡體模式開啟; Q1 ?! N$ o9 l: \9 H* C
      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟
4 B- B* r7 y, N# [* t# C% v3 z- Z2 _9 d. J) p
. J) d( P6 H" ]

# _3 s) \) @. ?3 q  k. v8 {0 m: z$ b* {$ ^
+ p8 v) F  x! R% O$ Z* t4 g
9 p0 I7 \7 d% e: v
# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了( ]* ?0 a- _7 j2 n. m( k
       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44
! }/ r6 B( \. z8 ^6 r[0662]是地址,0x13是该地址的数值( d& h& ^1 r( e; P3 q3 \8 q9 v% }
3 D/ Z; `, R  P, X6 U# o) j
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
8 q5 C) o. y! s2 k0 @5 K- ~
今天又領悟到多一件事 {:4_98:} ) }- D; M$ N4 R5 _7 q

- l6 _1 x  K( X' J- c於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白
0 Q5 w( \" ~' f: p0 y" v3 O現在又想通明了少少$ o4 G; J( \2 Q" ]! T, x
---------------------------------------------------------------------------------------------* \' r5 w9 t. ], A! [# Y
  L% T: j8 }. L: H5 u8 b
中間寫著 :/ p. O3 D7 |" S; R9 E
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A3 I. U1 J, Z0 F  q% m' W+ o# b
起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?/ O  }& d' R- `% M+ d0 |: _! b6 Q4 J
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ?
4 M3 E/ P2 Y; e- z8 V6 x' w
& F: q) i) x+ U. R  V8 e原來又是 16進制 的因由
' ^1 z7 e/ h( r1 O4 g4 y: q, M" x9 w
6 y9 R% _* X5 K- f5 q+ z在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
( X% B9 k6 y( C& v! q1 n即是說 9 之後 不是 10, 是 A
0 m) n7 x6 H6 h- C
3 }" @4 S. [  f# ^所以 1234+6 不是=12402 L9 q& ~# y, K) N
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
6 A1 j" I& z9 B6 V$ ~1 c. L所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A    {/ ^# B, U7 ^* }& U
0 u/ Q: g4 y4 M+ c
==========================================
; b6 ^& b' H. p2 e+ k2 j0 E
& b) j$ |: [( ~" K; L+ e$ e. K' G7 H其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了5 ^+ X5 Z3 H# k+ Q7 I
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝* T0 z6 M( g3 P2 F& r
9 |& T  J  Z" Q( Q# X
其實研究如何修改遊戲, 真的是非常困難, 且非常耗時( Y( G4 t* Q2 p, G$ G1 [
我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
' ?. t) z# d, j5 h. V7 m( _) Y4 h0 U. Q5 b7 f1 ^
说白了
5 W& X5 V, t/ V. ?; }修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
7 A7 K  Z0 \5 H# n, h8 E  c( Q2 s
疾风之狼 发表于 2014-7-23 19:44% v  Z; {8 j# L) O$ H/ ?+ w
[0662]是地址,0x13是该地址的数值7 n7 m6 G3 s: o# U: [
# A/ I2 Q' a9 M$ z% b
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

  t6 u$ i- G9 e: j$ z8 m- H
7 C4 T4 g  E6 \終於成功修改了 赤影戰士 受攻擊不減血
2 p6 h6 y2 D, C5 R' P/ b
- A4 e+ D2 l1 Y) \! L
9 w7 O# }- q& x* T
( ?  M' h% q6 t$ d) d8 P今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了4 Y/ q% U: ?% k  Z5 F
我曾試把此方法 套入其他遊戲去修改0 P# m  P5 _  j: y5 Q9 I8 b6 v
但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型& n: G8 H( I  u1 o, F' |" F, z( U
所以都不成功呢
+ R/ S; B! ^! Z' ~% n3 w最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-5-2 03:12 , Processed in 1.083984 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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