EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑 & F7 Y8 l9 m- ?# m

" h( p- I; t* A在此先感謝 管理員 疾風之狼 以下帖子的分享
: S8 b4 a3 q' z  |* d: n9 |http://www.emu618.org/thread-21186-1-1.html% L$ H- M( f: }5 w

- C2 {+ H0 J0 o: O. O/ @. ]5 w我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了
. G* B0 k1 j' x  Z成功一刻, 真是興奮莫名( u+ G3 W- @1 h1 B4 D9 u

& w/ s& {4 w* Z" n5 ?, ]7 k9 @& R% c# G3 s
; I$ n& }+ B3 l
7 I% M. }( R# x+ }3 J8 D
不過也只是 完全 跟著指示, 過程中還是有很多疑問,  B& ?0 H. D0 @2 S
如不解開, 那麼修改 也只是 局限於 此遊戲$ ~, a) n+ F0 U
" p) u7 d& M* v
===============================
- H- o9 ], c8 n0 ^/ F# m" D0 v2 I- `' x% K8 C4 q
圖6 後 的一段文字還是看不懂
0 H) Q% o3 \3 ?/ y) O( B4 f7 u" n
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))( E9 i! s/ M( x; s) s8 U
問題一 # 指令表 就是說圖6 吧 ?7 ?2 g0 X( a& v" d! C

9 m+ L9 F; E* q- y$ _" X問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
5 `  j, m8 D$ j# A                0x13 不是應解作 數值 減13 嗎 ?
* v+ K. x) f; E3 A% j                從何知道 0662+(X)=...數值減1      
6 C- Y3 o# a; x  S6 C5 i5 g0 L* c3 v: R- J4 T8 x
-----------------------------------------------------------------------------------, \+ K: J* y0 }, m- W! }
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了)); p: u+ {& ?( Y  a0 }. k
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
3 H2 v: [% \7 [+ D, f/ w8 `' m                9 K) t2 i8 Z0 p' ^( k& C+ q
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA1 j# o& o" c: E1 L
# u* B# l" t1 Z8 I

. L/ R9 ~' |* z& |3 v1 P-----------------------------------------------------------------------------------' e" J( \. [9 J* o3 c' B
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))5 s. m/ p/ l$ K
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
1 w* `" y9 G9 E" z6 D
0 T* o! {5 O% ]" {& r3 q6 y1 g$ {9 X問題二 # 尋區方式 即是什麼 ?" o3 j, t2 |/ L3 u
" Z- k6 k, K4 z7 ?

8 W! \! D8 E3 i  G: _其實還有其他問題的, 不過一次不問太多了2 f0 |  p$ T8 X1 \6 z/ p
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的/ v( g% U- Y" U: q* O! D
就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 c. X: @4 T; |
紫龙666 发表于 2014-7-23 15:22
, P7 d7 C9 i1 S! a" V你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。
% {* _' s" Z& w
! L) ~0 K+ `( n& R
先感謝 紫龍666 的回覆  {:4_118:}
. `! m9 B0 x! j9 X+ o( K% ?0 U6 u) _# |: A0 o
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘
8 T! h0 L/ x" L) q9 T' x& ]http://www.emu618.org/thread-20393-1-1.html0 ]. E' _5 F) |
0 j  E2 h0 K( M# Q
下載解壓後 得到一個檔
5 ?6 B5 b. p( }$ ~/ ]4 Z% i( d/ u& R) ?9 q

& Y  W+ [1 [% M- {* Z& t! _% D但我卻開不到這個檔, 顯示(無法開啟檔案)
! ]% ^  K7 u$ p3 Q+ F; G1 `/ l9 ^愚昧請問一下   6052汇编大奥秘 是否 一個文字檔
0 L# T# u! S! C$ w* z) y3 G- W4 J此檔有很多文章在內 嗎 ?

点评

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

签到天数: 2190 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
1 m1 t; z! R; a: k4 G0 @) G, K* g  y! Q; T: q
問題一 # 指令表 就是說圖6 吧 ?4 }# M8 g- X2 ]7 C5 |9 V
$ A, m: h+ Y( H+ R5 X! P
問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
  d# H  y1 A( Q3 B7 |+ t7 F1 t5 W2 N" C% M" W1 ]7 v) ]
0x13 不是應解作 數值 減13 嗎 ? , x9 M- o+ x4 ^: A

' |1 P+ `) }/ Q0 b8 B, u從何知道 0662+(X)=...數值減1
5 {! j' a& W9 p$ U

5 v3 p; u7 r; q0 ?[0662]是地址,0x13是该地址的数值
" M, w4 S( T% k2 S0 t, ^- z
/ `' L; r" y- _5 `' T/ VDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X, A7 y, r0 b) N  ~+ f

% B5 F- q9 ]9 P9 w) s& m
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
8 U6 _4 I( R. ^6 F! i, v% D) |3 R  p6 M, A
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
2 X$ D" @1 @; V5 n+ L* `
; R  c& f- e/ G+ k8 t問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
8 ]7 ?: w2 L) l
3 `, V" f6 Q8 r6 A4 p( Z' G  O; e
LDA是读,STA是写
1 N; i1 D/ K7 v3 P3 U4 @& E6 D7 V* z6 P. H& h: Q
DEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了* z7 N' r6 Z9 p3 u. y

  U; o# A% a  T. ?BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转4 N* `; Q( s$ p# y0 ~+ [6 ?" n5 p

$ u# o8 P% t9 Y( }" D  q9 m* UAND是逻辑运算指令
& y: Y1 n9 H9 T) j/ Q4 ^/ Y, K4 Q% {+ J/ x3 p: m0 J: m5 m
请看《6502汇编大奥秘》/ K4 W  ~, e) F" J* W
8 l* D; M$ l! ~! l' {
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...)); M7 J- N, `8 Q3 J2 K% C

* _7 i. C3 ~$ a  Z2 R3 S問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
* q. H# x# U4 v- {0 P, t# k( A
3 H! R. w/ U% D9 e問題二 # 尋區方式 即是什麼 ?

  v2 r$ `/ B5 m9 n% }2 Y3 P4 O4 f" g# K+ U$ z
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?
9 n* }! P  B: h, N) k* I8 b0 G6 [# ]8 X
寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
! B5 e' x' I7 X/ S
疾风之狼 发表于 2014-7-23 19:44, g, R8 Y+ K  x. |. j
[0662]是地址,0x13是该地址的数值0 n& O% O$ y4 Y# ~. }
$ b, Q$ a' M9 C( {4 l" U* e
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
" E9 e" z' [6 c6 e* U; i$ k

( @' t* b; s- d3 J- p  ?先感謝 管理員 疾風之狼 的回覆 {:4_118:}
9 M: R  b" g( M' t0 j+ m! |/ H2 [, t0 @! u+ Z" G
好像有些明, 又好像有些不明9 _) z' v6 \8 t9 w* ]5 p7 q3 b
於圖6 下面的 [0662] - - =0x13* T% I" y  T: G2 i
大大說  [0662]是地址,  0x13是该地址的数值: H) {+ S, o) u/ n  T
/ m. t$ `, J1 K+ B, k" k5 p
我先愚昧簡單的想: ! O" G( g/ ^* w
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫
! l8 O! ^( M4 o- D8 B/ k7 Z(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢
) M# Z  m; S6 }$ b                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的
/ w. D; a, g7 y0 I' H
$ ^9 k# R; Q6 A* ?& Q遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19) a9 ?7 J4 v& W) ?2 e4 O% G" E
* k" G5 L- H7 C9 B2 L7 t
------------------------------------------------------------------------------------------------
0 N8 j+ g& \1 M# K. T) D: y. y. e5 m' m, U8 [6 r
跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC, U* {) D. i. ^  p6 {: x4 }; B2 i0 O
DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以- o; D3 X4 |& o1 _3 z3 \0 x, E
LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A ! ~- `, \, x0 R& T
5 S7 K- ^9 b5 i  w
雖然 讀入至 寄存器A 這方面 還想不通,
5 x+ `" y$ A7 x( t總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了
% w, y, C; t- q0 E1 ^* s" b: K# V

8 P6 \% U! t: w+ p( |# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用
* @2 p5 {3 E' G+ J; t
$ l) n: ]3 k: M; [! ]8 u=================================================
2 @/ j  u' r8 p$ L; V( y) C" o+ D- u. U- _; v# {4 R) _0 F5 C8 C3 L& |
說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
0 S- `7 v* S- X( [
, w( V: _# |( \# o$ N$ z1 b一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字,
  h5 e2 M( g8 f2 _  ~1 Z6 s7 J二 : 跟著 右按 選 以簡體模式開啟5 o) D) ^; D3 m" y
      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟
" k" T- Y4 Y9 t
; ~2 u: u+ O! ^& m
# ^8 k5 L9 c% m2 `: u, k
5 H9 R- W3 _9 O; C  B) E+ ^% o
. v% ?4 _( }: `+ a4 M- c! ]' b% V' O2 T& _  j
+ i" Z0 U0 k  }$ Z5 z. J
# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了+ N: b4 D9 @6 U! j
       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:444 {4 ~8 b! U3 x
[0662]是地址,0x13是该地址的数值, p0 p. U9 W- ?0 o% o* l
! B# J. t* @- d7 }
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
2 G0 o9 `4 I, j7 E0 m
今天又領悟到多一件事 {:4_98:} 1 b" H, {8 m* F' H6 K2 a/ t1 T

7 z8 Z# M1 O. ~+ O$ f$ B9 _8 \) _於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白  L: v& K# i6 O$ X% w
現在又想通明了少少
* q% d% ~: i; t---------------------------------------------------------------------------------------------  a2 d  ^% c6 P2 Z6 Z/ v9 J  w4 ~
. _+ j6 m" l. \3 N1 H, x3 l  O, A
中間寫著 :+ P' |0 n- ]- n; u( W
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A
8 i8 p# ^) r9 i( z7 p( ]# X" z起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?" Q9 y9 }6 e$ w5 s
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ?
. z0 E0 ]: z7 T+ K% K0 X* A" A' O4 ^
: L9 \$ e4 V& T: c) H原來又是 16進制 的因由
6 a6 _3 X0 T( ?  m  D. l: u& V0 W$ {: r4 a: h4 v7 J
在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F' W7 n  B+ q" x
即是說 9 之後 不是 10, 是 A" L6 F: |0 r( N) O. b8 t& r

; s' N/ F& W( d' w- {所以 1234+6 不是=1240
+ o: V$ \. e) r& ~' [" m個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位 % W* I+ Y+ e# r
所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
, p* J. C, L( a! U. Y* I; R0 r
1 q3 D* O1 f9 ?6 A6 N==========================================
3 D. Z+ `8 ^: y$ t' \* h' D& ~3 H8 W/ p- a
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了
+ E* q: E7 V6 `除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝
+ b9 ?& h, G8 ]' e2 [( b" l+ C! x3 Y  |% S& s( F+ r0 t
其實研究如何修改遊戲, 真的是非常困難, 且非常耗時
( {  x, s$ x% w/ N/ v5 X) f我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改" z9 I0 |, o+ s$ o/ n* y% W3 x: Y
! u; U9 j/ T. C+ _% U4 A6 j
说白了! z: E. @" u: g) {' x
修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 # R+ o8 k" L5 h
疾风之狼 发表于 2014-7-23 19:44
# J4 s. _+ u$ v2 ^  y[0662]是地址,0x13是该地址的数值
( A2 w% Q' c+ d6 t5 l: t4 u! o7 U7 I6 E7 `# n7 I
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

. R5 `1 b9 H: n3 S7 ^+ K* ]: H( h. U8 F- _: v  m8 ~
終於成功修改了 赤影戰士 受攻擊不減血
0 e7 ?& S0 j5 }! y- }
1 i  ?6 ^/ C! x. S. E/ j+ j$ o8 D# U5 ]7 B  {9 y$ L7 d9 Y

* @+ }. `4 G3 ?- p今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了4 F  p, Z7 a7 E! ~. ~' t6 J1 W2 ^
我曾試把此方法 套入其他遊戲去修改
% E( X/ U. w! N% ^# s! ^1 O但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型
/ q. H! k+ h4 }# @所以都不成功呢
! J% v; \9 ?1 Q* F$ ^7 V最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2026-1-13 18:38 , Processed in 1.094726 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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