EMU618社区

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

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

 关闭 [复制链接]

签到天数: 2049 天

[LV.Master]伴坛终老

发表于 2007-4-21 05:26:54 | 显示全部楼层 |阅读模式
注意:转载请注明本人名字和文章出处!% Y7 ]9 z% d% c6 Z9 M$ ~; |

; J8 |9 J: C) E1 l* ]) o菜鸟NES HACK简单教程(偶应N多人要求才做这个教程,有错误请指正:L )6 G5 [; I& p/ X" a7 ^
- _, W/ t9 T/ n: p0 H
NESHACK相关资料下载:http://bbs.emu618.com/forum/viewthread.php?tid=12675&extra=page%3D28 p9 y, j0 [8 u7 [0 ~
7 C# U- z9 v9 l
6052汇编大奥秘(详细介绍FC的汇编语言,推荐下载):http://bbs.emu618.com/forum/viewthread.php?tid=20393&extra=page%3D1
3 U8 F+ V* i; q" ~; l3 J3 s9 x8 e' }$ e+ F7 C
开始之前先说几句废话
8 @$ n0 H' v6 W$ N; T1 [1 D% z1 W! W8 }; t! h" [3 m
第一,HACK之前先了解一下6502汇编指令,NES相关资料里有指令集说明文档,如果你看不懂英文的话就下载《6502汇编大奥秘》,里面有指令中文说明........^_^
9 v' [% a2 L4 M1 s6 D* r' \1 N- }  V0 @5 P
个人建议:没必要把6502全部汇编指令硬背下来再跟踪调试,那样会很累,你可以一边调试一边查询指令说明.......
( U/ V1 j2 E! n3 ~4 n2 J
  e- @/ S1 T# i2 s' S7 @第二,还需要准备一些工具:NES调试跟踪工具(VirtualNes Debugger版或者no$nes-w、FCEUXD SP等NES调试跟踪工具)、十六进制之类编辑工具(Winhex或者UltraEdit32)" I: a3 Q+ ?, J

" d+ G8 A: @2 C1 Y) U5 t; U/ h: r第三,了解修改步骤:
& }$ Z* y/ G0 h) U) B1 k" n% p( {1、首先要确定你要修改什么。连要修改什么都不知道,那怎能谈上修改呢。: e+ Q4 B) F* U# X# Z7 D) ^: N
2、获取作弊码,换句话说就是要获得要修改数据的地址。推荐使用EC,这个软件自带作弊码和跟踪修改功能。
) L3 F) |! p, d3、获得指令代码及其在Rom中的地址。一般通过VirtualNes Debugger版或者no$nes-w、FCEUXD SP等NES调试跟踪工具,再配合内存查看和十六进制之编辑工具确定指令以数据方式储存在Rom中的哪个地址。
  z5 @5 h/ u6 I6 Z+ z+ v! O4、修改相应指令或数据。一般来说要做尽量少的修改,而且不能让程序运行出错。# z5 @" l6 I% z  _
5、测试游戏运行情况,看游戏能不能按照你修改目的正常运行。
- |0 S* P* u- _9 q" j  l! d  K
6 u4 s8 F' F: i' b( C第四,偶以日版《赤影战士》和VirtualNes Debugger版来为例子教大家如何HACK:* j0 Q0 Q1 \4 _% j' p0 X6 r
8 [3 L4 U& \% ]+ O) J) J  E
偶需要修改的数据:暗器数不减,放雷电必杀不减血,被敌人攻击不减血,一开始拥有99颗暗器雷
* w+ h3 ^5 S! |' Y! x* {, F+ Z5 U( n. \2 a8 n
1、获取作弊码,这个好容易得到,EC这个软件附带N多作弊码,省去自已手工查找作弊码了。^_^. ~$ ^/ W& t& S, a
[P1 生命值]
' W( n  b& D2 y* _" ]) o0 S3 `ON=6F0,10% H) o: I4 k5 z8 x. S1 h; b

