设为首页收藏本站

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
) T. z' j% C) o& L8 ?+ D
! A2 c. D7 g% G: L在此先感謝 管理員 疾風之狼 以下帖子的分享# C9 X' e3 q9 W1 F6 G
http://www.emu618.org/thread-21186-1-1.html
7 M# A- S- h  J+ Y2 T* [
# |- {1 z) R" a我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了! A% ^' E0 J" b
成功一刻, 真是興奮莫名
! M: W- s% D, Z; d* a* H7 @! c# ]: S9 Z' j& I( ?4 L! x# m, V

; G$ S' K9 E5 v# q; R# l/ [. [$ Z% J 1 P# w( E' r% x6 F# C; [

) w' V: O% U: g不過也只是 完全 跟著指示, 過程中還是有很多疑問,, [# D& I8 E, I! k0 P- H
如不解開, 那麼修改 也只是 局限於 此遊戲* t( Z( m) n: F  ~* n- s: h

7 T5 O5 `, x! s5 F2 S( O===============================
4 E: w% Z( S" a& d
; e: i6 y4 H! [  D) N' z2 B圖6 後 的一段文字還是看不懂! B, [. b/ s% K( h. y

' m" D! M) A, g  e& n[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))) W+ l2 n. A5 h) i4 ]* v5 K
問題一 # 指令表 就是說圖6 吧 ?& w1 P4 N0 |! @- U& k1 A

- k% s* d! c$ U" V& O問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
: P& n( o: \- r. X# B: [# _                0x13 不是應解作 數值 減13 嗎 ? 2 G3 u6 E7 }( r
                從何知道 0662+(X)=...數值減1      
5 j: z& M5 M* E) M$ U  g9 ]. ~7 Q  r' X7 K
-----------------------------------------------------------------------------------3 W4 b3 F0 R* E' r5 J
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))  r4 f0 i$ t2 o8 a& ?9 K2 {# M) c
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
! U4 W1 x/ [* \. ~" F. D                / K  c, c: d3 l& s" K
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
" f2 K; |+ S/ ~6 H) B: Q- w$ W8 f9 u! I. `
$ X4 U2 W( C# L
-----------------------------------------------------------------------------------+ T0 z- \2 \8 x  r. _- w+ k
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))" m' V9 \. `4 B3 P1 ~( ?' }3 {
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
% w2 _, V# v  N9 R$ @. O$ O
/ e! C4 ?- ?  a3 O! K% D' D9 t5 T0 g問題二 # 尋區方式 即是什麼 ?
) W  _+ v; o: Q3 y  ?' b! V$ @5 l4 w  a- j
- n4 p* V$ f3 `) z  q
其實還有其他問題的, 不過一次不問太多了
8 g# d3 M# X0 H) L4 ~在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的9 s4 G/ S; W& @& G" s2 `
就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑
9 f4 {7 W2 s( l# g
紫龙666 发表于 2014-7-23 15:223 G& W* c6 C/ C4 [  M5 l
你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。
0 J+ |6 [2 L/ \) K# L
+ ?9 H  ^+ X# A) p5 E3 `  s
先感謝 紫龍666 的回覆  {:4_118:} / |6 i. c% E8 q8 P+ c! o
# ^, o$ F: z( e0 D$ i2 [
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘0 u$ Z! [$ D" w( l) T! ~
http://www.emu618.org/thread-20393-1-1.html
' \6 }6 O% ?% |. n/ P0 L
" ]0 p6 M; a$ k  l/ m4 S0 P下載解壓後 得到一個檔
1 D9 U% D8 y& D) y1 e4 ]; ^8 ~3 W0 N; n2 i& D
4 \& d4 d$ W- P
但我卻開不到這個檔, 顯示(無法開啟檔案)
) A0 m  e# G! b愚昧請問一下   6052汇编大奥秘 是否 一個文字檔
+ }; v# `5 F# S' l& K9 p5 Y此檔有很多文章在內 嗎 ?

点评

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

使用道具 举报

