EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
2 a7 Q9 F8 k, v* t1 q0 N; |8 @2 u7 t) Q" @  Y. i( l
在此先感謝 管理員 疾風之狼 以下帖子的分享
- n' @; g9 x  I& X: G9 G5 L# f1 _http://www.emu618.org/thread-21186-1-1.html
4 \3 p( `8 C+ E3 S4 t9 ]4 R5 h  Z; g" J0 a. Z7 P5 q. A+ Q6 l( e
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了; V6 W' }! p  g5 T4 S
成功一刻, 真是興奮莫名
! r4 @3 Y4 ?& c# D( T! S% a, H1 p& a/ K5 a2 {
, M  S3 ]2 i& U4 f* y

4 \/ \  c9 F) j1 n  N/ s* M2 U5 [
$ Q& }% v* m0 H( {. L: K* N" y不過也只是 完全 跟著指示, 過程中還是有很多疑問,6 ^% Y* p0 y9 r' u
如不解開, 那麼修改 也只是 局限於 此遊戲
2 i' J5 i& K4 l" [  K  ], u$ r3 T* F' O
===============================
/ _' [# G' n& l& h( m3 |7 z# o+ C8 m! D7 x/ N- e- ~. Q  P0 l' _
圖6 後 的一段文字還是看不懂; p1 }  M* {: b5 _$ E/ T; @

( x5 u) K/ z- S3 _2 \[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))+ g3 |8 p8 R2 X. ~
問題一 # 指令表 就是說圖6 吧 ?, n+ Y- Y3 Q% x
0 _9 v+ C, r& i, {- H
問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13- C0 m+ d8 y6 |: W  g3 n$ c
                0x13 不是應解作 數值 減13 嗎 ?
% g: I3 M" ]2 i4 ?( ^9 _                從何知道 0662+(X)=...數值減1      
- @5 b& W- O) T) K  o* ^$ |$ r: a9 ~8 e1 S, u
-----------------------------------------------------------------------------------1 N0 m+ i" W2 k0 S
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
6 e& z# t: R/ g! n問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
. i$ F. y: g9 y. |. H  e. ?                2 @+ N- z% _& [$ ?  O2 z
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA  E) Q. \5 X8 J3 t$ z9 h! _

2 @' p+ d, P- O+ I7 w" [- [2 C: m" F* y8 P& f, ]% [# h* m
-----------------------------------------------------------------------------------  i7 ~8 Z2 ~5 L
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
4 u! x4 j3 z. ?) {問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
# B2 j; @4 C5 {2 ?( G! I, j- d0 ~6 {/ T* J
問題二 # 尋區方式 即是什麼 ?
9 c9 l3 D: c, E+ ]* U& o  L# z% P: d2 c% i' S

# z' K5 S1 [  K  V5 U其實還有其他問題的, 不過一次不問太多了1 H+ P  N0 J% I- p& h1 ~
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的
9 B4 n/ ]1 A9 G; ]4 p& B) q9 P3 H2 Y4 y1 d就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑 0 M5 R7 ?7 r  h
紫龙666 发表于 2014-7-23 15:227 c& s8 @, N9 ]5 D+ Z- Q5 P
你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。

( l, O  [+ i" G4 J
: ]4 a7 z4 }, I7 A* i/ p先感謝 紫龍666 的回覆  {:4_118:}
" b0 u! u2 J$ I" n+ ~% x9 T' p' E$ K% f3 g* n( e% m
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘- _& m) |; {; J4 Q" r" C3 s, w/ d
http://www.emu618.org/thread-20393-1-1.html+ l* P7 W) k, T3 h2 h! K
3 q1 H+ d. \, _9 D3 r: f& l
下載解壓後 得到一個檔
! \8 d( l9 S9 Y
' h2 H- L3 ]! v  H, O; [9 |* p: z9 |' e% W8 q4 `3 q" z" R
但我卻開不到這個檔, 顯示(無法開啟檔案)* v9 w  ]7 d4 g8 w+ F
愚昧請問一下   6052汇编大奥秘 是否 一個文字檔
' D3 m  y9 a8 I2 ]0 U此檔有很多文章在內 嗎 ?

点评

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

