EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
2 ~/ ~0 g, C# l) K. Z4 q: D" H2 g! C: ]8 _  u5 W8 c2 `
在此先感謝 管理員 疾風之狼 以下帖子的分享2 g. M% q7 _1 ~% R2 P
http://www.emu618.org/thread-21186-1-1.html1 i8 E" D( i6 p( y4 z* C
: j3 U% h& H, k, g1 d% R& O& f- x" \
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了
) b4 i5 B* G4 G1 {- |成功一刻, 真是興奮莫名8 u8 x$ r" x6 r0 u: b
: O; j& P* ?0 [8 j6 A

+ i8 g+ g9 M4 b7 v1 V% B5 `
' _2 X# K/ G2 R9 n, f, p6 ]4 w2 `  v" _* e+ \. i
不過也只是 完全 跟著指示, 過程中還是有很多疑問,
" U! [0 S4 V0 p  Y5 n/ |! N0 A: D如不解開, 那麼修改 也只是 局限於 此遊戲6 O4 y- Z2 B8 M! S* `5 S

" @3 D' p+ k1 B6 i2 M- \5 b* f===============================
# m# @1 t2 ]  s- q! ]) ^% d
4 Z, B% q1 }: ]$ k6 q- M圖6 後 的一段文字還是看不懂
! X) _# @! L1 F7 U. O) W+ r  m( c0 h$ v0 ~9 j3 H
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))& Z0 j! e. j0 ^9 [. E1 I0 p4 ?
問題一 # 指令表 就是說圖6 吧 ?
3 A0 h$ p3 _, h. s: U/ Q
) u9 W$ k& T) q  O* E問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x132 R5 n# a6 ?$ \1 y( O2 X7 [
                0x13 不是應解作 數值 減13 嗎 ?
- _4 X- t8 V8 o6 F; u                從何知道 0662+(X)=...數值減1      4 n! p" M# ^- \/ L( s
; i. u, Q% t- ]* I% y4 k
-----------------------------------------------------------------------------------: _% H6 b: A3 U
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了)); I0 t. g4 R" z% e  A7 }' S
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
' ^5 ]: [- G8 z5 Q9 p# e/ c                4 d+ H# E3 |6 E# ]2 C. N/ o8 t
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA6 e- m9 J. @- K% ~

) R, L  v$ G8 w  d/ b1 W- q
3 w. F% `9 |8 E3 y0 \* }-----------------------------------------------------------------------------------
! X; b( |: e* B9 F& P& a" J5 I[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))8 a, A" h& q. H) T" P
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?, Q7 M1 ~# e+ Z% w

' M/ U4 [; h- b6 F# N5 L問題二 # 尋區方式 即是什麼 ?4 }/ W7 M/ G" ]2 w

* u+ |" ]2 ^* a
9 X8 X1 K% X$ b# m& a; h其實還有其他問題的, 不過一次不問太多了
! ]) l) D) e. r4 Q8 t在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的& C' j; s( G, E8 ^  K- `8 C- g& K' P
就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑 ! ^, {/ i0 i* x# B! @# l# Y: Q8 c! {
紫龙666 发表于 2014-7-23 15:22
  @4 E  A' a# d, v  J& S你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。
7 r9 d0 z$ D" V- p) t+ t
  t3 ~& i% b! j7 Y" t
先感謝 紫龍666 的回覆  {:4_118:}   G3 }" d3 U$ c7 S

