EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
" l* b$ ?1 s: o7 ^
7 k  b0 E7 ~7 T& C" i在此先感謝 管理員 疾風之狼 以下帖子的分享
, ~! V/ L7 u' L( |1 }; b1 i6 |http://www.emu618.org/thread-21186-1-1.html
4 X# B, |9 [2 T8 ^- l; h
4 d; J. s$ O9 z6 J( A& c& i# u% n我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了7 G1 i- i7 k0 x4 H1 b
成功一刻, 真是興奮莫名) e, k: J$ b& T% Y8 q" G$ D

) X7 d4 E- G! Q5 B' S  D! ^9 D* K$ o% C& U) a
7 {1 l! O1 z$ H* q; {
: B3 Z3 m9 s. b# K; k! W
不過也只是 完全 跟著指示, 過程中還是有很多疑問,) p0 h0 p) \- `9 S/ v$ i: P& o
如不解開, 那麼修改 也只是 局限於 此遊戲
: F+ L& f; a! ?7 h, q0 D. C* i: @  _6 p$ E5 Y' N) M
===============================; L# z" {; v: f+ n

0 \- P6 i1 m$ u  L" a" s6 l( ]圖6 後 的一段文字還是看不懂# `" J- [7 x9 y; M8 r7 @& j
( U7 P( u. w. J
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))0 B7 Y' O* b+ ~6 v) w) P' w1 z
問題一 # 指令表 就是說圖6 吧 ?
1 x8 ~3 ?2 P% d0 G
  Y3 t* f: E- H% p" v! T4 i2 A# v! S問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13+ s" R8 O1 L  l
                0x13 不是應解作 數值 減13 嗎 ? * C6 Y5 D0 N" @1 z# \- e3 V+ W
                從何知道 0662+(X)=...數值減1      1 z. S7 F& Y+ \# s8 z# I
) @3 Z5 A. g0 W
-----------------------------------------------------------------------------------
+ L6 B: d: p/ M# C  z[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))  u: _7 l( I' E4 M
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
( [3 [& `7 U! I- Q: c% `, p  E               
2 A* z* `  r* D  K! @  z# N問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
% }# {$ o& G/ u$ ?% q8 @& m- W+ I8 S. n9 H2 J
+ i3 p! U. E( ~# e: F/ r4 ?
-----------------------------------------------------------------------------------
: Q; P' h% |1 N+ h) U& l6 S7 A" m[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))2 U% C# J" r! Z0 j, m3 I
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
0 X7 _. M4 j7 Z8 l  P" d/ G0 i5 S& H+ \
' P. R) e* y7 z問題二 # 尋區方式 即是什麼 ?
9 X! w- C( R: P8 E2 i  g; U) _5 T& T; S& {
& s0 P! s, t( `. r9 Y# {$ W8 U
其實還有其他問題的, 不過一次不問太多了1 H! W7 k; q+ }/ b; |8 c9 `$ w
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的) m5 X! ^7 @' H+ l( r) R1 @4 i0 a
就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑 & m/ f3 _0 q$ t) L9 d2 Y' w$ ^
紫龙666 发表于 2014-7-23 15:22; @( D! A- T% \+ @' D
你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。

/ f5 Y* f: ]' o! I$ v# @2 K5 g8 l9 ~9 n" _8 r: ~
先感謝 紫龍666 的回覆  {:4_118:}
/ V  j' s6 K" c4 N
2 Z. m7 g  _! B# K' c我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘
" T8 d5 N$ Y' K: }! M- A1 t& Chttp://www.emu618.org/thread-20393-1-1.html
" g" Z! R! z3 L$ R* e8 @- a
7 Y+ X6 [4 r# p4 @! I下載解壓後 得到一個檔 0 w, G1 o. _4 B& r: O. ]! o5 ~
8 J' M7 q( S2 a5 X3 P0 H  ^7 Y8 S
3 ]8 c: F, |% f5 f  M, x2 U/ G
但我卻開不到這個檔, 顯示(無法開啟檔案)
, ?; N( \( n/ K' M. B愚昧請問一下   6052汇编大奥秘 是否 一個文字檔 : i1 \( e7 M$ ^( L! O$ Z; G
此檔有很多文章在內 嗎 ?

点评

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

签到天数: 1887 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1)), {* |( c! o2 ]
0 }+ e5 Z8 O. P
問題一 # 指令表 就是說圖6 吧 ?' w6 ~# {' q1 ~+ x9 I, H) M
2 L' O" A: P7 Q4 D+ @: z
問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
/ [+ j5 E6 h( h/ Y. f; X( D  y+ a, E, @- ?% Q/ _
0x13 不是應解作 數值 減13 嗎 ?
" q! s* ?. [3 w  f9 U7 @& X6 w" ~& x; u6 i
從何知道 0662+(X)=...數值減1
3 y; }2 k3 r2 R6 G# Q

# g& ]/ b/ Y* `0 z& F0 C. s# F$ Q[0662]是地址,0x13是该地址的数值
  B' K  s# R1 Q& {$ U, X7 ~
' z# u% U% f1 V: \! VDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X
# C- }  D# t9 I$ V- j' L
& m3 t: U6 v0 [0 @
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))& k% ?: Z: J5 V0 ]# s! V5 _/ K
2 g" y3 f4 s( ^& ?" C3 _% z- ^
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?. @1 |* a: c, m5 n: N
6 N5 n. r5 a! D$ v# Z5 t& \
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
2 S: m( k: A: @. ?% c* A

: m( E0 m7 x! R# OLDA是读,STA是写
% Q7 i( W( ^! I5 {+ I: ]7 K
) C+ i! h9 o& B, uDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了
+ t/ T7 k5 q6 P6 P
* D, u. [  S4 x3 T$ RBEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转4 X" o6 i) X- Y1 p

+ y3 h( Q1 P; I3 WAND是逻辑运算指令
2 o% m- r! |4 S5 T: `9 Y# g8 [6 a) \7 A# e! O9 D& O: B8 A
请看《6502汇编大奥秘》/ H4 r# |& {' T" Y8 i7 B- w

4 {) B- ]! h' }2 ]8 T
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
# O, |" _) b7 z3 }* b
, v' o4 d, \7 [7 |問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
6 S4 f" e$ P" {6 g6 F6 X5 R2 C8 g) t+ t) R" ]* X3 B
問題二 # 尋區方式 即是什麼 ?
( @! p$ Y6 F0 h
4 m! @: Z. W+ }2 D& G' d1 i
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?- \2 B4 c4 A9 D2 L
' X1 M8 f+ L( ^$ m1 d* ?! n
寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
1 ~+ L, l5 F* w+ s. K& N, O. h- o
疾风之狼 发表于 2014-7-23 19:44
' p. E$ r$ R7 [2 r1 b, c' r[0662]是地址,0x13是该地址的数值
% m/ P8 C8 n4 i0 U& ]8 J8 R1 v5 F  m- F/ ]1 D
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

6 G' H8 g" A0 O1 m2 {# R% r% J% w$ L6 w$ T0 c* E+ N$ q$ Y
先感謝 管理員 疾風之狼 的回覆 {:4_118:} ) g- d0 t4 Y# ^. e' ]

) T! N2 u# _8 u" R* k好像有些明, 又好像有些不明( j7 r$ g, a0 q; L4 Z7 s2 R. q
於圖6 下面的 [0662] - - =0x13+ M3 t0 z0 x8 A! p4 Y& p
大大說  [0662]是地址,  0x13是该地址的数值
9 u: B) S4 ?5 i; |: d
; A5 F# j/ o$ \2 y4 b我先愚昧簡單的想: " r4 d. T6 G- s% W6 d
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫
% \7 F* y2 _" q/ s. k(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 % Y, D( _) x( F& P0 N
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的5 v: A% d; L# X: ~

/ X0 z- C8 |5 k& d! P# ?遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
2 j1 A' Z  r; x) ?8 }+ D; }& N) l4 M5 l
------------------------------------------------------------------------------------------------( W! P+ g+ }7 K  M) U6 ?
1 {. J. h5 e  V
跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC1 _9 p0 K$ l4 M
DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以# \- {. K# `/ `- Q/ Q/ n4 F
LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A " b3 d4 {# F% l" ^. j- b) A

9 g# l) `8 ]; _- x雖然 讀入至 寄存器A 這方面 還想不通, . B+ h, Y, [. m
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了
! h. k0 b4 X& |" N: @0 m2 P2 v# U- w* `
$ v0 m! ]7 X" H% U" X3 i
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用
8 L: C0 j: A6 }; n  K4 b. Q
' F! G8 n/ p& W=================================================1 ]& w+ m6 A: I( i2 g; Q
6 S7 c! d; {# A  }6 a/ ~3 @+ Z6 D  ?
說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :* q6 M( _. C5 j- T0 K. A

2 E( P( l1 _* I+ B% F! U一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字, 8 a7 K' H1 V4 T6 C* o. x  \
二 : 跟著 右按 選 以簡體模式開啟& h, N3 U' b* P6 Z$ u/ b
      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟9 g3 z8 ]* g/ p; [3 S
! h! r0 s# K- D! P. p
9 [) f% H2 W3 O6 G+ Z+ ^) @
4 E' w& E: F9 E8 y) h) g  r. S
2 q: i- r5 Y6 {
1 c. @3 x$ b# ~7 k0 O/ {8 Q

6 h6 Y7 O0 C7 p( e& N( Z. k1 J# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了
2 K9 v' q& A: p+ B. v- y/ `       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:445 w3 N$ o9 \. p4 Z
[0662]是地址,0x13是该地址的数值
" ~- T/ A3 E  n  U- N( F2 a
0 e, V) N) i3 A7 ]DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
- Z7 u8 E/ `+ @7 d
今天又領悟到多一件事 {:4_98:} 0 E* \% |* b$ v: F3 |. _

& K% S4 R9 b9 p7 z; p0 w於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白
, ^1 x% ~( O5 w+ K6 }3 D, N/ c現在又想通明了少少
/ m: k" E  Q6 ^; l! s# c' j/ J) t---------------------------------------------------------------------------------------------
( I) |5 @/ t2 q/ m+ t. P# v: P" H7 l) S# F$ E. K
中間寫著 :
8 W. n6 `; m, @5 I6 g% m, H舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A
4 G* r8 D6 g) g: V) x! [/ \$ |起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?) J* V" t2 r+ ^0 p2 m8 g+ T
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ? . S8 a" ?" O1 H% r9 t
  A) E7 I& }: L& B/ s
原來又是 16進制 的因由! a% e% L7 t& E: }7 D: ]

