EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
# X+ C5 |% _0 H$ N/ X- u9 S* C2 T3 Z9 f
在此先感謝 管理員 疾風之狼 以下帖子的分享% J1 B: e" o0 Y' q8 m8 z
http://www.emu618.org/thread-21186-1-1.html6 A/ I* A( S; Z& [0 c; {. y

! o/ O& x0 c9 O我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了
# ~6 C# A/ L( C- b; j成功一刻, 真是興奮莫名
' Q, u  K- |0 h% C* f
2 D0 J4 [7 ~% J! L% o
# t6 I& ^1 _+ ?! a: x& ^
" p, d2 k% r& Z4 V4 V( ~5 R& w+ O+ U% k% \
不過也只是 完全 跟著指示, 過程中還是有很多疑問,
6 D1 W; \5 S& c如不解開, 那麼修改 也只是 局限於 此遊戲
; z! _. Y/ S4 i, @% ]! j: p& b' o' O" \
===============================( H' v+ K/ A' M

3 ~6 J5 t- r$ Y圖6 後 的一段文字還是看不懂& @' C) p* z; N/ J1 s) a+ G
2 s! N7 s2 a+ M1 d  J$ t
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
! [, b/ d% i  [! s8 X- o" [問題一 # 指令表 就是說圖6 吧 ?; J$ @( m3 c* e% s5 v
4 b+ V" j, B' O' f# O+ y7 l/ K
問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
- b/ D! ^% Y3 e: ^* ]6 B+ p                0x13 不是應解作 數值 減13 嗎 ?   g0 E5 C  L2 ^$ j$ v
                從何知道 0662+(X)=...數值減1      
7 E: G# x: }- m- Y$ t0 w% o. l1 V+ Y
6 u, [" j  E8 ?' B2 B2 ^+ ?-----------------------------------------------------------------------------------
2 t7 y0 j- Y0 C7 Z' E/ Q[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
# q- l. `  ~& H% T) _: o問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?; R0 b; ~  q' b  y0 D
               
; e. h4 Q" I% J4 H, I5 l9 ?, h. n問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA3 s: ^9 W: e( N/ P! W0 k
8 r7 g! ~. {4 I9 W& Y
2 E+ U( h1 p" |8 m4 X
-----------------------------------------------------------------------------------( }6 R8 `/ F. Y% h
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))9 V6 O# S% l) D+ o" P0 p
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?3 ?# L9 S, m' C" ~' n
( Q# a. ^# H% n# w# }2 J8 u' M; U
問題二 # 尋區方式 即是什麼 ?
. C; l7 W6 |! N8 k7 {: N
. G- Q8 H; Z8 P' m( W2 b4 y6 S4 y# z$ l8 O+ T
其實還有其他問題的, 不過一次不問太多了
% Q% v9 `+ V2 N$ ~4 @1 _( u) V在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的
" [8 o/ P, S# ^" J  M就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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+ |  X$ V* a4 l7 x
紫龙666 发表于 2014-7-23 15:22! A$ x2 H6 Y* e9 \* G/ |7 Z, P
你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。
! Z% L) P# q7 }  d7 u, j

3 W# K4 R5 I4 [先感謝 紫龍666 的回覆  {:4_118:}
0 p7 P7 T7 l8 y/ g& e% J
/ K% T  C' N8 B: s% L- X我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘' Q' a% ~- i' C/ R0 k
http://www.emu618.org/thread-20393-1-1.html
" d7 G; v( M4 N. J4 \6 v* V
+ B' Y8 v6 `; O- g3 ?7 o下載解壓後 得到一個檔
! @9 T+ @' G- u) ^1 M; [$ M
; x5 k4 z( v- @7 z1 a0 ?
% a* K5 ^% u8 E7 t7 w0 z/ e* n但我卻開不到這個檔, 顯示(無法開啟檔案)
. l5 ]. i4 o6 w7 i1 H7 g& e) g愚昧請問一下   6052汇编大奥秘 是否 一個文字檔 & d+ d% Z$ c- ~$ b7 @2 i2 t4 ~
此檔有很多文章在內 嗎 ?

点评

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

签到天数: 2072 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
6 Z2 P) b* H: p0 g* e: P% @8 T
% p& c( m: h. d2 M$ Q) [" i  v+ L問題一 # 指令表 就是說圖6 吧 ?
: r8 t7 Y9 F9 m5 o+ W' e
0 e( o, o- ^2 b問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
* d; i6 t# h3 b1 I
2 b% t2 u$ I" v) f0x13 不是應解作 數值 減13 嗎 ?
$ P2 }4 a  s" y& H+ D$ f; ?* ~$ O5 A. t' p
從何知道 0662+(X)=...數值減1
# z! K. K0 Q- A3 A) I7 g- ~) h: U3 e
. R" ]9 x' m; a: i3 I3 Z+ L% O4 U5 H
[0662]是地址,0x13是该地址的数值
: h# c- N- _* r& E* H
2 l$ \3 {* r7 I: P" ?# n* [8 S' VDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X
4 S" O2 |! s- [9 G; A- \3 u: I3 J# a' O8 f) _8 Y4 h- j: n! E7 r
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))/ M4 L4 P$ m. V8 ?( |/ ~
, L( }, q6 ]/ C% ^+ h
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
+ Q; g) n! Z- q7 z5 d% W2 M
' v! G$ X  p8 {1 C: B問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
6 O4 I4 i  b1 S! C, ]; B; {

9 |* J' [" _0 D. h4 {; [LDA是读,STA是写
3 o/ O) D' J. i9 F' r9 {- O" t& q: A2 d
DEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了
- l: i" d0 O: p) y4 Y& p" [% p% o- Z9 r1 P7 z
BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转
, B. I9 [3 \2 N& E8 a5 O
9 @9 v. \1 _, |/ x3 j+ aAND是逻辑运算指令: T8 k4 E) W. R! m

& {2 M  `9 x# k: f+ B" q  F7 x, U请看《6502汇编大奥秘》
3 K" T5 ]. h& Q" P! ]9 G$ r) u/ s/ o) \. M0 u
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
. R* }4 ?0 x( t. G5 A6 b" `
2 p' x0 l7 X  P' T$ w5 d" N問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?( u2 O  y7 u4 J' `/ P# g6 O" e; @

  `. c2 j5 Y( g+ F( V" `) L問題二 # 尋區方式 即是什麼 ?
4 |2 w8 C5 i! Z5 W9 p9 q" S

- U; O7 @; T9 Z3 i我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?0 |/ l$ w! F& ]" N/ {5 I! `# S

* A; b$ W- R$ z, Q* ^$ w! p寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
8 D1 o0 ]* F! o& P3 H& U$ n- h
疾风之狼 发表于 2014-7-23 19:44! d2 a& j; e4 p% d
[0662]是地址,0x13是该地址的数值/ M3 u9 T: H! C6 ~# \9 q( g

