EMU618社区

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

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

 关闭 [复制链接]

签到天数: 1574 天

[LV.Master]伴坛终老

发表于 2007-4-21 05:26:54 | 显示全部楼层 |阅读模式
注意:转载请注明本人名字和文章出处!
" h% |. u; l5 l3 d0 L: U  t) s* w( y3 J, e) I6 l
菜鸟NES HACK简单教程(偶应N多人要求才做这个教程,有错误请指正:L )+ v9 o- J9 a$ V: S5 G8 C6 |( k- f( o

! t9 ]; K  g% B5 @* E- Q! t$ ^NESHACK相关资料下载:http://bbs.emu618.com/forum/viewthread.php?tid=12675&extra=page%3D2  ]8 x9 F# t" @( I9 y; G

* C( ~. I5 h. g1 _5 Y6052汇编大奥秘(详细介绍FC的汇编语言,推荐下载):http://bbs.emu618.com/forum/viewthread.php?tid=20393&extra=page%3D1$ p! ~/ ^8 ?2 ]
2 U6 A- _  C, k3 o4 R/ Q! @" C; B
开始之前先说几句废话
5 F1 A$ Z2 M, \# \  p" i0 i" {. `: ^5 j& }# k
第一,HACK之前先了解一下6502汇编指令,NES相关资料里有指令集说明文档,如果你看不懂英文的话就下载《6502汇编大奥秘》,里面有指令中文说明........^_^$ V  o7 b6 A9 ]

2 S+ ~7 `: y1 q个人建议:没必要把6502全部汇编指令硬背下来再跟踪调试,那样会很累,你可以一边调试一边查询指令说明.......
, r1 |. q# n, l6 s+ \! L# ]
3 q1 g1 e! Z) b第二,还需要准备一些工具:NES调试跟踪工具(VirtualNes Debugger版或者no$nes-w、FCEUXD SP等NES调试跟踪工具)、十六进制之类编辑工具(Winhex或者UltraEdit32)' a  u" [0 G# s' Y, L! o

6 ]2 ~+ I) k( r# z3 {$ M, o/ l" @第三,了解修改步骤:3 R# O3 _/ Z( J" x
1、首先要确定你要修改什么。连要修改什么都不知道,那怎能谈上修改呢。
3 f" p4 \  |% u2、获取作弊码,换句话说就是要获得要修改数据的地址。推荐使用EC,这个软件自带作弊码和跟踪修改功能。
0 n: Y- Y! V8 x4 T' z( y3、获得指令代码及其在Rom中的地址。一般通过VirtualNes Debugger版或者no$nes-w、FCEUXD SP等NES调试跟踪工具,再配合内存查看和十六进制之编辑工具确定指令以数据方式储存在Rom中的哪个地址。5 E, v7 J0 Q4 e1 }. p
4、修改相应指令或数据。一般来说要做尽量少的修改,而且不能让程序运行出错。8 S) n8 t0 T# M& v4 d1 t. ^% }
5、测试游戏运行情况,看游戏能不能按照你修改目的正常运行。
* a9 j0 C5 Y( a) ?/ M1 {& z) T8 D, t8 _7 H
第四,偶以日版《赤影战士》和VirtualNes Debugger版来为例子教大家如何HACK:
) p) P: ]8 o- `4 g+ _6 o5 w9 G. e$ e# g) s2 v  H  ]
偶需要修改的数据:暗器数不减,放雷电必杀不减血,被敌人攻击不减血,一开始拥有99颗暗器雷
* r* c1 d! }3 d
$ O. b! a; k5 j. t: Z5 P7 A/ L1、获取作弊码,这个好容易得到,EC这个软件附带N多作弊码,省去自已手工查找作弊码了。^_^  d+ @9 x6 W2 ~8 n/ `4 N. o
[P1 生命值]4 `# }' m3 z% i" ?" l4 h0 y) t3 \5 B* B
ON=6F0,10# K8 [, X/ H& m6 Y+ T1 v9 o& g

