EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
' x* D2 f' p6 E/ B
( R: [3 _/ h! @6 x在此先感謝 管理員 疾風之狼 以下帖子的分享- O9 w3 l, L9 b6 c
http://www.emu618.org/thread-21186-1-1.html) ]' }) h2 M: y8 ~  R1 N8 K

  V2 U+ o5 n/ G, [" v我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了
7 m7 |0 ?. x" |* h! A5 ]" n成功一刻, 真是興奮莫名
( P) I; K! j& T& P
# R1 W" X1 j6 d; b7 ^) c3 W2 `- M/ j. K$ K+ l( z: b
; h* c( ~, V6 z$ V
# ?" ^- K1 p3 I7 x+ d. @4 r: L
不過也只是 完全 跟著指示, 過程中還是有很多疑問,' m. D. Y0 f. k. L8 A
如不解開, 那麼修改 也只是 局限於 此遊戲. ^7 w$ I- _' s

1 M1 W+ @1 L. d4 d- t===============================
  }+ s/ X! r8 t, |/ L6 T  o; u0 W
圖6 後 的一段文字還是看不懂
- K+ ?& l  x/ x; Y4 A" m& F9 h4 U; W: p# Z
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
/ q( _. q* z; v! F4 N問題一 # 指令表 就是說圖6 吧 ?
+ E' }1 A; D( ^  K  n2 d; _
' ]: w  Z/ I6 O+ E  Y問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13: a' n4 i! w$ t, ]: [7 s! E
                0x13 不是應解作 數值 減13 嗎 ? , y$ Z, L" @; Z) l
                從何知道 0662+(X)=...數值減1      
  w) D  L' {2 u7 u4 U8 R3 h/ U8 \( d) l0 k2 Z; m' ^
-----------------------------------------------------------------------------------
: j: t* L2 @7 H4 X1 G[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了)). }5 \/ s' f; R/ l
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?1 m( f6 m1 o  x2 b
                ' M3 M3 Z9 @5 A( Y4 ^" }3 c
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
) [1 g( d+ H2 _! U' G$ |) g5 l0 [/ ~0 [6 `! k7 U! r

* b) P) v% e) j: q: i" @4 v-----------------------------------------------------------------------------------
% W8 W$ w8 K0 W4 A7 `' S3 p; s[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
0 @+ M* B  q( B問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
0 g2 |* y; g, f/ E3 W  Z7 }* {- ?$ ?: N  W4 x7 C1 d- r
問題二 # 尋區方式 即是什麼 ?2 x5 H0 B/ Q# B' `

; x. f  Y0 m7 j. {6 a$ f3 S& P# }" b: y+ K* {
其實還有其他問題的, 不過一次不問太多了
8 J4 r- I: W! z% t. G在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的) |2 b3 h) b& s; 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 编辑 ' [- ~$ X! d" T6 U# `  I, e
紫龙666 发表于 2014-7-23 15:22. D" @2 Q4 d3 D
你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。

