设为首页收藏本站

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
% E5 M7 r. q/ T0 G# W, ~6 j1 Q+ G. I7 S
在此先感謝 管理員 疾風之狼 以下帖子的分享
, ?6 n' x5 T, {7 V7 mhttp://www.emu618.org/thread-21186-1-1.html
  `$ [- x" I5 a5 i
. q4 d3 ^. [8 s5 @+ R我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了
3 x1 G$ y+ t! R; m; H3 C4 W成功一刻, 真是興奮莫名  {2 B/ `* W  k6 S" _) t, F) h
/ {& ]# z! L' V- ~

0 P, F$ G8 |: S 0 x0 c2 ~. A3 r# \5 b; n1 |
9 O7 d3 |1 e  B( L- L1 C% ^
不過也只是 完全 跟著指示, 過程中還是有很多疑問,$ L' C" n- R8 A6 H/ Z; [9 R' {
如不解開, 那麼修改 也只是 局限於 此遊戲3 d+ W/ h2 }0 P# H" V- C

, }/ B8 R% t6 }6 k% ~) n% _3 V* Y===============================+ _6 W/ I: ~3 {7 H9 i! |1 \  d, }1 o

: y4 D4 K; w5 Z圖6 後 的一段文字還是看不懂
/ i1 B0 [2 w+ a' N# f9 G
6 W. n& V4 `. j1 w% }. l5 F1 i[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))6 \) K5 n) N1 l: ]6 z6 c1 x8 M+ }7 d+ i
問題一 # 指令表 就是說圖6 吧 ?
% W& r8 r: P3 L
) ^' q! k6 g0 B0 l, S' z- c問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
: a- T9 Q! _; e6 k7 H                0x13 不是應解作 數值 減13 嗎 ?
, d- A8 d5 w3 z3 I' Q" a' F# G                從何知道 0662+(X)=...數值減1      
' l5 Q: A' w' ~& w3 J0 g$ L
, j5 s. ^8 s4 d( m6 A9 Z-----------------------------------------------------------------------------------) k  }) a1 T9 H! R
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
% \" l  a1 A) k  Q) n" G* o$ s問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?* r7 \/ I5 m- x
                " `+ ]# v+ N' r' y/ m3 |5 X
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
; @% Y: Z' S& U" `7 C; ?9 k  ?1 V. o$ K# s; F0 F5 D/ f+ z/ S$ ?
' z( ?& k: L: g& j
------------------------------------------------------------------------------------ z2 j3 o" @& n) \" m
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
0 j. o" N  f8 r! t& K' X. e! O問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
9 d- H/ V; T# e7 _. a; y
/ I; q5 }1 {9 K8 S問題二 # 尋區方式 即是什麼 ?
# P: d3 O; \) }2 e9 n- N$ J) R6 T, I, n2 L: n& S! i9 o6 U

& y0 U  N4 Y( h! K' ?+ c其實還有其他問題的, 不過一次不問太多了  |& c  t- C& W; n
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的
5 `& n# j# v) h# x就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑
% g$ ?5 d6 n- B" O/ {& P
紫龙666 发表于 2014-7-23 15:229 I* }, l1 x& X6 ~6 E
你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。
+ y; i0 d6 Y; q; Z4 e% \, T
  q' D' D' B# @# S- S) ^- ?
先感謝 紫龍666 的回覆  {:4_118:}
' G  t2 _; ?+ y4 c( w' w
7 x* N) @4 D& W; ^, T我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘' v, X4 Y& h1 u  q% ^7 ?) i
http://www.emu618.org/thread-20393-1-1.html
" k* `( w6 \* O4 e* q( a2 j  T3 a! g& R$ p# ]4 M1 }- R7 M
下載解壓後 得到一個檔 7 g: ~, z  f( b7 r

) t4 ~3 a! i% _* ^
9 h- Y3 W# d/ |2 T但我卻開不到這個檔, 顯示(無法開啟檔案)( r) n& P. q6 y- W9 p9 A
愚昧請問一下   6052汇编大奥秘 是否 一個文字檔
5 k: d$ |: v' ]/ e8 D- }此檔有很多文章在內 嗎 ?

点评

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

使用道具 举报

签到天数: 1973 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1)), L! o9 j9 Z0 T, n  H, u0 e* p
0 g' A$ D# r6 c  Q
問題一 # 指令表 就是說圖6 吧 ?( Y0 M+ L3 i. l# Z! D$ V
$ |1 b6 I& x- q2 W
問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
( ^! U0 `; t7 T, a- w) P: k( o3 C7 J% }8 k3 {( x
0x13 不是應解作 數值 減13 嗎 ? " g7 o$ m. h. c
( f7 U0 C; U0 W9 u8 |7 z1 m
從何知道 0662+(X)=...數值減1
9 o; b( t5 u( I  v
0 W- g2 r  V1 v
[0662]是地址,0x13是该地址的数值
1 K0 K/ v, n0 c  J3 r% L: M  ~$ Y# a
: f; t, E6 `1 @. |9 n$ fDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X
& n: X" A. c* q; w  d( Z% Y, {, O9 k3 }1 g
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
. ~' z3 c  e+ k2 C6 |0 a7 S) @" ^
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?) f# y; b& ~6 o' Q$ b  c( O( W
* _3 R5 @; N6 p- g# Z5 W
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA

& n' F' P5 Q8 g7 t7 i9 P4 ?0 l) K8 e' J
LDA是读,STA是写( T! m8 O. J0 n( q

# g8 c5 c. e2 N9 E$ r/ GDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了$ M2 z) m9 g: L  c' `
" F! j; w" g3 Q2 k* d! `
BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转3 O( r9 L, z) Y; U6 i
1 l/ W* e5 E( ^
AND是逻辑运算指令
  Z$ k7 t7 O* Q; ?
' f. a" D# S! D/ s请看《6502汇编大奥秘》
# Y& Q2 ~% m) V/ }; S; Q
: b- k9 v" |# U& Q
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
) I+ B( _7 C. a& ?7 J$ ?6 K. f9 X( T& E1 b
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
1 w9 j, j. s+ G) f9 S% }: _/ U0 Y0 i! R5 q9 x
問題二 # 尋區方式 即是什麼 ?
1 [* c6 ~2 x8 T$ \

- o/ a. t/ H! q" A  e4 H我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?2 b. M& f5 ~' a% k
6 L0 K" J/ i! o* q
寻区方式请看《6502汇编大奥秘》
回复

使用道具 举报

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
" J# o! Y/ d9 C" t8 }
疾风之狼 发表于 2014-7-23 19:44' T# G1 [3 w/ J7 o, Z
[0662]是地址,0x13是该地址的数值
9 x/ x% N) ?5 n, |& h( T& G2 R: f% R: H
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

$ Z4 i9 }# P( _2 k8 T
& n2 a3 ?! g) f" t3 j6 R+ v& L先感謝 管理員 疾風之狼 的回覆 {:4_118:}
4 j3 p2 P" N- Z' Z% C) m: i3 F" q- m! L% S- ]4 d
好像有些明, 又好像有些不明6 }( C- d7 ?- C5 d  V
於圖6 下面的 [0662] - - =0x13
1 U/ p/ w0 \% Q7 M  G# {* K# y大大說  [0662]是地址,  0x13是该地址的数值8 d/ M0 V9 }& K# ]$ l% m; w
$ U7 A3 E; c( D9 [3 J5 ?: S
我先愚昧簡單的想:
% \9 @# h: L6 i3 J0 P% P1 n(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫9 x' V. R/ u9 u0 E# X  a
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 ) g' [' ]/ D  e
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的- L: X0 f% t6 s' `3 a% a% I
7 g" `" J/ z) a( K% T9 Z' j
遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
  Z$ \& q4 G% z: M
/ l/ w: ]. P/ q------------------------------------------------------------------------------------------------% O2 \' [0 V5 s) e

; @# Z% y* G; R4 f6 K& A  A跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC
$ H' c; Y4 ]' }  p) w6 i  fDEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以
7 b/ X2 @# R/ t2 T! j+ f+ NLDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A
4 U8 l8 J4 n( d" G. a
  A+ U( r1 d, g* @. N( Q雖然 讀入至 寄存器A 這方面 還想不通,
* G: Z- o8 f, s7 N! Q總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了 . t, {+ }# F% m, z7 ?9 V$ i! \
0 R! _6 n+ j/ Y8 C+ Q' Y

: W* _3 h( e3 u5 n: E# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用
% \# \4 \# o) Z( J4 b
% T# K# F! J! o- Y; n( c" _' ~=================================================
7 Y. Z: z* s' |/ y& [. Z! Z1 v- X+ E, `* I$ z0 T
說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :8 p7 I6 ]/ `) J8 V5 G
  J" F7 |# F; ?" ^: L) o# y
一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字,
- J# }% T. Y$ I1 z  o二 : 跟著 右按 選 以簡體模式開啟7 A# u1 S5 l7 d) ]5 M
      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟
6 K- k) ~# s; q! S- f4 I$ G' j, \& K! H' D

' X# W* Z1 \, o# R: X+ ?5 G4 y( A. A
2 [; T" o& I  S# W& }+ a+ `0 ^' k6 T8 w

0 ]2 m0 B% y8 Y3 ^& t  A1 z% W- N* D; u. Y4 I
# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了" F3 Y' N/ o  x0 t* h* `0 s; T
       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜
回复

使用道具 举报

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44
8 T8 e; F* ?" ?/ _% G[0662]是地址,0x13是该地址的数值
# y9 W& k$ q* a0 Y" G
" P- [- G1 y$ C; p& D! \0 L7 IDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

: d0 [1 H  _7 V今天又領悟到多一件事 {:4_98:} $ [1 i5 C5 ~) i8 E* q

6 i+ e! E% I( i; V% _: A; q於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白
1 u0 }0 I. B: X現在又想通明了少少$ T, M2 {6 G4 y5 v+ u/ P8 }' t
---------------------------------------------------------------------------------------------6 F, @) j2 ~; B0 H* S

! c% L% u3 g+ ]+ n* `; u中間寫著 :
  F% y# \9 s- Y; t% l. S9 Z舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A/ P% E' B2 [% p$ H
起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?; C  l8 u4 |. |6 H2 X% V; a- O
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ? ; C  ]' M) U' n; w

" e7 U& D$ ], n/ [) @原來又是 16進制 的因由- H5 [( X7 q# S) I' L4 \4 i8 R
) o/ k! f' `/ i, ]. V5 N
在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
  N; m7 F& A! n, J3 y* q8 }即是說 9 之後 不是 10, 是 A
