设为首页收藏本站

EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑 8 p& B! T( E; e
' l1 M% g' J; q5 G( h
在此先感謝 管理員 疾風之狼 以下帖子的分享
: E: v4 q/ @4 D% K! Phttp://www.emu618.org/thread-21186-1-1.html
# B% S- ]6 E6 I$ [$ j# Y/ n5 a- y1 M: e( s# v7 _. s. P
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了
# K3 ~: T- c  Z% e, Z) r4 N成功一刻, 真是興奮莫名* A% q4 Y. N' G9 }& l

, i" @) i  r0 v* T* P8 I& I" F

  S- M9 J6 h$ u/ a. d2 `& j3 G) f
不過也只是 完全 跟著指示, 過程中還是有很多疑問,# F. F; T' N% j( q; \
如不解開, 那麼修改 也只是 局限於 此遊戲
- W1 e& @4 @. _
2 E) r/ w; u+ u===============================
8 g+ d+ L% H" e0 J, z! x" l- b
7 G9 }2 Y; `4 L+ Y) p9 K6 x. T3 R6 q圖6 後 的一段文字還是看不懂
, s* e, ?/ d. O* p; _$ r0 h0 A7 M; n  B
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1)). Z' k9 h) T6 {. Z% U4 U8 g
問題一 # 指令表 就是說圖6 吧 ?0 g* I; h2 Y9 Z/ T3 H. s. y
' E6 A) l9 e# O, H) l; M
問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
9 Z6 q+ u3 R1 R3 T4 m2 |, V                0x13 不是應解作 數值 減13 嗎 ? ) Y6 w* m, n/ Q( Z9 {2 l
                從何知道 0662+(X)=...數值減1      
9 u) f/ N7 M8 t* w0 I5 M2 K
! k( V% ^( @% [! k-----------------------------------------------------------------------------------( K9 e) [8 ?: _# [
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了)), K- e) ~8 A, m0 q
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
  ?  {8 `5 s6 }! O- U# t                1 R3 r/ _% c- N1 ]- _: O
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA' m, m; [2 l! k2 u) O
) u) t0 Y" C; S
: t* @  _3 {0 T2 U0 h
-----------------------------------------------------------------------------------! L, _) b$ j4 A! X
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))( h4 J! {" m/ h2 K( c; X2 d; I
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?3 S0 `- v% e; Z* e
& C4 w/ \1 |5 L. u
問題二 # 尋區方式 即是什麼 ?0 k1 j( D* l) [1 R

0 s% X. \5 z3 ^, }+ \6 Z1 Y$ s$ W! g: x% v" L. i- E6 i
其實還有其他問題的, 不過一次不問太多了$ I3 C" @  l/ l
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的: @# m; a0 x  N. G0 W, j
就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑 % H" c8 M" {# B5 t1 E1 [0 ~
紫龙666 发表于 2014-7-23 15:22* p& g3 X1 E4 V  `
你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。

4 w: V% `3 R+ f
( {# w- L/ v" n( F$ `先感謝 紫龍666 的回覆  {:4_118:}
, h" r4 ?' F8 d# H& ?' p% i% f
) t8 ?: ]9 q& l: d  O我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘
1 l- A5 l1 F+ u4 Z0 }* ]& mhttp://www.emu618.org/thread-20393-1-1.html  n+ O" m. q+ i! T

- `: y) k) j) P- S下載解壓後 得到一個檔 ; f. Z: @. O$ @/ t

# g3 t) F' B. N
& r/ S+ O) s1 T3 O4 n' s$ h但我卻開不到這個檔, 顯示(無法開啟檔案)
! |: Z/ y9 `  l. C/ V愚昧請問一下   6052汇编大奥秘 是否 一個文字檔 8 s' \( N9 f0 B# n8 e: h! ~9 f
此檔有很多文章在內 嗎 ?

点评

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

签到天数: 1895 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))* l5 i7 v, u$ N; I+ e/ b4 q* ^# e
( o( C3 O. D$ g8 A
問題一 # 指令表 就是說圖6 吧 ?
, f" a. S8 O4 Y+ m: |2 `, g; `, q/ s# i; h3 ^0 G7 ]
問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
' [* n; S7 X9 S6 m1 J# G9 e& F9 H1 r( V
0x13 不是應解作 數值 減13 嗎 ? 6 E1 H+ A4 p% K% V* z" d. f- L
& j" d/ x: y5 }! C  u* `
從何知道 0662+(X)=...數值減1

9 w+ r. o) M2 K
! |$ B- `8 ], }9 S[0662]是地址,0x13是该地址的数值
! l  P# {8 y% v1 ^6 v( D- z( ]8 J
6 [! R3 C6 D4 O8 T7 @DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X5 r* ~; n) ~1 g# D! Y; t
1 c. K  }- P+ ^4 }% l
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
+ `4 C. Q- Y$ x* R) b! O& h4 g% I# K
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
" Q7 N: |( [3 b, |+ D; S: g, I4 x' R7 S
問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA

