EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑 ( L& G9 d) g: |0 _

: N3 y: k: N/ d6 U- W  V. A在此先感謝 管理員 疾風之狼 以下帖子的分享
+ U! t. s( @7 ~5 X) E6 X6 t- vhttp://www.emu618.org/thread-21186-1-1.html& C! r# Q% x( W/ u$ s
% k8 o' k  Q7 P
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了6 V# V" C9 }+ p( e+ i4 v" m4 C
成功一刻, 真是興奮莫名
3 _: t5 G' Y! O8 ^( {, [4 B
6 T) ^6 M2 R: r8 g4 u3 x' f# `3 U5 T+ n4 l! }
# D, R$ W' M: q) ?" ]3 s) ^# C  j
& u; B8 [/ B) [9 s/ M: R) Y
不過也只是 完全 跟著指示, 過程中還是有很多疑問,+ v& e- m( Q# b: p1 X3 A
如不解開, 那麼修改 也只是 局限於 此遊戲5 U6 \$ T7 j2 g- C$ q4 N
9 {) W6 g0 w! M& v3 |) R
===============================
5 G9 G$ b8 V! v* b" v% T, Y: i4 a6 K( ~
圖6 後 的一段文字還是看不懂
4 B4 a; @+ S2 R- e/ J( r7 O' E. S" b: q7 ^
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))0 x+ d# {5 t, c
問題一 # 指令表 就是說圖6 吧 ?
# D( ^2 ^+ v$ K
( L, c; B' I# V, w! a問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
. p) t, N: B, n& T5 p  R0 M                0x13 不是應解作 數值 減13 嗎 ?
) W5 L/ {4 a4 c3 S) n                從何知道 0662+(X)=...數值減1      : b1 M' Q( }% ]9 i8 B
1 u5 b7 |" F3 F5 v0 h/ S8 \% |2 M
-----------------------------------------------------------------------------------4 x) I# |: L* y4 c
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))  f& m4 K* l3 t! `& O  e( i6 V; E
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
6 @  _5 s- z  M* \$ P/ V: a$ T               
) G1 _! G0 u; r問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA9 e+ P2 F+ R" Q8 i, X4 F' S
( ^& I" ~2 y$ M  q3 T6 b# E1 R

" y( C9 N- z+ ~. O0 ?- }: H! ?-----------------------------------------------------------------------------------
) e0 ^) X" c+ j# b. k[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
6 i6 j/ b) U% ]/ k" a問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?6 \( p) C' N+ u/ a6 B

: L# K$ G) w* F5 S( d問題二 # 尋區方式 即是什麼 ?
" H, F6 h* ~" X8 f" z" i/ e
/ C9 A& i$ [; Z  t4 V* n/ R1 _& A( I3 m  K
其實還有其他問題的, 不過一次不問太多了
$ E. g5 K6 _& t7 P6 N* H; d$ D在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的
# J1 ]. O  g" J  V! a3 X$ \3 U就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑 0 I7 Y8 _1 U2 o5 c7 Q
紫龙666 发表于 2014-7-23 15:22
/ N' i4 r! F9 ]- S3 j5 c( u你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。
6 M( {8 C) J4 M' e- V& N
/ P7 p1 w" p4 U) Z% a1 l" M
先感謝 紫龍666 的回覆  {:4_118:}
  u0 |) c' W3 o) N8 A7 w8 [) Y
. D- q* g7 V) Q1 ]/ }+ r我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘
4 g! C7 H% ]+ g1 C% r! ?; fhttp://www.emu618.org/thread-20393-1-1.html" e8 H( Z( f1 |6 M. ?) X! _) [
8 ]6 I" W# p% `9 z: e1 V4 _
下載解壓後 得到一個檔 . a9 m5 P5 O) _" y; T: m' X4 l

* N1 I5 a7 \1 T2 U7 D  L* X* A' X0 H5 e' ~" }# g, J6 T
但我卻開不到這個檔, 顯示(無法開啟檔案)" H4 N# o  Y1 t
愚昧請問一下   6052汇编大奥秘 是否 一個文字檔 ( J; F' |% X" Q8 R5 c
此檔有很多文章在內 嗎 ?

点评

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

签到天数: 2115 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1)): _& N+ B+ f/ ^: W8 m3 h$ o& f9 E

