EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑 0 U6 p& u# D' F: E; g
; ?; J* Y( }9 ~6 H, L
在此先感謝 管理員 疾風之狼 以下帖子的分享
" V+ x. }& d( F" F, rhttp://www.emu618.org/thread-21186-1-1.html& J: h- u/ b  X& ?
9 d! h8 A4 h& v: q+ Q
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了
( g+ B" Y- o+ A8 \$ c9 R" |成功一刻, 真是興奮莫名/ u% C7 e: {2 l" W* m7 p% e9 z
; D5 [3 P" E+ \! {2 q; L
" a9 M5 j& S! H4 z
7 m+ e; u% R+ h! q, U# s8 m9 Y& X" }

. V2 H* l. b& h4 b7 A不過也只是 完全 跟著指示, 過程中還是有很多疑問,# b' r: H+ z4 z: z6 y0 O
如不解開, 那麼修改 也只是 局限於 此遊戲2 E" N6 a0 c2 Q9 F

! X& `9 Z* B* R# c2 n4 L===============================
+ x- E# ^9 }" @# E9 V
4 O! u# K$ y! _+ Y8 Y$ }圖6 後 的一段文字還是看不懂# J8 z! Z5 a0 Z# _8 u
1 r* t  E4 N+ d3 S* i4 G+ |' ^
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
2 ?+ f+ M; [( C% a& h問題一 # 指令表 就是說圖6 吧 ?/ `1 s0 g  Y7 Z2 h) |5 A

* M' t. z6 O* V3 ^問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x135 X9 B5 N( ^" r  s8 }
                0x13 不是應解作 數值 減13 嗎 ?
$ Q7 g+ v. m  F' e                從何知道 0662+(X)=...數值減1      
% T6 t) X1 c9 i5 `" d0 q  ]" b1 V0 x8 N6 Q' [' o6 @
-----------------------------------------------------------------------------------5 w- _6 _) m9 F) H. U8 `% E
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
7 m  O. V1 D4 h( `問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?& |; [2 @- b) B) z: x
                % |' f8 K4 T; ~& A1 m7 N- \
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
" K2 z: x% s) E5 Y6 c. r% ]& i" Q6 ^, D' w. ?. {/ u

+ x* Y  _% ~( H-----------------------------------------------------------------------------------" R6 ?: [- z0 U
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))0 S# z7 a' [, {5 `( i7 {
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
! c- w4 y5 X$ [3 L6 T; m- k! N* i  r1 A
問題二 # 尋區方式 即是什麼 ?0 W) p4 A+ k2 A1 I/ G1 Y8 }

* ~1 a' x" _3 X0 f' A( r
" J( H$ h# f" e: f其實還有其他問題的, 不過一次不問太多了
+ t2 M: g- a# Q* s在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的
8 R7 z6 o2 _3 L; s" J就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 `; t# Q5 S0 _8 Y
紫龙666 发表于 2014-7-23 15:229 \# S( W- \8 H
你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。
- ]3 A, d0 u1 f, S: i
  v: J0 `; A* }% O" }) ]; o; f
先感謝 紫龍666 的回覆  {:4_118:}
" y+ R  ~& X& |- H  c+ L- b) J5 n% g. X; [9 Q3 |7 f5 b
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘
/ n7 \( u+ u& K+ F* w4 A" ^9 hhttp://www.emu618.org/thread-20393-1-1.html
6 k5 L$ }1 ]$ R% g: [4 `
0 i# ~/ F  f/ _# N% M1 D下載解壓後 得到一個檔
5 b( ?$ B) `3 K
; [  s6 W# B! }9 e) j( b# j9 M1 `: J* c+ t& x" F) d
但我卻開不到這個檔, 顯示(無法開啟檔案)
1 z, P* q7 @+ D- g; i* D% E+ n) l愚昧請問一下   6052汇编大奥秘 是否 一個文字檔 ; e+ x9 l8 a5 O1 B! y8 b
此檔有很多文章在內 嗎 ?

点评

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

签到天数: 2147 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
! J, M" B8 B4 r2 x$ ~, Q& |8 L( I1 B3 k# T
問題一 # 指令表 就是說圖6 吧 ?
% ?3 ]  ?  D) O0 C/ ~1 l( _9 c4 C5 k# `& ~
問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x132 P% k: X1 Q) p" m

9 F  h5 d: I" `$ H% N) _( l9 |. G0x13 不是應解作 數值 減13 嗎 ?
/ N4 ~8 g& Z+ Z& [* o: v0 h4 b* x) A" J. v4 T
從何知道 0662+(X)=...數值減1
7 B, x& S5 m/ u+ A

3 T& U+ j; B* g$ d% h[0662]是地址,0x13是该地址的数值2 f* C$ `$ j9 r  o
4 z5 a& E/ y  c; N3 c
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X
. ~5 J7 H1 k& P; a: e! v+ W
; |1 x# S/ c% H8 o7 H
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))1 V- k/ A% [# c% I  ]
0 X' P6 I8 h8 q  b$ j* n
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
2 H) l- m! J! f% {- [
$ v' D9 W) q# |; n$ f" r# r問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
, c1 |  V+ w& D& Q( |
% X; `' a+ w5 K. T+ Z! W* D
LDA是读,STA是写
& D: ?5 s. {. x: Y" M; `. J
. G+ `4 J, n" G2 h7 dDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了
- U; B9 @7 [7 q6 X3 S
# k* {) P: l6 _3 T# RBEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转4 ?6 u* r8 b0 e
) \/ d' D( A  c, ?
AND是逻辑运算指令
5 u/ ?8 @) E$ ]; g4 |
/ i9 r. U2 N$ w" g3 F3 d请看《6502汇编大奥秘》
  I3 p" @8 ^) h+ T8 e( o
( W% B1 B$ m3 k7 B
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
) o* W% i6 m6 i* n$ ^7 p7 K6 {) E+ {
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
& n; T3 B) v: Q7 z
% ~- N' f3 h: P4 R) p- ^2 d  j問題二 # 尋區方式 即是什麼 ?
: s0 I7 |7 S. P. b

3 F+ }$ m* Q& A) \8 \我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?+ V2 V* o7 U: v* w( w8 B
4 X, E) p2 q, e& t- z7 a1 V- x
寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
/ W- I1 l; {" J
疾风之狼 发表于 2014-7-23 19:44
" o, ?3 F. E2 X- n; _9 B; `$ c0 ~8 ~. Y! R[0662]是地址,0x13是该地址的数值
+ R; {7 q0 |7 z' ^' v$ z5 f9 a% u4 Q3 X) h) y; i; j& B. p+ b' M5 }
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
5 Z8 ]3 ~2 ~) [! n
6 {  o7 o* t5 h! l4 h# B
先感謝 管理員 疾風之狼 的回覆 {:4_118:} / j: C6 i8 t% @. R% d7 Y

9 }% O, P0 Z! o; S3 Q+ }好像有些明, 又好像有些不明# W- u8 f) t8 |) b; m& z
於圖6 下面的 [0662] - - =0x137 e% H' y, s5 I9 ~2 r; S: v
大大說  [0662]是地址,  0x13是该地址的数值* G# P- w# A8 {. g8 w1 r