/ W: B! g% {# `" b
, W2 E; e0 o  y- {1 e) W所以 1234+6 不是=12404 E3 k; E5 i0 {1 f) C9 P
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
- @& S" b0 N& T* N+ H, h所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
/ h3 b$ A7 p7 G) O7 g 6 [+ x8 f4 e$ u2 v
==========================================
5 L3 Y/ ?& T8 M9 N; [( o( ]7 }1 f* C/ ]& q$ z; y
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了
- J) l; P+ J4 ^; y3 e  ~除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝1 u* C0 O3 K6 F# I% H: b4 z

! `/ L. Q; y- D( t. c  x其實研究如何修改遊戲, 真的是非常困難, 且非常耗時# y* I% x8 i* S1 |3 H- [, i
我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜
回复

使用道具 举报

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改8 J. c9 y# t$ @5 J/ y. j; c

& \! }; U) E5 W0 F# o! X说白了" R+ k, N; p9 b. c# A: G; T
修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

使用道具 举报

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 9 t& m) w! C" ^
疾风之狼 发表于 2014-7-23 19:442 I+ p" h& Q  Y' J5 j* C
[0662]是地址,0x13是该地址的数值
$ R( a$ A! W) A$ ?4 d) a7 M3 d! {3 q4 `
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
* U  T4 L. b$ b4 m: G; @  e* ?

/ a" L: Q: N3 I4 |) p7 ]' N終於成功修改了 赤影戰士 受攻擊不減血
; X. X5 a+ p5 T; }
, H+ c2 g- u7 u% z( M- C5 z4 d. U! f, M: D# O3 C6 T

; P' g9 o% Y' w0 c4 P- U& |今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了0 J' N' {) w. j& r
我曾試把此方法 套入其他遊戲去修改
& f8 N8 j3 M2 n& t! M但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型4 j* d. S. {& y+ z
所以都不成功呢
! d2 K% P3 L" ?* k最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-6 08:53

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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