EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑 ) D4 O( w* [2 Q6 K: t7 ^0 {
8 [8 X1 j% ?, ~) v) Y3 P
在此先感謝 管理員 疾風之狼 以下帖子的分享' ]- Y) p' W3 B5 S  C8 a) A
http://www.emu618.org/thread-21186-1-1.html. T) q9 ~$ C& j5 Y0 y$ y* n6 |

0 r2 c' M0 u5 C7 Q9 ]# R9 j1 `我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了0 y9 v' O6 i2 |4 i% ]
成功一刻, 真是興奮莫名
: K  Z+ g" E  l3 C& }4 V& c4 Y

" n$ q. j  i6 y & q3 s# j. I  p2 t2 |8 J7 a% }0 i
4 |4 O3 _6 T- z2 C
不過也只是 完全 跟著指示, 過程中還是有很多疑問,
( ]2 }. e+ p8 K如不解開, 那麼修改 也只是 局限於 此遊戲* C6 x9 W/ o7 Z
- d) v6 |3 C" O2 l8 \2 H
===============================/ V8 W5 ]) q. }7 b& C

; H% n8 v8 x$ n2 y圖6 後 的一段文字還是看不懂, l" ?7 O8 {9 W
) p" K7 ^- Z1 L" X: o
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
% c. U8 [& |' Q+ I問題一 # 指令表 就是說圖6 吧 ?$ {* O  F1 w; d0 }

  {8 a5 w* w! Q" P+ z問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x137 o/ a4 ^, k, @
                0x13 不是應解作 數值 減13 嗎 ?
  o& T% X, f; Z* S$ [: y) q, _                從何知道 0662+(X)=...數值減1      3 Y# S' H3 e+ O. P" A) v

! ]' [; ]' `( I* M. w# X# E# x-----------------------------------------------------------------------------------9 x* q% ~- L8 q, O
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
( c: y( w' p3 I& n9 Y問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
4 M: y8 c4 |+ N% ^! y$ V% g               
  [% I2 O+ c/ R6 U# E; E問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
, p8 I, l4 J: f9 F7 f6 b5 U2 J% a' K, a9 s9 W, F1 j

) @- G$ Q7 z7 S  O1 h-----------------------------------------------------------------------------------2 l0 K8 |9 u0 I/ |% d  l! T. L
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
) ~3 M: m9 H4 l, h- K& `8 N# R. e3 Y問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?0 H$ J3 ]9 |& J# m0 q/ g

! p( M! u0 X5 i9 Q問題二 # 尋區方式 即是什麼 ?8 g) q9 _  |- v" b. y

* C1 R; E+ [) |: V3 m5 }' ], C
* ]  M9 J' m0 o" D8 R其實還有其他問題的, 不過一次不問太多了0 t7 H0 r3 v: `3 D
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的# S* m$ J/ `2 S: m+ d6 p) ~7 _
就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑 + Z" r9 @- d5 P
紫龙666 发表于 2014-7-23 15:229 o+ b0 [2 o6 q9 t% v2 U+ T
你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。
3 H8 O0 j; {- l. t. R8 [, J. }* u% w5 W

# k2 S8 }4 }1 U0 J2 i$ Q先感謝 紫龍666 的回覆  {:4_118:}
# X, q; ?. `9 e" L, ?7 ~! a, i+ J( m/ u$ M8 I
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘. C* \2 J) ?# R  U- D1 D
http://www.emu618.org/thread-20393-1-1.html
; J: l) a5 ~" o. |4 K' G
* Q3 g$ ?0 H4 D( V+ E下載解壓後 得到一個檔 6 E5 c$ y6 D, R+ f; I6 o& L
' F2 E) x: F2 S! s9 J
( G  i2 \4 U5 h
但我卻開不到這個檔, 顯示(無法開啟檔案)& }! s5 ^5 Q+ o. b
愚昧請問一下   6052汇编大奥秘 是否 一個文字檔
6 V/ H1 N* F* \此檔有很多文章在內 嗎 ?

点评

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

签到天数: 2070 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
' q2 {( V6 o4 B0 l$ T  U9 `9 y! U# B
問題一 # 指令表 就是說圖6 吧 ?
8 b% j0 s  L7 {, ]) r9 l6 S# [4 H) U
, o! H' u( W6 B7 x問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13; R2 o9 T) ~; |( t2 |1 J$ B: ]

