设为首页收藏本站

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
6 V6 L8 i  |1 D/ o# V; K3 h& g- F) Z" ]! E1 s" W
在此先感謝 管理員 疾風之狼 以下帖子的分享
0 ]  ]. b" @* _+ i, B9 w# a4 [http://www.emu618.org/thread-21186-1-1.html
% T0 m3 ]% T  x. X7 ?) t4 D7 ~8 u& Q6 ^8 B
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了
" W" Y% _9 J  y" f成功一刻, 真是興奮莫名. C2 W, t) X8 Q% [! X$ I

9 r. s% ^  R5 w; W) M) p/ r$ @' N4 H8 h( ?, G3 y  s
5 Q, g+ w9 J! r$ V
$ o& m& e! q1 I+ c$ j8 P3 l' `
不過也只是 完全 跟著指示, 過程中還是有很多疑問,
7 k  \0 j3 ^) d, r! e如不解開, 那麼修改 也只是 局限於 此遊戲5 g" N9 }" Y. K+ ~+ }; F

' R) U7 G2 G! b" f) _! m7 o===============================: t9 I& q* f1 I, I) J  V: w
' C, l( [8 k1 ]5 u/ Q8 d
圖6 後 的一段文字還是看不懂" Y: d7 P1 r% D" W6 v) O