% x8 p4 K4 V! B9 _# M8 l  Y8 [我先愚昧簡單的想:
7 y) L& R( Z8 I9 B  ]9 ?(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫1 x) t! ?0 Q8 E0 \" F5 y1 u
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 1 N- V* \6 Q$ j( ~0 g
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的
% U( Q% @# _7 [
# B1 u& T+ J3 {( L9 F遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
0 l, A, l7 H- }! P" p% v; M6 v( k8 B# o% m/ D1 Y- e# U( K% [! d$ G# g
------------------------------------------------------------------------------------------------
) S( N3 W3 i3 j& ~& A
. ]. A( B0 b9 M, t跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC
, u; r* |9 `9 Y" N5 G0 NDEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以
$ c9 M8 S4 w8 @' d* ?LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A
. v5 X* E+ A0 o% h" ~* d, k
8 Y) y1 C, O0 d6 a雖然 讀入至 寄存器A 這方面 還想不通, $ b' q  c4 u3 y2 Q1 O! e5 H
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了
2 j; d+ G9 s# d& U7 \
5 b9 n6 a4 X( a/ |7 ^9 P( [  p% ~+ E# U' B6 S/ b9 g6 }
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用
( i+ l' _, L) M% J0 B5 A) R: \
8 ]0 i# o0 u) {7 d. E9 F=================================================' `# b) _4 U" ?# l" O$ c

4 x7 H* F; `" N( S. P說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :, @) {0 V9 j# z$ }0 Z! x

4 r+ a, w5 L* n, X. r, o一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字,
8 [3 d# N) u1 c% s二 : 跟著 右按 選 以簡體模式開啟
/ A& X2 a) f# O4 W9 Z; a      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟
2 N( k/ W3 J& {/ F
/ u4 d( S8 p0 c1 p8 I. f; |( Q9 o2 H) Z0 t/ e4 C1 b
7 I8 y1 L+ |2 b

+ R0 o3 Z6 F7 V, Y9 p. ~
. \! i. `$ |% x5 `/ Y6 l
! X3 O' |, n* `2 g* _# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了! {- h  e* C/ A
       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44
" h4 E% E, [8 |- k4 O% n[0662]是地址,0x13是该地址的数值% `5 ?0 J2 |+ M6 y7 @% P. z

0 @1 S4 V" }5 |6 J4 S! ]  p/ ^* kDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
6 A7 C- ]& }: H0 P
今天又領悟到多一件事 {:4_98:}
6 G5 u) _6 t# U( x  q  F7 D  Y% |
( i% u3 K" P0 e2 @於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白
* n# m( c4 b. a! l' G9 b3 x/ t3 u" b現在又想通明了少少
. P. J9 N8 X9 q0 h& R; t* l---------------------------------------------------------------------------------------------
9 G6 v4 ~4 z' [4 d" y1 z
$ r3 @; R1 l$ u0 j0 `% n0 B中間寫著 :
. `! F1 K5 `+ ^0 X舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A
. @: y8 t' Y3 [( Y; s6 y" l起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?. T: y" [) H: t/ ~' O5 W. c
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ?
8 c4 W5 i  l6 g$ u+ E9 N! o. z4 U# S* v1 V
原來又是 16進制 的因由! O9 J, g7 ?' S4 L
' R: Z7 C3 ]! \4 x% \; U
在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F4 R" b* I3 O/ r1 G# `: r9 ^& o0 B- w
即是說 9 之後 不是 10, 是 A
/ I2 n1 \, Y7 Y/ ]" d2 v4 \" w3 c3 _. Z
所以 1234+6 不是=12404 l/ r# n. a! A/ ]2 g
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位 ' H% N( S+ T, J7 B( r  ~
所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
/ l& P  Y' J' }4 M 9 Y1 u; g; O+ @
==========================================( f6 t4 H- Q; j* B0 @
% E* z$ [9 H* w( c' M' ?
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了. C; E+ }% r6 n& O
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝  B. z! d' Q3 r8 A4 h3 {8 z9 [. k

* y* ~/ O# y  _/ Y# O其實研究如何修改遊戲, 真的是非常困難, 且非常耗時
1 b  q$ ^0 ^6 F& t  y0 G我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
! |& {+ H3 K, N5 z2 Q$ D
' P) d" y# o6 R8 N- [说白了
( P8 C" \7 |7 v& c8 |修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 % w  H" u9 c0 T- h' \
疾风之狼 发表于 2014-7-23 19:44
- Z5 w2 O, I  q! d0 ]: j[0662]是地址,0x13是该地址的数值
: R. N8 T6 w" @. k! _3 ~+ p' }, x/ [7 H6 Z9 j! G6 l( h" k
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
0 `# I: T8 u1 ]" a5 w( q
$ y7 `( X$ n0 y
終於成功修改了 赤影戰士 受攻擊不減血" R6 j4 ]) u* D  h1 W. h

5 ^; |' R) ^  g% e7 u
5 @1 n  s* h$ F5 r) Y
/ Y; C+ n- p" }& h3 B. \3 X+ c3 @今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了0 ^9 z+ W, s* L  I- W
我曾試把此方法 套入其他遊戲去修改6 }* L3 X: {0 u3 i. G/ m" T+ t) U
但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型
( |3 h* y9 U$ v4 ^6 c; q所以都不成功呢
5 Y: `% m4 ]0 Q( ~; s! m最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-11-30 07:23 , Processed in 1.082031 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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