EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑 5 }9 P5 h" y& K( u- w1 O
* A6 M' ]! r8 Y, D( _& k
在此先感謝 管理員 疾風之狼 以下帖子的分享
, l0 I& k$ Y6 I. n! Vhttp://www.emu618.org/thread-21186-1-1.html3 u( L/ p: o; w, Z0 ~6 ]* N1 A
6 P  j9 f. G% V& q: T
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了2 E. q8 d$ z1 U: X& A
成功一刻, 真是興奮莫名
" u/ I9 |; l' c! B$ d; B5 e* k1 }9 t8 y/ x  ^+ l

" w$ }- j1 |$ N* g! @' m, ~( p1 b" k
9 d) u( Q9 V8 Q. v7 B
6 X; ~- Z$ ~: d$ }, M1 a不過也只是 完全 跟著指示, 過程中還是有很多疑問,
9 \" {+ S) M* ]0 z2 }! H5 A如不解開, 那麼修改 也只是 局限於 此遊戲
+ j& h; T; U- h% n. k) ^+ F# H: I9 \' l* \1 {) p
===============================
3 S+ ?3 i* {0 L+ P( F; J  M* |* y) A% f0 j) p
圖6 後 的一段文字還是看不懂8 z" i# P) I# B8 E; P
5 [6 y; r7 D) Q3 E
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
, n2 b# l0 f% K- Y4 |問題一 # 指令表 就是說圖6 吧 ?
6 K2 j! g# Y  D2 x4 d4 m
* `* x5 Y$ F7 w- v4 _$ c: ?" f問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
8 F6 _& f) u" C! M5 R                0x13 不是應解作 數值 減13 嗎 ?
& @/ C, |5 o# V. Y1 Y                從何知道 0662+(X)=...數值減1      
, {& |+ i2 v" L1 g( x/ F; O- P7 [
/ c, [' e1 F! u$ n; o3 N# y) Q-----------------------------------------------------------------------------------7 ?7 r! G1 N* \) C8 d
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了)); S8 V& H3 G3 y6 p$ [6 R
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?6 g' }" d" f8 F7 j9 A
                * |3 t% O" J, e) H2 t6 y
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA* i% Y! t' F$ X0 ]/ w
$ ?' d0 j) f# x# ]' ^" F8 e. r

' \3 e9 {  k& i-----------------------------------------------------------------------------------( Y' w+ ?+ \* Q& p8 g8 n
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))/ s! y: }% f# C9 m+ |, v
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
, S8 L; I1 h# |+ A/ X4 T
! z6 ~+ i3 [, Q問題二 # 尋區方式 即是什麼 ?
- w$ I# \8 D, ^/ M6 T6 P9 S
; Y& m, a9 y# V/ R' Z+ H6 @- _: p7 @
其實還有其他問題的, 不過一次不問太多了9 Y% @- {& b( z  |% H7 N5 f3 {
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的0 [" z, T$ b# C0 N, C# ]
就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑 : l# L; p* b# s6 T) h
紫龙666 发表于 2014-7-23 15:22
" z* n- V8 Y0 v  C3 C你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。
6 F6 v5 A& J  e; [. s; n8 X
, A" V- A' C5 l9 V0 K2 z
先感謝 紫龍666 的回覆  {:4_118:} $ F4 {$ h0 [. E

/ l& b/ J  |/ Z我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘
4 Y" e" X$ ?0 z& c3 c) T/ mhttp://www.emu618.org/thread-20393-1-1.html
- Q0 K" p6 A/ W) f1 j9 r, k, U1 E) S! I
下載解壓後 得到一個檔
! V0 v) K, t* u$ y2 a4 @7 e0 U5 F" F+ R4 F! [, X9 D* ~: H

$ b' m$ r( z$ O0 }5 a8 D但我卻開不到這個檔, 顯示(無法開啟檔案)0 }8 L8 {" \% N9 U4 h, e
愚昧請問一下   6052汇编大奥秘 是否 一個文字檔 ! a; _0 g. ?4 }0 g5 l
此檔有很多文章在內 嗎 ?

点评

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

签到天数: 2133 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))" U# ^; x# t' G& |" V; P( z
5 O# ]* U3 _+ K1 G. h, b
問題一 # 指令表 就是說圖6 吧 ?5 v; `3 B  \& H/ B& A' C% `

