设为首页收藏本站

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑 + M/ T) |2 g: ]0 l9 f. s
% u% {$ ]7 W, ~0 \* i
在此先感謝 管理員 疾風之狼 以下帖子的分享. ?. m, ~7 a2 ?, }
http://www.emu618.org/thread-21186-1-1.html) M3 Z' d) u+ J7 S  i' U
  J) S" y; f- i
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了
% ]0 j6 v; c) E. e9 }- {# s成功一刻, 真是興奮莫名. d- T1 _1 l8 d. s8 x& a: `0 ~! ]# _

" @5 ?* G2 o$ b, Y8 P: o0 W" c7 O  T  I  b$ N/ O" F( n

& Q5 q' a9 V2 F) y' ]$ O: v
# x8 ]0 P: J. j, y不過也只是 完全 跟著指示, 過程中還是有很多疑問,
7 O$ t8 d' A6 P& V如不解開, 那麼修改 也只是 局限於 此遊戲" M" {2 {, ]- X9 b' P6 c( A

" o$ d3 q- F, F( l, X: H3 z===============================
- p% J1 I4 {) {# i+ G- W8 Q+ Q" K6 |# ]1 F6 ~# q$ h1 g
圖6 後 的一段文字還是看不懂
1 S- }( l7 {  {7 A6 b$ b  v) c0 ]( ~6 m- d, o% @' [6 Z: z
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))" ~1 p$ m* T  m5 c6 a/ E* f! ]
問題一 # 指令表 就是說圖6 吧 ?+ U; G% A& P' e8 S5 `7 v
" R* v! I3 a: b& z0 e
問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
+ H4 o& Y+ J, V5 d; W6 d                0x13 不是應解作 數值 減13 嗎 ? 0 S( T* g+ l# X
                從何知道 0662+(X)=...數值減1      $ ?5 K" w* w7 |$ s
! m! |1 Z0 K1 e& g" }# J
-----------------------------------------------------------------------------------
+ ^/ O/ n8 A6 l3 I" Z6 @[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
  C. J; U$ f+ F" e1 i& w0 U問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
9 Y* ^+ x1 A2 Y               
& A  Y# p8 _+ {; P7 s' t- i問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA% X# F* F! \6 ~* o

2 l$ A, S1 w* m/ a) T) V0 S8 }
4 V3 V' ]- u4 H/ [-----------------------------------------------------------------------------------
3 W$ a! x- F* X- ?! c" J[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
3 l7 B5 W7 q- Q" j: h問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
/ R6 d2 c8 n# E! ]+ J/ G; s) z, a* k* z  `" A/ Z# N& b
問題二 # 尋區方式 即是什麼 ?
" {8 V; }+ U' ~  t; O  V) u1 J4 _& B8 S5 ]

$ K8 B1 Q5 m+ F! w其實還有其他問題的, 不過一次不問太多了% b3 n0 }4 g, {) M* @
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的
  [  y  l. f1 B* r: H1 R就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑   h/ p2 G% r9 O* M2 V% X; x) ]* H8 z
紫龙666 发表于 2014-7-23 15:22
+ w; L) B3 B  Q/ D你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。

' G6 K% L$ j* H+ A  N0 S, c) y$ k6 F; P4 O& Z2 d
先感謝 紫龍666 的回覆  {:4_118:}
- f% `- T8 M# b  Z" l( n  N: K9 K4 [7 b
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘
; {' I5 K$ o9 ^) fhttp://www.emu618.org/thread-20393-1-1.html6 X, V' Y- G3 L: u
: Y, X9 f# u6 t4 G
下載解壓後 得到一個檔
2 `$ C7 |8 D0 j& z
1 t* G, `! p5 T/ p; j& ^" P* V; e9 `( M. w4 o
但我卻開不到這個檔, 顯示(無法開啟檔案)' N" i) o2 I9 X
愚昧請問一下   6052汇编大奥秘 是否 一個文字檔
6 w: B; B; A" _2 Q) r" \此檔有很多文章在內 嗎 ?

点评

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

使用道具 举报

签到天数: 2013 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
" m0 \) f% T! \  s" r; _. A$ c: b1 V" D
問題一 # 指令表 就是說圖6 吧 ?2 I) J8 I5 {2 X; o

. v/ H$ T; F4 \$ _1 S( G) ?問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
$ Y) H" h1 |! D) X" \$ n
  L/ s: q: B) z- S3 j0x13 不是應解作 數值 減13 嗎 ? # E4 F  E; h+ }6 N
