EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑 3 X+ o7 y/ w* i: J$ f" c- p- B
9 _2 ^9 L6 Z: D$ M3 s* W% i7 d4 I. H
在此先感謝 管理員 疾風之狼 以下帖子的分享% Z- A. Q  n8 Y! ^
http://www.emu618.org/thread-21186-1-1.html" K) R6 Z$ {1 f
/ K) K+ D% c- t, V# {
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了9 X0 V2 n/ U- @9 T  c, d! @5 c
成功一刻, 真是興奮莫名& |& X- F1 V9 X  M3 L5 z

2 M8 S" t0 V# E0 Q7 E- D5 h# s  e2 z& r/ k, v$ r
! y6 y+ E4 q0 d: o6 p
" s8 g  Q+ o! d) Q, i
不過也只是 完全 跟著指示, 過程中還是有很多疑問,2 N9 H& ]  S; |
如不解開, 那麼修改 也只是 局限於 此遊戲4 s( b6 J! H4 `
+ X  f, I) v; ]+ i! m; @. X
===============================5 C6 s% |* G( j7 x0 j  p+ q

% f/ e& i) d% T0 S: t! ]$ n圖6 後 的一段文字還是看不懂
- A( h8 p, }5 v2 ^% n! d
- p) S" Q) u  w4 w, \[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))  ^! T8 F( L5 v; E# X. ~( ?
問題一 # 指令表 就是說圖6 吧 ?5 h5 _* ^. x6 i
" _. Q! H$ x7 g) ]2 S# V" l% c% ]
問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x131 t$ N- h) J& K7 j0 O0 f
                0x13 不是應解作 數值 減13 嗎 ? 9 c) ?6 ^- D) s$ f' x# |
                從何知道 0662+(X)=...數值減1      * B2 d2 Z' I3 s, e% }3 {( J0 }! C

+ E% ]9 o4 I/ p0 A0 S4 U) l9 E  Q) y; W-----------------------------------------------------------------------------------
4 e% x+ t6 J/ Z8 y% e[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))) W1 ]( W8 v2 @8 z
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?6 N- a; Y) ~" f1 k
               
% z, E1 t1 q, ~3 t$ w問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
- e: G, g# [$ n  w
: w  i) R9 S) h7 t  ~9 X$ K
2 x7 g6 r9 J" M& Z, g& R-----------------------------------------------------------------------------------( O( [9 z$ w1 p# h$ a& T% [
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))# k" T# I1 \9 [& Q
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
7 l/ l: t9 X3 |( n6 H, l- [
+ ~+ d# ]: O2 \1 a* L問題二 # 尋區方式 即是什麼 ?
. w( T7 G1 S% J; B
' m3 S4 Q% H9 P1 Z# y
" l' q. e; Q" h* }其實還有其他問題的, 不過一次不問太多了9 K% }' r+ X6 L! e8 V: a
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的0 ~& j' R. |# R& 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 编辑
" }7 x; u% k. g0 a  ?2 k4 |* Q
紫龙666 发表于 2014-7-23 15:229 _: r1 z) d' S" D" a! O0 D
你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。

: y# U1 D; y  J# L5 E, P% D- z
1 U3 A  T$ w+ m8 Q( @先感謝 紫龍666 的回覆  {:4_118:}
' W1 `: x7 {& q! x' g) E7 u" L+ U& T/ t/ g
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘" p2 R2 \, i6 K$ Y: d5 a/ }) }
http://www.emu618.org/thread-20393-1-1.html4 ~4 c! J9 _" g
& M3 Z$ w  W9 P; x7 f) V
下載解壓後 得到一個檔 9 g7 Z1 ?& u* H& L. P* Z+ n; k' C

( u  h1 r% Z7 ]3 m' h1 P& _) A9 M5 u- G+ v
但我卻開不到這個檔, 顯示(無法開啟檔案)  I: w8 r& U, @; V6 c7 f
愚昧請問一下   6052汇编大奥秘 是否 一個文字檔
! L7 X* w2 \8 m9 _' N: e0 ]2 R" C此檔有很多文章在內 嗎 ?

点评

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

签到天数: 2136 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))) y/ L" B4 Q2 N' z  @; s

