EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
6 W$ j+ v& G4 b" J8 V1 O( j0 \% W" v2 l3 a% x
在此先感謝 管理員 疾風之狼 以下帖子的分享
- o* }1 i' V7 F$ Fhttp://www.emu618.org/thread-21186-1-1.html* j! q0 v$ h; u+ ]- S
6 D0 C& n0 U  y# O& f
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了
2 z8 a+ y7 E+ o/ E9 B成功一刻, 真是興奮莫名# n- @, x; G% c  |  M/ j0 k  R
2 z& ~- J6 B$ c7 |: O
) m4 d- [0 v6 {) i

0 ]( z$ p4 m# X
( V" q" P& G3 m$ Q3 G$ r1 \6 c3 }不過也只是 完全 跟著指示, 過程中還是有很多疑問,
! i4 J! c2 o+ j. b: P如不解開, 那麼修改 也只是 局限於 此遊戲  q4 h) a5 K4 L9 z  e
0 I- m1 O$ k  P
===============================: V( K) V7 l. ^, U3 V2 U
* _) I$ i6 i! r
圖6 後 的一段文字還是看不懂4 C# F& @8 R; _/ X+ c0 P2 I
7 I$ z6 J# b' s/ {: ?2 ^# _0 g% S
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))! ~: a3 I; G" x5 G) Z2 q  p
問題一 # 指令表 就是說圖6 吧 ?
  d! P, u6 H+ ^7 T* M& ~
