设为首页收藏本站

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

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

[复制链接]

签到天数: 204 天

[LV.7]常住居民III

发表于 2014-7-22 20:31:21 | 显示全部楼层 |阅读模式
本帖最后由 fanco238 于 2015-1-31 17:10 编辑
2 }$ @* l, Q+ u  J" y* [- _3 r! `6 k5 r. O: D
在此先感謝 管理員 疾風之狼 以下帖子的分享9 N) W; O% `8 F* O: Y; C  j$ s
http://www.emu618.org/thread-21186-1-1.html
5 F8 u) ~. b, Q& O: b  q4 q8 c! r2 V) L' J; p+ y# {- p# _1 m+ I
我按著 指示 也成功自行 修改到 FC赤影戰士的 不減飛鏢了
( \) p, J. D; g$ U- z" T$ H2 J4 {成功一刻, 真是興奮莫名
  G( |; M2 M' K1 Z3 F) _0 ?/ W2 a& q: e

5 ?, X( o0 ^& m, z) n , ]# q" }4 s7 \& P" |3 Y4 v+ m
! |* O" Z) v: @2 B
不過也只是 完全 跟著指示, 過程中還是有很多疑問,
, |$ W* y# q. ~  Y如不解開, 那麼修改 也只是 局限於 此遊戲) W6 k* s8 y' w. t6 u3 S0 w
" G4 o7 C- g4 \8 E. O6 j' F
===============================* W1 X/ G' A4 k+ t( T7 j0 }

! @* D& J4 d6 h' U( l, n& W圖6 後 的一段文字還是看不懂) b4 a3 ?$ _8 L/ c

) f( `. P; [+ H' S' H( h  r5 [# ^9 j[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))) U( H4 U9 p8 u7 }
問題一 # 指令表 就是說圖6 吧 ?* B  a8 [0 g* h

: P# u; n$ s/ n- u  L' v  z2 v, ^0 _5 T問題二 #
為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13
; p' u# X1 d& B0 N( `/ W/ a* b! c  J                0x13 不是應解作 數值 減13 嗎 ?
0 [$ T# N0 p$ t# v) H7 Y$ e  x- j                從何知道 0662+(X)=...數值減1      
- H* O3 c7 u! y7 D# a, d. a( s6 l( h, |/ |8 I. {8 E9 C- ^7 M6 t5 h9 |
-----------------------------------------------------------------------------------6 F8 f% P3 y: g
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))  w8 O6 O- |! K  r
問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
/ F- S3 L5 ]) A+ e               
/ e7 J/ Q/ K! k  x' S' d1 }問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
6 y- ]& e# n* E" s) ]' `. _. Y* M% g( a2 |8 O! i$ M. n0 k

# J8 z: o# S; [, c2 w" t" ]-----------------------------------------------------------------------------------
) @( E& v! m6 Q+ L1 p! }8 o[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...)). G& J# n. \  x5 T
問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
" L$ K  @) O% _; c1 G+ K3 Z+ x* g7 F4 b9 Z
問題二 # 尋區方式 即是什麼 ?
( T% N: ]9 s. r- E
# @. W* s. a" [" y# D; ~
- \4 n0 y3 l, ?; S6 m# y) l其實還有其他問題的, 不過一次不問太多了  e8 c3 S9 \) z) e' j. J3 t
在此 懇請各位懂得的 大大 及 高人 能夠指點, 偶是有心慢慢學習的+ G2 p, H3 \( U
就算不全部解答, 懂多少就答多少, 對偶可能也是一大幫助
[发帖际遇]: 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 编辑
* h6 z  k4 ^4 L2 ?2 y% e' t- ?5 i
紫龙666 发表于 2014-7-23 15:22
- ~5 W) h. g" x. u7 i' q你要看6502大奥秘,就知道指令是什么了,论坛有资料去下载。

