设为首页收藏本站

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑 : ~0 c0 q8 R" L8 ]  h7 G
, ]) G5 Z6 S+ P* e  A6 h+ E
在此先感謝 管理員 疾風之狼 以下帖子的分享
! d2 K3 e1 Y, j* x. xhttp://www.emu618.org/thread-21186-1-1.html
7 ]* i; d0 C5 b+ k7 B0 b* w; q$ F: c/ B  J1 \2 ^# c* }: w
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了  e+ x9 z9 _5 p/ U& R* P0 W
成功一刻, 真是興奮莫名
# u. y8 Q. ?# w  Y- u6 X% P4 b, u- [& K, r) ?4 \

0 U" N7 y8 Y1 w; H" z, g
: \+ H, i4 @+ u' k- R& _; z( W; L
  T; ]2 d6 n) [0 f不過也只是 完全 跟著指示, 過程中還是有很多疑問,
2 v! B# L! O& A8 h) c* C% |如不解開, 那麼修改 也只是 局限於 此遊戲
; O+ Q# t1 P. ^1 t, A; ]
& S* I1 B) G' V/ w2 G9 S===============================
! {9 S$ r+ l" e$ v: W( q. k- ^6 D7 y7 U% X
圖6 後 的一段文字還是看不懂
1 y& @' O$ [9 ~; w) d  W' v% c  k# Q5 d" b0 w1 G
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))9 [9 I" S" u2 M- m0 d8 ?
問題一 # 指令表 就是說圖6 吧 ?
; V8 S4 u+ v% U* V& o* ~: h
0 O! ]8 Z, P# F3 H- _" m問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
# }; f8 p" F" f4 d+ I7 P, n                0x13 不是應解作 數值 減13 嗎 ?
, H4 z7 V1 _; b  ^                從何知道 0662+(X)=...數值減1      ; m7 Z; j, t2 V3 s$ J$ [  D: @
  w1 z7 u9 u- `0 F4 M# ?
-----------------------------------------------------------------------------------
7 p* _# y& [6 z[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
. l/ Z# G2 o' T) W問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?8 M" V& z1 w! C: z! Y* e/ I+ _
               
8 t, z  V: r; M& f問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
! R! _, ]' I/ w( |
/ S4 _9 ?- T1 W0 O4 \* d( A8 y/ R/ l: e- u
-----------------------------------------------------------------------------------
. o5 i( H& e& c1 c  }7 z! w% F[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
( Q8 o* @3 |3 v( U7 e8 h" P問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?/ E( d  `: I0 f1 M

6 X3 A9 [, b7 ?問題二 # 尋區方式 即是什麼 ?
, C+ X& l" }2 D3 H0 P! z; d6 Q. x. P" @& z4 w, ~' A" T
% D8 K: O" z! c: z
其實還有其他問題的, 不過一次不問太多了
" U6 t' i" ^5 X3 Z9 R4 J0 p在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的' n4 P7 \" j: G+ s) \* T! ^
就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑
5 l7 J. s+ k% f: \  B. O
紫龙666 发表于 2014-7-23 15:22
% p! R' I( |) c0 v$ o" a% Y! u你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。

. w2 K8 Q" }4 n. ~
9 |5 k" e( l+ }% Y& f先感謝 紫龍666 的回覆  {:4_118:} 7 e7 O% l8 @2 ?% T
6 U" b7 [" u# n7 T
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘. |' Z$ g/ D0 S" y, I4 D
http://www.emu618.org/thread-20393-1-1.html  ?8 o, j1 \* l% F& H5 R3 y' L* {
5 O- I: E& p" z6 u2 |4 ^) {
下載解壓後 得到一個檔 8 R+ X$ E! c8 L0 k4 ], o0 _4 m
5 x  b! @0 f, J" x- {
2 q% F5 R( o" Z9 c
但我卻開不到這個檔, 顯示(無法開啟檔案)
# O, T( u0 Q! k% R  B% N1 P愚昧請問一下   6052汇编大奥秘 是否 一個文字檔
7 S' `' Y2 }, t* a) M! Z此檔有很多文章在內 嗎 ?

点评

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

使用道具 举报