8 J) I  Y, e- `7 v4 c5 C問題一 # 指令表 就是說圖6 吧 ?% f# n$ Q% J7 h$ ^- i. H9 x. B9 i
2 s- u8 u+ G* @# M# ~8 e: k5 ]2 A
問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13) m$ v7 H" r" T: V' W+ y3 X$ u
0 B$ ]7 m+ |: T& L( r
0x13 不是應解作 數值 減13 嗎 ? 5 F4 ], x! p. |8 E7 }* \" M1 i
! M/ b2 A0 a, v5 c' a
從何知道 0662+(X)=...數值減1

1 ^6 t; ^4 w! E4 T6 W( \; ~; t) u- ~% ?# k3 C+ i! i7 l
[0662]是地址,0x13是该地址的数值3 \2 I" e1 `+ {2 A6 q

- f# |; G- n! c4 C5 U8 t0 kDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X6 J* A9 c9 K2 y, q! \  R

. G$ S+ v% a% x
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))0 `, z5 `( \+ l# O
: i$ ]& v* {9 n* a% a9 y
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
, ^' u! R9 j2 ~. q4 d; }
  K2 Z5 G. q8 e& z; d問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
4 P2 h7 L. p1 T) B7 d* t2 O
6 g. C6 T. S+ [( v$ C+ k
LDA是读,STA是写6 d; K1 X, V' E2 A, F6 B
2 Q- [. D( d1 |1 k0 w+ m6 n
DEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了" B1 }8 r4 h: t! l9 s5 W: P

  l6 r6 v7 S7 ^/ ^BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转8 b& R7 Z: V. ]. K
' k' P, Z# H& Q
AND是逻辑运算指令
$ |% V; Q" ]& R$ E# [. j5 B, l
, Z* h; X3 K6 F& @/ E" q请看《6502汇编大奥秘》- T/ J5 }( I7 Y9 _% `
, Y$ m2 Z3 _  O" D7 M# n# ^- }
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))2 m2 [; o1 O# S( U( ?/ ~1 k) z
; G8 N/ n  i, J) C) [- K: p
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?( v& o" \, ~& ]2 ]

1 z5 W9 u/ d# R6 v- S& U8 }2 W- h8 Z問題二 # 尋區方式 即是什麼 ?

, G# |/ f3 q: N7 ?" J  t1 x0 j* i2 W# `0 J
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?
+ \/ v9 ]% `/ n4 o- Y  _7 s+ d; @% e2 c3 I5 z# z
寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 2 ~" i8 w* W+ B  U: G7 H6 L, {
疾风之狼 发表于 2014-7-23 19:44
: c. h* J* n5 S- g: I/ n2 |[0662]是地址,0x13是该地址的数值& H& G5 K' F* N5 L5 z
7 Y& O: b; @& `  r5 C9 Y
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
4 g; D4 E' X; Z+ r% q8 G& G
: z, L* T3 p* _# Y9 m% H1 |
先感謝 管理員 疾風之狼 的回覆 {:4_118:} # ^& `8 ?, K' F" u3 A
% {* L: s1 n/ ]8 x8 L, v8 N
好像有些明, 又好像有些不明+ r6 B" p! {7 }6 ?' y2 A" b" E+ ?
於圖6 下面的 [0662] - - =0x13
" t9 V! f0 p0 X大大說  [0662]是地址,  0x13是该地址的数值/ A& j- v! u7 T, K0 G

" o( D+ W$ e9 g# C我先愚昧簡單的想: & c, S5 O  M, K1 E+ h2 i* x+ U
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫
  J7 ?+ r6 R4 c" K( d, y5 b(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢
) ^3 U6 O' p, }: ?# P1 e7 h                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的
8 m8 Q! ?8 y+ y; X0 u& A
3 ?1 g+ S4 M4 D: [: G+ u  d' x5 O4 J遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 193 }1 I* p7 D$ h7 D3 {$ P% f1 v

6 m) x+ Y! A! ?$ @------------------------------------------------------------------------------------------------
( w3 L7 e% L/ v8 w  H: r0 n; z7 h2 }: O
跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC5 ]6 c. P4 h2 F) l6 X$ K+ S
DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以6 v7 L9 l& B$ v; P# P2 @: E5 k
LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A
& l! W5 p3 V; L. I( m
0 l/ Y2 g4 Y, k& }0 h/ L9 [2 x8 t雖然 讀入至 寄存器A 這方面 還想不通, 2 }* ]0 p7 L* u( J" \; q1 P9 }/ O
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了
7 L( s. Z' L$ Z$ e& V. X8 d
# g6 Y9 U: m! E# K* L* S7 G- I& Z! c8 j; y
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用0 I2 y2 |( g( z5 K5 C  {3 U
2 D3 q" I. [. j8 x. O3 E6 ]' T
=================================================
( f) y- t' \! F2 y+ r( x
2 n4 Y0 V: e" A9 X  T: g說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
. d4 Q2 [  F8 d  r7 p! G' @6 k8 i: A2 l+ {
一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字, . Q3 {. a+ I' l( ^. N4 L1 X
二 : 跟著 右按 選 以簡體模式開啟
/ d$ C. A5 Q. q  h7 d6 u      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟
8 b( C6 f: P- R; Q: A' Q% p5 N) w+ Z

* n& v, J* k  s" R* I4 ?, l( M9 r8 K9 S  z( g+ A

( P; y3 Q+ h% R9 C; S+ M
- H4 H& m& [# k  @) n1 s
: F/ z0 ~; B" J7 T; p% y9 G# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了
# e4 q, z! x5 Q4 f* M       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44
) u7 y. n4 N3 v5 L( E[0662]是地址,0x13是该地址的数值! \5 T/ G) z" }, @8 {

% u7 h, S3 f* U" aDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
# x7 d' ^/ s7 ~" ]* M
今天又領悟到多一件事 {:4_98:} 1 c1 |- l- X) ]  M* f* w+ |6 F

  ~8 O' [, V: {' ^; v於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白
# Z  o& i) B( i現在又想通明了少少& G1 {, B. F7 M7 U
---------------------------------------------------------------------------------------------) Z$ S: B* X3 _5 P
3 p+ j( v: H/ m, r1 C& z+ D
中間寫著 :. {# V, `( Z4 v: }8 g! P. w1 s( f
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A( C7 A5 \3 r% u5 z. o- _! ~
起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?
1 S) k% p* L( p3 r" P0 L或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ? " H/ c" N8 W& W* ~8 h9 p; \
+ E8 v, G0 M8 F+ c4 X
原來又是 16進制 的因由6 P4 c! c/ _) g( u

: n. {5 V- g! q' E% E在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F  j8 U7 T2 O8 g9 ]$ j
即是說 9 之後 不是 10, 是 A
- J4 K5 W% @4 j/ D) G3 F" {/ U' |
所以 1234+6 不是=1240+ F9 }. B8 a$ l# t+ h3 t9 h% g
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
/ w# n  w) X: Z8 m" l. Y所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
& [3 Q8 F' Q8 s! J
! R" c$ a# v. u: t4 P==========================================6 H. m3 d7 T$ Z; n( Z9 F
0 }7 f0 ?6 Z- R  e9 |
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了+ u! }) L2 Z* _9 g' L3 r% p
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝& P$ F% j* i6 X, z+ d0 A! i
; }) ~) z5 a" x! ?
其實研究如何修改遊戲, 真的是非常困難, 且非常耗時8 Z$ M' V7 v: |" ^. \  M
我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
# e2 S9 m3 n0 H( d$ G$ ]8 U6 A% {' y5 o! O: O5 p6 N
说白了: i+ w8 i3 G& x
修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
2 y+ e& S1 o7 ]7 B8 C8 S
疾风之狼 发表于 2014-7-23 19:443 X& a5 N+ p; g( ?
[0662]是地址,0x13是该地址的数值
! [3 f) p8 R% n- V8 l3 o9 k
1 ~: _) H- `) u2 E8 P, oDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

: Q8 ~" [6 k6 w; m9 V  L5 X: L
# e2 \' i* H' u" i) W終於成功修改了 赤影戰士 受攻擊不減血
  r6 \. S7 p5 o- W/ u% U2 t5 K* I4 I7 V& r, o2 R! q* r

/ m# ~/ w' w( a
1 V& k" i7 P$ o9 m  C今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了# b8 I: V$ F$ r2 {
我曾試把此方法 套入其他遊戲去修改: w. S( m  c! R3 W* E, B
但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型3 w/ e* c" E2 N" n, v
所以都不成功呢, l- f: q- G5 A4 X% b2 Z' E0 Z
最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-11-19 13:58 , Processed in 1.081054 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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