签到天数: 1590 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
1 ?& @, e! S% |, f/ x2 o8 X+ N0 X4 S8 c# R: N  i5 V8 A9 e
問題一 # 指令表 就是說圖6 吧 ?
# i4 C2 _5 Q, O
# k  q) U- `2 b; Q: w) p問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
; w& |1 C9 L/ F+ V$ ]  P8 _% S
* d6 t) P2 L. I! d# a" D0x13 不是應解作 數值 減13 嗎 ?
. l9 x" S5 |3 Y% {, B5 e7 [
3 W9 a/ o! B$ `  c: ^3 I% C: Q從何知道 0662+(X)=...數值減1
% `* H4 u$ B1 M! F

# O# P! Z+ {8 {& Y3 G[0662]是地址,0x13是该地址的数值
6 I% e8 N2 Q  C+ |. \. R) x4 s; f# Y* p! d' _7 H
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X
( g3 P" R; r% v3 [! g4 w
- R, t) k3 b' J. [# b
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))# `. }7 G. [) P# Q

. q, X1 H0 X  [7 [/ h問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?1 N9 j6 |5 i6 ]- h7 Q* V4 G+ z

$ K; ^4 i: R/ S- l( o問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA

0 u( B4 I  y7 {+ \' f7 o9 u0 x/ _+ \) ]% I
LDA是读,STA是写
& U; n; s4 ~+ L9 Y! {
6 {. Y2 g3 ?7 pDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了( D+ v9 ]( L; d

4 q; _% J1 c9 g( }; Y/ |BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转
. \4 y! ]! k( a% W: g+ I5 k* T" d3 g$ g; ^$ R
AND是逻辑运算指令8 S* R* q3 E& u

3 Z4 I1 Z# ^4 a! I- V. ^7 g请看《6502汇编大奥秘》2 \' L/ a9 k( V2 q7 R; b$ O9 O& |8 H- `

, s7 d/ a3 L5 b+ K2 A+ c$ y6 G
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))6 x# i4 g( \( z( `+ u7 Q- U( P5 \

3 q4 ~1 T& _2 k+ \. u問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
, d6 O  ^6 Z8 W1 Q: X. h4 B3 }: N/ Z$ o8 N2 u* `4 S8 ~7 v
問題二 # 尋區方式 即是什麼 ?
/ o; Y6 h" R0 O: A$ T

/ {/ V' r/ j3 g( e( S9 R! [2 d我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?1 o$ l) Y* A, c* J, X% O

4 R0 l& k- |+ C. Z$ A/ X, \寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 1 Q3 i$ m( e$ J4 A
疾风之狼 发表于 2014-7-23 19:44
. c; Q! S1 X2 `/ w+ [[0662]是地址,0x13是该地址的数值
0 t( h+ b! B: E) {- D  b) n  z
0 I2 k! k. R4 V6 S9 g+ U0 V: JDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
+ t8 `) p" e$ s0 h2 X, E! X0 X
" S8 v5 ?1 I3 u9 x
先感謝 管理員 疾風之狼 的回覆 {:4_118:}
4 |! e# ?& H: L& ^! e! k6 u
  B0 ~' D, v4 l4 ]/ d( D- |好像有些明, 又好像有些不明
. v+ p7 x9 ^3 h% g於圖6 下面的 [0662] - - =0x13: U$ R0 h4 V% G* T
大大說  [0662]是地址,  0x13是该地址的数值
. j) q+ w$ x* Y, S( }  Q& q' V6 O/ U4 h+ m$ C
我先愚昧簡單的想:
9 v- V# ^" Q/ `/ m% R. ^(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫: j4 V. k4 [$ ]1 A# `' @
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 2 Y  q% n' k2 ]
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的
4 H# L4 H/ a) O; V! P
0 |5 K3 _$ ?! n- U4 D1 b# @遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 198 l+ l; v; j/ h1 N: {
4 \: o9 G: R! }
------------------------------------------------------------------------------------------------
. m( j. u- g& |" y1 }) m# }; ]* R9 F. w& G
跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC
" {- e/ \; X, l) n( L& ^DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以+ |$ v6 _7 Y, ]+ E- l4 L- w
LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A
* [+ A9 u& G' {9 p; J0 G* C& z% v: L) f8 W& D5 v9 K' Y- E
雖然 讀入至 寄存器A 這方面 還想不通,
4 S% h* ~; P" k8 L/ Y總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了 7 {* v, K) h5 J9 i7 S, q, F2 ?
) l0 K2 V- B. G. x
: }$ q$ X4 Y/ z) R9 N
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用
8 ^) ?8 X0 W) ~- i+ ?# w3 N. b" V
0 w# X3 |+ C1 O=================================================
6 b4 G. a1 C0 q
; c5 C$ _1 M4 O. p  Q5 A說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :4 U# h/ d. y" V6 U+ d

* X  f" |  S4 @1 e' ]一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字, ! M: R' c  p) @& ~
二 : 跟著 右按 選 以簡體模式開啟! }) a6 X; r) C0 H5 o' b
      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟
