EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
: i+ l# U2 k( h4 ?
& ?) N( ]6 _3 u: a4 _+ h在此先感謝 管理員 疾風之狼 以下帖子的分享
( x7 F: X7 z8 l8 i! `0 B, ehttp://www.emu618.org/thread-21186-1-1.html
" F( T9 ^7 W+ h5 i/ F
3 w% ]5 W7 R* A) G- S4 e# ^$ t我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了
. E9 n3 ^8 Q6 J5 T; h成功一刻, 真是興奮莫名& E( i, z! Z$ ^
: n7 E6 w% `: q  q
) f( W  ^& c' m* V7 y8 f

9 G; g  r  I6 y% ]5 k( E
8 T1 d, J. ]5 H" x1 |+ L不過也只是 完全 跟著指示, 過程中還是有很多疑問,
) ?3 u2 n0 T' ~/ ~# X  b如不解開, 那麼修改 也只是 局限於 此遊戲
" |3 q6 Y. }' f: N. _/ i6 |+ x) R, \
===============================2 d+ x- b; g; T  R& \

( v6 A: y0 E& B/ q9 M圖6 後 的一段文字還是看不懂
+ O/ W- N9 x+ c0 t8 N8 A/ h8 S8 V. q: @
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))$ K  g$ U. L7 S8 h( i3 r6 h) ?* u8 c
問題一 # 指令表 就是說圖6 吧 ?
: ]' e2 x3 ]7 u' s
1 F8 q% M% c7 v$ ^& X; D問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13! m: Q9 }0 I9 k
                0x13 不是應解作 數值 減13 嗎 ? * f+ s/ X: C" d$ E
                從何知道 0662+(X)=...數值減1      