# V. ^# e! {; I! q  S: B0x13 不是應解作 數值 減13 嗎 ?
4 S9 E$ H- Q- [' E
# X' P! i  A. ~1 W3 F1 d& a* ~/ N從何知道 0662+(X)=...數值減1
% q" U& B7 w: g( W# F: ~; G6 d

7 O! y/ s2 j! i9 n+ M3 N" L8 W6 Z2 A[0662]是地址,0x13是该地址的数值
9 Z1 S: ?! t0 X" m0 A1 P' x& \/ |& O
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X
5 S4 f5 b% _# a9 K
4 h  G' J/ S! ~, A0 p* f: c7 ~
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))7 z0 F8 M1 q; r+ n# N
9 x( f! q8 Y2 k  M) Y- M. J: m$ [
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?+ I) H& q+ E2 P7 l" o9 j
0 C# b, E) z2 Z* C) P, z
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA

; r, k2 V9 X, e* {' x% P
, {5 T6 o0 V, Q/ v, d- Y$ x3 n) yLDA是读,STA是写
3 F+ Q+ O; ?* Q) }* T. r9 z
& m; Y; q$ }& L0 k& zDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了) z# F3 }, N2 j
5 l5 b- }; a3 e9 ?
BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转& ?) b: T  @. N* X

7 \# `" b3 s* I* NAND是逻辑运算指令; t+ V1 r: P- e1 Z. k
' X5 T: S; r9 v1 Y
请看《6502汇编大奥秘》" _0 x+ Q+ o; P  d) i5 ~

