EMU618社区

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

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

 关闭 [复制链接]

签到天数: 2154 天

[LV.Master]伴坛终老

发表于 2007-4-21 05:26:54 | 显示全部楼层 |阅读模式
注意:转载请注明本人名字和文章出处!3 J+ Y/ \  j; i0 o4 u- N2 s8 W
4 m$ P6 w3 M, h: t8 \1 e- O
菜鸟NES HACK简单教程(偶应N多人要求才做这个教程,有错误请指正:L )
0 }% }: i0 s# s% }4 U; B6 D4 D# ]
3 s4 h- Q/ i/ KNESHACK相关资料下载:http://bbs.emu618.com/forum/viewthread.php?tid=12675&extra=page%3D2) |/ x* l, {. n5 ~) n) U" ^

( K/ v" x8 r% T* |2 p( L6052汇编大奥秘(详细介绍FC的汇编语言,推荐下载):http://bbs.emu618.com/forum/viewthread.php?tid=20393&extra=page%3D1
( f/ |5 y/ C0 I( @, H4 Z' B' c# ~+ ]+ I9 R/ K5 ?" H+ V
开始之前先说几句废话0 i4 |# C5 z  W$ h! {3 k. q' a
) O9 D  ^( I" g0 g* F3 v' v
第一,HACK之前先了解一下6502汇编指令,NES相关资料里有指令集说明文档,如果你看不懂英文的话就下载《6502汇编大奥秘》,里面有指令中文说明........^_^
( ?0 m1 d0 H' ^3 d3 c+ E7 w' w, h, g* H& H
个人建议:没必要把6502全部汇编指令硬背下来再跟踪调试,那样会很累,你可以一边调试一边查询指令说明.......) ?0 Z3 a4 N4 W+ `$ U2 n
0 [# Z5 \& A1 O+ b9 t6 x) @& x' a
第二,还需要准备一些工具:NES调试跟踪工具(VirtualNes Debugger版或者no$nes-w、FCEUXD SP等NES调试跟踪工具)、十六进制之类编辑工具(Winhex或者UltraEdit32)
; C+ T9 v) y% j% Z  T  G3 B' J, B4 ]) i  c$ c. E; S
第三,了解修改步骤:( e: U4 a3 \, W4 e: ^" f
1、首先要确定你要修改什么。连要修改什么都不知道,那怎能谈上修改呢。, {- |! J# ]/ s; M! V. ^& b
2、获取作弊码,换句话说就是要获得要修改数据的地址。推荐使用EC,这个软件自带作弊码和跟踪修改功能。& J4 Z" K9 v, @) R9 f( R
3、获得指令代码及其在Rom中的地址。一般通过VirtualNes Debugger版或者no$nes-w、FCEUXD SP等NES调试跟踪工具,再配合内存查看和十六进制之编辑工具确定指令以数据方式储存在Rom中的哪个地址。
5 l' E4 J2 E$ E" X$ q4、修改相应指令或数据。一般来说要做尽量少的修改,而且不能让程序运行出错。
* b# K4 g% T7 S+ y5、测试游戏运行情况,看游戏能不能按照你修改目的正常运行。5 _% U. u& Z, H& ]0 n; Q
. R" A6 p% Z! w0 }! B" b: l5 C3 y* J
第四,偶以日版《赤影战士》和VirtualNes Debugger版来为例子教大家如何HACK:
& q) ]( D9 t5 f
" l5 h* s% W, p) V偶需要修改的数据:暗器数不减,放雷电必杀不减血,被敌人攻击不减血,一开始拥有99颗暗器雷
- ?& Z0 `6 h# F0 W: H$ T' ?
: ]  T5 @& A& m5 P1、获取作弊码,这个好容易得到,EC这个软件附带N多作弊码,省去自已手工查找作弊码了。^_^8 m; P9 e) l! r; w0 W4 O. D
[P1 生命值]5 i* v8 d1 t0 _6 }3 o& G" @
ON=6F0,10
3 U0 a! t4 x9 y- H  {. w
. J! g( b" b% W9 e# ?[P1 暗器数量]' q/ j: ^! ~$ _9 ~; n% K1 Q/ H2 G
ON=662,FF/ C* W8 L9 ~7 X) y

$ v/ V) v: \2 ?: X) s! R1 _2 A[P1 武器种类]" [  ~4 u0 p( I( E' k) q
刀=6B2,0
* W6 l$ a3 z! K2 N) \: |# c5 BON=6B2,39 Z! b& E) Z, {7 P7 S- z$ ^

) `" I; N! v3 {[P1 武器威力]- d$ d  p$ M* a& Z
ON=680,FF: K$ ]3 N4 V5 ?; [! k& E' v8 k
1 {) |+ j+ P+ Y! O7 B. ~
[P1 暗器种类]
' D. K" M7 ^$ S& B* U9 M标=671,0
8 U2 a8 I- u8 M, c5 {9 p  X1 V# z雷=671,1+ ?+ w2 z/ P* b- l+ g
. }2 ~0 }  X+ {- |% S$ v# J- o
[P1 隐身]
% L3 Z# e6 N/ v0 b4 T( y% q; xOFF=0000,0
* W) `* I5 r4 b1 F; {8 OON=601,4C' }1 {7 z4 S' @' A* z( D
) y) ?, d* L( E. T
[P2 生命值]
. Q4 l7 [" _4 _8 D' WON=6F4,10
; T6 h; j( N* c; W/ I) a& `1 f) Y  e& [9 R
[P2 暗器数量]
5 g3 ]- a4 D1 a) m% m; H8 cON=666,FF2 O* ]! {% ]9 \" x/ d9 U

4 a2 L8 \- P! d) [) `[P2 武器种类]& T& \$ o5 ^- X  d, p' ]6 X6 h
刀=6B6,0
( h8 d0 c* D: j4 p' k# A! k8 OON=6B6,3
0 c/ ^$ ^( P6 i: T! {6 C* \; B# E* l+ ^
[P2 武器威力]8 D1 d0 F, x- I. a' ~9 H  N7 p3 ]
ON=684,FF; ]8 E: ]+ D) E( N2 x, b

$ L" V' f# `9 p6 ~/ T/ l* {. O2 E[P2 暗器种类]2 ?8 Y/ g% v3 J
标=675,0* b5 Z' d( G3 U
雷=675,1
1 _7 {5 c4 @- X# j9 a) ?  K. d( J; n6 j5 B5 G
[P2 隐身]2 e/ B7 ^( }2 H  I* `' }; E
OFF=0000,0
& L3 t! K* M. i$ o8 L' x. f  fON=605,4C
& ?" A$ _6 D, n, ?7 E/ r; s+ P; o
. @& F% B0 k. l: u: s[GameInfo]
1 C7 ?2 D" S+ L- J# FName=Shadow of the Ninja (FC/NES)& @3 q: l/ r& b
System=FC
; `1 g/ v7 H/ tText=赤影战士(水上魂斗罗),双人、动作游戏,由大胖子提供!9 p0 C1 _2 L( u! X( O

2 W" o7 D3 [2 }0 a[ 本帖最后由 疾风之狼 于 2009-10-14 15:09 编辑 ]

评分

1

查看全部评分

签到天数: 2154 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 05:27:43 | 显示全部楼层
2、通过调试跟踪获取指令代码及其在Rom中的地址,并用16进制编辑工具修改ROM其中数据  A( d! h4 C/ L; L3 l4 K
偶按照暗器数不减,放雷电必杀不减血,被敌人攻击不减血,一开始拥有99颗暗器雷顺序来教大家如何跟踪调试修改:* `5 k% f) ~+ b) y

6 k# p5 }1 a/ f: k) }(1)暗器不减:
2 ?6 N& y; u- v6 D# k5 ]2 c
5 S: S$ l0 D0 F2 B" h首先打开VirtualNes Debugger并加载赤影战士日版ROM,如图1:
, y& {  c. M& n+ x" ~& ?) e' l0 C
+ ]! O5 q2 `1 V: D接下来游戏进行到获到暗器飞镖20个,如图2:
  y! c' V8 X% [/ q4 M2 C
) `; j8 L  J$ J* n5 Q+ j接下来开始跟踪飞镖数量,先打开RAM,再打开DEBUG,先打开DEBUG的话,不然RAM就用不来:如图3、图4:
6 Y. g+ d! h+ R& X
$ {! w$ ^% p" @$ B/ q# Y$ z先点暂停,根据如下面作弊码提供的暗器数量地址,如暗器数量地址是662,就在注释内出现后面方框中输入[0662](注:可以用这东东当条件断点),再点右边确定让游戏继续运行,如图5:
1 g- ?3 R; y) N+ m. E8 e
1 H; W' [3 q: M2 v- p[P1 暗器数量]5 D' S! o2 {1 n( ]2 q$ [
ON=662,FF
2 @0 u8 W+ {. m7 _4 i5 N
) @8 X; s* ?  b* F使用一次飞镖,程序会发生中断停在B840这一行,如图6:) Z/ m: x: K9 U  j# d, g) X
( H+ J. l" f4 E/ B3 h: i  p, M
B840 : DE 6206 DEC $0662,X;[0662]-- =0x13! T( f+ S$ U  A: `; v! N0 H

+ A4 K: {1 R$ \: Q6 \3 O查指令表得知B840这个地址DEC $0662,X指令作用是将0662+(X)=真正暗器地址的数值减1;既然这样,只要把这条DEC $0662,X指令改为LDA $0662,X就可以让暗器数量不减了。LDA $0662,X作用是把0662+(X)=真正暗器地址的数值读入寄存器A。(X)是寄存器X的数值。
% {8 o: z5 P7 r8 L, q6 y, {举个例子:假设X寄存器数值是6,指令是“LDA $1234,X” 这条指令看上是将$1234地址数值读入寄存器A,但实际上$1234不是真正数值存放地址,1234必须加上寄存器X的数值才是真正数值存放的地址。1234+(X=6)=123A,LDA $1234,X指令应该是这样解释:将1234+(X=6)=123A地址读入寄存器A。6 {/ k! P5 p' M; R/ m
LDA xxxx,Y和LDA xxxx,X一样,不过寄存器X变成寄存器Y。
- O) I4 _* M9 A0 c1 z: b" q. _8 b5 I- S7 ^" l1 H; h$ x
查指令机器码得知DE是DEC - Absolute,X,BD是LDA - Absolute,X,注意寻区方式要一样....把DE修改为BD就可以不减暗器数量了。
7 `2 r4 Q1 z* \8 m) Z
4 Q9 Q* y' Q; V- ]8 Q# Y6 K注意:别把BD修改成其他LDA指令,这样会死机的,因为指令寻区方式不一样。
/ y1 g# u. j) m& K+ _3 o; d" `4 Y0 e. q
另外,有一些其他游戏是这样的:改为LDA $XXXX,X 那么就会破坏了寄存器A原来的数据了,后面的程序如果要直接用寄存器A的数值的话,那么就会造成游戏出错,如果后面的程序在用寄存器A的数值之前对寄存器A赋于新值就没事了。
7 |: t) m9 D8 v: X: a, B' g& P1 p/ x, e5 ]$ F) |* C, _
接下来在RAM中找到B840:DE 62 06,如图7:$ u( X, u3 f$ G$ W/ M$ E
3 m! _& \7 T- h# l: a, d+ `8 s# a
用笔纸抄下红框中数据,以便在查找,接得在RAM中把DE修改BD,如图8:# h2 [( Y2 N/ [+ m3 N

" m* D' F+ g; \! [  o* k关闭DEBUG和RAM,回到游戏中测试吓暗器数量是否不减,暗器不减了,说明指令修改成功。如图9:
$ a: D- ]* D0 `$ T8 ^8 O  w3 n7 v) O7 o9 G5 U' `4 ~
关闭模拟器,接下来用十六进制修改工具(如UltraEdit32)修改ROM,还记得之前用纸笔抄下的数据么?
4 G" D8 a" V+ P5 S6 P5 f5 A; D  a; E! w' ^
打开UltraEdit32,载入赤影战士ROM,编辑之前按一下Insert把插入方式设为覆盖方式,如图10:! L4 n# x3 I" g" V) W
6 M2 S/ K) r+ d% K
点击UltraEdit32“搜索”>“查找”,在弹出查找框中查找内容(N)后面方框中输入你用纸笔抄下的数据,再点“查找下一个”就能找到这个数据,如图11:
% Q! }( j, O& T2 s! u; f
+ |& \( {0 {8 q  g: h& ~如图12,结果出来,UltraEdit32高亮度显示你就是要找的数据,把DE修改为BD,再点“文件”>“保存”保存你修改结果。如图13:
3 I& [! ?' i; ~- P: q1 e* y& j
6 }+ c; F) p8 ^+ X关闭UltraEdit32打开模拟器载入修改后的ROM测试暗器数量是否不减,不减的话说明修改成功了,如图14:
; m4 X5 C- p7 T) b) {$ a3 s* A2 `! m% g- |
暗器雷数量不减修改方法和暗器飞镖数量不减修改方法一样。就不再说了,留给大家练习一下。+ b8 L" o7 C" u3 ~: n0 x3 f! q; u

2 x  k& B9 j4 a% t[ 本帖最后由 疾风之狼 于 2009-10-14 15:08 编辑 ]

本帖子中包含更多资源

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

x

评分

2

查看全部评分

签到天数: 2154 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 05:28:36 | 显示全部楼层
(2)放雷电必杀不扣体力& `9 E5 [0 d! V' B8 P3 `8 J5 e3 `
打开VirtualNes Debugger并加载赤影战士日版ROM,开始游戏,打开RAM和DEBUG,查询EC作弊码得知体力地址是6F0,  T+ o/ f+ r; W( [0 F6 \( ]
# f! q- Z7 n4 U; Z: z
估计大家看暗器不减HACK教学后就知如何设置断点跟踪,我就不再说了,设置好断点后,回到游戏,按紧B键不放使出雷电必杀,
  n8 y# B2 {6 W0 A3 z8 G& p2 _4 V) B5 U: v9 F
当雷电必杀发出时,程序中断,程序停在B6FC:9D F006 STA$06F0,X这行,如图15:注意B6F6:E9 08 SBC#$08这条指令,这条指令作用是把. N) k/ ^# c( c; ~

& l0 @6 h/ Q+ y5 x1 n+ O) y/ ]地址06F0减去8,大家都知道赤影战士放雷电必杀后会扣去8点体力,而这个08正好是放雷电必杀所需要扣的体力,只要把08修改成00的话就不会扣体力。(当然你也可以修改成01,发必杀只扣1格体力啦^_^)" g% G) D  f7 c. J1 Q

4 k. u2 f* i2 @! D( u转到RAM,找到B6F6:E9 08,把图中红色方框数据抄下,以便查找。如图16:把08修改为00就不扣体力了,如图17:关闭RAM和DEBUG,再重启游戏,再发动必杀,不扣体力的话说明修改成功了。# x, f# p) D) m( u1 u6 G

$ P- }: B( k6 W1 A3 q, o如图18:关闭模拟器,打开UltraEdit32,载入ROM,编辑之前按一下Insert把插入方式设为覆盖方式,点击“搜索”>“查找”,查找之前抄下的数据,找到如图19的数据:把08修改成00,再保存退出,如图20:& ?+ u4 E$ ^5 X7 {6 B

3 d# J2 E5 l( v8 y& r# O" w' h1 X再进模拟器打开修改后的ROM测试发必杀是否不减体力,不减体力的话说明修改成功。
$ s* |3 n& t, W( `3 |7 d0 P1 H3 v- ~8 v0 V9 o$ F$ m4 h* G: ?" N
PS:跌落损伤修改方法和发雷电必杀修改方法一样,我不再说了,留给大家练习,方法设置好断点,再找个地方跳楼自杀(-_-),就能跟踪找到地址了......
3 W) C: _5 p  v8 [! n( n  a
/ {4 J' {0 o: L/ B' N偶找个时间再继续发如何HACK受攻击不减血和一开始拥有99个雷吧.......

本帖子中包含更多资源

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

x

签到天数: 2154 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 06:27:29 | 显示全部楼层
(3)受攻击不减血
1 M9 Z5 U  Q" x9 E7 k打开VirtualNes Debugger并加载赤影战士日版ROM,开始游戏后,打开RAM和DEBUG,同样用体力EC作弊码6F0来设置断点,设置好断点后,) n, V( a, e: D) u8 c: R0 ^
- V5 w- f' k1 }" \
回到游戏被敌人打一下,当敌人攻击主角时,程序中断,程序停在AC69:9D F006 STA $06F0,X这一行,如图21: * h9 r5 m* K5 w+ L( M* m

: @: g7 O% Z  }$ `注意AC69地址前面的AC63:E5 9D SBC$9D,这条指令作用将06F0,X地址数值减去009D地址数值。单单只将SBC指令修改LDA指令会有问题,偶考虑只有通过无条件转移指令(4C)再添加指令来达到不减血.....
' ]# ]. e3 U  x/ F" C1 v3 O/ G, x7 t  M) c# Q4 K  [% V5 `* ]
首先抄下如图22的数据,方便查找:之后在RAM中查找寻找连续储存的0xFF,可以在前面也可以在后面,也可以寻找连续储存的0x00,注意的是00是中断指令,有时候修改了游戏会出错。看情况吧。一般选择在连续储存的00中段开始加入修改数据。1 n" o# E' T, T. U& b6 C
2 V; u  j) B+ h: s
偶在RAM后面FFC3~FFDF找到一些连续储存的FF,如图23红框中连续储存的FF,把FF前面的数据抄下,方便查找,接着测试吓这些FF是否能使用.....' [, k7 I- ~; G+ M6 R4 C, p+ y

/ l+ q4 r2 N1 F% t方法如下:+ q& Z  \2 `6 F" r- a

  G- i/ y& I' j- l! t8 m在RAM中把AC69的9D F0 06修改为4C C4 FF,指令说明:4C C4 FF作用是跳转到地址FFC4继续执行,4C是无条件跳转,如图24、25:
2 Z, e0 Z& x3 ~+ L
1 a% ~% G" C( }4 k; ^2 `为安全得想,偶跳过第一个的FF,而在第二个FF开始输入9D F0 06 4C 6C AC,指令说明:9D F0 06是以X为偏移量,把寄存器A内容送入06F0,X地址中,4C 6C AC是跳转到AC6C继续执行,如图26:
; r+ i" F" a" z
1 \3 f5 k: e# Z0 ?, s( x9 z7 I接下来关闭DEBUG和RAM,回到游戏看吓游戏是否正常游戏,能正常游戏说明地址能够跳转使用。如图27:9 D0 I5 l6 S0 Q; d. I) s% _, H0 A
7 d9 k& u( q8 M
接下来打开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' {' _9 e' U, Z2 m9 ?7 a
, P' K5 s$ y4 i7 ?* ]) b# G
指令说明:A9 10是把数值10读入寄存器A中,9D F0 06是以X为偏移量,把寄存器A数值10送入06F0,X地址中,4C 6C AC是跳回AC6C继续执行
  u1 C5 D+ c) }8 A2 i# O8 F5 c
5 d' h, T8 Y* ]9 C关闭RAM,看看游戏是否减血了,不减血说明修改成功,如图29:; Y+ i9 m9 |' H9 I" ?! d: o

2 P: Y" g1 t1 u' d接下来,打开UltraEdit32,载入ROM,查找上图22的数据,如图30:
" y* K+ x. O) l) x" J
# s& a0 X3 f& I# v9 e7 p+ \找到把图中的9D F0 06修改为4C C4 FF,如图31、32:
; e* h2 w) G9 m# G$ [* d+ x2 J+ a2 |+ p
接着,查找上图23连续储存的FF前面的数据,比如上图23的连续储存的FF前面是20 86 A0 4C 22 EC,找到后,在20 86 A0 4C 22 EC后面的就是你要添加指令的连续储存FF,如图33:6 i! [9 P  ]$ A( J4 @' C; ]

: C$ o$ g6 @8 E( d同样跳过第一个FF,而在第二个FF开始添加指令,如图34:5 A" S# g' t% R) B
(如果你真要在第一个FF开始添加指令的话也不是不可以;假设你是在第一个FF开始添加指令的话,那图32的4C C4 FF应该修改为4C C3 FF)
; W9 I' ~) |7 G. L: f3 L4 Z7 U" ?/ E1 i) v8 q+ h2 Z: x' r
保存ROM,退出UltraEdit32,再进模拟器测试是否不减血,不减血说明成功了.....,如图35:
+ ^4 U2 T  L5 L) ~5 K
4 z. m% w" `; k. L1 r, U' E[ 本帖最后由 疾风之狼 于 2008-12-1 12:24 编辑 ]

本帖子中包含更多资源

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

x

签到天数: 2154 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 06:29:31 | 显示全部楼层
(4)一开始拥有99个暗器雷. v# V' ?  p  K# x7 X! U& T8 V
首先要找到体力初始值,大家知道在赤影战士中体力初始值什么时候开始读取并放到06F0、06F4地址中?答案是在选择人物后。(注:06F0是对应1P体力值地址,06F4是对应2P体力值地址)' z; J& ?: n: D) P+ _9 E2 q

/ G- f: [2 a: {, c: p" s要想在游戏开始后立即就有99暗器雷,必须在数据初始化后面加入暗器雷和暗器数量指令代码,如何添加指令代码?方法是上面的受攻击血不减方法一样,同样用无条件跳转指令4C再添加指令。$ C0 Q) @( c+ R! V0 l4 O
7 U& `4 }* {$ t. _" ~
偶决定来教大家如何双人游戏时两人一开始拥有99暗器雷,打开VirtualNes Debugger并加载赤影战士日版ROM,选择双人游戏进入到选择人物后,打开RAM和DEBUG,用2P体力值EC码06F4地址来作为断点.....
3 g5 ]3 A( P% |$ ~
3 r: I$ T4 V6 M0 q& }设置好断点后,回到游戏中,按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体力值地址)
, `" j% P9 s$ H* x+ T& k7 |0 e6 |& s1 |0 O& ]- V, z! J% @. ]5 `% ^
A2F7:A9 10   LDA#$10  :A=0x10          -->把数值10读入寄存器A2 s% p  I* V# O4 A. U; M2 Q
A2F9:8D F006 STA$06F0 :[06F0]=A=0x10   -->把寄存器A的数值送入06F0地址
' m! R% i' G( W3 G5 f: G- W  C. PA2FC:8D F406 STA$06F4 :[06F4]=A=0x10   -->把寄存器A的数值送入06F4地址* q" P3 ]; Y# }7 p
" ~5 |/ G5 k' O2 z' @
在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 X5 V' ~3 G3 h" E1 E7 Z& S5 I* z( [% p% f( z$ r) q  N* O
接下来在RAM把A2FC的8D F4 06修改为4C C4 FF,如图38、39:3 G2 Y5 d" e2 }1 c9 B

' `/ E* U9 _# Q* Z4 c' N接下来拉到滚动条来到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:% x% S7 _7 x" `, p0 ~7 E
& r3 o! G% ^5 q0 S4 ?& s# i' C
指令说明: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地址继续执行+ m: ^5 t4 v) |$ r% A3 ?
+ H3 @; y# w! c
接下来关闭RAM和DEBUG,重启游戏,进入游戏后暗器数是99,按一下攻击,如果放的是暗器雷说明修改成功!如图41:( p8 I6 T  ~( A% N0 i

3 g: K4 V9 b& y5 t9 Y( ]& N+ D接下来关闭模拟器,打开UltraEdit32,载入ROM,查找你刚才用笔纸抄下的数据,找到后把8D F4 06修改为4C C4 FF,如图42、43:
2 p# t6 i4 y; a0 @: X. U8 S
( {" y! Z$ a5 W5 P接下来在找到上图33的连续储存的FF地方,偶还是跳过第一个FF,而在第二个FF开始添加指令,如图44:7 U! j% p6 B! P+ M" q5 M: Z# o7 f
4 B& y- W, o5 u- L
保存ROM,关闭UltraEdit32,打开模拟器载入修改好的ROM测试,如图45:如没什么意外发生的话说明修改成功!
! i: t8 D+ q, Q) \; O2 m5 o
) A) n2 m* y8 f, n/ G# V菜鸟HACK教程到此完成!以偶目前HACK水平来说还算是一只HACK菜鸟,没有和尚HACK技术那么厉害!:L

本帖子中包含更多资源

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

x
头像被屏蔽

签到天数: 5 天

[LV.2]偶尔看看I

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

该用户从未签到

发表于 2007-4-21 10:27:49 | 显示全部楼层
' U$ a& b# d" D) @$ {
适合新手学习修改的教材

该用户从未签到

发表于 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:
2 z3 A7 g, A. X不减血的教材

签到天数: 2154 天

[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 | 显示全部楼层
呵呵 完成了,得好好学习
% c9 C; I) l% K7 E- }- y1 yxiaofa兄弟也在这啊

签到天数: 7 天

[LV.3]偶尔看看II

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

签到天数: 26 天

[LV.4]偶尔看看III

发表于 2007-11-5 21:46:57 | 显示全部楼层
终于可以自己去HACK简单的游戏了:loveliness:
  o6 v1 f/ {7 b1 L, {7 \激动啊;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 [" v6 k* [. t我会了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-8 11:17 , Processed in 1.086914 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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