# i. Q' x7 r) c( {% b[P1 暗器数量]" C- O9 ~7 E+ P1 s' j
ON=662,FF
9 T$ R* S& \. k1 [/ k
5 M: T" @. ^0 ^- n9 G[P1 武器种类]
: n( k5 U3 L& _) j2 q$ f8 M刀=6B2,0
3 p7 H' k2 \' R$ Q* R$ `ON=6B2,3* Y; T+ V- |# t5 ^7 C
" y* O# @5 N/ W& `. D' U! Y2 c  v
[P1 武器威力]
% P7 ]/ M9 o5 F8 v' n6 DON=680,FF
! r5 T: D) b1 c3 A5 T: i" Z4 O' C# d3 V! h
[P1 暗器种类]
# s; o, }0 k  P7 m' L3 s标=671,0, {' `* u. Q! l$ g
雷=671,1/ n4 Z+ G1 b+ |' z' g& Z1 U
6 |; L) K; `: O. O
[P1 隐身]
, e* v* w# y) B3 GOFF=0000,0
8 L* O& d: ]2 [% j( qON=601,4C0 n6 D5 _1 j) g  ^0 O- g

7 v' [7 w# ?, F- X' ~2 W[P2 生命值]6 u2 L& m4 o0 y
ON=6F4,10# W% t1 c, H9 T" {: J2 K2 v! {

+ p# h& s: l: J# V' z9 u. u[P2 暗器数量]1 ?8 {5 D* x: L4 D) R9 x+ \9 ^
ON=666,FF
7 Y% O% N! c# u' l; Y9 R. x: W% \
[P2 武器种类]
2 O0 ?6 Y4 B* [" u) A8 w刀=6B6,0
7 e4 K( F7 Y' E! G* f$ W- K, qON=6B6,34 H9 V$ f8 }6 Q+ f" ~4 O
* A8 O: F3 A) }8 K& x8 l" a
[P2 武器威力]4 \( {. d5 D5 I' T+ b/ h, ]
ON=684,FF
1 n2 z) A5 x3 {& O8 v8 k  a9 R) g8 z  L+ }+ b) u- ?
[P2 暗器种类]
) t* \& A/ U6 `& u0 S5 O8 {标=675,09 m* N" C* H! g0 g
雷=675,1% j3 I' H( L% {6 F1 L* E  e

6 _' Z/ R, U% h% |9 [& Q1 \[P2 隐身]
0 ^  p/ f$ y% ^+ o+ k# ^8 ?OFF=0000,0
. A0 S' O5 Q! e+ \9 \# Z0 t- ION=605,4C6 V' B3 `# e: C+ X2 H% N3 b/ j

% K) l& @: m# C% }" v, w( K2 v[GameInfo]
9 A( t! U" r: D3 T3 u- v! }Name=Shadow of the Ninja (FC/NES)/ o8 n6 R5 T! p) T7 [4 U& F$ ~
System=FC
; j% g* Z0 \* ~9 R# e0 w% E1 cText=赤影战士(水上魂斗罗),双人、动作游戏,由大胖子提供!
) d6 ^* S5 Z6 D& l4 {7 b7 d
6 y0 ?2 J  K) `% W) _; X- N  Y8 Y. f[ 本帖最后由 疾风之狼 于 2009-10-14 15:09 编辑 ]

评分

1

查看全部评分

签到天数: 1574 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 05:27:43 | 显示全部楼层
2、通过调试跟踪获取指令代码及其在Rom中的地址,并用16进制编辑工具修改ROM其中数据
: H' s- J: y  X# a% `偶按照暗器数不减,放雷电必杀不减血,被敌人攻击不减血,一开始拥有99颗暗器雷顺序来教大家如何跟踪调试修改:4 e6 N) E9 ]/ s" U- g9 ^- F; E

