设为首页收藏本站

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
  ?2 Y8 f  v) }1 L  Y) k* c- B' N2 d7 A: ]3 p
在此先感謝 管理員 疾風之狼 以下帖子的分享
& Y# s( u$ B, b! U) [' L6 n, xhttp://www.emu618.org/thread-21186-1-1.html. f1 c  f( W: m3 u6 i

3 q7 ?0 C/ b) j4 H我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了% C. b" Z& ?8 d" m
成功一刻, 真是興奮莫名& U8 G/ Y3 |3 X! @7 u. G
( u1 e0 L% f& Y, `& v8 P- i+ g
4 ~8 x8 l3 F4 @  C
( g' j7 u( W' j. F+ M
- E' V, E7 S' ?9 E6 \' d. m3 [, u/ p
不過也只是 完全 跟著指示, 過程中還是有很多疑問,
2 i- h/ v( d: U, s, Y如不解開, 那麼修改 也只是 局限於 此遊戲
$ _4 G6 `9 J, `* V- I5 i! _) j3 Z8 |' o! d% I# a) _9 j
===============================% m, a) s) ?% ?( N) M1 A$ u1 R

/ w7 J: l  k' F1 @, x7 I圖6 後 的一段文字還是看不懂8 m' s. t/ S: q5 y  a. {
& \& \) Z. I% R5 k- H7 ^7 ?2 ]! K+ G
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
* n8 l( p6 R* y" A' ^# @! ?- t5 T' z問題一 # 指令表 就是說圖6 吧 ?% a/ F+ X( j: ~9 a7 T
8 {* J+ K# }0 ~8 K/ [9 I
問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
* I/ u) }3 q8 a3 ~                0x13 不是應解作 數值 減13 嗎 ?
9 y4 e7 i7 ?# u                從何知道 0662+(X)=...數值減1      
1 S, F8 \  Y. e$ e9 d& G# Y( m& |4 C/ r8 N7 j0 {: h% p
-----------------------------------------------------------------------------------0 T( l  d+ [5 }  K7 B
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))1 E( ~. u( P1 q  n% D1 u# F
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?/ S+ v' M0 U) q# N% f- M1 J
                $ U% x" C+ ]: N7 N: A# N- F
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
. p. B9 q- j2 t
8 f5 E- b8 z& G% }8 R! O% Y3 z, }# I  p' ^0 x- o% {4 E
-----------------------------------------------------------------------------------
$ b7 m  C  ~: A" `3 i[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
" z. ^7 l7 [5 ?! l問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?7 B- p/ V; [, t: p

; I5 I. f, m0 @1 f- c問題二 # 尋區方式 即是什麼 ?9 k# H7 d. q5 Q, y) X5 t' ?
7 @) m& N/ k3 |# h" j

7 B# V9 Z' _# R% t  e8 h: [其實還有其他問題的, 不過一次不問太多了  {/ b1 V( P4 o8 W3 p, U
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的: l  k8 j7 x$ G# Y6 `
就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑
' u/ O7 h  Z' y5 `9 C+ A
紫龙666 发表于 2014-7-23 15:22$ M3 ^% c* e8 ]3 P" L
你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。

6 N# N- g% ]6 }: m6 O+ }) {% B; ]" h" V4 |. Z/ `5 ?5 H7 f
先感謝 紫龍666 的回覆  {:4_118:} 5 C6 V% ]: N9 w) |3 x' L
! L$ h9 ]% s. g, p7 i) a
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘6 W* {, E1 O( R7 B' s0 p
http://www.emu618.org/thread-20393-1-1.html
9 _+ ^+ r. C! x) n3 j0 |9 y. G
0 ?' Z" I( u. ]! ^3 {; r, G  W下載解壓後 得到一個檔 * u/ R, r! z( v( t* e" }

8 S4 N) n# _  A; |, X
& L7 l# M+ G% O! M* @但我卻開不到這個檔, 顯示(無法開啟檔案)/ T; U: G# e6 a+ \7 Q0 B
愚昧請問一下   6052汇编大奥秘 是否 一個文字檔 " K; ~1 N( s( j* u
此檔有很多文章在內 嗎 ?

点评

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

使用道具 举报

