设为首页收藏本站

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑 ; ?' V1 t" s3 c

/ p% M( P9 w' ?) g- g3 I4 a( F& T在此先感謝 管理員 疾風之狼 以下帖子的分享# w. i  S2 o* x; q) F
http://www.emu618.org/thread-21186-1-1.html! l! |% a  V) E7 M0 `: b' o" i

$ U8 Q0 C# X! u, l- `8 O我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了8 u- D# D8 x6 z6 B8 L  L! q
成功一刻, 真是興奮莫名2 X7 ~6 B3 \' ]( y) j5 |

8 u. Q5 r1 W- {
/ Q' v- o/ B) l/ k9 R4 v
4 ]2 [9 H0 @9 j# e! Z; s
) p& h, C2 i( q* J不過也只是 完全 跟著指示, 過程中還是有很多疑問,0 e# A; n. d4 b& a8 W/ B
如不解開, 那麼修改 也只是 局限於 此遊戲0 Y4 `4 O9 n# ~( B# G( k
3 Q1 Z0 P5 _( R0 |* p
===============================
# [% p- o  B: ?6 q6 s/ e. E4 g# `) e( r/ @
圖6 後 的一段文字還是看不懂
8 \; J# ~5 U9 A) i) N5 T7 [4 ?5 \1 B4 ^; L5 T  K
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))* ^* n/ l8 F* U
問題一 # 指令表 就是說圖6 吧 ?
8 |  M4 v+ e1 l$ z- e
0 v7 h- B( v! E& P問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
" i+ z9 K, z  \* I+ A$ A4 `  Q                0x13 不是應解作 數值 減13 嗎 ?
5 a7 C+ R8 c0 l  c7 m3 N) H! a2 F                從何知道 0662+(X)=...數值減1      
: b( v+ X& v- [+ u/ c. Q4 `" K0 E# z6 Z8 }# t/ X' G2 M* i0 [
-----------------------------------------------------------------------------------, s, X0 l( j+ C$ h8 L. ~: I4 `7 v" t
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
' X! W7 j$ P7 D9 P問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
% G; I- q3 J, R* u- H8 {                # Y- M8 T- b) U9 h8 h
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
% w; q& i2 n. Z+ q) e4 p( s9 _$ f: D  E' S- C
' w' b- M6 ^! v
-----------------------------------------------------------------------------------* c: ]. Y1 {+ r, Q: E& n/ g
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
$ Z* L3 b" _! T$ B問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
: W& f; ^7 f2 t% e* R+ {
/ l' }/ T! W! e# e4 b+ Q2 x2 S問題二 # 尋區方式 即是什麼 ?. V- i; v2 v" f$ j0 }% v( B  p
5 E1 v" ~0 }7 I: ^5 h
. `% y  j9 O& \4 R2 p
其實還有其他問題的, 不過一次不問太多了' G! ?, ~" z3 n3 O- B
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的; Q  a  n6 c: u/ A: b" \
就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑 ; D, Y. w  b* [
紫龙666 发表于 2014-7-23 15:22
% Q+ `/ U7 T; v! k你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。

! N- n) c; \/ {# ^8 f& q7 ?+ s
7 \% `/ C: [0 M% c- O  T, U* s先感謝 紫龍666 的回覆  {:4_118:} . S1 a4 J7 {( n! P. q
  |8 T, I! a- q+ A7 n* b/ f: r$ d
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘' ~8 d5 n1 ~$ T5 p' F
http://www.emu618.org/thread-20393-1-1.html
; |; ~4 r* C( p0 [1 _2 y# |
% m+ Q. l% Q; I: T( S0 ^7 p下載解壓後 得到一個檔
4 L; J+ ]* X2 u: x1 o, m
- G8 @. n9 t  k( {, C: T$ ]
7 w& _) W0 I6 v/ R9 {7 N, W但我卻開不到這個檔, 顯示(無法開啟檔案)
1 J7 c; ]% z, F4 _9 n- y$ Z0 |, N愚昧請問一下   6052汇编大奥秘 是否 一個文字檔 1 r8 ^! d8 K$ N" z0 B+ H' F3 B) Y* D) N
此檔有很多文章在內 嗎 ?

点评

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

使用道具 举报

签到天数: 1915 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
8 {4 @( I& w6 K) D  V5 q
" N0 D/ R0 b, M  t; d問題一 # 指令表 就是說圖6 吧 ?
4 B1 U3 T* I$ V0 p2 ]; X7 O. V
/ p* u6 f. G4 x* K/ P問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
" W+ p5 N6 w& d
% _; \9 ]  u. o3 P9 x+ ]) h4 o0x13 不是應解作 數值 減13 嗎 ?
- c: T8 @* P& R; L: _! J: N) ?6 q
6 q+ ~, p6 l' }+ }, ~從何知道 0662+(X)=...數值減1

. J; o1 t5 S  R
; L4 G& G) c* d3 ~5 u( [[0662]是地址,0x13是该地址的数值' R' ^- }" u& k6 k. p1 K2 {) u  k$ S; t

8 k6 d$ [3 ]3 J4 Q' E$ m2 DDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X
+ h( j& \2 e" x8 v) p. w9 C( i) a* x) Y- j% M6 {, v) a
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))+ h$ M3 a9 ?( D7 P( Q  t
5 J7 R4 d( P. ~: u3 p
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?% _/ X0 o( a3 O1 b) b

. M3 J9 V5 M" w0 K. n問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA

1 V4 D0 X! t7 o% Y* f. d( P7 n$ S0 o( L' K
LDA是读,STA是写
! L& @* Y# l# w7 e6 e) {
( |0 M: i3 C% r$ J3 T# uDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了
% b' q1 O9 l' Y3 t
( ]4 J" W* I: Q. V' ~) iBEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转, c0 K8 i6 |: O! k0 v) E( W

8 x) e1 {& F( k9 ?5 \6 ?: d* t9 @. y$ j7 lAND是逻辑运算指令  h+ V  y  B3 R$ q

- w# ^& N4 P: d0 i4 U1 M; U请看《6502汇编大奥秘》
1 |7 B6 I# C; Z# Z, x1 m, T3 S3 }; d$ W8 x/ J; l, c
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))
- C, w! J. |# b  H5 c
; p/ d1 u! e3 i& O+ e問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?: V( M% J; F. t1 E1 w7 d1 d

9 }! B2 W) L. h1 ]# K, h問題二 # 尋區方式 即是什麼 ?
0 B7 t2 K8 v# o
/ a( z6 P& j1 h, W+ M) ?' Z
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?
" s& h" v2 I4 w$ S6 p% E9 M* x/ I  f6 G4 ~
寻区方式请看《6502汇编大奥秘》
回复

使用道具 举报

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
- n5 a9 ?7 k% |8 C1 b# S
疾风之狼 发表于 2014-7-23 19:448 I3 G' X2 t* E  Q
[0662]是地址,0x13是该地址的数值) {1 V4 C6 L+ L0 ^" s! {& o6 k6 b$ {8 D/ P

4 o& H- P9 e) |8 f8 mDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

2 u+ `) y0 G. O# P; Z( W' q  y+ b. _1 n
先感謝 管理員 疾風之狼 的回覆 {:4_118:}
$ [5 b" `- o# @$ h) B
, A9 f) G8 B8 L/ _好像有些明, 又好像有些不明/ `2 k4 y1 F8 n
於圖6 下面的 [0662] - - =0x13# y8 y* s" j3 t- D  ?) _
大大說  [0662]是地址,  0x13是该地址的数值
& m% M5 X, Y* F' T
% A! j8 q( o8 p( j! s: F我先愚昧簡單的想: + u0 A+ ?3 z  L3 K8 e& k
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫
! H2 ^& a( E, Y& J8 X(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 " y! S) w1 ~1 @5 P5 N
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的
( W- m  V/ ?& T; z; @9 f1 x% P/ b/ }0 _) x8 R: J1 q
遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
6 v# I" h. }/ E& y: r, _2 L0 r& l3 l( U8 _/ b6 \! _9 h  j
------------------------------------------------------------------------------------------------0 V) G0 l3 I  N2 _

8 T2 ~; C/ j5 D. |% W跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC( k; o$ F$ J3 O7 ?2 o" T+ R  H
DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以
# `7 G) ?  S& i; ELDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A ' X4 A" x. k+ G
5 T3 i5 R0 u3 c( P
雖然 讀入至 寄存器A 這方面 還想不通, : |9 y! B) E3 v) P* L* P
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了 ) Y. i! C5 b1 A( `6 F

$ o9 x! L3 {5 P& }  q+ k* _% k. ^4 Q
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用
/ ]+ g0 X1 F& v3 r% l( U+ m7 Y. @5 V7 X) Z$ W5 N& {
=================================================: k6 h5 s7 a# ~3 [% O

2 K. \+ A6 p8 b! o9 q說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
. g( g' L+ D, v; }' C& ~6 [; k' X$ {9 F5 m- b
一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字, # F) s: L! h- r0 W
二 : 跟著 右按 選 以簡體模式開啟
1 r. G% S/ s, Z1 w      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟
) l8 k0 V- X, w: W$ G% w7 p  o+ B2 a' D
6 O+ J% O, r* z% V2 H( t( Y
" D! ~/ x# G. K2 [9 s# e, L+ g+ Y, U/ G& ]. x. L# O1 |  ?$ _# `

2 Y: U, O* I: C7 h# k5 i5 X* X& w( q' {

7 D- z4 {' g+ O" w# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了
9 c' z( Q& B5 J+ c% a       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜
回复

使用道具 举报

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44
! ~( j# d6 A5 t" t0 A  d8 m[0662]是地址,0x13是该地址的数值! a0 {. W8 U3 @' a. {- i3 E8 k! i
) [- ?' I! G4 ?- j9 a
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
1 x" ^7 ^* `% u* v
今天又領悟到多一件事 {:4_98:}
+ [* q, K& D" t0 \" T9 J7 S
+ P/ C% b4 e8 u" }. `於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白3 x1 t  e  H6 k+ f& y3 ?0 E3 Q
現在又想通明了少少
& r2 s1 a! Z6 y; m3 }$ i! I& f---------------------------------------------------------------------------------------------
0 `1 J1 z4 {; j( ~# e1 Y0 r9 d
; u' ^6 K* r' v% X中間寫著 :
3 V* j1 |+ v  {3 G3 C$ v/ w- l: Z舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A
" `% ^6 @0 p6 G# G0 I  Z5 w/ g起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?' q5 J: K+ D/ R: g5 f
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ?
* I; ]: S+ n2 _3 m% w2 f: E/ r2 C  M6 L: K6 c, r, ?
原來又是 16進制 的因由
8 S5 W6 B9 I  T/ X9 y. v& r8 Z
' d7 e! F7 M( p# d0 N0 H' h& o& F在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
& P2 J" e- y" C' C即是說 9 之後 不是 10, 是 A' w* D+ z8 E: O( f
6 u% X# l) b+ `+ `& V1 i6 q
所以 1234+6 不是=1240
/ \% x% S5 x  d6 X* R個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位 " o, T! g$ K7 K* G' F9 s5 j
所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
6 m+ ^. G) ^- n
; ^7 J% a8 l, b& P==========================================
6 u" n' z4 T5 f8 n# y5 }1 T- Z0 V5 e" \
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了
! I' o3 i9 ]& ?( }4 c除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝
( r& ~9 A# K2 {
+ w- e0 V7 j( q6 }, y9 S其實研究如何修改遊戲, 真的是非常困難, 且非常耗時3 W! I4 y' n& ^8 @8 e- J) f
我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜
回复

使用道具 举报

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
- K8 L$ z) u5 `$ [* y/ S: r- s! L, X8 D& S- l. ~
说白了
  h: ]1 Y' _3 B# n: r* \+ g修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

使用道具 举报

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑
1 }) T3 o; ~1 W6 o+ Q
疾风之狼 发表于 2014-7-23 19:44
8 V/ T# J, \4 m, `+ _* a4 i[0662]是地址,0x13是该地址的数值' ~5 k( L8 O% I! [' M

- B' e! z7 Z# Q# TDEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
. W+ ]3 S9 g  p4 r

- K% F1 _* k, a3 i3 T. W/ u; H& G終於成功修改了 赤影戰士 受攻擊不減血8 p  Y* t) v& r1 b( v3 z

: i$ w1 m, D. T
, f$ A0 w1 ]1 b& ?& a0 }, B9 [$ [& p
今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了
  D4 a, {, V: Q我曾試把此方法 套入其他遊戲去修改4 x) _' H; m# d, k7 ?
但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型$ k+ F) b+ g& c/ H
所以都不成功呢
+ P7 Q8 f7 n. K& Z最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-4-7 14:20

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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