$ j# x" y1 }& ]2 Q# R(1)暗器不减:
: r8 E! ]5 c3 }! H. c) ]5 P) p( I: o3 z! @" N. o' D6 \
首先打开VirtualNes Debugger并加载赤影战士日版ROM,如图1:
; S. B7 R. P, B: ^, r4 r/ K% \( v6 \/ R
接下来游戏进行到获到暗器飞镖20个,如图2:
" c% Z. n( [2 g4 }& M8 _" `4 o% O9 u) V, |& z
接下来开始跟踪飞镖数量,先打开RAM,再打开DEBUG,先打开DEBUG的话,不然RAM就用不来:如图3、图4:5 I: h: K4 R  o0 e; E+ F3 b' _
( N* p, ]' T* @$ f: j2 Q5 e
先点暂停,根据如下面作弊码提供的暗器数量地址,如暗器数量地址是662,就在注释内出现后面方框中输入[0662](注:可以用这东东当条件断点),再点右边确定让游戏继续运行,如图5:
) f/ V/ m6 z& j: A0 H9 v$ J
' A5 p+ W# T% z  B4 {0 S. Q6 {+ u- k[P1 暗器数量]+ N3 ~9 T/ w1 t0 \: @; K4 f+ n
ON=662,FF) a: k! s: V5 \' j
$ w* e1 L; ]. L2 w* }
使用一次飞镖,程序会发生中断停在B840这一行,如图6:9 z& L! L/ O; n0 n5 v( |
9 H0 N* ?; o& }3 B
B840 : DE 6206 DEC $0662,X;[0662]-- =0x13
: M+ h/ k9 T' `0 u/ h" o. M& {; V# ]+ X/ c  C6 I0 P
查指令表得知B840这个地址DEC $0662,X指令作用是将0662+(X)=真正暗器地址的数值减1;既然这样,只要把这条DEC $0662,X指令改为LDA $0662,X就可以让暗器数量不减了。LDA $0662,X作用是把0662+(X)=真正暗器地址的数值读入寄存器A。(X)是寄存器X的数值。! ^! u# G' c9 w( w% Z6 f" ?* t
举个例子:假设X寄存器数值是6,指令是“LDA $1234,X” 这条指令看上是将$1234地址数值读入寄存器A,但实际上$1234不是真正数值存放地址,1234必须加上寄存器X的数值才是真正数值存放的地址。1234+(X=6)=123A,LDA $1234,X指令应该是这样解释:将1234+(X=6)=123A地址读入寄存器A。% N5 A5 n$ |) V, v7 t) V4 |
LDA xxxx,Y和LDA xxxx,X一样,不过寄存器X变成寄存器Y。
# H7 I& |$ U4 I2 z4 h0 h( H% H6 s* q0 C- \! g2 n" n
查指令机器码得知DE是DEC - Absolute,X,BD是LDA - Absolute,X,注意寻区方式要一样....把DE修改为BD就可以不减暗器数量了。: R( z' p5 }. j5 S1 y/ X/ L
8 \  `# Q* m) E! {1 J
注意:别把BD修改成其他LDA指令,这样会死机的,因为指令寻区方式不一样。
) E: @( x! o7 v$ I+ J  x" U# s9 W* M1 S) x. ]! w2 y+ V  y) A1 V/ d
另外,有一些其他游戏是这样的:改为LDA $XXXX,X 那么就会破坏了寄存器A原来的数据了,后面的程序如果要直接用寄存器A的数值的话,那么就会造成游戏出错,如果后面的程序在用寄存器A的数值之前对寄存器A赋于新值就没事了。" h) J- `3 p$ m, ^# o

2 [" E* ?. |: C! c) m% T接下来在RAM中找到B840:DE 62 06,如图7:; o6 Q- G( e# h; T+ S3 ~6 t* ]
) K" D1 ~0 N# M9 b! _+ `! w
用笔纸抄下红框中数据,以便在查找,接得在RAM中把DE修改BD,如图8:
8 H. s5 v3 d# [7 f( ^. U7 W4 ?) Q0 Y/ T% V  u; B
关闭DEBUG和RAM,回到游戏中测试吓暗器数量是否不减,暗器不减了,说明指令修改成功。如图9:" o2 g8 U% k, l

; N  e8 U* y! k) T7 K+ t5 N关闭模拟器,接下来用十六进制修改工具(如UltraEdit32)修改ROM,还记得之前用纸笔抄下的数据么?. f; g" l8 Q- {