% Q$ }! F6 Z5 l) w' p; I- c% o+ y: c* W1 Y, @! I* c: p
-----------------------------------------------------------------------------------1 d- M  [+ T9 U% O/ t- O3 X9 f% v+ d
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
6 @8 N( s; t3 f! f4 s問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
# {6 @/ u$ h4 n2 F/ B: o                ( F4 Y* b4 m. ]* ?$ b
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
( O* K& j8 y& w7 g/ C. a( O9 Y4 K

' z) L) ]0 D" d9 c  U% e+ T3 |( {-----------------------------------------------------------------------------------( W' g3 t* T' J3 i7 C
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
) E8 {  T$ Q/ o( }. L問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
( y/ W' S1 x: G2 p0 @3 D4 D3 l+ X1 Y2 K1 j
- }2 R* A. o* t  S6 q7 q問題二 # 尋區方式 即是什麼 ?
( ]9 ~8 s. b2 m6 N
5 s, l. c, B/ v  D3 P% A' z
- Z3 v* N, O) O( I) C& q其實還有其他問題的, 不過一次不問太多了6 A9 h! P4 y( S$ Y
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的
6 }  K$ I/ K: D0 |  `8 ^9 H) K就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑
/ c5 s) Z1 i  j. d1 t
紫龙666 发表于 2014-7-23 15:221 k/ q7 i# V  x. m( p' ^* @
你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。
2 G9 o% s  r# E5 R& ~/ {

1 F. T: A: s  i6 T先感謝 紫龍666 的回覆  {:4_118:} - I' ~$ K# K6 W# @

0 |& k/ L& O9 |6 L! R+ l我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘# I+ [8 x$ y; `. b
http://www.emu618.org/thread-20393-1-1.html1 F0 E8 r  ^: m6 P
8 k9 K; E& U; ^5 ^
下載解壓後 得到一個檔
4 p* I4 i; `9 F+ j: `  ~+ p+ T1 l- q
: X1 ?9 v/ B3 N! e) O% L; n/ {6 B1 `) C$ l8 s& @( o1 c
但我卻開不到這個檔, 顯示(無法開啟檔案)( l  K6 ?! @& z3 f
愚昧請問一下   6052汇编大奥秘 是否 一個文字檔
( L' R1 v5 n  p& X7 }此檔有很多文章在內 嗎 ?

点评

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

签到天数: 2153 天

[LV.Master]伴坛终老

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

  n9 o& m9 n" H* y: }' n) |問題一 # 指令表 就是說圖6 吧 ?
- f8 \7 n8 d& S+ b5 ~, _2 z# K! V" D/ X; |- ?7 \: ?
問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13! y, v" V0 h( j9 ?7 L

2 f! G2 H9 W3 o& }8 N, J8 e0x13 不是應解作 數值 減13 嗎 ?
- a( H- i7 `- s+ H
# T, z8 ?# a! \從何知道 0662+(X)=...數值減1
6 M8 m( b! e. r3 Z
; ~3 a0 O& u6 n) k7 q
[0662]是地址,0x13是该地址的数值
) ], Y5 i7 E- R+ _* S. h  s* g
. N& Y) R! U" R7 cDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X  x0 @* p. X5 ~
. e  R) P9 Y, y, Q% g( \
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
9 y5 K1 E# l! T7 {  |3 \. G0 f; R8 Q5 a" H- J. Q. E1 f9 x
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
6 z; l& I/ [' w: D( f
' F7 P% f, n) I" m問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA

2 {+ N1 R2 F" C# `+ k  h
! z! Y/ a$ v* V9 o' QLDA是读,STA是写7 U5 r( b3 z3 M5 {5 m" O
( g5 S7 X: n0 d" F
DEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了
% |3 f4 N) ^! v, u6 @
5 q, _2 d/ o  @0 i( cBEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转
  g4 I7 `! s- D- D9 O3 {7 P; e5 @. c" B6 p  h' g
AND是逻辑运算指令& {, S( g' Q3 p, C

) S# s) w7 I3 N( D) d! y请看《6502汇编大奥秘》  L3 _0 `# A0 q+ o3 I
. b  `" p2 ^% c5 m6 N
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))& c: E4 p* b- G; g, ^4 y
4 u' N- c# |3 q# W! Y/ Z: y
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?8 O1 [) N4 l7 Y! c; i- s1 y
6 C; O( f# U$ C- \: Y
問題二 # 尋區方式 即是什麼 ?
- r& K/ K( R% i" j1 E
; d" U2 F6 J/ x% ^# t0 k$ s  x2 |1 W
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?: [9 y! g5 e) x* j& ^& Z! c

" ?2 }: @& o" j寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
- T& @, I. q5 ^
疾风之狼 发表于 2014-7-23 19:444 N0 `0 v: L  Q; W
[0662]是地址,0x13是该地址的数值8 z* A* z* r3 j, s/ S7 I1 m

& z5 ?2 ?# y, FDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

! @% \1 H$ w8 j6 z# E8 ?- v9 Y
5 N) r! k0 d, f+ f7 f1 u先感謝 管理員 疾風之狼 的回覆 {:4_118:}
/ ]3 D' l, e; k8 G5 u, v' m, X" h
好像有些明, 又好像有些不明
3 d! T% {/ {5 P- x! z4 y8 J於圖6 下面的 [0662] - - =0x13; ?5 U9 n9 |4 D9 |$ r9 y6 j+ D9 O
大大說  [0662]是地址,  0x13是该地址的数值
2 V/ L/ O/ k6 G% r  W) Q% V* a! z. I" q' t8 L& L5 m* i& k
我先愚昧簡單的想:
# @% Q: L& V+ l6 K  y6 Z2 f9 r(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫- S, d! N7 u3 |+ b  D6 H/ g
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢
8 C' o: }" g1 [( Y                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的# {* t- q! E, N, v8 A
+ w/ a' A& B, T8 N+ `, K
遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 192 q6 Z' h( e) H: e& D$ n
& L+ e$ k. c7 R$ n
------------------------------------------------------------------------------------------------
# E  ]& L$ v; Y  K% c2 h
: W: n9 @& E: [. K: u# u2 L跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC
" `+ n. F! ^; t) _1 \DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以
. |4 L% F, u) M( l+ gLDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A 6 B3 _5 i8 v  D. a
8 ]9 j- L7 d+ f' i1 e+ Z
雖然 讀入至 寄存器A 這方面 還想不通,
2 ^# P2 R% Z/ e1 h' F5 A總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了
- j; Q$ N, D; E# @! A- U; p# e' ~
% G5 e( L' W! s' p, ]# b
& O, P9 s: q$ |0 X/ W: }# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用4 F3 k0 ?: r' @5 t; N: C+ |/ |& L
' c/ \, w3 S  x% h+ B
=================================================
  x6 S$ w4 d8 d, Q' b5 i
4 z" `2 u) t  n; w9 i3 q說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :! h+ f3 q' u8 c3 v/ D
9 e  Z- I5 o, f1 ]
一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字, 4 r0 ?5 A8 A6 V5 q( B
二 : 跟著 右按 選 以簡體模式開啟
# a3 o9 q( A5 v* q) O      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟
! O6 J: ?! d. c+ X4 `. v! U# t
& s3 \1 P+ ]: p4 t2 C7 n: S
8 r! E: v; X) s9 _, N  {6 T3 ~; O8 S4 i8 D. i9 ^- |& F$ u

/ ?$ q& d9 r: q1 g4 u# p' g0 w! H* f' ~

9 b& \- d" s" q; [6 _; N# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了
& C  r2 L# s9 ~# i/ I+ H1 @       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44# g$ D. s4 f0 J/ |$ }8 B7 \0 c, p
[0662]是地址,0x13是该地址的数值
) N) d7 X% C7 t% f1 e6 R( a8 U
3 h! \2 T; f4 }! W- A' W8 ADEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

+ h+ H0 w" O% S8 v  y  I9 l6 J6 f4 _今天又領悟到多一件事 {:4_98:}
& ?! I4 a9 T5 ?
/ v1 k5 y& C$ P7 w/ K  I# m% a( V於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白, r) [% u) F* X( ^
現在又想通明了少少- O' Z- r0 G  ]5 w5 k7 p; R1 I: l
---------------------------------------------------------------------------------------------2 d$ ?* V- u" j3 o! h

5 \- }! p" y" r$ _+ C中間寫著 :
( `: l7 v6 I. V3 L" d( X; k# T! O9 S舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A2 \' U' J1 r' i1 G2 q$ ?+ g, ]
起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?' m5 A- K; q# B! @) ^  `8 T8 z
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ?
5 p! p  U$ {4 d/ N. Y; m+ {& D4 z1 T+ M  Y. T
原來又是 16進制 的因由7 e" p2 `; N5 \! [) G4 h/ F

5 f! x0 `6 B' m/ N) I& ~- Q在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F( }1 S: x% H# }# v( W: F2 V8 I. h0 _
即是說 9 之後 不是 10, 是 A# @' L5 s9 U6 \
& j7 ?& M$ e" ~8 Z7 V% `0 y" @+ F
所以 1234+6 不是=1240
8 e3 a( ?* O  O+ M個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
8 n; h( ]6 H2 {/ }- q所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  9 c' b7 z8 X+ D2 a5 q
) P% X/ A) ]. u( N) T$ n: }; g
==========================================
& ?+ D' |- T) G2 I6 Y6 s7 O) O# Y) A( A; N, ^) S
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了
' \; n* h* Q2 }7 }除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝
: G! H  H3 d. a# w0 w, _& f
/ ~, r; {3 X: x0 H4 G2 o  O5 ~其實研究如何修改遊戲, 真的是非常困難, 且非常耗時! H+ ]$ n, n5 B4 B5 H0 @
我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
' D: p( A  t4 A! ^$ O& r) }( _
( M  @! o$ B) V9 d+ b) T) {  L' i说白了% l, N& }4 T5 Z" e
修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
  A; l! E4 D3 o) N% `1 {
疾风之狼 发表于 2014-7-23 19:44
- I3 B: W& o3 ^$ W[0662]是地址,0x13是该地址的数值
& S* ?, H9 A1 Y8 r
) d7 a8 |/ S7 t' n+ h( GDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

- b2 h7 U+ o  {. ]5 W! k4 q( x) p$ \5 G1 Y- p
終於成功修改了 赤影戰士 受攻擊不減血
+ g6 ?/ J  G/ R- Q* u/ x. _% M0 Q( N7 m4 R5 x+ r3 @9 E
$ p  f) a$ b) Q- @/ Y/ D9 J
% F. i  H% z/ ~+ r4 n; M
今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了
8 d# d, O7 Q5 I- F: N- O我曾試把此方法 套入其他遊戲去修改
! x! z) p. A$ t7 v$ t% i+ b但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型( E9 s( V( _. v& m. c# i
所以都不成功呢
8 S- [& T6 b  u. u) o最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-12-7 08:30 , Processed in 1.083008 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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