: m8 X# G' {1 v/ B" z問題一 # 指令表 就是說圖6 吧 ?
+ Q" S9 }7 y, y4 l
! N7 T6 A, [! s  k. N. q% l. y問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13; W  ~4 C! S/ k/ o. o" b, V( _* Z6 \
5 o1 A0 ]% y7 f1 y- B, V  j
0x13 不是應解作 數值 減13 嗎 ? # [: @! S% e$ e
8 }1 d1 c! ^+ @6 N
從何知道 0662+(X)=...數值減1

4 c( W- F& b5 f3 e; J; A! d0 J8 f* ]- u6 m. q+ t$ `3 S0 a9 q
[0662]是地址,0x13是该地址的数值, ^( L- e6 W! X% s1 b( s% D

: a5 I" Z3 ?+ x. _" _/ i  l8 ~$ ADEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X+ H: R( e$ S3 x: F' M" N
$ A# ]* F  ^' M+ B. s! J
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
1 O8 Q' R3 ]7 @. V' s( d% b  Z0 q1 P$ K* Z/ h
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?+ E; m  ]/ Q) R* B3 C5 {8 h! p

4 c$ L( L7 r3 o5 H9 L問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA

7 s7 X  C' k3 M& N
/ j4 I- }9 s+ _- D! BLDA是读,STA是写
, E+ P% I2 Z) S0 ^! v" q1 f( s6 g9 v3 u
DEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了
( Y$ W3 n8 [) ]6 [+ S- ^8 n$ U" C. c" Y: a+ q  |) I+ w9 _
BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转
& d  R' B( Q. v* K
+ k# C+ r& k9 G* ?AND是逻辑运算指令  V/ J, D2 a5 Z+ r( ^8 J

9 s- ?1 }% l) N* p5 U请看《6502汇编大奥秘》% L3 c5 O2 M* d6 R% \
" Y6 m, z6 s% @9 ]8 N5 o. y7 ~
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))1 z% e8 b2 J3 ?( ]$ \

& K' e; A$ K0 B' \: h問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
" E4 Z3 g2 @6 r) D6 G! p3 o* U; Q" H6 m" W
問題二 # 尋區方式 即是什麼 ?

! S) V2 L* F1 d. b$ X, k8 p  _- u: R% o) }% u5 Q
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?
/ S* x! F) W0 f1 _  w* S9 @1 Y- \. s& U# j- T- \5 y& Z: O- i
寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
2 g* w: Q( D+ |; Y4 W' G
疾风之狼 发表于 2014-7-23 19:44/ K3 q0 s2 B! d, Q' V- J
[0662]是地址,0x13是该地址的数值
2 S. r  m& ?0 r9 u( V- M% W$ y+ Q' l. G. _2 P9 N. R) r
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

- |7 h/ G) N* e
. ?/ n; a) |' c& D5 |1 w先感謝 管理員 疾風之狼 的回覆 {:4_118:} 8 V) ?" |, V" o6 O3 C

* ~8 u; O' U7 q9 c0 E- Y好像有些明, 又好像有些不明
2 y) I: K$ b; \' e於圖6 下面的 [0662] - - =0x13
+ z$ l0 n, U: J' C大大說  [0662]是地址,  0x13是该地址的数值% ]9 D5 B3 M  D7 E' J  `7 N* o, P5 C

1 G3 c* }; @8 e" A3 |! r我先愚昧簡單的想:
9 r& B, ]. Y5 ]9 s% N) l6 h; `(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫
) U0 V$ F3 f  J2 s/ g/ v1 V7 {(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 6 w% B* N3 g4 P  E0 v$ M
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的
" Y0 J* A# K- T& r3 ?: @2 z. `
0 t/ k, i+ y( s* u1 s! D遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
1 Y* l1 F! G8 ]" P" r1 i) ^7 [! P5 P# F( g9 c
------------------------------------------------------------------------------------------------7 Z2 B$ a6 Z7 r& @) M2 H/ T