9 c; G7 t6 R% s, g7 j8 V2 o* ^
/ A4 F5 a( p+ j% `先感謝 紫龍666 的回覆  {:4_118:}
& v# i9 ]; N  H4 q* S; ^+ t4 t' _2 I$ ~
0 G8 t# i- n$ w/ ]# x我已於 管理員 疾風之狼 以下帖子 找到 6052汇编大奥秘8 K# Z5 v! y  {  W( L* t' M( Y4 F3 c1 v
http://www.emu618.org/thread-20393-1-1.html
: \) N2 f# R/ v6 n) d1 P# l" V$ {$ `: N6 S; S
下載解壓後 得到一個檔
6 J2 M. f" o6 a* }
, g6 U  v# B0 ]  {
7 j6 ~) `  l4 M) b但我卻開不到這個檔, 顯示(無法開啟檔案)3 z- ~4 R, E7 @; b5 L
愚昧請問一下   6052汇编大奥秘 是否 一個文字檔 & d) [3 H# j  R! P# U( [
此檔有很多文章在內 嗎 ?

点评

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

使用道具 举报

签到天数: 2032 天

[LV.Master]伴坛终老

发表于 2014-7-23 19:44:38 | 显示全部楼层
[ 一 ] : 那段文字第一行  ((查指令表得知 B84 這個地址 DEC$0662,X  指令作用是將0662+(X)=真正暗器地址的數值減1))
/ b6 S# I; X9 c) r) \2 j0 j* G4 Y4 y/ U2 ]8 l' Q5 v6 B1 V8 S9 m
問題一 # 指令表 就是說圖6 吧 ?
# k, y5 k8 M; Y2 M
. B. c9 _* E# ?+ }; C問題二 # 為什麼說 指令作用是將0662+(X)=...數值減1, 我看著圖6 右下角是[0662]-- =0x13! C. z+ R! V) A9 R" w
5 G+ D2 j) {) _& z
0x13 不是應解作 數值 減13 嗎 ?
' a% A+ q# A: d: W  I8 F- D9 E: T- x1 f7 p/ I- K
從何知道 0662+(X)=...數值減1
8 r% u0 l; z# T
1 E% Q4 g7 p8 P( p$ p* M9 ?
[0662]是地址,0x13是该地址的数值. o) \. H5 Y- I  W1 b3 |6 ~
, K# G1 l  o6 v9 P% y
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$addr+X的地址数据减1,结果存于$addr+X9 l) T% v3 g) h& Z, X& ?

7 x6 f$ Q8 h8 x( u( [1 Z9 V
[ 二 ] : 那段文字第二行 ((既然這樣, 只要把這條 DEC$0662,X 指令 改為 LDA$0662,X 就可以讓暗器數量不減了))
" t$ c8 |% Y4 F+ J7 ^! |1 E0 a0 \
' D& y8 i2 ?2 L- W1 E問題一 # 為什麼 DEC 改為 LDA ?   LDA 這3個英文字母 是從哪裡知道  就是代表了 可讓暗器數量不減 ?
# f! F" _- Z& t3 J% w- u4 ^
# p9 t9 O! u  \0 m# j/ H問題二 # 我在圖6 中間位置 也看到很多 英文字組..例如 BEQ, AND, BNE, 為什麼 就是要 改成 LDA
) S  k) ~+ o4 r& ?! b
  r; E+ G% C/ G% C
LDA是读,STA是写
% B; q/ B7 S& V+ }+ s
: P2 J: N1 {: Q9 I2 |DEC修改为LDA,把$0662地址的数值读入寄存器A,0662地址的数值维持不变,不就不减了
" U6 ^3 c8 |  C3 {2 s) N" h0 a) s1 w! B, X- P. h3 S
BEQ和BNE是条件跳转指令,BEQ是等于时跳转,BNE是不等于时跳转6 y8 W  ~% p8 e8 G, L4 p! K6 ?

5 m5 r6 p, T; C: K1 [2 k- z: m7 s% f1 rAND是逻辑运算指令+ F" ~" f5 l- v8 M5 y* D
1 Y3 G& k$ i) s( ^
请看《6502汇编大奥秘》
- V+ Q5 i3 D9 @2 ?  j; B$ x4 w
0 x1 ]! N1 q; z) W9 W8 N2 n% t
[ 三 ] : 那段文字中間 (( 查指令機器得知 DE是DEC-absolute,X   BD是LDA-absolute,X, 注意尋區方式要一樣...))/ S# K) Y) q6 S7 b% o5 q

, g7 H0 Q# `4 D, y' r: R問題一 # 指令機器 是說一軟件工具嗎 ?  在哪裡可以下載 ?
/ i# M/ K! U+ j! m' h2 O; q* g8 R. n
問題二 # 尋區方式 即是什麼 ?
- G2 p2 P3 X9 P& A4 T, }
5 O1 s2 }. \' o' ]: T
我是说查指令机器码表,没有这指令机器码表,你能知道每条指令作用么?
0 m6 S/ H, Z* T  U6 R, E$ d& d5 e& X6 x2 d6 c8 D
寻区方式请看《6502汇编大奥秘》
回复

