EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
, Y  u3 j- T# U) J- s, g. ]2 A3 \2 g% @& T+ ~
在此先感謝 管理員 疾風之狼 以下帖子的分享# d6 ~8 @. ?3 H0 T
http://www.emu618.org/thread-21186-1-1.html
; y+ o  o3 {, l9 Y" \1 b
# i! F/ g2 ?5 s我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了/ @% M+ v! V' @/ K# A5 J# ^
成功一刻, 真是興奮莫名% `6 J- E1 W# b7 C+ W
0 L6 X+ U2 S# Z4 ?% |6 u

8 \0 Q1 i% h; j, F& n 1 @6 ]* F% s/ |, ]+ v. g1 A
1 R, u: _2 y5 k- ?5 h3 t0 l/ H" }
不過也只是 完全 跟著指示, 過程中還是有很多疑問,
6 D3 F$ F& ]1 |/ ]9 X* r9 `6 p" x) v如不解開, 那麼修改 也只是 局限於 此遊戲1 L( y1 i( G, j+ b
8 e; D. {8 t, }$ a" G
===============================
% v& L7 {' E+ M+ R* V8 B9 y, A8 D$ ~0 l# u6 R
圖6 後 的一段文字還是看不懂! q' [2 f7 k, k. g- z# \

' y) S3 K6 D$ Z/ _+ T- o# |. ?[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
/ a5 ~( a/ o: d7 C) b$ B問題一 # 指令表 就是說圖6 吧 ?7 _# |9 ?! Q1 u9 h2 m

# |0 c( l& g4 v9 E5 s: ?2 R  |1 Q問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
% v7 k% K8 P5 X# T( Q' _                0x13 不是應解作 數值 減13 嗎 ? % w: _8 W  i* v) p; p
                從何知道 0662+(X)=...數值減1        e4 v' M6 C4 y* [2 y
) w( N# w1 {: y  ?* X
-----------------------------------------------------------------------------------* x7 \" t* s9 S& j/ o/ [
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
4 V! E8 @- ^8 ?; |; p7 \! i8 i1 @0 E問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
6 ]; X: K  }/ V5 m               
; _, K/ K+ |+ ^% V$ ~問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA, g" P% d# v0 k1 k
+ r7 B. m# {! g
# n, h" \( J' n5 X/ x
-----------------------------------------------------------------------------------
- C5 |# }8 q+ B2 D9 o: q[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
, v) {3 Z% S- b問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
6 ~' g( e# ]" @; _* ]2 C7 I1 z) m+ f  V7 ^1 q
問題二 # 尋區方式 即是什麼 ?2 B6 C. i3 h. V- l$ |

$ w2 V5 q/ R) R: E3 H0 ?+ [; n4 t8 h4 Z; E+ \
其實還有其他問題的, 不過一次不問太多了
' a3 f. h# C$ a# e; u$ k' G3 f2 s在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的
- f* t$ w5 @8 N就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑 / _; Q- ~, S. j$ X
紫龙666 发表于 2014-7-23 15:22
0 l9 W. b+ D8 }6 W4 J你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。
3 n( w- K: x3 G- l9 X
! _! ^; O2 `$ U( ^
先感謝 紫龍666 的回覆  {:4_118:}
7 q5 e1 I% x1 P7 R2 ?0 I7 G! o9 C9 U% G3 |
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘9 N# s+ V1 }$ q. @0 w
http://www.emu618.org/thread-20393-1-1.html
' L/ r2 P; V$ H$ m# M
8 j( U) G/ P# L5 H下載解壓後 得到一個檔 / Y. U! C( u* I2 B0 g

+ p, |3 Q) z9 _! G. I/ g6 Y! K. Z/ L  J
但我卻開不到這個檔, 顯示(無法開啟檔案)
& ]% Q* L+ O2 ^0 w# H6 J愚昧請問一下   6052汇编大奥秘 是否 一個文字檔 ( t0 n' Q# p7 [2 ?) n
此檔有很多文章在內 嗎 ?

点评

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

签到天数: 2173 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
8 B  l; f* |, F! R$ C2 c) }) m
問題一 # 指令表 就是說圖6 吧 ?6 q) X. Q: S/ b5 V7 G

# h9 u' M, F& t" |0 [0 x( }問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x136 r% {' M# p' d8 I. A" e% j  r6 ?

" T; T5 R) L: u/ j7 c0x13 不是應解作 數值 減13 嗎 ? ' X* N% A/ z- {0 }9 R9 S
" q& Y9 e0 Z- d9 y2 z$ ?9 p
從何知道 0662+(X)=...數值減1
+ M! Y8 d& {( _8 d. X+ _0 u) o
7 I7 m/ I, R: v$ `5 B# a+ V
[0662]是地址,0x13是该地址的数值$ E4 G0 t$ ^) k7 W