签到天数: 2053 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))/ c0 p1 h; \: v8 ~) P( g. p+ Y( ?
9 W" l  ?9 l4 J& w6 S" y
問題一 # 指令表 就是說圖6 吧 ?
) k' n% @% d6 j  q- O1 ~
8 n7 w5 s/ L0 P8 n3 C問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
2 M( ]7 t  x3 \6 `) T! g& n6 X+ M' x
' j& t. D& ]; D, j0x13 不是應解作 數值 減13 嗎 ?   z+ E! Y5 D, B- C% ?" D( O# h  P  Y" S

, I4 j% @# J9 J) [, \從何知道 0662+(X)=...數值減1
7 t. m7 G4 |4 c) E6 ~* t5 s+ t

& V! @, Z* s9 `* k6 i7 b  b4 A3 L[0662]是地址,0x13是该地址的数值. L- z: l6 K5 H
; F7 H" N6 ?/ l% Q
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X
- i8 v/ S7 P- X# T& ^2 N, I% U, ?- d& }6 P8 H( [) t# p
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
" H" c7 f7 e; @/ o- Z. s% o4 {  U$ q
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
) l  V. ]. a. W' g+ g+ P0 d2 j. P
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA

4 E, C, L0 U" ?2 p3 k& c0 V# M& `, q8 Z  A6 t9 Y; k
LDA是读,STA是写* a/ V. H& ]; h0 `1 g

  `( X0 D5 [0 Q1 m( V) W3 DDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了( P" {: `6 X  W
* C- O' }5 X/ j2 H- G5 i# s
BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转
  E) O) Q, }7 z  {5 H) x% v- }) n+ i- l2 ^0 i
AND是逻辑运算指令
* c# Y  m5 @4 S0 E1 Z
" ^7 v  Y& T! u" f! N请看《6502汇编大奥秘》
9 |# B. b( M4 e" U& {4 D2 |
. N. `* \4 [, H/ i. e
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
0 b0 y! T0 H0 j3 M. y% D' g5 ]1 c+ ^! F0 y4 T, n
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
5 F( J% h, [! d$ {  m$ u$ B: {6 `& I8 ~. F/ _: U5 v- O
問題二 # 尋區方式 即是什麼 ?
5 e# f/ A/ S0 b  ^& q
2 z' U' q) N: I* x' ^- \
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?
$ T4 K, ?  X8 k
5 |" z, z- V9 {! ]寻区方式请看《6502汇编大奥秘》
回复