使用道具 举报

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 00:52:40 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 + t+ [) t0 s0 E2 D' N
疾风之狼 发表于 2014-7-23 19:44( x/ P; y! |  g/ I' n2 u
[0662]是地址,0x13是该地址的数值
  k- E% g  E8 r3 z1 Z# d0 E: O' @, M) H* u4 s4 ^- ~
DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
' P  y! [. h5 U& O) @7 b# M

" h5 i+ J/ ~1 O9 s* B- A先感謝 管理員 疾風之狼 的回覆 {:4_118:}
& B; b* o8 A$ S3 ?6 u
1 _7 y# }6 x/ k好像有些明, 又好像有些不明
! a5 E/ @0 z3 T0 Q於圖6 下面的 [0662] - - =0x139 H3 p4 I5 q7 A7 a& h8 i* W  H
大大說  [0662]是地址,  0x13是该地址的数值
4 k1 R" J) s0 ?9 q) \0 C  k/ n2 C, r) Q
我先愚昧簡單的想:
6 k7 d6 t4 W8 c(( [0662]是地址 )) 想像是一個 掌管了 飛鏢數量 的 地方名稱 飛鏢倉庫
9 h+ Z# n! D. n! j0 y/ d& c* X(( 0x13是该地址的数值 )) 數值當然是 飛鏢倉庫內 有多少飛鏢
6 X4 Q3 r+ y) o. L+ u$ }# {  E1 F                                        13 其實是一個 16進制的數,   如果化成 十進制是 19, 因剛才是用了一發飛鏢按暫停的
. F# x' p6 X- J" x1 J" I# L0 T* z8 _, N$ }
遊戲拿到飛鏢寶物始初是 20發, 用去一發 就是 19& }' R5 \  t$ Z, c( m

