EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
( o7 |! M/ [. J- T
: `" b  x1 {- t  }% A5 e2 ~在此先感謝 管理員 疾風之狼 以下帖子的分享$ X% @* p( h) u, p8 i# Q; C& m% w
http://www.emu618.org/thread-21186-1-1.html
5 t' o9 n. N' X7 ^( `3 K# h7 w# ^
3 S* F1 V" o. `0 b我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了$ Y1 b( c& e3 b. }& y! d" c
成功一刻, 真是興奮莫名& F' E, k! R% j1 I2 B2 }
7 d: _! O' d$ N2 @' J5 M

  L4 E; ?# G/ O/ p: _ $ x+ }8 z$ z3 d9 G  j' @- @. `
* M9 Y9 c# I# v2 D  r
不過也只是 完全 跟著指示, 過程中還是有很多疑問,
) Q5 L7 j) [5 A' ?' ?如不解開, 那麼修改 也只是 局限於 此遊戲
- [, q: ^% c: R; L% P* S* t( e* C# T& `$ @
===============================) f# G/ b7 u1 ^/ M9 J* j# w3 I# G" T
9 O& N1 y$ N; R: ], i; G5 s
圖6 後 的一段文字還是看不懂  f& ~2 t4 G0 A( |. V

9 \# B% j) a% |  K[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
3 Z' l$ D4 Z, w, T' f+ m3 O問題一 # 指令表 就是說圖6 吧 ?
2 C3 z3 u6 n7 S8 g; j9 s6 }% P; c5 G0 \! ~7 K& z
問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x138 t- ^3 v' `2 C# _0 N% o
                0x13 不是應解作 數值 減13 嗎 ?
5 v; C+ K. v0 V% n  Z4 A2 c                從何知道 0662+(X)=...數值減1      
4 r  k7 h: O3 |2 V5 K
+ `* l5 ^3 L" m& x" L-----------------------------------------------------------------------------------
4 b/ |' o% i, C[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
) J1 w3 Q! W% g2 o  H) I% Q問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
5 }8 d" O! d5 A$ y/ Q                * r+ B. m8 R, j* K' s! y
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA" Z- }( ?+ ^# _8 x$ H9 c4 e, H2 d
( s: @$ b2 e# x6 h" R# g

3 A4 p1 n7 p- U6 B( ]9 J5 c" `8 u1 p-----------------------------------------------------------------------------------
* t2 N- N3 V' \) \. u" d% E[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
) X2 h- g2 [+ ^5 H0 Q3 F問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?  }5 `- ?; S0 r) ?: [
, s+ G0 `8 v2 g6 E! q- o
問題二 # 尋區方式 即是什麼 ?8 M" l, {* J; [! `

