EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑 1 _3 b) ?2 i% R( |  @3 Y
  V6 d8 m0 n* Y0 x1 F3 y7 D, ]
在此先感謝 管理員 疾風之狼 以下帖子的分享
2 N: |; |+ \/ Q+ B" Thttp://www.emu618.org/thread-21186-1-1.html
2 ^  D* A5 A* F: ]1 @3 k
, B( T  {* ]' ], r; ~) J7 E我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了7 s' e: g( Z$ G$ X2 R2 Y
成功一刻, 真是興奮莫名3 y+ f/ K7 \% [7 n
' R7 J  x9 {7 Z4 a. R$ W

5 n5 F1 r/ g4 v8 P9 V6 n1 M: U9 y/ |. `
$ Z& l: i+ E  D+ c0 ?
) r: @" J% @! F4 N不過也只是 完全 跟著指示, 過程中還是有很多疑問,
6 A7 p( D* W6 [% K如不解開, 那麼修改 也只是 局限於 此遊戲
. {; {" i0 N: A/ o& [3 E0 i
  Z( L2 o) y- ]$ H- \===============================  l5 A& u* Q8 A" \0 x* K

7 k: ^" ?- X3 e. F- c圖6 後 的一段文字還是看不懂
2 E; }  s$ z# l& H
2 ]+ x. H" Z2 k! O% H[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))( W5 v7 q9 D/ y/ o; u- }5 ?: B
問題一 # 指令表 就是說圖6 吧 ?
+ v; ]3 K) Z8 a0 x- B6 ~& b$ j( ?1 v3 D) t  {
問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
8 K  I( H+ v0 Y                0x13 不是應解作 數值 減13 嗎 ? 0 Y6 h/ n. q% `
                從何知道 0662+(X)=...數值減1      
7 n7 v) e% R4 x+ a* l3 J" l+ l/ S
-----------------------------------------------------------------------------------
* W7 H6 w6 m- }[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))1 a2 `0 k8 ~! `: E$ t3 e1 p% f* Q8 L
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?. _/ o% M( g. @6 e+ ?
               
( F0 h+ Z! C% k+ c, w  J6 a1 {. N問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA# U; U* E# L- R2 l" Q& h5 i
! t0 O+ j+ K) C% W0 Y; T6 v
/ H1 F3 v( ~  P" R# E( E5 i
-----------------------------------------------------------------------------------1 U% Q# m  {' h& E, b1 M
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
. i. p! F' a3 \1 e問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
- I# \; [( z+ \7 N. i/ T% O( M+ M! v& s) N8 B
問題二 # 尋區方式 即是什麼 ?9 E* {% ]: n7 n& K4 r% G9 ?

/ {" G% `% Z" Q) e% y2 u2 _* I! [1 o1 P- ^
其實還有其他問題的, 不過一次不問太多了
; }5 _+ ]5 G  J/ F  p* U! u( |0 I在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的
) n' R0 s+ f* \: `7 U1 h2 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 编辑
. u, W* h6 L' Y2 a, K7 h
紫龙666 发表于 2014-7-23 15:22
* Y4 W* G6 i7 [% \) G; U8 D你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。
% L7 N9 J' D  N2 c, x0 z7 `% K
* b6 V9 L: w  [* H3 b) ]
先感謝 紫龍666 的回覆  {:4_118:}
) t, }' }, |: l. q
1 I6 c  U2 I& s8 S7 ?. ?. {我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘! l. A4 P" U) Y; B2 G8 R6 G* p
http://www.emu618.org/thread-20393-1-1.html  ^" F! Y/ v% ^% X0 J

8 E$ h2 o6 _+ k! @下載解壓後 得到一個檔 + O( `$ q7 s# B5 t3 [

% m2 V, }+ _! m1 s9 U
; D$ ^" ]3 s1 d  ^5 d# Z但我卻開不到這個檔, 顯示(無法開啟檔案)
* I+ C9 t. x9 R7 p- W% j9 a愚昧請問一下   6052汇编大奥秘 是否 一個文字檔 2 `! n; _, u# j, G3 o* A/ I
此檔有很多文章在內 嗎 ?

点评

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

签到天数: 2126 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
: a' p4 E- k" ]( P$ v* t- |) ]9 N
問題一 # 指令表 就是說圖6 吧 ?
5 s  F2 q9 f9 _+ |1 F. r* ?  N" u
問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x137 T2 e% q% ]& p$ @% o

( r" L8 {' y  i" B: F2 R- Y8 y4 A/ x0x13 不是應解作 數值 減13 嗎 ? " A! @% c4 T" O" E3 m
9 I: z% x' Y* ~% Z  r; n2 Z
從何知道 0662+(X)=...數值減1

+ {, A# a8 T: z' b; V* K
- D4 w& O0 n5 }; n[0662]是地址,0x13是该地址的数值5 B, V: P3 K! ~, A5 h, e* u4 e
) h9 N" t  @8 u/ [4 p% b
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X$ i: }- T' V! ?- v0 @0 \* I$ w

