|
本帖最后由 yandagui 于 2017-4-2 13:23 编辑 2 M1 [- G9 l4 g- j4 [
- \: }' ~; O7 I s* l; r! m! C[FC][忍者神龟3][END选关]
; m w! Z) ?6 _( i0 w$ e
. J2 e3 ^+ t2 y. `" W) D4 _- L, t. U时间:2017.3.309 e% L/ }5 S Y! L! i
作者:FlameCyclone" F5 }* o8 K+ s* j+ S
内容:
$ k' m1 c+ h' B; G, U) Y 1.关卡选择: 标题时,左或B减,右或A加;: r0 T- M* I, H; ~4 H
2.全屏击杀: 暂停后,按A键切换;
8 \( N" T: N; J% e; M- E 3.一击必杀: 暂停后,按B键切换;- .ORG $FEA0
; ~/ P$ V6 @- e; M. R l e i - ora_data:3 P3 ?+ t& V: y! b; H3 }6 v
- .BYTE $08,$04,$02,$01,$80,$40,$20,$10* _5 w8 M8 M' |5 l- \; Q
- and_data:
& A2 @0 X, |; ^% F9 t* z m - .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF
" [5 v# i, p' z9 I7 G - 8 s& i7 D' T/ _+ H9 \
- button = $F8& x N2 @/ o/ l- E0 Z
- flag = $6000
, K+ |& Z7 t' W2 `, } - pause = $0045' C# O. @: \6 J$ g, B u
- ; p! K- D& l: Q1 V, d8 W
- / R, I1 M3 T& G3 f. z- D
- .ORG $F90D, E" N. n8 @4 T' M! _% I
- JSR $FEC0
" S- \/ k+ b3 `% r2 }- R$ p) ] -
) j% L7 d( l, k O. ^ - .ORG $FEC0
- o- n) ~3 S- @) R) ^7 n( Z - STA $54,X
/ A/ D/ p. L7 q4 d: F2 x/ j) d - STY $FA,X2 {" I& O) T7 I; o7 f
- PHA5 L5 y8 c2 [8 h* P, C( l
- TXA( G7 o+ Y" b0 @( B
- PHA- P% B6 \0 b) e
- TYA
# q8 W# D# y: L% P9 K% k4 B R - PHA
5 l' C" y/ ?8 _8 v: @2 b+ Y5 D - JSR KEY_OPERATE
% Q$ J0 O+ d3 I% P( w, P9 ]+ K - JSR INV
7 e8 Q( R7 z. ^/ v4 \6 H8 N9 x } - JSR LIFE
0 ]7 ] A& |( ]9 g4 U8 f - JSR BLOOD0 p) y! w' l/ N8 |: m! n4 e: q( }
- PLA3 A/ @& ~- n) z
- TAY% w% @' s8 p. v4 d7 w7 O, D' Z
- PLA I( ? [6 ]4 F+ n" `$ H
- TAX
9 b2 g# i5 R6 q" S9 q - PLA
: d8 E& x- a6 s! }* f - RTS
; s/ l+ u8 t. \2 W9 [ - KEY_OPERATE:2 c( \% y k- l# M2 x/ F8 Z
- data_protect:2 _; P& t. t7 T: }7 J; K
- PHA6 _- R+ {0 V/ Y
- TXA
* C# F+ c1 g8 X* ?* x+ O% ~ - PHA
9 x4 |: M8 L6 ]# W' _( @) G4 { - TYA
# ]; H; y: U" _/ f* V8 w - PHA. V9 h8 c* {7 Z" Z
. v" b* s! d8 l( w% a- FLAG_CMP:: a4 z" H1 R, z; o% Y4 G
- LDA $600F
0 A) S. T/ D8 Z) ?4 B7 t - CMP #$7F ;标志数据初始化条件判断+ y! q9 V9 g) L# H9 {
- BEQ pause_cmp
% i! y3 u% M% k% q - LDA #$80
. [4 S: p6 C0 V3 S' E% p - STA $A001 ;6000-7FFF写入启用
3 |+ p. v [2 m- }1 Z) U7 j - LDA #$00/ ^. L' z: P# v) c
- STA $6000 ;数据初始化; h( R* Z/ [& x! O
- STA $6001 ;数据初始化
9 Z5 w0 l5 U4 N3 b0 R" p, I - LDA #$7F0 f- C* K. @; u2 B5 ?
- STA $600F
& o! [" v5 d% Q1 ]/ C1 I5 _) ] - pause_cmp: N2 }, L4 H% g' \! B
- LDA pause' P3 b; J& k1 |1 |9 P: a1 ]8 q
- CMP #$01
. z) Y; J* B, @2 B; t: _+ q8 V - BEQ button_press- t$ D5 l# N2 w* [& o
- PLA
1 c* y6 _3 j# y: {+ _# v - TAY
) m! G" R7 ? k: T4 ^ - PLA
+ C: S# C, ]" t' ] `& k$ l. v - TAX: m- J$ N! K. P, Y/ W! p& M' U
- PLA
' z z% Z4 z8 }8 d' V5 a9 [ - RTS7 R2 `0 T, N- G" b
- ' r* p: H4 ~1 q% g$ m7 ^
- button_press:
6 A3 h; a4 [3 } - ini_Y:5 a& e. ]% K$ o! V! _3 c! l
- LDY #$00
: I9 Y4 Y) ~, F+ t - button_cmp:
! U5 H: T7 f* N! {' e0 o - LDA button,X
2 `7 @* C" \' V8 ? - CMP ora_data,Y& A' A5 s k& x8 H% t4 x
- BNE count_Y_cmp
% |3 K3 K; t; l$ Y6 f: t% y - flag_cmp:
* O1 f2 U# m4 d1 U4 e - LDA flag,X) ?$ c% J/ K/ p4 }3 O3 c' c& R: y
- AND ora_data,Y. A8 r. C$ l$ E
- BNE flag_and
" J' e% l( o2 V9 x. Z6 r* ^. @ - flag_ora:1 F6 B" [1 t' e6 \- n+ Z q& @! W. ~
- LDA flag,X* b! |4 l) k, d
- ORA ora_data,Y; s1 ]: ~) l$ r% h
- STA flag,X
* U1 M# k; \3 v! s1 ~# ^; _% j - BNE count_Y_cmp
/ V4 T+ G( [2 ^ - flag_and:
8 M5 b& {; e1 O# L b - LDA flag,X! d$ v$ ~2 n: W6 { r' H+ K* L
- AND and_data,Y/ `1 k7 m' ?: [9 X* n
- STA flag,X
2 {; U' d% ^; R: U& w* q - count_Y_cmp:/ H. b- B: I: b' W& j
- INY
9 x! U) W/ m" g) z+ ^2 | - CPY #$08
* t$ y1 x3 n' ?1 j - BCC button_cmp
; c) N4 Y1 I; H; ] - & T* b, g5 v+ Q2 f. I- P
- data_extract:6 ~, X: U& m g* e4 ~6 W8 W
- PLA/ w' z0 h0 m) R
- TAY
$ z2 ?* U7 A6 }3 g6 T% \ - PLA9 {, c/ ^! C/ t0 k2 S- l3 s
- TAX- k+ \7 F$ o! \1 ?0 M6 v: Z
- PLA
C2 \+ X; W4 N% w8 S5 n -
& w9 N, e' f: O* t - return:
% ~0 _' k- D) u1 L% Q( V' K" T - RTS
8 Q9 A6 r: f. A$ ]+ { - + B @1 E+ e" v4 u5 h2 S8 b
- 8 E. G3 E: k) }# v( `
- INV: ;无敌
/ U* \6 l! c/ P3 T - LDA $6000,X
/ e8 v: Q# U9 z; K# `. M - AND #$08
9 r% I1 P; q' |$ N" t2 M7 s - BEQ INV_RTS9 e- R: N k! F1 n2 F
- LDA #$057 ]6 |3 W8 @" o5 v
- STA $04FF,X
' @+ ]2 N/ F! l% R0 I' U. I - INV_RTS:' \2 \, J$ ~& ]" Z
- RTS* W$ F+ d& ~' F8 [- ~: c* r
- 5 S/ Q* p9 Y$ Q' D l% V
-
: L/ x2 ^0 c& C: C% Y - LIFE: ;生命
8 L1 \9 d' U8 _9 T" H/ { - LDA $6000,X
+ k! ]. }( s* A6 f# g - AND #$04' B) G6 [/ M& H3 `
- BEQ LIFE_RTS9 T6 l* Q1 ~7 Z1 Y6 N6 R/ v
- LDA #$09
, Z! j4 ~8 U7 c0 s6 l8 i- E - STA $6A,X* _1 L/ P8 G6 G! K4 z
- LIFE_RTS:; s( T/ @: M% N* ~8 T( l# ^
- RTS- I- S) P5 o; C
; `+ w0 F: V2 @6 ^# j-
# z7 U! K3 R- I3 l- s - BLOOD: ;血量
" L( Q: O# h% u9 ]* O- P - LDA $6000,X- j$ C9 o4 O1 X2 o
- AND #$01
5 ]6 {4 w3 ]2 s& ^& w+ ], f& Z - BEQ BLOOD_RTS) f, P6 H4 Y8 Z) ~* Z5 j: A
- LDA #$7F: L( Q, q e+ d& n4 a
- STA $04F1,X
- C ]7 b& U) ] - BLOOD_RTS:
0 D2 s$ R) ^' B6 G0 y9 ~ - RTS
# U2 y" W$ P; y h. n, d. [1 Q - ; o) r8 ~% y* W1 W
- ! d8 @: k, S& {) t
- ' x- \" H' O) K" O
- # f$ u1 ^: G6 B
- .ORG $D29F; f9 ~! \6 q* w8 y1 C. `& @# c, Q
- JSR $FF80
$ w1 w, N/ b6 J: b# P0 ? -
% R1 @+ Z) J h( W' Z6 R( o8 A - .ORG $FF80& q, b$ ?, Q J2 T
- KILLBOSS_BY_ONE ;BOSS一击必杀
% E" X8 l6 P7 u6 r - STA $0628
' B+ k; @2 _# _0 v" I( W+ \- ^* P - PHA- k- n U/ P; e7 x* H
- LDA $60005 v" b9 a# H7 b' O
- AND #$40
1 U8 E" T$ x3 o5 j+ T& a - BEQ ADDRFF8E$ P% y `( h" L# h2 x# t7 q) R! I' y
- PLA
3 T1 S0 V% N0 Y6 C* [! F5 ~* u% e - CLC ;敌方死亡状态判定0 a$ X6 k' h; @' H0 _& W
- RTS, R, Q' Y6 O' G
- ADDRFF8E:
9 Q! K3 K* ?0 d& {( ^, S6 C$ e - PLA
" X S8 r0 y" n C - RTS$ ], E- j. m- ?8 F# \
, e8 N8 z6 z: J2 I' o
1 S6 L0 [: F) H* U2 h8 A& }+ u- x4 n- .ORG $D1517 ?+ Z9 z" w/ U& f: d" V1 W- `
- JMP $FFA06 B6 b* I/ n+ r
-
- Z+ ~6 _5 H$ M5 \) \ - .ORG $FFA0/ `8 K' b: M2 v# V
- KILL_BY_ONE: ;杂兵一击必杀2 ]6 M, j7 z1 l- M7 L9 D. U
- STA $0621,X! L _, }$ ` O' C
- LDA $6000* ?2 {& ?. j2 ^/ C" Q
- AND #$401 t) y9 D* ~* r; T
- BEQ ADDRFFAD
9 q3 R9 y( N6 J* _1 [/ I" H/ ^. U* Q- ~ - JMP $D19A ;敌方死亡程序跳转& N- c( e& R, u) ?# ^% t k$ X
- ADDRFFAD:
6 C1 R c+ v; t! d& Q+ @ - JMP $D154; c- {0 K0 E$ R |, g4 t: U
-
1 x, v/ k1 e! ~ - / h- T9 r0 \) X$ G1 E" o
- .ORG $A7F6+ R/ I8 q6 n& f+ X7 z# h
- JSR $FFB0
] k2 [' Z* D7 M) e -
' Z% |* W2 u) n, R- Y5 j3 H1 _% b - .ORG $FFB0 ;全屏攻击
! ?; R8 v) J; i5 X - PHA
3 @4 A8 j% O0 X) y* k e - LDA $6000
0 r4 J: ?. W: b7 U2 P l - AND #$80; J7 c9 E0 c, m, H
- BNE ADDRFFBD: w0 E4 M l- ?& j Q# @- @4 ?
- PLA
4 d( o& }, Q, v - LDA $0015
8 n0 s! ^* b6 q$ D - SEC Q. i% e O2 F( F$ [# z
- RTS
2 l' ]- ?# Z0 s( I4 F( z! U - ADDRFFBD:5 a! Q3 r. s! U: X4 G
- PLA
& ]2 B$ E# j+ z% ~8 r - JMP $A8263 R! ?0 S% q% f8 k1 a: T
-
' E' M4 J n2 p* x/ z - ' e0 Q: j% } `7 q
- # b2 Q; H& O# A0 d0 M, |
- .ORG $AA6A; t- i2 W. O' P% M
- JMP $FFD0
' {7 h* ~+ L' z5 o/ h' j0 l - ; N2 z; _5 S" @: n7 d% D7 ~
- .ORG $FFD0 ;敌兵动作忽略& @" O5 q) O7 _; b
- PHA
* ^/ Q( i+ L3 g! o2 E( O" ]2 Q" Y( W - LDA $6000
+ G, M$ @% H; N* d - AND #$803 B. M6 ?9 c1 ]8 b
- BEQ ADDRFFDC
8 |3 A% O/ r: F0 @- \0 ` - PLA
# K; d" Z% |4 h/ d; t9 R6 P - JMP $AA72! A$ }) v5 s# d# h8 R) C' T9 M7 }$ l' X
- ADDRFFDC:
7 i# t! [- D" \+ o' T, {6 y; d - PLA$ `$ ~: ^& x2 G9 L# I' A
- LDA $0629,X: L; ?/ f. M' }9 v8 W
- JMP $AA6D
4 q- V' z5 G/ ^$ ?$ l. k2 {+ k! p$ l - 5 c1 q* d$ ?4 s5 x& p
- ;[FC][忍者神龟3代标题选关程序] K5 M% }2 b2 ?' \# h5 i2 p. X
- ;作者:FlameCyclone 2017.4.1
! A$ }' |7 R! O& }6 {
- p0 s9 f1 R" F4 A% ~5 e- 2 m& f; O+ p# D x
- ;配置数据
0 e1 z6 |0 I* P' V! R% F+ C* P! u4 c - KEY_ADDR = $F8 ;按键地址& `" n4 }& o2 _+ S. N
- STAGE_TEMP = $6010 ;关卡临时地址( N! b, m/ J' a6 b$ I# v( Y7 t% C* p
- STAGE_MAX = $0E ;最大关卡数
0 w) B: }) I# h - TITLE_A = $20 ;标题条件A
2 u2 l5 |5 Z- ~% P) G - TITLE_A_ON = $02 ;标题条件A有效状态判定
2 ]% p1 w2 O) @, b$ a1 P, B - TITLE_B = $21 ;标题条件B
b- P, k& U9 x8 d! _ - TITLE_B_ON = $03 ;标题条件B有效状态判定
: K; p; V/ Z# y) k# H& q8 y - PPU_END = $FF ;PPU结束符+ Z2 i4 R. i7 I' a$ o7 F
- TIME_LAY = $4A ;标题显示延时地址
4 A1 B4 R, k f, o - BUTTON_DEC = $42 ;关卡减少按键
* [& a8 v5 G' T - BUTTON_INC = $81 ;关卡增加按键 A2 n& S5 o E# w9 D! x
- NUMBER_A = $06 ;数字A距离STAGE偏移量
' n a; u$ S3 w$ Q - NUMBER_B = $08 ;数字B距离STAGE偏移量
: ^7 g+ b6 Z5 Z$ p3 j* L4 f - PPU_ADDR_H = $23 ;STAGE写入地址高位4 E- ^7 V' [) \; f: B; K) A
- PPU_ADDR_L = $8C ;STAGE写入地址低位7 E1 k' O9 T+ j& }; ~; X8 _
- CHAR_S = $A2 ;字符'S'+ A3 ?# J4 q5 x* V2 \: B4 M+ t
- CHAR_T = $A3 ;字符'T'4 D' H6 E/ h$ S9 W3 j
- CHAR_A = $90 ;字符'A'( ?2 h. I& w$ T) q: V2 s
- CHAR_G = $96 ;字符'G'
) J/ t6 d: U. V! ^+ E3 n - CHAR_E = $94 ;字符'E'
0 i( E- X" t0 Y( b8 D( f t: ^ - CHAR_SPA = $00 ;字符空格
3 b4 d8 f$ T8 N# q$ Q - CHAR_LIN = $AE ;字符'-'! E7 M1 i! u* S0 L0 P. m
- CHAR_O = $9E ;字符'o'& s! E7 Z' b& R5 W1 A" y
- NUM_1 = $81 ;数字'1'& g, p- G* s- f9 H/ D0 `8 `/ y
- NUM_2 = $82 ;数字'2'
# n. b& Z$ ^0 A$ R; N' V - NUM_3 = $83 ;数字'3'
* ]6 S5 K% }; ]7 D - NUM_4 = $84 ;数字'4'
8 ]; }! ]# Y( L! k* g! O0 a - NUM_5 = $85 ;数字'5'# R8 u i( w* z
- NUM_6 = $86 ;数字'6'
8 y: }3 v! T q! N - NUM_7 = $87 ;数字'7'! p: v) d$ p, u& `' f5 H, @3 h7 o
- NUM_8 = $88 ;数字'8', l/ a# o! G8 V
- NUM_9 = $89 ;数字'9'4 [; [! U5 ]6 R2 T, P
- NUM_0 = $80 ;数字'0': L6 z8 \- z, C: B! T3 p
- ' G" T0 Y* e+ ~
- .ORG $F82A
6 F X) L' Q" W# ~! A; T0 J: w& d - JSR $E7001 T$ S6 q) i! b" ^1 d
- ( ?, q, j. s6 q4 O/ m0 Y
- 1 u% v2 F# t m# d
- .ORG $E700
% C, K4 N3 Z4 J0 z - # n$ b& H+ |8 S D- }2 @
- STY $4014 ;补上覆盖的精灵写入指令2 _- P6 W' x1 R: _; ]5 T
- PROTECT_DATA: ;数据保护
% C1 Y) u& V( z# n2 d - PHA ;数据保护开始
+ p j9 O' F, ?0 G @8 x1 \ - TXA
9 E0 L6 r2 @+ m0 d9 C8 V - PHA7 f" L% b0 }1 R9 f& F
- TYA
# Y; f* W/ K, Z8 w; Y - PHA ;数据保护结束
6 V: \- f5 L4 `* e- i% O# n - LDA TITLE_A3 U# [; d* L: d+ K. P% n2 L
- CMP #TITLE_A_ON ;比较是否为标题画面
5 g. R/ L; u: g- P$ C/ Z/ E+ g - BNE RET
& K* {! V) A- t/ M: ?; I - LDA TITLE_B
) e( F- E# c# Z1 T" C$ }8 T - CMP #TITLE_B_ON ;比较是否为标题画面, B8 _& a# Z! n+ Y9 \
- BEQ PPU_STAGE
% `( v' F, a5 _$ k - RET: ;恢复数据* Y" x/ k* B/ G `# F& |
- PLA ;恢复数据开始5 I9 V, s I/ X* {
- TAY
$ @) A2 j/ a5 m# W - PLA, j% b4 T! T: Q& H3 N W: b2 B
- TAX. X6 D7 D- ~% j' k' s- u0 ]
- PLA ;恢复数据结束
" C" o, _: w. f" V2 z$ D; l - RTS ;返回: Y1 p, l# x- u1 S
- PPU_STAGE: ;字符STAGE写入程序& C: ]6 ~: y6 J- S
- LDA #PPU_ADDR_H
: o6 b$ s& j. X8 o$ Q - STA $2006 ;设置PPU字符写入高位地址
$ |9 F$ a( T% o - LDA #PPU_ADDR_L- Z9 s: d8 I+ S I8 z- T: \
- STA $2006 ;设置PPU字符写入低位地址
6 ?+ F; ~: [2 _- ]; Q - LDX #$003 O% m( I/ J* g. O( ?+ W- ^/ U
- PPU_STAGE_WROTE: ;写入STAGE字模( r6 I* v- `+ o* O0 Q) z3 R
- LDA STAGE_DATA,X f" F$ @6 [/ b
- CMP #PPU_END ;判断是否写入结束7 ~1 G/ Y4 C8 u5 o h
- BEQ STAGE_CMP
8 T9 t4 p. E8 ~" c. H - STA $20070 l1 I! o0 `/ v3 s( r& e
- INX
, G( _$ ^2 m3 k+ v - BCC PPU_STAGE_WROTE
7 ?* } n$ R- i5 K/ C. K6 A - STAGE_CMP: ;选关操作
2 W9 L; c6 D2 F# I8 D1 |& J: h$ E - LDA STAGE_TEMP
8 [! {/ P; d% T) I5 J# F9 {, o9 b, y3 J - CMP #$FF ;关卡数据初始化条件判断( M. }$ u5 J+ D3 w. Y1 e
- BNE KEY_B
( b- [4 G& F1 r# ]+ s - LDA #$00
! ~5 x4 o8 N7 j5 T3 y0 O* U - STA STAGE_TEMP ;关卡数据初始化
: I# O: b; `7 i - KEY_B: ;关卡减少: b$ M0 x! i n
- LDA KEY_ADDR
; f. v1 m7 N" R# ~, r - AND #BUTTON_DEC ;按键B或左减关( ^4 Z2 S1 j- U! o
- BEQ KEY_A
/ Q$ n" G2 V# [0 j A7 g - LDA #$FF
' r! K( u, {$ A6 f+ i1 p6 G. { - STA TIME_LAY ;重设标题延时4 N1 X C8 b+ i5 ~( N
- LDA STAGE_TEMP1 y+ F0 R+ {5 n9 |
- CMP #$00 ;关卡比较( F u1 E1 ]8 T# O: B; Z
- BEQ KEY_A/ b9 ^) o7 i6 d
- DEC STAGE_TEMP ;减关, B! ~; Y5 ]/ N; O' `7 B
- JSR MUSIC ;按键音效1 W1 K4 E4 V% ]/ J4 d" a5 e
- KEY_A: ;关卡增加! W4 t# U( d: K. D5 T
- LDA KEY_ADDR
6 p" X$ p/ k. S - AND #BUTTON_INC ;按键A或右加关4 [' l! u. a0 r0 D. S; I' ?: d9 Z# u
- BEQ PPU_NUM_WRITE; J2 {7 q! F9 Q [+ c6 b
- LDA #$FF
" a) x' H- C8 f: P - STA TIME_LAY ;重设标题延时2 s6 g3 z) z" Z- G0 O
- LDA STAGE_TEMP; a8 Z( Z, x, d1 I0 ~1 Q$ j
- CMP #STAGE_MAX ;关卡比较1 \. x+ I$ W" z1 a: ~7 ^9 s
- BEQ PPU_NUM_WRITE
8 O' ~# p, d) V3 w5 g - INC STAGE_TEMP ;加关
( X) P& G3 V1 I% T - JSR MUSIC ;按键音效
- {! ?: d5 h3 } - PPU_NUM_WRITE: ;关卡数字写入地址
5 i8 f% n1 m" A - LDA #PPU_ADDR_H# o3 m" U* \7 @) J! R4 z
- STA $2006 ;设置PPU数字写入高位地址
. V# A. }* n$ z; o$ o - LDA #PPU_ADDR_L
~" p# e& |: d, f* q, U5 h( Z - CLC& J" g9 u6 \9 O/ q V& M- M" }& B- [
- ADC #NUMBER_A# G; y# r; L& O4 X
- STA $2006 ;设置PPU字符写入低位地址
2 @; x: t: M8 z+ _0 n* I - LDA STAGE_TEMP
8 P" Z1 ]5 |: w6 H - TAX
) v0 G, h& n% w* G2 [ - LDA STAGE_D1,X ;写入数字
3 j0 O$ q& p+ |* l c. B5 M* a - STA $2007) l3 s' }. L+ Z9 c! p9 j
- LDA #PPU_ADDR_H9 u) ]2 j5 G0 A4 E+ R2 s3 z& D8 N+ b
- STA $2006 ;设置PPU数字写入高位地址# M' w8 T9 i0 p+ M7 z4 y0 H3 I0 Q
- LDA #PPU_ADDR_L
* u+ k! t" f) p" a2 n4 J# ` - CLC* F& ]- _9 P( L# w. H6 d- L! G/ {
- ADC #NUMBER_B2 D' d% }& H4 z* B g
- STA $2006 ;设置PPU字符写入低位地址
# {7 U8 f/ \2 {5 p% A | - LDA STAGE_TEMP
% [3 q8 P1 F4 i - TAX$ ]: S, K( @& |0 x' k% \
- LDA STAGE_D2,X ;写入数字5 J e; L0 ]' K1 p. g# u/ E
- STA $2007) q0 V4 J& w2 W; i
- STAHE_WRITE:/ s0 s3 [7 _$ Z _
- LDA STAGE_TEMP
4 z `2 l- C. V k - STA $2D ;初始关卡写入
* ]% x8 O3 I" Z( A - PPU_RTS: ;恢复数据2 I2 |4 A' I l' @, [5 N- M& {
- PLA2 y$ P- {1 C }& e5 J1 ?
- TAY
8 P+ @% g% X% z+ F; Z - PLA
& p+ S4 U; ]9 W" H6 ` - TAX, I. v7 p' w2 u& p5 Y
- PLA
% w" i! x" N( d% c' t - RTS9 ~/ Q0 v' s0 u! T6 j' W
-
, x; y1 p4 |! v, U5 ?7 I% W( B* M - STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据! P, K# D* @" X/ W1 v; {; Z5 ]) P
- .BYTE CHAR_S,CHAR_T,CHAR_A,CHAR_G,CHAR_E,CHAR_SPA,CHAR_SPA,CHAR_LIN,CHAR_SPA,CHAR_SPA,PPU_END& }3 Q) f5 ]4 N. r
9 ~9 |& Z, E) z4 B- \8 Q- STAGE_D1: ;关卡数字
5 J, A0 C: S m- {5 s; b# V/ l - .BYTE NUM_1,NUM_2,NUM_2,NUM_3,NUM_4,NUM_4,NUM_5,NUM_5,NUM_6,NUM_6,NUM_7,NUM_7,NUM_8,NUM_8,NUM_87 }0 H1 T$ p* ~) V! B( I; A
- , O: ^# T4 f! r8 |/ x8 ~+ e5 \
- STAGE_D2: ;场景数字/ K) D) F7 o6 z
- .BYTE NUM_1,NUM_1,NUM_2,NUM_1,NUM_1,NUM_2,NUM_1,NUM_2,NUM_1,NUM_2,NUM_1,NUM_2,NUM_1,NUM_2,NUM_3
. u j6 N( O2 M8 P9 \ - 7 @0 p- z5 k! M- P2 L
- ) d& z. U3 L+ P9 \3 e( e9 \
- MUSIC: ;按键音效) m* u4 g# H' P0 s
- LDA #$3B ;音乐号% S2 F' n# l. P3 R b
- JSR $919E ;系统音乐调用
; G' s$ n- M, @# l: K, b) ^ - RTS
复制代码 4.无敌锁定: 暂停后,按上键切换;
3 J9 X/ {& y/ k( s7 }* w 5.生命加满: 暂停后,按下键切换;$ p* G# X8 {, \" }- F
6.血量锁满: 暂停后,按右键切换;9 O3 Q. ?+ ?* x4 Z# _' b

N, o/ M* x* z7 ~8 h* z9 X- h 8 I4 \0 ]% }4 T, d7 N

2 z, ~; R# }7 N& w8 d - [2 B* X. Z7 g$ L- S* X3 Y/ H! ]
, H, \% C/ h& F `! kFlameCyclone.ys168.com) |+ F- b& V# {
www.nesbbs.com
2 o) Q/ a8 A+ l& A z0 K9 h/ p; [8 e1 f1 Z- s+ c# I- c# s! |4 ]- \
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|