6 i2 d8 H0 K% t: }! C+ x( C[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
1 V" E, d+ O0 I問題一 # 指令表 就是說圖6 吧 ?# i9 G6 U' E2 o5 c
5 H1 Q# r. p, W/ l% e6 F4 r
問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13$ @, G. Q: E0 a4 @& U1 V; @, v
                0x13 不是應解作 數值 減13 嗎 ? ! @5 m/ M* T" Q2 Z& D- w8 X
                從何知道 0662+(X)=...數值減1      
9 I6 S! W4 w. p! F0 I: Y) N( C* F4 M; R7 R" G  D! {# w
-----------------------------------------------------------------------------------7 n/ Q! x  {$ t
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
1 e( f0 ]* ^  }8 V; |問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
. g9 d+ O3 C$ T; X$ }; ^: u               
: }' h9 V2 E2 T問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
0 j# v: i4 i0 D+ g- Z. y# {
3 \' B6 f7 S' v4 R* W1 H! k5 \6 O8 {2 e! e6 Q' T
-----------------------------------------------------------------------------------
6 z! {/ i, f" Q  r  \[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
1 a8 S1 E# y: a% ]  V1 o, |# G問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?) Y# N( N9 P6 v) k' ]+ S* C
' K) }. |* h' F' @5 ~
問題二 # 尋區方式 即是什麼 ?
! n" z1 a3 v1 y# T; j0 [( ?) l& b4 n7 A+ C# n% I' A
) g- c9 R( M( U' I/ `1 v! I
其實還有其他問題的, 不過一次不問太多了
4 n# k( [* e$ s* V在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的
4 `  b1 X  n4 L( }; 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 编辑 - M, B" o; x, P, o9 X. O# P
紫龙666 发表于 2014-7-23 15:22
, f: n* M- |; o! y& P0 x你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。
/ H  V: z& H7 }8 b

) o3 d; S& E# n. k# i. J先感謝 紫龍666 的回覆  {:4_118:} 2 I# _1 A9 d' d$ R$ N# f9 i

$ H: `* C/ W. ^- H& }9 H/ ?我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘  j4 k' V( C" L. Q
http://www.emu618.org/thread-20393-1-1.html2 r  `' A; k2 A

8 {1 w% e! a% k0 B  \下載解壓後 得到一個檔 " g( [# h% |9 ?4 R$ d8 @+ P% a
; s; S+ g1 k3 \; B6 U" q. P' I* i

: U2 v) t8 y0 m+ N* c9 n但我卻開不到這個檔, 顯示(無法開啟檔案)
: x) C) h# \' L, r- ~$ b; R愚昧請問一下   6052汇编大奥秘 是否 一個文字檔
; m- L( a/ i6 P' P此檔有很多文章在內 嗎 ?

点评

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

使用道具 举报

签到天数: 1898 天

[LV.Master]伴坛终老

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

7 h0 s; B- y, {4 n' x9 q問題一 # 指令表 就是說圖6 吧 ?! t/ j& E$ K' C) @( R, |

+ W# R' ]# P! x" p: y# o問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
$ G. a5 u. S4 K" X' s( m# m, o0 N! |
0x13 不是應解作 數值 減13 嗎 ?
4 s; N/ j" P$ _* O5 _9 O
7 K& l' ~7 J5 L( \" Q從何知道 0662+(X)=...數值減1

# V4 ?$ K% ?# C3 X- ~
6 s6 e' |# l; ]" o$ u# N[0662]是地址,0x13是该地址的数值0 E" }& o$ K2 K' d5 k, E2 J1 u% P, j6 ~

" _4 R* j# j! V! d' o  nDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X  \, u2 \& C/ D) g

. u0 N) M" t! \- ]$ p% Y
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
4 T# J+ Q/ W" t) P+ g" V; [1 P/ i4 ^, V9 b9 E
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
3 q- Z- Q* ~, [2 ]$ O
6 H1 O2 A' n/ Z7 A問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
# ]3 C5 e3 s0 \2 j' b

! j! ?) D2 c: [LDA是读,STA是写
3 p  L0 \9 D, X2 E  X0 y. w$ h" Z/ W5 j! C& w' U4 @
DEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了
: o5 t. w3 i/ V) C0 Y" e, h. k+ g( F- _/ I) X. M
BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转8 [( u) v  ?$ _2 `6 B
' q4 h, J; M4 C1 y
AND是逻辑运算指令
; h* D" r" C7 ]( H7 Q  N8 z; }8 L$ A# f, M/ H3 o' M
请看《6502汇编大奥秘》
* H- V3 p0 W9 L# s) P
' p/ ^* k" ~8 O
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))# k% s  X$ I2 v0 o; d5 E

; l- r$ a2 _$ ~3 D2 D問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
" o; B, M4 s1 {# ~1 s- e4 F6 W" i* g" ~/ i! C( K2 w
問題二 # 尋區方式 即是什麼 ?
5 l% P6 s, j3 h4 C3 l
& ~1 z) i1 ]4 D$ H/ |5 \) [' C8 {
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?- {* Y6 w3 o$ W
, v# T2 I3 ]+ ^7 B
寻区方式请看《6502汇编大奥秘》
回复

使用道具 举报

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 6 ~. I4 q6 j8 i9 [3 S1 {
疾风之狼 发表于 2014-7-23 19:44' f8 p9 r7 D2 k5 W
[0662]是地址,0x13是该地址的数值  q  M  H7 v/ n/ c4 b8 S" k5 Y

+ b. Z; B/ G' o. _" fDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
$ V: O. E% R3 W# e+ L# k

$ K$ [, G$ A- F. i先感謝 管理員 疾風之狼 的回覆 {:4_118:}
! _$ j% C6 w. r0 Y. z* h7 u  e, F
6 T- s2 N$ E4 t  |5 z; p: P好像有些明, 又好像有些不明" c/ i6 f  H. t# N. F
於圖6 下面的 [0662] - - =0x13' L# ^6 |7 x; R
大大說  [0662]是地址,  0x13是该地址的数值/ i9 h4 M! v" r$ W7 R- p
* H; e8 o* @9 V* j3 A/ g
我先愚昧簡單的想: : u6 N1 C0 i; s) {7 j$ c
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫$ v' r' p# p2 d7 I1 ]% |% m: M
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢
+ q6 F1 v( x1 d8 o& q                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的
, g. T8 a+ I) s4 y' h
! h% }# _0 z$ s遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
1 j$ r6 ]" j( ?3 Y4 _4 C$ i/ y
; S8 X; `+ a8 Z9 t- G------------------------------------------------------------------------------------------------, A9 h9 H% s9 f  E, h% r) K) Z