/ o' Q/ {+ F7 q* E8 `: }6 B打开UltraEdit32,载入赤影战士ROM,编辑之前按一下Insert把插入方式设为覆盖方式,如图10:
3 K6 C8 `7 d$ J& U* D
# V( a# `9 w5 I+ z7 g/ U点击UltraEdit32“搜索”>“查找”,在弹出查找框中查找内容(N)后面方框中输入你用纸笔抄下的数据,再点“查找下一个”就能找到这个数据,如图11:7 m; m4 N* Q; v- y8 t4 q& B- u3 Z

) @. j# L, A- e) p7 H4 B: Q如图12,结果出来,UltraEdit32高亮度显示你就是要找的数据,把DE修改为BD,再点“文件”>“保存”保存你修改结果。如图13:
% b) C4 A8 a% ~( A9 R1 r# H/ z; k* d) ?* r) }
关闭UltraEdit32打开模拟器载入修改后的ROM测试暗器数量是否不减,不减的话说明修改成功了,如图14:# q; U; f0 x+ c: D& F5 K

* M/ n2 {) w! g5 g* Y7 ]: v暗器雷数量不减修改方法和暗器飞镖数量不减修改方法一样。就不再说了,留给大家练习一下。
6 I! V( t, K& D% I4 K  ?
5 X& E3 w' m/ \: N[ 本帖最后由 疾风之狼 于 2009-10-14 15:08 编辑 ]

本帖子中包含更多资源

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

x

评分

2

查看全部评分

签到天数: 1574 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 05:28:36 | 显示全部楼层
(2)放雷电必杀不扣体力+ y. ]' O7 y6 a) a, C
打开VirtualNes Debugger并加载赤影战士日版ROM,开始游戏,打开RAM和DEBUG,查询EC作弊码得知体力地址是6F0,
' H/ C+ R7 O' Y  U" q, f% v% ^. Y% j) }# `8 u0 t
估计大家看暗器不减HACK教学后就知如何设置断点跟踪,我就不再说了,设置好断点后,回到游戏,按紧B键不放使出雷电必杀,$ i# z* n, t: E. F" n5 U  y
/ |; j# v1 I/ o5 s3 }
当雷电必杀发出时,程序中断,程序停在B6FC:9D F006 STA$06F0,X这行,如图15:注意B6F6:E9 08 SBC#$08这条指令,这条指令作用是把
0 W" J# k; K- ^% g( Y: N
' T( P; r1 y4 s  {5 C" u  Z地址06F0减去8,大家都知道赤影战士放雷电必杀后会扣去8点体力,而这个08正好是放雷电必杀所需要扣的体力,只要把08修改成00的话就不会扣体力。(当然你也可以修改成01,发必杀只扣1格体力啦^_^)
1 l  w1 t" B) R" z2 I8 B- |& g: x( s. a$ ~' T
转到RAM,找到B6F6:E9 08,把图中红色方框数据抄下,以便查找。如图16:把08修改为00就不扣体力了,如图17:关闭RAM和DEBUG,再重启游戏,再发动必杀,不扣体力的话说明修改成功了。5 z" h# H# @$ u1 o" a7 {

* w3 y8 P1 w% @' l如图18:关闭模拟器,打开UltraEdit32,载入ROM,编辑之前按一下Insert把插入方式设为覆盖方式,点击“搜索”>“查找”,查找之前抄下的数据,找到如图19的数据:把08修改成00,再保存退出,如图20:
* r; o$ N2 T5 e! z# Y& C% U4 R
2 N8 H+ k! m! m+ Q" \+ q" S再进模拟器打开修改后的ROM测试发必杀是否不减体力,不减体力的话说明修改成功。
1 s1 u4 U0 g6 U- n2 X6 @
: H' @" G* j+ M1 H- v, X/ HPS:跌落损伤修改方法和发雷电必杀修改方法一样,我不再说了,留给大家练习,方法设置好断点,再找个地方跳楼自杀(-_-),就能跟踪找到地址了......
$ T) B/ a3 d9 u$ z& G. L1 m0 v* ?' x% Z: h" \4 E
偶找个时间再继续发如何HACK受攻击不减血和一开始拥有99个雷吧.......

本帖子中包含更多资源

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

x

签到天数: 1574 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 06:27:29 | 显示全部楼层
(3)受攻击不减血
9 F0 L" R5 `! e) c) z3 `6 V* W打开VirtualNes Debugger并加载赤影战士日版ROM,开始游戏后,打开RAM和DEBUG,同样用体力EC作弊码6F0来设置断点,设置好断点后,
+ r4 o, F+ L4 B5 A" Y  U4 Y( D
' J- x7 }* X. P0 p( J2 C回到游戏被敌人打一下,当敌人攻击主角时,程序中断,程序停在AC69:9D F006 STA $06F0,X这一行,如图21:
0 k" t- y/ i0 T8 R. g4 {6 P5 T( K% B# K2 U, K. [' b/ j- ?
注意AC69地址前面的AC63:E5 9D SBC$9D,这条指令作用将06F0,X地址数值减去009D地址数值。单单只将SBC指令修改LDA指令会有问题,偶考虑只有通过无条件转移指令(4C)再添加指令来达到不减血.....% Q4 S! ]" [0 m/ |% j" ^% _4 R
- J- P' v/ x& M/ t. L9 a) {3 @
首先抄下如图22的数据,方便查找:之后在RAM中查找寻找连续储存的0xFF,可以在前面也可以在后面,也可以寻找连续储存的0x00,注意的是00是中断指令,有时候修改了游戏会出错。看情况吧。一般选择在连续储存的00中段开始加入修改数据。/ M8 E6 ^( G7 p
# N: N0 I5 t7 G+ A
偶在RAM后面FFC3~FFDF找到一些连续储存的FF,如图23红框中连续储存的FF,把FF前面的数据抄下,方便查找,接着测试吓这些FF是否能使用.....
* f/ J3 N* r% }: Q& J! P
! R* v. g5 I  T方法如下:
+ I; k3 H  O; y9 D) m! Q5 D7 I) V! |# d9 o
在RAM中把AC69的9D F0 06修改为4C C4 FF,指令说明:4C C4 FF作用是跳转到地址FFC4继续执行,4C是无条件跳转,如图24、25:
! F& l0 h$ s: y0 y9 Q: ]" @0 ]: ^. [
为安全得想,偶跳过第一个的FF,而在第二个FF开始输入9D F0 06 4C 6C AC,指令说明:9D F0 06是以X为偏移量,把寄存器A内容送入06F0,X地址中,4C 6C AC是跳转到AC6C继续执行,如图26:3 K, g* S5 j1 G1 N1 E

