EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑 9 k0 P) u9 [! l! j

* ~; r, }$ j( u, R& \# y在此先感謝 管理員 疾風之狼 以下帖子的分享
! `5 y) P1 D" Chttp://www.emu618.org/thread-21186-1-1.html
; O9 H0 c9 L$ |& p9 Q, ^5 ]5 V( B# \) y0 O4 v- l
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了
3 @, V  K9 N/ W: d成功一刻, 真是興奮莫名: J8 _+ O+ d. B% T. A+ w
( _5 k( S9 ^$ i
2 f- M" s* a; S5 D- n% u

7 r/ I0 e1 r' p; W& O5 l3 G
( u/ k  Z, S0 Z5 d% e) C不過也只是 完全 跟著指示, 過程中還是有很多疑問,
0 e0 ]. |+ A) P2 k如不解開, 那麼修改 也只是 局限於 此遊戲
! [3 H- O  r0 I9 W' @( P8 s
# V2 ]5 k. y2 @" p===============================
1 t5 G0 m; Q; \9 Z- N. R% [6 z
7 I9 e1 Y+ j$ c. H) @圖6 後 的一段文字還是看不懂0 I+ X$ [* w2 P

+ G( w2 Q% }! I3 q8 G  x[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))8 I" X( u1 x6 {6 B1 x& \, m
問題一 # 指令表 就是說圖6 吧 ?
+ M7 I+ M0 N2 t. f! g% W+ e: S: q& E  d6 G2 F9 N
問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
) z- T4 q% e" f3 Z% u1 M6 Q1 |' }- i% T+ @                0x13 不是應解作 數值 減13 嗎 ?
# s' e3 H, `- K2 K                從何知道 0662+(X)=...數值減1      # r: @/ a+ W3 l* i' R

" p  ?" z  I: E/ Z. s-----------------------------------------------------------------------------------
& X5 x1 q) }# w: {  z: O( B8 k[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))  [9 U7 M; [$ l5 g
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?7 Z0 ~2 I' k% m0 A3 _' U" h
               
8 r) D0 L: ^8 s% m! f* d" a2 x! K, E問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA8 V4 [1 i4 S7 n$ N! z
1 n4 |9 A& z3 ~1 e# Y

2 l" p* a* a: D* t( r6 y( |0 N-----------------------------------------------------------------------------------7 c0 @0 b. Z# \
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))# I5 W% {& e. J1 ~
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?2 @  e3 \0 X% G  M9 y# H
7 r$ p9 R" \$ m* X; r. N2 }' N
問題二 # 尋區方式 即是什麼 ?. f; `7 \' H: V& q; S
8 ^- C( h2 }# s# R# z6 J+ @