% h* v& c: o8 S1 ?4 Q: T3 Z% O[P1 暗器数量]6 @6 c7 q( `: c. p% a
ON=662,FF
( R6 y8 R4 x. q# [! `, F4 l
) l- Y1 a$ U) w: v7 |[P1 武器种类]7 m- e8 f3 \& p) S6 `, c
刀=6B2,0
! D! y2 Q+ C+ W& X* Z4 s2 `ON=6B2,3
" f4 B% Y/ S0 Y* p% I: v
- J0 u4 n/ T3 D7 V9 E, D1 M[P1 武器威力]
2 Q* Q$ ]! N6 G* \! OON=680,FF
' ]* M( Y8 b/ |; g' h8 q$ _) X; \. W
" ~$ r7 P, ^& b# D6 @/ t[P1 暗器种类]
: l7 g! f' [6 i标=671,0; c( ?0 U6 ^  l( d
雷=671,1
* o& \' \5 `5 j1 O5 Z7 S5 \+ `
. f( g$ Z: u, u/ i: a[P1 隐身]
* e5 {3 R* W( Z/ qOFF=0000,0$ |- H$ \& j# b# @. B0 v' B
ON=601,4C% q1 H. g# J- t

1 V% |! x* d' w; ~& |2 ^3 ?! B[P2 生命值]
) A3 D6 Z9 r0 v7 ]ON=6F4,102 Q  Q% O2 [7 j& G7 q
( m* l& O2 {1 q- Z; ~8 q$ x
[P2 暗器数量]1 R  G% e6 X& ^! r/ P
ON=666,FF% N# I# Z$ C3 f' _$ @) d4 K

. R+ j7 n0 W8 w[P2 武器种类]
$ A; _- ~- |4 }' p( ^8 @刀=6B6,0
. x& N3 |9 Q* c9 a# lON=6B6,3
2 p' {" j2 H& R' V3 ]0 U0 u' [- K9 F: \9 ^" y2 V6 b4 B
[P2 武器威力]' \, a: j: ^+ [8 E4 C
ON=684,FF/ l. E1 K9 P6 {" J% w& i; B
8 X4 s8 y! A5 B1 c3 x
[P2 暗器种类]
& t7 x" b% U* ^标=675,0- j- |2 Y# q& S# y4 b2 u& d
雷=675,1: }( _: Z& e" ~$ E4 z8 v: ]# o

- b- L6 F4 g+ }. R& T* o3 e/ ~[P2 隐身]  B/ L8 h% q8 ^4 q; V+ O) {
OFF=0000,0
$ R, T1 o' o  B& z* d, AON=605,4C% r7 v/ L2 |2 e6 F5 y2 h9 q1 `
) X. \4 y: ?; O4 L
[GameInfo]
. N1 u3 R: P3 BName=Shadow of the Ninja (FC/NES)
/ ^8 I: P6 n, `$ USystem=FC
0 L4 s( N& Z1 {# T  pText=赤影战士(水上魂斗罗),双人、动作游戏,由大胖子提供!; t- n$ O( `" A( ?: a
6 r  {6 i- K  R# k3 N
[ 本帖最后由 疾风之狼 于 2009-10-14 15:09 编辑 ]

评分

1

查看全部评分

签到天数: 2049 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 05:27:43 | 显示全部楼层
2、通过调试跟踪获取指令代码及其在Rom中的地址,并用16进制编辑工具修改ROM其中数据, l2 c, V- Y! Y+ e
偶按照暗器数不减,放雷电必杀不减血,被敌人攻击不减血,一开始拥有99颗暗器雷顺序来教大家如何跟踪调试修改:
0 U) I9 h+ m0 o& C5 |: T) n  x! O1 K* Q* R; q
(1)暗器不减:
7 x5 n3 n1 L" z' J/ t3 Z6 x! d! D6 D* g5 {# d
首先打开VirtualNes Debugger并加载赤影战士日版ROM,如图1:
: s, P- R  U1 l0 H4 ~! u) l. L5 e
" A* }5 y! s% ^. ]4 J: u8 N$ ^& o接下来游戏进行到获到暗器飞镖20个,如图2:
5 G7 A: _* _4 Q' x3 q% ^  N6 e7 ?* D
接下来开始跟踪飞镖数量,先打开RAM,再打开DEBUG,先打开DEBUG的话,不然RAM就用不来:如图3、图4:/ ]0 {# H# F5 ~1 E

7 R5 i: C! \( g5 s! `4 m先点暂停,根据如下面作弊码提供的暗器数量地址,如暗器数量地址是662,就在注释内出现后面方框中输入[0662](注:可以用这东东当条件断点),再点右边确定让游戏继续运行,如图5:& Z2 w! d2 C+ H" ]/ ^, O$ j
3 C. |3 O1 O, D
[P1 暗器数量]
2 W$ ^, ], h0 I1 \, `/ z# v" gON=662,FF1 y3 ?7 Z2 q' [

, [" ]* k- `" A, \使用一次飞镖,程序会发生中断停在B840这一行,如图6:) q. i1 s7 L) b+ {. N

5 @" {7 n0 ]( t- E$ [+ ?# hB840 : DE 6206 DEC $0662,X;[0662]-- =0x13
$ j4 h: a" I. F# u6 ~# X) n
" C4 V+ ?# H6 {7 d; ^. r! v! C, e& w5 ]查指令表得知B840这个地址DEC $0662,X指令作用是将0662+(X)=真正暗器地址的数值减1;既然这样,只要把这条DEC $0662,X指令改为LDA $0662,X就可以让暗器数量不减了。LDA $0662,X作用是把0662+(X)=真正暗器地址的数值读入寄存器A。(X)是寄存器X的数值。
9 U2 o& ^( S8 H# z" v& c: ]举个例子:假设X寄存器数值是6,指令是“LDA $1234,X” 这条指令看上是将$1234地址数值读入寄存器A,但实际上$1234不是真正数值存放地址,1234必须加上寄存器X的数值才是真正数值存放的地址。1234+(X=6)=123A,LDA $1234,X指令应该是这样解释:将1234+(X=6)=123A地址读入寄存器A。$ P2 X6 Z7 u  J& p) `" J* s
LDA xxxx,Y和LDA xxxx,X一样,不过寄存器X变成寄存器Y。
5 E9 p  Y; J2 ^: [! o1 y; \/ q6 z* A5 T4 ?
查指令机器码得知DE是DEC - Absolute,X,BD是LDA - Absolute,X,注意寻区方式要一样....把DE修改为BD就可以不减暗器数量了。
5 S9 M/ @% t( o) G3 |( g# a# I, S( C
) a. v! n" k5 ?  K3 K& J注意:别把BD修改成其他LDA指令,这样会死机的,因为指令寻区方式不一样。  V( Z: R3 m3 ]" @+ c

/ b! D, K- W4 Q' j- `  }  D另外,有一些其他游戏是这样的:改为LDA $XXXX,X 那么就会破坏了寄存器A原来的数据了,后面的程序如果要直接用寄存器A的数值的话,那么就会造成游戏出错,如果后面的程序在用寄存器A的数值之前对寄存器A赋于新值就没事了。
/ o  A8 Y8 [4 ^2 Z5 @
  \; @9 I; k9 A& ]接下来在RAM中找到B840:DE 62 06,如图7:
5 J3 g9 X9 h* [6 V( g: k) U: i( _& X$ n; y$ D# B9 ]9 h! \
用笔纸抄下红框中数据,以便在查找,接得在RAM中把DE修改BD,如图8:
# U+ S8 v* ~1 x# Y% B' t2 R( v. U8 d) H, z/ |' f3 ]5 u0 x$ o1 o
关闭DEBUG和RAM,回到游戏中测试吓暗器数量是否不减,暗器不减了,说明指令修改成功。如图9:0 n% d3 i/ N+ n0 c  |( j
) \% g1 H: g) t( m9 f
关闭模拟器,接下来用十六进制修改工具(如UltraEdit32)修改ROM,还记得之前用纸笔抄下的数据么?7 I& N8 l1 i" f% i; u9 n, F8 f, s
0 j# c2 [  q" @) [+ ]$ @! F
打开UltraEdit32,载入赤影战士ROM,编辑之前按一下Insert把插入方式设为覆盖方式,如图10:. e  i1 ?8 q- m6 t

0 |- ~; Q/ h+ D+ }! {' L点击UltraEdit32“搜索”>“查找”,在弹出查找框中查找内容(N)后面方框中输入你用纸笔抄下的数据,再点“查找下一个”就能找到这个数据,如图11:  a3 E4 D5 f- {  |0 G7 c
, T, ?3 }3 ^- H/ {8 s6 T7 `/ F
如图12,结果出来,UltraEdit32高亮度显示你就是要找的数据,把DE修改为BD,再点“文件”>“保存”保存你修改结果。如图13:
# t1 _) N$ n5 A. f6 t: }) {
9 A3 x. {3 y, v' C! l) l关闭UltraEdit32打开模拟器载入修改后的ROM测试暗器数量是否不减,不减的话说明修改成功了,如图14:
0 F  q+ r. _! _5 ~0 M& |) n( y+ P
  q3 ^% m. k& T: h6 M$ C暗器雷数量不减修改方法和暗器飞镖数量不减修改方法一样。就不再说了,留给大家练习一下。
% G! r- l3 a% c2 @* J: g  v/ I2 u0 R, X" i
[ 本帖最后由 疾风之狼 于 2009-10-14 15:08 编辑 ]

本帖子中包含更多资源

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

x

评分

2

查看全部评分

签到天数: 2049 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 05:28:36 | 显示全部楼层
(2)放雷电必杀不扣体力
$ Z8 S7 j  d$ @8 C+ t% b# C打开VirtualNes Debugger并加载赤影战士日版ROM,开始游戏,打开RAM和DEBUG,查询EC作弊码得知体力地址是6F0,. |. p3 Z9 O. b0 Z
, z% k& A8 O+ o% e
估计大家看暗器不减HACK教学后就知如何设置断点跟踪,我就不再说了,设置好断点后,回到游戏,按紧B键不放使出雷电必杀,
6 P9 L! r6 g5 L* a+ P; Q( O7 d! Y" x* l1 R+ z$ L! T
当雷电必杀发出时,程序中断,程序停在B6FC:9D F006 STA$06F0,X这行,如图15:注意B6F6:E9 08 SBC#$08这条指令,这条指令作用是把) h' V7 l3 m4 ^" k, M% I

1 M! A7 M8 \; v6 u地址06F0减去8,大家都知道赤影战士放雷电必杀后会扣去8点体力,而这个08正好是放雷电必杀所需要扣的体力,只要把08修改成00的话就不会扣体力。(当然你也可以修改成01,发必杀只扣1格体力啦^_^)
) ?' s0 M  k2 h9 Z" l9 E$ ], k* m$ i" T) T
转到RAM,找到B6F6:E9 08,把图中红色方框数据抄下,以便查找。如图16:把08修改为00就不扣体力了,如图17:关闭RAM和DEBUG,再重启游戏,再发动必杀,不扣体力的话说明修改成功了。
# T3 G6 k1 z1 g6 f/ m2 r! X3 X: R4 w* a: w7 a; P- g* A& [
如图18:关闭模拟器,打开UltraEdit32,载入ROM,编辑之前按一下Insert把插入方式设为覆盖方式,点击“搜索”>“查找”,查找之前抄下的数据,找到如图19的数据:把08修改成00,再保存退出,如图20:
: M; p* A9 A7 D4 Q
9 T5 p9 X! ]7 b% l- l再进模拟器打开修改后的ROM测试发必杀是否不减体力,不减体力的话说明修改成功。4 U& U" a- S& E1 @. K
; @# p/ N. n4 y
PS:跌落损伤修改方法和发雷电必杀修改方法一样,我不再说了,留给大家练习,方法设置好断点,再找个地方跳楼自杀(-_-),就能跟踪找到地址了......
' c; u. T( C7 y
) ^# h8 F$ Z8 H$ Z- N偶找个时间再继续发如何HACK受攻击不减血和一开始拥有99个雷吧.......

本帖子中包含更多资源

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

x

签到天数: 2049 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 06:27:29 | 显示全部楼层
(3)受攻击不减血% G# S% f5 B: a
打开VirtualNes Debugger并加载赤影战士日版ROM,开始游戏后,打开RAM和DEBUG,同样用体力EC作弊码6F0来设置断点,设置好断点后,- Z* J  n5 w1 W5 p( k
3 [$ q3 m* N9 k0 X# d& i
回到游戏被敌人打一下,当敌人攻击主角时,程序中断,程序停在AC69:9D F006 STA $06F0,X这一行,如图21: " T: {2 Y4 [. y. I# b
2 D# t* i# A- n4 i8 ~8 r- V9 \
注意AC69地址前面的AC63:E5 9D SBC$9D,这条指令作用将06F0,X地址数值减去009D地址数值。单单只将SBC指令修改LDA指令会有问题,偶考虑只有通过无条件转移指令(4C)再添加指令来达到不减血.....
0 m( W' w1 p! @3 L, E6 l' m% b: G' t
首先抄下如图22的数据,方便查找:之后在RAM中查找寻找连续储存的0xFF,可以在前面也可以在后面,也可以寻找连续储存的0x00,注意的是00是中断指令,有时候修改了游戏会出错。看情况吧。一般选择在连续储存的00中段开始加入修改数据。
2 l  V2 h6 F+ }" f
0 r7 _& y  `7 O- Z偶在RAM后面FFC3~FFDF找到一些连续储存的FF,如图23红框中连续储存的FF,把FF前面的数据抄下,方便查找,接着测试吓这些FF是否能使用.....; j+ j2 Y- j9 V1 B* j' e
6 h: j3 Y8 d+ ]- y5 _
方法如下:: A2 i) P) ]' j0 }6 \7 X6 [* v
+ r/ Y5 `2 t4 [" _3 G& s+ s
在RAM中把AC69的9D F0 06修改为4C C4 FF,指令说明:4C C4 FF作用是跳转到地址FFC4继续执行,4C是无条件跳转,如图24、25:1 I: |# r$ k, e

1 [  C1 v* M- U/ c/ N为安全得想,偶跳过第一个的FF,而在第二个FF开始输入9D F0 06 4C 6C AC,指令说明:9D F0 06是以X为偏移量,把寄存器A内容送入06F0,X地址中,4C 6C AC是跳转到AC6C继续执行,如图26:
4 g# m( i- \$ y. I
$ m% l: `, }0 k- e3 F接下来关闭DEBUG和RAM,回到游戏看吓游戏是否正常游戏,能正常游戏说明地址能够跳转使用。如图27:* {; @7 N1 ?8 P; h3 J

$ a! k5 e! n# ~( J! K接下来打开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:
: d3 f, N' {+ t' _7 f5 ?5 O4 S8 a4 v4 C- `# o8 ^5 [3 }
指令说明:A9 10是把数值10读入寄存器A中,9D F0 06是以X为偏移量,把寄存器A数值10送入06F0,X地址中,4C 6C AC是跳回AC6C继续执行
* p8 z( q  z8 g' @6 @0 W( K5 I' u2 }3 t7 ^
关闭RAM,看看游戏是否减血了,不减血说明修改成功,如图29:
1 X; `: f2 X0 o/ y1 I$ e3 Z, u1 X
) L" T, C+ c8 v: N& N5 i, K3 x接下来,打开UltraEdit32,载入ROM,查找上图22的数据,如图30:
% P3 n+ w6 K) j  G) E
0 m& ~- Y3 I; n. ?8 x# S# A/ X找到把图中的9D F0 06修改为4C C4 FF,如图31、32:, k, ~0 D8 S! g3 Y2 \
5 T) y  S& A' W; P" U8 R1 e
接着,查找上图23连续储存的FF前面的数据,比如上图23的连续储存的FF前面是20 86 A0 4C 22 EC,找到后,在20 86 A0 4C 22 EC后面的就是你要添加指令的连续储存FF,如图33:
  ]$ K: P3 b( S$ z* Z/ A
) B1 w: F! ?& n0 V% V8 e同样跳过第一个FF,而在第二个FF开始添加指令,如图34:
* L3 Q7 c8 U; r+ s& Q(如果你真要在第一个FF开始添加指令的话也不是不可以;假设你是在第一个FF开始添加指令的话,那图32的4C C4 FF应该修改为4C C3 FF)7 i& j! }. |6 m% d* n4 N, x