5 P& a/ O5 B" K) w+ j; S3 h8 B接下来关闭DEBUG和RAM,回到游戏看吓游戏是否正常游戏,能正常游戏说明地址能够跳转使用。如图27:
" W/ C7 X% ~, w8 N% n) V8 v: t0 Y" k3 p) @9 K7 @
接下来打开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:
5 d5 H* n8 h8 d9 g
4 x+ R3 V  ?+ J2 }/ A( w指令说明:A9 10是把数值10读入寄存器A中,9D F0 06是以X为偏移量,把寄存器A数值10送入06F0,X地址中,4C 6C AC是跳回AC6C继续执行
+ T+ O, j& l! F& H" c% F3 x7 {
4 [' `9 B3 G' C0 D0 R9 T关闭RAM,看看游戏是否减血了,不减血说明修改成功,如图29:
( o+ ]3 j, C+ d7 g7 A7 j- u! D( V
接下来,打开UltraEdit32,载入ROM,查找上图22的数据,如图30:
8 z  {8 X2 w# O+ L# h, F- L( p
% V) ~* K; ?1 O# Z0 e" z, C找到把图中的9D F0 06修改为4C C4 FF,如图31、32:5 f! {1 N& u) b8 g% F
1 A. _/ v9 [% C
接着,查找上图23连续储存的FF前面的数据,比如上图23的连续储存的FF前面是20 86 A0 4C 22 EC,找到后,在20 86 A0 4C 22 EC后面的就是你要添加指令的连续储存FF,如图33:
# [/ {# A; \$ Z1 L
% W  h9 @( v: `" G& h5 e/ l同样跳过第一个FF,而在第二个FF开始添加指令,如图34:
5 r/ {* o$ v* K$ w(如果你真要在第一个FF开始添加指令的话也不是不可以;假设你是在第一个FF开始添加指令的话,那图32的4C C4 FF应该修改为4C C3 FF)+ l7 J7 |7 I) S# D' x- U' D5 p
/ \) z" g/ L6 \, V: V/ h
保存ROM,退出UltraEdit32,再进模拟器测试是否不减血,不减血说明成功了.....,如图35:1 l4 p, K  |/ c2 [6 d
8 n- v' C9 T. [6 s8 t: ?/ l' G
[ 本帖最后由 疾风之狼 于 2008-12-1 12:24 编辑 ]

本帖子中包含更多资源

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

x

签到天数: 1574 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 06:29:31 | 显示全部楼层
(4)一开始拥有99个暗器雷
1 @' F+ L8 G- L! }首先要找到体力初始值,大家知道在赤影战士中体力初始值什么时候开始读取并放到06F0、06F4地址中?答案是在选择人物后。(注:06F0是对应1P体力值地址,06F4是对应2P体力值地址)
! z6 N) O; `# M/ E9 e* l( e" s
% P- c9 V9 D. L" K要想在游戏开始后立即就有99暗器雷,必须在数据初始化后面加入暗器雷和暗器数量指令代码,如何添加指令代码?方法是上面的受攻击血不减方法一样,同样用无条件跳转指令4C再添加指令。2 l. z" c* A3 e( Q: E

* m( D- M5 \2 ~! C  A偶决定来教大家如何双人游戏时两人一开始拥有99暗器雷,打开VirtualNes Debugger并加载赤影战士日版ROM,选择双人游戏进入到选择人物后,打开RAM和DEBUG,用2P体力值EC码06F4地址来作为断点.....
3 Z( _' v1 i; _, e/ Y! K! o0 s4 |( _6 I
设置好断点后,回到游戏中,按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体力值地址)
# w9 E+ _# D! E" X2 V% q6 q  f- }- ^5 v0 s/ f: r. B! d. o
A2F7:A9 10   LDA#$10  :A=0x10          -->把数值10读入寄存器A
6 o  v: e: k2 U) U" |A2F9:8D F006 STA$06F0 :[06F0]=A=0x10   -->把寄存器A的数值送入06F0地址' Z4 h/ z! C* Q! R/ N! J1 h  `1 j
A2FC:8D F406 STA$06F4 :[06F4]=A=0x10   -->把寄存器A的数值送入06F4地址7 g4 a" `  d7 A1 C3 r  v

% P' |8 _/ U* S, N7 v& q2 ]在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来添加指令吧....
- E1 g; _1 a$ u# G7 k
! e+ S& ]* o/ \( ]' B& _接下来在RAM把A2FC的8D F4 06修改为4C C4 FF,如图38、39:4 i5 ~1 A$ q( m. ?4 @) E/ Y. w! s
8 n/ b) n( m+ s: [" h7 U( [
接下来拉到滚动条来到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:
0 u- H, M( j: [6 P8 ?0 }) A5 a+ p) j, N9 b
指令说明: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地址继续执行
2 ]! I" l* @+ G. Y& H5 U9 ~- u' K2 {; j
接下来关闭RAM和DEBUG,重启游戏,进入游戏后暗器数是99,按一下攻击,如果放的是暗器雷说明修改成功!如图41:, u- Q- t6 }; i. }  Q) W

0 Q! u+ \% u3 C  p5 Z, E$ ?接下来关闭模拟器,打开UltraEdit32,载入ROM,查找你刚才用笔纸抄下的数据,找到后把8D F4 06修改为4C C4 FF,如图42、43:- c) X; y) j+ x" O4 K; g
6 S( S) l$ s6 S4 B* k
接下来在找到上图33的连续储存的FF地方,偶还是跳过第一个FF,而在第二个FF开始添加指令,如图44:1 h. y& B) M& y- l# }% n! f0 G
* a  I" N* [' R5 D8 k
保存ROM,关闭UltraEdit32,打开模拟器载入修改好的ROM测试,如图45:如没什么意外发生的话说明修改成功!
8 m5 C; F( j0 g. V" P6 K, @
* z6 j( c  L2 I1 h* h菜鸟HACK教程到此完成!以偶目前HACK水平来说还算是一只HACK菜鸟,没有和尚HACK技术那么厉害!:L

本帖子中包含更多资源

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

x
头像被屏蔽

签到天数: 5 天

[LV.2]偶尔看看I

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

该用户从未签到

发表于 2007-4-21 10:27:49 | 显示全部楼层
  z. N( p$ S: u- t' b
适合新手学习修改的教材

该用户从未签到

发表于 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: 8 z9 f4 U/ q- L3 P  O3 I
不减血的教材

签到天数: 1574 天

[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 | 显示全部楼层
呵呵 完成了,得好好学习
/ s# i/ M7 t$ p# j# Rxiaofa兄弟也在这啊

签到天数: 7 天

[LV.3]偶尔看看II

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

签到天数: 26 天

[LV.4]偶尔看看III

发表于 2007-11-5 21:46:57 | 显示全部楼层
终于可以自己去HACK简单的游戏了:loveliness:
& ~: T$ @* m7 b激动啊;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 | 显示全部楼层
好说的太好了
# q8 {4 o: O0 X) K/ _我会了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-4 12:40 , Processed in 1.093750 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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