|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑
, w* {7 d% O9 [
1 `1 I$ M& s+ G- z! u5 O8 W [FC][最终任务][END选关]+ N" C( R! H4 h2 }
% Z& m0 x5 f+ }: J) c
时间:2017.3.293 s2 {; B1 L/ S* J& i5 A
作者:FlameCyclone/ i) D" ~2 Q/ A+ a
内容:
5 p- c# ^6 s( ~7 S/ N6 y4 N! i* p% v' ~ 1.关卡选择: 标题时,左或B减,右或A加(1-5关);
5 Y! p# ~2 [0 F 2.无敌锁定: 暂停后,按上键切换;
4 a8 c! V" N, i1 y( P 3.生命加满: 暂停后,按下键切换;8 z+ b, C! |; L* `
4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);# O( s; N8 {. m: H
5.子弹切换: 非暂停,选择键切换(普通,W,L,B);
. x( h' L) c* x 6.B弹数量: 暂停后,按A键切换(1个或2个);
5 o; s: i' U: ` 7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;. u$ R6 e& m% D2 u4 i
1 n6 V% X+ m3 l/ s![](http://www.emu618.org/data/attachment/album/201703/28/232414fnbhffvahaxvanl7.png)
5 P% K. M3 j+ w% _4 Y! k * O# {- h/ m0 P) n! b/ B2 i7 Q, Q* A! A
- _" J, p: Z) W- J
![](http://www.emu618.org/data/attachment/album/201703/29/221321in31n3bai1d21igo.png)
& _/ J3 V/ e6 x0 L P
3 n& z1 ~9 }% _5 Q) P) v0 ~1 Y6 ]: h( d/ K3 i' R
FlameCyclone.ys168.com
, F( z& j' M5 g( t/ Y) n# vwww.nesbbs.com- ;[FC][最终任务KEY][END]* f9 o. w, I, }6 Q8 y, ~1 ^) r, X
- button = $04 ;单次按键# ^ F0 I, Z3 T9 M* E% ]5 H- U
- flag = $6000 ;功能开关标志# x0 F% T4 I: K/ V
- pause = $000E ;暂停地址3 u* \/ `' Y( v$ g+ b- O+ C& I
; ]0 Y0 a) |3 f8 N- .ORG $8000
7 D. S: j) @2 ]8 c9 G - LDY #$08 ;自带的按键程序0 O, q0 V# M- q! q+ d0 A c+ _4 g3 ]
- ADDR8002:; p. M- [: i8 u% j& }
- LDA $4016,X
" g" `3 I6 q0 z2 V7 P; b/ | - LSR8 K/ ^& z" n7 m2 `$ t- P
- ROL $0021& o1 ?- g$ H" J; _- j5 H9 L' W1 P
- LSR
( q# k! ?9 U) _! |9 R, c - ROL $0029/ |. W0 E& f6 Q) |
- DEY
. G- e7 \5 Y8 @" e) R - BNE $8002
. ]0 A$ z8 p" p - LDA $0021* }; }. ~: J$ \- c: S
- ORA $0029
3 i6 d) R; x- N8 I4 [1 P - STA $0021# y' W7 j) Y2 r+ y# e8 m
- LDA $0020 G3 D) P. I j( K! q
- AND $0021. t6 H1 P% D* G. Y% Z' @$ L: _1 z
- STA $00209 l, n; {' q' ]9 |4 S3 \; d8 j) ~# n# Z! ?* {
- LDA $06,X
2 Z* E7 ^$ U5 s" R% N, h8 j - EOR $0020! x( |! o1 j, D
- AND $0020
9 i; Z! M& k! b. K - STA $04,X
4 L0 J# ]$ x! v8 k* F - LDA $0020
! i! z$ M2 Q9 y: K - STA $06,X
* ?- |+ n$ p) Q: L- _ - JSR KEY_OPERATE j! v3 K) L1 u' K7 k# v+ }+ q
- JSR Function ;功能调用/ p$ {3 W5 ]( }& u* r! H' |9 C
- JSR Weapon ;武器切换调用
1 k0 ]0 s6 `* q# d4 f5 ]' I& N - JSR Power ;威力调用
. `1 }" P0 }1 f/ J9 I! v - JSR BULLET_NUM ;子弹数目
/ [+ t8 k7 c6 C" K$ N7 [2 V - JSR BULLET ;副武器类型
. }4 I8 b9 W/ M( P6 `$ p6 i - RTS, ^% u, {7 Y- R7 c6 E. M3 `# W0 x5 T
-
; |! _1 @% n, @ -
7 [# f, p& C; V J* m - / r4 G6 h* j: P' X1 K7 W
- .ORG $8050+ k; ~5 l+ l g& n) O9 v
- Function: ;功能. J+ f0 ]* l" G" O
- WUDI: ;无敌+ |. y3 X( |2 O. E
- LDA $6000,X
# E0 U' v1 m9 J& h5 W9 {% V- s. f - AND #$08 ;开关判断2 E. K% h" ]0 U# H
- BEQ LIFE5 Z [; }8 p' v: |/ g4 ?
- LDA #$05
Q5 Z7 S0 [+ ]- ^' {3 f: D0 D" e - STA $05DC,X ;无敌锁定
* @5 [/ i9 p6 B) J* H% n - LIFE: ;生命% g$ L2 j: j4 Z9 H+ e
- LDA $6000,X: t- e& E+ H+ ?) i8 b3 B0 Y* g/ E4 j
- AND #$04 ;开关判断
# w9 m, b$ U! S2 i% \' F3 k - BEQ FUNRTS
9 D; u& E! o2 J( e* Y - LDA #$05
& ^' W3 D- l6 E( Q4 Y6 k' _# N - STA $1C,X ;生命赋值& T8 D: c9 A+ s, P* M0 k7 D8 N+ m
- FUNRTS:, r! g- ]& A6 O" ^0 |
- RTS$ F# E$ s- S w, G5 B; K
-
- {- G* t, S: K- M8 q - Weapon: ;武器切换% z7 V5 U: P# W
- LDA pause ;暂停状态判断
8 U/ b$ J) s6 x8 i6 [$ o# w3 ^ - BNE WEARTS V* M1 m7 P- I4 L
- LDA $04,X o8 E. `( C; w8 Y1 P4 S
- CMP #$20 ;选择键判断
5 m9 k! z5 s9 h& {8 e# p - BNE WEARTS6 Z) ]7 S# z* Z8 w* P4 l
- LDA $12,X! X/ T( ?4 L* b( E& {0 R8 G
- CMP #$03 ;武器值判断
# z" w" T( o/ e - BCC WEAINC6 e' _; w% `7 \ Q- ], j
- LDA #$FF
9 _5 L5 c5 j$ d# B& O0 Q% t - STA $12,X ;武器重置
' q5 F) G8 W. M$ c) r/ Z - WEAINC:' q7 i9 \* }) O4 F; d, S
- INC $12,X ;武器增加
; M5 q# T' s0 J. k, I" ~, W - ) u0 K) n3 b; r; {" B
- WEARTS:# p# X% ?! c) u
- RTS
, F2 }$ {9 M9 ~$ C9 N* {* F -
* d, u% Y' d' ^% f - Power: ;威力) }: `" R7 w$ f+ ]) H( E2 X
- LDA pause ;暂停状态判断/ K. H) y( d- @* s) v o
- BEQ SPERTS* b* T+ e( u7 [& Y. u. s
- BUT_LEFT:
- B% V. u! G2 L - LDA $04,X" o' E* j5 G7 t# w X, ?
- CMP #$02 ;左按键判断. s& ` |* i, {
- BNE BUT_RIGHT7 w) s0 W; z: ^0 T3 F; t
- LDA $88,X" U9 i9 k% a; U5 h2 H
- CMP #$00 ;威力判断/ m0 e4 i- Y/ }, t+ W
- BEQ SPERTS! U" T) E. Z7 g% R2 B& z/ S# X
- SPEDEC! R3 p2 L" a! M$ ^; _) V' a C+ P5 D1 }
- LDA $88,X ;读取武器值; X7 W; L8 F3 _( \, |) n5 P
- SEC- \- z; l& K: R2 U/ f
- SBC #$08" P* {( q1 i d: e0 U( w
- STA $88,X ;威力减小
1 a6 K$ O4 c' k" V - BUT_RIGHT:/ R. o+ \; }" e5 J! m
- LDA $04,X
, D% W, q( m3 \ - CMP #$01 ;右按键判断
- P! N$ l0 [1 u- b T" X6 E+ P. g - BNE SPERTS
" Z x; K+ b3 W- D @6 E% |9 `, f - LDA $88,X
6 q( @" |+ Y; o% P- R - CMP #$10 ;威力判断
, D* F( J8 ^; ?4 f: {$ Q- k - BEQ SPERTS
% K) A4 X; |, F) C - SPEINC:# U9 B* U( j3 q# V. L$ W
- LDA $88,X ;读取武器值
, K5 ]: V3 z! P" E9 U5 H: p' O - CLC
- M" J9 F! K$ Z$ H' h2 w - ADC #$08: G3 m; O& k p9 g' d8 E
- STA $88,X ;威力增大" A3 D, D) J! O: ~: f0 h
-
& }) W- {) `1 k7 J1 { w1 S - SPERTS:
" x, E G% d$ i0 `4 ~ - RTS
# {3 L3 V& g5 h" b) w! _. @
9 F _( U2 s* L/ c4 P \; f- BULLET_NUM: ;子弹数目$ w+ d0 D) {, x1 u6 O
- LDA pause ;暂停状态判断
" Z! @' k) H6 d0 ?6 R/ E3 r1 Q - BEQ BULRTS
+ b9 S5 ]. `. ]6 g* U7 q/ U - CPX #$00 ;主机玩家判断
/ z+ H- v' ?0 d6 ?4 m. O: A - BNE BULRTS
: u: Y4 @$ B5 X! ^6 m& e: f2 y - LDA $04,X ;主机玩家判断, Z: R' Z F2 R1 `; [1 e* k4 C
- AND #$80 ;按键A比较
# S- P" @4 N1 O5 I# S9 { - BEQ BULRTS+ S* Y' n l- w" T9 w
- LDA $87 ;状态判断
) ^8 ]0 _, n, e$ }* T1 d7 V5 { - BEQ BUL_2- B$ ], @- L2 r4 m5 q
- BUL_1:) D/ f+ h) s7 O& y0 o/ a
- LDA #$00% p8 y) O: Z& [& K+ I. G
- STA $87 ;1发子弹0 A, P* d. W4 I
- BEQ BULRTS
! L1 l1 ~* ?( L- d. M/ O8 a - BUL_2:9 P/ X4 @3 u$ s* e' @( D# ~, z
- LDA #$01
0 i _% F2 B1 V$ a0 Q - STA $87 ;2发子弹
6 K1 r+ Z8 F& f4 p3 N -
( X) ^- j( H3 i. D5 P9 o* p( Q - BULRTS:7 Z- K; a# Z* Z6 v' n4 g
- RTS2 \. f/ `, |& V4 I
-
+ Z8 D! j- V3 [$ y
0 w6 f+ ~& ~7 c" i# X9 q; L$ W- BULLET:$ [+ d* H! [3 {
- LDA pause ;判断暂停状态% b9 L- ], V5 R
- BEQ BULLETRTS* t2 [8 |% I5 {! n+ m8 X& f9 ]$ j
- LDA $04,X* l F% g B% L. I1 m7 ]8 j# I
- CMP #$40 ;按键B比较6 t+ Z w; S( b |+ N. j" m) j! D
- BNE BULLETRTS
8 ]) `( y- \# G7 g: J6 @2 y - LDA $6002,X ;读取副武器
( x$ z: V/ K4 V0 \; |. ]# {) E* f - CMP #$03! K, P Q! i3 v: L, n
- BCC BULLETADD
7 t: N \ E2 ] - LDA #$FF/ J2 T; U4 F! j( C
- STA $6002,X- v3 U$ n" M) L! E! T; |
- BULLETADD:- @4 a6 @3 E+ y- g& k1 _) O; B
- INC $6002,X# {8 f5 Z; G9 F0 _1 o
- 3 Y: W+ y! d: B5 @2 h! R
- BULLETRTS:" S2 i% A+ y# B$ [
- LDA $6002,X. H: c3 L- H* ^4 l0 N/ y
- TAY
( N9 x: A* u* v% b# M - LDA BULLET_DATA,Y; M! t/ |/ S1 W x
- STA $6004,X ;写入副武器数据
1 Y0 \3 Z; z$ p, I) f2 M - RTS0 H p) @2 Z5 [+ _9 o5 a
-
9 Q. ]! G: s) _# m9 i m& Y -
p: K9 F1 w2 G0 Z9 q2 D A - BULLET_DATA:
. H" z) ^7 F+ o' S O( C - .BYTE $06,$02,$03,$04
( U' v: g) r0 \4 } - # Z6 V# q7 [5 q
-
$ @. F6 y4 I* X/ s) v! b - ) F# `/ T, U8 y' w
- KEY_OPERATE: ;按键开关操作
- T p, U- A: \ } - data_protect: ;数据保护
0 q, f& k" G6 M p5 A# X) h& e" g - PHA0 J# x9 o5 K) }* J- _# Q- C
- TXA$ A' o2 q( v1 }
- PHA
7 R0 {: w5 E( s& z6 e# V" [ - TYA2 W4 j9 }$ P# a# _3 H; ]! ~
- PHA
+ i- Y3 @' S; F4 ]# c. M6 I2 @ - 5 o m* [6 a: d6 s( R/ i/ c
- FLAG_INI: ;开关标志初始化
- |. p, q( k' [9 o. o - ) H' w a% r9 Q5 D% p9 `: Y
- LDA $600F" N) \$ Q; f9 u0 M" p, V& m e; P
- CMP #$014 H2 l# ?! j) n2 T2 K1 n! r) v
- BEQ pause_cmp1 _- C/ ^5 r+ Q7 G# O
- LDA #$00 z' s- D9 w( V4 z+ H- i
- STA $6000
6 I% x( K" Y0 d( v* t - STA $6001, @ ^7 _3 v- A+ z9 y7 `6 y, f
- STA $60029 u9 t: k5 f1 [7 d3 J6 Q4 T
- STA $6003
* N4 S6 y0 V$ t1 x - STA $60043 e$ F# O: S. K" Z2 }
- STA $6005( t! q% o0 q: O+ `. h
- LDA #$01& x+ @1 [2 d9 u" A' t. l
- STA $600F
# ?. {- _ J4 b, e. n - " w6 r) q; H' ~( [
- pause_cmp: ;判断暂停状态. f1 S. f& F4 F; O
- LDA pause
1 l, _& B" L$ k. [ - CMP #$01 ;判断暂停状态
8 c& Y& T8 Q7 z7 r6 u W - BEQ button_press" Y9 o) E5 ?! V3 @+ Q/ M" Q2 c4 t
- PLA
" m W) S [+ Y4 ` - TAY0 s- V% y0 V& h, t3 ~' A$ H! S+ o
- PLA
. d' g1 M& p5 u: _* } - TAX7 ]& Z' V3 y8 A3 S! a3 z
- PLA
/ M0 {6 P6 l7 H% U7 h7 K - RTS
- e, h3 P+ g: N( \. y/ q+ [5 C- k
* g4 A2 i) }9 x4 s: q p- button_press: ;按压操作: a; k4 {2 ^" B5 f
- ini_Y:1 V( C- X% I, Y! x, q
- LDY #$00 ]9 l( V: i& r4 D- t. R& H
- button_cmp:8 P+ e; Y: ]. M5 S3 f
- LDA button,X3 u8 p9 N6 G4 e5 ~2 B
- CMP ora_data,Y
- L+ I* `4 F' i0 z r) x8 L! I; ] - BNE count_Y_cmp
* n. p) I1 T! ~ - flag_cmp:7 ], a' y& ]3 C l- T
- LDA flag,X, R$ j, o1 N L' [' o- @$ w
- AND ora_data,Y D$ y5 Q0 u* V, H- e
- BNE flag_and
* Z+ }; W: b) s% G& s- j - flag_ora:
1 N7 Y' R" c% `/ e+ n- @' m' g - LDA flag,X
" ~$ l8 z1 r4 o - ORA ora_data,Y
0 M* |$ G$ v2 ~: K0 } - STA flag,X4 m% H1 I: k0 i4 m6 ~8 Q- F
- BNE count_Y_cmp) x4 E) J5 [7 v
- flag_and:% p, {; @& B5 w# c0 g9 o
- LDA flag,X( S/ E: Z% i8 ^5 g
- AND and_data,Y4 J$ \* {1 K3 r; V- \ W, @" _
- STA flag,X0 ^" y( n6 D' L( W
- count_Y_cmp:% g! X( b- @# s, R
- INY
: d/ F. t2 r; \6 }5 X - CPY #$08/ e1 D: n6 }7 c' Z0 u
- BCC button_cmp! t* g0 w: `$ p; M" X4 z
-
% ^* T" d. E* F" Y% r7 i$ _# O - data_extract: ;数据恢复, b, B$ I5 H3 j
- PLA8 v6 Q' N( U: `8 h% q5 T8 u
- TAY+ |3 ?1 ]$ b7 s U4 N- z) w
- PLA
! n% O I) b( v# N1 y5 S - TAX( _. r- @& ~! t4 }
- PLA% I( p J4 q1 a3 d, K! F/ `
-
; s2 D: M k8 _% V- C - return:- W) @' E9 y4 y, @8 X$ y- @3 S
- RTS
! c3 k9 f1 ^0 |5 K7 {5 E% M, t - # S+ r* H6 F( S6 [
- ora_data: ;按键相或数据
; @$ t) y& b! g. ]' e$ \# P: m1 x5 l) B - .BYTE $08,$04,$02,$01,$80,$40,$20,$10$ w8 A" _9 R) E5 B1 U
- and_data: ;按键相与数据% g6 \/ i5 x0 W0 \7 f0 \
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF
8 K( s; q! S! ^0 M" |7 Y -
) \" [' L7 ^0 d4 p: @ - . Z$ ~# Q* O/ w8 h9 }% f
- . B% [) _ ? n% @
-
) t* k5 N& q: P' B) L+ V - 2 g- r& C2 |; O" S' i/ H4 z
-
% Y B, _9 l4 Z; H+ \ - * ~; ]1 q A' _6 l& x1 r% S
4 c$ H' ]3 d; M# M- ! P5 L% p* I- R4 e) x5 m
- .ORG $C264 ;自定义的MAPPER2切页程序
+ k% F. i5 ^, s. u. h5 z6 L - PHA
0 m. ]) x( Q1 G; o9 i - TXA* l* l6 ]* c6 H+ ~- j
- PHA
, J! l/ g. a. Q' W. ?( U/ J; O$ E( { - LDA $00669 r2 n+ f# @4 |# p* ~
- BNE ADDRC280
5 S" m# w6 n, E O; y9 a# z - LDA #$075 }+ Z+ G9 F( O/ M7 T. x
- LDX #$03
- t! h$ p* X6 l2 J$ @# | - JSR $CD9B ;自带的切bank方法
8 a# z. ~6 x F o$ J - PLA9 w! x3 Z5 l& f
- TAX' P5 C6 M& U3 G( j- J6 w' z
- PLA; J. P6 J/ z/ t3 y% G
- JSR $8000
' ?$ g) D- f l& d7 [ - LDA #$06
1 ?8 R7 Y3 Q9 Q! c - LDX #$03- o% z$ j) e' }0 z k) n1 P2 J
- JSR $CD9B ;切回原该切得bank(可以不用)
! z0 `- s' `4 c w$ V5 Q - RTS k$ {: M8 x" ?
- ADDRC280:# U! e6 o2 e# X; [# K# s+ K
- PLA3 ]; D( B8 {2 k! ~. h$ C/ |- R
- TAX
( a7 O6 E1 O/ F - PLA
" b, H+ `8 B& H# X4 G7 B; n - RTS+ {- u! j6 e7 [
- $ u4 Y+ X4 l5 r7 H Y4 h' p0 P
-
. D& U) r! f6 F& d - ;[FC][最终任务PPU][END]
) f2 K1 m4 l% a$ Q& [ - .ORG $C056 ;跳转到PPU重写程序 @& T. l) Y5 p% L+ R" O
- JSR $7000/ Y, x6 H8 A1 N
; L2 x3 X, A0 {2 e2 J) N- .ORG $CEBF1 o T* ?7 e. Z$ b- {
- JSR STAGE_DATA_WRITE ;跳转到关卡数据写入8 w, Z/ `$ J4 \" U
-
: p/ F+ R* l; y0 w. i6 B8 P% ` - .ORG $E460
( j5 `& k, _/ R: Z# h! }+ A, p - JSR BULLET_DATA_WRITE ;跳转到副武器数据写入
& d2 z8 T9 b0 ?9 M5 @2 Z Y- @ -
: U; z& A: q. m( w - .ORG $71F0
" E5 `4 A$ n6 [% d+ c - STAGE_DATA_WRITE:
|2 P2 ]( n; j) x6 ^ - LDA $6010
. [6 M, K* y* G& i/ A - STA $1E ;关卡写入
# L) f/ Q. H0 y6 t - LDA #$00
; A r5 D4 B$ I3 s - RTS( _, [ j L7 M7 i( z+ y
- .ORG $71C0& t, W8 D& b5 n' q, W: K$ Q
- BULLET_DATA_WRITE: ;副武器数据写入# F z9 ?: B A) M, E/ [; H% N# Y
- CPX #$0E
1 Y2 i o) G# h: x - BCS P2_BUL+ ^* l9 K: v9 H! e$ {
- P1_BUL:- {9 H% b0 I8 M4 A+ b7 _0 x q
- LDA $6004
. C3 @) R( l5 F - JSR $D7D0 ;P1副武器数据写入" u$ m$ _; T) {% \3 g! p( z
- RTS
; X6 a3 f1 `; S - P2_BUL:
, w+ i% ]3 c! N5 Y0 F5 w4 a - LDA $60052 w2 f3 a; Z9 n: e
- JSR $D7D0 ;P2副武器数据写入
# p2 [. q' d! [# V - RTS; N+ ]4 d$ e$ ~1 r Y, m; }0 P P0 r
- + u p7 L# {0 K- [2 V
- 2 D6 T; s& [! L& d9 k* C
- .ORG $7000- C# _4 r) @ y* r
-
; F+ x/ W8 |5 H4 x - STY $4014 ;补上覆盖的精灵写入指令% x( M# z: L0 v' n
- PHA4 r% i \8 w( X' y
- TXA- r! P$ _: h5 Y& @, {, _* X/ U
- PHA
" ?' a: n" o- {# [ - TYA. _ K, N5 ?& ~) Z/ l* t/ e
- PHA9 W. U" ~8 O8 y5 m) {* Y
- LDA $0C
. h3 b9 C& X$ @. G4 X - CMP #$01 ;比较是否为标题画面
4 e- a: b0 k+ R' d- l1 B - BEQ PPU_STAGE
% s6 Z' s4 g5 q8 o - PLA8 o% j5 G8 @* L% B$ Y8 n
- TAY: H3 |6 @) h# Z" U! T/ z$ k
- PLA
! M P/ f/ H6 K# G - TAX
: V4 I [. k8 Q) Z8 d, f* V0 q! x - PLA' J. G7 m4 K: A5 r9 M
- RTS! S; h( T2 u5 e. t
- PPU_STAGE: ;STAGE显示程序
# U. e# H4 \0 R# b5 F - LDA PPU_ADDR_DATA
; M5 \2 Q5 O9 K G" P - STA $2006
3 Y- I; w8 y5 Y0 ]& }5 W1 T0 V - LDA PPU_ADDR_DATA+15 M# b- j+ Z$ P9 q. w5 O& |+ X
- STA $2006 ;坐标设置( a/ {; g" x" W( Q
- LDX #$00$ S$ G! [/ f' B0 s8 D/ k
- PPU_STAGE_WROTE: ;写入STAGE字模2 V) w! |* Q; V4 ~) R
- LDA STAGE_DATA,X
9 O: j5 n+ q7 N) P- ~& p - STA $2007
3 N$ V4 S" F3 k - INX9 e* k" A6 m" w
- CPX #$06
/ }, ]# y7 s" ^8 L& T3 h - BCC PPU_STAGE_WROTE6 n! x" n" ^& o |+ l
- LDA $60102 h! C" _& N6 ?5 z
- CMP #$FF ;关卡数据初始化条件判断
# V( _8 j% `4 g2 ]( h( x3 r9 M! G - BNE KEY_B
# N1 B; I2 l. l$ ]! R0 O6 { - LDA #$00/ E6 U. N) X) Q: z: Q+ W
- STA $6010 ;关卡数据初始化$ I) R/ W! ?1 c2 b
- KEY_B: ;关卡减少
, `$ |0 G( Z2 E& q; M- b+ Q - LDA $047 o2 \' ]6 e0 p( G$ |
- AND #$42 ;按键B或左减关6 y; ^3 ~6 e6 F+ x( j, M4 ?) x
- BEQ KEY_A
) f8 ^) |5 w3 i. x/ m - LDA $6010
3 y- m& |; b: [# K! t- _7 K - CMP #$00 ;关卡比较* V+ J0 E8 V. a7 m) Y1 r! ?
- BEQ KEY_A* v+ W5 G( t* u. K
- DEC $6010 ;减关9 L4 l/ W& G: u; _6 c
- KEY_A: ;关卡增加
: a* F% c: N4 Q' a, b9 v) l" e - LDA $04
; [/ `: K4 y9 F; W) }. o - AND #$81 ;按键A或右加关# D. c& Y; r: z3 L/ ^* @. l: s: K$ ^
- BEQ PPU_NUM_WRITE, ]+ f4 u- H+ k- t# ?$ i
- LDA $6010- ~! C9 Q ]$ ?+ P) @4 c2 }" b
- CMP #$04 ;关卡比较4 i: a2 K( Z2 j: K
- BEQ PPU_NUM_WRITE
( r B9 S! o+ U+ t* l9 L - INC $6010 ;加关
* h' T* r8 @* M" s& p* g - PPU_NUM_WRITE:
2 o! g: ]7 n# x' c' ?2 M - LDA $6010
3 o" X' x5 ?' T9 m - TAX0 z2 X4 L3 \% n& p* a( D [8 }6 ?
- LDA STAGE_NUM,X ;写入数字
; z6 C* I8 o8 ?) c2 G - STA $2007+ a- V9 @3 |3 R0 _- i0 f
- PPU_RTS:
, t, ?1 G5 }" m7 P8 `1 i" ? - PLA
7 k& B |. }; ?2 i; v - TAY
6 m( J& Y% [1 d0 b" O* { - PLA! S- U$ ~4 n6 }0 ~
- TAX
+ X# v" x) `/ F3 k% Z - PLA
3 e' c4 X4 u) i. Y8 a; ^ - RTS! G+ B9 [* Y: N2 }5 G
- # C' Q4 R ]6 _- B# C5 l8 S0 H" x
-
1 e) v: o: R) \# T; \ - STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据
" G* d) b& m* y- a4 d - .BYTE $EC,$ED,$DA,$E0,$DE,00( e! E# r$ q) ^' q V
- STAGE_NUM: ;关卡数字1,2,3,4,5字模数据 C ]; o+ u' T) t
- .BYTE $D1,$D2,$D3,$D4,$D53 g4 L! Z) c6 G
-
2 M2 ~# N' d$ k- b; i7 H2 R. [ - PPU_ADDR_DATA:
! O: s* p5 k" C( A8 [ - .BYTE $23,$0C x- j1 g# \: v, ~* w: z
- + J4 N1 u3 Z5 [. q* Z h' f
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|