+ E( u& {: T. N! o
+ S$ C: r  c) {% a1 O其實還有其他問題的, 不過一次不問太多了# J" J( R* o' l$ u2 W  s
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的& e( f* x3 g+ ~% ]) o1 s$ |4 |' S
就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑
. @/ T/ G2 v' H/ q2 b
紫龙666 发表于 2014-7-23 15:22; i$ W6 J+ R  t. E$ t
你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。

9 C* h% q6 P) |6 d$ U0 u5 ^$ P' V- V3 u3 G: Y4 n) Q
先感謝 紫龍666 的回覆  {:4_118:} 4 S: `1 C; i( E  O4 m# F8 s

  h0 f/ x) B# ^# U+ i我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘' S% n8 D) y+ D+ y! H
http://www.emu618.org/thread-20393-1-1.html
5 ~% z' {2 V$ L$ y5 I: v$ n& Q8 E3 Z; T" \  k1 E
下載解壓後 得到一個檔
( J; L1 L6 ]0 P! @9 ~% }- U* O% V

2 L# g+ x! b* [- ?但我卻開不到這個檔, 顯示(無法開啟檔案)
7 u5 `( {$ o7 z1 |  @0 r! [: F0 G愚昧請問一下   6052汇编大奥秘 是否 一個文字檔 ! U. Y0 Y( z! c6 O  o
此檔有很多文章在內 嗎 ?

点评

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

签到天数: 1871 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
) ?% D. ?/ I" g2 j/ P$ J  \- b
, T, m4 A% P) i7 a+ R問題一 # 指令表 就是說圖6 吧 ?2 x6 O/ m& N5 L0 \6 o. i; [
9 p- L1 Y: Z# ?9 w2 ~9 {- }) V
問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13  e/ ~' ~( @& f( X

1 I$ T7 \. I) Y8 @0x13 不是應解作 數值 減13 嗎 ?
" s$ }, s5 w0 Q1 ^% {0 Q% }
: a# U) w  \) t# u1 L從何知道 0662+(X)=...數值減1
4 _- ?# h0 J2 q: P5 Q6 P
$ I6 z5 ]; s/ }1 h6 m3 {3 R
[0662]是地址,0x13是该地址的数值; _  `1 \2 ~9 ]- R* ?
2 t6 m& `$ ^4 L6 h. i* {
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X
5 O, |7 _4 ]" O. }& }& N3 P, z  K' j. A2 L( T' s! N
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
4 h$ e7 C" z- T. C
( f7 _! H* V7 E問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?6 ?( X+ n7 N2 ^; D0 C. w; Z
/ \/ Z& v3 Y, C, B
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
+ O0 |1 E5 Q: H- `; O) F

! \( l* z4 {4 y9 mLDA是读,STA是写
8 _' ^& M5 j/ l' U' c! \* r- a3 L3 ]- `6 Y+ q& {
DEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了0 h& \4 @1 j1 n0 x' O

2 N3 U, M; i" {BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转3 e% @; _* H' s& j

2 f# d+ Z6 F) F( Z5 C+ z1 kAND是逻辑运算指令' {+ X- h+ B) `" ]. X1 z  a
' `1 m  C& S8 B, o  q0 o9 m# k
请看《6502汇编大奥秘》
/ t* F/ b/ F( v# _5 y8 W* m, J$ P& u/ }1 Z9 c( I0 ?9 k# A' h
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
! I8 ]; l; I( T2 P' @6 G# f) \8 v* l6 Z! j8 |1 |
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?$ F" U8 j# j1 x3 U4 x) ?' R: B) R6 \
, ?+ c  ]; G; P/ m& O- E6 V
問題二 # 尋區方式 即是什麼 ?
' W# k" Q& M- i5 T4 m$ e( ]

# I9 v' u0 u' q: m+ J8 c我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?6 ?3 \: a6 r) r2 u
" L: Z6 ]2 r7 O% q
寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 - S; }& d7 m7 |# E
疾风之狼 发表于 2014-7-23 19:44
, W- ?4 h. n5 m' Q[0662]是地址,0x13是该地址的数值
* a9 Y( i0 G3 E- v, L7 a0 z8 c% Z8 h- |( c; I
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
3 ^: h' R' j0 m

$ E, m0 H+ l" L1 P先感謝 管理員 疾風之狼 的回覆 {:4_118:}   p/ s4 i/ O/ R, m2 O& ~; _
$ j3 o8 _" k# a# A
好像有些明, 又好像有些不明
9 C4 V" |5 `$ {於圖6 下面的 [0662] - - =0x132 O# v; ^. J( a& b! x, x$ D7 ~
大大說  [0662]是地址,  0x13是该地址的数值! ?# l" \  R+ Q7 j3 W

( L3 _6 N9 [) L: F$ G( s* M, f- M# U3 o我先愚昧簡單的想: / z/ P# h! h# _& w5 `% f6 K0 f
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫, N! _. ^: \5 f! i
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢
9 o( d) T4 ]; M3 H6 _+ n: ]                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的' j) R1 H! D6 m# }0 d6 [
' M/ |1 p* D! i) o4 Y2 f1 N1 T. A, P
遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19: c9 p0 N6 w$ u6 G

0 e8 [# c' f% ^* c9 R* h+ k' R------------------------------------------------------------------------------------------------
5 J9 [/ i( @0 `1 t; X( S# l7 G( W5 u0 A5 w0 E
跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC" F+ O  |2 L' C( M( k0 p$ o$ y
DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以
7 h3 C( ^/ q4 y" B$ O$ sLDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A
" X* }0 J2 \+ X$ e" D: s- \) k* b/ `( h2 r' O0 ]' x  c
雖然 讀入至 寄存器A 這方面 還想不通, ) h, U4 _% R/ s  h
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了
4 N0 f  Z) u3 X# j1 z" @1 E; Q( _: ]5 a0 e* p" y2 B+ Z- K& a
, |. F2 z& z3 K  I+ {
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用
& a/ g7 N/ @& x- s7 B0 c- j7 F9 u
* B' q( d/ J2 d! H# \3 k$ {=================================================
! ~1 x! O; G3 q  p
! g! T+ F) L7 }說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
/ v( x% ]0 z# i; ?& S6 A/ p/ Q7 `
1 h) M7 y/ m$ O- T+ D一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字,
# z! q4 g0 z$ ]7 r, X二 : 跟著 右按 選 以簡體模式開啟
7 E6 k3 Z' ]+ R. g. w. i* I      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟
' p; [( d3 B) J3 E$ i+ O- e
0 f# @. D$ \# z# t' O) A
* N3 g0 I- ]9 V1 T4 X
& j7 u6 L1 @1 N3 l, o8 d3 i  l; t$ }- H3 J  F0 a  s4 d; j1 ]

" P3 w7 X+ B* t$ Q* m
! f6 y3 h  G& g3 O) D# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了
& q3 t6 T. s: i0 L, J       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44' e& v5 E$ X! R2 l( o% Q8 a
[0662]是地址,0x13是该地址的数值* r5 _" |, D, m( m) ?: X$ x; j# S
0 u, \% m+ _' v0 P4 N4 g
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

, z5 b  h8 P$ R/ J2 x今天又領悟到多一件事 {:4_98:} 8 f$ z9 r0 a2 w, ]

" U* Z. `% V& Q$ b於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白  |# W1 \. u; S5 T( _
現在又想通明了少少
% H' p. E2 {$ o1 Q: F# {: @---------------------------------------------------------------------------------------------+ |8 V+ p8 A2 o& i7 s

: N! U+ T- ]. ~- Z* k& c& K3 ?中間寫著 :  _3 ]1 v! i* q& [6 t) k
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A7 Z* f4 y& X% Y# U8 @
起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?
! V. \' h! ]: B$ q8 `或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ?
& x1 N9 m# w! K: A: S3 f
0 U: s5 G3 w( B2 }' |3 w4 V" G' f原來又是 16進制 的因由
' {7 O, C+ ^+ W  h1 l; K& O: ^1 c/ H% l1 u4 f( |
在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F! k9 Y! h- ^) M% r& A
即是說 9 之後 不是 10, 是 A- _9 I1 ~5 A: H: W; [

+ E$ _6 @( B7 |5 \/ ]) Q8 c所以 1234+6 不是=1240
2 _9 t( y0 m. Q' O' G) E% e個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
9 d6 N( V4 M" n6 V- _: L所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
' T" x/ n# A( x; ]- S: j* `  E 8 k. c; T( i, k$ k5 i6 V' O
==========================================6 k- w& Q5 q, A2 M' ^, N5 m
; m1 ]8 S+ a7 l
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了" \% m" I5 f5 K% D3 W
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝
# U! m4 m7 M  F2 N% q: t- n! n; i
- q( }7 M8 `# m% `  J其實研究如何修改遊戲, 真的是非常困難, 且非常耗時' J% _! L$ ]9 t% I
我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改  J8 k4 x0 A8 X, S! S
" L% ]8 L$ t% c
说白了- _) H: Y  o8 U: B
修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 0 T7 l' u+ G$ \
疾风之狼 发表于 2014-7-23 19:441 F( B& ?# e& h8 z/ E1 h# N8 P
[0662]是地址,0x13是该地址的数值
# E3 c* ^6 \. L$ \" V
/ x8 o8 P0 x1 K; y0 D' M0 b4 QDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
: U1 I6 s' g+ {1 q- s8 L0 c* c

. F5 G8 K5 j" d6 |5 x4 A4 X* w6 L終於成功修改了 赤影戰士 受攻擊不減血
( m" X: D3 f* J/ O/ i. x( o
8 a) |! X0 h' b6 ^3 P1 M5 s0 m; h) k8 I# W
) f6 M* b% R/ j5 g* b5 G
今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了3 M: ]* {' n1 a, ?1 p5 |( T0 F. n
我曾試把此方法 套入其他遊戲去修改
. y" w+ a# P- U3 Y$ y% J但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型9 e- ?* P6 ]9 h0 {) E  E
所以都不成功呢
& h6 Q  V9 Z9 g; M: r* C最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-2-25 22:18 , Processed in 1.101562 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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