' S4 U# g- _' F2 b/ t! y- Z0 f: Q* Z" Q
4 J0 T( n/ l# _先感謝 紫龍666 的回覆  {:4_118:}
6 J0 n$ G5 X" L6 O' K2 d) u! g
; B( i' l" r$ Z  ^3 `7 P我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘4 U6 x0 @, j$ N, J- |
http://www.emu618.org/thread-20393-1-1.html. J) |8 q5 N% C) o+ y* D( m
4 G; ?7 `# N3 n) V8 K
下載解壓後 得到一個檔 9 n" R0 `6 u! U

( A! r: H4 K' v* F1 C/ S0 ~2 v
% S: X4 n  u* ~  |2 L+ J4 x但我卻開不到這個檔, 顯示(無法開啟檔案)
, U, X0 ~* P3 ]愚昧請問一下   6052汇编大奥秘 是否 一個文字檔 / `: y* ]7 [' l. ?
此檔有很多文章在內 嗎 ?

点评

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

签到天数: 1981 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
6 G/ |0 J3 X2 u# C& @/ w* u6 X4 y9 `2 R( T
問題一 # 指令表 就是說圖6 吧 ?
* g9 T# u, n/ W+ \$ n
8 Q- |! m; v7 D$ M問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
, [9 r' o- s2 B$ b! f# B8 q
0 u# @0 A3 g/ O0 O, ^4 B/ p" M0x13 不是應解作 數值 減13 嗎 ?
6 J" p2 `" ]( `4 d" ]# R/ O7 @7 S( X& ^# Z
從何知道 0662+(X)=...數值減1
7 z! |3 ~& B; p( @2 P

+ s. S2 a2 |6 g# p' r# O" H* u% b[0662]是地址,0x13是该地址的数值" m) G: a# D& W) J" z7 {. [

6 B! E' H4 }% L+ JDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X
& l; N+ R% n( T# b, S1 {
( A! ]/ w; {. n) {" v( G" l
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))$ f  _+ i- q$ R9 J7 W
& O7 s$ [: t' @$ B1 Z
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?% B+ G3 K& u" K; j) C: G: d3 J
, W( n: @$ G7 R  z2 ]/ E0 j
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
" D; ]% K) d3 I

$ m) p- S) r" c/ r. ]7 `" U0 uLDA是读,STA是写
5 R/ d5 ?  V6 X; ^" q
5 v" @* O4 y8 N% fDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了
3 y5 J* M: k9 A, Y0 z3 G# H2 D: l5 t( Y' O7 S
BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转$ X( O2 |$ d4 k' T8 }% k2 K6 t

6 E" D- I' R8 f. H* F% J1 A% n* \. |1 LAND是逻辑运算指令
& B: `$ X+ Z1 C% H! Z( o$ _& H8 P1 I) B6 `
请看《6502汇编大奥秘》- D3 G( i* @# S+ y- A
5 \# d) a. [6 i" G4 b
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
* C8 E9 ]' ^, s7 O7 }9 p  h
* V2 x# [3 ~3 j- N# p問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?1 f# R+ f1 W8 H% g
  w5 V, X) D% n) L/ r. W/ ~
問題二 # 尋區方式 即是什麼 ?

8 `" K6 v; ?/ |0 x/ {# i7 `. Z: k( d& Y4 Q7 a& m( x6 e
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?. _, O; Q: \) h5 @2 ^  i. L
2 v9 {" L# [% R# _
寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 * z0 `) v$ }7 l' j
疾风之狼 发表于 2014-7-23 19:44, v2 ~- f& Y5 S( w8 m+ Q
[0662]是地址,0x13是该地址的数值
/ H! \) f2 `: a/ f" `* d3 z
. J* h9 f$ l& L" WDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

4 L7 L4 Y$ P6 b( X: S* ^  h( C. r2 c; k3 @
先感謝 管理員 疾風之狼 的回覆 {:4_118:} / k' B7 e+ ~# h
! k! M& o( P9 u! n' `. _1 P
好像有些明, 又好像有些不明8 w7 P5 I, |1 N" F
於圖6 下面的 [0662] - - =0x13
9 _/ I- X/ }5 V- d, M大大說  [0662]是地址,  0x13是该地址的数值
/ ]* J' Z/ C9 c" m! ^; C7 L; }/ y  [0 t9 Z
我先愚昧簡單的想: 1 S$ u1 M+ I; j
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫& T- p; v# S: E  E3 P
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 % }" Y; |5 s) j" t1 u1 L; Y
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的
  \$ E' \) P2 V, {; ~' x0 K' {1 Z8 \1 L9 B/ G+ b4 E' o
遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 199 K, o' O* n" v; q' ~* R
* x7 {1 b4 K5 M* Q
------------------------------------------------------------------------------------------------
! G* ?1 _5 p/ t' Y) g& @8 {/ Y& o: i! _1 E
跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC, x2 t$ D7 G' N* i$ s- D
DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以
, H) S. M8 [. C  k% [( ELDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A 1 o* z2 m- ~( e: q+ x$ p$ D9 x
* v) ~2 @. S* Q0 k
雖然 讀入至 寄存器A 這方面 還想不通,
: b# u9 c6 q7 q( Z" y, u總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了
8 S$ }' _' [9 N" N: d* E; v/ {/ Y4 D  O. S# P

  f1 P; ]% y) }0 D' m  s# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用
0 p5 K  T8 t( i% U6 _
1 D" N7 u1 S5 X2 w* z( G& W8 q=================================================2 j! h# Z" T7 O0 k1 D7 B7 B) o2 U+ I

! ]8 j+ D6 ^2 b8 q. q說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
6 q0 J9 Z4 T- f, v. w' s/ h- J, s
: c* W7 |- q4 o+ g- z一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字, % a; _0 @! R) M6 x2 b8 y
二 : 跟著 右按 選 以簡體模式開啟* k$ B- V5 U6 i
      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟
. s5 k7 {2 z) R- _' w
7 T& u1 j: s* x, r! h9 K5 H* W# v
1 R7 g5 A7 C: ^' U, y7 H; w$ _
( ~7 O. Z2 W- e7 V& m5 r* U* l& i. k  R/ R) `" O0 h

3 E4 H! p6 V# U' `/ B
9 Y8 K0 q0 ?- V& M/ j( k6 E# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了( m' j! Q* n/ q# L- b* I
       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44
5 R* Z7 q8 g) B[0662]是地址,0x13是该地址的数值9 l- V  `' Q# h
2 j2 v8 G9 E; v- |& O' |+ Q- F# {
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

( n/ R+ U" ]2 L今天又領悟到多一件事 {:4_98:}
7 r/ q. ?3 l% `7 b3 |) }' L) `
, H) \" ~1 q& W) _7 K5 R0 s8 t$ N於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白! f+ t; b+ }- @1 D( S  I; Q, D# s
現在又想通明了少少4 f* p; p0 w& c
---------------------------------------------------------------------------------------------
7 z- X. y6 O, b
8 W' P6 y% A% P- K中間寫著 :. {/ B8 Y' f6 L$ [7 n9 u
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A4 n8 X* |# d3 _$ _
起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?! v0 k' E" E- A2 t# f
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ?
$ k& G5 y9 ]+ j# v
3 J' O' X, _' N( I& t! W原來又是 16進制 的因由
$ E2 |/ M" Z; O8 p. h; X* j/ R2 C+ W9 u+ B' @
在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
/ ~+ |2 i# Q4 x  F+ u; T5 l3 `* ]即是說 9 之後 不是 10, 是 A
" [1 Y6 {2 T7 `. c# m5 G4 w8 i% O
8 g* P3 L  v" Z; d$ _: w所以 1234+6 不是=12401 w. F2 a6 Q- D% F
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
+ x7 O" ~9 R3 C6 R所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
  F, m; g% {0 _% D" e0 X
$ O, X- L' \9 H# b& I9 Q- R' i( @==========================================  N, p7 ^* k0 r+ Y1 o* N
8 q; a+ P8 |: a# n- D% I9 ?0 C
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了
+ M3 W* X6 Q3 T/ y2 _9 j. A* C除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝
& L, |  y$ w- d. a3 j* z
4 W+ A% e7 W$ P其實研究如何修改遊戲, 真的是非常困難, 且非常耗時
: ?4 @( H; q: X# A; N我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
+ E, G- U1 b- k: Y; e8 U6 U. E' L0 i3 ^9 m
说白了9 k1 A& d! S8 v0 r
修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
+ E" Y: O: X% M+ I% q% M) ^0 j
疾风之狼 发表于 2014-7-23 19:44
! P$ v7 i: u( {[0662]是地址,0x13是该地址的数值% d& A% @7 i6 P6 C/ |

, R4 T3 B# S2 ~4 l7 x. w+ }DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
: b5 \% k; S( j/ b+ M2 g

: f2 q  {7 }+ N, X$ Z8 }終於成功修改了 赤影戰士 受攻擊不減血1 g! _; q* A" |3 P0 f$ q1 b

! W, I* z3 [0 K/ L
8 C+ L  V! x" b2 s
  S- G# H) f2 ]# w今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了
% X* v" S9 I$ o2 ^7 y( I: s5 P$ v' S我曾試把此方法 套入其他遊戲去修改
2 U9 ]5 n1 ]% k: E/ l% j/ p; w但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型
7 `8 Y: O2 m( |6 E$ G所以都不成功呢
; s* r4 p5 J% M) d2 _; t6 L- Z最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-6-17 15:44 , Processed in 1.107422 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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