/ r" w, [* _3 l: p7 U% e  gDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

: h, x! m8 F: G2 q) l
& g3 q- Y% W+ ?( Q# w( X先感謝 管理員 疾風之狼 的回覆 {:4_118:} 3 l; _" @2 n, i5 _$ r( y
( g6 n; y) D% v5 B. g  w; Q
好像有些明, 又好像有些不明
' v" V0 z; |% j! i6 b於圖6 下面的 [0662] - - =0x13
% K  w) t$ N" E$ Q大大說  [0662]是地址,  0x13是该地址的数值) j# p0 L3 n$ O! }1 r

0 D& v: `# K- o  F5 V2 y$ e: ~我先愚昧簡單的想:   Q% M' l7 `8 e/ {' [) @/ |
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫
4 ?  H5 P: M& ^0 |(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢
: u$ J5 c. g5 u! {3 Z                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的
' Q* Q8 L6 U. W. k9 T! ]0 G% r; u7 p% U
遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
' t4 W" b+ H/ [; x1 W! l2 V, @# R7 C
; L4 J  S& v1 z7 K3 G. p# d2 H( }------------------------------------------------------------------------------------------------  f: |/ U) O! T  h1 ]7 @
! k6 W7 L1 {" ~6 W" T- {* J
跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC
2 _% t; i9 g6 mDEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以5 A3 o5 J: h) g, I
LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A 7 G  T" b2 s: w/ f3 I
. R: \( O/ g. C8 J
雖然 讀入至 寄存器A 這方面 還想不通, / b2 V. _; Y- i: d
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了 - Q+ y/ F- Z% N& Y9 s
; A. y1 y- F% l, U7 F

) E' @! v2 A( m# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用
/ m- |7 J3 [1 H4 d6 W! {) c' _. ]( I% l5 _" P9 {
=================================================
) C7 c) `6 g' ?) T2 x# \  d
$ z! c; R- R/ @8 W說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :3 a" q  W- |* P
9 ~. h9 U, I1 ?* x
一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字,
, O' B1 f% Z  i/ U1 a. U2 Y" Z二 : 跟著 右按 選 以簡體模式開啟
1 A; g  _. O$ _: a6 p' p+ X      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟
) W5 B, o  V( f8 m6 X- y1 r; h, G% g4 e+ q/ e

' |( b6 m* v# P) ^5 b, j# y0 O4 n" b$ S4 {- N* G7 [7 V  R
; `9 u5 s2 L; _6 [% U- b$ l
, [( {# @. Z* s7 d3 _, B! U

, q. B6 K! s! g4 ~, t# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了+ W+ Y% \% ]2 q
       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44
+ W( Z$ s) k) s[0662]是地址,0x13是该地址的数值" {* z. p0 |0 ~- D. s0 F

' ~! F' f7 H% d5 h. l, h* eDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

6 p) Q( Q# H% G+ i& U今天又領悟到多一件事 {:4_98:}
; Y4 Y2 \5 b3 N  s' G% |; O1 j2 W4 i
於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白
6 ]* O% o6 k+ R/ t' X現在又想通明了少少
% r* O3 d  H/ }! I" @, ^5 b! {7 w---------------------------------------------------------------------------------------------
% c5 `, G7 O& ]1 y7 |2 W: ~" Z. l
! S) H/ o5 a% @/ @% N9 m中間寫著 :
9 @& ^3 _& `6 a; [+ Q% W5 w舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A
% l' W. b7 a4 n; Z% e起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?
; l* W+ ]: }  o- \. Y. G4 R& s或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ? 2 S& t, v% v' s

/ z3 k/ ^  B' t6 W  X原來又是 16進制 的因由/ @% ^" m" M7 [0 l, g

7 P: x% n: a7 c% s在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
- p& f' h1 ?8 d1 ?4 }* E即是說 9 之後 不是 10, 是 A" r5 n7 t. z. s5 E9 Q9 k/ a

$ _' h0 n( C* ?; P* N所以 1234+6 不是=1240
" D8 b5 u4 w8 B, C個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位 7 W; l8 }- B  M3 x" r% h
所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  3 J: u5 s$ s) U0 g9 w
# n: K; @8 K* X9 \6 L' _
==========================================
; A* m6 S  L, h9 f( `$ S& X: {- {4 X2 I2 n8 E% ]- q
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了4 K2 F, D7 Y5 l! [; [' R
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝
+ U: ~7 [, _9 p4 R5 c
% _% M; C% B7 _+ b* V) Y其實研究如何修改遊戲, 真的是非常困難, 且非常耗時
! F9 K/ k# K. u6 e我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
% `6 f5 D) B8 Q) d" k
" I. d; o( W" f( r说白了2 l. l, ~, e9 K, I2 ^) ~/ c
修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 + A  N: N0 ^2 n# h
疾风之狼 发表于 2014-7-23 19:444 Z! s8 I; H1 @# o* b, f
[0662]是地址,0x13是该地址的数值
7 N9 T0 a4 X5 m+ H. B/ I( W$ s
' i0 i0 o9 ^6 eDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
, }4 N4 _( _+ i+ ?9 f

0 C  i) J7 h, w終於成功修改了 赤影戰士 受攻擊不減血
) R) k3 d6 v$ r" ^! ~' B0 e  E; i3 M7 j

# L( D1 c. H% @" f$ v: i+ O" h
7 T/ ^  p* @: N5 ^, ~9 z今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了
& M& U4 ^% x5 q% I我曾試把此方法 套入其他遊戲去修改
' D! d) q3 f- H. V4 }: d1 N: u但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型
2 @, z. v- k5 s& r  l所以都不成功呢
5 N) w# M7 K5 P" c: v最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-9-16 05:58 , Processed in 1.171875 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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