$ h7 ^* i0 R# U$ g! g5 R! d) n保存ROM,退出UltraEdit32,再进模拟器测试是否不减血,不减血说明成功了.....,如图35:
6 M! B: s; \) n
; O$ M. p5 w: v[ 本帖最后由 疾风之狼 于 2008-12-1 12:24 编辑 ]

本帖子中包含更多资源

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

x

签到天数: 2049 天

[LV.Master]伴坛终老

 楼主| 发表于 2007-4-21 06:29:31 | 显示全部楼层
(4)一开始拥有99个暗器雷- Z# L6 W" W6 R; r1 {
首先要找到体力初始值,大家知道在赤影战士中体力初始值什么时候开始读取并放到06F0、06F4地址中?答案是在选择人物后。(注:06F0是对应1P体力值地址,06F4是对应2P体力值地址)
0 d- ^# K, Y6 C( C
$ {) X# H9 B: ~% A7 w要想在游戏开始后立即就有99暗器雷,必须在数据初始化后面加入暗器雷和暗器数量指令代码,如何添加指令代码?方法是上面的受攻击血不减方法一样,同样用无条件跳转指令4C再添加指令。
) v4 f3 ?& \0 }/ A) [
6 }% o9 \5 P& o: [7 ]! e4 W0 j- T偶决定来教大家如何双人游戏时两人一开始拥有99暗器雷,打开VirtualNes Debugger并加载赤影战士日版ROM,选择双人游戏进入到选择人物后,打开RAM和DEBUG,用2P体力值EC码06F4地址来作为断点.....& k  I! ?" d5 ~' _: A- c0 L. d