% G- z1 u1 w; X5 N* E: y) v0 w9 N2 C
: c2 v3 c: H& ~/ J( dLDA是读,STA是写
0 z5 V/ |( p) v3 m- v. l" s3 U: U  U7 F! c7 _, o
DEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了% _6 B1 n- P  N) F% l

6 s; ^6 D$ O: `) p" q1 o3 c1 EBEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转
& x) K: Q$ Y) _: j4 E2 L/ C7 W; C
# x% A/ }/ M0 F1 j" X) h6 FAND是逻辑运算指令1 Y; p: A3 |  H: [- Q* b+ N

( j" O- u1 o. |请看《6502汇编大奥秘》
6 P4 m% I3 F7 }+ @; d( G) s# s/ v3 `. k! _5 c# O+ u2 K
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))# p: s, v1 D8 N8 T" D* R7 l
( I$ C1 [, v) H4 ~: L! i* l1 |# [
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?1 Z( {& Q( ?8 _% c( p' B, Z4 \
" ?0 E; z4 {/ v& |
問題二 # 尋區方式 即是什麼 ?

! F$ ]$ L+ |6 T) e3 S$ G
: I* g5 S2 |( q. N5 c我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?
1 E; S8 M) M# a( |
) H! d& @! I5 t) c( }$ L" I3 ]' ^寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 & V; J3 Z% q) \1 F+ i0 v* m
疾风之狼 发表于 2014-7-23 19:44" z) Y' ^5 p3 n7 K* s1 A
[0662]是地址,0x13是该地址的数值
. h; O0 D0 W* Q% z- D- `2 Q( C6 q7 O
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

/ i( g7 ?: C5 u: D+ o# X; G4 i; H7 S
先感謝 管理員 疾風之狼 的回覆 {:4_118:}
3 q0 a, {/ k2 g' h, l- K3 b3 z6 |& S9 C; }0 z1 x2 H/ j
好像有些明, 又好像有些不明
  Z* y4 J. L, h2 `於圖6 下面的 [0662] - - =0x13- b' \& P* Y# J0 y* Q' B4 F  z
大大說  [0662]是地址,  0x13是该地址的数值: x) y. T0 F5 C; E' _4 ^$ o6 V