- q) y# m9 p+ H* ]: H: T9 i5 f
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))" U9 R: o. `$ K; l& i
; }4 [) q! {+ l) _
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?6 Z3 l! T7 c. B3 ]: Q9 e
9 w$ q0 S8 Z) j% ]6 U: A2 ~
問題二 # 尋區方式 即是什麼 ?

) C+ f2 q+ f/ A) Q3 k6 W' J
: N% d7 T) h3 B我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?
. ?1 y4 l3 o. V6 Y7 ^/ r
: D6 a* O7 [& {3 k寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
4 {! R! t8 T( c* B+ C. H
疾风之狼 发表于 2014-7-23 19:44
2 V1 }+ G/ G( J7 E* T% K2 h7 a5 ^[0662]是地址,0x13是该地址的数值$ K, Z+ X  @. }( y( \

1 a+ U2 i. E* O: r/ X2 LDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
+ p6 A" s4 B0 }% C* t

+ X8 W0 S7 h! P4 L2 {+ A  Q5 \/ o先感謝 管理員 疾風之狼 的回覆 {:4_118:}
. y: w  ]; T: i2 m
. e; b, h8 c9 v( S/ H* N0 b好像有些明, 又好像有些不明/ q" T0 s# E9 o9 G
於圖6 下面的 [0662] - - =0x13
0 _" E- b. _# w2 }$ Q& c大大說  [0662]是地址,  0x13是该地址的数值8 i' l1 u& V, p/ H& O2 P5 s: S
9 {7 r2 b, c: [* v6 N
我先愚昧簡單的想:
! {* I( K. ]$ ~(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫
0 y2 s6 Q8 ]. z(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 , Q) a4 n7 ]( [3 b) S5 V: D: _
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的
& p' \* F" S3 S, Y0 Q- p
5 k3 W9 m7 j$ P3 U遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
. Q# |' H" Z4 ?  E, v
0 |3 A1 D. K  {9 q+ v4 y' C  k' E5 E------------------------------------------------------------------------------------------------. p# v6 H$ }1 `+ ~7 Y

+ v! k7 B4 ~( X6 o2 h9 _跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC' L* T" G) r/ @3 E3 [* P8 x4 r
DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以" g# Q' a/ o& @/ q/ ?' Q
LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A & c, X+ o  n7 n8 R+ P$ ]
/ x! Y! H% R, Y8 b1 [2 Q" P- t
雖然 讀入至 寄存器A 這方面 還想不通, 2 G2 z# R* q9 X/ c. |/ g
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了
5 p. R" t, _6 P& \
. C1 w" u) ?  o- h% _  i% c! V2 W+ d% c
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用! c4 r9 \" h. M2 z1 G
+ _1 k* G7 T; D$ j- t0 w
=================================================5 a/ N0 A- q1 z) ~
  i$ ~$ E0 V/ ~! n+ T# E
說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :, b5 \" _4 w$ H, s, @1 H+ ?, j

3 t: |( g& H2 I& S5 Q( h一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字,
* |4 B' ]0 |$ E* W" p二 : 跟著 右按 選 以簡體模式開啟$ t, z# v$ j! h' _" f1 p0 w
      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟
8 F, A! z8 u( U) d% Y) Y+ h* |/ s- V

7 e! M: i0 u. ?" r. X3 s- ]1 X* Y( m5 j3 p, Z# X+ o) I! e

! x6 z8 F6 Q5 P, `7 w( M8 W% c5 ?
8 D/ b5 D4 ?9 [: Q0 o2 I% z7 O+ M) X8 K' @0 t
# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了
/ v2 W8 ]3 l# `/ Y       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44
) l8 d6 a# G" S9 a8 v( j# n% T, P[0662]是地址,0x13是该地址的数值/ e8 D; G+ \! Y" E7 ?/ m* }& }
' h6 i9 \0 z: k" L. `" W, }
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
0 o! ~' Z7 ~0 \) q0 D% D2 j0 i
今天又領悟到多一件事 {:4_98:}
/ z4 X* S3 b( p" `& X; ~' [. B8 A# {) p+ {" g# M% g4 m
於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白/ E; W; v: Z" q- Z. Y" y5 |
現在又想通明了少少
7 d$ n( s3 r7 m6 q---------------------------------------------------------------------------------------------
- [- l( ]( |* o1 [5 z: m' c( x! g( K& H' K+ a+ y
中間寫著 :5 h6 A4 Z: D% ~) s0 T
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A0 b# f+ T* f1 f; p. {9 U  K7 @6 w
起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?, u  T$ ], {( ~2 v0 V) u$ C1 l. [/ l
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ?
. f5 L. B& X( N$ d. `; e9 F: J  u; J8 D/ F
原來又是 16進制 的因由
) h4 w% r$ C, `* p* S$ {- y" S- p8 u( Y6 B
在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
1 J, y& d3 U3 g& `0 `. R即是說 9 之後 不是 10, 是 A
- A, W0 I3 p* W  P$ W- {: B4 A
9 y6 h. m4 `. x1 r所以 1234+6 不是=1240* O, A5 s( R( w4 G; ~! L
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
  E1 a* y: I8 [: ]  M所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
- r2 w/ }  o( x; ?2 B( T1 ?  v * \, A' Z/ E6 x6 H
==========================================& [5 Z! v$ ~% ^: |

  a4 G8 G% w) B3 d& a- v( J其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了2 z! k6 s; h, T( I. Z# V5 n) f
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝% p5 ^* |/ I$ p/ e  p& M
0 L, V- V7 N; m( @6 Z
其實研究如何修改遊戲, 真的是非常困難, 且非常耗時
; O8 w& m+ \, k! E& g我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改- z6 X% V- s2 c5 O$ v  c
- Q5 J; m* s! k$ {+ ^7 Z7 O* K
说白了
! n, R9 I1 X. M: {$ p- Y) Z% W1 j修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 8 Y2 ?' N0 L2 e7 X" G
疾风之狼 发表于 2014-7-23 19:44" a' z6 s4 q: b( x/ s) ~& N* S
[0662]是地址,0x13是该地址的数值
+ C, f2 M8 q' Z4 ?6 A: L8 G, ?: m6 H2 c8 c  v
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
( T# x3 u0 M% N

! }7 g0 Q" t6 ~, x" h! H2 w) F終於成功修改了 赤影戰士 受攻擊不減血. c; I$ W: z# ]( y0 P. T
+ |5 w% C; [% q9 h7 }, I/ a2 \

! U& p7 E3 w  X) k( B+ y; C
: D9 P* X8 ^' J1 L6 _  F今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了
9 v$ h# e3 Y: B/ A我曾試把此方法 套入其他遊戲去修改
% f# s- `  g# Q: ]# Y' W2 ~但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型
8 x6 `! L: v7 S/ Z2 s所以都不成功呢( i; d* ?) Q( R+ `% g
最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-9-14 12:53 , Processed in 1.083984 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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