签到天数: 2024 天 [LV.Master]伴坛终老
|
文章来源:http://zsltools.ycool.com/post.1074234.html
6 v) b* j/ D0 b- J k' R8 G! F( J1 b" i" z4 Z0 R2 y3 f5 N9 U
火炎纹章776修改笔记
3 J2 r/ `; k! J2 G- f0 ^2006.1.257 ~+ w G; j3 }6 I& F, I2 o
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
& C* T ?0 }. {! b X7 L, e& _. ?/ I# L
- i# F2 }9 R: x a修改工具:Geiger’s Snes9x Debugger Mark 9% d/ \+ {1 A# z$ C# G
7 h6 f2 m4 ^) H/ @
战后升级* U6 R. X" q/ k# L
$ 83/EFDC 90 05 BCC $ 05->EA NOP
# o) v& c2 n' u3 ^# G# p6 n. ?) s- ? EA NOP# z4 W; K& s' W, c/ B9 S. h" q
$ U$ W- g+ E7 K8 U
战后能力+1* U$ q! C; E( C
$ 83/DFFF 20 B0 E2 JSR $ E2B0 [$ 83:E2B0]->A9 01 00 LDA #$ 0001$ j8 {' d; m1 q) c4 ?
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
: F/ Z0 B# F5 A' a' A( u1 y
) l3 `+ f" {- }1 w3 ^$ @武器熟练直接到A
8 Z8 z8 ]- F/ x' Z$ 83/E4E9 90 03 BCC $ 03 ->EA NOP
7 L$ H4 Y; A# V EA NOP# l/ K; r& Z) H% k$ Z* L7 U
存放所全物品锁定
: X1 a, O) B4 v' S" G存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只; `" F" q* C i5 l9 ?* K4 o
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
: Z! V& V+ b Z, g( E而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
) M( W' k" K3 G# {件物品,故可以突破存放所128件物品的限制,改出全物品。. L. z- A' ~3 Z- U4 h- \
$ 85/C785 A2 FE 00 LDX #$ 00FE ;X=(128-1)*2+ _! \( y$ J1 ^# h
$ 85/C788 BD D0 4F LDA $ 4FD0,x[$ 7E:4FD0]
* Y/ u0 K# ~2 V* K$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FCB] ;从$ 4FD0存到$ 6FCB
" z! ? ]6 L8 c: J! k, _# O$ 85/C78E CA DEX 7 Y/ V4 |' v0 Z' u; L
$ 85/C78F CA DEX
4 ?' v/ @' P, {6 ~2 }% j$ 85/C790 10 F6 BPL $ F6 [$ C788] ;循环128次
! o) }, i0 v; A$ 85/C792 6B RTL ;返回时X=$ FFFE" d' q _) E, E% V
$ 85/C793 A2 FE 00 LDX #$ 00FE 9 B# X- ?# @3 y7 D2 }: I
$ 85/C796 BD CB 6F LDA $ 6FCB,x[$ 7E:6FCB]
) R. a) I0 d; J' a/ ?$ Y, w: b: g' z$ 85/C799 9D D0 4F STA $ 4FD0,x[$ 7E:4FD0] ;从$ 6FCB存到$ 4FD0
+ C1 V6 D8 Q2 z) p+ Q4 \2 r/ q" Q$ 85/C79C CA DEX
) R1 R t" ~: a5 r/ p p, q4 ~1 ]$ 85/C79D CA DEX
+ i! l- Y2 J& @7 v, a' E: j$ M* D$ 85/C79E 10 F6 BPL $ F6 [$ C796]
- \/ c9 {8 i2 }* R5 c* F$ 85/C7A0 6B RTL
1 M. E7 x. a, M: _3 V4 X$ i2 `- \实现全物品的代码如下:
) H; m# w' Q1 u8 X: k* _+ oStart@ $ 85/C785
8 ?3 d2 q& |3 B* F1 ^6 ^LDX #$ 014C A2 4C 01;X=($ A7-1)*2
7 d% l' ]; J: g& i, {LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量2 }6 R. E! l9 _" ^& Q) i
@2 STA $ 6FCB,x 9D CB 6F
* G8 ]; K7 B" L: [DEC A 3A
! d4 t% w, g% n6 t+ T- Z4 YDEX CA& H4 e0 r; y5 Z1 x c4 S4 E
DEX CA7 V' F+ u3 {' ?: ~5 x
BRA @1 80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间# E, p0 `, O, Y; u
LDX #$ FFFE A2 FE FF;-|: k* M. i2 y$ q% Z" T( U
RTL 6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序- l$ K2 H8 a0 u8 }
@1 BPL @2 10 F2;循环$ A7次
) N+ I" Z( f: I* }" Z$ R' `( fRTL 6B9 q4 P1 m' F c' M9 F7 ~- E
最后改完后反汇编出来的结果:
+ B6 o b' w( I2 I$ K P8 ^" o$ 85/C785 A2 4C 01 LDX #$ 014C ( `$ f( F& J5 D- T6 N9 f
$ 85/C788 A9 A7 3C LDA #$ 3CA7 ' N0 k, k! v+ A9 k
$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FC9]
7 w+ n+ E" s% @0 ]$ 85/C78E 3A DEC A
2 m$ M2 d7 c6 Q: A4 v* q5 A$ 85/C78F CA DEX 6 m; S/ t3 r3 _& V
$ 85/C790 CA DEX , d- @* |% I c R4 z+ V
$ 85/C791 80 04 BRA $ 04 [$ C797] ;利用后面的空间0 T, N7 \' B" |0 Y0 Z
$ 85/C793 A2 FE FF LDX #$ FFFE ;
' ^. \- R! L0 r8 h/ I$ 85/C796 6B RTL ;注意一下,看看原来这里是什么
' ^6 c; q) o5 i+ ^$ g1 q$ 85/C797 10 F2 BPL $ F2 [$ C78B] % a X( \' N2 Y: H! W( j
$ 85/C799 6B RTL ( g. I8 }& |( C( W# s1 m. @
$ 85/C79A EA NOP ;避免出错,把多余的都NOP了
" Q" h- k5 X' k4 A/ ^6 C7 g$ 85/C79B EA NOP ;
7 V9 O" r3 ~& x2 F0 f9 z0 @0 w$ 85/C79C EA NOP ;
" {5 ^ N1 A$ g7 V7 F$ 85/C79D EA NOP ;5 p& y# C$ s2 x# Q) [5 p
$ 85/C79E EA NOP ;
5 F1 x \: t5 h+ g7 _- l3 l2 \$ 85/C79F EA NOP ;
' t, _4 M7 _; _5 v1 Z$ 85/C7A0 6B RTL ;
4 C4 T4 x% E$ N# T- `2 N& c5 X0 o9 x0 @
$ {; X/ q9 ~* G[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ] |
|