EMU618社区

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

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

 关闭 [复制链接]

签到天数: 1894 天

[LV.Master]伴坛终老

发表于 2007-4-21 05:26:54 | 显示全部楼层 |阅读模式
注意:转载请注明本人名字和文章出处!
! }5 V! s- |% I. H) z
) `& h: [& [8 k2 Z/ L# L菜鸟NES HACK简单教程(偶应N多人要求才做这个教程,有错误请指正:L )5 k+ Y7 R( z$ b6 G& q" T

5 }  E$ ^7 W. F7 {% V$ F& i' G8 LNESHACK相关资料下载:http://bbs.emu618.com/forum/viewthread.php?tid=12675&extra=page%3D2
2 u  a3 l, S4 ^" j0 a* V% T
/ W8 a: d  Z6 w) r- `6052汇编大奥秘(详细介绍FC的汇编语言,推荐下载):http://bbs.emu618.com/forum/viewthread.php?tid=20393&extra=page%3D1' t' H' `8 `  B7 m% `

! u7 \6 i4 a8 ?$ j' l+ A4 G5 R1 O开始之前先说几句废话
: k8 K8 J2 F! c  y3 s
: I' h4 |/ r3 ^* P5 J第一,HACK之前先了解一下6502汇编指令,NES相关资料里有指令集说明文档,如果你看不懂英文的话就下载《6502汇编大奥秘》,里面有指令中文说明........^_^, T; H" @% t6 W
! j2 S- S/ d0 g; r; Y' k0 [
个人建议:没必要把6502全部汇编指令硬背下来再跟踪调试,那样会很累,你可以一边调试一边查询指令说明.......
- W) I) T4 [! k3 p1 Z  F: M+ D: M3 H8 D" E" s
第二,还需要准备一些工具:NES调试跟踪工具(VirtualNes Debugger版或者no$nes-w、FCEUXD SP等NES调试跟踪工具)、十六进制之类编辑工具(Winhex或者UltraEdit32)+ R9 N5 d- ?" G# A

, x2 R! J2 |# g) f( ?8 J4 v3 L第三,了解修改步骤:
5 y7 L6 p( ?3 v; U4 ?1、首先要确定你要修改什么。连要修改什么都不知道,那怎能谈上修改呢。7 N- c. I+ p- I* Z: l* ?
2、获取作弊码,换句话说就是要获得要修改数据的地址。推荐使用EC,这个软件自带作弊码和跟踪修改功能。& }: A* @+ S/ F" z0 p
3、获得指令代码及其在Rom中的地址。一般通过VirtualNes Debugger版或者no$nes-w、FCEUXD SP等NES调试跟踪工具,再配合内存查看和十六进制之编辑工具确定指令以数据方式储存在Rom中的哪个地址。
- J# f8 k1 C6 C2 s. o4、修改相应指令或数据。一般来说要做尽量少的修改,而且不能让程序运行出错。; X# z, a: T: [
5、测试游戏运行情况,看游戏能不能按照你修改目的正常运行。
- T) a' o) O% @' J. h- ~9 C0 _0 ?! M" {9 r. L+ j7 U
第四,偶以日版《赤影战士》和VirtualNes Debugger版来为例子教大家如何HACK:9 m  l# b8 a! l3 q3 O

2 [& X/ U& Z& ^/ ]) w偶需要修改的数据:暗器数不减,放雷电必杀不减血,被敌人攻击不减血,一开始拥有99颗暗器雷! f0 @- g* Y( ^5 z

/ J3 G  s# |( D; a6 `2 I* Z" [; w% d( \1、获取作弊码,这个好容易得到,EC这个软件附带N多作弊码,省去自已手工查找作弊码了。^_^
& L& n: r. _" L5 ?* ~8 c% V[P1 生命值]
- U0 u5 r+ V4 J+ c7 f) ?3 q  wON=6F0,102 N3 M& Z! i. ~9 d
- r1 ^) U; ^* [3 O
[P1 暗器数量]
$ a, q/ P* B1 T2 l- y' VON=662,FF% w1 R: _3 d. `7 U" [
' f. N1 d( E& Z1 F
[P1 武器种类]  c0 E5 C' H$ o* ^: F* x. H
刀=6B2,0" r3 X- c; L; @1 f7 `
ON=6B2,3
/ z9 G; t2 o0 e0 ^
7 X- n3 d$ G' r1 h; M( T( d; \; L/ `[P1 武器威力]8 O* |! \6 b2 F3 p( k3 D( t6 o1 V. K# s
ON=680,FF
5 Z4 A' D" e: Z. z4 R
# k1 l2 L, l$ g" R. _[P1 暗器种类]1 O! V7 ~6 y; q' ?- m& d( L+ c
标=671,0
' A! Z: V. W$ Y) ?1 R/ H雷=671,1
( u, ]" t8 O/ Z5 ?( D
3 F7 {) l3 l- D  n2 R[P1 隐身]
- x- r& l( B& b% L1 R# QOFF=0000,0
+ Z& s) C. F  H! P1 v5 U9 @3 qON=601,4C
' U1 ~# n) R) s4 I2 v* e
. E8 z. O6 i; c0 w# k$ F' N& ?. [[P2 生命值]! V" r9 R2 Z( g' x" \& W# f' T
ON=6F4,10) O" O$ b7 K+ c

