|
|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑 % W& E, ?0 H' n l
% j# g1 Q+ B6 r6 X
[FC][最终任务][END选关]: \$ I0 o8 I- W9 X: K7 ?
4 \0 Y3 c& a+ y: e7 J0 y K2 L
时间:2017.3.299 g0 h0 s, U9 ]. A
作者:FlameCyclone
" D# H0 O5 h: f2 b内容:
* D- F V: X: Z& w+ m6 S p 1.关卡选择: 标题时,左或B减,右或A加(1-5关);
2 K# [4 A \& `6 @$ Q 2.无敌锁定: 暂停后,按上键切换;
8 R* {0 H7 Y) O& @+ f0 Y3 G 3.生命加满: 暂停后,按下键切换;/ K. j" ~ c4 g
4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);3 D' c' V4 t" u" Y
5.子弹切换: 非暂停,选择键切换(普通,W,L,B);
+ ~0 V/ S! [0 o/ k 6.B弹数量: 暂停后,按A键切换(1个或2个);1 |8 n9 a( `# S1 ]6 s
7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;
U# a0 q- j2 a4 B& b% {- O/ f4 T# Y+ E8 D% F

4 z# N5 Q' G& Z8 T- [# h8 L3 f ' c% O- M- S; {% M
1 G" x5 Y, x( \* C' ~/ f. I

6 E% @ M( I' c9 U
8 M/ F7 T% e) D" z; Y7 ?& [" D
" d# g: Z- h' z1 p, L$ EFlameCyclone.ys168.com
$ ^, J8 S: {$ N8 i2 u, Gwww.nesbbs.com- ;[FC][最终任务KEY][END]6 Q b* H% O; |. H
- button = $04 ;单次按键
0 W; T- b6 [# W5 |3 ~( p - flag = $6000 ;功能开关标志
8 N$ V+ F% e4 r) T. B# {- _ - pause = $000E ;暂停地址
- @1 x. t4 R8 e" j' i
' e8 G: ]# k- p: X- T3 |+ c( K" C- .ORG $8000
* o! u i L5 E( y# z - LDY #$08 ;自带的按键程序
3 u- x3 i6 w% O+ o- T( H7 K& Z+ y - ADDR8002:
/ p! t9 k+ f/ g) v - LDA $4016,X- z& e- W1 R6 a
- LSR3 [3 x- p5 ^, [# J" r4 G |- |
- ROL $00218 p( A! {/ |3 `3 N O, K- l4 i3 l7 C
- LSR
' ^- m( r0 q7 D0 d - ROL $0029: }/ X' w8 _/ }
- DEY3 B' w% |! [( Y& M2 O
- BNE $8002
$ V, |6 \$ k( K, N2 h3 X- g - LDA $0021) P. v, h" z1 P! ]
- ORA $0029; ~2 j Q- O" Z1 o' n
- STA $0021
% G/ t- T3 O5 x7 u0 T* v' y - LDA $0020
) Q0 g' l N' L - AND $0021
5 E* W5 S* T/ g2 p - STA $0020! M8 f x! N7 }1 w3 h* ~4 j; b
- LDA $06,X
: o) T9 }0 j/ ^) C - EOR $0020" T5 T5 b9 x* Y! s4 e0 Q+ O
- AND $0020
7 Z* {0 Q/ Y( F0 j, q - STA $04,X
% ^0 [9 C$ A0 H& ]$ | - LDA $00203 o& }) a" d- d5 A; _' b9 |
- STA $06,X
! d3 v `( D) {% u# | - JSR KEY_OPERATE& G+ d3 K8 p5 F" d* F7 P4 [
- JSR Function ;功能调用* @/ s6 ?! [4 d+ H7 J5 N
- JSR Weapon ;武器切换调用8 g+ H x) A) ?' T( Y( N
- JSR Power ;威力调用& c# a5 n7 l0 p/ Q/ O& p" b3 P* z
- JSR BULLET_NUM ;子弹数目
) m- V/ h: w2 \6 f - JSR BULLET ;副武器类型
5 X$ \' m5 \* x; \, j - RTS
. h: V- m; k6 H - 3 m+ [2 Y2 s1 d. ?5 N) Q& }+ y8 b1 C
-
5 S4 ^* a8 v# n9 u1 e
3 y9 k" H/ }: h: G" J- .ORG $80501 A3 k2 x) U0 C# r
- Function: ;功能0 f+ B- j3 w& |' u
- WUDI: ;无敌
% e1 D& B/ f9 t - LDA $6000,X( b1 `3 m+ H& C; N- B9 e6 C# p
- AND #$08 ;开关判断* o$ D/ @+ q, r; B- w- g
- BEQ LIFE
; Q, {9 x" ]5 C# b- E% J - LDA #$05
' X& _& ? d# d9 t) n# _, E4 i( W2 r - STA $05DC,X ;无敌锁定; a2 s. X8 G4 x' G9 Y7 s% o9 u R
- LIFE: ;生命# K7 m% }: w& G2 O. x
- LDA $6000,X: {( F) r' d" `" C
- AND #$04 ;开关判断. L* i- j/ s3 x8 J
- BEQ FUNRTS
u+ B. J' r! ^. \9 r8 j - LDA #$05
+ U' b4 E. D" C, F5 R - STA $1C,X ;生命赋值, U' N9 X) t r7 |: u
- FUNRTS:
8 Z1 b+ `1 G, x7 H- Z, m - RTS6 ]9 y' n3 ~2 Y' r( C' i9 \
- " j. O% G1 i! G+ p( i$ @8 S7 a/ d* k6 o
- Weapon: ;武器切换
* X0 O9 I( x9 c - LDA pause ;暂停状态判断+ l9 X" k7 {% p% N
- BNE WEARTS2 N# t9 `# a" K( X2 M
- LDA $04,X# P3 W4 r0 j% ^+ v
- CMP #$20 ;选择键判断% F" G) o" J9 `
- BNE WEARTS, ~0 I5 e( O4 J4 N
- LDA $12,X& x* n1 ?# I" P" {7 j) K3 j
- CMP #$03 ;武器值判断
/ O% d! N. ~9 a! Y - BCC WEAINC
& E- x7 I: I2 G- b - LDA #$FF
+ r7 x0 u" A+ |6 o+ X3 \3 Y4 Q, g - STA $12,X ;武器重置
. u! a( j. j( ]' ?4 n. g+ C S/ V$ ~ - WEAINC:! B0 ~6 n- U& e4 j: f. H9 T7 S
- INC $12,X ;武器增加
# a6 o( T/ h, D/ h/ t# Y -
5 u7 Y& m3 J3 c7 E6 q0 c+ T1 y1 h - WEARTS:
. u$ M$ E1 a b4 n, @0 I - RTS
6 V: g' Y2 r# j" x/ O D -
( t4 ?. m/ _* z0 O- t; q$ l4 M - Power: ;威力7 t% A! ?3 U K' A" [$ n
- LDA pause ;暂停状态判断
1 h% ?/ n" x( v) X9 `/ I7 u5 r- x - BEQ SPERTS
6 F2 A+ y$ x: J p - BUT_LEFT:+ m2 B; C/ \* _+ e5 {
- LDA $04,X# [5 ?% R& d0 t) R+ f
- CMP #$02 ;左按键判断9 w; {9 s* o! \! G
- BNE BUT_RIGHT" x$ j: T3 Z. Q. \7 v# z/ F
- LDA $88,X
3 K; _& S* \8 ^ - CMP #$00 ;威力判断1 B. M) r+ o% f$ C2 Y d5 B4 @5 j
- BEQ SPERTS
( r7 H n; E" C3 U6 G5 c4 j4 x - SPEDEC
* y9 `# B3 `# i7 y9 e - LDA $88,X ;读取武器值! X4 g, p. b. V+ F4 a+ @6 E
- SEC+ U, Y9 Z, q" y* B: ^5 R6 `
- SBC #$08) R) ?$ u# m" E! v# l; q; M
- STA $88,X ;威力减小
# |1 y( q9 [. G! y! q, _ - BUT_RIGHT:
( f, s: Z& }* |" T: e - LDA $04,X
& ], a/ v+ k; z( Z* z& f - CMP #$01 ;右按键判断
- m& r: Q- ^) q6 F& Q' d+ b - BNE SPERTS
. x2 D% X3 O! B/ N8 p4 P/ ^2 h7 b - LDA $88,X
: w0 V. ^* q: o, [ - CMP #$10 ;威力判断! r' j: e$ H0 h( r' [
- BEQ SPERTS
0 k0 ~# B( K/ _2 F' y. \5 ? - SPEINC:- u. ]% j9 ^4 \, w5 t
- LDA $88,X ;读取武器值" s: P8 H F; \! ]2 X
- CLC
0 ~7 j$ K% g* v6 ^. x6 S - ADC #$08
9 P. Y3 l* W1 t" D* s+ c - STA $88,X ;威力增大
5 X8 c/ k k( e9 s& z( O, J+ i4 o - 6 ]! y5 i4 u# ~5 W2 @% G
- SPERTS:
) W7 j5 Y# W: ^ - RTS
. s# Q# J% D% [
' `$ y3 z+ J; [- BULLET_NUM: ;子弹数目
( C! a$ z, e, Q. v- X+ ~ - LDA pause ;暂停状态判断
3 q" u7 Z1 X' c& d - BEQ BULRTS4 C- l. h# o0 L q: u
- CPX #$00 ;主机玩家判断
+ m$ d+ K: x, b8 ^" G1 ^ - BNE BULRTS2 w! f" _2 f p$ C! Z6 z
- LDA $04,X ;主机玩家判断1 Z% o$ _- I7 i) [6 s% `' b
- AND #$80 ;按键A比较 [+ @( \. s( h; N" M) S
- BEQ BULRTS
- \3 |& l# `$ h; A; N4 n - LDA $87 ;状态判断
2 ]4 ~4 L" H$ k/ O; o( ` - BEQ BUL_2
O6 p" b1 z/ D$ Z4 v7 [0 V - BUL_1:
8 P3 i$ V, Y: u - LDA #$00
5 X9 J( q6 X$ o& b' @ - STA $87 ;1发子弹: ~, n1 W }0 i0 ]1 f
- BEQ BULRTS, l- {6 O7 e& c# s2 n) u6 Q
- BUL_2:
1 n: ~, p1 g% e3 X - LDA #$015 t( x0 z8 M/ h
- STA $87 ;2发子弹
9 ~* _9 a7 ^9 L ]! R3 W/ U ^; ? - 7 t+ I& J& N5 p5 ^
- BULRTS:
) H* _$ G8 @* y* ]5 d( J3 [2 a, }4 \ - RTS7 J( A2 X4 L6 n3 j
-
, ?9 a% G4 P( R# V& V - / t0 I* r: H, A& `9 I! T
- BULLET:, S M, z0 ^- L/ Z5 V+ @
- LDA pause ;判断暂停状态) o% g, S" g) A6 c
- BEQ BULLETRTS
8 d0 S6 ~! N; t. k8 N - LDA $04,X5 y5 u6 f- F7 z% T
- CMP #$40 ;按键B比较, p# S1 V7 p- b1 L1 W' ^
- BNE BULLETRTS
: i3 b8 ^* X+ q+ m; p; u - LDA $6002,X ;读取副武器
" z; K& Q; l: p. }' F" F$ [$ L - CMP #$03
& x. ^; D$ b- O j$ { - BCC BULLETADD' K* O4 d8 ~1 r# m) f& [
- LDA #$FF
% n1 I9 `+ \% s5 H - STA $6002,X
( V# H6 h. {. Z' U3 f- Z7 { - BULLETADD:0 ?+ B! d8 m+ t, i! j* y1 B) O
- INC $6002,X" _) b9 f8 \- I% M
-
1 Y _+ ~" }7 k - BULLETRTS:4 T! ^! U: c+ I6 d4 p0 [' X
- LDA $6002,X
2 M" Q0 `5 S6 w5 V D8 H. K - TAY" K5 ?/ {: j. x: I
- LDA BULLET_DATA,Y
- k& I% N, H) h5 Y; ~+ C; o - STA $6004,X ;写入副武器数据3 f; y0 b* @6 b) c. K# |( H
- RTS W6 }0 ]# C1 ?, I0 N5 M2 M3 e
-
' H( \8 p# ?7 x - 3 M1 |- |( g9 t. B1 H+ {7 i% x
- BULLET_DATA:
) @5 \' T3 q6 [. w - .BYTE $06,$02,$03,$04* N* [$ u: J: ] r* L2 ]
- 8 ^, K4 O ^7 n2 r
- 6 m6 I0 _" ], t- i* E$ w& _' [
-
5 n' t% S2 @9 ]" |( c - KEY_OPERATE: ;按键开关操作! @# c6 j' ~& }. o; i8 D
- data_protect: ;数据保护
3 B4 {! ^% E+ E- \; _* I7 \ - PHA6 i% f9 E3 x; G* U% V4 z9 [# ^7 }. p# m
- TXA0 y7 k y5 ]0 S- m8 u6 \9 o* P
- PHA' a7 X$ d9 [! c
- TYA+ _' Q2 r7 z, j- d
- PHA
6 a1 V$ `) F3 T _8 j/ r; H
. c: D! c5 v6 m" M3 o- FLAG_INI: ;开关标志初始化
/ Z& _# v D" P* {3 k; q. l - 1 o# r$ V- ~4 i4 B% \
- LDA $600F2 B7 q* R0 n4 B$ O
- CMP #$01
- S+ O' b* i/ S$ s% K* S5 H2 u - BEQ pause_cmp" H' L" F- O8 E. S+ U) { U* a! p
- LDA #$00. I* f0 L6 E1 L/ H) _- L- G
- STA $6000% g1 F8 E; ?! u+ S8 r
- STA $6001; }1 ^6 c: l% p. p+ y: B: M5 G* `
- STA $60020 f( I a5 ~: C2 h/ V3 D$ s9 x
- STA $6003
" I; o5 \" V5 R. {( H% q! J - STA $60042 d! j/ h4 U- t. x: ~; P/ G5 L, t
- STA $6005
% b) G0 U( G% Y' J - LDA #$01
' ~2 O4 N3 P; U2 [ - STA $600F
, n& |4 A/ b. V -
3 c2 w! D9 f! \) q' Y O# r - pause_cmp: ;判断暂停状态4 f. c5 y& U- {! N; s% W5 N" r
- LDA pause
- |, L/ D% I0 Y7 g. n& n - CMP #$01 ;判断暂停状态
' s" L2 t7 X( k, R/ y& | - BEQ button_press
( m+ n% x& S, p6 u' a+ N) N& ? - PLA
! f% D: n' `. q0 f* {; Z - TAY
9 o, Z1 _' q/ _" j - PLA
* w" R! B+ Z- H( @ - TAX
0 Z" Q. f- W" u - PLA
8 m$ G5 L2 Z- f" I; u7 H. U - RTS
* I$ O$ a5 G& d; ^
- p `" b) P* j8 q+ V' i) B- button_press: ;按压操作3 I# [* n" {2 i$ E* x# ~! _+ Q
- ini_Y:
0 R5 ]; g( `0 c - LDY #$00
3 Y4 F8 `5 G; ^. Y - button_cmp:" l7 j' G8 M3 j0 K# T5 O9 N7 f
- LDA button,X2 d& q% l0 _) t2 P
- CMP ora_data,Y7 ~/ X+ x0 ~# X
- BNE count_Y_cmp
. F) o" ]" _8 ^ e0 [/ s) O - flag_cmp:
2 i2 F' D- ^, ] - LDA flag,X. \7 A) I( q6 d' D6 K
- AND ora_data,Y
3 u, K8 m2 T$ Z- n$ A - BNE flag_and
: ?: G! L* V. n2 @4 P - flag_ora:
$ o* r7 `) {' r4 M5 c' n# ]4 i - LDA flag,X# r! H: I& b/ U! z
- ORA ora_data,Y
7 W: S( B+ m8 _8 ~& G$ V' ] k2 U - STA flag,X4 ~1 A) g* Y" ^+ L; [; D1 i
- BNE count_Y_cmp
; _8 \9 A+ p! q* f5 g& r* D - flag_and:6 F, r b' w9 x2 ?6 E2 I% q8 K9 K- V
- LDA flag,X
0 _# [3 z$ q$ W4 Z - AND and_data,Y
Y3 r) H& R7 |, `' N+ e$ P - STA flag,X
, K7 [8 n6 C+ L, D0 l - count_Y_cmp:
3 C, J9 R. v B - INY
, P( `; G9 w/ D& d) c - CPY #$08
. K) Y; X. f5 T, | - BCC button_cmp
D& ^: u, j5 `' o/ [1 ` -
# d4 L; o9 N& A, h - data_extract: ;数据恢复5 y, _$ g3 `, j4 t3 q
- PLA
; t9 p, h% X2 h - TAY
0 j4 _& c; {, I3 V - PLA
' c. t j5 y' {- F5 x; S/ Q- `! V1 | - TAX
7 L4 E% a9 o5 t- w* A9 ~ - PLA# i2 B' Z; Q$ ]% a- U) D G% h
- # Q- d1 X; q) L& Z# p/ H1 {
- return:
$ i6 u6 `) l9 `& G1 B! B - RTS' \, V8 A2 D2 Y5 n6 u% ?
-
9 @2 H5 Q( c L7 `! e - ora_data: ;按键相或数据
6 b, ~( r& m! t* m3 n( `1 W - .BYTE $08,$04,$02,$01,$80,$40,$20,$10
5 a) }0 o5 G; l" I - and_data: ;按键相与数据+ p5 M. S* l# e: W8 B0 `/ T6 }
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF) Q" n/ s9 i/ L2 o$ U- ?4 v6 b
- 0 i0 E3 U* A V) m
- # L! K5 ]8 j" i6 ^3 @9 A
-
) \" R) g5 e& u - " F/ E" E& Q, Z7 y2 H
- / n' |: N# X+ w/ F0 G* S& S
-
# o E( c, ^: \6 J; D
: c7 ]* w2 e3 I% f1 W# x- k- 6 Q5 _6 f6 Z! I6 X; `" l
- 7 o- r. h3 h8 L( O
- .ORG $C264 ;自定义的MAPPER2切页程序1 w6 s/ ^! e' `% O; m
- PHA
3 }" x3 D k* d, U$ M* `$ z- [ - TXA
4 f& e& D$ ~/ A) X6 L - PHA& i4 R0 Z) J e. [- \$ ^1 W2 c7 p
- LDA $0066
$ A, z# A4 s9 G+ S; S7 A - BNE ADDRC280
+ j6 J9 M5 W# `% @3 ?0 O# z5 r - LDA #$07& e: w' a6 @! {; ?) M5 y: w
- LDX #$03
" B! {4 S1 L* K) X8 z7 P - JSR $CD9B ;自带的切bank方法
2 E+ M: A0 O9 j2 [/ l6 E& k - PLA
4 O. z1 M' ^8 e$ R. z0 U& v) ?1 r/ O - TAX
# F! ~3 ]) x$ O; w: Y# R - PLA: A% |0 e& _- W( N6 Y9 M; x( r
- JSR $8000; {7 _- I# e) h8 n
- LDA #$06! e' j# \- L- u1 A! M6 u ]
- LDX #$03
$ _% a* T7 D9 J - JSR $CD9B ;切回原该切得bank(可以不用)4 T; `) e( m+ Q# w/ R
- RTS
8 y3 L& ~; z) K5 c" m8 e8 C$ c4 g# o( m- r - ADDRC280:
3 c4 x% p' l3 B - PLA: T& \/ t" J$ X% E; T/ g
- TAX9 r5 N- P1 n$ l7 X/ E* Q
- PLA
. h, z& X) S5 @2 h8 [8 V6 E) ?5 f. k - RTS: z$ ]# u4 q% R' Y8 b( l- b
-
; M% P( I) b4 {1 R -
( E$ \( c+ {7 z+ Z- Y) B+ ]- ~ - ;[FC][最终任务PPU][END]; m' R& K6 K' @% e
- .ORG $C056 ;跳转到PPU重写程序" Q8 Y# z$ Z2 K* b+ m
- JSR $7000+ ~) Q& {$ c( I( b
- $ r. }. [+ b; A C7 G/ X8 a
- .ORG $CEBF
0 r {. v( g: k# c1 y. n - JSR STAGE_DATA_WRITE ;跳转到关卡数据写入
' \) Q+ F' N0 q# f+ I! E. G. n -
; C! p7 E& C( K" c+ J - .ORG $E460" D! V9 y* `; E1 _
- JSR BULLET_DATA_WRITE ;跳转到副武器数据写入
! I* k, |, s7 H( [8 I* G! L -
0 ^4 f3 f' F- F1 I6 M% N - .ORG $71F02 L5 z4 O; J; e5 A C: w
- STAGE_DATA_WRITE:# e" L g8 U9 p
- LDA $6010
" H4 v" c! ^; u) t2 p& B2 {% k% C - STA $1E ;关卡写入
7 z S: ^' D4 K4 k" \, k - LDA #$00
9 V% }! [+ r" G& }2 I: E+ V - RTS& f7 P8 p# A9 d( L% L) R
- .ORG $71C0% W W! A9 T% w3 K% G
- BULLET_DATA_WRITE: ;副武器数据写入
' L4 K8 D- e! b1 s& D - CPX #$0E
9 Y" @; s" |3 o - BCS P2_BUL
% H- P. z' i2 N3 d+ W; H - P1_BUL:
& o& Z' t9 h! t* f/ }. Z! p& V - LDA $6004' f% }+ n, Y% }5 I
- JSR $D7D0 ;P1副武器数据写入
2 |( X, y+ ~# y( @$ P - RTS
2 D) q6 z, P' q% o) w5 x - P2_BUL:
+ I1 D# f) [8 q! [5 R$ d - LDA $6005) ~0 n/ E3 T8 \9 S
- JSR $D7D0 ;P2副武器数据写入' V0 F) T# R3 z9 ~, r
- RTS
' v9 ^) O. ?& M2 R9 A6 Z - ( M+ a+ B" ]! J
- ! H' b! L" {1 T7 w
- .ORG $7000
. Z- T4 D- ?) f u; e -
E& a7 I Q/ U' `. p/ v6 l - STY $4014 ;补上覆盖的精灵写入指令
/ y/ Y6 o/ j4 w - PHA
/ K) n" v. c; E8 q - TXA
# M4 ^! Z9 x6 c" B4 E, D - PHA
! W1 j: i0 P8 P8 w; x* N+ e; h4 B - TYA+ g( p8 m$ H( |5 |$ A
- PHA
/ S# \9 I0 T6 T$ K! E - LDA $0C5 m- T: j! r- b
- CMP #$01 ;比较是否为标题画面
$ u# e, {; g6 |0 z - BEQ PPU_STAGE
6 @+ ?1 Z5 {/ q: a - PLA
/ z0 { O2 L) i" ]0 U - TAY# {! M0 q0 @8 q- U, M* Y& }5 N
- PLA9 G& g) e6 ~2 K4 `
- TAX
/ t/ K! J1 g' L7 j0 z - PLA- r J! d( b2 ?/ f8 T7 W: a+ P$ c
- RTS8 E9 ?8 D7 J% U: c3 y; `: O
- PPU_STAGE: ;STAGE显示程序+ P) t- A4 a$ ] a% u
- LDA PPU_ADDR_DATA3 f7 k( H; o7 S; P
- STA $20062 ^" u4 B: L9 ^* [9 L1 x' k
- LDA PPU_ADDR_DATA+1
6 i9 z$ g# u5 i9 Y - STA $2006 ;坐标设置
3 C* m- Z* [) ?( A - LDX #$00
$ }+ _( a1 ]$ y) y3 c8 u - PPU_STAGE_WROTE: ;写入STAGE字模0 ~" D. u; b$ h% ~: y' W6 |
- LDA STAGE_DATA,X! o6 r" K( h |6 S! T) y
- STA $2007
3 m# i+ N; ^3 q" X. F$ V% y - INX7 h! U( v6 d) j: [7 ?- K
- CPX #$067 h5 @6 [6 c+ f- J
- BCC PPU_STAGE_WROTE
9 r/ s: c1 L: U% B1 e4 g - LDA $6010
; O1 j) ?( m: G* @2 O3 W) E2 X& V" p - CMP #$FF ;关卡数据初始化条件判断
+ D5 m5 i v* @' y1 p/ X% Y$ i - BNE KEY_B8 e/ i4 z8 G N6 I. x+ W {; E
- LDA #$00
! Z% j+ c. Z5 j - STA $6010 ;关卡数据初始化
6 C$ G& O+ D! o5 r# d& ^! i - KEY_B: ;关卡减少
4 P+ f' k7 p% r9 l - LDA $04
6 b, E. b- `7 g) \& w - AND #$42 ;按键B或左减关# C' |, U" K' Z# s$ [* ?, `
- BEQ KEY_A
" V( Q* W3 b" e2 m( C1 ~5 L - LDA $6010) `- ?3 w% t+ ^( ?1 e$ |1 W; \1 m
- CMP #$00 ;关卡比较- B( f2 s6 [& T* ^! |
- BEQ KEY_A
/ s/ A) e( U; w9 ~* }# R# o+ ] - DEC $6010 ;减关
( K" q& W0 N: V0 S# u+ @, R( \2 w - KEY_A: ;关卡增加& \) N# W R' c8 N& }5 T* x: \9 o& ]
- LDA $04
; r* U' y1 x! z- `7 T! J) ~) d - AND #$81 ;按键A或右加关
8 e& Z3 k6 [' g" q- G2 ? - BEQ PPU_NUM_WRITE
2 K6 w7 K& q5 I4 N M3 h. H - LDA $6010$ R' l$ U4 ?# I! O/ {. Q7 A9 ~
- CMP #$04 ;关卡比较
$ J! ^9 @3 }. U' K/ w( C - BEQ PPU_NUM_WRITE" A% t% w: n& x; o' M
- INC $6010 ;加关
5 _3 [: u" Y0 J6 G - PPU_NUM_WRITE:1 O6 k( s, S: ?: y6 Q0 I
- LDA $6010
+ ]% Y! [0 I2 V - TAX2 e/ M+ q/ e+ }- C& U' [- b# a0 o- ~
- LDA STAGE_NUM,X ;写入数字/ u0 v4 _% k$ ?2 T+ m! n% r: Z6 T% ^
- STA $2007
9 ~% @+ X3 j U) ?, N% e - PPU_RTS:
4 R- m* v( _3 b. f" J" x- } - PLA% e- ?; U* L# w# l+ ~, b) }, z, S
- TAY5 s- F( u5 {6 J4 s+ }
- PLA' B- c5 n) r# B( z
- TAX
% f% P' l4 B- B" t- C - PLA
3 p0 H3 @6 N y2 a - RTS
4 Z% i3 a) C" t - 6 A8 I `9 J4 F; K/ w' e1 ~( C+ j
- / h6 _) B m K8 D, M
- STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据
* `( T6 n: o& @* } - .BYTE $EC,$ED,$DA,$E0,$DE,00! U: Q. L% M, ]" r7 N# R6 r
- STAGE_NUM: ;关卡数字1,2,3,4,5字模数据
1 I R! |, x7 O I$ R - .BYTE $D1,$D2,$D3,$D4,$D5
7 o& A4 a, r0 W- ] - : |- F: {/ A+ w! `1 x7 t. H
- PPU_ADDR_DATA:; i4 V/ E" N8 u+ j5 ~
- .BYTE $23,$0C
& z7 L) J6 J; r- W0 N3 j5 x- C1 s - * G$ O2 [* X: s# N6 @
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
1
查看全部评分
-
|