|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑
@% w& S) S O2 v. T" I( R- e/ T- F$ }( Q R
[FC][最终任务][END选关]
% j7 J, }" G0 E/ Z6 l
- V5 |# B! x6 v) S! i7 I o, a时间:2017.3.29
8 L$ |( N6 q: u1 t作者:FlameCyclone
3 K7 ~1 a! L4 {内容:
5 F6 Q& z+ u! o, ]+ c" Z 1.关卡选择: 标题时,左或B减,右或A加(1-5关);, _8 W5 S6 v4 V
2.无敌锁定: 暂停后,按上键切换;
/ L& P0 l# C1 S+ |) q- l 3.生命加满: 暂停后,按下键切换;
) ^9 R( G$ P4 [& N9 u5 C9 E6 Y) Y! z 4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);
3 j! G1 b1 I( v 5.子弹切换: 非暂停,选择键切换(普通,W,L,B);' C# _2 Y" E+ A& c! L* G
6.B弹数量: 暂停后,按A键切换(1个或2个);: _) f" i$ A; {# G5 B: e
7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;9 d9 D p& v7 i6 \% P! W" ]
7 t) Y$ T3 g+ K i5 l% \
& I; m) j: A& E r$ l/ ?6 ?
5 h4 H4 a% C" C" s. h& r! K1 q' T5 Y! ~. [
C0 c# l# Q, S
8 u, A; v/ Y2 Z, s
0 O, _2 ^6 G5 L4 G; E' |# _9 x, FFlameCyclone.ys168.com8 K2 g5 e' u9 I1 v! ?
www.nesbbs.com- ;[FC][最终任务KEY][END]
' V- r* [8 M2 V3 k - button = $04 ;单次按键
& c+ H' b# r+ ? - flag = $6000 ;功能开关标志
& U+ F6 F/ P, S3 |" G9 S& j8 J& ~ - pause = $000E ;暂停地址
% m4 \+ r% S2 S - - J% Y9 V/ t; N/ `$ i
- .ORG $8000/ m% Y, M( L% P# c
- LDY #$08 ;自带的按键程序( Q. b; X7 q, Q* _
- ADDR8002:
" O: D! r0 H; m' o O8 ~ - LDA $4016,X
. L2 Y4 O) x' b+ E } - LSR
; m6 k/ Q+ t9 B - ROL $0021
' s) T! M1 G2 f' G - LSR
" {/ Q9 t _- F4 c - ROL $0029
1 N: ?& ^8 U/ F/ R# Y - DEY+ u3 @) E K5 c3 X
- BNE $8002+ C4 @/ ]: a' g0 W4 V0 m. d
- LDA $0021: P+ Z8 F/ f+ X& M' \
- ORA $00296 a4 i+ J, m2 p& U
- STA $0021# F% B* U* m* Y& k; F2 [
- LDA $0020
* l+ P' r# \& ?, `9 \5 U4 k: C - AND $0021, |/ p& c! O! F* I9 g ~. y; q
- STA $0020
6 |9 S8 b: x, x- i7 P- F; @ - LDA $06,X( N7 E$ `# Q: f6 d" F
- EOR $0020
G k- r+ \. A4 Y+ Q - AND $00204 r" d* k+ D- G& V8 S
- STA $04,X. D6 R3 l5 F: M1 f; p; y; @
- LDA $0020
- _* _( g# i( f; s! Y' m% s - STA $06,X* f, S7 j2 c. G) A
- JSR KEY_OPERATE
3 |5 ^; `$ M# S& B0 l - JSR Function ;功能调用
$ s: S7 s* E$ h - JSR Weapon ;武器切换调用! U' S: r. t+ Z) r, B T
- JSR Power ;威力调用1 O, X! n3 C% {2 N- ^! R+ M( `
- JSR BULLET_NUM ;子弹数目 \. C. ] O& d8 @& k, p( K: T
- JSR BULLET ;副武器类型! d% ~! P3 v x0 _% W- n: [
- RTS
3 j+ J' Q- a% b, d$ }4 { - 4 b0 K: C+ Y( I$ D6 B
-
4 b' b: u; y- J t' E* F
1 L+ k4 S# D/ P( p- .ORG $8050
9 Q9 ] o1 t8 k9 ~ - Function: ;功能
! e# [* G9 o. _) T7 _8 y. k - WUDI: ;无敌
6 j" w& T+ X- O! M( L - LDA $6000,X$ ^9 ~0 W* P" o4 n1 T6 ~
- AND #$08 ;开关判断
7 [, G3 A% x4 @' W h1 U2 s f9 ` - BEQ LIFE0 k+ R$ ^$ x( ]7 v- G- T: A
- LDA #$05
1 H0 ]; k% Q, K - STA $05DC,X ;无敌锁定8 K6 j/ D3 w5 k: [9 W6 B9 K
- LIFE: ;生命6 {/ w8 ]8 i- h
- LDA $6000,X% I2 T' H2 H4 U/ {% T Z* C
- AND #$04 ;开关判断2 `. ~3 {# ~0 N9 T
- BEQ FUNRTS: E1 t+ o- p2 P2 s
- LDA #$05. |$ Y, K5 |6 `$ c% ~
- STA $1C,X ;生命赋值
2 U& l/ J! r- j w8 `5 p - FUNRTS:
/ Q9 [6 w) q- d2 K - RTS
, B* U) D: ]4 e- L -
; U. U+ E' G' I4 d - Weapon: ;武器切换: A+ ]( \/ ~! j% a
- LDA pause ;暂停状态判断
$ O2 \ t1 _) A) `, D& m$ n - BNE WEARTS+ S- }* A* B' ^ J# k. A! ^
- LDA $04,X
! r: z# K7 y( l - CMP #$20 ;选择键判断; \* u5 q) l2 W
- BNE WEARTS
( K( T$ L( Q9 Q$ ~5 M - LDA $12,X7 i8 t. S. v# V t: o
- CMP #$03 ;武器值判断) g# V& q$ O0 w- p2 n$ s9 q' O
- BCC WEAINC7 M" f! E* h+ [: I" G) @
- LDA #$FF
. r1 K6 k" l& U* r/ k - STA $12,X ;武器重置* v/ j) z0 L9 U( r
- WEAINC:
' b3 Q( r* n1 o/ b - INC $12,X ;武器增加4 L6 a% O" L* i t7 O
-
1 m1 K6 r& T4 Y - WEARTS:
1 w1 \1 T& |$ @+ B* n3 g - RTS
. U, O3 [& c% D, _. D( k \( ^/ Q -
5 @0 ], m: q. N% s - Power: ;威力
7 H! T3 D. ?, h7 q - LDA pause ;暂停状态判断
- W2 R6 R8 s2 V0 t# @8 @ - BEQ SPERTS
# p* R+ { y! U8 Q" o2 V% k/ F - BUT_LEFT:; ?0 u3 a/ k9 o' \# {' v" c" j. {, Q
- LDA $04,X; n: Z4 B3 h6 s9 L
- CMP #$02 ;左按键判断
0 v8 D3 ~/ K2 v7 d9 i! K9 { - BNE BUT_RIGHT7 ]4 X( O& G- Q; o
- LDA $88,X
E$ {4 k4 e8 R4 H. M1 \( k - CMP #$00 ;威力判断
$ v5 }4 U- Z; d- d. {; o - BEQ SPERTS: n) `6 K; c' M* E8 z
- SPEDEC
$ y9 o9 L$ Q; @+ u0 M, j - LDA $88,X ;读取武器值
5 m: n& l' i* Z) m$ I$ j. f- D3 s% X - SEC1 f# D& H* B Y% e! ]
- SBC #$083 j6 y0 E- B+ p }& k* V1 T
- STA $88,X ;威力减小( t. ^( u J: Q+ ~
- BUT_RIGHT:
3 w) l8 k$ C/ `8 b) z8 g - LDA $04,X8 c, \* a3 L# y! Z2 {: j4 d) O
- CMP #$01 ;右按键判断
' s" R: D! t/ U& J5 ?& Y% L - BNE SPERTS
8 p/ C3 R. m# i% E - LDA $88,X k7 [0 h3 V' A& `4 w' b. f j
- CMP #$10 ;威力判断
; b$ ?& V' R: _: d - BEQ SPERTS8 w; C2 P0 n0 L6 {; p. c
- SPEINC:
4 \; S+ Y. U: l# E) @4 R v/ m - LDA $88,X ;读取武器值
, a) U& ]$ B! [2 u - CLC
0 q1 I8 L8 \: ?4 R; A; V; V, ~ - ADC #$086 S+ b3 [/ L* W+ L& V5 v7 {
- STA $88,X ;威力增大1 F; L0 |8 \! I" w
- " L, t( g: L; E, M L
- SPERTS:
. g B/ i$ E/ A, Y+ S& W/ i - RTS/ z1 ~8 c& d: U& M$ l) h4 h4 t
- ) P6 g3 }$ f, R" n
- BULLET_NUM: ;子弹数目+ X; P5 u& b# r- N$ g) |
- LDA pause ;暂停状态判断
! h. f4 x1 C: y; z2 V - BEQ BULRTS
9 E: z* p+ }& A3 W- z3 n - CPX #$00 ;主机玩家判断) E4 j% n4 \4 v6 _- I: Y# D9 A
- BNE BULRTS! H; S3 e- n3 b* ?" F
- LDA $04,X ;主机玩家判断
8 C+ b# t( h f$ W - AND #$80 ;按键A比较7 p B7 }+ o3 ^4 f8 F& a
- BEQ BULRTS
/ X5 ^/ Y: X# Y- n: l# O - LDA $87 ;状态判断
7 x% w8 j7 ]; P2 f& X+ E- \0 G+ ` - BEQ BUL_28 @# I' q) w, z
- BUL_1:/ U( u# ~/ j, L+ e, j' w* E$ H
- LDA #$00% U9 G) a, U* p8 c P2 b
- STA $87 ;1发子弹* Q4 l* K) E. G
- BEQ BULRTS
7 z/ s2 F( W+ N, H6 Z) J0 C - BUL_2:
6 [" Y3 E2 j$ I( L1 Y5 f( m8 V - LDA #$01* ?5 U5 P; u8 u0 Z! l P
- STA $87 ;2发子弹
8 X5 `: g; a- W* d5 n - 3 g2 E+ u+ {( T; e
- BULRTS:. A* C, o$ `, [1 S& Q( @# m
- RTS
$ }0 i4 g" E$ ^7 r - $ P2 c# z V# D: d' `2 z0 r# I5 A3 V
- 3 h3 P, ~! }( s0 J1 `1 w; S* P
- BULLET:, x$ [' k" J: v p8 Q6 F
- LDA pause ;判断暂停状态
$ a5 k) n+ }2 q+ Y - BEQ BULLETRTS% G( E) h' C& U# o/ ?! {7 y! n
- LDA $04,X4 T6 ^4 Q8 r W8 y7 Q9 N y! O
- CMP #$40 ;按键B比较
5 m* x9 ~1 V+ ~# g4 G - BNE BULLETRTS( g) G- L i/ w! G8 D7 L- P
- LDA $6002,X ;读取副武器
& r* R. N& b# j! s: S1 w - CMP #$03) A' J c' n4 C) E1 V# u! u( Y
- BCC BULLETADD
* E) c& A! [/ ? - LDA #$FF! X9 B! q7 c& k+ w" h
- STA $6002,X
( Z6 |" M, k/ ^7 x& H# r7 M - BULLETADD:1 @) B5 l: I5 O) K0 K, ^
- INC $6002,X( u! d' d. J% l: o8 ~5 k8 O
-
2 g2 {; F, v( P+ x4 b- u. T - BULLETRTS:
3 a' Z* a7 c' l; p1 H - LDA $6002,X
4 d) n8 f$ d. A - TAY# h) C2 c5 ]- ?% l1 q
- LDA BULLET_DATA,Y/ g3 D1 m, C, F& N6 a# j+ g2 C x
- STA $6004,X ;写入副武器数据$ t. k6 A. ^0 G# v4 O( S0 O! X5 ?
- RTS
6 L2 [1 H. m6 s - ; X& n! _, H' \* E' |6 z
- 3 k8 z/ J" O2 d. L) R
- BULLET_DATA: w: l# Y) S# v% `
- .BYTE $06,$02,$03,$049 ?* ^5 T( X$ D) n# |
- 1 l! ]6 c1 V! @- r6 ^" i$ ^
- Y2 T" ]" O6 G& P/ n2 [
- " {$ O0 K* ]1 O% `
- KEY_OPERATE: ;按键开关操作
' Z$ k4 Z- `1 k& X5 X - data_protect: ;数据保护7 O/ K8 k' x/ z- V# {
- PHA
: m" r5 Z6 x0 j: c; n! t2 a1 u6 [. y - TXA
$ @ M, u `+ T1 s: v6 B - PHA9 H4 |8 ]4 S* E( p' A
- TYA
7 A3 h; y3 A+ D - PHA/ v& x! m9 R. p4 s# J& N0 Q
- 0 ]: r- j& o- U5 @" j E: m* `$ u2 Y
- FLAG_INI: ;开关标志初始化
$ {; [$ G) v. e% s4 X - 8 p' k0 B1 ^! ~% O$ w8 Y4 @
- LDA $600F3 k4 B0 U# {3 o7 _, w5 X$ }4 j
- CMP #$01
. a$ ^ E$ C( D. y- `" k - BEQ pause_cmp
0 K. G* X8 I S4 k& F0 g - LDA #$00
& |. l. z4 y1 R$ E - STA $6000
* n4 |: a+ u! j: ?. t/ @; Y$ m - STA $6001
8 p U, I8 F' l+ b% E9 T" N - STA $6002
* u1 z# e ]( j7 _ - STA $6003" b5 O p# E* H. P/ S
- STA $6004
9 \9 f Z- ]4 e$ o: A - STA $6005
8 p, @$ `; w5 A# W5 c - LDA #$01
8 o' \+ |$ k9 f% L5 T - STA $600F A7 s: ^: T; u' k" b! X9 H3 D
-
. f* b7 T) z# y& ` P# l - pause_cmp: ;判断暂停状态$ f }# G/ U6 B
- LDA pause% a" W6 V. f/ Y) u
- CMP #$01 ;判断暂停状态
' o+ ^& f3 {: q7 V r& `" `/ M" | - BEQ button_press5 H: z- s) k* V+ W# _* d
- PLA( R, N# o1 M; f4 B1 Y% J
- TAY
& h2 P% |: ]. C4 T. K0 c. B6 Q: x - PLA
5 `! O: t: n. Q% o - TAX
8 X- }: X0 {. T - PLA
& ?7 k9 S3 `' u - RTS
# A! h5 d |" a e! [0 c2 m
4 |' D, _+ }' Y {) p4 W8 B- button_press: ;按压操作0 s& ]% ]& Y" A/ t
- ini_Y:* J. u3 K) ^4 s; s) t
- LDY #$00
& L. B W: ?7 X h - button_cmp:% H# T* I/ ]3 o' |3 X0 I/ l
- LDA button,X
. |' R, b6 g" L2 S - CMP ora_data,Y
1 D/ }7 K2 J7 j' Y) k) I9 U* g( i - BNE count_Y_cmp L6 b1 g) w" M: f# n! r Y
- flag_cmp:( m' i( k, r8 f
- LDA flag,X7 Y" }0 G$ K( e& R3 D+ S/ T; Z
- AND ora_data,Y
+ f4 S; r8 }- o |: s- m - BNE flag_and5 a( x4 C9 a6 C( ]* S
- flag_ora:+ A4 u! }4 m4 X, I9 {5 e' q
- LDA flag,X0 V3 I& q: j8 y8 |7 Q# W1 r
- ORA ora_data,Y Y& z) o0 M" i1 }7 ^: b
- STA flag,X
% T( W& p: [2 E( y - BNE count_Y_cmp9 u6 u" a7 {) b, k1 J
- flag_and:
( B4 v$ p7 a, ]. K2 l - LDA flag,X
; K9 o# |4 f" y) E! N4 R - AND and_data,Y
2 h- a- \5 @# A7 }' g+ V; i - STA flag,X! Q0 D* V* c3 M/ ~
- count_Y_cmp:9 H! k: F3 h/ X) ^9 e
- INY
! E" @0 M: U7 s5 M - CPY #$08
: | ]0 A$ } n0 b# ]+ G' j - BCC button_cmp+ F: E2 ^& }% m2 |$ ?4 Y: P2 K( B$ a
-
: k$ Y! z4 B# ] - data_extract: ;数据恢复
8 P' O; F: w9 z& e/ L. X - PLA
% q- F$ d! d% d$ m. x7 a - TAY
% q- ^ ]; ^$ `, c T4 i - PLA# T9 J, m7 C4 |$ ^4 r
- TAX
8 T0 S% f7 ]) z( A# ]# z - PLA! {3 C7 T' j" I. |1 m
-
- V& Z* q! I; l. ~1 z$ ?/ \ - return:
% Q3 a3 v7 ?/ w' O# F - RTS
+ c, N P- y9 W% t6 S - ) r% @' o4 c f, G0 z1 c' D
- ora_data: ;按键相或数据
8 N3 E7 |8 X$ A% H - .BYTE $08,$04,$02,$01,$80,$40,$20,$10, Q: P V- j$ H# Q
- and_data: ;按键相与数据
+ i' I5 D" a+ v7 P$ r" f/ r8 i - .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF1 c) K% z% Q* Y% a0 O; q8 C0 c# O' \
- 8 W% M5 a/ k8 O
- % B! U8 ]* Z) U% Q
-
+ {3 K! _' o# W0 h5 ] } -
1 R5 H2 O: v- { -
5 j2 p$ A4 _' v. Q' m6 {- x5 A) {( ] -
1 @8 X0 |. r0 q! N! \; m - ; i0 g9 O) e# o1 H o0 y; p7 E
- & k, m) w( w4 ]: {
# M/ N* N$ m" P% H! L' o- .ORG $C264 ;自定义的MAPPER2切页程序
* \$ x4 I8 h1 i" d - PHA
8 T4 A& ]$ t& Q$ V4 { - TXA
' D' W+ `0 J/ _9 e, t% ?: _ - PHA, B2 `; B$ N: D. }5 _
- LDA $0066. B0 ` @$ \6 Y( m& R/ R
- BNE ADDRC2806 e3 L h0 F/ W; J/ Z
- LDA #$072 ~7 G. F7 E4 O. a
- LDX #$03
* t! ?. l% q' c9 F - JSR $CD9B ;自带的切bank方法; ?0 p7 q: [/ r* K4 M- _) j
- PLA
, @6 M6 M: U2 B1 J) ]+ g - TAX/ n; q3 J5 Z% F0 P
- PLA
: R; w# `; h3 a! n2 g$ V8 a+ n - JSR $8000( t) w% A" v5 k: M2 ^% C+ T
- LDA #$06
# E1 Z+ Y+ F5 o: i1 c - LDX #$03% v8 m" i% l" }$ h0 E3 e2 c
- JSR $CD9B ;切回原该切得bank(可以不用)( o( N6 }8 L; f% S
- RTS! v* T$ H9 e; a3 D/ T
- ADDRC280:8 T' S% h- r- j& k$ Y
- PLA! i5 `1 R# @# K; C; d
- TAX
0 p: G) K# I1 w" @. ?0 ?+ w - PLA& w% {" Q7 `0 U O0 |7 M+ M
- RTS
1 F' Z i8 T# P6 b5 O. M - * E) `- ?( u% }4 k$ [5 C/ B. Y
- ; I3 @# O3 t* l% M. u: F( C+ X
- ;[FC][最终任务PPU][END]
6 {! I' u: {) F% c$ H0 W/ c! U7 a - .ORG $C056 ;跳转到PPU重写程序
2 u8 G8 m, m! A/ r; K7 C' q S+ P3 R0 ^ - JSR $7000
5 {+ c# ^* e5 p7 f - + b% m) r) x, T$ O: v
- .ORG $CEBF; ?2 [+ J4 Q" I+ A2 q$ [
- JSR STAGE_DATA_WRITE ;跳转到关卡数据写入- ]: K3 W. r" a5 o; M
-
' |" P* L' n7 Y; s - .ORG $E460& V( o- a( v( T5 l$ N
- JSR BULLET_DATA_WRITE ;跳转到副武器数据写入
4 i' t9 U! |! G' C, `2 K - 6 j9 z: w3 w. q; e
- .ORG $71F0
( X% c0 D t* w1 q, Q* k - STAGE_DATA_WRITE:( @7 V% g" z2 ], d- Q. g5 g
- LDA $6010
3 \/ r p) J3 v! p& A# R9 k - STA $1E ;关卡写入
& J" X2 g" h x0 q - LDA #$00
- W: O# P/ j$ q) w- Z, a2 ^ - RTS9 o' F7 O. E2 b& J" W+ x/ ^
- .ORG $71C0
% b2 S0 h3 W. z6 }6 ?$ d, _/ Y2 ^! \ - BULLET_DATA_WRITE: ;副武器数据写入
! p( ]$ x9 ~, d9 `+ z" w - CPX #$0E3 {; H1 L7 f ~
- BCS P2_BUL
/ B: T) _$ u" ~" x - P1_BUL:- ~( D" T5 h5 Y8 z K, @# A: o
- LDA $6004) `8 [) B8 \, z. h6 O, }
- JSR $D7D0 ;P1副武器数据写入9 L4 ]0 \: D8 T
- RTS( g/ A2 H6 c: p! k7 i0 n' M# @* y' v
- P2_BUL:
* H( v$ k2 ~( c8 i9 b9 t - LDA $6005% p! r% o# K( v2 i2 s
- JSR $D7D0 ;P2副武器数据写入" L5 f: L! y% F1 ^* i+ X
- RTS
4 [6 n2 Q" y, Y3 c
* ~7 N) \8 U/ Z0 a( q! p- 9 X. x. h3 ?) f3 e9 O' P9 U
- .ORG $7000" I! N" h6 L/ W+ P$ i) Z
-
( A- g# J' t) \ - STY $4014 ;补上覆盖的精灵写入指令
8 l$ p% m2 R' z% w2 W! J, z - PHA
$ l4 U% ^! C# x% B" V( D - TXA! \: E! V' ?/ J; T
- PHA
# ~% l) U" |$ Y3 _ - TYA
[7 a- z! k; J - PHA
, K, R( {$ f3 ` - LDA $0C$ j# I2 }- D# l2 {! `
- CMP #$01 ;比较是否为标题画面5 h' o" z) Z l! q( X$ v/ `
- BEQ PPU_STAGE
9 {9 w* a. c M - PLA& D, a2 h6 q9 Q* V2 Z
- TAY
/ u! O7 d9 \; |$ g" Q. p5 g# k - PLA% T" h. I A- e9 M
- TAX; C& Z; Z: U6 B8 `0 T/ }) u8 @
- PLA
4 E* _6 q% M0 Q5 J. D6 d" O - RTS+ o) @4 ^. ]/ ` X6 G& W [; g
- PPU_STAGE: ;STAGE显示程序
) m8 D3 C, U9 ^/ i - LDA PPU_ADDR_DATA+ {8 s% a" M; j; D+ D
- STA $2006
5 i, c2 @8 z% \; g - LDA PPU_ADDR_DATA+16 z2 [8 H4 F' _+ m5 P. v" l
- STA $2006 ;坐标设置/ R" c& p+ v$ G" m
- LDX #$00% B" s. @' M4 |6 A3 b. R# o/ H9 j) A& G
- PPU_STAGE_WROTE: ;写入STAGE字模
) X0 I$ \0 B! ^# l' W - LDA STAGE_DATA,X: g- v) X: I6 a5 i Y! f; F/ t2 z! [
- STA $2007. ^* e$ V- F6 f8 w
- INX
6 H: ]8 _+ o3 ] } - CPX #$06
9 X5 _& N% g. S$ f8 k - BCC PPU_STAGE_WROTE
% D5 _ S; q( j1 J I - LDA $6010
% K/ E6 H! Z( p& y" P. S - CMP #$FF ;关卡数据初始化条件判断0 r% `/ ]% E9 p) t0 H7 B' J
- BNE KEY_B/ Q! `2 I( [& }1 d* x! [
- LDA #$00
3 d0 R2 b0 x r6 ]' O$ T- }% g4 j - STA $6010 ;关卡数据初始化 p4 q4 S% K; \+ m8 Q7 H3 \% g) F6 o
- KEY_B: ;关卡减少
1 T. J$ P* _$ z8 U+ c; c - LDA $04. `2 {4 y5 Y; g' S! s, {2 O
- AND #$42 ;按键B或左减关* {; y4 `% c+ ~* x# Y( ~; _
- BEQ KEY_A
& m& @7 s" g( {5 t5 j& _! c - LDA $6010
3 _- A* V/ \2 C! _8 z& ^ - CMP #$00 ;关卡比较
% W3 e8 @6 j5 |. { - BEQ KEY_A
* T- L7 o: u2 ~ - DEC $6010 ;减关& Q0 W4 {$ M! ~9 p
- KEY_A: ;关卡增加 x. U) F+ e* q$ e6 i9 Z* }9 G
- LDA $04" ^' D" C2 I3 _$ s3 k! N
- AND #$81 ;按键A或右加关 {4 A8 R9 ?% u" Q! g
- BEQ PPU_NUM_WRITE4 C' D: v! Y2 ?! H5 X" n6 ?
- LDA $6010
/ ]& Z6 M0 a$ S$ ?, {8 Z - CMP #$04 ;关卡比较! b, W, q: T# y, T
- BEQ PPU_NUM_WRITE+ y8 j" s6 h7 y0 i
- INC $6010 ;加关6 Y; l! i" D$ I% D. N
- PPU_NUM_WRITE:
3 Q' ]( |) r7 a8 A - LDA $6010# w7 ~& S' [. Y1 b& K8 }
- TAX
& `; H- W& P7 J) k - LDA STAGE_NUM,X ;写入数字
$ t6 Y, p" q+ ?# R7 d/ S - STA $2007
5 E5 H- u5 W1 |. o8 R6 \* o - PPU_RTS:
& D( P7 U. n: r1 i3 c2 C7 E - PLA1 g I# ?2 t5 b. h' y* M
- TAY! f$ i K- P+ k) H/ U# q+ t
- PLA- w% H8 D9 S/ C, |
- TAX. L6 i# u3 k+ N3 Z1 X& B# y8 V
- PLA
: E; }. o# A7 H; X! e. x# y$ a - RTS
8 u i4 x! M( ^( y/ V -
: b* c& s/ b& ]# G0 A/ ^2 Z - # x4 d7 r0 F: @' l- |
- STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据
- |. P4 V& j+ g( P8 e - .BYTE $EC,$ED,$DA,$E0,$DE,00
' q0 M# ^3 Q, L% O% f - STAGE_NUM: ;关卡数字1,2,3,4,5字模数据; Q# c" [9 N' @7 ~3 H
- .BYTE $D1,$D2,$D3,$D4,$D5. \/ A% e; o/ K& l; j! S; M# {
-
. c; O. {; ^& I7 V - PPU_ADDR_DATA:0 p1 }1 `+ r2 o7 O. O
- .BYTE $23,$0C
& T8 e* I. \" K; d - ' |& `" o7 q8 Q% M8 s
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|