签到天数: 1993 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
! |2 ^3 q; T6 w5 m  q! R* ^& P! p) i* V. A. Q3 X# C: g
問題一 # 指令表 就是說圖6 吧 ?
3 ~( T3 c  }9 t/ Q! [/ S" d( J/ e; g; Z
問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
  c3 q. a& A5 M1 p
9 y- _; m2 C+ `0 w0x13 不是應解作 數值 減13 嗎 ?
3 z2 |- x/ h, X5 s& d8 M  u$ {# x# |7 M/ Z% ]5 g/ g4 ?
從何知道 0662+(X)=...數值減1

: ^0 }, U( z  `, p5 s5 k
/ p. K; H: L$ e# K/ f# u- o- w[0662]是地址,0x13是该地址的数值8 g4 I8 j( V0 [% Z8 W( C/ r
' E% ]+ g2 Z0 s4 q+ M* v7 |
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X
* L$ ^' T3 p4 T0 d4 {; T4 }. I1 _
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))" T$ f! r0 b% f5 T, U" g- r
/ a3 m( S+ |" y2 D/ [1 d2 y
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?2 j- j6 N- j& m# P  X, F, t
1 k2 |+ v$ V5 \6 ]7 U/ B; ]
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA

- U; I6 b, w5 t. s. }$ U3 k% H) Q' N0 K6 u
LDA是读,STA是写
( d. O* u* k- V1 y
# D. U* u% @7 c  V# s3 n2 R* S3 n7 mDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了4 C! E$ W! f) u4 y
! [+ C7 H" p) \0 i" L7 f8 J
BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转
6 d3 m, L% x7 j! ?: o
# q) a8 Y; y3 X/ MAND是逻辑运算指令
5 T9 `$ `6 `0 g1 e" B  f& A0 j- o& O! }$ t) I' a2 M; L
请看《6502汇编大奥秘》
" c: m) ~! Q8 G) {9 O- Q: V- `+ b9 F. J! N# Z
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
. i5 x6 g0 G/ p$ t# e. d1 o  a. R6 l, g+ ?1 ^) C
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
9 R0 o& ]4 g4 l0 V: F
# p" Y/ E- _4 p( g  f% `問題二 # 尋區方式 即是什麼 ?
) U% O, M" a% m3 ^7 [
* S3 N# x9 L6 q0 g4 J
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?
+ A$ _& _8 L3 F0 R1 d! p; F+ M$ g' O% k5 |. g, F2 Y' S
寻区方式请看《6502汇编大奥秘》
回复

使用道具 举报

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 $ M& K3 |* A/ y) F; Z- }: B
疾风之狼 发表于 2014-7-23 19:44; c$ ^& r( O! Q3 L/ f7 @
[0662]是地址,0x13是该地址的数值* R% P$ c. c$ Z% c
, f/ U5 m5 R0 E8 g2 n, S  q4 d
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

, T2 {! }% F" Y* }0 R
# {9 i- M, |. H2 D% ?先感謝 管理員 疾風之狼 的回覆 {:4_118:} / d! o1 {6 b/ c) F$ Y
+ F# E( M* p& b" d+ B
好像有些明, 又好像有些不明8 ?7 o. u9 H1 N( V% H0 T  Q
於圖6 下面的 [0662] - - =0x13
7 Z" U7 {4 B' Y' D& |. W# Z大大說  [0662]是地址,  0x13是该地址的数值" j! [/ h: u5 J/ ^: R
7 g/ @2 d/ ]- L" r6 A2 I( X
我先愚昧簡單的想: 8 [' S! A, n6 p0 x; w6 r( A& C
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫& P" y, i8 r7 C7 E( F4 t
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 / l4 f- x8 n8 O/ S8 U
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的3 c5 j& P( D/ X/ n# H$ ]# n. Q+ a4 C

8 a6 k0 I# u: a6 B遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
7 _2 ?% X) Y8 W% g  s6 U# ?) E* `( ?7 x
------------------------------------------------------------------------------------------------2 m# s2 d: Q! y& W5 ]2 @6 o, _

" {# h! K: i. b4 B. ?. i3 \跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC
1 t1 E/ `5 [' W( n9 @DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以
: V8 ?, c" G2 HLDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A 4 a( T; I. ^( H

6 S; `: h6 y" @" E雖然 讀入至 寄存器A 這方面 還想不通, 8 T2 f6 Q5 r7 R
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了 : r+ r- M) c+ g' f9 Y  u
) F, ^  }  A/ \. i4 }

