EMU618社区

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

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

 关闭 [复制链接]

签到天数: 1869 天

[LV.Master]伴坛终老

发表于 2007-4-21 05:26:54 | 显示全部楼层 |阅读模式
注意:转载请注明本人名字和文章出处!
' a' p+ C8 h& G4 A6 R- w+ v( {; |6 h9 r: d3 q- s
菜鸟NES HACK简单教程(偶应N多人要求才做这个教程,有错误请指正:L )
- w! g3 A  W2 v* u7 u8 E5 ~7 N* h% e& U8 N- P# e
NESHACK相关资料下载:http://bbs.emu618.com/forum/viewthread.php?tid=12675&extra=page%3D29 E4 Z; G  k- Y  T" B) J  m$ S

7 v3 [0 r$ M+ D! T6052汇编大奥秘(详细介绍FC的汇编语言,推荐下载):http://bbs.emu618.com/forum/viewthread.php?tid=20393&extra=page%3D1
- [/ B/ l/ A6 Z! D( ~
' c. m3 F1 \/ \: K+ O1 S2 Q开始之前先说几句废话
* M. O, G( [! T2 }# M& J
7 ]' c  `* A& ^. U6 s7 [  w- I第一,HACK之前先了解一下6502汇编指令,NES相关资料里有指令集说明文档,如果你看不懂英文的话就下载《6502汇编大奥秘》,里面有指令中文说明........^_^
7 {$ j( k0 G" n  \$ O9 X0 v* J6 r! C5 V% U$ p2 _, [
个人建议:没必要把6502全部汇编指令硬背下来再跟踪调试,那样会很累,你可以一边调试一边查询指令说明.......: l. ~7 V8 ~3 F. G) x
0 A4 j* b9 Y7 A: h) {
第二,还需要准备一些工具:NES调试跟踪工具(VirtualNes Debugger版或者no$nes-w、FCEUXD SP等NES调试跟踪工具)、十六进制之类编辑工具(Winhex或者UltraEdit32)& N* y3 w" h1 V; V6 s2 s
6 @; T1 i1 z+ r; A# c* k
第三,了解修改步骤:
! d) H* e: Z6 h8 K1、首先要确定你要修改什么。连要修改什么都不知道,那怎能谈上修改呢。
9 a8 g( u, \& y0 E( e6 n+ e2、获取作弊码,换句话说就是要获得要修改数据的地址。推荐使用EC,这个软件自带作弊码和跟踪修改功能。
8 G1 i4 T$ Y1 c5 I+ B7 R2 l( U- ?3、获得指令代码及其在Rom中的地址。一般通过VirtualNes Debugger版或者no$nes-w、FCEUXD SP等NES调试跟踪工具,再配合内存查看和十六进制之编辑工具确定指令以数据方式储存在Rom中的哪个地址。
% \' Z; A+ \" }' M- G& A! p4、修改相应指令或数据。一般来说要做尽量少的修改,而且不能让程序运行出错。
+ l% m/ n. f$ K; i$ S9 G5、测试游戏运行情况,看游戏能不能按照你修改目的正常运行。
3 x. y( i0 S/ [9 M% d9 q) m6 J" ^% {; P3 k. `/ f) t
第四,偶以日版《赤影战士》和VirtualNes Debugger版来为例子教大家如何HACK:# u( i0 ]; e+ h1 d
8 e% I! J# ]- o" v  y" ~
偶需要修改的数据:暗器数不减,放雷电必杀不减血,被敌人攻击不减血,一开始拥有99颗暗器雷
) }$ L. s* [1 N6 A: M- T3 h# ?4 t6 d; _
1、获取作弊码,这个好容易得到,EC这个软件附带N多作弊码,省去自已手工查找作弊码了。^_^+ ]# u4 U8 W* i2 @! R8 {  C
[P1 生命值]
5 t8 u4 ?0 x4 i7 qON=6F0,10. }; ~( F9 ?! y% L) }1 l5 K3 J

" T4 J8 |$ F3 X: j8 S7 x[P1 暗器数量]( l: b3 x" I' A/ a8 R& t
ON=662,FF( B7 J, ^8 R1 T  d8 z' ^& m* e* c; A

# a9 L6 L! `) o# ~, k[P1 武器种类]
+ W' G9 b) K& w刀=6B2,0
+ M5 D/ b* o: ]8 ~+ A$ YON=6B2,3
% g& C+ {& R4 y5 L# I5 ^: s2 d& t; @6 A
[P1 武器威力]1 q8 s! r% R  V1 R: ^5 U
ON=680,FF
' y! M" n* [. S- h/ V# }+ C1 _& F3 p
[P1 暗器种类]
2 R; S* y, q% }& E  ^7 n标=671,0' V! w" e3 F: w; u! G
雷=671,15 a) V% B' g) X  f' S( x3 F
( j0 v# i4 ^" }7 b$ S+ |* O8 o
[P1 隐身]$ e2 s! l5 J. \# C
OFF=0000,0
" X/ p+ B% ]8 _/ |# G' NON=601,4C. E( M5 `. p/ D! |

# [1 _" u5 O' S! I. b, r[P2 生命值]  a2 r7 S8 X! m
ON=6F4,10
+ m4 u6 g$ b2 N* S6 X9 h7 E; ]4 h: h' `# P! H6 i. V/ u9 L, n: F8 u0 p) k
[P2 暗器数量]/ O# z5 f+ A  E$ c* c
ON=666,FF
0 v7 k0 Q/ W7 n. r/ X/ C* |" K" A/ Q' F- i% o) D# \
[P2 武器种类]  |) c) C5 G( p( R3 m3 Y. v
刀=6B6,0' z3 Q: p0 O6 E' j
ON=6B6,3
' a4 F, M( ?' q: D$ U; j3 N6 c9 F; U) ~, P5 e9 o3 ^
[P2 武器威力]
1 }1 N) v( }3 qON=684,FF$ V9 i+ T) \  N% |+ f& }( F

6 P1 L7 T# O* s& V; {1 {( D[P2 暗器种类]) r4 u8 n( d% o9 X2 n
标=675,09 r2 v" {0 O0 G. D8 Q: B1 A
雷=675,1
0 [4 y: k# K. H" s' C, Q
! G3 k) m4 V2 I& K[P2 隐身]: _4 F1 O6 O4 e2 p8 J7 t: \/ [
OFF=0000,0
5 a# C( ]6 \+ GON=605,4C
, X+ n: _8 ]5 Z+ O. {1 X8 k
6 _5 T  Y* L7 d6 F1 G% \[GameInfo]2 s6 R, ?3 [" n) f/ |% r5 K
Name=Shadow of the Ninja (FC/NES)
1 B' V. p2 P$ WSystem=FC
! H, M( s/ D8 c; yText=赤影战士(水上魂斗罗),双人、动作游戏,由大胖子提供!
2 x' G, c' Z0 O( W6 _7 q, m+ F6 V# j# F
[ 本帖最后由 疾风之狼 于 2009-10-14 15:09 编辑 ]

评分

1

查看全部评分

签到天数: 1869 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 05:27:43 | 显示全部楼层
2、通过调试跟踪获取指令代码及其在Rom中的地址,并用16进制编辑工具修改ROM其中数据
4 w0 J3 f; k3 W3 x' E% U偶按照暗器数不减,放雷电必杀不减血,被敌人攻击不减血,一开始拥有99颗暗器雷顺序来教大家如何跟踪调试修改:
8 C6 H+ U% J7 ^" N  A0 @1 t/ G. X: O/ b0 ^$ _% R' l# H0 A6 X
(1)暗器不减:$ M- L1 |* [8 H- `" [2 S% ~

+ c9 C  n2 l1 @) p6 n5 \首先打开VirtualNes Debugger并加载赤影战士日版ROM,如图1:; S+ d- E2 a, ]6 }, ?0 o
: i& M% D% o9 l
接下来游戏进行到获到暗器飞镖20个,如图2:/ F  r+ H; ^* y" i

( Y4 _" [/ r$ H接下来开始跟踪飞镖数量,先打开RAM,再打开DEBUG,先打开DEBUG的话,不然RAM就用不来:如图3、图4:
6 _; X* @$ J) O! \! s: m& y9 ~2 P% L3 r6 s; n& R9 d' u# H
先点暂停,根据如下面作弊码提供的暗器数量地址,如暗器数量地址是662,就在注释内出现后面方框中输入[0662](注:可以用这东东当条件断点),再点右边确定让游戏继续运行,如图5:
8 R; |" o. l: e8 V8 G! k
! U. N5 V: V; |) E2 `+ U[P1 暗器数量]+ n! V9 u* ~7 @
ON=662,FF+ i" u6 I( \7 I  b/ |6 n/ S) Z2 L" m
; w# r! R/ o6 g
使用一次飞镖,程序会发生中断停在B840这一行,如图6:' X, C4 A* c  j! _0 d: F; Z  h: c
8 w; j$ `. `0 n
B840 : DE 6206 DEC $0662,X;[0662]-- =0x13: X* l; f- E- j. x  R! J

! J" i) h) R5 A+ _$ k, t查指令表得知B840这个地址DEC $0662,X指令作用是将0662+(X)=真正暗器地址的数值减1;既然这样,只要把这条DEC $0662,X指令改为LDA $0662,X就可以让暗器数量不减了。LDA $0662,X作用是把0662+(X)=真正暗器地址的数值读入寄存器A。(X)是寄存器X的数值。
' R; C) s* H0 A; n, T举个例子:假设X寄存器数值是6,指令是“LDA $1234,X” 这条指令看上是将$1234地址数值读入寄存器A,但实际上$1234不是真正数值存放地址,1234必须加上寄存器X的数值才是真正数值存放的地址。1234+(X=6)=123A,LDA $1234,X指令应该是这样解释:将1234+(X=6)=123A地址读入寄存器A。) @& E; g' h- D3 z  c$ ]3 {! W- T
LDA xxxx,Y和LDA xxxx,X一样,不过寄存器X变成寄存器Y。  o) @% y0 x. {( H9 z
! B# s8 g" e; B2 K" h
查指令机器码得知DE是DEC - Absolute,X,BD是LDA - Absolute,X,注意寻区方式要一样....把DE修改为BD就可以不减暗器数量了。8 G. B! d( N) v% B6 d1 k3 p! A/ N

: {" X% Q4 A0 Y( e! W( e0 y. q7 \注意:别把BD修改成其他LDA指令,这样会死机的,因为指令寻区方式不一样。
& G  m7 i! u* b; R& Q: W6 s4 P4 T
& B2 ?  a! o' K- w) H: v2 g/ Y$ o& d另外,有一些其他游戏是这样的:改为LDA $XXXX,X 那么就会破坏了寄存器A原来的数据了,后面的程序如果要直接用寄存器A的数值的话,那么就会造成游戏出错,如果后面的程序在用寄存器A的数值之前对寄存器A赋于新值就没事了。
& U1 _/ d$ t' G7 D+ _* B7 ^( @  e( n7 k7 o
接下来在RAM中找到B840:DE 62 06,如图7:
5 U% |+ n; @1 y; f1 t& i
% t2 a" f. ?/ l% q" q用笔纸抄下红框中数据,以便在查找,接得在RAM中把DE修改BD,如图8:
! ^, h2 Z/ w$ T: u* U, T0 u( P
+ j9 z. {9 p" L$ ^( y- l关闭DEBUG和RAM,回到游戏中测试吓暗器数量是否不减,暗器不减了,说明指令修改成功。如图9:8 D( I1 O  R) K2 {+ h2 f) j
0 K$ [4 W9 c8 r6 N( t
关闭模拟器,接下来用十六进制修改工具(如UltraEdit32)修改ROM,还记得之前用纸笔抄下的数据么?
- K6 ~; v6 p( ?3 d" Z# E$ N* [1 l; `
打开UltraEdit32,载入赤影战士ROM,编辑之前按一下Insert把插入方式设为覆盖方式,如图10:2 {0 d( P, s  }6 Q$ X

" @; H7 ^9 y+ e5 u" M3 \( ~点击UltraEdit32“搜索”>“查找”,在弹出查找框中查找内容(N)后面方框中输入你用纸笔抄下的数据,再点“查找下一个”就能找到这个数据,如图11:
8 I# {, E/ s) P* A" b/ G9 n3 U$ j# @, x0 e; P6 U0 E/ T
如图12,结果出来,UltraEdit32高亮度显示你就是要找的数据,把DE修改为BD,再点“文件”>“保存”保存你修改结果。如图13:
0 Y8 D: l- \  j# K0 r; J, T
9 u$ h' ^  u" a" M. C; O( G6 P关闭UltraEdit32打开模拟器载入修改后的ROM测试暗器数量是否不减,不减的话说明修改成功了,如图14:  M* Y+ U5 b9 }5 l1 z
" z! w* `- a! x, Z' S
暗器雷数量不减修改方法和暗器飞镖数量不减修改方法一样。就不再说了,留给大家练习一下。
- U' a/ l  C: `: }4 a( C6 x6 [, x( M
5 T9 j0 d6 {: }4 ^# w) q[ 本帖最后由 疾风之狼 于 2009-10-14 15:08 编辑 ]

本帖子中包含更多资源

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

x

评分

2

查看全部评分

签到天数: 1869 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 05:28:36 | 显示全部楼层
(2)放雷电必杀不扣体力
7 @9 f1 a$ C, Y/ Y" i! |; P4 N打开VirtualNes Debugger并加载赤影战士日版ROM,开始游戏,打开RAM和DEBUG,查询EC作弊码得知体力地址是6F0,2 n- h% ~/ |! U0 N% q# U! V  H
: }8 J3 ]# ~, C/ _
估计大家看暗器不减HACK教学后就知如何设置断点跟踪,我就不再说了,设置好断点后,回到游戏,按紧B键不放使出雷电必杀," g7 C+ B& ?1 p- v4 [0 X/ C
* p2 K9 I" t( j- R8 L1 o
当雷电必杀发出时,程序中断,程序停在B6FC:9D F006 STA$06F0,X这行,如图15:注意B6F6:E9 08 SBC#$08这条指令,这条指令作用是把
! g  n2 c; K2 U. m1 s* r8 X$ f( B4 T! B3 X
地址06F0减去8,大家都知道赤影战士放雷电必杀后会扣去8点体力,而这个08正好是放雷电必杀所需要扣的体力,只要把08修改成00的话就不会扣体力。(当然你也可以修改成01,发必杀只扣1格体力啦^_^)
! ]: n6 G: b" ^# C8 [! D
7 ^; X$ U6 N4 j. S1 z. \( x5 i转到RAM,找到B6F6:E9 08,把图中红色方框数据抄下,以便查找。如图16:把08修改为00就不扣体力了,如图17:关闭RAM和DEBUG,再重启游戏,再发动必杀,不扣体力的话说明修改成功了。# r8 s0 @5 r3 y6 x" m

4 m  X; X" K, M7 y2 z4 M! u' i" r如图18:关闭模拟器,打开UltraEdit32,载入ROM,编辑之前按一下Insert把插入方式设为覆盖方式,点击“搜索”>“查找”,查找之前抄下的数据,找到如图19的数据:把08修改成00,再保存退出,如图20:5 X  F. n0 z/ [8 S" q

9 y7 e  X* \" U# y& j4 O7 R再进模拟器打开修改后的ROM测试发必杀是否不减体力,不减体力的话说明修改成功。* w# z8 m( |: l+ N8 k, u1 z5 u
/ X& ?- C3 L; S- U
PS:跌落损伤修改方法和发雷电必杀修改方法一样,我不再说了,留给大家练习,方法设置好断点,再找个地方跳楼自杀(-_-),就能跟踪找到地址了......$ \4 w" f$ W3 U5 \; \! v( c4 N
$ f2 C: }+ J  @! O2 H# Q
偶找个时间再继续发如何HACK受攻击不减血和一开始拥有99个雷吧.......

本帖子中包含更多资源

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

x

签到天数: 1869 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 06:27:29 | 显示全部楼层
(3)受攻击不减血
6 e$ |* E: N* G7 [8 J打开VirtualNes Debugger并加载赤影战士日版ROM,开始游戏后,打开RAM和DEBUG,同样用体力EC作弊码6F0来设置断点,设置好断点后,. h* o1 o3 {+ z
$ H8 s3 l# S* i6 @. g
回到游戏被敌人打一下,当敌人攻击主角时,程序中断,程序停在AC69:9D F006 STA $06F0,X这一行,如图21: " [/ o5 E4 b% T$ j9 R1 n
9 ~+ X$ z: g  g/ o4 O9 {8 Z  ]7 D
注意AC69地址前面的AC63:E5 9D SBC$9D,这条指令作用将06F0,X地址数值减去009D地址数值。单单只将SBC指令修改LDA指令会有问题,偶考虑只有通过无条件转移指令(4C)再添加指令来达到不减血.....' N0 k  W9 a) u
/ q  x% f6 i: e/ t2 @# X. O& x
首先抄下如图22的数据,方便查找:之后在RAM中查找寻找连续储存的0xFF,可以在前面也可以在后面,也可以寻找连续储存的0x00,注意的是00是中断指令,有时候修改了游戏会出错。看情况吧。一般选择在连续储存的00中段开始加入修改数据。+ S7 s% Q" s, b4 t% u

/ a* T  W& S2 t% G+ I偶在RAM后面FFC3~FFDF找到一些连续储存的FF,如图23红框中连续储存的FF,把FF前面的数据抄下,方便查找,接着测试吓这些FF是否能使用.....6 G% U2 c+ M' ?# C" s' Z
! o6 c1 Q8 y  p5 ^
方法如下:
7 q$ n' y: k, c8 L
+ H' D. F7 ?" D在RAM中把AC69的9D F0 06修改为4C C4 FF,指令说明:4C C4 FF作用是跳转到地址FFC4继续执行,4C是无条件跳转,如图24、25:
4 v" L4 m2 Y/ T+ _" U/ z- s( J3 k! ^( q$ K' D4 g
为安全得想,偶跳过第一个的FF,而在第二个FF开始输入9D F0 06 4C 6C AC,指令说明:9D F0 06是以X为偏移量,把寄存器A内容送入06F0,X地址中,4C 6C AC是跳转到AC6C继续执行,如图26:$ \& F' S# ~) w; D9 b

. P& K1 `* a& p) w接下来关闭DEBUG和RAM,回到游戏看吓游戏是否正常游戏,能正常游戏说明地址能够跳转使用。如图27:
9 p& c% [# P: D1 s! o2 m6 G
- ]5 \) i0 ~8 F$ Z$ D, D接下来打开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:
/ w, j4 |2 e& V* d% ~! J# P* S2 Q( k
指令说明:A9 10是把数值10读入寄存器A中,9D F0 06是以X为偏移量,把寄存器A数值10送入06F0,X地址中,4C 6C AC是跳回AC6C继续执行
5 L# S+ m  Z! e: H5 p) X
" T) A: J( h0 W: p% J关闭RAM,看看游戏是否减血了,不减血说明修改成功,如图29:
9 Y8 X$ l+ P) V# z' Z0 n5 [/ L: h! s, s: y+ B
接下来,打开UltraEdit32,载入ROM,查找上图22的数据,如图30:
# n- ?4 K/ o  k* U+ F8 R# U7 U! e3 G  F+ {. u( }4 e
找到把图中的9D F0 06修改为4C C4 FF,如图31、32:3 G  G4 R( X; P7 f/ f
7 _, q; ~  h8 ^. {) d: e6 j
接着,查找上图23连续储存的FF前面的数据,比如上图23的连续储存的FF前面是20 86 A0 4C 22 EC,找到后,在20 86 A0 4C 22 EC后面的就是你要添加指令的连续储存FF,如图33:
5 F" }% {% C6 A" j, G/ K  _: y) u3 s/ q9 e  k8 ]( x
同样跳过第一个FF,而在第二个FF开始添加指令,如图34:
' D! |- E& R$ ]0 r(如果你真要在第一个FF开始添加指令的话也不是不可以;假设你是在第一个FF开始添加指令的话,那图32的4C C4 FF应该修改为4C C3 FF)
) R/ \6 r7 W7 M5 j& j( {" P, A  i$ ?8 o
保存ROM,退出UltraEdit32,再进模拟器测试是否不减血,不减血说明成功了.....,如图35:
' O+ t7 b/ p" a' c2 W
( r+ X4 j4 p0 [$ j+ J' o% o* _[ 本帖最后由 疾风之狼 于 2008-12-1 12:24 编辑 ]

本帖子中包含更多资源

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

x

签到天数: 1869 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 06:29:31 | 显示全部楼层
(4)一开始拥有99个暗器雷% f$ Q: K% t+ m  r9 x2 ]% B2 X: x' Z
首先要找到体力初始值,大家知道在赤影战士中体力初始值什么时候开始读取并放到06F0、06F4地址中?答案是在选择人物后。(注:06F0是对应1P体力值地址,06F4是对应2P体力值地址)
) K( m: {9 ]9 C- B
$ n: @0 v5 E- M2 p. N) q要想在游戏开始后立即就有99暗器雷,必须在数据初始化后面加入暗器雷和暗器数量指令代码,如何添加指令代码?方法是上面的受攻击血不减方法一样,同样用无条件跳转指令4C再添加指令。
8 t; }+ I9 H( w7 H) v" R! G7 T2 h) j- U2 X* e
偶决定来教大家如何双人游戏时两人一开始拥有99暗器雷,打开VirtualNes Debugger并加载赤影战士日版ROM,选择双人游戏进入到选择人物后,打开RAM和DEBUG,用2P体力值EC码06F4地址来作为断点.....
- l( }5 j5 j9 Y6 i/ `2 e5 H/ |& k* u( d! Y
设置好断点后,回到游戏中,按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 @# X! b& M9 F( S+ \2 T5 m5 T$ ^  |2 a) C8 a5 @  l1 D
A2F7:A9 10   LDA#$10  :A=0x10          -->把数值10读入寄存器A5 W$ V3 n* M) t* n1 R# S2 Q# u
A2F9:8D F006 STA$06F0 :[06F0]=A=0x10   -->把寄存器A的数值送入06F0地址
% x/ _1 m  a% Q3 p9 {8 `* |5 v% d+ iA2FC:8D F406 STA$06F4 :[06F4]=A=0x10   -->把寄存器A的数值送入06F4地址
% R4 j$ A0 [) |+ U) N) c% k0 O8 ~4 c8 x" p- S0 a% m
在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来添加指令吧....0 d; G/ {9 k% d

/ l% s9 Q, D4 h接下来在RAM把A2FC的8D F4 06修改为4C C4 FF,如图38、39:1 K- O7 u4 s- `- d! P
9 o; F; }9 H0 \" s3 g
接下来拉到滚动条来到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:$ M, d# \: k) V0 j
0 |& u6 B! W( V2 z/ W
指令说明: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地址继续执行
3 [* y/ o8 u; C4 E/ m3 C1 z* l2 B" \  \, ]
接下来关闭RAM和DEBUG,重启游戏,进入游戏后暗器数是99,按一下攻击,如果放的是暗器雷说明修改成功!如图41:, o, D' S  j; c1 v5 i' b; _

6 F; _. [/ q$ B" o9 X8 K, r: k接下来关闭模拟器,打开UltraEdit32,载入ROM,查找你刚才用笔纸抄下的数据,找到后把8D F4 06修改为4C C4 FF,如图42、43:. r3 _4 N7 P" \$ N

; x# k9 Z7 _% W( M接下来在找到上图33的连续储存的FF地方,偶还是跳过第一个FF,而在第二个FF开始添加指令,如图44:
* ^; F, Y- g9 q# S3 @
' Z$ _$ `# x* G1 u! C6 ^: A3 y保存ROM,关闭UltraEdit32,打开模拟器载入修改好的ROM测试,如图45:如没什么意外发生的话说明修改成功!
% q0 v8 `( I+ o
% E9 I% J# v4 Y2 J' K: j2 K+ D菜鸟HACK教程到此完成!以偶目前HACK水平来说还算是一只HACK菜鸟,没有和尚HACK技术那么厉害!:L

本帖子中包含更多资源

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

x
头像被屏蔽

签到天数: 5 天

[LV.2]偶尔看看I

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

该用户从未签到

发表于 2007-4-21 10:27:49 | 显示全部楼层

+ j( E2 \6 E( }2 {) [+ q8 B2 t! R适合新手学习修改的教材

该用户从未签到

发表于 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:
) ]$ E# n/ l& x" k' c不减血的教材

签到天数: 1869 天

[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 | 显示全部楼层
呵呵 完成了,得好好学习
9 ?! l" I. Q. sxiaofa兄弟也在这啊

签到天数: 7 天

[LV.3]偶尔看看II

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

签到天数: 26 天

[LV.4]偶尔看看III

发表于 2007-11-5 21:46:57 | 显示全部楼层
终于可以自己去HACK简单的游戏了:loveliness: - N5 _6 w% ~  U' H' ]2 F! s0 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 | 显示全部楼层
好说的太好了 / [2 u2 ?- C0 @7 |3 L0 J
我会了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-2-23 07:13 , Processed in 1.110351 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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