* F2 V4 V6 j2 S8 ^8 }問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
( Q* S) G: _; b! Q$ ?
( _* p8 ?1 ?7 ]0x13 不是應解作 數值 減13 嗎 ?
, j) Q& n* w( x; E
% n( @* o; x! R從何知道 0662+(X)=...數值減1

" G" r  I" E% w! f2 D& }5 l9 p  T: l' G. j- c5 l2 P" l: P" r" V0 H
[0662]是地址,0x13是该地址的数值/ ]. ?; D* b% h$ Z/ P( c" B3 {+ I$ Z

1 [- V+ y/ Y+ }& p1 H6 oDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X, I4 G* Z# z) y, k

5 w1 R! }3 u1 o8 L
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
, u  r  j# L4 X5 ]+ Q/ E% ?0 k- t4 I& j; t
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
5 d" g& j. ^% L9 F' q* N
7 W- S+ }5 w8 L問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA

* ]" ~" t: W; P
* m- v( P% U6 M% ]LDA是读,STA是写4 t, y) T$ @$ ?2 f
8 ]6 `, _  h) Y) h
DEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了6 X: r" ], l: z0 p& U

- E1 q) \* A, M/ p; a6 K  n. t1 ~7 dBEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转2 m3 |3 G! H* j) Q1 A. Y) C$ ?

; b  p- ~+ z  FAND是逻辑运算指令) K+ g# Z$ j8 J6 g7 u
, U; w' R. Y$ p) a1 a
请看《6502汇编大奥秘》
- G8 z: Q# q: o
) h6 ]2 e" R* N( e; ~! [) m
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
9 `# R& ^4 V- ^) X, f' y6 t  }0 F+ p: I, F
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?% H: c2 k/ x% J% i3 O/ i: N9 w# c1 s; G
- @2 n0 k! k! d( O" N
問題二 # 尋區方式 即是什麼 ?

1 ~/ G- W  O$ \6 \( [4 {0 {# ]# m. ~8 T5 d& O3 R9 b* I
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?
8 d6 E/ y6 q4 G
; q2 ~6 ^( {! O- E寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
8 a! c4 |' Q2 j0 j, a1 {% i# `
疾风之狼 发表于 2014-7-23 19:44; N, C) b* z! O$ v' U4 h
[0662]是地址,0x13是该地址的数值
7 h7 O0 P; J" |6 V6 t8 a5 E. k" l& m% [" p% S/ a9 }' e* v. c
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

+ H& ?! [+ O# ]' g- y& {) H/ |8 x6 U7 m) Z5 F0 L& m
先感謝 管理員 疾風之狼 的回覆 {:4_118:} ; e' e$ m* [" f" v0 x' _. t

2 Y: v$ W+ h, e4 g5 w4 W. A好像有些明, 又好像有些不明
8 C3 N2 T6 c) I3 y( P1 t於圖6 下面的 [0662] - - =0x13
) r' _2 U# M* ^( Y! r大大說  [0662]是地址,  0x13是该地址的数值( D- k1 W  f8 O' ^% [- x: K* F
, p: N/ `  A' y' h7 A+ v  r) q
我先愚昧簡單的想:
6 C8 S* w* f. b4 u  d6 Y6 @1 v(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫9 s* _" H2 }. w/ d+ m
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 ) l( Y. I2 R1 y& L
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的$ ]) P* |0 B. X. _& S& T

! O3 R( [. M2 I- h遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 197 [, l  T) d  J2 ~& n* n0 J+ C
8 c; p9 V6 H, v2 t/ K
------------------------------------------------------------------------------------------------
* o; w, r" I6 I3 ]: _. }* B& B4 q! H* A4 P/ f! c
跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC
, b5 n! N; I; G  j9 ?) M  s1 n9 q/ EDEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以
( ?0 y# z  S4 _LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A ) d- o; ^" f$ U) l
: k! Q3 ]6 o0 H" z) ^7 _& `$ d; P
雖然 讀入至 寄存器A 這方面 還想不通, 5 L( |  W1 [6 B1 H9 P7 ]7 X
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了
8 F6 N1 o9 S+ |- w" @. U, a
6 d5 F9 l* m0 ~0 m/ {8 ~% d# s9 }, w3 U- P
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用1 A& T% T, `, V* j( s
! ^1 T) q# H, s* E1 m% u- W
=================================================. x3 o6 L% t, v( l! a7 H' f2 _9 z

2 s' V! W1 T6 d說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :* Y' c. z5 T5 y1 Z$ z5 u% Q
* x6 U9 J/ d& t+ b$ A
一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字, % U1 q2 p9 C4 b, K- z# y
二 : 跟著 右按 選 以簡體模式開啟
6 m6 o- Y1 y- d0 L      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟
% ?* F* B3 p, X; r" ?" q: ^0 J; b9 m

9 z. p7 h6 z* s5 b9 `
$ p. x4 e4 z2 N
) e$ p" w$ b8 A* u4 G+ w- ^6 {& P% `; R. K  x2 W* d! e* _
% d, u2 N( b2 l! G1 W
# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了# @/ E/ C; F) \- r4 z
       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44. B1 v& V9 ?0 a* `3 C# ]
[0662]是地址,0x13是该地址的数值: u4 H# K* T  w- [2 u0 |1 t3 l

- u* Z: c4 D2 q6 t; gDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
. |) @! h6 L* U5 [; T
今天又領悟到多一件事 {:4_98:} . m/ Z' j7 W. N% l! R8 n

, |$ x4 o& w. i於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白1 C6 q& v$ }" w$ F" [/ l
現在又想通明了少少& v, Z  D) m4 }+ G: t, N- _
---------------------------------------------------------------------------------------------
# J# E8 x; U. z, k8 m+ q/ {9 d- t& N8 s/ e
中間寫著 :2 h7 L2 _$ [5 d  U5 N: G" U% v
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A7 F% T) E2 f2 C9 ?+ Z4 y* M" Q
起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?
7 w8 b$ L& O8 x, j6 g; g, M# {或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ? & p, }0 r* J( _
! d1 B1 K$ H5 T4 }5 Q
原來又是 16進制 的因由
5 L1 f6 A# Q5 S2 u+ u( u
" {8 R" v: i1 A! Z; n! T$ i在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F& {/ N7 h$ a6 [
即是說 9 之後 不是 10, 是 A
$ e: c* q$ E# T! |+ g' K
: ?) O/ D$ r  ^所以 1234+6 不是=1240( D0 h5 e9 r4 ^  i
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位 " }3 |; R3 h2 U" C8 `" R
所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
, @, \- A  a5 `1 {+ N
4 R4 g0 i" ]9 @9 \2 `) K# B==========================================
' e1 w# u  x/ M  z: n( [3 A6 p
! j) C& t6 q$ u' g( h0 h* {0 n0 j; F其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了: _+ O7 @7 o9 S- \1 r3 u% I( ^& @
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝2 h. S' V/ O4 a" R, u

3 o. @2 }! [0 a其實研究如何修改遊戲, 真的是非常困難, 且非常耗時$ ]. i6 x% P5 ?8 O. z- ^
我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改+ A7 V) K% I9 }0 r, `9 s
8 X, J8 Y/ F+ X% m
说白了
* ?- v+ e8 Z9 [! z( `修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
7 S+ i; w2 W! C& H4 s
疾风之狼 发表于 2014-7-23 19:44; [. J9 [5 n* P" k) P1 L4 i; \+ j( x0 ?
[0662]是地址,0x13是该地址的数值7 d8 G4 v. X) q- T2 m+ H6 ]; d

8 J; k. Z' m  S& EDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
- Y! o. y1 z& h/ w8 |$ \+ Z( p2 R

/ `: X; y; K& e" F終於成功修改了 赤影戰士 受攻擊不減血
% I# X, _; _. s3 ^4 _+ l5 ]5 T% {% w% ]% B

0 @3 s0 D9 g2 N$ A4 [- k6 D5 f# |+ L# o6 E) [% {, W
今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了
2 |2 ]  l/ n5 F/ w4 B+ e+ X我曾試把此方法 套入其他遊戲去修改
+ x! h' C: i3 s+ Y8 m但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型( K; T/ R0 a" e5 _+ o4 f* |
所以都不成功呢: W( ?4 u' r" y, x
最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-11-16 08:00 , Processed in 1.069336 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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