使用道具 举报

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
9 z+ b3 m- |" ]9 l6 m1 _
疾风之狼 发表于 2014-7-23 19:44
; e( o, U* a) `[0662]是地址,0x13是该地址的数值
  E" s. V; Z7 D* ]2 X; U; y, G" w4 @1 u0 l3 K5 r( J
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
$ A4 S; a/ O) n+ B; B" K( j  ?- G
- H1 ~" H/ {5 E" q
先感謝 管理員 疾風之狼 的回覆 {:4_118:}
' ?0 q6 q, E7 [1 X  {+ d7 `
6 b! ~0 J$ `  }& H好像有些明, 又好像有些不明
. m1 W$ ]( L1 g0 V/ B6 T於圖6 下面的 [0662] - - =0x13& u8 X# N1 U/ }0 f1 C
大大說  [0662]是地址,  0x13是该地址的数值
' T) C  t* d* P9 h) a1 Y9 n
$ w! E  l# Z$ {. }6 A3 _我先愚昧簡單的想:
2 E( s# A. F) ?" V5 {- X(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫
/ |6 @( k& [1 C* }  ?(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢
/ D! I2 c% J4 ]  \6 t2 b                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的
" s  K. h/ f* ]! G
; z3 s3 j- d+ B/ g1 o+ `, Y遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19$ \" y: K7 Q! f# B, I' J
2 }8 X. I* `" \2 w/ _6 V
------------------------------------------------------------------------------------------------
1 w/ A3 A2 Q3 L4 H, [, S, f% E# e5 O1 B) G4 ^8 M- j' s
跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC
- z, c$ K3 m: }' KDEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以9 N3 _; C! i0 T
LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A
" H/ n! p4 {' e$ `  Q7 O# a2 i4 f
* O) L) ?2 w) n0 l/ L雖然 讀入至 寄存器A 這方面 還想不通, & @! F4 p9 A7 r9 W7 B9 l
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了 / f7 X$ T* C" N0 z- o" S+ P; ]
5 E6 D# j$ P4 z( r" @$ O% \$ Q
7 t. A+ a& p; G+ V
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用3 j3 ]) {& Y3 s, i% m) G
0 Y: S$ b$ _! [" p* M
=================================================
% Y" D4 j4 n" i, g" H
1 r  t1 R6 q8 d- q/ u; B5 `/ R說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :, G) M; J( J; z) M# {$ n; l& t$ m
" s1 R/ D5 v$ `$ E. v- t
一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字, $ m1 n1 X+ K5 |9 D) f7 r9 _0 g8 @% }
二 : 跟著 右按 選 以簡體模式開啟
; |6 z- t; [9 ~. [" [8 R      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟
6 W- c2 l" K. o8 ?: \6 }( B
8 R: y0 A: M; J- j2 U8 X5 E( O

9 U9 m, W  n1 w0 z/ `) `+ ?+ s! I2 j  S$ X1 U

' \4 ^' ?1 v/ R+ P* n$ J( R( W: i" J, I& Y1 M* s2 j
# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了8 T  }/ @% f' F/ C7 e1 ^+ v
       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜
回复

使用道具 举报

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44
  S! |1 V5 c8 V8 G[0662]是地址,0x13是该地址的数值
; Y9 a; k# Y: N* x
& `, e+ c* r: P  u4 ]DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
0 j. o8 r( X) f  ]4 F! S
今天又領悟到多一件事 {:4_98:}
' e6 B9 J: e' L( |
" G8 }4 w) k2 m) d% H於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白9 y  Z# b9 G3 D- m. n1 w
現在又想通明了少少8 b, f' O# u) n4 ~) V0 z, S
---------------------------------------------------------------------------------------------9 K1 I% b5 b( h: R# H2 B' }

9 C0 z. L" h2 i: K' k' T0 G中間寫著 :
8 E0 q5 y2 p" Z0 _舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A
& \4 Q; d, H. g起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?% w9 h& y& N2 }) o' E: a- W! z
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ?
7 w/ {2 P0 B& T4 q$ N* N. R  m
原來又是 16進制 的因由' T1 Z- U- {! e6 M0 Q" h

4 A7 {% k  L) S! O, _0 J- h在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F3 F6 I( p7 O* g# l2 K5 H9 p
即是說 9 之後 不是 10, 是 A) M2 h/ b- w& ]. I' ^1 F
7 v2 u; L/ L8 x. H* ^- r
所以 1234+6 不是=12402 e+ V6 \0 a# }1 v
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
; _' A! o$ n1 W所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
* b0 f  `2 L4 l' f   F. y5 |% j3 g( H0 L
==========================================4 I' D7 c8 \6 L7 M
. Y: ~4 @9 j" G* k
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了9 q$ j2 V# _9 d+ j- u& I) G. j- m
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝+ u; f) h* d# D# F/ p
/ f" P' F, C1 [: U7 f' E3 [9 D
其實研究如何修改遊戲, 真的是非常困難, 且非常耗時+ A7 C$ g& G8 b  [; u
我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜
回复

使用道具 举报

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
  r- @2 g! y8 Z7 w* X1 R& E' Z4 E& j: r
/ e. t3 X+ x' e  k! B3 M9 ^  u& }7 Y说白了
$ C2 `' B* V% ~/ H% R修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

使用道具 举报

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 & ^* f* Z5 b4 e6 m
疾风之狼 发表于 2014-7-23 19:44( ?% L& N- \! R$ s/ a3 @
[0662]是地址,0x13是该地址的数值
- V; E1 d+ ^) Q: w( b5 O8 H0 a7 L7 o% w6 H
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
5 p& S5 ?& I  t0 {4 Y0 U9 A

" {5 p8 @5 C9 ^% J. y4 [終於成功修改了 赤影戰士 受攻擊不減血2 N6 u7 U8 l6 I+ m3 Q
1 L( @+ N7 ]# {& t& _

: \* i( n5 o9 s/ [& F0 z; s
" i% I  C" S4 [; ?9 V4 A! O* n今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了
) H" `$ i' U  y9 c我曾試把此方法 套入其他遊戲去修改# |- j  ]1 Q0 n" J$ ^3 D5 m
但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型8 G9 r* U, R/ ^
所以都不成功呢
& z5 N. T8 V& f+ K5 C5 J  A最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-26 14:04

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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