/ s) G& [! U# i( V. ~8 D1 e3 HDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X) K& Z- p( }& l# D8 R
1 k, Z; z  P$ Y" K% X
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))8 g" d5 s7 X9 F" A( P
8 ^# C( }* X" O' Z5 K- g
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?/ s& R9 L7 r) ~$ C5 G- |
4 v3 R2 p( f& |! B
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
9 K9 N. m# E9 V; y3 Y" @. V" p
2 V! t: h. L9 w% e, h& _6 z
LDA是读,STA是写4 g8 y( N4 u* {* j

, O7 U5 l6 q. `  `1 z; S5 U- FDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了4 a; {  M# U: I6 p/ \; m" O7 B# n; B7 O

- T5 W1 w" e. R6 gBEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转
6 `7 M' `! h" `+ ]8 E! ]3 u; q: \& J6 M5 s' I$ o$ X
AND是逻辑运算指令
- q. L  h2 R4 D" ~0 T0 K
: Q% {& [8 _# {7 K# D请看《6502汇编大奥秘》
; u2 Y* J) i5 t6 ?$ W# f
5 l- J- p; ]' Q. a2 N1 T$ ^
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
3 }& X3 ?$ C, B  J
8 x( ?' {2 M% H& p( o問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
- z" l" `7 W) n& A
2 S4 @! r" x/ d- D# O問題二 # 尋區方式 即是什麼 ?
# w9 D& ~0 s4 S7 z5 P0 ~

9 ^, m9 ?' y3 k& ]1 V我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?
8 [" Y9 B0 d. i1 L3 ^7 ~8 x# y  C+ y8 p: H. s: ~
寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
$ Y; x2 X+ X# U( C
疾风之狼 发表于 2014-7-23 19:44
* w2 z% O4 n; o4 p* v( s[0662]是地址,0x13是该地址的数值& \& m0 _" G6 u! N: w& M

+ ]1 |4 z# @5 A  Z6 F) g" YDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

" h6 j8 V; Z, l  d3 S2 c
5 d8 `$ b! I0 q先感謝 管理員 疾風之狼 的回覆 {:4_118:}
  b0 [- h# W. l- v- Z3 P
' x* C+ U4 Q9 \  \! o) R1 T好像有些明, 又好像有些不明& L" O3 H4 Q0 o$ w& k, w* w' o
於圖6 下面的 [0662] - - =0x13
# {  R5 V- x9 g$ d大大說  [0662]是地址,  0x13是该地址的数值6 z5 {+ u2 @; u: M3 q
: v) K5 Z7 Q0 i) L1 p# a
我先愚昧簡單的想: . l, f7 E6 f& P7 Q0 s$ U, V
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫# I4 ~) Y( A5 o9 \* N9 @! I7 n. U
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 ; r# t9 T- O; |9 f$ q
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的
; ^' y, Q) L' l' l& H) w
9 d+ |9 o+ `( t# I2 F遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19( `) a, X4 U$ o: m7 d. a

+ f/ d% N! y! d5 x; z7 K- r------------------------------------------------------------------------------------------------
7 W- \7 I1 \. i2 M; U' D" D4 z7 ~0 }% t+ k, x& V# S: n
跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC3 _" ?* L9 i5 Q( D1 f* Y1 N. e
DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以
% N' {; A8 C& m* hLDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A : @" J( u# @  Z1 e
* {7 i/ @9 k" i  q
雖然 讀入至 寄存器A 這方面 還想不通,
- v" _' i% y( G4 U/ f: a" m總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了 $ ~! s, G5 w9 b, p( E9 Z

0 s2 ~/ Z8 R, h. z* F6 `+ j' H) r9 t
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用2 c' N; l1 ]% H& [% E8 R
7 }; c! l! P3 l9 w# t, m  V, E4 W
=================================================
; M7 G  V: h4 P% g! Y
0 q- I  l! C0 N說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :6 D& Y7 e( }" ^! |2 `  W" P/ h

2 L. D5 @" R6 W' c& D9 }一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字,   l5 z" ?+ c5 A1 l' C# l
二 : 跟著 右按 選 以簡體模式開啟
' @$ ^) x' W2 ^7 {0 }( `      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟
3 w9 ?$ j; Y  W7 J0 c
3 U$ [; f8 z* z, o2 r
7 d, O* L# @* ]& `! C7 W: i$ `- N5 g+ h8 v0 r7 ]9 U# a
) S) c: o# `% G) }/ @

" }; p9 X& m9 G9 E9 u0 t
/ U2 `2 K' {0 V4 V- W2 a5 e. i# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了. O$ y$ X9 A: g) G. A
       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44
3 }- X- H, A2 \[0662]是地址,0x13是该地址的数值
- x7 j/ o: i; ^8 X4 s
, t6 l4 |! a2 X' Y* }DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

6 r' F, I) X6 P' Y. @1 O0 c今天又領悟到多一件事 {:4_98:}
8 U2 _7 f6 s# d0 _% A6 n
; D: e/ ~- t4 \8 Y於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白
& N6 J8 Y. l4 S. v' B1 c5 K現在又想通明了少少; W5 T6 v  l" ^$ b
---------------------------------------------------------------------------------------------9 w, F, @* t  q, [$ a" K

0 w! Z& Q* h, I# y( t中間寫著 :, N3 f1 ], k: y4 H+ G
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A( X' A4 l! P) ]
起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?; Y! t) J# P0 T; i# G& _% n
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ?
5 l$ {7 X7 W; {7 t* p
+ N3 [' s7 `5 L& u原來又是 16進制 的因由9 n( ^9 J; [8 z8 j# Q8 a. w5 R
- l& d8 d* v6 y" [3 @" b  ^
在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
! b9 p  B& B* a, b- y即是說 9 之後 不是 10, 是 A
) P5 W: N5 G3 N5 o. t! F! r3 s) d5 s& i( w8 b7 l2 Y$ Z- u& r
所以 1234+6 不是=1240
( D! x$ C  V2 U& l- c  [; g; |9 q個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位 - v! P; ~  I3 x+ J' F
所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  0 V2 Y1 }0 |- N' ^- Q
3 S( @* f' k, \5 b6 y% o- ^
==========================================% f2 J0 N5 ?9 K! b8 B
( @* c" c( a7 u1 x& s2 p
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了
% x- j% z  m- X3 s除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝  o8 {  q6 W: H4 A: [! g
+ p" b+ M2 a0 L% V9 @. B' `
其實研究如何修改遊戲, 真的是非常困難, 且非常耗時9 ~. ]! a7 }: b
我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
4 z1 r& d) k. x3 z  [
- D. M& o! @" R3 ~说白了
. ~1 O( d# }7 v  A; g% w  M修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
" B9 j/ b  i* E4 X/ c3 }
疾风之狼 发表于 2014-7-23 19:44
9 b) ]: b/ {0 ?) c  J( z[0662]是地址,0x13是该地址的数值
; I  e+ j) Y& Z4 y# x0 Y3 H4 J9 h5 i
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

" r) c- s: p9 `( Z% T4 e* h$ N( N" o0 A2 a/ a& a! j! T& G
終於成功修改了 赤影戰士 受攻擊不減血! W- i6 a# s' e' w1 o# `

4 n5 w4 i5 D3 }9 i: N" g$ P( z( X; Y: R- f: K3 X

) V; P2 X7 z0 ?今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了
5 V! v8 M& a& R4 e. P+ |我曾試把此方法 套入其他遊戲去修改/ X9 o' C4 X! ^2 r& y. _) W
但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型( [" v  M7 \5 ?& j4 I
所以都不成功呢8 \1 M  @9 Z2 {$ Z6 H
最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-12-27 15:20 , Processed in 1.087891 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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