+ u7 q8 C3 Y& t" _' o其實還有其他問題的, 不過一次不問太多了
" w0 `) h! Q* T/ x- S/ W" G+ ^在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的
8 H8 T4 t, r. s& ~1 V5 i: x1 f就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑 * P# f. g* @$ _6 ^, J' }
紫龙666 发表于 2014-7-23 15:22: E0 w; u6 G  b0 t# O
你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。
, _8 D+ {" i& K& s* D

4 |! E2 j3 {' o先感謝 紫龍666 的回覆  {:4_118:} " a8 o* t0 X2 W, b; j# p

, v% m! J' o, c! A" c+ p& \3 C( G我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘- V5 d; X" k" \$ ^' B2 ~- I
http://www.emu618.org/thread-20393-1-1.html
" n7 f" G% z, o3 o9 v+ M' m& u" D3 o0 n# E
下載解壓後 得到一個檔
2 D: [8 o" b  f- p7 i$ I: z, M9 L; j" Q& Z0 S( C

8 u: z7 T% q+ M# q7 z0 P' F$ Y但我卻開不到這個檔, 顯示(無法開啟檔案)) Z- s* O7 }5 e5 [* @
愚昧請問一下   6052汇编大奥秘 是否 一個文字檔
/ G  n- q6 G4 Q! G4 Y此檔有很多文章在內 嗎 ?

点评

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

签到天数: 1769 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
  D2 b; P. m, G, H* A9 d
9 j9 L9 E5 _( T問題一 # 指令表 就是說圖6 吧 ?& `& L# l* s2 w* T5 d# M

9 v6 Y! c% G* k5 y% e6 g) O& V問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x137 V* O5 ~. e0 R

+ j7 Q. \# r' V  h0x13 不是應解作 數值 減13 嗎 ?
5 U4 U/ O4 Y7 m: y8 C+ `8 k6 z" w, w. V; I6 u! s
從何知道 0662+(X)=...數值減1

+ |! R* T. Z; y6 o& n0 \6 y4 `  V% b/ i6 \8 e/ _
[0662]是地址,0x13是该地址的数值
1 q7 q" R+ m7 s* f
  j, T! {4 z4 f' F0 fDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X
7 F: W8 ]7 A# Z) \( u$ ?9 _! F4 \0 C9 B! X
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
; D( k( {+ B2 C- w/ r$ ?2 `# s8 G/ f( z% @' K
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
2 ?$ L' N3 w( S& ?% v3 Y: s5 x( W9 s- N- P! p: p) m
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
0 q6 f# ]+ C+ d! v

' J4 c% u' L+ f$ NLDA是读,STA是写1 x8 Q- X' \8 \
" R; M4 l* q4 [0 k5 B
DEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了5 D+ O) P6 y# X8 Z( S8 A8 V( X- J
2 p' W" O6 g7 W, u3 J2 f4 S1 q
BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转
8 N0 V6 v5 f/ l" V3 g/ t
! M: T4 a3 G9 Y1 g" hAND是逻辑运算指令3 u: Q% B1 X3 `+ R

( m- S# n& Z5 t( m3 O请看《6502汇编大奥秘》: D9 M, r& f& a% {
! r: h- E. X8 e" g7 q
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
; g- F4 I  x7 D: `: K3 `: h3 ]  a6 I( w# ^+ O
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
  p1 d. p' v4 T
3 r) w# T. k) |7 z6 O問題二 # 尋區方式 即是什麼 ?
$ N! W9 y! U0 N. |

; s3 d- |% ~0 M3 m我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?
/ U* T8 ~: n7 i" ^
9 ^1 f+ X) p) U" p寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 1 V/ g2 B: r$ |+ ^! C/ k& I6 ^
疾风之狼 发表于 2014-7-23 19:44$ l- ?. Q+ {/ k
[0662]是地址,0x13是该地址的数值
( h; y) q9 w; d# h. D$ k. {. C9 h( ]8 s0 ^6 W8 d% t. j$ x. w
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

; J# u, V- I( o4 x3 d$ T8 w; P( d4 z7 ]/ H
先感謝 管理員 疾風之狼 的回覆 {:4_118:} 0 p# s3 {, v, A: m3 w9 p. k

  E( Q0 w- h, w9 ]0 }$ e# a好像有些明, 又好像有些不明2 a4 ?* s+ c. S+ {. x
於圖6 下面的 [0662] - - =0x13
1 Q# b0 W( e/ T& `大大說  [0662]是地址,  0x13是该地址的数值
/ x/ |, b1 A6 U, X9 x( o2 w! _2 Z  l# z& o3 A4 A
我先愚昧簡單的想:
5 f+ i( D+ L5 S' g5 x3 Q$ E(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫0 F  O( R* l3 m- R- [/ g" S
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 6 h  C( Z0 E' Q; p! [* [
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的8 n: I" a8 b" g4 u, Y2 i. e0 U. [

, T; D! ~" k/ X3 ]% o6 p8 i0 ~4 }% h4 X遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
4 D: t: s+ _8 q# P' s
* x# \5 Y, R2 R6 i5 E% X' S------------------------------------------------------------------------------------------------
5 v1 W. ?/ z5 E9 |: d; `- S" G
+ ^7 m; ~0 s) s5 p跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC" |! w+ E6 X  L( ~5 F2 E2 |3 K4 [
DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以! C& P5 {9 k- f
LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A 7 P; @( n4 O3 ^
( ^, X( K& L( g. Y7 }9 Q1 J. J
雖然 讀入至 寄存器A 這方面 還想不通,
, E4 {, ~$ H- B/ m1 Z) T總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了
$ n# a1 g- p# m, l/ x2 ?. [0 |
  f. j- B; {8 c& |
- s& [8 O. z8 w" P& t# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用
* z0 W6 E( M( T" y
5 s& H9 v/ V. e4 ?=================================================
% {; B# p% y' ?- W8 P% ^7 F3 B" x. _  h  }) E' n
說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :1 i2 h5 [7 U/ N9 t

/ D7 N5 Y8 S& z/ |8 I一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字,
! |" I+ s/ ^' s二 : 跟著 右按 選 以簡體模式開啟
( }! C: D3 p0 z& H" s      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟, K0 O( y7 e: ?# I  y- ~; y

  k- e$ Y4 t) P% E/ L5 N1 O9 r( B+ I$ W/ m3 |$ w
0 B# b7 ~$ @! i3 B1 y  c
3 o( u- z8 `9 r; l& k9 G

% r' U% s5 B& ^: S5 t, W8 V# a5 H1 \- i9 L9 H
# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了
/ \! k" U& [- \% f       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44
+ u6 u: [* `) Y/ x% B2 o1 O[0662]是地址,0x13是该地址的数值# Z6 Q- D1 S! b' i3 F/ R

$ i. C4 }9 y3 o, V$ W/ XDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

- O) G8 T# H: f8 O$ p( g今天又領悟到多一件事 {:4_98:}
0 }9 p# |) m) p& r1 ]2 _# i
( g$ w0 A+ i/ f  \: @於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白3 Y& h9 R) r8 w: S7 I7 Q
現在又想通明了少少; x2 [3 ?# r) ^6 J) N
---------------------------------------------------------------------------------------------& \0 i# n9 _  M1 t* G: a. B/ f
% c8 M: ~. ?9 |- @# q2 y
中間寫著 :
8 P4 p1 i" V) r; |) O" k- y舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A
% p4 T& B/ y7 \$ B起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?
3 |: s2 G# x# e或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ?
/ m7 B* q  _  l6 ~% X' r' L. e4 q  T; Q! ~) H
原來又是 16進制 的因由3 H7 o6 {2 D! |$ j3 K+ @# C

  M% i  C2 A7 @5 W4 x在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
0 U0 _& v& y( Q3 q, [即是說 9 之後 不是 10, 是 A
& y" O  p3 V* c& Q
+ I/ {" Q: z0 b+ U" Y3 S所以 1234+6 不是=1240
. U2 l: }9 i2 `5 Q! B9 T個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位 " h" R: r+ B7 B) q8 E0 o
所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  : w+ l& ~0 t3 w6 Z3 m) D

% ?8 f& B% I8 c2 F5 |/ H, z==========================================# K: C6 F: x) V9 F. d. c

7 t! O1 T& V& v+ ~1 R6 b4 d其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了* @9 B- o1 _$ j* F+ Z( r. k0 E
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝
" J! I. {9 E. z5 D4 W0 m/ g6 ~  c+ M6 g0 Q  J
其實研究如何修改遊戲, 真的是非常困難, 且非常耗時
# q! {+ y- Q2 S我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
( _  n: m9 H" K6 Q  a3 d7 X$ c, v
3 h2 _) q2 i2 u$ B( q4 Y' N说白了
4 p7 @9 b1 I7 K4 P修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 : A0 d  E, u6 j1 k! C
疾风之狼 发表于 2014-7-23 19:44
9 P! {4 B$ m3 T+ P4 T: b0 p' [# d[0662]是地址,0x13是该地址的数值, B0 p. X0 x4 L/ O, ~9 {! e3 P
& A3 o! l# w, k  L) T) V
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

, L% _7 n5 M* w; k6 b) M
# w5 i8 q0 @% k0 ^1 u3 w終於成功修改了 赤影戰士 受攻擊不減血3 }) w: c: @% @* n
* g! |/ R/ t# U, c, |6 B

  y8 s" u3 X( c% r) z/ v: y. G% }0 t* x8 n) V" T
今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了
9 e" ?! l2 V- P( L' t; g; [6 B我曾試把此方法 套入其他遊戲去修改( `  }; x8 E& V8 E
但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型# N/ D7 l8 s' m* a* i( L  J
所以都不成功呢
2 z# s5 t- G2 S最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2024-11-15 22:46 , Processed in 1.096680 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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