EMU618社区

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

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

 关闭 [复制链接]

签到天数: 1802 天

[LV.Master]伴坛终老

发表于 2007-4-21 05:26:54 | 显示全部楼层 |阅读模式
注意:转载请注明本人名字和文章出处!: |* B7 z5 R9 T1 y; j5 J. _8 l
  A6 P( T5 {2 J% N6 S
菜鸟NES HACK简单教程(偶应N多人要求才做这个教程,有错误请指正:L )
- H5 ~$ e/ Z9 t" f  |: Q& ^4 j  A) ?- P
NESHACK相关资料下载:http://bbs.emu618.com/forum/viewthread.php?tid=12675&extra=page%3D2  W: K5 J6 |6 I: H, B

+ ~  q& _0 d2 p, r3 n& Y6052汇编大奥秘(详细介绍FC的汇编语言,推荐下载):http://bbs.emu618.com/forum/viewthread.php?tid=20393&extra=page%3D1
& C" x" p6 a6 M- q+ r
$ X6 T1 C$ ]+ Y5 q1 ], {5 l开始之前先说几句废话
. B2 O9 Y6 u5 I" R# K2 ~
& Z# W+ X3 r4 k第一,HACK之前先了解一下6502汇编指令,NES相关资料里有指令集说明文档,如果你看不懂英文的话就下载《6502汇编大奥秘》,里面有指令中文说明........^_^) H1 y2 q. h4 @( `! u

+ S: f  H5 Y. V9 z2 p4 `5 {1 s个人建议:没必要把6502全部汇编指令硬背下来再跟踪调试,那样会很累,你可以一边调试一边查询指令说明.......
7 j2 o: d+ g3 f9 p$ G
0 U1 a$ u, U( A1 v5 {4 d# f第二,还需要准备一些工具:NES调试跟踪工具(VirtualNes Debugger版或者no$nes-w、FCEUXD SP等NES调试跟踪工具)、十六进制之类编辑工具(Winhex或者UltraEdit32)/ P& t' @+ a! r  n3 l& S
$ b3 n* `; `; a( R9 ]
第三,了解修改步骤:
5 C: l& G, i1 A3 ?. G7 i1、首先要确定你要修改什么。连要修改什么都不知道,那怎能谈上修改呢。8 o" \, c; ?7 w$ p
2、获取作弊码,换句话说就是要获得要修改数据的地址。推荐使用EC,这个软件自带作弊码和跟踪修改功能。
3 y  f( P7 S6 A) m% P: }3、获得指令代码及其在Rom中的地址。一般通过VirtualNes Debugger版或者no$nes-w、FCEUXD SP等NES调试跟踪工具,再配合内存查看和十六进制之编辑工具确定指令以数据方式储存在Rom中的哪个地址。7 ~5 [% g5 X, N9 c/ v
4、修改相应指令或数据。一般来说要做尽量少的修改,而且不能让程序运行出错。
. U; D$ ~7 z- m: \% o3 e5、测试游戏运行情况,看游戏能不能按照你修改目的正常运行。
* Z! A! e9 j& a  k% \* D- E2 z
  {1 ?0 x4 T& `( K* T第四,偶以日版《赤影战士》和VirtualNes Debugger版来为例子教大家如何HACK:
2 \; I5 m$ X0 A# B( c* g1 q7 a0 i# u6 ^: k
偶需要修改的数据:暗器数不减,放雷电必杀不减血,被敌人攻击不减血,一开始拥有99颗暗器雷6 p9 l& d3 I. J5 {9 ^9 {; @) i
% F( L! I" }; d; B
1、获取作弊码,这个好容易得到,EC这个软件附带N多作弊码,省去自已手工查找作弊码了。^_^
6 Z% K6 r' G, }* N# D! n[P1 生命值]
$ X3 e8 F" x1 p' gON=6F0,10
5 t3 d, k# {( u& r: Q5 Y( m) F
9 O* ^6 k% J6 N7 [[P1 暗器数量]
8 w! e& b* H& A: u6 Y) PON=662,FF
! {+ `0 l$ k- x/ Y+ W& `8 ?, B2 e8 U1 c) B
[P1 武器种类]
0 W9 i# e! d  H1 Y4 S' _4 z刀=6B2,0
  p+ L6 T, d8 [  ~1 \ON=6B2,3- ~& Q2 h) K% @0 H- F
! F0 O2 f$ X0 F( _/ u
[P1 武器威力]# r7 J6 I# `7 N) _  K9 E  e: X
ON=680,FF
/ R0 ~5 O: h) U. j7 Y
, W& ^* s! h# K, E[P1 暗器种类]* D/ M; o' ]) j, T; a6 p+ O0 |
标=671,01 e1 r, }( d! L) k) Y  s4 r1 t( C
雷=671,1' H- H+ ?) {7 `& s; L! Y% p. g0 `

1 y0 ^; h2 {/ j. {[P1 隐身]+ o( @. I0 m4 P2 `. J
OFF=0000,0" p4 ^$ L' v+ g9 O+ h
ON=601,4C. c+ O. w) Y2 o2 @$ |+ x2 d3 _
. e1 p+ k( W4 r5 i/ D) i
[P2 生命值]
- v. O6 K* g7 x) r/ f& NON=6F4,10' C/ n, E% n! K+ |  U0 d( `

! \7 W$ W$ K4 U, _% ~* G' y[P2 暗器数量]
# H" g6 {1 I/ I1 _$ `* A# YON=666,FF
: x" t+ G1 h: S8 [: c4 |! R3 D9 D( ?* I- ]# O
[P2 武器种类]. _+ }2 O6 C* a- a7 u5 |9 l4 b7 A
刀=6B6,00 h$ b" a/ q2 z4 W$ V# n
ON=6B6,35 s, E# [# s7 f% _" O# a3 H
* g6 M& m: M; \5 }8 p
[P2 武器威力]
4 l; \" w8 n0 I8 p; `ON=684,FF
2 q2 E* ~' m# }( T0 b7 H! f' P6 D7 Y, [6 U0 Q
[P2 暗器种类]" j* P9 N  |" x
标=675,0( M: `! v6 f# k1 E% V. n! Y" \
雷=675,13 {3 w/ G% h) n

$ G* A- k3 G3 k# x* D/ R[P2 隐身]3 @+ n* l* I2 k. C1 Y. y
OFF=0000,0
1 I" p. ?6 _! N2 k: j. ^* xON=605,4C
: I0 d  \( z  e- `) k, [* h  V3 x0 h
[GameInfo]1 D6 A6 O. E" C2 H3 g' N0 w
Name=Shadow of the Ninja (FC/NES)
: \( d# D+ y0 k8 s0 k5 T3 m& BSystem=FC
' U% U$ V! c: q* @Text=赤影战士(水上魂斗罗),双人、动作游戏,由大胖子提供!
$ m0 K6 R$ ]' J; X: y' U; `, l9 ?% f- k6 C
[ 本帖最后由 疾风之狼 于 2009-10-14 15:09 编辑 ]

评分

1

查看全部评分

签到天数: 1802 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 05:27:43 | 显示全部楼层
2、通过调试跟踪获取指令代码及其在Rom中的地址,并用16进制编辑工具修改ROM其中数据, B5 o% @% R. f* b" ^! d
偶按照暗器数不减,放雷电必杀不减血,被敌人攻击不减血,一开始拥有99颗暗器雷顺序来教大家如何跟踪调试修改:4 p% \4 V. R* X

) D7 u  l3 Z. Y# X9 ?! Q(1)暗器不减:5 K5 e6 i* [6 ^1 |  H, K
/ i5 K5 F+ Y+ F; g6 [* L4 p
首先打开VirtualNes Debugger并加载赤影战士日版ROM,如图1:3 o3 o( F% w( |, Z- D7 ?) m: H

8 Z& X6 M5 W1 A3 f4 {接下来游戏进行到获到暗器飞镖20个,如图2:
; A( `1 ~5 v# f* |3 v% R) w
  }8 y' c+ U( {4 z5 m* t: U0 k接下来开始跟踪飞镖数量,先打开RAM,再打开DEBUG,先打开DEBUG的话,不然RAM就用不来:如图3、图4:
/ Y5 B$ C; _# i/ T' q$ c' z2 ?
. [  `3 ?) ?# @# n$ O% x% Q2 O( x先点暂停,根据如下面作弊码提供的暗器数量地址,如暗器数量地址是662,就在注释内出现后面方框中输入[0662](注:可以用这东东当条件断点),再点右边确定让游戏继续运行,如图5:) c" `/ {) w1 A5 R7 H; T

; y+ ^! A9 P7 e[P1 暗器数量]
; U0 _6 R6 O* L6 A8 N& h0 `ON=662,FF4 q" A0 u6 I0 u" q5 k* @6 }8 R& a
/ G' |, e( h9 P# F  m) v. |2 I
使用一次飞镖,程序会发生中断停在B840这一行,如图6:2 c; ], D0 R/ a& K
5 Y  x: x* t$ W( v2 j( B7 K
B840 : DE 6206 DEC $0662,X;[0662]-- =0x132 S; @% a) R; d; ~8 b' X
2 Y: Z$ K1 {) Z* X) ~7 M
查指令表得知B840这个地址DEC $0662,X指令作用是将0662+(X)=真正暗器地址的数值减1;既然这样,只要把这条DEC $0662,X指令改为LDA $0662,X就可以让暗器数量不减了。LDA $0662,X作用是把0662+(X)=真正暗器地址的数值读入寄存器A。(X)是寄存器X的数值。8 J) s; w- P4 Y) Y2 C* r
举个例子:假设X寄存器数值是6,指令是“LDA $1234,X” 这条指令看上是将$1234地址数值读入寄存器A,但实际上$1234不是真正数值存放地址,1234必须加上寄存器X的数值才是真正数值存放的地址。1234+(X=6)=123A,LDA $1234,X指令应该是这样解释:将1234+(X=6)=123A地址读入寄存器A。' E" _4 z) G. O  x8 M1 L) f6 q
LDA xxxx,Y和LDA xxxx,X一样,不过寄存器X变成寄存器Y。
. W+ f8 c+ E- R! x( i2 S1 Q0 k/ W/ ?6 v: L
查指令机器码得知DE是DEC - Absolute,X,BD是LDA - Absolute,X,注意寻区方式要一样....把DE修改为BD就可以不减暗器数量了。
: |" C8 ^7 [2 |
8 V0 q" O0 e3 ~/ v+ m7 C8 w# S注意:别把BD修改成其他LDA指令,这样会死机的,因为指令寻区方式不一样。2 V( t4 u. }0 }
4 k0 v( n5 ~0 @
另外,有一些其他游戏是这样的:改为LDA $XXXX,X 那么就会破坏了寄存器A原来的数据了,后面的程序如果要直接用寄存器A的数值的话,那么就会造成游戏出错,如果后面的程序在用寄存器A的数值之前对寄存器A赋于新值就没事了。$ c/ j! j' y4 ~: X& b0 |

0 g% G) t! Z. P接下来在RAM中找到B840:DE 62 06,如图7:
( [( M! o0 z& S7 j0 J5 A+ ~* V! M/ i# y" H, J
用笔纸抄下红框中数据,以便在查找,接得在RAM中把DE修改BD,如图8:
% t/ l) C  V* p6 i% @
! ~& v& ~7 }; Q3 [) Z. [关闭DEBUG和RAM,回到游戏中测试吓暗器数量是否不减,暗器不减了,说明指令修改成功。如图9:
6 ]- d! d$ a/ D3 x; C5 q# c! ]4 `, z3 D3 Y. f8 v
关闭模拟器,接下来用十六进制修改工具(如UltraEdit32)修改ROM,还记得之前用纸笔抄下的数据么?
# v! ~. g! v; n' X! H+ @4 `( ^0 j# l% ]6 }4 A6 I
打开UltraEdit32,载入赤影战士ROM,编辑之前按一下Insert把插入方式设为覆盖方式,如图10:
* R0 d1 A0 ]6 X  K, F
% z- n$ g0 l+ `$ ^% |点击UltraEdit32“搜索”>“查找”,在弹出查找框中查找内容(N)后面方框中输入你用纸笔抄下的数据,再点“查找下一个”就能找到这个数据,如图11:
/ g, ~9 D$ x% Y- H) r) d+ k* g/ e1 }/ ^: x2 `$ U7 L
如图12,结果出来,UltraEdit32高亮度显示你就是要找的数据,把DE修改为BD,再点“文件”>“保存”保存你修改结果。如图13:
- ~, H& a9 p9 Z6 O' o, a1 K
+ L2 J$ J6 M% O$ D; p关闭UltraEdit32打开模拟器载入修改后的ROM测试暗器数量是否不减,不减的话说明修改成功了,如图14:# V7 Z" B+ b  [

: F& j- |4 m% w/ s1 F3 G" }2 J暗器雷数量不减修改方法和暗器飞镖数量不减修改方法一样。就不再说了,留给大家练习一下。- l. }8 f0 j* {$ U, p
) |: F+ ?2 r# o4 I! l  n' \
[ 本帖最后由 疾风之狼 于 2009-10-14 15:08 编辑 ]

本帖子中包含更多资源

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

x

评分

2

查看全部评分

签到天数: 1802 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 05:28:36 | 显示全部楼层
(2)放雷电必杀不扣体力7 o( R8 W" e, b6 V
打开VirtualNes Debugger并加载赤影战士日版ROM,开始游戏,打开RAM和DEBUG,查询EC作弊码得知体力地址是6F0,
) J" }# W- D* u  U! D" h9 i0 a9 S! c& J. |3 O
估计大家看暗器不减HACK教学后就知如何设置断点跟踪,我就不再说了,设置好断点后,回到游戏,按紧B键不放使出雷电必杀,0 S- f- h! Z" N' b. Q. ^
( K" `) C) P9 R; h9 q$ c5 U
当雷电必杀发出时,程序中断,程序停在B6FC:9D F006 STA$06F0,X这行,如图15:注意B6F6:E9 08 SBC#$08这条指令,这条指令作用是把
6 `9 |( y; Q) b) Z; ]6 I" F8 {' `, T/ }0 p9 n5 Z
地址06F0减去8,大家都知道赤影战士放雷电必杀后会扣去8点体力,而这个08正好是放雷电必杀所需要扣的体力,只要把08修改成00的话就不会扣体力。(当然你也可以修改成01,发必杀只扣1格体力啦^_^)
4 P; c& u/ U0 M8 W2 f% X' ^+ t3 L$ A& ]
转到RAM,找到B6F6:E9 08,把图中红色方框数据抄下,以便查找。如图16:把08修改为00就不扣体力了,如图17:关闭RAM和DEBUG,再重启游戏,再发动必杀,不扣体力的话说明修改成功了。: o5 s' `  g" m" K
6 E; K- ?4 t& G+ s
如图18:关闭模拟器,打开UltraEdit32,载入ROM,编辑之前按一下Insert把插入方式设为覆盖方式,点击“搜索”>“查找”,查找之前抄下的数据,找到如图19的数据:把08修改成00,再保存退出,如图20:
4 E0 z( [- T  Q! P0 J4 I) `* |0 s9 [2 a" \1 V! [- G& T( `
再进模拟器打开修改后的ROM测试发必杀是否不减体力,不减体力的话说明修改成功。
/ G: M+ c# l6 Z5 r9 T7 Q. H* O* @# M
PS:跌落损伤修改方法和发雷电必杀修改方法一样,我不再说了,留给大家练习,方法设置好断点,再找个地方跳楼自杀(-_-),就能跟踪找到地址了......3 {3 f8 v/ Z/ x; o# ~
2 @' O  x6 m! T2 N5 L9 n
偶找个时间再继续发如何HACK受攻击不减血和一开始拥有99个雷吧.......

本帖子中包含更多资源

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

x

签到天数: 1802 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 06:27:29 | 显示全部楼层
(3)受攻击不减血  c6 ]7 Y0 g' ~2 j3 M. J' `
打开VirtualNes Debugger并加载赤影战士日版ROM,开始游戏后,打开RAM和DEBUG,同样用体力EC作弊码6F0来设置断点,设置好断点后,
1 [8 F' B) v3 h" D! U
$ q+ ~4 a- a& c; a' }回到游戏被敌人打一下,当敌人攻击主角时,程序中断,程序停在AC69:9D F006 STA $06F0,X这一行,如图21:
/ Q) d( c5 d3 j; F3 D: z0 O" J. U- H( U
注意AC69地址前面的AC63:E5 9D SBC$9D,这条指令作用将06F0,X地址数值减去009D地址数值。单单只将SBC指令修改LDA指令会有问题,偶考虑只有通过无条件转移指令(4C)再添加指令来达到不减血.....
# ^9 _5 T2 d- T' R: F: G' \; k# x! r/ C4 z) B
首先抄下如图22的数据,方便查找:之后在RAM中查找寻找连续储存的0xFF,可以在前面也可以在后面,也可以寻找连续储存的0x00,注意的是00是中断指令,有时候修改了游戏会出错。看情况吧。一般选择在连续储存的00中段开始加入修改数据。; Q6 I( l. s+ \4 H/ E$ b, \
( X! E0 F) d6 a+ Y* z
偶在RAM后面FFC3~FFDF找到一些连续储存的FF,如图23红框中连续储存的FF,把FF前面的数据抄下,方便查找,接着测试吓这些FF是否能使用.....$ g) C; t' b9 ^% l' ?8 \* U
/ A: I8 [) y: ]; c* |! ?
方法如下:, \# h8 m1 i& f# |6 N9 d$ B  ]* e
7 |; L9 w9 r: `% ]( ~) }( a
在RAM中把AC69的9D F0 06修改为4C C4 FF,指令说明:4C C4 FF作用是跳转到地址FFC4继续执行,4C是无条件跳转,如图24、25:
+ `) N  i# Y2 B/ l6 K
9 s8 ?0 N) p4 S4 O& e为安全得想,偶跳过第一个的FF,而在第二个FF开始输入9D F0 06 4C 6C AC,指令说明:9D F0 06是以X为偏移量,把寄存器A内容送入06F0,X地址中,4C 6C AC是跳转到AC6C继续执行,如图26:
; i8 _# g. G! x6 z$ R* B
. T, q/ A% ?# @" X3 U接下来关闭DEBUG和RAM,回到游戏看吓游戏是否正常游戏,能正常游戏说明地址能够跳转使用。如图27:/ j- y  i! B& f( t

  }, F8 h0 j; O1 Y8 u6 X接下来打开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:
1 ?; ~* ]3 o9 ~% o- Y/ _" n4 O5 \1 C0 E: W# H" A# t6 B
指令说明:A9 10是把数值10读入寄存器A中,9D F0 06是以X为偏移量,把寄存器A数值10送入06F0,X地址中,4C 6C AC是跳回AC6C继续执行2 h9 P. O' I" r$ N/ @
0 y0 X" O( P, J/ T# G) Q) A
关闭RAM,看看游戏是否减血了,不减血说明修改成功,如图29:
" X1 z6 b: I, h$ o  n1 c7 C  w
7 {" s; x3 J; [. B' Y接下来,打开UltraEdit32,载入ROM,查找上图22的数据,如图30:$ j; p4 r! l, Q, q

, b( _- j1 r+ U. ?5 D8 G找到把图中的9D F0 06修改为4C C4 FF,如图31、32:/ z8 U" d+ h9 ^3 \% v- g9 P
( B3 C! W0 x6 B1 g/ Z9 ^
接着,查找上图23连续储存的FF前面的数据,比如上图23的连续储存的FF前面是20 86 A0 4C 22 EC,找到后,在20 86 A0 4C 22 EC后面的就是你要添加指令的连续储存FF,如图33:" w7 a) s- m5 H# o  N+ y" ?) \
( \3 Y9 J- Q. N1 V+ X9 m; x4 B3 C2 n
同样跳过第一个FF,而在第二个FF开始添加指令,如图34:
) N+ k  Y+ y" ?( W* G( |(如果你真要在第一个FF开始添加指令的话也不是不可以;假设你是在第一个FF开始添加指令的话,那图32的4C C4 FF应该修改为4C C3 FF)
3 k" V, v( k3 {! f. z1 E& K6 \; z" \, s% J% h& P, v' b
保存ROM,退出UltraEdit32,再进模拟器测试是否不减血,不减血说明成功了.....,如图35:: b2 m. Y8 q1 T* e$ `% e- }

( b( L3 q$ a1 q2 t. }/ [) D[ 本帖最后由 疾风之狼 于 2008-12-1 12:24 编辑 ]

本帖子中包含更多资源

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

x

签到天数: 1802 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 06:29:31 | 显示全部楼层
(4)一开始拥有99个暗器雷
- W/ r) Z2 B" T) \. J首先要找到体力初始值,大家知道在赤影战士中体力初始值什么时候开始读取并放到06F0、06F4地址中?答案是在选择人物后。(注:06F0是对应1P体力值地址,06F4是对应2P体力值地址)+ V- L8 U* A  B$ f
5 m! c( G' W, r' W) t
要想在游戏开始后立即就有99暗器雷,必须在数据初始化后面加入暗器雷和暗器数量指令代码,如何添加指令代码?方法是上面的受攻击血不减方法一样,同样用无条件跳转指令4C再添加指令。
% x6 w# X. p  v; ~8 P  n4 U
3 z' d) P4 p( C( e) N; W偶决定来教大家如何双人游戏时两人一开始拥有99暗器雷,打开VirtualNes Debugger并加载赤影战士日版ROM,选择双人游戏进入到选择人物后,打开RAM和DEBUG,用2P体力值EC码06F4地址来作为断点...... y' n1 O- q; [4 V* m

" ^# k9 M& d! C' B6 X设置好断点后,回到游戏中,按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体力值地址)% q' \9 N" f. u# W' h0 C( y

* [0 J& X: }% |2 Z9 x# MA2F7:A9 10   LDA#$10  :A=0x10          -->把数值10读入寄存器A
, i# c- u/ M8 a6 d! T% KA2F9:8D F006 STA$06F0 :[06F0]=A=0x10   -->把寄存器A的数值送入06F0地址
8 w" D- Z4 ~5 k+ B- }1 g( A* [- dA2FC:8D F406 STA$06F4 :[06F4]=A=0x10   -->把寄存器A的数值送入06F4地址+ o. `4 @+ _6 A9 b
# B5 A8 n1 i. h5 N. \
在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来添加指令吧....
( M" o! S0 F6 Y6 `6 r  q1 B# J, Y# j( K; X! {7 e
接下来在RAM把A2FC的8D F4 06修改为4C C4 FF,如图38、39:
" j* k$ [/ w! F( x5 a! C
% ]7 o- w" b" b3 m  x接下来拉到滚动条来到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:4 B- g: i( y9 r+ V  A7 t

3 u0 Z" ^6 G) C  U2 ]指令说明: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地址继续执行* K. a2 b9 N' I- |% p  }( U5 w5 V
* Y  r8 E7 d. ]0 ^9 D; |, G/ e
接下来关闭RAM和DEBUG,重启游戏,进入游戏后暗器数是99,按一下攻击,如果放的是暗器雷说明修改成功!如图41:
6 S+ p* l! l* Q. c/ T5 e  ^
9 y  U' \6 ^+ j5 Y; P接下来关闭模拟器,打开UltraEdit32,载入ROM,查找你刚才用笔纸抄下的数据,找到后把8D F4 06修改为4C C4 FF,如图42、43:: {& d: U1 W; j9 p  K2 _
3 S& k8 R" R4 G) S: l. B4 L% ^
接下来在找到上图33的连续储存的FF地方,偶还是跳过第一个FF,而在第二个FF开始添加指令,如图44:
* \2 V4 Y# v5 R& W6 A( i' q4 A0 B( I! \  p+ m3 x* c# ]
保存ROM,关闭UltraEdit32,打开模拟器载入修改好的ROM测试,如图45:如没什么意外发生的话说明修改成功!8 b" h6 {4 s2 e; d0 s% P3 J" s0 c1 u

' s4 M) Z+ h; W$ K+ r菜鸟HACK教程到此完成!以偶目前HACK水平来说还算是一只HACK菜鸟,没有和尚HACK技术那么厉害!:L

本帖子中包含更多资源

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

x
头像被屏蔽

签到天数: 5 天

[LV.2]偶尔看看I

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

该用户从未签到

发表于 2007-4-21 10:27:49 | 显示全部楼层
. }$ E0 D  u& ]) t9 @% Q8 g, Z
适合新手学习修改的教材

该用户从未签到

发表于 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: $ V$ Z# D% S1 }. o+ c" L4 b
不减血的教材

签到天数: 1802 天

[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 | 显示全部楼层
呵呵 完成了,得好好学习
& [; G, {& q+ Q: t# `xiaofa兄弟也在这啊

签到天数: 7 天

[LV.3]偶尔看看II

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

签到天数: 26 天

[LV.4]偶尔看看III

发表于 2007-11-5 21:46:57 | 显示全部楼层
终于可以自己去HACK简单的游戏了:loveliness: ) {( V3 K$ q/ ?1 d. p* M/ X* W
激动啊;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 | 显示全部楼层
好说的太好了
/ E6 _/ C9 p' V我会了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-18 22:10 , Processed in 1.107422 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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