! h! I; [+ {# e4 S* \  ~我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘/ T" O* s1 n( C* T
http://www.emu618.org/thread-20393-1-1.html
1 C/ N/ H0 C- l0 {. i! y) [, G5 r' V, n$ g, T: |4 i
下載解壓後 得到一個檔
7 d) k0 x7 K, M- o" f; u& C! u; s) v: j/ A& v+ E# @! M3 m

0 @. |4 h" }$ L5 ~- m但我卻開不到這個檔, 顯示(無法開啟檔案)
. K% S$ s7 \! B& s. g愚昧請問一下   6052汇编大奥秘 是否 一個文字檔
. `' q( [" S- N. H: Q; Z$ v此檔有很多文章在內 嗎 ?

点评

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

签到天数: 2211 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
1 I/ n" g) `' g. }2 j  j8 W% [+ d6 z: m! ]1 N; I6 {
問題一 # 指令表 就是說圖6 吧 ?: i* M/ g6 D) e9 u, L: ^

: y& {5 o2 a1 @$ {7 ^1 @問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13' C2 \% N8 N7 I

0 T0 O, c% M( k" @0x13 不是應解作 數值 減13 嗎 ? 0 x- ~# |0 X7 _+ ^3 X" c( D

2 A$ Q" y; o! L  m+ G# Z從何知道 0662+(X)=...數值減1
4 d$ w5 _- O  b0 p' H, O

! f9 T3 q% C! v' Z[0662]是地址,0x13是该地址的数值4 N) T6 ?) K, V8 L- m$ P
6 T% l: m! ]6 z4 X
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X" c0 H7 g% S6 j* p
' O* L& N% M# o4 P0 c2 [& j$ A/ y
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
; I8 ?9 M: J$ v' _' x% \0 a* I8 J6 m, b( u' k
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
4 {- i, Z: X) v) v
# a7 G( P0 x) l& a, O7 C- o. ~問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
, a. Q- Y* z' e& D5 q* x6 ~5 k" u3 ?

" H2 ^6 B6 o1 X* O% ^4 cLDA是读,STA是写* @0 r. T! A0 M, ^( Y2 P5 ?

$ R8 e" A- X* pDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了
* E2 u6 S# H% S0 R* n
2 z4 a- N# Z9 A6 h7 RBEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转! M9 u2 z& ]% o
# ~3 @6 D0 p2 }- p
AND是逻辑运算指令
% W+ ^6 M6 o; j/ S; h8 U& |5 y8 n( w/ x: y' h& r: T( ^- f
请看《6502汇编大奥秘》" _8 k, W( e  e4 g& V8 t) n
2 z* X/ Y( P% ?4 X- Q5 o
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
7 x7 w2 W: c8 j: Q% _, z& k9 U/ N9 S$ D" s
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?! @  |" S# ?. D# w

# L8 F+ V7 H  A% g: J5 b, @問題二 # 尋區方式 即是什麼 ?
: B8 H! e3 z0 B* C# |0 C4 Y' u
' L- f" H8 x4 }; f
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?
7 {6 a5 H  ]2 N, u; D; A% r3 _( |$ R3 _5 ^+ N  t$ h
寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
' m7 P6 [5 {. M/ J8 B" z
疾风之狼 发表于 2014-7-23 19:440 ]: O1 P% U' L* X/ ~" R
[0662]是地址,0x13是该地址的数值
, N. |; o( ~, j4 P) e& |+ }/ X$ U4 o( J5 e
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
& C. p/ `3 \4 {. R. E) ]7 D& |
7 _, z3 C# O5 c4 z, b+ f9 ^$ p
先感謝 管理員 疾風之狼 的回覆 {:4_118:}
/ |9 g3 B; L1 H7 c7 ^6 }. h
3 P' m) Y- S1 c) h$ g$ }  P好像有些明, 又好像有些不明
( @  @$ \+ }& R2 u# A於圖6 下面的 [0662] - - =0x13) [. x1 ?/ v, x' y9 G
大大說  [0662]是地址,  0x13是该地址的数值
' Y4 {3 U5 \: @2 l. d( o
; e0 k$ `$ Y! y我先愚昧簡單的想:   ^  {% F+ R9 _" E3 J; I; s) k
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫! W2 b2 y* G7 _& b7 w
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢
8 {% O% f" ^7 [- U- Z$ s                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的2 `: l: p% `- d6 j: o1 P

- L0 z% @3 ?, x8 `遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
# D1 {3 P2 X& h4 K8 D* l. L7 {: ~* V4 t. a
------------------------------------------------------------------------------------------------
; m1 X- S& K# x; J% i' [5 J# Q/ _8 s0 A5 h3 u- H5 {* l8 n5 [4 W4 r. n
跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC
  g+ h: A+ S4 ]4 XDEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以. ]0 h4 e3 a& B* ~
LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A
8 G0 u6 h0 b# e" M: u2 d# g, E' K& @4 @; i4 _
雖然 讀入至 寄存器A 這方面 還想不通, ( L5 x/ Z! x& M& \* W& y; K8 c
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了
" {) Y' b0 V9 l% T9 z; c$ Q9 E( O4 n: u! K

( P, D, ~$ o* k3 }" K' J/ [# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用1 Z) j0 y0 }$ |" h

# m+ \* i, }" E9 {1 @$ J4 a% B. M=================================================: z9 V% P1 T/ u6 O1 H
* I) s- n5 t5 H! I6 r! ], w
說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
, d+ @$ `" y6 K$ ?; o8 X9 @5 |$ L0 Z6 L, N  b! S. V2 l
一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字,
+ W) _- [' z5 m4 ]; O8 u# N二 : 跟著 右按 選 以簡體模式開啟2 ?' g- N% D+ k7 Q2 G) F7 c" }' D( f. F
      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟5 K) C' x, l# }5 J* w' X7 F1 @; J
: t5 i5 R" Z. Z1 Q) |

" ~7 b9 e' z3 n, k2 X( `/ M6 Z- V0 ]  O' L5 ?) j
9 T/ n: w' q& W4 }/ `) l
* ^& n! Y* w/ s1 g* s. K( o

* r+ c5 }; E) V) y( N3 ^3 f# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了
; i7 g0 n3 q: O3 Q, |2 z       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44
  e; c$ R+ O5 P[0662]是地址,0x13是该地址的数值
, Z* T3 [' I" y$ `
$ T/ W6 k% \) h& g/ F9 H# LDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

$ {  u2 x9 g: o$ q今天又領悟到多一件事 {:4_98:} 5 ]/ _  s1 P! d- R( n
/ f* z6 x9 H' p" B3 i# X
於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白9 O! n" h  z2 A  C# M0 O  A8 u" F
現在又想通明了少少
. x' }$ J, h0 z* z- b---------------------------------------------------------------------------------------------
' U1 e& H- [7 t" S4 I
  o9 d4 A  p6 j1 C1 ~中間寫著 :$ q1 N' q$ W; R, T
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A
9 F- J$ G4 \; l5 M; Q% O+ T  R起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?2 T0 O3 u1 H9 l
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ?
; v7 O% z: m' ?' m/ E0 ~. }
2 ~, y; S4 p1 G+ \$ w5 v2 b* S原來又是 16進制 的因由( A) B4 w$ K+ P% c# Z

% ?1 d# q' v# r" E# G* G3 u4 n在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
  S% P( ]# c! P- S+ z即是說 9 之後 不是 10, 是 A
2 R( w3 @% K2 X, h7 ]; s8 a1 x2 {9 ^6 M% {, u
所以 1234+6 不是=1240
1 ?, y9 U% c; d4 L個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
2 ~7 Z$ V9 \$ J$ A* R) X所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  / P+ Z6 G. O/ S: B8 Z

. s% b$ g. N7 {, b5 l==========================================
; C( K- ?* l% S" o; [8 U5 c+ c% c( E% [, z0 |# c8 V7 D; i6 d, o# D
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了* i: K, s. C+ h# t9 Y) l
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝
. ]6 i0 ~! a1 O1 l& g9 ?
! y. b. t+ x, K  \其實研究如何修改遊戲, 真的是非常困難, 且非常耗時
1 X  |8 _% j! e% E, ]我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
, l! P4 S0 E7 I
& d+ c8 \) t4 h# [: f+ E$ L说白了% `; o3 c: o0 M1 i. d# \- [; j
修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
% n9 M: `' ?& [9 s$ ^) C: X4 w  u3 q
疾风之狼 发表于 2014-7-23 19:44
0 b" E2 i# t* m6 P  a- C1 b[0662]是地址,0x13是该地址的数值
9 X1 Q1 c1 U4 f' S1 h: ]2 q
1 b+ M6 L7 }/ N2 [. |DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
( v, R6 n* x9 x' W1 ^
+ D* g; }2 l; m1 E, \5 L
終於成功修改了 赤影戰士 受攻擊不減血
4 S2 i5 A' K% m7 i9 U. k
% I% O  `, c- I3 t6 N' ^% O2 S: y5 [3 L0 z: f$ ~3 K, F
4 U+ D( G6 u' _' X6 p% J# l( [0 ~
今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了
' `* I6 X6 w2 r5 ]! {0 i, v我曾試把此方法 套入其他遊戲去修改" X; r1 u# r7 e6 ]' k
但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型
" C. p$ L* h# `+ L7 \  X所以都不成功呢8 Z8 d) X5 ?$ I% i1 U5 u1 o, g! k
最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2026-2-3 19:26 , Processed in 1.105469 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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