EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
# K& ]5 l% ~: ?3 a4 _& P( N. G, {5 n& k% v" J
在此先感謝 管理員 疾風之狼 以下帖子的分享) v8 p! V7 ~8 D) b- I" }
http://www.emu618.org/thread-21186-1-1.html
! Q8 J' L5 J  s% k) D1 S( x+ z; S$ |- j+ _% J+ v. g+ A& I1 k. ?3 O
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了
6 }( B4 F1 H+ `' i0 M成功一刻, 真是興奮莫名* L" z7 z4 Y5 Y

7 Q" c, f6 q) y
7 j$ u+ i+ y, i2 ?8 g * w7 N$ e7 Y) x: _4 n

4 G- h% n; T. _3 z不過也只是 完全 跟著指示, 過程中還是有很多疑問,
! q, E0 o( x" w* u& o如不解開, 那麼修改 也只是 局限於 此遊戲! e4 j7 W6 s( d  V# ?) P
' x2 X. H, Y! e; |9 `
===============================. y" G- q! U0 h) O2 E! A
, T$ u5 V, J5 z5 s
圖6 後 的一段文字還是看不懂
( D. f; C$ Z4 Y# f  k1 A1 b7 s
7 V% V. w; K0 d  ~. Y( ?% }[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
" c- M" N* w% B  ^9 I+ B/ x問題一 # 指令表 就是說圖6 吧 ?
7 C+ E1 e* M% x& |) H' j( L( Z! J- J. i# L' E' }+ E
問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13% T* K0 R9 o: y9 V6 V9 Y: D
                0x13 不是應解作 數值 減13 嗎 ? 7 Z( @6 Z" W. m
                從何知道 0662+(X)=...數值減1      ! h8 a9 H% N( `" ~
9 k7 ^6 r. x. y5 {& |
-----------------------------------------------------------------------------------
7 }3 ], n' ?( ]7 z! n[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
% u3 q$ A3 o4 v, n問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
% u& U1 c3 G2 e6 k3 m                8 C7 R3 j2 K/ u5 G4 \. p8 R8 T
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA( [1 R. y! \/ T+ }: A* S$ b: }
1 X7 A3 a) G% ~5 u3 X4 T; V
4 S/ N% B) u  p! Z! e: y% R
-----------------------------------------------------------------------------------$ i  T: E2 T! [
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))7 U- U9 U) j4 ]' b9 b) L
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?) u) z5 o: s# u1 Q" l
& l& F, ]0 H( \! x  L3 b
問題二 # 尋區方式 即是什麼 ?# [' X: q* C+ @' U% u2 E
2 d$ f0 H+ g( P% K$ H- ]7 e
3 N" ^, g8 ^; x5 e' ?$ `! Q9 i
其實還有其他問題的, 不過一次不問太多了* c2 d! _$ I0 h4 L" [( a
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的4 M0 H; I- }! v/ t- \) N
就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑
3 x( A# E+ E' D' i9 X2 U8 R, _
紫龙666 发表于 2014-7-23 15:22- [* M( G1 g# ]3 q
你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。

* |! K2 Y. X1 @) m9 y- P; i, i% j0 r8 x. Q! r- ~# R+ W/ b5 k2 t, z' u
先感謝 紫龍666 的回覆  {:4_118:} ; }7 [; D2 T8 h7 S) N! O6 [" D/ }
5 q. O0 Y0 C/ W
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘
+ s! }- A- y1 F, X' c  t( g$ H) Zhttp://www.emu618.org/thread-20393-1-1.html
/ Z' T% G" ^. d' f6 w8 {
2 z5 e3 m" a0 x5 `$ M下載解壓後 得到一個檔 " H4 N& Q& N9 K5 E2 u4 K# ^

2 I) B: v4 J0 ?6 q2 H3 J: W$ i# g* J& h" S; X
但我卻開不到這個檔, 顯示(無法開啟檔案), y. m" E( P$ ?
愚昧請問一下   6052汇编大奥秘 是否 一個文字檔 - R2 I1 X: c0 {+ d7 a- k
此檔有很多文章在內 嗎 ?

点评

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

签到天数: 1826 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
* Z$ I. v1 L, M0 a* [3 R; R* o# g5 V% U
問題一 # 指令表 就是說圖6 吧 ?
! k  `' Z( ]2 z" Q3 g$ h5 j
+ k% c! p) a+ Z9 e# T問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x133 x9 c0 w1 f4 j  s; Q! A
6 K% m. M* ~, Q5 a" _. k, D) F, h, Y2 B# s
0x13 不是應解作 數值 減13 嗎 ? 3 a; c* V/ y& y$ ^: ?! t# J
. v; M# y" w+ q) H# Z4 l) D1 q
從何知道 0662+(X)=...數值減1
0 Z8 p: X% B! T+ c* y! T" m' i

* a6 ?9 e) q# w$ s0 S6 d/ y[0662]是地址,0x13是该地址的数值+ j! @6 p1 l/ H
: ~7 D5 i3 V  j' P  X- \6 L
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X3 H. L. d  G1 W2 `  P

' K' k& y" N, @9 b$ Y0 \
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
& T) s+ a8 @$ h
1 }9 V4 j" B, U( `+ ^4 `7 A問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?4 D2 v% y% @2 c1 ]# @8 R8 m
$ Q! m. z7 c+ f7 C7 a; E
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA

2 f) I$ Y' ]( j# c- Q+ `; w
8 i" D3 J) c% W5 dLDA是读,STA是写6 w& K% ?% c2 X) J7 z% Z+ Y

. v5 f' ^" y3 O0 S6 W+ YDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了
0 R3 u( R& q4 J4 t! e" _) n
6 B* a2 t4 Z7 f. ^! zBEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转, u0 _: e' X& C3 e/ Q! M  ^

1 u% o) Y* \% U. KAND是逻辑运算指令
; X5 V6 t' L- p( a- g. x% n" k2 E% O9 L: I+ O
请看《6502汇编大奥秘》
: R2 P: s+ ^3 m" C/ L& v% a! E  L3 l
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
9 \0 d! v2 T, a& ~
% f! K& M- r7 {6 ]2 G. }2 T; t問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
9 e6 l5 L/ c4 F4 L! N! Q' D$ ^6 Q
/ M* |0 T) F( _% L$ L' j問題二 # 尋區方式 即是什麼 ?
  ?3 T* {* N( q0 S( V

% r7 x; A: m5 O8 u. G8 O1 h4 V我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?
' n; g# J$ s% h6 n3 ~# F# ^% z) s
/ j2 K9 u2 T2 u' l* Z( c寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 " P- h9 `0 e- _! p9 r0 Q
疾风之狼 发表于 2014-7-23 19:44
1 E9 @2 h. M' U- s1 C) k[0662]是地址,0x13是该地址的数值
( N' z  S: p8 A0 E, u0 e0 h
# S$ e0 F& I, n. F9 x# j9 rDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

% P% T$ N9 v6 ]( j- S4 R! I9 [4 v% u  u
先感謝 管理員 疾風之狼 的回覆 {:4_118:}
9 ~; e; Z7 e1 f8 a1 h# p
" F( P0 z- E+ j/ l# S) L: n好像有些明, 又好像有些不明$ O  S, a' Q) X: X- @! {
於圖6 下面的 [0662] - - =0x13
- q+ X) y! y' Z& }$ k- Z大大說  [0662]是地址,  0x13是该地址的数值
+ \' }! y1 g( W( T, b! {' @% c0 t* ?
我先愚昧簡單的想:
, A% i; k3 X: q$ M' w(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫
. e+ S- `# S9 C4 n(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢
9 P+ g& l  O  U8 i" P                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的
: m" }3 b( G1 t1 q% a" b6 p0 d; g9 M( J2 f
遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 197 {, Z: Q0 [$ D; n& d

, c! I; j8 y# S4 e' l5 r$ i------------------------------------------------------------------------------------------------) N1 [9 N7 ^! s  Y' |
% M+ ~  I, m# y$ p9 v3 x0 [' I
跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC+ E* a8 c/ N; z
DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以
( |' l. q3 B! |; \# _; B; w# JLDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A
( M$ x$ j6 ?6 K& R  W: D; C$ V( C% |, W% }
雖然 讀入至 寄存器A 這方面 還想不通, - n+ Q- e6 S) P5 B, V! ?) g! h6 x1 c
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了 6 t4 l, Y% X' ?) s. C+ r

6 H7 y+ b, t4 d- `, x, e
3 D# u2 B5 W" [7 f) c! b% N" j8 V# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用
8 F: m6 b9 W. w" @
5 c+ I2 g1 q  v. p3 T, ?. i8 _' G=================================================
$ d* m: o1 U0 L! \2 M3 O
0 F# y- _6 \( B' j/ B* I) K說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :. m& @2 P7 q7 J: ~0 @# r

4 b; p( s9 a, d/ U* V一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字, 1 P* U; h: j4 m, b+ l
二 : 跟著 右按 選 以簡體模式開啟; g$ Q" L8 g5 \$ q3 }$ ~/ y) w' L0 e
      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟
* k& H$ q$ k! j9 z# z0 I( `  j
2 p" l& U1 _/ k; Z8 D" {/ P3 ~* K. @) j( M: W
  Q" Z  z* w) Z6 G( h7 e
9 T8 F+ g+ Y7 c3 C5 R$ N. f+ r9 s
) W+ j) w8 a( z2 S. ?
1 z; j! r  Y) q, D2 a; y
# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了
/ u+ Y$ P+ Q! i       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44* S2 }( H! g) J# Q3 Z9 _# g. U
[0662]是地址,0x13是该地址的数值
: g6 ], e" n6 P; V& d+ t; u" d7 e: c! z( P) [2 c
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
0 l/ P) `. @2 ~9 ]% \1 P
今天又領悟到多一件事 {:4_98:}
  ]  s7 p4 A- s- k; d; d
% m* Y$ }" b/ [6 v' D於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白
: I: v8 Q& \) J" }現在又想通明了少少
6 a8 b* R/ h: r3 Y6 H---------------------------------------------------------------------------------------------
4 n; C9 J- |9 J# c* g9 H$ Q( J& c0 p0 \$ {  t. j! y% T- X
中間寫著 :
, w7 a. k+ Q. ]- l9 E9 ^1 P舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A, I" ]2 y, X- {
起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?1 H; V5 q: W5 j4 C1 v: _) e% S
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ?
1 g+ |% \" B8 }  U
- H: L7 A9 e% p/ U' Y0 E, w* [原來又是 16進制 的因由1 R* w, H; v; @6 [* l: N
* ^" h: ~* T0 c- S% a. Y: T( i& [0 h
在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
+ g3 N! _2 s9 g) B+ K即是說 9 之後 不是 10, 是 A
; k7 t0 J$ ^0 D% B- t- ?
) Y2 `* ^! t  |8 ^; O所以 1234+6 不是=1240, I1 ]9 {7 c- k, b
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
  Z" s& I" _. ~7 l' |所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
, \, r& u3 j; k, s: x9 \! Y 7 [# _3 I8 P& A; E
==========================================0 ^0 P. m3 e$ P- H$ P0 Y. r3 O

+ E' E+ V* @1 Y# Q. q1 e其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了
8 F7 V0 n+ V& r" G除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝* r2 _! J1 Y* [3 S$ ]6 l" @* H# w1 j

7 ?6 O" T/ n8 e- W+ H其實研究如何修改遊戲, 真的是非常困難, 且非常耗時8 [1 ]  |+ o* G! O7 y7 k! ?
我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改5 Y0 h% ]9 M- Q
9 v+ `% @- [' \: q  |
说白了
) R3 D6 D6 I  e. m9 Q! C3 c修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 6 E7 C4 i& P  j; J: h6 g( |. d
疾风之狼 发表于 2014-7-23 19:444 I; _, L# f. A# N
[0662]是地址,0x13是该地址的数值
. N7 g& h. P1 k2 l/ {' Q) S1 T$ }! U' t) F6 d
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

, Y' q& W! m2 l# m9 r
. W" r( {! C0 x" C終於成功修改了 赤影戰士 受攻擊不減血
% U- j9 F6 i' _" y4 y1 }- l4 r
1 y  R2 V* `9 s1 y$ e5 C8 Y, u$ O0 y
3 c! h) |# m* l, x# }+ |
今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了
+ D8 t2 q- H3 y9 Q我曾試把此方法 套入其他遊戲去修改
- w0 g' n& n8 \7 R0 u+ O( j4 U但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型) W+ I/ B$ F9 B( N  v
所以都不成功呢
5 M! i/ D  x" |) D9 k  m& \最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-1-11 15:55 , Processed in 1.112305 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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