签到天数: 1993 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))/ O5 P1 D* A$ s  T- C7 R
3 o! {8 C4 }5 p7 d" @- m
問題一 # 指令表 就是說圖6 吧 ?' @2 Y: ~4 F' ]% Z
- h1 P. q9 c" ^9 j! A1 A
問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13" n/ \' z. R1 R) T
+ w3 [" ^* c) L' ^* ~
0x13 不是應解作 數值 減13 嗎 ? - z0 e/ E2 y5 `8 \+ n( C# \
6 \2 E( [8 e9 t3 \  H
從何知道 0662+(X)=...數值減1
; x8 x4 m  x% v+ W8 Q

) u) E7 L3 i. {9 X5 c4 F6 l[0662]是地址,0x13是该地址的数值* j2 K) p' }, k. y  Z# {

6 \8 z+ N6 l! G' e  u7 O8 [, qDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X# [  y% k3 ?% n: \
/ J7 ]5 Z+ X6 f* c; l  t
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
4 b' P6 j, y0 X0 }. U4 J) W$ K9 g  M& X" G0 x, U' a
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
$ Y, u0 a  M) M0 v0 o8 T3 v( r( {0 Q1 w( W# g2 o6 H
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA

0 p- ?2 y$ R8 i
' F, L, C" r: W8 E4 a* f8 SLDA是读,STA是写) {, n9 H- g( S0 l
3 M8 R  O" [0 u: w- Y/ |1 _. {
DEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了
" J- f2 ~/ K0 g+ S$ h% E9 [: h8 e2 p, j; q
BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转% F' \( D% w1 d7 C% U

" E. P. `! j9 oAND是逻辑运算指令2 q0 O7 [- g6 h9 P

6 F8 |3 o8 p7 E. ]请看《6502汇编大奥秘》
7 K- ~1 @% P+ J$ ^8 y' p+ e& a! u1 F  B% R8 r; I. ]( ]
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))) h) I) I" d- h$ p( u# M
8 B9 d# W) @; R
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?7 t* x2 \( H/ n6 B' }
& B4 C! O/ J/ ]+ m2 y! d
問題二 # 尋區方式 即是什麼 ?
7 [6 V" V6 X: O

: M1 q+ O/ P6 }$ D我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?
; b6 u5 f8 }$ _2 h+ o3 |4 X/ V8 O* i  Q% [) u
寻区方式请看《6502汇编大奥秘》
回复

使用道具 举报

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
* b( Q3 D6 Y" G6 w" b2 v) f
疾风之狼 发表于 2014-7-23 19:44+ a/ @. H( V* i) H. b' C' h+ S7 R
[0662]是地址,0x13是该地址的数值
  S( U5 s+ S% A% ^) t. h7 s( s& Y% I) |( V
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
6 \: j+ o7 l( w; f* }' d- S

2 @  D& K  w- b5 w先感謝 管理員 疾風之狼 的回覆 {:4_118:}
9 @* Z" r; G' p
9 Y4 R( x5 S0 R好像有些明, 又好像有些不明
7 X2 w. q2 v/ Z$ L於圖6 下面的 [0662] - - =0x13
; N- R7 ]$ A* k0 M1 \: b大大說  [0662]是地址,  0x13是该地址的数值) f/ x5 o+ e. M4 z

' B  j' [( P* q9 ]) v我先愚昧簡單的想: 5 u' Y0 p, n5 V% i' \3 `
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫9 g# n% _' ~8 H# W+ N
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢
3 ~9 `9 ]! q# `  }# z8 o5 a                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的
* [4 Q& b& K- r; }6 L% P
, M4 f% V- M. \: i' Q遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19) L. i/ S. a/ U8 z5 c: }7 i
$ d' f7 |+ c2 `5 z
------------------------------------------------------------------------------------------------6 N, I: n* j  t$ _2 j0 a( O

' e0 x( }4 w( o5 j- |: H跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC0 A' ]) V6 r, W& g2 a, f/ X8 ^
DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以6 O, g! n1 y3 N
LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A ' K9 k* F, h. \