5 }& M7 \- x% O; v跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC) j, n, e( ~; Z# B. T0 r! q
DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以
9 M  @* d$ @: P2 Z% ~, hLDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A
& ?. \% s/ O0 A7 J- m# P+ `! r+ I& D# a+ c0 [( X- ?" ^4 I( w
雖然 讀入至 寄存器A 這方面 還想不通,
  k! {0 D7 f+ |" s3 B5 G2 w總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了 7 u2 U  j3 v1 k$ T5 h) y' V, `
: _4 ?& |& D$ m5 T" }  b4 U

7 g. G" d! O: F0 \( }+ v& B# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用) o9 n4 ]* x) o4 D5 i# d
7 J6 I+ Q) J' s  w5 y
=================================================
& ~/ J+ ?9 M+ D4 T4 ?. g! c
( _0 W; s/ ]/ j/ b6 f; a0 q9 J說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
  @- Q! Y: V6 I$ c8 S3 g
3 A' T3 u$ G7 [7 E/ N( _% z一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字, . M$ q3 U$ ^, w- e- g8 e
二 : 跟著 右按 選 以簡體模式開啟
6 K' b. `7 l" D6 Y$ a      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟( B' T9 h; W$ s$ l4 U

; b/ j' b+ g, w6 {
: N* U* Z1 n' G1 w7 O/ Z
6 x) v0 O, F. a( f" K! s
3 l. X9 ?2 N# R% D  a) `& J8 N+ N& M' y5 d
; T3 U$ Q4 u, b2 ]# W3 Y# v: t
# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了  `& w' n1 r" i, }- s. R6 ^
       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44
. }1 t. V* l8 _9 M& ?, w[0662]是地址,0x13是该地址的数值
5 K8 D0 ?; x: V$ j* p  N7 j+ C8 j$ t" e) ~; h; P' F) u
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

) c9 T7 E- c9 d' _$ ~, F今天又領悟到多一件事 {:4_98:}
, I% b3 h# i6 M6 `* F/ J% d( H* L/ E' ^4 t2 @
於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白$ L3 F! _. c8 j7 H7 @
現在又想通明了少少
8 S" l8 ?- D/ h' g0 P& F---------------------------------------------------------------------------------------------' z" l0 q% i. g* i5 I

& E& c! K; I" T( Z4 C5 ]7 t" I中間寫著 :4 o7 f4 M! H: K. r& u4 p3 j6 X
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A: v" c- @) |3 i2 g8 K
起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?
3 d" J6 S7 \2 d或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ? * N9 P: Z8 c$ _& Z0 P
& g* x- K6 e) B
原來又是 16進制 的因由+ P. d  K& {0 ?$ {
+ m8 v8 D. q5 ~3 E" M
在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F2 d7 L# n5 E3 {! H9 ?( p
即是說 9 之後 不是 10, 是 A% k+ \+ R5 Z( K; _) C
0 h" l' [4 M5 n2 x$ g1 J" v
所以 1234+6 不是=1240, {; _, F1 S: V5 V: [6 M; N
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
9 A; W" A( w2 \0 F所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  8 y* r3 ^, s! m0 p* e7 x: V
. N; U7 a  H* c# `9 ^
==========================================2 V$ A7 K( v3 P; }/ n- z) O& Z
+ {. D( O! x0 a) ^- d$ \; f7 E
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了
% B5 B+ A. o' I除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝! O( e* _2 o) T. B
1 S: G: I7 T. p# ?* f3 M
其實研究如何修改遊戲, 真的是非常困難, 且非常耗時
) T- O2 ]+ x$ h# F1 q$ Q( e我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改3 c8 E7 x2 G9 G: d8 i

4 F0 `1 L# m8 I9 {1 B: I' P' a说白了
8 u7 V/ V+ K# ?: m修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
( A" j& p/ Z; ]' e
疾风之狼 发表于 2014-7-23 19:44
# _  |( r, s4 m6 x1 V9 J, W[0662]是地址,0x13是该地址的数值
, y( ~" d4 o; ^) _, |9 _! `) U0 G! y7 u
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
4 M) L4 G1 Z9 e- A

$ \1 w( L* L1 Y' e終於成功修改了 赤影戰士 受攻擊不減血; ~4 S" y. T8 T6 {, W5 ]) e

8 F0 T7 g% J* L
2 v: W0 t' E2 Y5 \1 r: R* M4 _
今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了& U( u) B* x- b! }0 L
我曾試把此方法 套入其他遊戲去修改  ?! W$ W3 ~/ l; |: v& n. p
但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型; P* X) C' C& O) `# V" F. i
所以都不成功呢
' U7 N( Q& ^, k. p" h* q/ v% G4 ^最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-10-29 10:31 , Processed in 1.064453 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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