EMU618社区

 找回密码
 立即注册
帖子
查看: 802|回复: 10

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑 : V( l  H5 s" _" ]/ j  k3 K

) o# k- I; ~9 N4 O+ M3 {在此先感謝 管理員 疾風之狼 以下帖子的分享9 i; z. M/ |( I6 C: w. S7 D
http://www.emu618.org/thread-21186-1-1.html0 Q  N# y1 K: X3 ]: L  k! x( J0 p  V

2 p$ a/ X$ H/ t* n) }; j# p- h% p' l我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了
$ [. ]- e* W6 c( x成功一刻, 真是興奮莫名
( H1 a: l1 U$ j, ?0 Z  @/ V$ h
7 r$ B8 W+ V9 F
2 n' t  ^- k2 }5 y- V- U ; G5 Y1 e, P( b' b, L! W

4 V: G* ?6 U: y3 n, x不過也只是 完全 跟著指示, 過程中還是有很多疑問,$ W6 O# C& ]) C' Y
如不解開, 那麼修改 也只是 局限於 此遊戲- M/ i$ n) q. d! g/ O7 L9 w: p

5 p) E5 P2 P! A+ Y! Z===============================
9 V: i% j4 b9 P* H' N
5 f# g* [/ Z2 Q圖6 後 的一段文字還是看不懂
2 B% l  |( g; @1 H3 o$ K# v5 Z8 a* Y; c. N$ M' R3 [
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))) d  ~0 Z& V! P# p( s( Y& [3 V
問題一 # 指令表 就是說圖6 吧 ?
. M2 ?$ F  Z; c/ X# K& x! W3 y
6 M6 d( @3 g8 I$ o# I) j, p- x問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
* n- h) E7 H: q$ ?- F2 W2 {                0x13 不是應解作 數值 減13 嗎 ? " ]* b; t& A. J4 ~7 W
                從何知道 0662+(X)=...數值減1      
* p. ~/ v( u: D( S
+ |3 [, ?" {, y* n% H0 |4 v-----------------------------------------------------------------------------------
' u- \7 k$ }/ X- q1 g% V: g[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
, h% m# B# E8 `  J問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
( M+ h5 h# b9 ?8 ~* ]. b                * }- @  U* m: e# m/ Z/ V
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA1 a1 y5 l: R2 V, `
) |4 a+ l% P' R! W$ n
$ p3 t0 L% M) r# R  w; k
-----------------------------------------------------------------------------------' Y3 _& _+ J' K9 ]
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))  Q9 a5 \8 Y2 c4 G. V8 H+ b
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
3 s/ J( |  |6 a* _1 z6 k7 {7 ]6 x# t# N% o# X
問題二 # 尋區方式 即是什麼 ?  d# l( m. f+ d' K  D5 ?# ?
& G* R8 q+ C2 o1 L# h% y; k
% ]6 {: H$ H& g4 L2 g) h7 _, p
其實還有其他問題的, 不過一次不問太多了
, p/ n7 G& u: Y* S7 o在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的
" z5 ^1 [& s" O/ {  o# ?就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑 ! W! \) p( t! |5 F" X$ V
紫龙666 发表于 2014-7-23 15:22
4 b" I$ Y  j! N8 Z+ M你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。
' F( C4 C8 p: O' l# n9 E1 ~
0 y; N# n, b  ~7 K
先感謝 紫龍666 的回覆  {:4_118:}
" p3 a' v, V+ l  S9 B8 _) m1 }% a3 U5 V8 D8 r# ]& k: w
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘7 ^4 `% u4 J$ w! Q/ _. g
http://www.emu618.org/thread-20393-1-1.html
0 u( U7 p6 T& v6 S( m
( s& L/ S/ {- }/ U- J& j下載解壓後 得到一個檔 $ s' {% v& B- w/ w
+ r5 m* F5 d( [: {" |' ]  y8 i

0 l  {4 h% J' t1 o, |; M* S! \但我卻開不到這個檔, 顯示(無法開啟檔案)7 u2 ?: L/ g& R3 H% k6 c9 j' t' \
愚昧請問一下   6052汇编大奥秘 是否 一個文字檔
" n) A8 W0 _, f6 @* T  ?此檔有很多文章在內 嗎 ?

点评

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

签到天数: 1992 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))2 _, v. e, f2 I6 s  z  D' a
! @8 K3 d0 n; R, |" s6 b1 ?
問題一 # 指令表 就是說圖6 吧 ?
7 q6 ^$ K3 v! h- n+ @7 X0 f! W+ m* K$ e
問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
  E4 b7 r+ T! }# E& X7 v6 Y$ {: ~2 {3 I8 S7 M
0x13 不是應解作 數值 減13 嗎 ? 1 ]; U& y) v) _& E- A
  q6 M! C, W8 f" p, r; W
從何知道 0662+(X)=...數值減1

% w1 h) W, W9 Q4 z" w4 @
9 y7 j, {! y' A. k* H[0662]是地址,0x13是该地址的数值
9 n. N3 v9 |% O0 n7 @" D& m( n. N) [3 M) w
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X
$ o5 U& l# X& H7 h! O  Y
, F% _5 g8 a0 ?3 ]+ M0 c
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
9 Y! W! E( @# U( w2 w3 H
0 w5 K& w& {7 }7 g9 {1 _) m問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?. N, i1 U* j* o1 j+ Y. T1 _
5 _0 b' C: {3 z
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
" u; P6 B6 G. t
' h7 L- ]/ m- X- k$ P" D7 B; }! I
LDA是读,STA是写1 k2 t) X( `2 j6 k# h, S7 l

! \! f2 P! E/ e7 E3 a6 |0 hDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了. K& P! h7 g# }5 _, A/ ^
) q; B: _; B5 l9 F& c7 u
BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转
# r" N  p* w5 L; i2 z" F
9 \1 K5 S( G: j2 f+ b5 NAND是逻辑运算指令# a/ t) M2 G3 Y9 a0 Q

: z; B: y; L; p: q9 _  t; F3 Y# S! P请看《6502汇编大奥秘》
# T6 e$ A8 `$ g3 [
1 p/ {; s1 m3 r$ F+ O+ [8 p
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))' h3 r2 A; V: O8 W  k

& [8 C+ x0 l- S- b3 V問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?# u( G0 G, A" {8 ^" N4 {
' R( X; v1 M6 R  {
問題二 # 尋區方式 即是什麼 ?

& F) i1 o+ {) a, v& N, Q0 P1 u3 z8 `+ x
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?9 q4 w: u. r' e9 k+ b2 i* `5 [

1 ?% K8 T2 S. c: C2 M7 m/ W6 N寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 ' T1 s$ E+ B: s8 o/ u' Z
疾风之狼 发表于 2014-7-23 19:44- a  g* e  o9 m5 A$ I. N8 l1 Q& r2 f
[0662]是地址,0x13是该地址的数值2 w$ o2 `; @* T7 ~! @5 R! G# l

& H6 X9 T- t8 ~  w/ T- ?DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

# i. P" A: b( H, o* c$ ^% j& {3 l% K9 f# U8 ]+ a! J3 \
先感謝 管理員 疾風之狼 的回覆 {:4_118:}
  f9 y; `+ P: g& G3 ^* r) |2 U! C3 O% c3 M$ c
好像有些明, 又好像有些不明
  Z4 j) b1 {. Q2 T& b: u於圖6 下面的 [0662] - - =0x133 @% \2 e7 d. M/ a
大大說  [0662]是地址,  0x13是该地址的数值! j. G9 T9 \" P9 U/ g6 F, l, \5 Y, [

2 j& c: ^3 e- K  O- m0 w. b& O/ f我先愚昧簡單的想: % z( A+ O, C, s7 Z- y8 ]8 `  G
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫" w2 G* n- |6 _; j/ I
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢
+ w; Q6 ?/ B- W. [! ~" u( w' }) u                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的1 p9 S4 f# T* o2 p

. L0 |3 u) [( @* O遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19- o9 H% p2 q; u; Z8 T9 u, O
6 X: ~5 c, R" @% S' H' |
------------------------------------------------------------------------------------------------
. y; e& B9 l/ Z
+ L1 y* T( _0 o2 t2 L: R跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC# m- K9 d2 t; c, I6 y( t
DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以
" K8 s; T! x( O+ dLDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A
# e" C( L8 f* z0 a, J
% [* @' [0 r4 n* n雖然 讀入至 寄存器A 這方面 還想不通, 4 D; U; _4 X% u
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了
& U) }0 o; `3 `1 p  \. ~9 Y6 H" s( {% q
8 u1 D7 {: T& C5 o2 u
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用+ ~: r& S6 f( l5 f! w/ P

8 F8 C, M' [  p4 d: p=================================================9 J/ m5 d8 i! M( @# i; K% P
6 @: \. R& r" E7 Z9 Y9 Q" V: E# K
說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
8 Q/ a; t- o$ L  S
9 m1 c0 `  N' V# w一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字,
9 ]) m% X" D  g- A4 V  U二 : 跟著 右按 選 以簡體模式開啟% t; r) ?! }, c& {5 A' N6 R9 f
      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟" V' L6 ]7 W2 b6 \* T
! X0 E8 T, W1 |7 v* t) o# W' c
9 ~3 ]3 [9 }3 x; K  C& O

! W% i; X: j! W3 Z1 \( z1 K9 ~( ~. Z+ U; a) H7 \( b3 G8 {
9 E+ U, S0 ~3 O1 o  D

9 y' ]+ r9 j6 k3 F1 h# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了2 f' m0 @8 K1 L/ {9 a
       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44
/ P2 O4 w' l$ x4 Y' y: m[0662]是地址,0x13是该地址的数值9 k* b: z5 N! W' s9 S

5 b, x# a. O) z+ f* j3 p( J7 }DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

! Y% t+ z" i+ _# O  W$ |今天又領悟到多一件事 {:4_98:} 6 a" q3 [: x3 `' q
! ~& ^$ ?. x7 D2 S0 k
於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白5 z8 [' ~! O0 }" D7 G" `
現在又想通明了少少8 T4 e2 W+ V- J# t5 r
---------------------------------------------------------------------------------------------2 y( k) j, p# N! z1 v) m; R

* r& k# o/ r7 _" j4 |. u中間寫著 :
& L; E* Y2 o  H9 y舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A
- T( r$ K2 W/ J; ?起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?- l. j% g# ?+ D4 Z3 P
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ?
( B( z' C! r7 x4 h, b9 X: @) `" t+ _! R. V* k0 M, G9 w
原來又是 16進制 的因由
" A  R$ r3 J7 D: E1 F- u' g+ K9 O3 d3 [, g. T( A; Z: J
在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F( W, b0 H* m( E
即是說 9 之後 不是 10, 是 A- J9 S5 F0 Y0 s+ J* O: p& X
* J0 Y% z! p( |
所以 1234+6 不是=1240
8 g' n) I( F; _/ R$ Z  a個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位 # `5 o0 R/ N- v0 ]: G
所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  1 u  L0 a' ~& `& R0 N5 O* O( c

" S& m8 x$ y% Y" k6 H% E! ~# m  L==========================================0 g, i6 n' h. R$ z6 ~9 S% L

, H/ F* h  s+ i8 `- e- G8 ~+ T4 b其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了
' _7 @: K; r3 N除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝* i1 }0 s9 }2 y' ^9 s
6 X( i) C' r/ E. H/ p
其實研究如何修改遊戲, 真的是非常困難, 且非常耗時
- `0 J, g7 j% P1 \8 S我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
( j5 J# R5 ]8 `* B8 v  ]- H. `' q8 d
说白了
, H, O% A  _7 N& W0 Q3 n8 ?修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
+ k! R( ~8 r. H( n2 S$ x
疾风之狼 发表于 2014-7-23 19:442 c  Q; ~3 m2 ~8 I2 m( x" W
[0662]是地址,0x13是该地址的数值
; ?6 e- y8 h% C8 i4 X1 b  W0 t7 E* [( U8 e& U% v# N: Q7 h
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

% d! }0 z9 S3 R
% @) i( }; H) l9 q- q: v終於成功修改了 赤影戰士 受攻擊不減血
% m! d6 \, P# ?3 B5 k2 S2 Z; {' Y% y. E5 L, p3 u& b/ x

3 B' d; C& C* L( _% D& D1 G; I; f# u0 @& ~
今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了; I; o( u0 T2 o3 p+ Z5 {  B
我曾試把此方法 套入其他遊戲去修改
, N5 N7 F: ^$ ^: @但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型( b4 Z) a# Y/ {: q5 Q. y
所以都不成功呢. M6 Q  }0 Z( Z2 ]
最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-6-28 16:57 , Processed in 1.077149 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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