设为首页收藏本站

EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
; R/ T" M! k) p5 R* G6 H7 C) P, R9 _6 r5 L+ G# P
在此先感謝 管理員 疾風之狼 以下帖子的分享5 b; _7 p" ~! d) R, o
http://www.emu618.org/thread-21186-1-1.html
" q# b5 v# h7 M' [8 j( x( @5 o& s! H; |+ e
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了" A, x9 ~! _4 t" S2 B, ]
成功一刻, 真是興奮莫名6 R0 A! {% c9 u% M: ?8 V

  s; q! |6 ?& F  [* h0 t( [9 }2 d1 ]  [

  n$ A7 b- f6 Y6 L; Y7 m% N5 B% q+ O8 }$ v  U- x
不過也只是 完全 跟著指示, 過程中還是有很多疑問,/ D5 V, ?3 E& {, y6 c
如不解開, 那麼修改 也只是 局限於 此遊戲
5 t+ S5 ^# H% B2 a
2 W) W# v. M5 m6 H/ C$ o) }0 K===============================
% I# W: ]) w& P  B6 D6 l5 [8 L- \: |: W  U' a( _8 e' c9 j
圖6 後 的一段文字還是看不懂
7 G2 R* T0 p3 E% a* Z: j6 P& j2 s9 r$ s: }4 j  n$ i0 v
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))9 X2 P9 y+ I7 k" H7 b. s. L
問題一 # 指令表 就是說圖6 吧 ?' E; m9 T4 X) E) O9 }
3 n$ G9 G9 e9 L2 X3 q4 s
問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13' J! ]8 s! n3 v
                0x13 不是應解作 數值 減13 嗎 ? 3 z# ?3 V# }7 q2 w, _, ?
                從何知道 0662+(X)=...數值減1      
  ?: e# z. L- X2 t. e" h8 o4 t
7 i. e8 r. e  x3 f-----------------------------------------------------------------------------------5 o* r- i. ^6 p2 G
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
$ e& ]) N1 x, s! p0 J  B2 J問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?' P$ a( U" G" Z& t4 ]! r
               