* E# j6 O6 U: F+ u
從何知道 0662+(X)=...數值減1

/ G3 Y2 t; v+ p6 B
: E! R8 M$ i- j) g/ G[0662]是地址,0x13是该地址的数值, R" V" g9 k7 `; _( P% m
$ h$ _; ]0 K+ M4 J: F
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X
! b1 `/ P+ l$ t3 B' Z/ E' w6 W9 u  k2 z# D
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了)): F& f$ ]8 ^  m7 n  m$ b3 w9 w
3 ]! @5 r5 \( y1 c4 h, H
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?0 ~8 A/ s  N2 m# {$ v* }" n
8 g% h! `) e0 E6 z" O
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
0 |1 ^4 U, H: o
! K) ~1 i6 ~% @0 D' _; X) x3 s
LDA是读,STA是写
+ l$ F9 a6 D/ i' B: W! ]$ `4 t$ B2 R' O+ z
DEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了$ {) V/ t2 S) ~$ f9 ~% f( n
3 _! e; \% r. S5 J5 W" ^
BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转, v7 a- j7 n) x0 ]8 e
( e9 f% `1 }5 v. N% Y5 i4 Q# Z( ~
AND是逻辑运算指令( N: v: {2 z1 B9 J* t

# a6 o. |& O8 T7 f请看《6502汇编大奥秘》6 Z! ^7 l( h+ N- ^1 S# U+ _

4 c5 U$ s' B/ o
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
9 K& U! l' [  c
  x* h, H9 `2 U問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?( M! W" V: l/ Q4 ]5 }0 W/ u

2 {% N3 e0 G) J5 w5 Q% @6 B* F問題二 # 尋區方式 即是什麼 ?
& O6 a6 Z" J* w$ n4 I0 S- ]. w* E3 u
2 a* a8 y8 [* _9 ?2 M+ Z
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?
. p5 ?' v( K" `% M8 g! m. j" m0 m8 V8 i/ Q' H% ?1 z/ w1 K
寻区方式请看《6502汇编大奥秘》
回复

使用道具 举报

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 # b; z$ H. M  o6 H6 h: E/ J
疾风之狼 发表于 2014-7-23 19:44( p6 j. w# @" N# P/ F# U
[0662]是地址,0x13是该地址的数值
0 C( @# f' s4 l
. O6 v7 h1 K, E- }' _/ r" x! {9 G. jDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
* a. X7 ^/ L- L& J% m2 q4 M1 J% z

! m' J* g% d0 n: g# A  W. P先感謝 管理員 疾風之狼 的回覆 {:4_118:} ) u: \$ S4 _6 l% ]0 Y; [

, }! J* c3 I( v; t% [8 F  Z1 I好像有些明, 又好像有些不明) `  j6 w1 {( Z) @+ O/ ~% ?
於圖6 下面的 [0662] - - =0x13
/ a4 }- ^# r" ?% E* Z7 ~0 n0 i$ z* Y7 w大大說  [0662]是地址,  0x13是该地址的数值5 C6 ?! ?. L8 q: j3 T

2 f& x/ y- |. A8 ^+ u我先愚昧簡單的想: ) Q! E  o6 q5 S5 |6 k5 V1 n5 m
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫7 o( \& M5 O* |( F
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢
# Y: y. X" W4 Y. x* d                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的
& a0 I3 |/ g( r( Z- f/ C/ I1 [& f; O
遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
5 f& C' c) s7 ^5 {7 z6 _. H! n
1 \3 h$ M5 w/ b------------------------------------------------------------------------------------------------
- Y# a. I# o7 j5 E+ O9 b) ^/ a* f* v0 ^9 N( r  O
跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC
. j5 C3 c% U& lDEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以
% F: O2 C& R6 d  u7 lLDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A
; Z4 ?- N2 T5 m$ i8 O4 q
& V$ a( M9 s3 O! b+ E% m5 ]! T% ^雖然 讀入至 寄存器A 這方面 還想不通, ( M% {' ^( d" D
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了   G5 U& l7 C1 M1 D& D8 u4 p

0 v1 x6 L- N9 z1 g4 q) N+ [
2 [5 p' w! i; U: x2 b6 q3 C& s# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用& a& L) z9 Q  |6 z3 \- G  Z3 c; ^
# F$ f/ c3 R3 D7 r4 J- N
=================================================: u0 T: `% ^# l. m$ M

. v& i2 c% i( c5 {7 i說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
, _. c- o* Z0 Q2 C- x, N  ^" L
5 t1 N3 r6 R  t$ M' s一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字,
! f: }, L; a. V+ z" D6 e二 : 跟著 右按 選 以簡體模式開啟
7 O+ A2 I5 Z5 j      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟
0 l- G& n5 B$ R4 N; d  m( k2 ]! |
4 L$ T6 \3 W; Y" I; z$ P( ~6 l, K
9 ^0 P3 }7 G) x' u3 B% E
% y) w' O8 u5 l# `) ]# H+ {

  ~3 ?2 a6 p9 Y; l& Y
. z. X, {; j' e7 g( U# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了. O$ m5 }5 r8 M8 Y, N1 o- {( \
       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜
回复

使用道具 举报

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:448 n* g! {% A# w4 F! l" m
[0662]是地址,0x13是该地址的数值
, Q, X! [" N: K# _3 F' k$ x- x, b; b2 y- e
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
. L2 I. O( l4 A8 |
今天又領悟到多一件事 {:4_98:}
) [. P) h) M6 ]3 V3 E- I9 Z4 o0 V( P5 {5 g8 P
於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白
/ B7 H" P$ A# S. M5 T現在又想通明了少少
! Z3 J+ F9 U1 D6 a$ G( b---------------------------------------------------------------------------------------------
( Z' l6 b$ o9 [, d7 W1 C# y$ D  V7 E. Z! g) B- `% \" n3 l: X4 H
中間寫著 :2 O: s% Q9 [7 m! T* m4 Z. D" ?4 y+ C
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A* k) _# Q+ E' y
起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?2 W. X* W# w# i( S/ v7 a6 K# C" @: C
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ?
3 p; D) z' O$ t& V, s  h2 g( F6 h8 l- U+ d( c; a+ W/ z" E
原來又是 16進制 的因由4 U% c. t3 ^; t9 c0 d
& y) w8 {2 A% C1 B5 H9 o0 U3 f$ ~
在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F3 G/ [4 b) O. c' Q
即是說 9 之後 不是 10, 是 A: U  g) k& L# e7 f- e. R% u+ p! D
8 e0 t; }0 h. ^
所以 1234+6 不是=1240
' R  V1 L/ K: q" y6 f4 ^: K個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
0 o: a* W# D' ]7 Q: l所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
) c9 I- \% R! o- p  K1 v% p& K $ c) N' K( v5 H0 }' f" V% E
==========================================/ h1 p; y" _" S4 U0 s

6 e: q; @0 }0 v# }3 j' K  M: V其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了. g/ d' B( n5 }
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝
( ~5 W7 c1 z, O& S7 R, P. \9 o  w. }: L1 F+ u
其實研究如何修改遊戲, 真的是非常困難, 且非常耗時  j5 _4 h, R( h
我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜
回复

使用道具 举报

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改* L  {' y/ D% i2 ~% e1 L7 ~! r
. M% }2 }6 Q- P
说白了
% L) L# s. W% U$ H修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

使用道具 举报

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
+ b0 q3 q$ g+ S+ w$ L* X
疾风之狼 发表于 2014-7-23 19:44
" I1 }& M# c2 Q# U( F[0662]是地址,0x13是该地址的数值' n" R9 M$ l: L1 v: g6 j
4 e2 K) S/ H% C5 o# ^5 V
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
; f" W2 t9 `& E: g* V) J

( _# O1 M( ^' M0 \1 m9 Y終於成功修改了 赤影戰士 受攻擊不減血' |. q# Q$ v& v1 t* [6 y2 C
6 w" i5 ?, U' N- {0 h

- I4 Z; o! u: Z' K
( I0 s( h3 P& |6 V" w# g) E今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了; Y9 W. s8 P3 s* |, W
我曾試把此方法 套入其他遊戲去修改
: K: A1 `9 D; {" e! ^  d9 X, B但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型
: w3 L" [0 z- R. _0 o% H/ @所以都不成功呢/ I2 a; g: O$ Z) q' L/ m. ]
最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-7-16 18:30

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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