+ ?, Q7 U! N& h5 t. k6 O
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
* t. ?! n- K: r  X
; E2 T- A$ T4 n* @& r  x0 g問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?3 y- s+ u# L/ F1 K$ d1 v6 b

& L3 t6 c$ @, c4 S+ e9 T問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA

7 ?7 u- u: c& E/ b8 o6 b9 U: B' \' ~3 H
LDA是读,STA是写1 ]7 R- X: w7 U# i" s: U! ~
7 ~0 h* T; \( g3 [7 q
DEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了! m4 z3 @8 a5 u- X/ h. k
# w! }3 S7 f+ e1 G3 ~
BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转
6 ]6 T: |  n6 r: s2 g+ X9 p5 L3 b# \, U) @3 n2 g
AND是逻辑运算指令
- X9 v) `8 ?. |* f2 ]: L$ b& |1 C4 O5 ?; |/ `+ s
请看《6502汇编大奥秘》
% {; Z8 m- [( r1 k* R! i) L: n6 k& ]; n8 ]7 p
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))* Z' w( }1 A) d* m( G
; t. R2 [  ]) |$ o, L/ L) i" {
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?* ^0 A) l% }4 o- u. B2 j
+ I1 V( y- ^3 t" g
問題二 # 尋區方式 即是什麼 ?
8 s# N  ?1 N+ A

, T5 C* _, Q3 `! e0 u$ e我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?% [/ m2 y0 A% t
% M# f) L" f" n8 G) f7 H$ w0 |
寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
$ ?) v0 G) ~% }$ s. J
疾风之狼 发表于 2014-7-23 19:44: C4 m2 W2 o2 G/ W9 X1 a8 e
[0662]是地址,0x13是该地址的数值
; T, W! Z) _$ ?; ~9 w
/ F  f% q: z& yDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

1 H# E3 h* j3 s1 k% N
+ A- u- U4 i3 U2 r4 p+ {/ x! c8 S( r先感謝 管理員 疾風之狼 的回覆 {:4_118:} ! _; X& D. f, W& g% O2 k$ p' u
( |; N6 \/ C& f* b9 `3 c
好像有些明, 又好像有些不明
' \' R& s8 V: F7 k於圖6 下面的 [0662] - - =0x131 J8 W! d4 Q% h/ w8 N
大大說  [0662]是地址,  0x13是该地址的数值/ f% Z8 `2 H6 E# a; H* |8 ?

  o6 I" L& W: J  I6 Z: s  b. ~我先愚昧簡單的想: - d' B; ^/ }0 V: `) v4 K# @. n
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫, [0 p/ j# ]- G+ w2 J
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 . T# U5 R9 K: v1 T. ]" j
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的
6 I- K8 r8 o+ ~9 y4 T3 ?
. ~/ z8 O: d2 H1 M- p5 f遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19; D# b# v# \$ ~& i
* s$ ]% I% w! D0 ?
------------------------------------------------------------------------------------------------
- D' o; M- C1 E7 F8 o* E4 [1 E" W0 ]9 ?) R) Q
跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC2 L& {' \, z$ @. f/ W# E
DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以' O0 \: ^* D, Q2 y9 `5 y
LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A
; p) B. N5 n5 k$ _& s. f; Q4 j4 D$ l/ d0 d7 d
雖然 讀入至 寄存器A 這方面 還想不通, 4 q& [5 y1 V' d
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了 ; @5 @: E( g% G5 I# V
% ^3 \( d8 l+ O4 n
6 z9 |& N7 L' D
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用
4 @" t1 d" \5 p1 D/ V4 w; J' ^- w+ Z( i" I* K
=================================================/ h9 ?$ {3 H7 n5 \

, q- r0 Y' p! k$ S" H  I說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
7 y; C1 x' Y  l1 f8 K. o- ^' `' w! b- C( x+ N
一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字,
7 _! j8 Y( N0 A3 E( e二 : 跟著 右按 選 以簡體模式開啟
3 r  o$ j9 @! P* C      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟, N, X- Y. \" J* @% I: L% ^
6 F* b0 L' }2 B# c* G6 t: W; G

5 k: c% H: D4 X$ V4 ]
; A; k% V" u$ A- R' v# x, C% a0 c/ H* ~3 `4 y: Y& F4 o0 x

  n& D* J% A) Z1 J+ A# Z/ V, Q9 e0 F; o+ ^7 `7 L4 x! ^
# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了$ D. b' j8 B/ P3 D6 \
       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44+ G; }4 {7 t1 C' Z( _' L9 p  ~: \
[0662]是地址,0x13是该地址的数值6 A7 \! F4 I, t& N: s
+ n, w: @$ g+ W- s% ?' H9 \  T+ c# A
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

4 h( q- B5 y, C今天又領悟到多一件事 {:4_98:} * X4 g% d# v# C6 K, `3 h" h

' s- K8 W/ A7 U$ I於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白
# O* @+ K! g; v" O8 ^現在又想通明了少少; O0 D6 M4 J# h% F# M: k( A1 O
---------------------------------------------------------------------------------------------
4 [4 \" _: N! \# G) ~% w8 d- ?$ I' y8 b3 f* g
中間寫著 :3 C9 @0 T8 Y8 b: J
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A- r7 F; S7 d) |! y8 g2 q
起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?
6 L5 r# ~- `) ?/ o" ?( Z或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ? 9 K7 D0 N7 a/ ^
* [# G) G5 ^3 g( r8 o! ]5 ]! i. d2 N
原來又是 16進制 的因由
4 s5 C! K4 S4 A8 O# y: @- H& f: `2 k" q* Z" z. p
在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
6 C. h7 R- C4 }$ l  s' |- a2 o- l即是說 9 之後 不是 10, 是 A  d0 K1 l2 y" k, {
2 ]$ l: D/ N! t9 a1 R
所以 1234+6 不是=1240" G/ x+ s& U  t, v
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
  y  N& ~% e' C" H7 J: W所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
$ r$ G+ P: h1 E, g: L7 S ! _0 N0 s7 E# V, d* m: `
==========================================& l& ~2 @4 A. @- b

4 t/ Q; G% G- a1 `3 l其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了/ V; ^. x8 ]" Z4 c; }* w& B  m
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝
. R8 c6 S* x+ Q' o. v* ]6 K# T, S2 c% D
* j. J( G) X: ~+ G+ {$ N其實研究如何修改遊戲, 真的是非常困難, 且非常耗時! X/ w9 {) F' r% w$ o1 R
我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
9 j% G. x2 t) t! M* N
$ @- i& x1 _6 W% |4 n说白了: V3 [3 N0 D1 }: L+ y) m
修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 # l8 L5 D- A. h3 \" H. i2 i* d
疾风之狼 发表于 2014-7-23 19:44
, m; Y, p" T# y. U) ?[0662]是地址,0x13是该地址的数值
# u* b5 F3 Z& {/ s4 a# V/ t( P& h# l* s
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

4 a; Y, T0 L8 `* `
/ e+ f1 A3 w, Z* n( N/ ]% U終於成功修改了 赤影戰士 受攻擊不減血
& M$ ~  r5 A$ A+ g9 K* e' I$ y2 [, ]# [/ d" J# J

5 ^  A$ B) E6 u$ ?  B
5 a" x3 n6 N" ?今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了* n# _9 @9 c% b$ y. u( b
我曾試把此方法 套入其他遊戲去修改9 ]8 n  l. H6 ]' J  X
但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型' z- n& X: ~" L1 U! }" _7 s
所以都不成功呢) T* j" A& p& s
最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-11-9 08:47 , Processed in 1.213867 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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