0 W1 W3 _  p( x0 q- L問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
- y$ E4 B( v3 M1 A! h: A3 h' j2 W. l9 S5 }4 r/ P

: _: s8 W1 r2 u  s% C( m" E8 D# i-----------------------------------------------------------------------------------
. Q4 N( a4 N5 s' J6 z[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
5 x  o$ Z  ^9 E5 l% V, F問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?" a/ O9 [& F1 f% r3 A+ L
+ I, p( U' D  f6 z7 P8 Y4 s# n
問題二 # 尋區方式 即是什麼 ?
1 p, F/ c& S" q) g# d
- J3 u$ {5 Z: B, Y9 v3 J
! E1 l8 X6 W) i其實還有其他問題的, 不過一次不問太多了5 s1 |' w: d  |* O
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的2 m0 _8 G1 Q7 |- ?+ L
就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑
' ^& W" i: g8 Y/ A( Y/ B2 }
紫龙666 发表于 2014-7-23 15:22, N( t1 `. O  [" ~
你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。
% A1 H4 |  Q5 E
/ j* f0 c5 U, A" @' Z
先感謝 紫龍666 的回覆  {:4_118:} * W0 q; q2 m$ l$ Z* y# X3 I7 d# `
3 j# C( l. r* Q) I6 E* `
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘
2 |, g% p: K3 C$ t5 D5 ahttp://www.emu618.org/thread-20393-1-1.html
  k! C" ^, O" J" d! S  _/ I6 R8 q! z% u* ?6 Y
下載解壓後 得到一個檔
. J# k0 v1 A$ E  o6 w
* D  ^- j" o; P0 T( ~
, F7 k7 u6 M% A# T! o但我卻開不到這個檔, 顯示(無法開啟檔案)
  \# ]8 {" B. S愚昧請問一下   6052汇编大奥秘 是否 一個文字檔
. `, z# v$ ~1 N! c+ s此檔有很多文章在內 嗎 ?

点评

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

签到天数: 1895 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))% d1 Q) Y& s6 s, y" Z
6 l# Y* b) @+ p6 w, v+ g: Q0 i, ~
問題一 # 指令表 就是說圖6 吧 ?7 k' u! |+ R& N% J; }' O; E

$ I: R" G7 A- J& L問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13+ K4 T. i- z) X

7 a4 F) {2 w! T8 y: }3 j0x13 不是應解作 數值 減13 嗎 ? ) Q8 H. B5 ]0 Y, x* v
+ s! A, S1 T2 ~/ @
從何知道 0662+(X)=...數值減1

. ]* l' [8 K) w. J4 d; A$ i
# U2 L- d4 r/ L) H[0662]是地址,0x13是该地址的数值
" z: F$ }& q7 C! H5 [3 Y7 [7 E$ H! e+ y* {$ z/ u0 g
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X7 r% p  Y3 h; r2 e; x

. F0 ?  P5 e; l
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))4 I# Q' x4 }/ s. N3 z
% H0 T. D& d+ i* ?, e
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?" U# z. A2 b0 p1 t2 ~- L

9 G" E# N( o4 M+ K) Q5 ~) Z7 ?問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
/ ]1 O$ S2 e. V* y3 B7 q3 \. l
$ n5 t: h& ^: y* _' S7 F6 T2 S
LDA是读,STA是写& \5 Q$ ?) P% q- i* q! `

1 S7 [/ t9 s, b: E7 P" yDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了
. O2 ?% p1 M. w
% |6 Y  ~0 q. n3 gBEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转$ R/ c; Q. `' Z8 G9 z

( o7 a* h, ]$ [! F( zAND是逻辑运算指令6 C' D9 W2 k- A. D
7 `& S. w' `( {4 J
请看《6502汇编大奥秘》
( ]8 l2 W$ q/ X8 H# N8 \0 s3 `& f9 D8 \4 H4 M+ o' p
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))) R$ R$ c' R$ H8 W* o9 f% N

, e, i* X( K2 E+ U8 k問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?, l6 T3 `. q( z2 o6 U
  R4 F1 E# O( e% N- c
問題二 # 尋區方式 即是什麼 ?

# l+ E) X  W7 J% \6 a3 p* G8 G3 t4 q( |, f+ {# C
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?7 L' T! A5 P- K

2 j4 l8 V4 p6 z% r5 O寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
1 Q7 I/ s$ l' k4 w$ u
疾风之狼 发表于 2014-7-23 19:44# d& O, Q, x6 K- d- h
[0662]是地址,0x13是该地址的数值
. G) g: x- [9 a8 C2 s: K+ y/ ^. S$ a; w
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
- y' M6 o+ K) {! V: ?1 \7 U6 H
6 \; L3 \* g, k# x2 F
先感謝 管理員 疾風之狼 的回覆 {:4_118:} + k( q; E7 q9 O9 d" Q6 a8 P- h1 G
" \5 a; v5 B  g" J( _
好像有些明, 又好像有些不明
7 ^2 l. E) n0 K, k6 z/ ]於圖6 下面的 [0662] - - =0x13; O) n# j7 ^7 ~
大大說  [0662]是地址,  0x13是该地址的数值
' P0 u1 O  _$ w, X" J' {9 u- b) P
; R6 Y. V3 J. F我先愚昧簡單的想:
0 A) L6 n! L& Y2 @+ O' \(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫
( @  v- Y" H, M# k4 z8 L(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 & k2 S9 Q+ K2 r* v: _/ F
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的
( w2 W. C9 k; e/ F  H
% d! i+ f7 E* O7 K" n遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
. b1 r: n3 F+ i3 U% w3 T
! I# V' i; e$ j8 }$ n% D, k------------------------------------------------------------------------------------------------3 s' x4 k- C$ j

3 A- T8 M; O& i( Q; M. Z8 A跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC
7 T8 [; R" |; N" I- ^* d$ y! ZDEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以
: p4 f& J5 `2 Q$ h/ B* \6 v9 pLDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A 4 J$ V6 v5 |" S

7 ~5 T2 b8 P' @8 H* W  u! v, [雖然 讀入至 寄存器A 這方面 還想不通, ' D+ u2 n# }% n7 [& F& t
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了
; n, N. ?  j" ]0 o; V* K' O, a4 a
1 D+ b! X; r) C- G8 L- O6 @( A' R% v8 s% \3 [5 k( _% B
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用; R/ |+ j; C+ y% ]
& o# F/ ~+ h8 y# n
=================================================
& f! W  A9 C. M7 G
* H: O* H1 T& F1 Y, M" [0 f8 T0 P, M說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :  x, U: P/ ]2 w
5 i; T8 _/ ]5 o0 h" N$ N0 \
一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字,
; x% y9 R* B0 ~! \3 t5 T二 : 跟著 右按 選 以簡體模式開啟
* |# x5 Y4 h! d7 K. q      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟3 r, \' g) ]1 b2 V; a  n# ]
" ]* W. P4 @9 X' E- g6 c. N

0 T  o! o9 A( d& G9 R$ T3 U# ^  W5 J8 Y2 _! |! U% e5 D
8 H) Q, Z* B- Y+ @

$ b; q% N  j: m& F, N
( c3 O, l' E( b7 \: o# d. m# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了1 }) @, h9 H2 p; C
       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44. ~, F8 j: B% {  x
[0662]是地址,0x13是该地址的数值5 I; l! l8 \- _4 q+ i3 N0 e
" `& ?4 K# U; G
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

% ^- t) ]  D% ?, @$ K! i今天又領悟到多一件事 {:4_98:}
0 O; o  G) W/ L5 l* |
0 J0 m1 L8 Z0 k* C  o6 S" s' a於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白
0 G! a0 {# c  L現在又想通明了少少
# _5 ~2 \) v" G' F: D7 H* p---------------------------------------------------------------------------------------------6 b. j3 @+ B) ?  ^2 U7 W

, I9 J1 s8 F( G0 V1 ]: s- K中間寫著 :2 _) D& e: _7 }
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A
) [4 J+ }9 h0 g% I0 k7 e起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?- U! u; [0 y. K) @% v. H
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ?
% C5 x2 v8 ^/ `5 \, z+ c+ V
! Y7 _* L' s) o' S  f3 E- W原來又是 16進制 的因由
7 O/ z) c- }. D$ N6 X' o: Y# }/ y/ L! P2 z2 r
在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
9 D3 I+ \. w1 Q. x3 e7 I+ \即是說 9 之後 不是 10, 是 A
8 C- r+ Z! `; ?0 M  i% J
$ n0 @9 G" Z0 Y0 l7 N所以 1234+6 不是=1240
1 V1 k8 S+ {/ r個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位 ! T2 X7 D) {* [( I7 z
所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
( @! Y$ Y/ y) X/ ?* q
' j, k0 p( b4 ~==========================================3 j) f( \4 U& G* Y0 o
2 X- F6 H6 p6 R) m4 T  m; P, z
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了
+ b6 J- m: Q+ G# l/ F& d5 x6 I/ c+ @除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝# `" w* m* A1 o2 t; L/ a$ w) Y* J
! t  L  W( @5 t5 @
其實研究如何修改遊戲, 真的是非常困難, 且非常耗時
" `( @) J" h6 O5 E4 O+ X我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改3 e( M( C" Q  @

: W4 o1 J2 a* o3 Y( x1 C" f说白了, K) Q5 _3 D& M
修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 * ~' J6 A5 b& Q* \6 {8 X
疾风之狼 发表于 2014-7-23 19:44! M' h  X6 O* r/ j: B7 Z& I) J) _
[0662]是地址,0x13是该地址的数值! |, l  J* c2 D) b
  T1 v4 c" `- E' i* Q0 |
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

* v' {4 O( Q  M# t9 ]- q: K
# z4 }8 Z( h, V0 K! S4 G終於成功修改了 赤影戰士 受攻擊不減血
3 @- _0 P0 N( `; ^" l4 v5 ]6 \4 X0 a# E: H; R, S8 ^( O: i4 w
, X/ c$ ~# z4 J- u" K( a4 L

9 O* o  @) U. N1 d2 v# E今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了
- C5 h/ d1 q6 [$ l我曾試把此方法 套入其他遊戲去修改
/ s3 n; h2 G* I. k但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型0 Z/ s1 F% x% V7 ?; Q* b
所以都不成功呢% L; \9 O; f( Z. U0 {& }2 s/ `) q+ B
最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2026-2-25 22:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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