/ o/ M' `  m$ {# Z雖然 讀入至 寄存器A 這方面 還想不通,
) f! \! n( j, V總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了 9 C6 w# @- v6 W

2 f. |' _/ _# {7 t6 w- k  t; D
! A( G6 D) z, a0 l# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用) d! q; @  N1 x
. i2 f) P$ ?3 x
=================================================$ q; Y5 r: `6 T- B+ O
1 [! W  {. D7 B1 [! w1 J
說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
5 [9 l6 ~6 ~% j0 \+ l+ B( s& |5 u4 a! s; u7 {, T& a
一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字,
; O5 A5 _1 B) y* L6 j二 : 跟著 右按 選 以簡體模式開啟
) l  Q" N3 \4 W8 T* X. g      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟# u2 R! g/ S5 v5 b/ C! ?
: h. m) G$ D0 A+ h1 {! A2 @: d
# i% O4 S! z- |( x9 {. a
5 B; P' j% X0 j) K
) A! P7 [! I3 A, b5 X8 j+ M  ^8 M
; C" T0 z5 w# b

2 W8 a( {( s8 T# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了  I/ i1 j, ?0 F2 @! w# w
       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜
回复

使用道具 举报

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:445 \' d1 @0 S; w0 E) w7 ^3 Z
[0662]是地址,0x13是该地址的数值; O2 n4 ^6 U: j! d4 @$ I9 z

) K; s% g2 D/ a4 ]+ zDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
$ P" a, L- n3 `' g2 i
今天又領悟到多一件事 {:4_98:} : H1 |4 e6 C3 a  Y9 ]
3 d/ A8 X' o) f3 u$ x7 ^8 Y( t6 @
於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白
3 I: W$ N! k: n' w現在又想通明了少少
% T0 r: w  d# c) z% ^, l" E# E2 B---------------------------------------------------------------------------------------------
8 v6 K1 [! t+ W8 u  h
* L0 X3 ?) x8 c: j" Z. r+ ]中間寫著 :
* w8 \7 H5 z% N( H) [1 R, V2 }舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A
6 L  k0 J9 j& g# P8 @起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?
8 h) l% H; M/ ?1 C或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ?
% S* R. M  J9 _- p- [/ u3 l; h
; Y. ]0 e6 y2 u7 T# q% D原來又是 16進制 的因由
# c8 l; E" x7 I
0 {6 }- p: f8 X5 i) N$ ^5 k在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
" V) T6 Q1 O# A4 _5 ~即是說 9 之後 不是 10, 是 A( c9 J2 ~( B( {, K2 a

% B4 @6 v2 {8 Q" o. W所以 1234+6 不是=12402 E* [1 q! x0 a, r2 L6 V
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
; V6 K: c. i6 D: A* T) p所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
' H3 f& F6 l" r7 }1 V& N: ~
9 G, i- B* E5 [! s* Q==========================================* w8 Q, }: A5 ?7 {
  D1 H0 ~  f' M. \- K7 M# K* ?
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了$ n6 l/ U+ ?1 k
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝, L' a: z/ l) t1 ]. Z/ C" D* C

1 }- [2 H/ Y( x- E- b2 u其實研究如何修改遊戲, 真的是非常困難, 且非常耗時
' v1 O4 V8 w$ G我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜
回复

使用道具 举报

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改! C+ `8 \+ z& q! O
3 Y$ s: a, _# D2 c: n9 T. T
说白了
, G2 L% \! h6 m修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

使用道具 举报

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
5 g9 z5 M! r/ N) M& w
疾风之狼 发表于 2014-7-23 19:44
4 k& |/ g$ O4 Z6 T7 Q0 v! a[0662]是地址,0x13是该地址的数值0 A; a  `7 Y6 d  d: z% k+ A1 [

, ^4 |  \5 h+ U. v4 HDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
* n3 {5 I4 j/ L1 O

. C. R+ Y* Z6 C. \; u" |  c) X終於成功修改了 赤影戰士 受攻擊不減血
' H0 k, M3 Z6 k+ ?6 l- _1 X- M( t
+ s$ ?- z4 d3 I& g4 O- ^% L$ {' d
/ C0 e' u; C% T/ `: p- B% F  F0 ]! f! W% F& G" c
今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了
  D' z6 Z1 O! L9 P我曾試把此方法 套入其他遊戲去修改4 r" Q( V$ ~9 J+ ~- D
但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型8 x) h* J: R+ z5 g, u6 _
所以都不成功呢2 Z) w" ?& _' d: Y3 @3 \+ q
最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-26 15:13

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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