& e" }% T2 D7 d跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC) _# [+ @9 U; d; K. h" e7 X
DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以4 \$ y0 w  z0 b& k; }% Y7 _) Q, A9 l
LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A
6 g. R. _9 X' |/ d0 H6 f# j, ]. J! G; u, K* g3 a
雖然 讀入至 寄存器A 這方面 還想不通,
4 `$ Q) V3 O( h9 d, c總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了 2 l! ?% v7 z' i: n1 E: }! Y
# R# z& H9 y8 \$ m" e" [, O
. B7 I- U0 ?  w
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用$ d0 m3 Q- p5 {6 ?5 z8 ]3 \
5 o! i; U5 m& M4 ^+ s% }
=================================================7 ?4 Q/ \* W8 Z) i
0 B  T3 }+ L9 B- c% K& I! [
說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
: |, m: |$ T2 t3 M' R
' O1 u0 S* l/ A+ u) W" [一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字, : i1 @1 `4 j) `: n9 _/ z
二 : 跟著 右按 選 以簡體模式開啟
1 C( `/ ^, P0 ^& a      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟* V( \& Z! }9 s, M7 d' L/ E0 _/ S" f

/ u5 j  h4 M6 W6 x5 G  T9 o$ C+ O  C! X( T
% ?9 o) M! v, Z% u; u3 }7 B, [
) P, T1 K( g9 w6 E
+ p  p; X4 d6 j4 f- {
% k" v6 _: P& V  @" Y: F& a
# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了
# y8 M; Q' Z+ `( j       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜
回复

使用道具 举报

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44) e. ^" J( ^; T# ?' m1 ~
[0662]是地址,0x13是该地址的数值
9 d& |. }: R6 k/ [5 L: D+ G; w  I0 C6 G, q
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
5 u! ]2 o! d/ o6 ^! y. V$ w
今天又領悟到多一件事 {:4_98:} " ~  j- K3 H. J" s

- E' s* _. W9 w) n! z+ }7 P於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白
; x! b1 P6 d4 u現在又想通明了少少
/ r- L" P3 w* w, I6 g3 E) f/ V& S---------------------------------------------------------------------------------------------
8 j1 s" o! k% x8 f0 p. M, N
) [9 D. @1 P$ ~4 v" R中間寫著 :
7 Q! s! ?# k2 c4 `舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A
1 f% }& ^7 i9 [起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?* M8 V/ {2 a: d1 t2 [7 u
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ? ! P6 N' E1 s1 m8 T( d  z, T6 M6 `' G
" k7 i- R1 {6 x
原來又是 16進制 的因由- |% s* E) s7 \% h* L2 v
0 Z4 ]$ L# Q9 \8 R$ g# j
在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F( |- V7 e6 G0 s! s5 D0 L) f& c
即是說 9 之後 不是 10, 是 A
( I( [6 |9 q- c* N0 E$ O! y- C. H9 V0 F/ ~) C2 y% r
所以 1234+6 不是=1240# Z) O. G) k2 j2 ?6 Q9 S
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位 1 t7 L' D6 S' I: J: V" G! K6 U
所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  8 ]- f  e- ~9 D1 M- J6 A  `

" ]% B" u7 m: h==========================================* f4 a* b% O+ S0 h
5 n) i: C. o, @" b; Q/ |" Y
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了
+ I0 a) t: T( f3 U) Q  o% B除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝
  a# \- V! d6 F& ^0 B& L" t3 {3 g7 G8 S: i
其實研究如何修改遊戲, 真的是非常困難, 且非常耗時( W9 \! K$ |& k1 j7 T( S" m
我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜
回复

使用道具 举报

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
, Q9 P' b5 j  Z$ I( }: k5 w( e2 T: X
说白了* B) X0 h% I- @% S
修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

使用道具 举报

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
( G9 M9 i- E' H! ?. A
疾风之狼 发表于 2014-7-23 19:44
2 [% y* l; U" E2 {[0662]是地址,0x13是该地址的数值
2 c; m8 j9 k* ]& F9 e
3 L( b' a" v2 s( a+ w! k# R/ kDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
1 }5 S+ E6 H0 P4 o7 `7 n9 X& G
6 O, v, S% m9 y) e, J4 W* F
終於成功修改了 赤影戰士 受攻擊不減血3 p' E$ e% a+ H) x' R
9 A: d0 b% l! O9 n8 E0 L

- a+ v  K7 k& m; K) K0 M6 P( \5 _' R9 o' l
今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了3 c* a$ V) l. q; H1 g- ^" f$ Z
我曾試把此方法 套入其他遊戲去修改
$ X+ m0 \0 \$ s7 n但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型( |' O' }) W& F& M. e7 @
所以都不成功呢$ t9 e; Y% B  a) f2 _
最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-3-18 07:36

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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