EMU618社区

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
9 V  I& ~7 f2 w/ Z% \0 V! K6 H6 C
在此先感謝 管理員 疾風之狼 以下帖子的分享. u, f5 d( x2 {( K
http://www.emu618.org/thread-21186-1-1.html
2 v, C0 T, }3 y% z* e0 M3 ^$ s  X/ H9 [
' ^4 d7 E* F* u0 m5 O+ P我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了
5 H( U5 u9 C* @成功一刻, 真是興奮莫名& H) j1 ~8 T( y+ p+ a
$ y+ t: h( {! V; e3 v1 `+ t

1 @: j( U- W9 Q9 ]! Y
* ~, ^5 M: F. _6 ?5 P+ a
* M+ n6 i% ~( ]# ~不過也只是 完全 跟著指示, 過程中還是有很多疑問,& C# U& p/ Q2 A
如不解開, 那麼修改 也只是 局限於 此遊戲
* @# y8 R. t- Z- D) R' Q. p2 @
7 S4 P6 }& {3 f* _- i* P  p3 f===============================
9 e' h5 ?9 _+ P! U/ ]* p8 W
% A# F5 P( C7 o; c. f& f- `圖6 後 的一段文字還是看不懂/ J, k+ s  q1 R! A- ^& F* B" l( _
9 K" {" l6 P0 _/ j) t
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))" D5 i/ K/ I4 f7 G
問題一 # 指令表 就是說圖6 吧 ?& J, Q  R. \! G$ r% w

! N; H" b( @' }/ `1 n* s/ M& Y" Y問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
7 J8 ?8 a3 K% N9 K" r2 z: [- E                0x13 不是應解作 數值 減13 嗎 ? ! z. S9 R6 J* T4 D/ y* q
                從何知道 0662+(X)=...數值減1      
7 |5 o7 t) g' I0 @1 ^  ]! a& K; t' b
-----------------------------------------------------------------------------------
  J; {* r, M7 J+ v% z( P3 w[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
( ^$ I# G+ u, ]問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?% s9 s0 D) ?) H& V
               
4 U5 M5 m3 x4 j. e  H: P; m4 i問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA; o8 q9 q& C. N! s% g
, F2 A% x" D4 H7 u

0 v# p, a+ {: P1 S+ J-----------------------------------------------------------------------------------
2 e! a& K% p) O[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...)). ]* ?& u8 J& d$ x$ V  F. o0 d$ p
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?# C  o* O% {& b0 ?
7 X% L- `/ ^: ^8 _# S; \! @1 \7 M0 C
問題二 # 尋區方式 即是什麼 ?( O" Y+ _6 f# m

% k5 {) I) K, z' o9 z  j5 v
$ ]  h- v; V, N2 M  {. r4 c8 u- d其實還有其他問題的, 不過一次不問太多了
( ?4 _3 v) m7 W. w, v* i5 k. c在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的) @6 @; r- H4 {
就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑 8 K1 v4 ?# z; p. d0 @; w
紫龙666 发表于 2014-7-23 15:22
* v  m2 ~1 V1 T7 X你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。

- z* h8 R2 [1 H+ i& [+ p
4 ~5 l* W: m1 @, l$ U& M/ R7 R1 q先感謝 紫龍666 的回覆  {:4_118:}
2 c7 \0 c# g% J# v1 u. I  W+ C' [7 c4 `0 F* {) w
我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘- b( }# l- b" r: X; Z, B6 n' _) i
http://www.emu618.org/thread-20393-1-1.html
1 [0 v8 _" U/ }2 |$ {6 B- x5 d  m& p' j$ S5 N* B& R' o
下載解壓後 得到一個檔
1 {* g; e7 [) ]! p3 Y" f
$ U! {% o0 N3 B# V1 k; o! n8 W
7 O' ?4 @7 z! d2 b  _& f/ @( m3 G但我卻開不到這個檔, 顯示(無法開啟檔案)  ~2 L( ^# e& B4 E
愚昧請問一下   6052汇编大奥秘 是否 一個文字檔 * z1 x5 o3 w1 t4 g9 l, }- N  ?
此檔有很多文章在內 嗎 ?

点评

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

签到天数: 2020 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))+ Q  W' `( e& E" j. O- |

: h5 z: M  w5 w/ F* U1 k問題一 # 指令表 就是說圖6 吧 ?
) w' R' b' ^! P& O; B* Y" t3 K; Y- p: b) N0 o- X5 o$ H
問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
  o. x- c/ R* a5 ?1 t* g3 ~+ U; R
1 r0 X% F3 D' y9 @6 A0x13 不是應解作 數值 減13 嗎 ? - G$ r+ A& V7 P' U6 O: A, N5 b4 d, p

  n8 l, v! f5 b+ r2 U: ?. @0 k從何知道 0662+(X)=...數值減1

( D! U$ l! z; h. P. X. _
0 n$ d' @' h  V" j: s; O7 g/ \, a9 c  C[0662]是地址,0x13是该地址的数值
! z* h2 v- [6 c3 {1 Q
" `; f3 @: t4 _+ p5 }DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X7 k1 S* f" H/ K& I& S% J
$ R1 I* m/ _6 I4 ~4 k, m6 e
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))) g9 m; t4 O9 d& B+ [9 t. y1 H
5 X& Q1 h2 |+ v3 I  h
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
: w- s+ D8 [* E# Z
6 B3 j) r) Y4 X9 g2 ?, i問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
  D; F. G) _  z0 m4 [  F7 b2 G

! m# d" E" o1 A: p8 q- YLDA是读,STA是写8 ~* F% d  P0 Z" Q$ Z

4 ?8 ?8 V6 q2 ^# M3 o2 EDEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了5 e; F! w6 V  y8 _" ~6 I4 R( X
  i: x7 ~& \+ I/ }( `5 d
BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转! q# I4 a- C& O3 s# V
  b2 M; e$ u6 n8 n
AND是逻辑运算指令
2 v+ \7 G# H0 h8 N' @3 u$ R2 v' b- ^! o) h4 d. f
请看《6502汇编大奥秘》
/ n+ x! E: E+ R; v+ c
9 S2 {$ S% Y1 d8 a! z9 p  ?
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))8 U0 {' G5 C% c
! m4 \) N, p  p# \
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
2 Q( ]- F) U& E- @# _0 s5 ^: i% |' c/ p& T( _/ z1 Y
問題二 # 尋區方式 即是什麼 ?
8 [5 Z) C- G1 q
" \4 V2 v& \3 K( p5 ^! H( l* U
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?9 p  M4 k: S& I8 o% L

! U& {8 I1 q1 ^& N& |: s7 D寻区方式请看《6502汇编大奥秘》

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 & D) A- a7 i! E; Z; X
疾风之狼 发表于 2014-7-23 19:44
6 _5 F6 T  @; y2 E" z[0662]是地址,0x13是该地址的数值
* o! Z1 V2 y' y+ i/ g! |' e8 u( ^$ w
, W/ W5 i$ K; {DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
  @( f# B% z( ~) E0 G' d

2 `, G) U# S. p* f先感謝 管理員 疾風之狼 的回覆 {:4_118:}
1 \+ y  m2 B) |4 p( y* P9 T% u
0 u6 M" O2 K, h8 m( T3 O好像有些明, 又好像有些不明
5 a/ {' J: l, N1 f8 ^1 W! c9 R於圖6 下面的 [0662] - - =0x13, u6 n* o. G9 }' E; ]$ M6 X( B- B6 i
大大說  [0662]是地址,  0x13是该地址的数值
: l/ P0 R. O6 |" F. m: G7 k8 D' f6 V6 M1 r. l; s0 w- f% k4 K
我先愚昧簡單的想: 9 F9 o& H6 Q. d! C- B# @
(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫+ P) d9 |8 e8 `) a/ e* B" i
(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢 ( y* g4 A) @& D3 X* I" a& R
                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的
7 K- l$ r. t5 f8 r. ^
, _+ r2 b  V' ?0 ~遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19/ ^+ G9 X, O2 e$ Q5 r6 H7 P% K9 D/ M
+ t6 x( @4 M8 g9 Q  [( s' `7 F
------------------------------------------------------------------------------------------------9 G$ k' L2 k' Q  f6 H& J  e

) S% E. c1 a6 t, A9 `) C' {2 |跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC
+ y4 n2 Y5 F; Z+ L. \DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以
$ a* E$ p: g$ y! D' `1 ]1 S0 P  a+ FLDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A
3 K, n& u/ \" \& b4 u  ?# V9 Y6 l/ V+ v
雖然 讀入至 寄存器A 這方面 還想不通, 1 G6 _! D2 T2 V, q. [; B
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了
  H. _5 ~8 r; |5 N9 b+ k, C- \5 g9 V9 `6 t5 N. ]8 l- h9 z

- V# a7 j5 {" P+ n$ H. L% m' c8 N# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用6 E+ I" |8 m5 p. |" D/ U

5 c3 d8 m! y# |& B( t- [. @  L=================================================. x/ _& `4 B. e. y( c
* Z% Q* p9 H$ d
說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :
! a( W" P, }' r" d) s  B! |/ f; u" @5 j5 l" j7 x
一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字,
- S6 G5 p( M' f" K; P$ L二 : 跟著 右按 選 以簡體模式開啟' d; L4 j3 c- v: p
      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟& F, V/ p+ g: h2 i- S: T
& f5 q! V0 P3 y* V: `8 {: P' E

3 w  x: @$ V3 ^( a; q( m; u( G6 C$ a8 i1 E0 d3 `. e  L
/ F7 B1 B  ~2 d2 ^9 {6 L) b

7 `6 Y- l2 [7 r& N: S4 W- ]  W, V/ ^( G/ I* S) h. |5 u4 q
# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了
& F; B1 W9 Y) D       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:449 q+ R% u! Z: Q3 Z# B% ]
[0662]是地址,0x13是该地址的数值
' H9 ]( u1 w1 c! {: d/ X4 o# l% I  f7 F: h6 y3 ?5 {9 C, I$ B7 X
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...

$ N  A' ]( O( l5 j' e- H$ d' u3 z) e今天又領悟到多一件事 {:4_98:} & o) v3 Q, l1 E0 y- J. M- Z2 U+ X

# m6 ~. \! _6 k4 k( ~; K2 O$ Y於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白
. P! v% ]. Q# B. Z# N8 |1 j* l現在又想通明了少少
8 e  j$ A* K. `+ p5 H# S---------------------------------------------------------------------------------------------
6 k( u7 x+ b# u) ?; x/ D: {9 |  ?  h9 g  |2 Y6 [
中間寫著 :
- b8 a7 E" u3 ]舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A4 X2 s( X! J& _6 N
起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?+ K6 Q8 U2 N% z9 [9 k  _/ Y( b
或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ? 2 I0 d( v; l' M; h6 W- C3 [- z3 A8 \

4 I3 i5 U6 N# {8 ^0 `8 ^* d原來又是 16進制 的因由1 b% l$ [" ~; U! P' ^2 a

% i9 H; V) k( B  p" {7 i6 f在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
$ k2 D" A) r6 O  ~2 _( x2 f9 x8 I即是說 9 之後 不是 10, 是 A
! i3 K- a1 `! i0 T) {/ ]. u! c  E8 L& C- Q. K& `$ U
所以 1234+6 不是=1240
, l, }7 d; I; W個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位 5 K' F  {, R/ Q4 ?) ?
所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  3 M7 Q; p' c0 z+ \3 Z0 q3 x- s
) M7 x# q( M% h+ m( h$ ?2 s9 k
==========================================, x( Y9 Z0 _/ b$ g. E1 E" a1 G5 |

, {6 Y; {1 b. U! {( q其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了; p( v6 a0 g6 O6 ^: L
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝
7 a0 h, Z' w! C1 D5 q! |
, p- y  A- n) H2 d8 ^其實研究如何修改遊戲, 真的是非常困難, 且非常耗時
; W8 W* {* p' m$ u# @我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改1 I( @6 }7 O8 b

6 Q3 S* b$ o9 \说白了9 [, F! ^# L4 t$ R
修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 3 V0 ], ^- ^/ e- b) x' ^
疾风之狼 发表于 2014-7-23 19:440 u7 F* O* a; W* J
[0662]是地址,0x13是该地址的数值
4 @) w5 o) u1 A( x7 s4 C! l1 G  U
% l. v; N/ k% A4 a+ `DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
" y* g& R; z) K  m4 r0 U

& p* r$ L  S- t9 S# A$ C9 Q1 A終於成功修改了 赤影戰士 受攻擊不減血' X& w. z9 l, I- `9 C

# s. U1 N) X2 m: l4 w% f$ {' n: I! E# A( T0 ?4 J

1 D1 R( ~+ M6 b4 P8 e. \$ ~6 q今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了
2 ]% n) W# R3 S. k我曾試把此方法 套入其他遊戲去修改- ]. v6 j/ U: ]3 ]6 I; R
但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型5 W# Z5 j$ @) u) c; k2 b
所以都不成功呢
" r* s, m. B) K' n最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

本版积分规则

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

GMT+8, 2025-7-26 21:42 , Processed in 1.083984 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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