EMU618社区

 找回密码
 立即注册
搜索
查看: 81785|回复: 23

[原创HACK教程] 菜鸟NES HACK简单教程!图多杀猫!慎入!(2009.10.14修正)

 关闭 [复制链接]

签到天数: 2135 天

[LV.Master]伴坛终老

发表于 2007-4-21 05:26:54 | 显示全部楼层 |阅读模式
注意:转载请注明本人名字和文章出处!! f0 z  C$ N' f" i' V! B, ~

. a: I) m6 d% j' n菜鸟NES HACK简单教程(偶应N多人要求才做这个教程,有错误请指正:L )8 P8 R; v" y- T7 C2 T, g

( Z! h  x# P2 _4 m. H9 n% HNESHACK相关资料下载:http://bbs.emu618.com/forum/viewthread.php?tid=12675&extra=page%3D25 q! |: o5 s: Z$ ~) m, E

: U5 I# ?; J% Q) m; U6052汇编大奥秘(详细介绍FC的汇编语言,推荐下载):http://bbs.emu618.com/forum/viewthread.php?tid=20393&extra=page%3D1
- S) a; y- W$ X, B! u
- \! Z6 d; S' o: x* K$ [开始之前先说几句废话
% i" I- d  j' J! Z- y5 L2 @/ d( @, x9 u- S- w
第一,HACK之前先了解一下6502汇编指令,NES相关资料里有指令集说明文档,如果你看不懂英文的话就下载《6502汇编大奥秘》,里面有指令中文说明........^_^# Y2 I/ B! N& [( o! u
4 d( E- v: Z# T
个人建议:没必要把6502全部汇编指令硬背下来再跟踪调试,那样会很累,你可以一边调试一边查询指令说明........ h+ o$ [" {; r% Q- o0 g: M( |  J6 E
$ k8 ~: ]/ g& o0 L# b9 m6 s2 n
第二,还需要准备一些工具:NES调试跟踪工具(VirtualNes Debugger版或者no$nes-w、FCEUXD SP等NES调试跟踪工具)、十六进制之类编辑工具(Winhex或者UltraEdit32)
" R9 ~/ _! _+ e1 ~7 k6 ^" O  c& C# R
第三,了解修改步骤:
# e/ P1 M, `6 ~, A0 o! f) ~1、首先要确定你要修改什么。连要修改什么都不知道,那怎能谈上修改呢。
. s# c5 V1 U) ?" d1 z/ E% f5 B2、获取作弊码,换句话说就是要获得要修改数据的地址。推荐使用EC,这个软件自带作弊码和跟踪修改功能。5 V- @4 E5 `" |. L% U! X3 B- L. }. V+ J
3、获得指令代码及其在Rom中的地址。一般通过VirtualNes Debugger版或者no$nes-w、FCEUXD SP等NES调试跟踪工具,再配合内存查看和十六进制之编辑工具确定指令以数据方式储存在Rom中的哪个地址。, K- J( b8 D" u- s
4、修改相应指令或数据。一般来说要做尽量少的修改,而且不能让程序运行出错。
( e9 @3 X4 s3 L# Y4 ~2 \4 ~2 }6 Z5 D5、测试游戏运行情况,看游戏能不能按照你修改目的正常运行。
: V- @$ G' [% c: D0 B- f. d% j9 j" Z
第四,偶以日版《赤影战士》和VirtualNes Debugger版来为例子教大家如何HACK:
# Z  E8 g/ c+ m0 N9 V
/ M0 O+ u7 ~7 r& i偶需要修改的数据:暗器数不减,放雷电必杀不减血,被敌人攻击不减血,一开始拥有99颗暗器雷
. ?( E$ X! i$ a6 F9 b8 W" s$ ]* O( U& k* W' N
1、获取作弊码,这个好容易得到,EC这个软件附带N多作弊码,省去自已手工查找作弊码了。^_^
; d* t- K! p: {; v[P1 生命值], h9 I( }' `. c6 I
ON=6F0,10) {% z* @5 D5 m  Z

: ^, V" J1 z9 V* v6 K# h* _2 Q$ ?[P1 暗器数量]; m& w/ f2 j& P- A4 N/ E2 Y
ON=662,FF: Q! D( Q/ L" y( b, v

0 h9 c  x/ K: u" ^  N+ n[P1 武器种类]
" g4 `9 l3 J5 e  j# p- k8 o" S$ z刀=6B2,0; O$ W+ h% H6 {
ON=6B2,3
+ J6 P! S5 @' J& q( X# ~9 C! _! `
4 s3 p) ^! M' q0 O) ]* b[P1 武器威力]
6 r6 X& k# t- [: I" I1 p5 |ON=680,FF- s% ?5 f+ I4 @; k/ z5 E
# y' l, d6 e/ H* p+ B
[P1 暗器种类]7 o8 F$ M  o8 V* }& n* ]
标=671,0
+ O( d4 I5 U  e* T4 K( n雷=671,1
! P+ U: x3 r" T4 s5 I& T$ C/ I3 {' v' Y0 J1 \
[P1 隐身]3 C- A- T% W& K  c
OFF=0000,0
5 }7 x+ ^2 M' o- I' V8 r7 }. C, kON=601,4C' d( w# f& Q8 P7 x7 Q

* U7 `! Z9 ]0 n) G1 }' A9 ~/ T[P2 生命值]6 Y/ P) v1 K( e0 j, j$ ]0 m$ _
ON=6F4,10
: c8 J2 B+ Q' D% t4 p" S
/ k: k6 A" }' O8 M1 M) v[P2 暗器数量]
! m  I1 J( N) R+ W1 _) }- z* cON=666,FF2 c( _8 ?, u5 L* h

6 n3 F& v4 e/ A* w0 d[P2 武器种类]
. w# r/ I& l: i2 B! z/ ~  T刀=6B6,0
/ C7 x% D. `2 P+ |* ]3 B5 p' l, T2 rON=6B6,3$ b- U9 L5 J3 @+ J! z/ |7 L# _
" v: R# k' J9 g3 H) ]( i
[P2 武器威力]' r( R5 y0 X. k- t% ~
ON=684,FF4 m$ P' c! ]# C5 l; [4 y( J

/ Q3 g. @; D; x[P2 暗器种类]
0 A) F# X+ |- M$ Y标=675,05 Q  `7 X. ]' c' k4 t- v) B
雷=675,1
6 K* Y- p- g% k. l2 N9 s
8 u) w. [% {$ i( D9 j[P2 隐身]
) [  N  E8 W# U1 h/ f9 h7 K8 wOFF=0000,0$ ?  i+ n4 U( |
ON=605,4C: S' r1 r+ O6 Y# g

9 ^5 m- X" [6 w- m( \4 R; y& K' ~; S% o[GameInfo]
4 I  D" h4 c9 v- nName=Shadow of the Ninja (FC/NES)
$ `" \- i$ |' B. B+ M% x  uSystem=FC
8 ]3 @) Z. L. R  b4 A9 lText=赤影战士(水上魂斗罗),双人、动作游戏,由大胖子提供!9 n2 t$ r. G2 ?( m3 G! M$ v

# k" S: {4 H4 o. \[ 本帖最后由 疾风之狼 于 2009-10-14 15:09 编辑 ]

评分

1

查看全部评分

签到天数: 2135 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 05:27:43 | 显示全部楼层
2、通过调试跟踪获取指令代码及其在Rom中的地址,并用16进制编辑工具修改ROM其中数据
8 V. \& s* P( _6 s& g, h偶按照暗器数不减,放雷电必杀不减血,被敌人攻击不减血,一开始拥有99颗暗器雷顺序来教大家如何跟踪调试修改:
0 e3 i8 ?5 w- }% I/ Y' A# `2 _( R. x% t1 [, g. o; o
(1)暗器不减:
  n+ {0 l' W: y! ^1 t1 d
+ G) l# T) q( I9 ]8 |, |+ b首先打开VirtualNes Debugger并加载赤影战士日版ROM,如图1:
) k. [( V; M( B  W, T$ ^& Z/ s. E
% l6 N. f! v+ p接下来游戏进行到获到暗器飞镖20个,如图2:  c5 |2 z9 t8 I& ], p" A4 b
1 M, }% \: J3 F7 y$ y
接下来开始跟踪飞镖数量,先打开RAM,再打开DEBUG,先打开DEBUG的话,不然RAM就用不来:如图3、图4:
5 K9 N; W6 l+ V0 C/ M& l- g+ ]
6 Z+ A7 G) Q; @: K. n/ f0 R! h先点暂停,根据如下面作弊码提供的暗器数量地址,如暗器数量地址是662,就在注释内出现后面方框中输入[0662](注:可以用这东东当条件断点),再点右边确定让游戏继续运行,如图5:
' Y0 o7 e- D( Q$ N; @& T" p+ s9 y# w# L% G) v( d9 K/ s+ r+ Z
[P1 暗器数量]' g0 [3 _: B! H8 B
ON=662,FF
. v6 _1 u5 e. o) y4 u! R7 J0 U6 H
: B$ {0 i- s4 P% w- E! D6 Y2 x使用一次飞镖,程序会发生中断停在B840这一行,如图6:. \! V: S3 S/ d" d

4 s* f# l# b6 Q' Z9 w! l5 @B840 : DE 6206 DEC $0662,X;[0662]-- =0x13
- E) A1 L9 B! I+ G! K- a6 j
- C2 O5 s6 [4 B0 b" V" `查指令表得知B840这个地址DEC $0662,X指令作用是将0662+(X)=真正暗器地址的数值减1;既然这样,只要把这条DEC $0662,X指令改为LDA $0662,X就可以让暗器数量不减了。LDA $0662,X作用是把0662+(X)=真正暗器地址的数值读入寄存器A。(X)是寄存器X的数值。
% e5 r& M8 {) y. M8 d5 T! R举个例子:假设X寄存器数值是6,指令是“LDA $1234,X” 这条指令看上是将$1234地址数值读入寄存器A,但实际上$1234不是真正数值存放地址,1234必须加上寄存器X的数值才是真正数值存放的地址。1234+(X=6)=123A,LDA $1234,X指令应该是这样解释:将1234+(X=6)=123A地址读入寄存器A。. E: g+ w% s, \7 I8 j/ Y: A
LDA xxxx,Y和LDA xxxx,X一样,不过寄存器X变成寄存器Y。2 M, S+ B5 y& v0 r* v
4 r! Q* t) ]6 x2 ?0 v
查指令机器码得知DE是DEC - Absolute,X,BD是LDA - Absolute,X,注意寻区方式要一样....把DE修改为BD就可以不减暗器数量了。+ E- k4 Y& D9 V2 V  m

+ n; a' W5 C; ], U注意:别把BD修改成其他LDA指令,这样会死机的,因为指令寻区方式不一样。
+ C6 g' y: O5 h, a) K; ~2 I% x4 t
8 r7 F" h# ^9 c  ~( Q5 X; U7 b) t另外,有一些其他游戏是这样的:改为LDA $XXXX,X 那么就会破坏了寄存器A原来的数据了,后面的程序如果要直接用寄存器A的数值的话,那么就会造成游戏出错,如果后面的程序在用寄存器A的数值之前对寄存器A赋于新值就没事了。
: O3 n& U3 o. K1 I) W: n8 a# X2 g( a- ?
接下来在RAM中找到B840:DE 62 06,如图7:* |: `7 X+ _/ }+ E0 y( @1 O

2 U. }7 U* ^. s: Z& }' D用笔纸抄下红框中数据,以便在查找,接得在RAM中把DE修改BD,如图8:3 y( W- h. U% n

  ~: \# U3 \7 e) s$ a关闭DEBUG和RAM,回到游戏中测试吓暗器数量是否不减,暗器不减了,说明指令修改成功。如图9:4 O5 y+ s: _* g3 ]
9 r. y. g0 {8 B) Y$ [
关闭模拟器,接下来用十六进制修改工具(如UltraEdit32)修改ROM,还记得之前用纸笔抄下的数据么?
# q5 _* }6 e6 H% r7 `
- a# s* b6 ?9 K' H( F4 ]& s打开UltraEdit32,载入赤影战士ROM,编辑之前按一下Insert把插入方式设为覆盖方式,如图10:
8 A, K4 P$ K4 ~& T
: w4 a2 \8 m) n- r; b, l0 w$ E点击UltraEdit32“搜索”>“查找”,在弹出查找框中查找内容(N)后面方框中输入你用纸笔抄下的数据,再点“查找下一个”就能找到这个数据,如图11:
1 y7 l& D9 b' P" ^* Y) M* R' [& O9 f2 @$ d  B' F- z6 _
如图12,结果出来,UltraEdit32高亮度显示你就是要找的数据,把DE修改为BD,再点“文件”>“保存”保存你修改结果。如图13:
7 B: n/ h! O: k4 n; t) }, j( c$ M8 ~
关闭UltraEdit32打开模拟器载入修改后的ROM测试暗器数量是否不减,不减的话说明修改成功了,如图14:
, _. h6 f. Z% b$ r2 m3 H8 Y( h6 M% Z
暗器雷数量不减修改方法和暗器飞镖数量不减修改方法一样。就不再说了,留给大家练习一下。! j( w% f, I8 [8 w8 H
' H' [- K: ~. r- q2 }1 ^
[ 本帖最后由 疾风之狼 于 2009-10-14 15:08 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

2

查看全部评分

签到天数: 2135 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 05:28:36 | 显示全部楼层
(2)放雷电必杀不扣体力
; g7 O! k' N1 h. B( r* Y( D- f+ ^打开VirtualNes Debugger并加载赤影战士日版ROM,开始游戏,打开RAM和DEBUG,查询EC作弊码得知体力地址是6F0,7 ~" e- t* O( s; [, v" A$ [5 y: h
) c% x7 n4 P6 o
估计大家看暗器不减HACK教学后就知如何设置断点跟踪,我就不再说了,设置好断点后,回到游戏,按紧B键不放使出雷电必杀,) y) {4 G( y/ M7 v" B+ J

& O3 |+ G2 |% z* f当雷电必杀发出时,程序中断,程序停在B6FC:9D F006 STA$06F0,X这行,如图15:注意B6F6:E9 08 SBC#$08这条指令,这条指令作用是把
0 ?" ~& e* b' {* [" t( y- ]
# F- a1 H- l1 ~. n! b5 }地址06F0减去8,大家都知道赤影战士放雷电必杀后会扣去8点体力,而这个08正好是放雷电必杀所需要扣的体力,只要把08修改成00的话就不会扣体力。(当然你也可以修改成01,发必杀只扣1格体力啦^_^)0 C0 T5 A+ [6 n6 S; _. _6 {$ j

0 f! B- p$ K( A转到RAM,找到B6F6:E9 08,把图中红色方框数据抄下,以便查找。如图16:把08修改为00就不扣体力了,如图17:关闭RAM和DEBUG,再重启游戏,再发动必杀,不扣体力的话说明修改成功了。0 v; R+ |/ I0 i. p

4 Q6 G$ k/ {& j如图18:关闭模拟器,打开UltraEdit32,载入ROM,编辑之前按一下Insert把插入方式设为覆盖方式,点击“搜索”>“查找”,查找之前抄下的数据,找到如图19的数据:把08修改成00,再保存退出,如图20:
- m) m5 g. [, d+ a" g) q* E, @# V" o0 x! Q* c; Q
再进模拟器打开修改后的ROM测试发必杀是否不减体力,不减体力的话说明修改成功。
1 Q8 _$ o. F7 R, L; F( M# Q( \- u. z1 g3 Q. h# F
PS:跌落损伤修改方法和发雷电必杀修改方法一样,我不再说了,留给大家练习,方法设置好断点,再找个地方跳楼自杀(-_-),就能跟踪找到地址了......8 W# m( {" Y5 J  p. ]

: ?. t9 J& h  j" I" x, P; ]* _偶找个时间再继续发如何HACK受攻击不减血和一开始拥有99个雷吧.......

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

签到天数: 2135 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 06:27:29 | 显示全部楼层
(3)受攻击不减血# k4 k. S$ _4 s
打开VirtualNes Debugger并加载赤影战士日版ROM,开始游戏后,打开RAM和DEBUG,同样用体力EC作弊码6F0来设置断点,设置好断点后,
, t1 \2 O* \) Z2 Z+ n& f" r$ N; [$ H* [2 {$ l1 z% j  O
回到游戏被敌人打一下,当敌人攻击主角时,程序中断,程序停在AC69:9D F006 STA $06F0,X这一行,如图21: 1 p9 l# ]: \6 {% y6 O
; q- A* N. c1 I( M
注意AC69地址前面的AC63:E5 9D SBC$9D,这条指令作用将06F0,X地址数值减去009D地址数值。单单只将SBC指令修改LDA指令会有问题,偶考虑只有通过无条件转移指令(4C)再添加指令来达到不减血.....
: a5 }5 X. W+ o3 D4 M3 T: z2 O6 q% {3 I" S- K
首先抄下如图22的数据,方便查找:之后在RAM中查找寻找连续储存的0xFF,可以在前面也可以在后面,也可以寻找连续储存的0x00,注意的是00是中断指令,有时候修改了游戏会出错。看情况吧。一般选择在连续储存的00中段开始加入修改数据。
2 q; U' S0 V2 B8 L# L" M
1 ]& f- E/ _% y1 F6 E. ]偶在RAM后面FFC3~FFDF找到一些连续储存的FF,如图23红框中连续储存的FF,把FF前面的数据抄下,方便查找,接着测试吓这些FF是否能使用.....
' w! c( E! W  o* N
3 E3 V2 {) x6 q4 q0 m8 J1 Q; V方法如下:  G  s/ t* H0 j0 ]* M
) u' z( h/ R8 h6 F
在RAM中把AC69的9D F0 06修改为4C C4 FF,指令说明:4C C4 FF作用是跳转到地址FFC4继续执行,4C是无条件跳转,如图24、25:
7 d: V1 p3 t. J0 u* z0 z0 W) Y1 @
- D4 o. b2 K4 [  D为安全得想,偶跳过第一个的FF,而在第二个FF开始输入9D F0 06 4C 6C AC,指令说明:9D F0 06是以X为偏移量,把寄存器A内容送入06F0,X地址中,4C 6C AC是跳转到AC6C继续执行,如图26:
. [1 y5 n, |4 w* I2 A+ u/ X% T4 b7 k4 m. D8 [4 W0 }5 C
接下来关闭DEBUG和RAM,回到游戏看吓游戏是否正常游戏,能正常游戏说明地址能够跳转使用。如图27:3 v# L! J2 g$ F( n
9 q5 M, S5 t) q9 M* B0 I" a3 r8 L; y/ f
接下来打开RAM,在FFC4地址把9D F0 06 4C 6C AC FF FF FF FF FF修改为9D F0 06 A9 10 9D F0 06 4C 6C AC,如图28:
: o$ A# R' T  m/ z- u
5 j8 ]' O7 A9 v指令说明:A9 10是把数值10读入寄存器A中,9D F0 06是以X为偏移量,把寄存器A数值10送入06F0,X地址中,4C 6C AC是跳回AC6C继续执行; S+ [: z7 c1 t0 T: e$ P) w% f
  Y- X( j+ L2 b8 s! f1 K3 l! M
关闭RAM,看看游戏是否减血了,不减血说明修改成功,如图29:
# a; ]8 Z+ g1 Q7 \+ p& j3 ^" M
1 a1 X: O. ]7 w2 u$ L9 R5 V4 z接下来,打开UltraEdit32,载入ROM,查找上图22的数据,如图30:
0 n2 T  q  j: d+ L7 G
4 H4 g& e, {: B3 C" @找到把图中的9D F0 06修改为4C C4 FF,如图31、32:/ V5 q4 t; Z0 p9 K" ?6 H
+ H. Z0 z! Y! Y/ X* R" {) q
接着,查找上图23连续储存的FF前面的数据,比如上图23的连续储存的FF前面是20 86 A0 4C 22 EC,找到后,在20 86 A0 4C 22 EC后面的就是你要添加指令的连续储存FF,如图33:
  N- v- V2 c2 {/ f1 |) u) D$ r( U2 R5 M  b! \3 Q
同样跳过第一个FF,而在第二个FF开始添加指令,如图34:  m1 D6 q* h! i# n# E. C
(如果你真要在第一个FF开始添加指令的话也不是不可以;假设你是在第一个FF开始添加指令的话,那图32的4C C4 FF应该修改为4C C3 FF)( |' [+ q" b: M0 H% o0 a
6 x; a: N6 h6 _2 F
保存ROM,退出UltraEdit32,再进模拟器测试是否不减血,不减血说明成功了.....,如图35:
/ m( g1 }0 U8 f. h8 F
2 ~' p3 U2 J( G- Q[ 本帖最后由 疾风之狼 于 2008-12-1 12:24 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

签到天数: 2135 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 06:29:31 | 显示全部楼层
(4)一开始拥有99个暗器雷
  D; y4 V% r% k8 O' R首先要找到体力初始值,大家知道在赤影战士中体力初始值什么时候开始读取并放到06F0、06F4地址中?答案是在选择人物后。(注:06F0是对应1P体力值地址,06F4是对应2P体力值地址). m, H7 m7 I* J9 f! g/ ]; E' }% ]
# f# c9 |) d1 a! X; j
要想在游戏开始后立即就有99暗器雷,必须在数据初始化后面加入暗器雷和暗器数量指令代码,如何添加指令代码?方法是上面的受攻击血不减方法一样,同样用无条件跳转指令4C再添加指令。
: E, M7 S, N9 H; h
- o5 \0 r- E( J$ _0 w0 a; }3 x+ r/ [偶决定来教大家如何双人游戏时两人一开始拥有99暗器雷,打开VirtualNes Debugger并加载赤影战士日版ROM,选择双人游戏进入到选择人物后,打开RAM和DEBUG,用2P体力值EC码06F4地址来作为断点...../ a) d1 t4 K! e+ Z' B* z3 x/ [# [( m
0 T* x1 S- F5 [& b  i& C" \
设置好断点后,回到游戏中,按START选择好人物后,程序发生中断停在A2FC:8D F406 STA$06F4 :[06F4]=A=0x10这一行,如图36:,注意前面A2F7:A9 10 LDA#$10 :A=0x10这一行,这个指令说明是把数值10读入寄存器A,而A2F9:8D F006 STA$06F0 :[06F0]=A=0x10和A2FC:8D F406 STA$06F4 :[06F4]=A=0x10分别是把寄存器A数值读入06F0、06F4两个地址中(注:06F0是对应1P体力值地址,06F4是对应2P体力值地址)
7 L! C, l3 \, l7 W2 Q) M4 x- q
& K# B' T" B2 g& N5 QA2F7:A9 10   LDA#$10  :A=0x10          -->把数值10读入寄存器A
4 ~8 {4 m: f5 y; P  [( w) k: E% j! PA2F9:8D F006 STA$06F0 :[06F0]=A=0x10   -->把寄存器A的数值送入06F0地址  m1 X: y5 M: L
A2FC:8D F406 STA$06F4 :[06F4]=A=0x10   -->把寄存器A的数值送入06F4地址
0 N6 X/ y6 p  @) f0 `" ^: x
9 J/ G$ L/ a) D% K  G在RAM中找到A2F7~A2FC地址,如图37:把图37中红框的数据用笔纸抄下来,抄多点,顺便把红框后边的A9 10 85 27 85 37 85 23 A9 90 85 29 A9 30 85 2D A9 19也一并抄下,目的提高查找准确率,接下来在RAM中查找一些连续储存的FF,偶懒得找了,还是用图23找到那个连续储存的FF来添加指令吧....
4 B. ?' H& w* Z' V# Q) q" M" I, B1 J# {9 c( {
接下来在RAM把A2FC的8D F4 06修改为4C C4 FF,如图38、39:% O* y- h' h1 T

" k0 s" L0 o0 a9 I) h% I( V: E8 Z接下来拉到滚动条来到FFC3地址,偶还是跳过第一个FF,而在第二个FF(FFC4)开始添加指令:8D F4 06 A9 01 8D 71 06 8D 75 06 A9 63 8D 62 06 8D 66 06 4C FF A2,如图40:) l( u( d' i3 ]% [2 t  l/ X$ V
: W+ c6 z/ }$ \/ L( [8 `6 {  Q
指令说明:A9 01是把数值01读入寄存器A,8D 71 06是把寄存器A数值送入0671地址(1P暗器种类地址),8D 75 06是把寄存器A数值送入0675地址(2P暗器种类地址),A9 63是把数值63读入寄存器A,8D 62 06是把寄存器A数值送入0626地址(1P暗器数量地址),8D 66 06是把寄存器A数值送入0666地址(2P暗器数量地址),4C FF A2是跳回A2FF地址继续执行: N- }8 B3 D8 ^5 j
) M* _1 H- g1 A* o# {
接下来关闭RAM和DEBUG,重启游戏,进入游戏后暗器数是99,按一下攻击,如果放的是暗器雷说明修改成功!如图41:' g6 x4 a0 d7 V% F# L2 @6 O" R" s

' X  ]1 t2 j4 g接下来关闭模拟器,打开UltraEdit32,载入ROM,查找你刚才用笔纸抄下的数据,找到后把8D F4 06修改为4C C4 FF,如图42、43:8 r. ~3 J+ x0 E; b

& u4 G7 H3 ?9 z  R9 g6 e. {0 E接下来在找到上图33的连续储存的FF地方,偶还是跳过第一个FF,而在第二个FF开始添加指令,如图44:
8 w: ?2 Q; z' _/ `9 g" B" x1 M) m9 G/ k- Z, r, P& K* D/ z& u
保存ROM,关闭UltraEdit32,打开模拟器载入修改好的ROM测试,如图45:如没什么意外发生的话说明修改成功!/ u5 m/ B( V% B: _: P* \

9 ], e# w; u2 ^菜鸟HACK教程到此完成!以偶目前HACK水平来说还算是一只HACK菜鸟,没有和尚HACK技术那么厉害!:L

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
头像被屏蔽

签到天数: 5 天

[LV.2]偶尔看看I

发表于 2007-4-21 10:10:17 | 显示全部楼层
基本上已经看懂,正在HACK尝试中.............

该用户从未签到

发表于 2007-4-21 10:27:49 | 显示全部楼层
' a. K# v! ?7 M, t% }; k% C  U, `
适合新手学习修改的教材

该用户从未签到

发表于 2007-4-21 10:53:42 | 显示全部楼层
好东西!谢谢楼主了!:chongbai: 辛苦辛苦!努力学习中!:lol

该用户从未签到

发表于 2007-4-21 11:11:37 | 显示全部楼层
最近还真打算想学一下hack游戏,真是感谢了 。:)
头像被屏蔽

该用户从未签到

发表于 2007-4-21 21:06:08 | 显示全部楼层
为了Hack事业,顶一个~:handshake

该用户从未签到

发表于 2007-4-22 11:17:10 | 显示全部楼层
疾风之狼大哥更新了:loveliness:
' W) C; u3 C: R6 @不减血的教材

签到天数: 2135 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-22 11:43:36 | 显示全部楼层
这个不减血教程用到无条件转移指令4C再添加指令,与前面只单单修改指令有所不同.....

签到天数: 110 天

[LV.6]常住居民II

发表于 2007-4-22 12:48:49 | 显示全部楼层
适合菜鸟的吗?:lol 疾风之狼加油:)

该用户从未签到

发表于 2007-4-25 12:30:19 | 显示全部楼层
呵呵 完成了,得好好学习# D& B5 I% J% k. f
xiaofa兄弟也在这啊

签到天数: 7 天

[LV.3]偶尔看看II

发表于 2007-11-3 09:46:39 | 显示全部楼层
教程在这里呢,支持一下老狼,加油:L

签到天数: 26 天

[LV.4]偶尔看看III

发表于 2007-11-5 21:46:57 | 显示全部楼层
终于可以自己去HACK简单的游戏了:loveliness: $ ]# n) \6 X/ ~. Z5 p4 m
激动啊;P

该用户从未签到

发表于 2007-11-14 11:55:27 | 显示全部楼层
值得新手学习,此贴太好了,以后要是修改游戏先从此文入手。

该用户从未签到

发表于 2007-11-14 13:11:48 | 显示全部楼层
NES调试跟踪工具VirtualNes Debugger版哪里有得下载的啊:L  找不到啊,:Q 闷死:(

签到天数: 1 天

[LV.1]初来乍到

发表于 2007-11-18 13:42:36 | 显示全部楼层
随便看了一下,一头的雾水:yumen: 看来还要花点时间来学习

该用户从未签到

发表于 2007-11-19 20:44:56 | 显示全部楼层
好说的太好了
5 J' @$ K. r5 k( f我会了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-11-18 06:28 , Processed in 1.093750 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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