|
|
本帖最后由 yandagui 于 2017-4-2 13:23 编辑
* i+ L0 E3 t. k( N
" p9 m& w p; Z4 d7 \[FC][忍者神龟3][END选关]
+ n) q( E0 k, h) e! \8 B# R: A' t5 l* J, i3 x; u7 x; M0 W/ e
时间:2017.3.30
, z4 }! c" |3 D5 O3 D/ C: `" H作者:FlameCyclone
9 }9 x! Q6 [8 [) k+ J8 I) E; v# B内容:
" i- k+ ?6 l" r$ x 1.关卡选择: 标题时,左或B减,右或A加;
9 M# A/ k+ _6 B/ F$ |* ^* n* Y 2.全屏击杀: 暂停后,按A键切换;( O. J0 Q* E- A, E# m0 E% l* n: B
3.一击必杀: 暂停后,按B键切换;- .ORG $FEA0
( x/ P4 y8 Z& H3 L - ora_data:* |7 t* a* i; s9 u4 h7 d G
- .BYTE $08,$04,$02,$01,$80,$40,$20,$10
* ?& @/ O( Y1 K x - and_data:' `7 w t' _) @4 [5 m4 z
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF3 h2 p. i# P W$ K- u) d
- : M( G1 F' \8 x2 a* Y4 i( v
- button = $F86 d8 @0 y: y$ `* j% D; G" i+ @
- flag = $6000& e/ u! C0 a, t2 W4 E$ i
- pause = $0045
1 S5 T: |& U! I" s! \* Q! y& a, ^! f
6 ]9 F$ l5 d* c a# m- 1 y( l: P; ]2 z' O {5 d8 `
- .ORG $F90D
3 S6 u3 Q, v7 q) I O3 I+ v - JSR $FEC0
- V+ z9 l1 m% \4 q# L* Z -
0 w" z8 M7 D( V' v( w1 t" { - .ORG $FEC02 [+ S2 d. }5 r+ ~9 v
- STA $54,X' p+ X3 `" P: W+ P4 u5 }
- STY $FA,X
! n( R9 e( c5 `$ d& z - PHA
3 X) e' [9 P+ W8 [+ W% o - TXA, q, z0 w o: f2 Y3 d+ f h. {, S
- PHA
! u' N- U8 l% V$ Y - TYA
* z+ {( A0 U2 h Q) y% m1 T - PHA8 w, ] v! F) W/ D7 b
- JSR KEY_OPERATE
8 b2 b+ q3 f+ K' w9 v1 \! F$ \6 H - JSR INV0 n6 f2 y4 b& X
- JSR LIFE% v/ ^4 w* W) s) V
- JSR BLOOD. u5 a5 S! z9 s# _
- PLA
; a/ Q2 W2 \7 Q( o, G* i! j9 R - TAY
, C. C, ^. H& z - PLA
# ]7 O1 x o T. D3 D! D* d; j" _ - TAX# n7 s* O7 D# H8 M d% M
- PLA9 {, }% a2 u' U8 T$ I: B
- RTS$ ?% Q1 T7 ?( z0 `% x: T F" }
- KEY_OPERATE:
& i4 L0 \1 W9 R% P A# t9 h - data_protect:/ p7 h/ W" L& Z- h- d' Q9 O, q3 k
- PHA& K# D3 I" d7 s* E
- TXA
9 T& W7 \( E) n6 t$ A - PHA
9 y4 d, c2 r! r, Y7 f3 U- Y0 o7 E9 W( P - TYA- k9 `( y( n6 t* B4 _
- PHA1 V+ i: o+ [4 U! D. R6 a
- 6 A$ p N+ |' v8 [2 H1 I2 \3 n& q `* C
- FLAG_CMP:' ^; f) }8 x4 r/ F1 o
- LDA $600F
0 \* ?; S8 w: g4 Q& Y - CMP #$7F ;标志数据初始化条件判断+ q) s: V$ Q8 I& I7 D
- BEQ pause_cmp9 b7 y$ e5 z/ p4 r0 ~6 T
- LDA #$800 Q2 ]$ _0 a7 r1 i- l4 }8 p& ]: ~
- STA $A001 ;6000-7FFF写入启用& y5 h2 l5 U; G( p
- LDA #$00
3 \. p# V5 N0 `7 h) P& j7 D$ J - STA $6000 ;数据初始化, k' F& @5 w" Y' |/ F8 F4 S
- STA $6001 ;数据初始化: @& Q; h: |( J) Z- w+ r
- LDA #$7F0 R0 y+ W7 e- c2 F- j& O3 x
- STA $600F! f9 F# e% Q/ [) ]" N0 t4 e
- pause_cmp:0 r; @/ T' ^# q
- LDA pause
- i1 X7 `* o t5 N; F2 O- E - CMP #$012 ?/ y$ S# q& {9 J
- BEQ button_press
7 e: H+ I5 G+ y& h% _; I Y - PLA
! d F9 |/ X$ |% o2 \ - TAY* h6 \5 t! V& R F1 f
- PLA
6 I* `0 u7 O; x4 u) H. h! S - TAX2 b% V! x. S& t) A) a/ V
- PLA6 e; O) w- M$ Q
- RTS
$ ]8 C6 [7 ]- A2 @" j# h3 w) B - % O% N4 p4 w: @1 a4 c+ q% K
- button_press:
" D+ m' G9 A0 i4 ^ - ini_Y:% K: r0 K; n/ O: g* g1 K. {! P
- LDY #$00, o3 l. ?9 E6 z9 N4 l. Z1 P
- button_cmp:
( T, c- O& V$ I7 z1 |% ~ - LDA button,X
! [0 }6 ]# A/ O1 f - CMP ora_data,Y9 ~# M2 P/ t& i) c# q' z$ `! k" `
- BNE count_Y_cmp
# m$ R, z+ T, o& a( R - flag_cmp:, v, `, M# ]# }( @2 s/ U
- LDA flag,X" w( V5 \# A: f
- AND ora_data,Y& X6 E/ V, j! m5 r) z# H
- BNE flag_and, k) i8 y0 \# P5 x& K' }/ o
- flag_ora:6 ]8 ~) V( w. `4 o* p
- LDA flag,X
8 b$ z2 H4 @9 V# H# ?7 m! y - ORA ora_data,Y
# P1 _4 g. O) {" e. z0 p - STA flag,X
9 y, V/ i. R& W" \ - BNE count_Y_cmp' I- ^: A! N' g- a r/ H& z
- flag_and:1 b" r( g& |# _ A
- LDA flag,X
8 W6 k# L! ?. r; u7 \ - AND and_data,Y
! {7 ~6 O: F6 K3 s - STA flag,X! _4 z0 v. K! h0 q8 N
- count_Y_cmp:
4 k6 V( t/ g6 B" x9 ?3 @' h - INY
" E; v7 J$ X& Q" ?; w - CPY #$08, _# q. p4 V0 K8 c
- BCC button_cmp5 \- R& ?1 Y* @/ D* [0 c: x' Z( Q" j
-
$ e4 p6 J" y4 D4 t - data_extract:( G8 ~% f9 t0 v" Z# q
- PLA
3 Q( t! }4 ?! s8 f- a - TAY
5 {+ ~6 P; M; } - PLA
' l- [/ W. Z, A - TAX
- r" K% P: N# |1 O$ }5 W - PLA7 Q. I! o) x- V6 D" ^
- " m6 x i, `6 g5 j4 A6 Y2 {) F
- return:
1 J; d3 k: O, e2 q; @ - RTS! n% w$ y+ R4 ]6 ?
- " @9 B W$ _6 V+ Z+ R, B; W
- 5 r' [' Z8 x% i$ t# `
- INV: ;无敌& D, J `2 Q) Q" ]) [7 ?' I n
- LDA $6000,X7 |' n- s/ B- I( [5 W6 D
- AND #$089 r- h9 n, l# t- t& Y' F
- BEQ INV_RTS& U, ]% y: m, A1 o* P( n* r
- LDA #$05" K% I$ V3 j; n! o4 N- s
- STA $04FF,X7 Q6 R6 _5 t0 w3 Z# D Q( o- H
- INV_RTS:/ \; }1 O# u) N0 u' s
- RTS
! s+ h: B( G1 x4 P
" G# i! {$ e K( `- |- ( ? t- K, }+ d2 e- X8 ?
- LIFE: ;生命) q* j. M R1 I: K; M2 V
- LDA $6000,X; h* K! t* |5 m( W6 a# ~
- AND #$04
, s [* O+ ]) R% C5 Y- \# @" h - BEQ LIFE_RTS
4 L; c6 ^6 ^8 {! p# v - LDA #$097 R" t* {; C, W h! Q
- STA $6A,X- V6 I2 j, x# `
- LIFE_RTS:- f" f# p0 ?2 |% T6 z
- RTS
( j( X3 l$ c l
2 s; ~: A, }! ~-
1 J" @( u& \& o* V- M( `+ P - BLOOD: ;血量
* V& L7 f! r/ f' n - LDA $6000,X
8 j1 u6 w( |4 {# { - AND #$01
% z1 O- c, v, ~ V - BEQ BLOOD_RTS
H& M: l. @; z4 N1 v - LDA #$7F
% j+ l0 {" n1 a q; k1 G; h+ | - STA $04F1,X! E! H; B& u& l
- BLOOD_RTS:
9 U3 }, d4 P9 h5 c& q3 F& p8 N - RTS2 o( r2 k) x: G9 \
- 1 F' K1 b. \8 M! H# U' G
- " y# f9 w! F! R6 U c( G" F
- , K) I+ L B9 d* Q
- $ R: j7 I0 s) @/ O. }5 q# V
- .ORG $D29F6 v$ {8 |9 Q: ^" `, {* o9 C
- JSR $FF80
" t2 L! D( v% C! J$ O( g -
% T* k' a8 M" O8 B& l - .ORG $FF80, U! l s" E+ A/ n' E
- KILLBOSS_BY_ONE ;BOSS一击必杀
* F3 Y9 _7 `" F3 f5 T0 _ - STA $0628
4 S8 p; ~2 G& n - PHA/ q# {& C( \& Z
- LDA $6000/ Q' l/ U2 c# M& B1 |' U
- AND #$40
; ~2 h c Y0 A3 B - BEQ ADDRFF8E! g I( k7 s1 B7 Q
- PLA
) q0 c- [' ^) o# V" y! h - CLC ;敌方死亡状态判定
- h! u; T A4 B- K+ I - RTS' g' `& A7 T1 G( _# o, P% J7 G
- ADDRFF8E:" @# \/ Y1 b7 P
- PLA
9 G$ ?2 _8 L# W' j - RTS' ]9 a4 O9 P- p8 y3 S
- 2 s M3 Z4 v! ]
3 M8 _9 x7 p+ Y9 f0 F- .ORG $D1518 R& V' C' m8 O, m
- JMP $FFA09 e" g0 J( }" h3 m
-
8 }& e7 W! @5 x1 k7 D5 _ - .ORG $FFA04 d+ P" y1 H" n2 M) O
- KILL_BY_ONE: ;杂兵一击必杀
: T% {/ P" ^, W6 b - STA $0621,X
3 ^: w+ O$ V( P- l, M& b" a - LDA $6000 `: [; I6 ^) r( _
- AND #$40
1 T4 s/ n3 c6 _; W9 h - BEQ ADDRFFAD" ^) V" X; b1 {7 \' Q% T* r
- JMP $D19A ;敌方死亡程序跳转
5 P) R' b& E1 a% l1 { - ADDRFFAD:+ D9 R: v2 @. A1 B+ U
- JMP $D154$ Z: e4 ?! n2 I Q, c: Q8 Q
- - u% h( _) k8 j) L4 I! V9 K
- % M/ P- d+ K, G j( k0 I) T( `( g! ?
- .ORG $A7F6+ y& W8 {# \! Q1 C
- JSR $FFB0+ `4 u% J3 j& w i
- + Y0 Y* ]) m' @3 y
- .ORG $FFB0 ;全屏攻击# K7 S% l; q$ v/ n% \# `
- PHA
0 D- P. q* h2 k& v+ a" C - LDA $6000$ L7 c5 i0 k' d: ^
- AND #$806 W9 b2 K$ L5 r. g
- BNE ADDRFFBD
$ P& y! K8 N: Q" x - PLA" ?# c/ C- _4 H3 b( p# T. U
- LDA $00157 r, ^- [0 T& e5 t0 }
- SEC
+ x& s7 v2 G1 u/ B4 q% ^. ~1 y - RTS
1 E" n# G! j$ D' w: v" r - ADDRFFBD:6 J0 t( |: `8 t/ ?' \# c
- PLA
4 [9 Q) j8 E, k* A K* H6 u& _0 A0 M8 h - JMP $A826
/ @" o5 r) X# e# t; [ -
* x0 ^* W* M, e* n7 } r, m S7 I( C - 9 ^2 E2 V( E/ M! v2 F) `% c2 I
- ' k. C1 @- ~+ y) ^) A
- .ORG $AA6A! F3 }# Z, ~( y( L- e2 p3 p
- JMP $FFD0
7 c$ I. g* p" I& q1 q/ Y) ^- z - 9 b, f K+ p0 H2 H# \5 ^4 s0 D' g
- .ORG $FFD0 ;敌兵动作忽略1 F+ `9 C* s* ^$ n& ^* b+ V
- PHA
3 v% X ?0 ~* b! K4 |: b1 S* q3 S - LDA $6000
) ?$ \( W9 o. D3 K - AND #$80+ z6 Y$ T4 G& J& L( i
- BEQ ADDRFFDC$ A4 t! A' B! Q6 y% D+ a/ I
- PLA
$ y' W! z5 B* ?4 d2 x - JMP $AA72
T$ ?/ x2 D$ e7 E {0 a# q! F5 o - ADDRFFDC:. E5 \( L0 X1 v2 c7 y
- PLA
. s& V* v+ v0 n& | - LDA $0629,X
4 T+ @- o, T0 h4 O, Y p - JMP $AA6D
, L7 M# \4 \/ D# G0 ]
]# G* ~6 A! x0 w1 |! O- ;[FC][忍者神龟3代标题选关程序]0 L% e L+ v! G5 H) o! C
- ;作者:FlameCyclone 2017.4.1
6 A, y0 C8 ?. i8 ?7 Q) N
. U* i b+ @' X" v) u
- [( O- }( K# x! _' x' N# B- ;配置数据+ f7 D/ m) N4 H/ t* K6 O, z
- KEY_ADDR = $F8 ;按键地址4 X$ c* X5 Z- ^0 D. L& |5 k
- STAGE_TEMP = $6010 ;关卡临时地址4 e" Z/ m( Q# @5 [3 G# }
- STAGE_MAX = $0E ;最大关卡数+ c9 ?& [3 F- r
- TITLE_A = $20 ;标题条件A
7 \1 w# L- J5 s" _) i: i, Z# a5 L - TITLE_A_ON = $02 ;标题条件A有效状态判定
, ]9 u3 E/ z+ \ - TITLE_B = $21 ;标题条件B
8 K8 N6 P. U: O8 u - TITLE_B_ON = $03 ;标题条件B有效状态判定
% j0 w: g2 v4 u( W - PPU_END = $FF ;PPU结束符
0 F7 k: a% ~# A - TIME_LAY = $4A ;标题显示延时地址
5 \' J4 b l9 T- i( a% R, k# r - BUTTON_DEC = $42 ;关卡减少按键 F' |9 w& n6 p+ M- i) x+ Q0 X* C
- BUTTON_INC = $81 ;关卡增加按键7 s7 F( M6 y, p2 n/ s3 }6 X; q
- NUMBER_A = $06 ;数字A距离STAGE偏移量3 N5 g( O* A1 P( z( Q* r
- NUMBER_B = $08 ;数字B距离STAGE偏移量
7 g5 { K! V+ P# w) [ - PPU_ADDR_H = $23 ;STAGE写入地址高位6 u! {4 o! A+ J$ ]1 Q2 ?. v
- PPU_ADDR_L = $8C ;STAGE写入地址低位
1 `* I/ ~' d3 p+ n - CHAR_S = $A2 ;字符'S'% K. F( K; [: V' O
- CHAR_T = $A3 ;字符'T'# o; d" y5 A [- {# B0 B
- CHAR_A = $90 ;字符'A'6 ^' P! T: @0 ]5 N9 [
- CHAR_G = $96 ;字符'G'# I6 _+ o1 p$ ~# i7 ?1 R
- CHAR_E = $94 ;字符'E'
n3 e( m- j) d$ E6 u5 c - CHAR_SPA = $00 ;字符空格
& z8 e' |$ H5 I* t( l+ w1 y5 E) e# { - CHAR_LIN = $AE ;字符'-'
% U6 ~- p: F6 w1 \/ Q5 ? - CHAR_O = $9E ;字符'o'
. A2 L3 v, Y {& y) u* _, \ - NUM_1 = $81 ;数字'1'
: w. ]0 {) |6 l9 w - NUM_2 = $82 ;数字'2'
7 h8 H0 Q* S2 x6 D, x3 r& f - NUM_3 = $83 ;数字'3'2 q8 C- i, i2 i/ Q
- NUM_4 = $84 ;数字'4'; b% n5 M3 C/ N6 U5 Z$ N' m
- NUM_5 = $85 ;数字'5'
G2 Z3 E7 D9 I# L3 A& X* \ - NUM_6 = $86 ;数字'6'* q2 c- k+ i: O# x7 r+ x0 ^
- NUM_7 = $87 ;数字'7'3 `/ r9 U4 m5 h, Y
- NUM_8 = $88 ;数字'8'7 y: ^, U2 W( c$ o: {% v
- NUM_9 = $89 ;数字'9': k) B# @2 J2 {/ y; b
- NUM_0 = $80 ;数字'0'$ e& p2 E; k& O' [3 x' u' i7 s
- 9 W$ ?, Q+ W' l/ k% v
- .ORG $F82A
+ B) A x ]* Z9 h - JSR $E700; n3 ~2 Z7 F. z2 K2 d, o H
- ; B2 K: v% m! Z
-
7 E+ e- P4 @0 w1 ^ - .ORG $E7006 J: ~! E. D; C" b
- ( g3 E9 m! l0 Z2 {- j$ @: o
- STY $4014 ;补上覆盖的精灵写入指令
4 ?# p. _* K1 [$ Q" @9 l - PROTECT_DATA: ;数据保护; m$ Y* u, d1 ?0 r$ u n
- PHA ;数据保护开始) n) G# g" { ~8 E# |/ e& Y6 {: `
- TXA# j# G o% x; z- Z1 w$ d0 N
- PHA6 L9 U4 p# j" o; b
- TYA; z2 Q. l8 n) b/ p* M
- PHA ;数据保护结束
7 R) {2 Q7 C; m0 `% M/ z/ x - LDA TITLE_A
6 F6 I- `) N- i - CMP #TITLE_A_ON ;比较是否为标题画面
4 w, Z" F# N# r+ M5 u) ~/ M0 B - BNE RET
! O z% h |9 w" _; N+ P) t7 Q8 X - LDA TITLE_B
' n, v! G" u4 X! ?. Z$ s+ L) C - CMP #TITLE_B_ON ;比较是否为标题画面! M9 \ y. B; [9 y" m' ?0 H
- BEQ PPU_STAGE
9 S0 I; |* z4 |5 Q1 o - RET: ;恢复数据
* Y9 l& r/ n9 }2 h* U, ] - PLA ;恢复数据开始
" f1 x. J5 x3 A" t. Q# [8 M! X3 G - TAY
8 u8 h& ]0 l- T, y. N - PLA
& \" I3 ~: V4 V# p - TAX6 {# s" z2 h$ z$ r
- PLA ;恢复数据结束) k; ~- W6 ] I
- RTS ;返回
5 w: y6 }! c9 h3 T3 V' \$ [0 [ - PPU_STAGE: ;字符STAGE写入程序: y$ B2 @* b5 M. W7 R
- LDA #PPU_ADDR_H
: |2 u2 Y0 y& O! I - STA $2006 ;设置PPU字符写入高位地址
8 m% x" i+ A. V, T% R! d - LDA #PPU_ADDR_L8 W: h) b0 `: D9 J
- STA $2006 ;设置PPU字符写入低位地址
7 s- I5 g7 B$ m# c6 H6 t - LDX #$00 e* |8 |9 m& V) J
- PPU_STAGE_WROTE: ;写入STAGE字模
9 @/ e1 _# Y. V% U4 _3 q - LDA STAGE_DATA,X
- f" D- e+ E3 t; m0 ^3 ?5 W/ { - CMP #PPU_END ;判断是否写入结束
r9 _: c7 }: E) v - BEQ STAGE_CMP
( V/ O/ J" _7 Q* H% w: { - STA $2007
, }5 D* ^# |3 o - INX
8 o" _ b& `# M - BCC PPU_STAGE_WROTE/ g$ s$ t3 E8 Y1 P/ ]3 O
- STAGE_CMP: ;选关操作& w2 a Y4 v" t/ A0 n7 }
- LDA STAGE_TEMP `& H+ s* Q9 d
- CMP #$FF ;关卡数据初始化条件判断- e6 V9 X" d7 L8 n T" m
- BNE KEY_B
, x7 Z; F0 F0 S2 D& A% e+ v - LDA #$00$ ~ o+ ?+ e, n; o* d
- STA STAGE_TEMP ;关卡数据初始化8 t* }0 Z9 [, D. T2 ^1 \' x+ M. T
- KEY_B: ;关卡减少
# O+ p) t0 |7 z- e9 B, L5 |# K - LDA KEY_ADDR
' o2 s% e0 E) |$ G2 ]5 H3 ?3 f - AND #BUTTON_DEC ;按键B或左减关( P" A) J8 G" L& Z* v$ p7 X
- BEQ KEY_A+ W: R9 k: K2 G
- LDA #$FF \. R3 Z2 N4 q: W( t- j
- STA TIME_LAY ;重设标题延时 L/ ]; L* ^8 W5 L9 T
- LDA STAGE_TEMP5 x; k6 P5 M1 d! V
- CMP #$00 ;关卡比较9 f( @3 V/ [7 {$ k5 _3 B
- BEQ KEY_A
1 ?& F H! w( Y - DEC STAGE_TEMP ;减关
]: A; |: x/ \( I - JSR MUSIC ;按键音效& k3 X8 T; t. @) c! W) O+ }# k
- KEY_A: ;关卡增加
1 N7 U& D4 _, k S) o M9 ^3 K0 F - LDA KEY_ADDR! p" f5 W/ \9 x- R
- AND #BUTTON_INC ;按键A或右加关+ V$ M. e6 R) N8 H1 O7 \
- BEQ PPU_NUM_WRITE( x5 A- M5 X( A& n
- LDA #$FF9 J' r' M6 w* Q3 b( R
- STA TIME_LAY ;重设标题延时
7 y) r4 ~8 {# X8 ?% Y# s - LDA STAGE_TEMP }( y/ x9 E. |0 Z" p# H
- CMP #STAGE_MAX ;关卡比较
. d6 |6 k( Y. [( M( k5 a+ z/ g - BEQ PPU_NUM_WRITE
( T) k4 E7 m) x1 b5 N0 N - INC STAGE_TEMP ;加关
2 O# V. y3 }7 ?& x% K - JSR MUSIC ;按键音效
- t% T' M+ u6 S+ Q7 v% F - PPU_NUM_WRITE: ;关卡数字写入地址) q3 R( f% i8 V5 c
- LDA #PPU_ADDR_H
3 q* {- @; y& K+ A. Y* C! f% O$ ^- f - STA $2006 ;设置PPU数字写入高位地址" ^) x2 ^- e9 ~( I: A1 T# T1 N
- LDA #PPU_ADDR_L9 ~. E; x5 t% E3 d7 h( X
- CLC3 r; v( c/ S/ [8 E* ~, i; [: }
- ADC #NUMBER_A
( F' W. P w2 j( E - STA $2006 ;设置PPU字符写入低位地址
3 C$ D3 S' k! B; j3 _9 w W - LDA STAGE_TEMP" u5 a5 a( `# g( {! ^
- TAX- p) X# H0 W1 n6 J5 L
- LDA STAGE_D1,X ;写入数字6 [ I! l" h4 C5 D+ ?
- STA $2007
- N$ |# F$ S- W7 } x - LDA #PPU_ADDR_H2 V c2 |' g5 k1 l6 M; Q1 Z
- STA $2006 ;设置PPU数字写入高位地址# U. o( x( r" O6 t3 e `
- LDA #PPU_ADDR_L, I2 }+ H; I( u I' e7 S6 {
- CLC$ X) L$ l. x$ {# ?, |
- ADC #NUMBER_B5 f+ \+ p% U D9 N8 \0 T
- STA $2006 ;设置PPU字符写入低位地址
7 {0 U% x0 e" q& i - LDA STAGE_TEMP0 b- |1 k3 t4 ^6 L+ Q. u
- TAX6 Q: ^+ O' \' [8 u+ O- Y" F
- LDA STAGE_D2,X ;写入数字1 A% y& `/ Y7 ~' h
- STA $2007: |7 v5 ~- ]( X' B. u" q2 G
- STAHE_WRITE:8 q. T4 p" n @4 [9 A/ c7 z
- LDA STAGE_TEMP0 N# P( m. ~, R2 y+ j. \8 U8 X: x
- STA $2D ;初始关卡写入
0 _) c7 O5 g; `8 ^ - PPU_RTS: ;恢复数据/ j8 ?( t2 h/ R, h4 L: ^4 ?
- PLA# ]. C7 @6 W% f# C. Q
- TAY0 D4 b) k$ h9 c w
- PLA+ @/ N/ {) O9 q0 F1 |" Q0 @% c. i
- TAX- z: A1 S6 `& N, U/ }( }1 H& N2 d
- PLA
( y' D! j* t* t$ b+ c" C; I - RTS
* g$ f( b$ j, N2 A: N0 D - ( C( ? G6 {; O% K2 Q/ J
- STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据' V2 O! W/ J7 @2 |2 W7 Y
- .BYTE CHAR_S,CHAR_T,CHAR_A,CHAR_G,CHAR_E,CHAR_SPA,CHAR_SPA,CHAR_LIN,CHAR_SPA,CHAR_SPA,PPU_END; J! J, z2 I9 z1 V4 B
- 3 l# T% d, s, i* k4 H2 h, m6 @
- STAGE_D1: ;关卡数字7 z, x2 P4 s5 g& g7 Q1 n- v9 r( H: i
- .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_86 W: t3 g t& P+ W& v" b- \- R
- 7 U: ^0 ?) F- P' D3 i# L6 L2 U
- STAGE_D2: ;场景数字
, @- M) r! T( @* a. ?( p/ } T. R$ q - .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
4 k7 q) Y, f& R0 l, R -
# m) j, Z6 X/ B8 K - 3 ?: C* p2 ]. Z
- MUSIC: ;按键音效; l$ ]3 J5 f. i7 ]: e/ S9 s4 G
- LDA #$3B ;音乐号
9 ]: y$ e" e/ ^3 f( j, I - JSR $919E ;系统音乐调用& |- W, M8 q8 c% Q
- RTS
复制代码 4.无敌锁定: 暂停后,按上键切换;/ F. j y3 _3 c8 Q9 A! e0 E$ s9 D# d
5.生命加满: 暂停后,按下键切换;
& s: U; v8 g7 n6 y 6.血量锁满: 暂停后,按右键切换;
X. u- R3 T6 g" m9 K , s9 X0 w5 k( P2 x; k: ~
6 B* n, H0 o# s
( H; W) c ]. q- g
, {" d! b+ I8 d6 K
- S6 v' w8 e. D
FlameCyclone.ys168.com& e, M6 a x2 [* P- t8 T
www.nesbbs.com; u7 i" ]" G; F3 h# F Z
9 l) i/ A" z: i( R6 h) q/ C
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
1
查看全部评分
-
|