4 J( R! F% [7 y問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x137 s4 |: A$ n6 o" k1 @4 Z
                0x13 不是應解作 數值 減13 嗎 ?
* \6 b/ a2 C( r4 P' f9 T                從何知道 0662+(X)=...數值減1      
% b+ C% v! v/ p% l3 d6 L; J! T
& C1 y" G# q" X, ~: [1 X-----------------------------------------------------------------------------------
$ ?0 s9 E+ u6 x, _) I[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
# }9 }- x4 T8 j1 t% H# |$ a# E問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
- A) G$ H( f5 U) l               
0 m4 O6 z& d, P" P3 L0 H( w問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
: m* ^& L. b8 c6 I2 v8 G3 E, O& x
3 T6 o( z) n/ n' T3 v3 f7 t# u
) l4 u6 z+ c- i  v/ T  I" ~-----------------------------------------------------------------------------------
. k2 I, J( S/ m[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))$ ~. |0 |6 d: h0 p  U7 y% m
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
+ \) X3 W; U# H/ j5 M" v
  S0 ?$ W" b0 T4 R, M' c4 r/ b問題二 # 尋區方式 即是什麼 ?( c, `; {$ N( A) d2 R/ G9 }
9 b0 A8 g  v% K; x2 D

, Y  M! S- k  C5 c% q$ c9 L3 k) u其實還有其他問題的, 不過一次不問太多了
, j7 P8 ^/ P; |% [( V! Q, A: O在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的
: X3 q4 {5 {' y$ 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 编辑
8 ^' ^+ p9 _+ v) ?$ n
紫龙666 发表于 2014-7-23 15:22
$ y, ?$ p$ o7 f- D4 F, u你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。

7 T; r( j- n% K
+ p% f  K- @6 Y  b+ |# w0 ]先感謝 紫龍666 的回覆  {:4_118:}
* i$ k7 o0 ^( @; z, ], \3 F% U4 u% K. }! G7 x3 M
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘9 u5 }; R, X, W9 n3 C. S: S
http://www.emu618.org/thread-20393-1-1.html
/ |$ E* f7 o# O8 U3 \7 F2 v% p/ Q( o: K
下載解壓後 得到一個檔   U" v7 U9 N' F" a

3 s6 ^" g# W0 ]4 Q8 c. |4 q
' m9 b( r. ?9 \' l8 ?' A6 y! r但我卻開不到這個檔, 顯示(無法開啟檔案)
  V+ J; h* m. \" r  A- J! I3 S/ u愚昧請問一下   6052汇编大奥秘 是否 一個文字檔
, }! s- ^7 E& }+ Y此檔有很多文章在內 嗎 ?

点评

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

签到天数: 1773 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))$ B0 g9 f0 a1 f2 H
( L" y; E8 v! U$ Z. O' W7 z
問題一 # 指令表 就是說圖6 吧 ?
# X/ F4 r& A4 k0 h; f, H0 P3 l; G
問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
+ V' D. J4 ]/ f+ f- x: E) P9 Z8 Y+ k+ c8 r* v9 ]
0x13 不是應解作 數值 減13 嗎 ?
( V. K  V. n5 X) {# l; B8 B
5 T, f+ n2 {3 b7 h9 L, T3 B3 B+ ^從何知道 0662+(X)=...數值減1
1 `5 M0 E! S! |

& W* m$ J. Q# Z* j$ A8 V6 t[0662]是地址,0x13是该地址的数值
5 q3 Z# K& `7 c+ J- u( F/ _+ @# H
+ Q! \- ^0 H  O- UDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X2 U4 ~* O6 h* [# g; I

) o& o: ^$ y# x2 P! `7 g
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了)); y( G# }/ J) T+ q9 a+ h' X- d

& i' H5 z3 z; l問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
. j3 {9 X/ {" ]! b  o  ]
! ]5 S& l4 m, T0 d: m4 s# z問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA

' m. S% K9 K1 l4 H$ e$ b3 {0 T4 H% J# m$ P
LDA是读,STA是写9 B5 Y1 c; D& e8 h9 \$ o
4 ?" e" ^% H& ?/ V
DEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了
4 P# ~+ Y' n. b0 T- L) Q* P5 J1 A# H7 W$ B) r5 f
BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转9 v' {4 R, J  j' X0 s6 h, R( u
5 ^4 p/ p4 b* k5 j- J7 G3 y7 u
AND是逻辑运算指令: c, ^' ^, K. m

2 L0 V/ t# p* `8 x2 u0 w请看《6502汇编大奥秘》
* E; y6 S; h1 r3 Z/ @: c: j' J$ I% G1 D
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
9 i, I. ^6 h9 H
9 ~% c" X  t: n& ^* f問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?; K# c! n' p/ m% h/ b1 l! s& q

4 d) I1 Z/ ?+ L' L, v1 n. [問題二 # 尋區方式 即是什麼 ?
0 n7 ?. r% j" y% R3 w" e% e1 `  w
7 X$ _# D& e# U$ f5 K
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?% W; G  z/ q  _: W# r

( T6 n  i- A# I. |* H: @寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 * K( T% U$ h1 h3 }- C
疾风之狼 发表于 2014-7-23 19:44  b6 C) f: k  F( U
[0662]是地址,0x13是该地址的数值
5 y+ ~0 ^, T6 E) z) S2 m5 |0 B1 [) k: N( [5 }
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
" S6 K( h7 e  m" a+ o* J
2 o) O: r5 H7 K! q4 v
先感謝 管理員 疾風之狼 的回覆 {:4_118:}
* _8 @$ F) R+ D% }1 {# U# e+ Q/ @9 z" N
好像有些明, 又好像有些不明
: ?+ W: x% H1 `, b& i( U於圖6 下面的 [0662] - - =0x132 R* V* c+ b/ s: h
大大說  [0662]是地址,  0x13是该地址的数值
' w. A) Z- R7 ^$ g/ {6 S' H6 b# W1 X& H+ R: X% F$ J7 J0 ]: f! W
我先愚昧簡單的想:
% @% W8 P3 V7 S' o: @, [, l(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫+ z& E; l7 I1 D  J
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢
/ T8 \: u! {4 b7 o1 o. [$ e                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的  N5 i, W1 F1 {; I" U- D! P" l2 f

" C/ M  Y. \% M5 x. }, O遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
7 t  N5 e. Q& k) A6 }$ F. }$ d9 \1 G! t1 t5 \
------------------------------------------------------------------------------------------------
* k* F8 ]5 M. \; y, `, R% c. e% D# @% i9 F' r  I; f
跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC
9 v( p- H7 x4 ]* JDEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以
' E3 ]& }4 F9 ?5 _" S- _1 [LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A
& c1 x7 D% |  e7 Y4 W
) E% b7 N) }" i( c! c雖然 讀入至 寄存器A 這方面 還想不通,
9 z# e" w3 P, @: j( E* p總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了
: Y, i: L+ N2 p& L" y4 s: F! F1 S7 }3 e$ J/ D
1 v/ B; B8 w  T8 q3 t2 I# G4 Z
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用& O) N  }8 F8 |

( I4 k# s1 X; P6 \" |) B=================================================6 }7 Z! s# M, @2 e
4 c" D- o, k' N0 ]
說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
0 i- @$ w& n# o) v' q6 k! E
( {# n9 O/ b  z一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字, $ O! u9 \; ?3 m) I3 m7 ~
二 : 跟著 右按 選 以簡體模式開啟6 `' J+ Z, H& O  O9 J
      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟
! p# ~! v1 F" e2 t
6 Y/ [& L6 ]6 x, `# c0 M. j: i5 M' Z# M. O- q% {
6 }) _1 X. S. e5 P. i
9 a5 w+ }2 Z$ {( u- w
( j8 p; y6 o4 U" K' ~
7 s+ _, ]8 m; W* o
# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了5 B6 x0 m( R  b/ `' q1 B* o
       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44
3 ?4 W& M7 i$ z8 p2 l[0662]是地址,0x13是该地址的数值6 l, {4 S6 q6 C! J0 I
5 u0 W. H8 `8 S1 s4 f. W. g7 k
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

, M  ^% D/ l3 }今天又領悟到多一件事 {:4_98:}
- i: ]0 P- i7 g  \; x4 s* `6 O& V' |& u; S1 m. E% |: N
於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白
2 r/ o% p( g6 l" U現在又想通明了少少
3 s- U( c" X# n---------------------------------------------------------------------------------------------/ j- L* U* d" u5 ^' g8 H

3 X7 _1 m; L4 G- q, `' l* W) ^中間寫著 :' c2 V, _2 N& m/ q9 J: m4 W. Y. ~
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A6 [+ _, ^/ Y- ?1 m* G* a
起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?% @6 q" Z/ E: w8 p8 E+ F
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ? 7 [' V0 S) u# d* y
  n9 M3 ?: B5 M8 D0 K! b
原來又是 16進制 的因由6 `  I* S; W% h7 O* ?' K  q
, ?4 d7 i5 W: D
在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
! Q- i) ~* M4 T即是說 9 之後 不是 10, 是 A) h/ }) |, F( ?$ Z
( \, \2 [( b" P, q) ?
所以 1234+6 不是=1240* W* d$ f: u2 M# P6 S
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位 % w% B- z' H/ ~% j6 w
所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
* o% A, c  g0 o7 u! r- z- N : w$ a: l2 c! D0 T0 {
==========================================$ j1 `. o- c% c, s* Z* _& C; b
1 Z9 `& n5 _+ j. p
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了' r# w5 w- x( M+ @; Z1 R$ r
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝
. r' r) L8 S) b7 {* g" [& I; u  S! Y2 o5 W4 A
其實研究如何修改遊戲, 真的是非常困難, 且非常耗時8 J6 q: a  k8 Q! ^' D* Q* v
我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改' a5 X! V, g, H7 Q; A

  g( m4 r6 p) m/ K! o( H; N) Y说白了5 Y4 U  S6 B5 _% T4 V
修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
1 E) E' N0 M9 l+ X1 t: N' t
疾风之狼 发表于 2014-7-23 19:44" T, T. Q7 S0 K
[0662]是地址,0x13是该地址的数值& e0 K& o  V& c7 T5 H
. ~8 S: f, j- e' }/ e/ u& Z# ^2 e0 b
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

4 X2 s0 d: S  o0 {4 Z5 H
/ k; f! l7 w; r- _( f" r% j7 L; O0 A終於成功修改了 赤影戰士 受攻擊不減血( p1 t7 k& f/ x
) N: f1 g  z4 B* I0 p& U" U

: U9 \# \+ R7 f3 h8 ?' H
8 E( g2 Q6 v7 r! N  q今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了
# k  Y* T( J$ d+ i* J我曾試把此方法 套入其他遊戲去修改
3 y" }+ g8 j: b; a# F但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型
5 \+ Y  R7 C0 G+ G) n所以都不成功呢
+ J* @' e9 e- ?, a: \& y7 W2 C最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2024-11-19 16:27 , Processed in 1.072266 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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