EMU618社区

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

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

 关闭 [复制链接]

签到天数: 1769 天

[LV.Master]伴坛终老

发表于 2007-4-21 05:26:54 | 显示全部楼层 |阅读模式
注意:转载请注明本人名字和文章出处!, ?! S7 I) e3 C% {$ J- a4 I
: ?' X: c+ I2 Y9 ]8 _
菜鸟NES HACK简单教程(偶应N多人要求才做这个教程,有错误请指正:L )
1 ^5 H( M1 t; J: w* W- b
2 O, f. J/ l5 T5 N% gNESHACK相关资料下载:http://bbs.emu618.com/forum/viewthread.php?tid=12675&extra=page%3D2: y& z4 b# Y! e( U6 F

  p- d3 {! D0 c) J- r. K$ e6052汇编大奥秘(详细介绍FC的汇编语言,推荐下载):http://bbs.emu618.com/forum/viewthread.php?tid=20393&extra=page%3D12 n# K. B7 b, \- T9 L9 y3 n

3 p, J# ^+ x% {: b- r开始之前先说几句废话/ m* Q; \/ Z4 E0 K1 R% w% k

( h; C# y! z" P7 x* @: w第一,HACK之前先了解一下6502汇编指令,NES相关资料里有指令集说明文档,如果你看不懂英文的话就下载《6502汇编大奥秘》,里面有指令中文说明........^_^' R) `; d0 T, u& `8 F1 `2 G1 I3 x& E

2 \4 c5 \. p2 Q# X4 `  R' I个人建议:没必要把6502全部汇编指令硬背下来再跟踪调试,那样会很累,你可以一边调试一边查询指令说明.......
; n/ A; [& c. C) q: D, b: t) z9 _. j1 d/ s* b7 q/ a
第二,还需要准备一些工具:NES调试跟踪工具(VirtualNes Debugger版或者no$nes-w、FCEUXD SP等NES调试跟踪工具)、十六进制之类编辑工具(Winhex或者UltraEdit32)' _* Z% ]( v" [

- a! g! Z0 j, m( d" ?; V/ b第三,了解修改步骤:7 o& x  w, I# h6 b" F
1、首先要确定你要修改什么。连要修改什么都不知道,那怎能谈上修改呢。
" Q1 I( t; V+ s7 L( T2、获取作弊码,换句话说就是要获得要修改数据的地址。推荐使用EC,这个软件自带作弊码和跟踪修改功能。, J: e5 T, j, ?. Y% |% g1 Z8 K
3、获得指令代码及其在Rom中的地址。一般通过VirtualNes Debugger版或者no$nes-w、FCEUXD SP等NES调试跟踪工具,再配合内存查看和十六进制之编辑工具确定指令以数据方式储存在Rom中的哪个地址。
' U* \/ B) `( f$ Y5 e4、修改相应指令或数据。一般来说要做尽量少的修改,而且不能让程序运行出错。0 Z+ w& ?  L4 @9 v2 D  m5 M- \5 w
5、测试游戏运行情况,看游戏能不能按照你修改目的正常运行。. Y9 K7 I% j0 K4 M! q  L- F
* s% l- e5 V* R2 Q+ K. J6 j4 ?
第四,偶以日版《赤影战士》和VirtualNes Debugger版来为例子教大家如何HACK:
1 G, J6 c* O+ y6 v* ?
% X! H/ f: q5 E. W( q+ [$ C* G( x* r! P偶需要修改的数据:暗器数不减,放雷电必杀不减血,被敌人攻击不减血,一开始拥有99颗暗器雷
$ b; {$ m6 h7 ^
/ _5 S2 [5 S* X5 V- @0 o* m1、获取作弊码,这个好容易得到,EC这个软件附带N多作弊码,省去自已手工查找作弊码了。^_^9 T0 l0 J$ [2 [% H6 G/ V, o
[P1 生命值]1 f2 U( `9 H0 z" {+ ]% u0 H
ON=6F0,10# o; L+ `# t1 g$ M3 [+ T$ C
7 p9 ]3 K7 n% J) r
[P1 暗器数量]
9 z: ]8 o- A: l% s; KON=662,FF, z% P( Y( `) v) h* _  [" u

6 e3 I9 f6 R% \# l% R9 U2 x* F[P1 武器种类]
" w! t7 z& A# G8 I  {: t( S刀=6B2,00 \6 Y1 Q8 t& a; p  j
ON=6B2,3
* \+ r0 f% W! r6 k5 k' z
- L+ ^9 @+ G9 [$ [[P1 武器威力]( I3 a1 W! X0 H; r" e% S
ON=680,FF
- v" [  s! d% Y. A
0 b) P% d/ q- @. f; s[P1 暗器种类]
& `: d& a# I( `: z3 {+ `6 d标=671,0
) Q" v4 k+ t5 B6 q! h9 ^3 i雷=671,1
7 N1 ]6 e5 l' Y7 E9 |, }0 n# U* N% J4 W0 i& F! v% J" q
[P1 隐身]3 G; i  O2 T9 V; l3 Y. t
OFF=0000,0
/ b" [" q5 a2 H) z5 TON=601,4C! O) D. S3 r, n
8 `" j) [2 H, t$ }4 f- f
[P2 生命值]
3 Z- J! o/ H" @ON=6F4,10  i* t: h: [. ]0 C& B+ g
. \- T( m0 ~9 Z" u5 t, J
[P2 暗器数量]1 n, V/ U- U3 o4 t: L
ON=666,FF
" g! j) c3 ?& z& @( @2 b  z  k" w% B: Z: Z' I, y; g$ D# A% ~+ A
[P2 武器种类]
( T+ Y0 S4 z! t. c6 n刀=6B6,0
5 P! k5 {, x. t& S$ @7 zON=6B6,33 ~5 u, W5 i/ r6 O
+ p" K+ U* W2 X( ^# b& R: M
[P2 武器威力]5 P) R/ f% e5 A/ Y9 j
ON=684,FF& |& O2 q6 m2 b7 {  Z2 t( [! b; Z: ~
& c, e! @" W" c2 M! k+ l
[P2 暗器种类]; O* @! l: n  p
标=675,0
$ [+ E9 E7 o) I: m, C/ `雷=675,1
4 O0 c+ q! M1 H- c& F
( d9 n8 d" {& O/ ?[P2 隐身]
- e9 d& R# Q" l4 `OFF=0000,0$ Z8 E/ c3 U7 n( v" _( |- T
ON=605,4C6 a. g$ a# d6 t( \

3 u5 O! i) d& x[GameInfo]! ?2 v/ Q! H9 i9 z3 @% _7 p
Name=Shadow of the Ninja (FC/NES)
- m  Z) Y' A: ^0 t9 p; YSystem=FC
  a+ ^: }2 j  ?# ZText=赤影战士(水上魂斗罗),双人、动作游戏,由大胖子提供!1 Y9 r5 A3 S2 m8 e. s6 N8 m- Q0 d

9 s$ j# d$ q9 _3 Z6 Q0 C5 ^& x[ 本帖最后由 疾风之狼 于 2009-10-14 15:09 编辑 ]

评分

1

查看全部评分

签到天数: 1769 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 05:27:43 | 显示全部楼层
2、通过调试跟踪获取指令代码及其在Rom中的地址,并用16进制编辑工具修改ROM其中数据+ G: N. g* w" f/ N3 f% i  u" i( e6 q7 Y
偶按照暗器数不减,放雷电必杀不减血,被敌人攻击不减血,一开始拥有99颗暗器雷顺序来教大家如何跟踪调试修改:, [  X9 W( A' N3 Z
7 Z7 I" Y% J- [1 q- ]
(1)暗器不减:
- @$ J9 n1 i& u! J8 O& F7 I$ _1 G, C4 Q  S: w5 I& f/ L; {. o
首先打开VirtualNes Debugger并加载赤影战士日版ROM,如图1:. B8 i, Q4 T$ ]! p  p+ `3 w' M( [
* r2 W7 k; o" B+ \3 M
接下来游戏进行到获到暗器飞镖20个,如图2:% M) X6 Q* V) A$ O, @6 X6 _

+ Y8 k8 p* J: M9 m- }2 w接下来开始跟踪飞镖数量,先打开RAM,再打开DEBUG,先打开DEBUG的话,不然RAM就用不来:如图3、图4:5 v% j3 M/ ]1 s! X
9 j( q; _1 b' @; C; b; M
先点暂停,根据如下面作弊码提供的暗器数量地址,如暗器数量地址是662,就在注释内出现后面方框中输入[0662](注:可以用这东东当条件断点),再点右边确定让游戏继续运行,如图5:0 }& T# {' E1 h+ w0 R5 G% T  j
# z9 |/ Z& t3 z9 n' Z" a: j
[P1 暗器数量]
2 o& Y+ x5 C6 \# X  }$ ?ON=662,FF
. c1 N7 a7 b" v( ]* |: E
& c& C3 S. x& J; m6 T- H1 J7 j使用一次飞镖,程序会发生中断停在B840这一行,如图6:9 g- D# Q7 L( R- J' k
/ k6 P. Z7 Q3 f  t
B840 : DE 6206 DEC $0662,X;[0662]-- =0x13# h+ T6 n8 s# f2 k# @6 S* F# [

' c+ Z& b8 {0 [( L查指令表得知B840这个地址DEC $0662,X指令作用是将0662+(X)=真正暗器地址的数值减1;既然这样,只要把这条DEC $0662,X指令改为LDA $0662,X就可以让暗器数量不减了。LDA $0662,X作用是把0662+(X)=真正暗器地址的数值读入寄存器A。(X)是寄存器X的数值。
7 Z# k7 ~4 T$ P8 ]1 W" Q. O举个例子:假设X寄存器数值是6,指令是“LDA $1234,X” 这条指令看上是将$1234地址数值读入寄存器A,但实际上$1234不是真正数值存放地址,1234必须加上寄存器X的数值才是真正数值存放的地址。1234+(X=6)=123A,LDA $1234,X指令应该是这样解释:将1234+(X=6)=123A地址读入寄存器A。4 F3 z# n/ k5 f8 O/ W: d9 v7 Z! B
LDA xxxx,Y和LDA xxxx,X一样,不过寄存器X变成寄存器Y。; H7 X; B" O' b: W% f) }

! H# K- r& V% x1 t0 A5 N查指令机器码得知DE是DEC - Absolute,X,BD是LDA - Absolute,X,注意寻区方式要一样....把DE修改为BD就可以不减暗器数量了。
1 a+ Z& ]1 {* R/ h) k& J
1 l( S5 d; C! _8 C( H1 f. t注意:别把BD修改成其他LDA指令,这样会死机的,因为指令寻区方式不一样。
  N& d! Q( m1 I1 ?  v% o3 a' e3 K/ \; t/ ~
另外,有一些其他游戏是这样的:改为LDA $XXXX,X 那么就会破坏了寄存器A原来的数据了,后面的程序如果要直接用寄存器A的数值的话,那么就会造成游戏出错,如果后面的程序在用寄存器A的数值之前对寄存器A赋于新值就没事了。
$ t! H% R- a8 q7 ~- x7 g
) p) X' N. x, i. h' Y接下来在RAM中找到B840:DE 62 06,如图7:
" Q7 A8 A, `' R! f$ Q
/ L; N1 V8 g9 H- T4 q! b/ H3 z用笔纸抄下红框中数据,以便在查找,接得在RAM中把DE修改BD,如图8:$ y$ b7 C& J3 L% h5 y$ ]

2 a, T0 i8 u2 H6 {1 }关闭DEBUG和RAM,回到游戏中测试吓暗器数量是否不减,暗器不减了,说明指令修改成功。如图9:; F& v7 @( L, z" s

0 s! @; b0 R! L0 M关闭模拟器,接下来用十六进制修改工具(如UltraEdit32)修改ROM,还记得之前用纸笔抄下的数据么?: a" w  G0 b. @" u8 d  U$ e

; F; _- B# _# A# p" R打开UltraEdit32,载入赤影战士ROM,编辑之前按一下Insert把插入方式设为覆盖方式,如图10:
$ m4 g9 O9 I6 g. u9 r
# a) W2 ?5 Z" I点击UltraEdit32“搜索”>“查找”,在弹出查找框中查找内容(N)后面方框中输入你用纸笔抄下的数据,再点“查找下一个”就能找到这个数据,如图11:  a5 X8 N1 o' y( Y5 h1 A
3 v5 k# V/ a5 b# \& j
如图12,结果出来,UltraEdit32高亮度显示你就是要找的数据,把DE修改为BD,再点“文件”>“保存”保存你修改结果。如图13:
/ p% |, I1 \  }6 l$ f2 ]
/ ~+ v1 I3 ^" g! |3 Z  ?3 d关闭UltraEdit32打开模拟器载入修改后的ROM测试暗器数量是否不减,不减的话说明修改成功了,如图14:
5 D$ Y- h- q/ v3 e3 e( K' j6 i2 {. n2 f7 G( n
暗器雷数量不减修改方法和暗器飞镖数量不减修改方法一样。就不再说了,留给大家练习一下。- R0 W. H6 W( K9 n$ X8 i

7 B- x. T, |, X1 [/ t' k[ 本帖最后由 疾风之狼 于 2009-10-14 15:08 编辑 ]

本帖子中包含更多资源

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

x

评分

2

查看全部评分

签到天数: 1769 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 05:28:36 | 显示全部楼层
(2)放雷电必杀不扣体力
) C( Q+ ]/ x' U: H9 g打开VirtualNes Debugger并加载赤影战士日版ROM,开始游戏,打开RAM和DEBUG,查询EC作弊码得知体力地址是6F0,
4 v2 a% g; p1 z! I: e/ Y% t3 x- U8 h& n8 f+ k' o  ~
估计大家看暗器不减HACK教学后就知如何设置断点跟踪,我就不再说了,设置好断点后,回到游戏,按紧B键不放使出雷电必杀,
# {+ G3 P' q( l% j" p- O" O' x# [4 L
当雷电必杀发出时,程序中断,程序停在B6FC:9D F006 STA$06F0,X这行,如图15:注意B6F6:E9 08 SBC#$08这条指令,这条指令作用是把
! W8 P  b* E  M- i: q- F2 z9 @, N
* m6 e; ^/ C/ @) G+ G1 g' j2 {1 p. ~地址06F0减去8,大家都知道赤影战士放雷电必杀后会扣去8点体力,而这个08正好是放雷电必杀所需要扣的体力,只要把08修改成00的话就不会扣体力。(当然你也可以修改成01,发必杀只扣1格体力啦^_^)3 `, d8 q6 l; [8 z4 g5 E
+ ]( T! g$ ?( A" I
转到RAM,找到B6F6:E9 08,把图中红色方框数据抄下,以便查找。如图16:把08修改为00就不扣体力了,如图17:关闭RAM和DEBUG,再重启游戏,再发动必杀,不扣体力的话说明修改成功了。
4 P7 p8 h1 j2 w9 r* W+ k9 J  A' W& I
如图18:关闭模拟器,打开UltraEdit32,载入ROM,编辑之前按一下Insert把插入方式设为覆盖方式,点击“搜索”>“查找”,查找之前抄下的数据,找到如图19的数据:把08修改成00,再保存退出,如图20:/ p9 O7 R) }* B9 S. t8 f
: S3 {( f& G/ N6 z  T
再进模拟器打开修改后的ROM测试发必杀是否不减体力,不减体力的话说明修改成功。
+ w8 L# ]: H6 @( D5 {( O8 Y) W/ o4 b' Q% ?5 w) w6 P3 y
PS:跌落损伤修改方法和发雷电必杀修改方法一样,我不再说了,留给大家练习,方法设置好断点,再找个地方跳楼自杀(-_-),就能跟踪找到地址了......9 f( g8 _9 F9 h

' t6 I! m8 D; @7 p/ V' `* J偶找个时间再继续发如何HACK受攻击不减血和一开始拥有99个雷吧.......

本帖子中包含更多资源

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

x

签到天数: 1769 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 06:27:29 | 显示全部楼层
(3)受攻击不减血
+ p6 }% i' c3 R0 |( k5 ~4 Y2 F, T打开VirtualNes Debugger并加载赤影战士日版ROM,开始游戏后,打开RAM和DEBUG,同样用体力EC作弊码6F0来设置断点,设置好断点后,
" F- B) w! i! b9 f5 x
% y# g. d2 g0 T+ h! ]2 z4 e回到游戏被敌人打一下,当敌人攻击主角时,程序中断,程序停在AC69:9D F006 STA $06F0,X这一行,如图21: 5 m6 O- b5 \; t5 Y  E" m6 i1 @

* t2 o# G0 R' j1 h- _$ [0 `. G; Q注意AC69地址前面的AC63:E5 9D SBC$9D,这条指令作用将06F0,X地址数值减去009D地址数值。单单只将SBC指令修改LDA指令会有问题,偶考虑只有通过无条件转移指令(4C)再添加指令来达到不减血.....
+ t6 Z4 e! N3 c9 _
% e: L" Y9 U% c* [9 _首先抄下如图22的数据,方便查找:之后在RAM中查找寻找连续储存的0xFF,可以在前面也可以在后面,也可以寻找连续储存的0x00,注意的是00是中断指令,有时候修改了游戏会出错。看情况吧。一般选择在连续储存的00中段开始加入修改数据。
0 g+ X/ ?, X. _( f- t. d6 ~# n8 ~6 J% A% c
偶在RAM后面FFC3~FFDF找到一些连续储存的FF,如图23红框中连续储存的FF,把FF前面的数据抄下,方便查找,接着测试吓这些FF是否能使用.....  T1 M; |7 k  q' T# B3 U

% h$ q9 w9 q2 E) L# S, ]方法如下:4 ]) h+ x, e/ b  w& A/ x0 U

% S, N- Y& l' d5 O) ?/ p0 c在RAM中把AC69的9D F0 06修改为4C C4 FF,指令说明:4C C4 FF作用是跳转到地址FFC4继续执行,4C是无条件跳转,如图24、25:; E$ A0 |6 ^3 `, b0 y+ y

& N1 C9 d+ u$ B: T, u为安全得想,偶跳过第一个的FF,而在第二个FF开始输入9D F0 06 4C 6C AC,指令说明:9D F0 06是以X为偏移量,把寄存器A内容送入06F0,X地址中,4C 6C AC是跳转到AC6C继续执行,如图26:8 n5 `: E$ n1 s5 ]

6 q5 l) t- n6 M" i* m5 I接下来关闭DEBUG和RAM,回到游戏看吓游戏是否正常游戏,能正常游戏说明地址能够跳转使用。如图27:& B- O; A; ]: q# q; _% X+ T1 Z
! a3 J6 G. j' n$ t
接下来打开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:% X" Q! A. v# h8 y0 F  `& z

* d$ t8 m& ?) Z% [4 @2 W* R8 C1 d指令说明:A9 10是把数值10读入寄存器A中,9D F0 06是以X为偏移量,把寄存器A数值10送入06F0,X地址中,4C 6C AC是跳回AC6C继续执行; A4 N$ ^8 e5 {' l6 M! G' C% o

  T. H1 Z1 D; x关闭RAM,看看游戏是否减血了,不减血说明修改成功,如图29:
  P: k5 d  b" t! |8 H- K9 k' u8 F( [7 ~/ F  g
接下来,打开UltraEdit32,载入ROM,查找上图22的数据,如图30:% o7 |6 v- X% [  C& o

* A3 W" A# L9 {3 H找到把图中的9D F0 06修改为4C C4 FF,如图31、32:* D8 F' {9 O; B7 Q

. b$ O# P( a3 ~" E3 {8 |8 t6 ?接着,查找上图23连续储存的FF前面的数据,比如上图23的连续储存的FF前面是20 86 A0 4C 22 EC,找到后,在20 86 A0 4C 22 EC后面的就是你要添加指令的连续储存FF,如图33:; P* D3 _" o! H3 P* C
1 Z; }7 n( ^) i% n; q
同样跳过第一个FF,而在第二个FF开始添加指令,如图34:/ K+ b' C+ ?2 s9 `& Q/ n: e8 V( W, ~
(如果你真要在第一个FF开始添加指令的话也不是不可以;假设你是在第一个FF开始添加指令的话,那图32的4C C4 FF应该修改为4C C3 FF)2 x7 T5 b* s. l' r1 y( i- S5 s. {$ c

" t6 l# H/ P- V. |1 @保存ROM,退出UltraEdit32,再进模拟器测试是否不减血,不减血说明成功了.....,如图35:* e' A$ d. q) m) V- }% Z% |
7 I* i, B/ b0 |+ [+ ?3 H' V
[ 本帖最后由 疾风之狼 于 2008-12-1 12:24 编辑 ]

本帖子中包含更多资源

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

x

签到天数: 1769 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 06:29:31 | 显示全部楼层
(4)一开始拥有99个暗器雷9 Z4 ^. I6 Y4 Z: B- v
首先要找到体力初始值,大家知道在赤影战士中体力初始值什么时候开始读取并放到06F0、06F4地址中?答案是在选择人物后。(注:06F0是对应1P体力值地址,06F4是对应2P体力值地址)' f0 b! {1 y8 {- v% U  J: I
9 O1 I- G# L' u+ r/ _& N$ c: Z
要想在游戏开始后立即就有99暗器雷,必须在数据初始化后面加入暗器雷和暗器数量指令代码,如何添加指令代码?方法是上面的受攻击血不减方法一样,同样用无条件跳转指令4C再添加指令。" L: E: G( H6 S3 R6 b

, f0 p. s- g  ^; k2 Z# Y& ~# t9 J偶决定来教大家如何双人游戏时两人一开始拥有99暗器雷,打开VirtualNes Debugger并加载赤影战士日版ROM,选择双人游戏进入到选择人物后,打开RAM和DEBUG,用2P体力值EC码06F4地址来作为断点.....; `0 n% |% w. B* q
+ f5 z8 \! M. L' Z$ f" `9 c& b
设置好断点后,回到游戏中,按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体力值地址)
3 `5 Y/ ]' p+ v2 {* P6 t& y! z5 J  r: F
A2F7:A9 10   LDA#$10  :A=0x10          -->把数值10读入寄存器A* v: z& C4 l. c) g
A2F9:8D F006 STA$06F0 :[06F0]=A=0x10   -->把寄存器A的数值送入06F0地址
3 S! E/ V) t! DA2FC:8D F406 STA$06F4 :[06F4]=A=0x10   -->把寄存器A的数值送入06F4地址) K" z3 s1 J1 t* V

' _; b" G1 n/ d在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来添加指令吧....
+ b& c. ~; f3 Q6 N/ B) N& T8 g! a
5 Q1 w7 C$ {9 h( H$ L接下来在RAM把A2FC的8D F4 06修改为4C C4 FF,如图38、39:
/ N# x4 `6 z. V6 U
+ r5 |& V  a3 q8 I- T接下来拉到滚动条来到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:
. n/ F  t  Q! m  Q3 D, J- e; T2 g# U7 r; c7 ?
指令说明: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地址继续执行
) D& s! [6 p/ S7 w: x9 d. O% D& Q6 N
接下来关闭RAM和DEBUG,重启游戏,进入游戏后暗器数是99,按一下攻击,如果放的是暗器雷说明修改成功!如图41:
/ B% X3 N3 m" {2 g0 {2 k4 E4 k: T5 d! n& z4 C2 [1 `
接下来关闭模拟器,打开UltraEdit32,载入ROM,查找你刚才用笔纸抄下的数据,找到后把8D F4 06修改为4C C4 FF,如图42、43:
' L+ G4 s$ I; B4 K* r& D3 m* }* X% k, X" {2 S  x0 E
接下来在找到上图33的连续储存的FF地方,偶还是跳过第一个FF,而在第二个FF开始添加指令,如图44:+ b$ |- A' q- i! A1 f  x

) x7 C1 R$ N) h保存ROM,关闭UltraEdit32,打开模拟器载入修改好的ROM测试,如图45:如没什么意外发生的话说明修改成功!) d" G4 e* F7 r, m5 w3 N/ b
' |! t9 ~1 Q: U' v+ j6 V$ d9 W* d
菜鸟HACK教程到此完成!以偶目前HACK水平来说还算是一只HACK菜鸟,没有和尚HACK技术那么厉害!:L

本帖子中包含更多资源

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

x
头像被屏蔽

签到天数: 5 天

[LV.2]偶尔看看I

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

该用户从未签到

发表于 2007-4-21 10:27:49 | 显示全部楼层
/ l% n; q9 t" ?" y# Y- V
适合新手学习修改的教材

该用户从未签到

发表于 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:
: G9 F% v0 r- T! U& k( C3 U不减血的教材

签到天数: 1769 天

[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 | 显示全部楼层
呵呵 完成了,得好好学习3 W4 h  f# G, _- o
xiaofa兄弟也在这啊

签到天数: 7 天

[LV.3]偶尔看看II

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

签到天数: 26 天

[LV.4]偶尔看看III

发表于 2007-11-5 21:46:57 | 显示全部楼层
终于可以自己去HACK简单的游戏了:loveliness:
6 n* T8 ~7 }% a4 v; z激动啊;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 | 显示全部楼层
好说的太好了 % p, Q1 f$ y  G1 D9 l
我会了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-15 05:28 , Processed in 1.088867 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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