' R- h) q1 j. E4 M9 @在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F- z: t( B1 e" _0 ]0 t
即是說 9 之後 不是 10, 是 A
. |/ I' U( ?. Q) v7 R: B& Z& j2 u- W" J
所以 1234+6 不是=1240
4 t0 B( t1 m( E$ [9 E. G+ y0 Y6 M; A1 T個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
7 C9 ~! Q8 ~+ y) C  B; ?所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
. r; o* h/ M, L, M 0 }3 ?: n7 _" M5 C
==========================================8 l. ~2 k5 P; W0 s8 F

% s, f& a: i% Y. H! n  y6 W其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了
# y7 H& U' {( v$ D1 `0 O+ K除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝7 d! T9 T) u  F" {# @/ m: P+ r% l

# M6 u2 V) I: b$ l4 i. ]$ X其實研究如何修改遊戲, 真的是非常困難, 且非常耗時
+ O4 y$ C% x7 b" z- d& h我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改- r8 i0 Z+ Y7 D: w8 z

8 M! A, [, h: v说白了
. V: U2 R3 g$ H8 E修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
) `" D2 R1 P+ Z: x% \7 w
疾风之狼 发表于 2014-7-23 19:44
' ~  o9 P% _  _  f2 y[0662]是地址,0x13是该地址的数值* @: G0 j! T9 H( i0 b

  t9 M+ o5 X. iDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

- ~1 c+ l: u. U) m0 v- K" }) Y- ^; D
終於成功修改了 赤影戰士 受攻擊不減血
3 r+ i$ Z: v6 x9 Y+ e
9 A, B' y# g4 s) t) a8 L) F9 m' c) a! O4 Y  F- I; f

9 ?, L9 K, Y8 M/ V今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了8 P, k: m, B1 d  H4 ^
我曾試把此方法 套入其他遊戲去修改
+ [% s# w: |) Y但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型7 L  G& F8 _) R
所以都不成功呢
% B  \& ]6 B" S) P+ i最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-3-13 18:46 , Processed in 1.121094 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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