8 o( v- m0 B; I2 q7 K; d我先愚昧簡單的想: / t' Z5 B, S1 U& Q( S9 x, l. n
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫; G+ n  R9 r  X6 A0 [  {
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢
8 {. ~9 R3 c( {5 o) }$ d6 _                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的
9 h3 x' ~0 A8 g/ K6 z9 h6 V; {2 r, l, f# q' r' E/ x
遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19
4 ]5 L" Z, H1 R) |& K! W( G5 z& Y9 ~' {! S! N
------------------------------------------------------------------------------------------------
& O5 G& L! G* B! T( T
6 M) K5 t4 `% h( k5 ^7 ~0 ~0 h跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC% b0 f/ s2 s. L/ P2 X* j  u$ n
DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以5 a( j6 |! e$ z% M1 ?2 @
LDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A
$ o6 _* p9 ?7 K9 b$ B3 t$ m' G( X. j; ^, b. n" }: Y  `, G& i8 c
雖然 讀入至 寄存器A 這方面 還想不通,
8 j2 {& |+ t+ {0 ?9 x+ O總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了
4 h$ d6 l5 D, X# |' D" T2 O9 ?
  p. X" Q2 z' |' q: L/ A  b# e" M1 W/ v
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用
+ I( [1 S- S5 W* _! k" Q: D7 r$ Y0 p/ Y, i2 o9 E
=================================================5 V. L9 Y* w* Z1 O/ x, r5 z; l
$ Q3 Z% r8 S  x5 z3 j0 }
說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :7 u9 i0 d4 }+ l

3 `5 t% I1 X: {' a7 T% d一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字, 1 ?7 q8 ?; \4 U* t' D
二 : 跟著 右按 選 以簡體模式開啟  d& k; r0 F: b. c6 z2 x
      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟) m! V- r& t4 T6 b
* n, B& d$ q& @+ m1 ^

& }3 h0 n- E: e. X' M. b3 X- p: t  H! E% T! W

: q- H3 M- M. e7 A3 r8 F. e  g: X# U7 m" O8 p0 C( c( o

  `- J5 y% K5 A: _$ `- ]! C5 F9 d# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了
5 K# J( j. F% `- Y6 ]       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:44
2 U. }& _& Z9 z# \* M[0662]是地址,0x13是该地址的数值
! [, _3 e1 J, H; W, Z3 M8 v* n" ?9 n) X' M/ V& |
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

- N, h6 W* T! H4 d: G) o今天又領悟到多一件事 {:4_98:}
. @0 w- a- @- w8 O
8 M% M- `. c4 ~3 o# I* p於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白" a' B- H. e) q! r( L& x
現在又想通明了少少+ m5 z" \7 f2 A9 B
---------------------------------------------------------------------------------------------5 ~/ w1 D0 N' j) C% X

7 L+ ]/ w9 J8 W/ q* _' z# [中間寫著 :) z7 c9 D$ c! C/ ~. e( e: H- L
舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A5 Z# T+ P% b8 o- `: E0 ^1 \
起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?1 F+ N# M! z% n8 [& l0 ?
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ?
, U5 h. @! J. _/ p. ~' R( R3 o  }+ _4 E- g$ x
原來又是 16進制 的因由
+ Q! n# x* W) f2 ~- x8 y1 ?$ R' E  v; c- K
在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
* J5 X- `( k5 ~4 p7 X" v即是說 9 之後 不是 10, 是 A1 }& G* \$ L0 }( x/ \* o

$ {+ x  b$ I/ n( s所以 1234+6 不是=1240$ ~3 Z# S* w" y8 N; X  e
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
$ ^5 f! r' \" \/ w! N所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  
! c) E+ i( P* Y& E7 ` . ~/ Y' u7 S+ w' W
==========================================4 e4 s! t5 T4 o/ g$ R2 ^# _

2 I; Z4 w  w. o* {其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了
/ K) G. ?4 |9 {6 D/ s除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝
  g5 h8 p1 U0 h( [2 d. [& B7 Q# x; O5 F' s: _2 R2 O
其實研究如何修改遊戲, 真的是非常困難, 且非常耗時
+ p# y# f$ b! x9 e$ V$ R) i我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
. M2 v4 M5 U$ d  |4 O, _
. u: H" h" z& a2 X# ]9 f2 U说白了; [7 n; y+ ~  R. F) x" G
修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 ! I/ H8 v, v' X
疾风之狼 发表于 2014-7-23 19:443 E; T/ e9 x) w) V3 V$ h' J
[0662]是地址,0x13是该地址的数值
- w( \. b0 u) S4 }+ x' {) v" ^6 ~# V5 `" W! y7 z5 G
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

& _( ?3 f! w' S0 k9 t9 k& ~7 F# s$ s# S6 |# @
終於成功修改了 赤影戰士 受攻擊不減血
1 [# C- ^& ]- v, ?, a/ s0 ^# M7 E- M

+ U" b: I" {' }. X9 ~
6 s8 J) T& R9 e今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了5 O# t0 Y! x) n0 ~2 [6 L. x8 i
我曾試把此方法 套入其他遊戲去修改0 v5 F: h) p( z9 g) U$ C8 k
但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型$ e0 ^4 z/ }. L0 Y% s1 A
所以都不成功呢$ P- w! v& G3 I% H4 E$ A3 J, q
最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2026-2-25 22:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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