EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
( |- _0 c) G, k7 l
7 l% {9 K  @$ S, f% P$ j8 B在此先感謝 管理員 疾風之狼 以下帖子的分享+ F) d* T" t) K" d
http://www.emu618.org/thread-21186-1-1.html/ D4 j; a! J1 A* k* T( C
+ w; K1 |* a6 h4 b) ^+ T, `
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了
" n4 B& F4 b! a& H5 b成功一刻, 真是興奮莫名! A* V/ e  z. m; T' _: @" U

" H4 T9 O0 f6 j6 N$ K5 F2 h9 G5 t% c. P0 M5 n* R
' l) {2 O' q1 K- ~0 W8 D
8 z2 E% O' [" }! ?0 c
不過也只是 完全 跟著指示, 過程中還是有很多疑問,
# k( c0 ~" c$ A8 B, U; p( f如不解開, 那麼修改 也只是 局限於 此遊戲% d  z( f- Q! u* ?

# G! ^. |! ~& a. k$ O1 c. P===============================" v) c* v/ L' q  f& ^
+ K1 j. J; P8 a+ H8 c
圖6 後 的一段文字還是看不懂
. Y( h, i; k# ?% l
9 H  s) y) Z: N2 W: g' l) a[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
: x: g5 N$ m. r3 d問題一 # 指令表 就是說圖6 吧 ?
# |5 `2 ]/ p- j
+ }0 B! V; U4 N8 d問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13' @8 B. |( E2 f5 v( U9 G5 f1 F
                0x13 不是應解作 數值 減13 嗎 ? ' E; K9 D0 V: U* |
                從何知道 0662+(X)=...數值減1      $ U# k4 k5 v% c$ W
' F( D+ R6 x1 F$ Q6 F: k: Q8 R
-----------------------------------------------------------------------------------
+ R/ @; s$ T6 V% c4 Q[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))% Q3 @) `2 l! o+ X1 f, i& }/ i; _
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?: x) ], P6 p! H! `9 ?- F
               
, N4 C! o1 ^$ V' y+ b2 c' V問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
7 w1 J! |, S/ F! a0 \) @
" J# S$ l) i8 T7 ^# P4 |, H- n' {9 T. z9 G
-----------------------------------------------------------------------------------
0 F# g' H. B( b* \) d[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))" N* V; @; B& ^: ?) G7 G& p3 m0 j
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?+ Y; t; R7 U+ Q2 \6 F4 f5 R

& y+ D! [0 W9 T問題二 # 尋區方式 即是什麼 ?
/ R! G( p' ~0 F7 V, _% a6 d0 J0 F3 O+ G( z0 e) m

* B0 P! l4 j& O: q其實還有其他問題的, 不過一次不問太多了: R( R( B7 t" P4 ^8 E& l
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的
+ Y. r$ E) u4 v: w就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 U# q' p# |% j' g
紫龙666 发表于 2014-7-23 15:22
5 V1 D$ y7 h$ k1 r7 @你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。

8 @, b9 B3 }7 |6 ^3 K+ c7 y; v! Y8 J
先感謝 紫龍666 的回覆  {:4_118:}
) g3 x# q% r* G) |) Y' P; h4 H+ ~' C. [& q- e
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘
( U9 d$ @- `8 N, y" H, C5 ~http://www.emu618.org/thread-20393-1-1.html( j( T4 ~/ r8 ^: A* y# c' q& Y# X+ J1 I

* s9 m3 C  q1 P2 q2 R$ K) t4 `下載解壓後 得到一個檔 & g$ m0 ^2 |5 N3 C5 X: g# X
; `, F0 C$ g* T- q, O  P; p& B& P
% _- q0 k9 y6 @6 i. f) V
但我卻開不到這個檔, 顯示(無法開啟檔案)
1 d; }0 K+ M! H, q9 T  N+ u愚昧請問一下   6052汇编大奥秘 是否 一個文字檔
1 {' c1 b$ j9 b  }- `& i此檔有很多文章在內 嗎 ?

点评

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

签到天数: 2197 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))! p0 _4 C0 k- \9 R) M* \! b
# x% W/ T* v' ?) u
問題一 # 指令表 就是說圖6 吧 ?- e5 ?) P9 T0 N2 c5 X+ z( Y