* f) n7 n, ]/ f' E& q" 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体力值地址)% F0 o" @! S5 K: X. S% v

) p/ k& _6 m4 e& w5 W1 H# Q$ {" dA2F7:A9 10   LDA#$10  :A=0x10          -->把数值10读入寄存器A# s7 m) y# i9 J1 ~' ?
A2F9:8D F006 STA$06F0 :[06F0]=A=0x10   -->把寄存器A的数值送入06F0地址
# _/ _- F9 a1 B/ u8 T  ]A2FC:8D F406 STA$06F4 :[06F4]=A=0x10   -->把寄存器A的数值送入06F4地址
" m# W: w: Y* X0 f/ ?/ I* Q- N6 V8 z6 a2 O7 Q, X. u( x1 J7 Y1 [
在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来添加指令吧...., z" {3 M4 n# D6 x' H

2 ^9 H: r0 T0 m) Q0 p7 J$ [接下来在RAM把A2FC的8D F4 06修改为4C C4 FF,如图38、39:
8 ^: Y" Y  }, x# H/ g' y# O- r/ G8 T& D! H9 Y
接下来拉到滚动条来到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:& d$ f5 p. ]0 @* S& H5 y( J
. c( T1 `: W6 S# M3 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地址继续执行
7 {: d% d# j4 I2 V. a5 z
( r; \3 T  h! ^' G接下来关闭RAM和DEBUG,重启游戏,进入游戏后暗器数是99,按一下攻击,如果放的是暗器雷说明修改成功!如图41:, s  ^) L  ]! r# T& N# M5 F

6 C' p8 p4 A! ]$ y! M/ \接下来关闭模拟器,打开UltraEdit32,载入ROM,查找你刚才用笔纸抄下的数据,找到后把8D F4 06修改为4C C4 FF,如图42、43:( z) ~6 h( B7 l+ Y6 [

! C4 A1 r9 W# U接下来在找到上图33的连续储存的FF地方,偶还是跳过第一个FF,而在第二个FF开始添加指令,如图44:
$ n/ S+ p- z8 Q5 P* ]0 d3 O
5 t- K$ C' Y2 e. E0 P4 \保存ROM,关闭UltraEdit32,打开模拟器载入修改好的ROM测试,如图45:如没什么意外发生的话说明修改成功!1 P; F( i4 q4 r* R( h6 J
& w. ~! a8 y0 H- _% W$ `' n
菜鸟HACK教程到此完成!以偶目前HACK水平来说还算是一只HACK菜鸟,没有和尚HACK技术那么厉害!:L

本帖子中包含更多资源

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

x
头像被屏蔽

签到天数: 5 天

[LV.2]偶尔看看I

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

该用户从未签到

发表于 2007-4-21 10:27:49 | 显示全部楼层
' Z9 R" x4 U5 s5 V# }  Y0 S- A, 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: & x- G" d8 L/ y8 a5 f
不减血的教材

签到天数: 2049 天

[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 | 显示全部楼层
呵呵 完成了,得好好学习
& d1 o/ @9 r' E+ a2 k4 p8 b1 Fxiaofa兄弟也在这啊

签到天数: 7 天

[LV.3]偶尔看看II

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

签到天数: 26 天

[LV.4]偶尔看看III

发表于 2007-11-5 21:46:57 | 显示全部楼层
终于可以自己去HACK简单的游戏了:loveliness:
/ b$ O' c; j$ @) E- R激动啊;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 | 显示全部楼层
好说的太好了
' E$ K& m. Z$ T我会了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-24 05:19 , Processed in 1.112305 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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