" i' Y* ~+ e+ ^  z$ a/ G6 `. T) p# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用
# J  J1 o  U( X( L# d7 ?& u* X# g8 A% P5 y# U
=================================================9 Q! G& i. ~$ H7 S# w9 |, w
0 E3 A0 |8 a; o) I+ t+ F
說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :6 y, \0 }( M; V/ `

1 E- R- S$ E/ W一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字,
' {7 K: W1 R/ ^二 : 跟著 右按 選 以簡體模式開啟
/ c" z  t4 x: F* _6 q  E      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟" J1 f) o) N. W  N
' ]3 A8 [, Z$ W( Z! q8 E
$ \4 X3 l9 @, l: J

; O$ R; n/ A% ]; h9 {! S  {# G1 D% H' ]" ~' K5 A0 g  @
; q8 I: f0 e- t$ `# t
1 r6 y) J5 L3 |$ c* k
# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了
/ S3 Y$ e1 n8 s  n) \2 k# b       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜
回复

使用道具 举报

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44+ t1 U6 g3 P2 n9 Z# G/ F. Z
[0662]是地址,0x13是该地址的数值
9 \" R/ f4 l  t$ Q2 f: }  @! r$ D" V, I7 T- |# W) e
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

6 X# v) M7 M  F* L& o今天又領悟到多一件事 {:4_98:} : g2 G: _; o2 D8 d

5 w* _- v0 y, x. c1 k  g) z於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白
0 j" X+ K. x8 t; `6 ~& K  f* O( h. }現在又想通明了少少9 a; p$ ]" P2 S/ S3 j" D
---------------------------------------------------------------------------------------------
. ?" }: }$ |3 p2 s' z% Z1 H1 k7 r4 W
中間寫著 :* D1 ]5 d/ D6 N( }8 |
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A
# x( c- Q1 V8 k8 }* I起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?
& |# @( Y8 M1 H或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ? ( ?+ s) n  C- Z, @, {
! F& |) B, p2 k7 X+ o) v, ^% o
原來又是 16進制 的因由- f( h& C/ b0 B) ~

$ H: W% ], j3 o在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
5 N( q2 n2 Q( [( b) g" R. I; v" K即是說 9 之後 不是 10, 是 A
7 u7 N8 E5 v' r5 @: X
8 P/ W2 w0 Y/ e& x所以 1234+6 不是=1240! E8 S7 X1 d: C! \# _
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
- Y  n& v7 U3 O7 }2 o所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  4 M- G$ b" q- F$ [" o1 ?
6 _' T" m4 C4 M
==========================================
9 U4 i3 A1 \. b" m' y1 J( W! n2 ~. [  K; w6 o
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了
2 n9 m  r* d3 w& s9 M除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝5 E/ \6 @" n" D
' N! }0 B+ h1 |# k$ ]
其實研究如何修改遊戲, 真的是非常困難, 且非常耗時3 I- g2 U4 M6 r  s) v- w. X5 z
我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜
回复

使用道具 举报

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
. {2 o. v; B& s& _% O2 _8 o" [
说白了  }: I$ s$ ?. A3 F
修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

使用道具 举报

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 9 K0 V3 W# y  G4 s; ]5 n
疾风之狼 发表于 2014-7-23 19:44. {% ^$ P5 e2 V2 P: ?7 t
[0662]是地址,0x13是该地址的数值
, _$ n1 F$ S9 C9 s6 i
& _* A, l/ d5 r% p1 nDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

% X# v8 m5 i: B/ p$ ~0 ^& ?% E0 C; M* w( ^: j7 T- J& d
終於成功修改了 赤影戰士 受攻擊不減血
2 \! {$ e' Y2 U* X, W3 l. F( W( c0 S' A$ l  R# D1 o

" @  p' q* x: p6 J  _
5 L! X0 i0 I& _$ H+ u  ~/ M今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了
/ K- T5 D/ U- _& M- j我曾試把此方法 套入其他遊戲去修改
4 Y+ w+ _3 ^# w8 c. |" ~) k* i但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型& v+ `# z5 F$ o0 a# Q" h- P9 T
所以都不成功呢
* r: c5 ?! G/ V' }3 ]: j最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-26 16:36

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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