/ [2 F" T" D9 o! w! K( @[P2 暗器数量], U' B- @8 {' M  |
ON=666,FF
0 q6 d3 |: C8 d6 C. [$ t
. I# q: Z, X( X2 m[P2 武器种类]+ H6 w* M1 p: \$ X: l8 Z& c
刀=6B6,09 \6 B6 X  ]/ ?: Y; Z
ON=6B6,3
* F3 g- S9 J% H0 c3 H5 Y2 W& ?$ a. c
[P2 武器威力]
) M8 n, [1 \* QON=684,FF
: }6 ^' p6 Q% ]
- _# m2 L7 ~* ]* a$ A6 H% |/ u[P2 暗器种类]
' m$ ^1 D2 D- P0 w1 [; h" @标=675,0
# x* j+ ?( [4 O, n4 Z$ X雷=675,1
. x' g# p8 G+ T- f5 S8 A( K1 W( S8 ?8 O" |' \8 _
[P2 隐身]# ?% v) ~7 z2 }: `  w% ^: M+ T) T
OFF=0000,0
/ ]; U; o& ~6 D) I+ s0 E9 L- iON=605,4C
* r, I% \& |2 i1 X1 t4 R! j$ V  O# n3 s6 f3 j
[GameInfo]
- Q! L  m. I* [: n7 A; x8 D" MName=Shadow of the Ninja (FC/NES)
! V9 e* o3 ?) sSystem=FC
2 r) J- Z$ z6 }% q1 h$ hText=赤影战士(水上魂斗罗),双人、动作游戏,由大胖子提供!. Z7 r4 q% G( J+ x9 |8 c  C

& k9 F- t1 r' q; C* u5 Z[ 本帖最后由 疾风之狼 于 2009-10-14 15:09 编辑 ]

评分

1

查看全部评分

签到天数: 1894 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 05:27:43 | 显示全部楼层
2、通过调试跟踪获取指令代码及其在Rom中的地址,并用16进制编辑工具修改ROM其中数据+ g7 u' k/ b5 H
偶按照暗器数不减,放雷电必杀不减血,被敌人攻击不减血,一开始拥有99颗暗器雷顺序来教大家如何跟踪调试修改:: _6 [- S( J$ R* f

+ u5 D/ [7 A$ E( _, S) I% j: q/ Z/ T(1)暗器不减:% [: H! }, i4 T" s% L
# l8 k: i  j& O  r! b
首先打开VirtualNes Debugger并加载赤影战士日版ROM,如图1:, n+ t' h; T4 K2 m9 n. Z

0 c6 p* |. i# v- ?接下来游戏进行到获到暗器飞镖20个,如图2:
" R7 u" t5 r% q' ~) C4 z8 a* I  ^" G) d" a: c
接下来开始跟踪飞镖数量,先打开RAM,再打开DEBUG,先打开DEBUG的话,不然RAM就用不来:如图3、图4:
8 }7 c8 g( _2 C) S
) I  B( x; x# b3 k4 {4 U0 @先点暂停,根据如下面作弊码提供的暗器数量地址,如暗器数量地址是662,就在注释内出现后面方框中输入[0662](注:可以用这东东当条件断点),再点右边确定让游戏继续运行,如图5:$ [2 `/ ^. k8 T, r) d
& G' r6 {2 M7 @. y- t) ^# W/ P
[P1 暗器数量]
0 N4 @, b$ f6 z/ f# G, b' cON=662,FF
! E2 d8 s) Q* @& h1 D9 r" [; X2 r; d: x9 T& L3 W" `
使用一次飞镖,程序会发生中断停在B840这一行,如图6:, ~9 C) V: i7 v0 k

. K+ U! e3 r$ fB840 : DE 6206 DEC $0662,X;[0662]-- =0x13& z) F' m; j# U& w0 V; S( ~8 f
; B  c, `: c9 l8 T, h. t
查指令表得知B840这个地址DEC $0662,X指令作用是将0662+(X)=真正暗器地址的数值减1;既然这样,只要把这条DEC $0662,X指令改为LDA $0662,X就可以让暗器数量不减了。LDA $0662,X作用是把0662+(X)=真正暗器地址的数值读入寄存器A。(X)是寄存器X的数值。, p4 e* }- h* g4 E+ t+ n9 W6 c
举个例子:假设X寄存器数值是6,指令是“LDA $1234,X” 这条指令看上是将$1234地址数值读入寄存器A,但实际上$1234不是真正数值存放地址,1234必须加上寄存器X的数值才是真正数值存放的地址。1234+(X=6)=123A,LDA $1234,X指令应该是这样解释:将1234+(X=6)=123A地址读入寄存器A。+ [% u% h. k0 t6 Q  A6 c
LDA xxxx,Y和LDA xxxx,X一样,不过寄存器X变成寄存器Y。" F; U3 _; x7 Z' S4 J/ J5 o8 Z

' [- i8 M8 m+ r/ V, {/ ?* Q( J2 Y5 X查指令机器码得知DE是DEC - Absolute,X,BD是LDA - Absolute,X,注意寻区方式要一样....把DE修改为BD就可以不减暗器数量了。  _7 i) S/ V1 A7 X( ~' k
# z( I. h; W2 F1 S/ Q5 o- \
注意:别把BD修改成其他LDA指令,这样会死机的,因为指令寻区方式不一样。
' Q% `' X6 ^" N! n% {4 |- I0 y. K; Z# G$ m- h! p3 U
另外,有一些其他游戏是这样的:改为LDA $XXXX,X 那么就会破坏了寄存器A原来的数据了,后面的程序如果要直接用寄存器A的数值的话,那么就会造成游戏出错,如果后面的程序在用寄存器A的数值之前对寄存器A赋于新值就没事了。4 O4 s5 h9 T5 e$ R8 L" s* Q1 R4 y  Y

: g* `' e0 O4 G9 R, ]+ P/ r接下来在RAM中找到B840:DE 62 06,如图7:
& p, t( k" Q" h% Q( ?: K9 U6 s) i/ l
( ?: ^7 i; h# k用笔纸抄下红框中数据,以便在查找,接得在RAM中把DE修改BD,如图8:9 o* k! H; k5 f+ M8 R: z: ], ~
" Q( h0 P( v$ a# p2 I
关闭DEBUG和RAM,回到游戏中测试吓暗器数量是否不减,暗器不减了,说明指令修改成功。如图9:
( }; G; C2 X, W% r  Z" `' T- Q( Q* U& F' z
关闭模拟器,接下来用十六进制修改工具(如UltraEdit32)修改ROM,还记得之前用纸笔抄下的数据么?
( D8 C( u! n1 i/ F0 `" P+ L& H2 P- G
打开UltraEdit32,载入赤影战士ROM,编辑之前按一下Insert把插入方式设为覆盖方式,如图10:% C# W; |( g  e" a3 \
9 f' Y& d* N! K7 @
点击UltraEdit32“搜索”>“查找”,在弹出查找框中查找内容(N)后面方框中输入你用纸笔抄下的数据,再点“查找下一个”就能找到这个数据,如图11:
6 p  v( \* n4 @% j/ Z( i# B8 N: @9 A8 L" O
如图12,结果出来,UltraEdit32高亮度显示你就是要找的数据,把DE修改为BD,再点“文件”>“保存”保存你修改结果。如图13:
5 b4 n; Y! Q/ l2 B  r( n4 X- \! ?, B, {
, m/ p% [, p3 E  ]关闭UltraEdit32打开模拟器载入修改后的ROM测试暗器数量是否不减,不减的话说明修改成功了,如图14:' a/ E. C0 O  P: a/ U# Q. L7 N
3 o" L4 J% r' Y( z
暗器雷数量不减修改方法和暗器飞镖数量不减修改方法一样。就不再说了,留给大家练习一下。  |' c1 f$ L3 k7 c" K- m4 d

  X9 U" w6 H' B# m- V5 j8 e" l[ 本帖最后由 疾风之狼 于 2009-10-14 15:08 编辑 ]

本帖子中包含更多资源

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

x

评分

2

查看全部评分

签到天数: 1894 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 05:28:36 | 显示全部楼层
(2)放雷电必杀不扣体力
% n/ ]$ m& E6 [: R打开VirtualNes Debugger并加载赤影战士日版ROM,开始游戏,打开RAM和DEBUG,查询EC作弊码得知体力地址是6F0,
+ S7 J0 E, u( ]5 J2 U) ~  s# g2 @; S2 s' N
估计大家看暗器不减HACK教学后就知如何设置断点跟踪,我就不再说了,设置好断点后,回到游戏,按紧B键不放使出雷电必杀,( B1 X: ?& p0 w5 L
/ @% ~( f, }/ P: z$ k, N# }
当雷电必杀发出时,程序中断,程序停在B6FC:9D F006 STA$06F0,X这行,如图15:注意B6F6:E9 08 SBC#$08这条指令,这条指令作用是把
6 `( w  k5 u8 d; T+ \5 r
  {! x( M  z& e; I- p4 c地址06F0减去8,大家都知道赤影战士放雷电必杀后会扣去8点体力,而这个08正好是放雷电必杀所需要扣的体力,只要把08修改成00的话就不会扣体力。(当然你也可以修改成01,发必杀只扣1格体力啦^_^)7 E+ y( a- ]9 J  z' ^

2 |' C- J5 B$ W# A- \" U转到RAM,找到B6F6:E9 08,把图中红色方框数据抄下,以便查找。如图16:把08修改为00就不扣体力了,如图17:关闭RAM和DEBUG,再重启游戏,再发动必杀,不扣体力的话说明修改成功了。  [% y. ]1 S) ~( m. [7 a

' y) O6 ~; F9 ?+ [% U如图18:关闭模拟器,打开UltraEdit32,载入ROM,编辑之前按一下Insert把插入方式设为覆盖方式,点击“搜索”>“查找”,查找之前抄下的数据,找到如图19的数据:把08修改成00,再保存退出,如图20:4 m# b9 \( p+ A6 Q0 M, i

9 u( `1 p& u' H) p+ G7 U* [* c1 a再进模拟器打开修改后的ROM测试发必杀是否不减体力,不减体力的话说明修改成功。
2 S8 y  H; P5 T* E9 E7 h$ O  u* L3 X
! Y( Z* B- @7 w6 pPS:跌落损伤修改方法和发雷电必杀修改方法一样,我不再说了,留给大家练习,方法设置好断点,再找个地方跳楼自杀(-_-),就能跟踪找到地址了......
4 E" M* v/ W- m( ^! t, z+ Q9 {$ c6 x! h+ @, z3 b4 W9 B+ ]
偶找个时间再继续发如何HACK受攻击不减血和一开始拥有99个雷吧.......

本帖子中包含更多资源

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

x

签到天数: 1894 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 06:27:29 | 显示全部楼层
(3)受攻击不减血. O, |6 j, H  ~0 m5 u, r
打开VirtualNes Debugger并加载赤影战士日版ROM,开始游戏后,打开RAM和DEBUG,同样用体力EC作弊码6F0来设置断点,设置好断点后,- ~* r( P: H  t+ g. _4 {

) a; {' K+ b: o回到游戏被敌人打一下,当敌人攻击主角时,程序中断,程序停在AC69:9D F006 STA $06F0,X这一行,如图21:
% M* t2 ]3 K( _' m- P( U/ P
; N6 u! [* j4 ^2 V0 G- Q9 y6 C注意AC69地址前面的AC63:E5 9D SBC$9D,这条指令作用将06F0,X地址数值减去009D地址数值。单单只将SBC指令修改LDA指令会有问题,偶考虑只有通过无条件转移指令(4C)再添加指令来达到不减血.....& s/ P( T9 T1 P

6 Z" Z" ?2 I* J  l首先抄下如图22的数据,方便查找:之后在RAM中查找寻找连续储存的0xFF,可以在前面也可以在后面,也可以寻找连续储存的0x00,注意的是00是中断指令,有时候修改了游戏会出错。看情况吧。一般选择在连续储存的00中段开始加入修改数据。
2 `: S. C5 ^7 p8 i, Z
% e7 U; A  l  }& R- S, B偶在RAM后面FFC3~FFDF找到一些连续储存的FF,如图23红框中连续储存的FF,把FF前面的数据抄下,方便查找,接着测试吓这些FF是否能使用.....
, X0 h) r( ], R& c: j/ |. F1 T& a5 d' u! f6 [* C$ `- J
方法如下:
$ }! t! M+ o3 _( a
* g2 Q2 V( L# a8 _7 V0 r, f在RAM中把AC69的9D F0 06修改为4C C4 FF,指令说明:4C C4 FF作用是跳转到地址FFC4继续执行,4C是无条件跳转,如图24、25:9 f1 m9 B3 y; L% A5 i' k! q

2 K2 u( k$ a! n4 ?# g为安全得想,偶跳过第一个的FF,而在第二个FF开始输入9D F0 06 4C 6C AC,指令说明:9D F0 06是以X为偏移量,把寄存器A内容送入06F0,X地址中,4C 6C AC是跳转到AC6C继续执行,如图26:
; E3 _5 d  n( j: Y3 Z, a
; I5 P2 r: C  \' R) k6 c接下来关闭DEBUG和RAM,回到游戏看吓游戏是否正常游戏,能正常游戏说明地址能够跳转使用。如图27:) W3 j5 y7 K7 ]& H. T7 l  [& W
% S: j( J( M8 r2 U6 c0 G  ?/ }
接下来打开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:
- f* v( B9 y# P% V+ j2 W" s/ I: u/ z/ @! I! J
指令说明:A9 10是把数值10读入寄存器A中,9D F0 06是以X为偏移量,把寄存器A数值10送入06F0,X地址中,4C 6C AC是跳回AC6C继续执行- b' R7 b2 o/ b7 P+ g- c! e

0 I6 A$ n0 h, n- `5 D1 U/ c, y- M关闭RAM,看看游戏是否减血了,不减血说明修改成功,如图29:
) |6 p% J, W! M6 k5 @6 q4 m+ r
接下来,打开UltraEdit32,载入ROM,查找上图22的数据,如图30:& Z; z" d0 j7 E+ b# V2 [1 o' |
4 N; ]% g, i( y0 S
找到把图中的9D F0 06修改为4C C4 FF,如图31、32:
) i( B5 f8 a5 S8 ^; ~+ C* q2 ]8 N/ ]
接着,查找上图23连续储存的FF前面的数据,比如上图23的连续储存的FF前面是20 86 A0 4C 22 EC,找到后,在20 86 A0 4C 22 EC后面的就是你要添加指令的连续储存FF,如图33:) k8 ?9 P& q& k3 g9 ^! R( H& L
4 k. u, G! t3 ?- m
同样跳过第一个FF,而在第二个FF开始添加指令,如图34:+ P  P6 R; ^% i# ?" Q- o
(如果你真要在第一个FF开始添加指令的话也不是不可以;假设你是在第一个FF开始添加指令的话,那图32的4C C4 FF应该修改为4C C3 FF)
; k- K; {- z  w' r$ o/ ?0 a- C# q* f7 V* P: a. {. V3 ~
保存ROM,退出UltraEdit32,再进模拟器测试是否不减血,不减血说明成功了.....,如图35:6 M: F( @/ c1 U( G! @3 O9 H

4 q( Y, r/ K" e$ w8 M5 B9 ~5 \[ 本帖最后由 疾风之狼 于 2008-12-1 12:24 编辑 ]

本帖子中包含更多资源

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

x

签到天数: 1894 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 06:29:31 | 显示全部楼层
(4)一开始拥有99个暗器雷
& o1 K; B5 z) E首先要找到体力初始值,大家知道在赤影战士中体力初始值什么时候开始读取并放到06F0、06F4地址中?答案是在选择人物后。(注:06F0是对应1P体力值地址,06F4是对应2P体力值地址)
5 t: e. _# }4 j: R7 Q0 ]* L
' V6 K' ^- ?* U! K要想在游戏开始后立即就有99暗器雷,必须在数据初始化后面加入暗器雷和暗器数量指令代码,如何添加指令代码?方法是上面的受攻击血不减方法一样,同样用无条件跳转指令4C再添加指令。
: j) N4 `/ \$ Y7 L* q( r: h1 k
偶决定来教大家如何双人游戏时两人一开始拥有99暗器雷,打开VirtualNes Debugger并加载赤影战士日版ROM,选择双人游戏进入到选择人物后,打开RAM和DEBUG,用2P体力值EC码06F4地址来作为断点.....( }9 D3 d6 U' x3 H* @" }2 D' y
: `3 L  Y8 \% o. y8 {! g
设置好断点后,回到游戏中,按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体力值地址)- y1 \' b2 s& T) n' ^

7 M1 @4 X- q9 w: t0 D0 d7 uA2F7:A9 10   LDA#$10  :A=0x10          -->把数值10读入寄存器A
. S/ R9 c# k7 i# \: `A2F9:8D F006 STA$06F0 :[06F0]=A=0x10   -->把寄存器A的数值送入06F0地址1 n7 {7 D" Q2 h" Z! q3 _& a
A2FC:8D F406 STA$06F4 :[06F4]=A=0x10   -->把寄存器A的数值送入06F4地址
' m% y; w& _8 }% x) p. q( F) V! ?1 x& b$ Y
在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来添加指令吧....
, ~2 M2 P4 [! }; n# t* @+ L2 o6 c, e
; M) Q. A; }1 h1 i0 T接下来在RAM把A2FC的8D F4 06修改为4C C4 FF,如图38、39:! a  ?& b& g& U- |
+ y5 D5 R" z8 x3 u5 J( P& o
接下来拉到滚动条来到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:$ L8 G; Q& B. X4 q1 F/ C3 D. O3 e

% ~* P! j8 g7 ]: m) h/ l3 c" Y指令说明: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地址继续执行
5 U, E, ?1 w9 \+ A7 C0 U4 j5 V! B4 p. k  j6 M
接下来关闭RAM和DEBUG,重启游戏,进入游戏后暗器数是99,按一下攻击,如果放的是暗器雷说明修改成功!如图41:
4 a- C/ f2 t4 i7 I6 N
( z8 f, k3 ]( E6 t3 f接下来关闭模拟器,打开UltraEdit32,载入ROM,查找你刚才用笔纸抄下的数据,找到后把8D F4 06修改为4C C4 FF,如图42、43:6 n, k( M: {4 }* T& y& l1 M
. x; d2 r$ |. u# I' v' D
接下来在找到上图33的连续储存的FF地方,偶还是跳过第一个FF,而在第二个FF开始添加指令,如图44:
, G' c- S" T# H* V
& f2 {5 G& `! I2 {0 U保存ROM,关闭UltraEdit32,打开模拟器载入修改好的ROM测试,如图45:如没什么意外发生的话说明修改成功!
3 i0 W6 D9 Q5 w1 x6 m# _+ A: {! @. d/ z, S! d* {
菜鸟HACK教程到此完成!以偶目前HACK水平来说还算是一只HACK菜鸟,没有和尚HACK技术那么厉害!:L

本帖子中包含更多资源

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

x

签到天数: 5 天

[LV.2]偶尔看看I

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

该用户从未签到

发表于 2007-4-21 10:27:49 | 显示全部楼层
2 t7 O+ [' b& g3 t* q( B: [$ d4 M
适合新手学习修改的教材

该用户从未签到

发表于 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:
& _7 \# r1 Q: b4 M1 ~5 u不减血的教材

签到天数: 1894 天

[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 | 显示全部楼层
呵呵 完成了,得好好学习
% m3 Z- C7 R0 u# zxiaofa兄弟也在这啊

签到天数: 7 天

[LV.3]偶尔看看II

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

签到天数: 26 天

[LV.4]偶尔看看III

发表于 2007-11-5 21:46:57 | 显示全部楼层
终于可以自己去HACK简单的游戏了:loveliness: 3 h" w  Q, i4 `; c0 v+ ~8 \# x
激动啊;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 | 显示全部楼层
好说的太好了 ( i+ ]* N3 S: q! g$ P
我会了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-2-24 11:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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