7 ~9 I' n" d+ C. Y2 E, q4 T% N" Y, e' a- e3 [7 u$ I5 P6 J4 I

; f$ S$ k1 ~4 g+ `! j! t& C& r+ i
3 U+ o- d0 D3 F' n$ t7 P# J* g2 X. d; w+ p5 i& p
( \5 m& S$ R* \7 t9 p3 V
7 l% b6 C) ~* x
# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了& W& j) o$ Y# D- g# E# o, X
       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44; g1 @$ d9 D- w4 D1 Q
[0662]是地址,0x13是该地址的数值
7 a9 O/ u+ x2 R! r" G, s, T
. T% ?) J) Y) hDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

( ?" X( j* W9 Q+ {2 s1 {今天又領悟到多一件事 {:4_98:} : v- [  |2 }1 `

# D; s: ]$ N( z; c8 ^3 w/ H- M於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白( b( I. ?8 F9 Z4 P# c3 T' D
現在又想通明了少少9 \" ^( Q+ L/ Z/ a
---------------------------------------------------------------------------------------------( v. {6 |1 d' F1 X) K0 _" y3 o
  q, u( M6 J+ Z; v* E: ^: J
中間寫著 :+ u- |. c3 o7 g
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A
) g0 r0 @1 ?4 B3 |起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?- z8 ?" {# z9 d
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ?
- x2 Z/ K/ q- k( O9 H
, Q' o2 x4 M/ r/ k: N4 \- E原來又是 16進制 的因由2 P2 ]+ o6 o5 o- W4 H& x8 @

( J: G' R1 |, Y+ M4 i在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
" _) {( ?& J$ I4 [0 y- ~即是說 9 之後 不是 10, 是 A2 _2 ~# [7 ~) l8 V: I, O

* V4 y& Q+ E5 o9 E2 d2 b6 N所以 1234+6 不是=12403 Q; W! N: n' f' \" d
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
: H* F2 ^0 s* H4 T* ]+ i: O所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  * Z7 _9 p3 T1 d6 {
! I" c5 m5 I5 _' u
==========================================
- L2 U$ [; H1 {: @3 a5 c. e
2 _8 N: g% f* ^$ |3 W$ f/ m  C2 Y* v( l其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了
( p+ H* ?. p' y) u6 s除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝
1 n% b4 t6 \$ H# Y. m1 X! u4 c# m$ O; W/ i! _$ w" Z6 o
其實研究如何修改遊戲, 真的是非常困難, 且非常耗時5 P' |* }# `7 ^
我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改2 S% K5 o3 @, l9 S" A2 N
$ O( _) E9 i* e' ^7 X- @0 l7 S
说白了
* J2 A3 I0 \  k+ _, s修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
& L5 {# s+ ]) A
疾风之狼 发表于 2014-7-23 19:44, n* X: ?) L8 U# [/ k+ T; M+ r% R
[0662]是地址,0x13是该地址的数值/ Z. H( e+ f% G1 g0 d& Z
/ O: T: r. X" E& ?! P6 }
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
0 U4 J+ x) w& @" ^5 i
1 d, ^: q2 c8 L9 R) ~1 z# d! s( X
終於成功修改了 赤影戰士 受攻擊不減血
2 v' T) ^/ k" R" C# @1 @0 y- N# b2 f2 y) L5 ^# C8 j

: e) M; j9 ?$ z1 ]- T" ?  ~: ^5 l, ], k
今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了) d; R" c7 T" n7 l6 R$ V9 ^+ c# b
我曾試把此方法 套入其他遊戲去修改
6 U. L0 Q; s9 Q% T但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型
- t& ^4 z& q/ u( h5 E% m所以都不成功呢% k$ S  K' ~- ^
最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2024-5-20 08:49 , Processed in 1.093750 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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