" D4 R6 X9 V  f3 `, k------------------------------------------------------------------------------------------------
0 [1 n6 \; |3 i; v, D4 V
3 y: ?& b9 }% `  f, O) ~跟著我們看到 圖6下面的 DEC $0662.X,   重點 是DEC$ r! D0 T( j; I
DEC 是 自减指令,  即就是 這指令 控制了 飛鏢 是減數量, 只是把它改了 就可以
- }# e. O/ x$ m  gLDA  是 读入指令,  即就是 要改到 把 地址 讀入至 寄存器A 2 j6 C+ f% E$ z8 ^  b
+ U6 a5 `( M( x) r2 E* H) v  F' ~
雖然 讀入至 寄存器A 這方面 還想不通, 1 S1 d+ m8 z& W) E
總之 就是改掉 DEC 不讓它有自減的指令,  就能達成 我們不減飛鏢數的 目的了
7 o  p3 m# ]' X6 P6 U2 z7 c
$ d5 I1 g8 n& v$ c* A; p( |4 L: T0 Q! U( e' L. i$ y
# #  最後 看來一切都是要 先 熟讀 6502汇编大奥秘, 否則就不知道 那些英文指令的作用
: B; U7 K9 n6 L4 c4 k
# L: t, [2 J: L! j: S$ v- {=================================================
( W, P( L- l% ^" a  y, z" ^
8 q( c( o7 p8 B7 A說回 6502汇编大奥秘  CHM檔,  偶也開到了, 方法如下 :' B2 W. D3 I' u
8 w6 R* H0 u% Q
一 : 檔案名稱 及 所在的路徑 要更改成  不能帶有中文字, 2 V4 ~' I/ s- u( ^
二 : 跟著 右按 選 以簡體模式開啟3 N$ k5 P" ~4 e$ L" r
      可能我的電腦繁體字版, 此CHM檔 是以簡體字去寫, 所以就需這步驟
# L! |8 }7 L2 f5 T& i6 x+ z8 I
( G; @% H" H0 D8 j$ g( O4 _  {$ c; r  ?. S: J
$ o% a" v/ U0 o2 p7 V

6 K1 S: ?4 p9 X2 u# [  w
+ ~+ }, s* g" H; T8 \5 ?% `( @, _& M
4 c2 }3 f, Y, \# # 這CHM檔 可說是一本教科書, 從現在開始 才是真正 考驗一個初學者了
1 N- j8 A2 L" G' j; A0 g       如果沒有 耐性 及 恆心, 或者沒有前人 的指導, 相信都很難學會呢
[发帖际遇]: fanco238 发帖时在路边捡到 2 个 柠檬,偷偷放进了口袋. 幸运榜 / 衰神榜
回复

使用道具 举报

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-7-24 15:34:22 | 显示全部楼层
疾风之狼 发表于 2014-7-23 19:444 ~% \0 A: U  ^+ \! [* `
[0662]是地址,0x13是该地址的数值. c* Q8 {3 h/ t2 y1 v

$ S- E7 |4 F+ }- n. `* A/ \DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
4 z8 n0 ^9 ^* C$ J
今天又領悟到多一件事 {:4_98:}
5 [- R/ J/ t9 x$ v7 Y
2 I; r3 [1 b. s, y" A於1樓始初的鏈結之圖6 下方一段文字 中間寫的 起初看不明白( Z! V) y/ ]+ b- P
現在又想通明了少少
0 x  d  n- C+ u# v, M6 R---------------------------------------------------------------------------------------------
; d: S; j( f2 ^; p& |  S4 P  g, g: h5 K7 {: P9 b7 n4 {
中間寫著 :
+ J8 d+ {/ V7 I  v0 H舉個例子 假設 X寄存器 數值是6... .... ,  1234+(X=6)=123A5 G, n' v  n- ?7 j( A2 E
起初真不明, 還以為大大 是 一時手誤 打錯字嗎 ? 1234+6  不是 等於 1240 嗎 ?
4 j0 a( z0 v# H4 J或者 那個+ 不是 加的意思, 只是 單純一個符號嗎 ? 5 [3 R: n9 _' `" k  ?
  i# v1 l9 _* ~" x8 ]9 A; Y
原來又是 16進制 的因由. I0 N( h8 n# d  V& i& q3 e

- m/ z) Q/ e9 f+ E* X2 b$ Q在 16進制中 16個碼 是 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
8 D" O1 @0 R0 h/ o& q即是說 9 之後 不是 10, 是 A
/ \5 u! z+ t! F. r) C) W$ O! }% K
所以 1234+6 不是=1240% d: a, n  O3 K; b" l5 F
個位數原在 十進制 進位變成 10 , 但在 16進制 不超過16是不用進前一個位
. A& }+ S" |1 l( r7 I8 o所以 1234+6  個位 4+6 不是等於10,  只是 等於 A,  就是 123A  5 f5 H! z* `4 a

( d( J. j- A* P3 `* a==========================================0 W+ }$ t0 a0 r# z/ r+ Z
) ^1 Y. L# d4 X5 V2 C
其實我也知道 管理員大大每天也很忙碌, 其實不用回帖給我了& i, x. |; u4 D( U" t6 X: f
除非 以上 是我 理解錯誤, 才請作出修正, 也在此再次感謝
0 s! I+ Y8 I6 H$ }, Q' Q8 D( ~' [( j5 m
其實研究如何修改遊戲, 真的是非常困難, 且非常耗時
' b( q- B0 y2 Z% z# s我是現在暑假才比較空閒, 就看看我 這今年夏天 能領悟多少吧  {:4_108:}
[发帖际遇]: fanco238 打扫环境卫生,被奖励 3 个 柠檬. 幸运榜 / 衰神榜
回复

使用道具 举报

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2014-7-24 19:04:00 | 显示全部楼层
搜索->修改
% u' c" ^0 R) q. W" n7 W  A. l: k$ j# o
说白了
! J1 B& M: @+ Y& ]3 m修改游戏就是这么的简单

点评

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

评分

1

查看全部评分

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

使用道具 举报

签到天数: 204 天

[LV.7]常住居民III

 楼主| 发表于 2014-8-31 20:58:20 | 显示全部楼层
本帖最后由 fanco238 于 2015-1-31 17:13 编辑 6 k; M9 t" r6 y) X+ Z6 @
疾风之狼 发表于 2014-7-23 19:444 e0 J0 p: U) I4 u3 r" ^/ C7 h
[0662]是地址,0x13是该地址的数值
3 A& Y. C/ ?5 L* z. y, i7 h8 ?
. B5 r* W, p. }DEC是自减指令,DEC $addr,X指令是以寄存器X的值作为偏移量,把$ ...
3 w6 j2 n/ a! [; X. q' Q
9 U+ F: V" K2 T; j" ~1 i. Z% x! j, U1 ~
終於成功修改了 赤影戰士 受攻擊不減血$ `8 y) [( y# d

/ K" g* ]8 b; [& t( h) _$ E- s! c, v! D) F

9 g8 t) d1 Z. Q# a% K% Z今天是暑假最後一天了, 整個暑假結果也領悟不到什麼...  看來是資質有限了7 @7 H$ o8 w# w" c
我曾試把此方法 套入其他遊戲去修改7 b. t6 a% Z$ C5 R' g
但可能我心中想改的遊戲 不是受攻擊不減血的類型遊戲, 是受攻擊就馬上死去的類型% o6 ~& w8 i- c" |% P' m
所以都不成功呢1 z0 s2 L+ P2 ^5 e) _
最後雖學習失敗, 但也非常感謝疾風之狼大大的教導  {:4_118:}

点评

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-5 21:31

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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