8 V& j1 A5 r$ k4 s9 j" j3 q  o問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
2 ^7 s! X& _; x' T$ k, G5 N* Z9 ~) T* l/ N9 R6 K
0x13 不是應解作 數值 減13 嗎 ? 8 R' S7 H5 I, B3 v. C; X( y' Z. `
' |4 V& x: Y, S; g4 F
從何知道 0662+(X)=...數值減1

% }6 j; d0 c( o0 \0 r& M4 R. J4 T. `; y+ r3 [7 ^
[0662]是地址,0x13是该地址的数值; z. W" ~: M0 k4 o7 }6 |0 P
. |0 K6 W& ~) a7 Z0 p3 W" A6 ]
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X' r) X- ]" W0 n$ B
" c) m! M( {* ?. g5 w1 C
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))) u) U  G; q% Y2 b$ D8 B

8 E9 _7 |' ?" B3 n, g& |# _問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
  W$ s: O. _/ Z) d! Q
7 \" P3 M) y& U; d問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
- H3 l+ Y6 ]1 [- t( E4 _9 S/ M4 x7 H
% e# z2 n. G  b4 C. ]
LDA是读,STA是写# x" }, \) ~( [3 S

, L# Z1 L7 t$ r' \: eDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了
8 V" }4 i- i" G' h$ ]) s  _, b1 G% H; F: q3 t; L- y5 o" q4 A
BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转
* m$ X% G! r3 K! V& K
  z+ h# [4 r7 F$ C& J/ J6 eAND是逻辑运算指令2 F$ T. S+ `, `3 {/ |1 r; v

: B/ ~6 u/ u& x2 g" H请看《6502汇编大奥秘》. c* N, b! ^' R' C- A
8 l, O6 y, e  T- e; h- }! n
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
" O( B' h1 J- `, P
; C* c5 E, N1 e( [3 d& y問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?& x6 G# V! U2 c( l
7 g. f7 N' q: K7 `9 r
問題二 # 尋區方式 即是什麼 ?

% ^7 R8 w' p7 O* N3 j% w1 k
7 ^: P2 l+ y3 I9 z# T7 L8 d" J我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?# b" r+ |# Z* \  k

) X$ ~" \- g+ B* ~6 K) y- u寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 6 t+ G; t. t0 M- v/ {) F) y# i
疾风之狼 发表于 2014-7-23 19:44: q3 j3 ~, P% v, o: j
[0662]是地址,0x13是该地址的数值
- o9 n1 E" X7 {& P. @
: |! u2 c: e- V# X( c* T7 qDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
8 ^0 v$ s8 g7 `

2 g3 g& c/ K) Y先感謝 管理員 疾風之狼 的回覆 {:4_118:}
: e9 w  E8 s/ H, L1 x9 V3 W: ~4 q+ s
好像有些明, 又好像有些不明
$ K# x8 j' h" G% O9 Z" m/ s於圖6 下面的 [0662] - - =0x13
" l2 e% P/ u3 @9 A  N1 a- J3 f大大說  [0662]是地址,  0x13是该地址的数值
$ w+ V2 F* o$ H( z+ U
; I. D, B' e" p# N1 K) R- ^! e我先愚昧簡單的想: 0 e3 Y& M: R$ Q) _; Q
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫
2 G6 x4 G8 `+ X7 m% g7 ]% e0 p(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 % ~, E) n# b( y/ ^" Z
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的
# ^4 l! }7 f9 @# E' d* L$ f
* d: i* {9 [9 N( ]) Q遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
  Q% w% r  c$ [$ w7 i0 U
  ]/ z, E- N7 G0 ?, g! ?) i------------------------------------------------------------------------------------------------
2 c) E  `4 c& t. ]7 ?% A# X* `$ I8 u* d4 B$ Y9 I7 W0 `" W
跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC4 F* \4 Z. ~! |9 a8 V
DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以' j6 q5 L" ~0 J0 n
LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A 9 J* v% A; Z5 S$ J, I
' c' r1 Y+ }/ T7 J2 U
雖然 讀入至 寄存器A 這方面 還想不通, . |2 `3 d# c# \. J( E  ~) j
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了
5 f, Q6 b! L. K4 S& D4 i( n+ @4 w% f# p8 t$ p. L
! S  x0 ^1 s! I/ `5 F
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用/ q# g% C$ W0 e6 g: D

( `# `- k" A8 e( Q=================================================) Y7 R$ Y/ p8 d* t; D& p1 O3 a

, _, B. P0 ?/ O* D說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
- ?! R5 F2 V" J2 R, G
8 m; i5 U( t" b! A( g1 |一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字, % ]; Z/ b- {7 J# \3 Q  x
二 : 跟著 右按 選 以簡體模式開啟- t" Q$ z& y3 Y" j. {% z
      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟$ y5 V4 ]' ]# ^) s% N1 `% U  c

" Z0 `. q* n7 o5 x+ g* W* a) _0 X* B" ~% Z2 I
  p# P% O8 ~& D! `1 J6 P& T
! k: w( n0 {0 x2 y% X

% d# u& u' J( Q8 I" l4 n- I! H. F
' t: X( C; U+ ~. ^3 D# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了9 j$ ^' W! m% g% r( Y+ v* ^
       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44# ?7 a2 ], i7 Y
[0662]是地址,0x13是该地址的数值
9 |/ o$ T7 C* B6 I* z" U: t% C/ D* G: }$ Y- p" J6 f! U
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

$ }( m9 J9 @! |; L/ a今天又領悟到多一件事 {:4_98:}
; q+ t9 E- g9 [" O8 X1 O) m" h2 X1 t" F/ N2 ~; N
於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白# {' ]3 }( d. `" ^0 y7 m% ~5 u; ^& ^9 @
現在又想通明了少少' R9 t6 ^4 W* C( n' {! C0 D: o
---------------------------------------------------------------------------------------------
4 o# l* y4 t. D+ ^$ Z# I+ I3 b" G& ]" x. Y4 _& @7 z' L) `
中間寫著 :
' c- q' `# h  q! T1 G; C舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A! R! D6 Z* u* y! R+ n! q* n4 q
起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?" f  [4 \. o1 D" N
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ?
& R, h# X& K  J0 Q2 c0 s$ R( f! b& u/ R# D$ l: X3 @( F
原來又是 16進制 的因由
( ^5 i& ^$ V- d# f: J1 l2 F* G4 R# v3 {. B# h+ t1 _$ m
在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F: l% I9 C1 D) K& k$ U
即是說 9 之後 不是 10, 是 A
+ l- t7 f. i1 n6 w5 H% p2 T- O
; ~2 D% b) k% |% B% p- ?: s2 t所以 1234+6 不是=1240
! l! m- b: m3 x個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
8 F0 {4 V2 l% G' M3 g$ V所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  ) N% `; R$ R( o8 _' H9 r

# z0 r5 d" T! B" h# X2 b6 h==========================================
2 b& e+ e0 ~; a3 I& l7 S( |
; \4 Z: r5 [/ N* }, r+ u: q& _1 }其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了1 M7 s5 V, r. p) Z! y
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝4 p1 t2 _7 J3 m/ i" a# f2 W( m* r- N
+ A! K* i& Q- [( p2 K+ ]* ?) l8 y$ l
其實研究如何修改遊戲, 真的是非常困難, 且非常耗時
. ~1 V& q) g6 O$ m' Q) j我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
2 ^9 N: @: Y1 V+ G) f1 }0 j7 e- O
# R; |* p) v7 \6 Q  o2 m" U说白了
' s% T, R3 K7 C修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 ! j4 g( w, @9 |) }" w; x" J
疾风之狼 发表于 2014-7-23 19:44
6 y$ e/ W1 R: Y# \' G[0662]是地址,0x13是该地址的数值
; B- Q! f6 V8 ^9 J& n' k' x. z) V/ r- }0 o
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
6 |; r9 C/ n) H& u" X

$ T% c" L7 s' s& d, \終於成功修改了 赤影戰士 受攻擊不減血1 g* ]9 B2 F; K
- w$ R& Y8 t$ |  g( ^0 D+ b

6 N$ j5 u+ k+ d' S- W/ e. L2 U1 c
1 w4 K# T) ~! }, n% a5 H今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了
* q# i9 e& H# R# N我曾試把此方法 套入其他遊戲去修改' L! t' w9 v/ b/ Y
但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型
- ]5 E' O( I, H7 U3 I所以都不成功呢
" C0 o& c* E, o* s最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2026-1-20 19:25 , Processed in 1.113281 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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