|
|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑
2 e0 F' B1 C% d: k6 Q! {' ^) m. K' S
[FC][最终任务][END选关]6 Y$ Z D& ~7 ]
2 @+ } \' \" Z o. [时间:2017.3.29. X1 ?8 Y- F t" W" t: t
作者:FlameCyclone [8 y' ~9 \) d4 y3 }2 M% r
内容:
) f/ n- i1 ?( A1 Z9 Z$ @ 1.关卡选择: 标题时,左或B减,右或A加(1-5关);
! B. d+ }3 \0 P: a; L0 e( q4 f 2.无敌锁定: 暂停后,按上键切换;
, V) Q! e" V: X" }# t 3.生命加满: 暂停后,按下键切换;( J. A' k' ^( J
4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);
$ T$ ^' w8 f, i; X, S 5.子弹切换: 非暂停,选择键切换(普通,W,L,B);
3 [5 \% S7 g$ m; ] 6.B弹数量: 暂停后,按A键切换(1个或2个); E: E% i! t& z$ ?! C) d
7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;
( V# _2 B! t7 T- M5 f M
* f" n: t4 E0 I # ^8 s9 j! @7 _/ l# t
9 M* f8 D q+ u5 z) A0 q/ @% C
7 @% Q9 K3 Z. i Y" K& s
' e3 {) Q E3 v4 J, q
0 A3 I; h, H; N4 z7 c9 |7 w( d
& m3 f- y4 ]0 m9 i9 T2 l8 f" W$ LFlameCyclone.ys168.com
! p8 t! U& `+ K0 M# @2 l: Q, hwww.nesbbs.com- ;[FC][最终任务KEY][END] n, ?2 v; o8 p# [: G
- button = $04 ;单次按键. x5 u' J+ g/ w! |" y
- flag = $6000 ;功能开关标志$ ^" z! @7 K( L3 t: K
- pause = $000E ;暂停地址: T$ o3 x. r6 Y
- ' h+ c3 v4 n7 \( Q0 O* E# N! M( H& y
- .ORG $8000
/ d* ^5 B6 r0 o; M2 Z% U2 o - LDY #$08 ;自带的按键程序/ N* ?' _# N/ R, W, t7 O) T
- ADDR8002:
9 O4 o' O* j) `0 q/ U5 f5 p0 y- S - LDA $4016,X/ R: [6 x2 Y7 m* ]! p
- LSR0 L& b) ~6 {( c4 ?6 l& C
- ROL $0021
" Z) o0 A, `% x7 U - LSR( I b1 C5 I# X% \" K Y
- ROL $0029
, e8 @0 m. V/ L9 i0 W8 i - DEY
3 I2 J8 @1 x s8 a' Z. E) j6 D - BNE $8002/ x1 M5 B4 }% H1 I! j+ C
- LDA $0021+ c2 K+ J* U0 k: k& [
- ORA $00297 c, y: ?% @( Q4 T, B7 ~
- STA $00212 O6 c& O0 S$ o: o8 f, D
- LDA $00201 ~! H5 v) E6 Y$ l2 h
- AND $0021
3 l. w5 h$ X) t. o% z - STA $0020" R) w* O" G# G4 [5 J
- LDA $06,X
8 _& ~ M/ h# w, j: E) H" T) I+ W( j - EOR $0020
5 c+ x. b4 D: i8 K5 O* E- ? - AND $0020
Z1 l( m) a, o, v5 I% a. p% a H - STA $04,X
3 ~8 C* C- z T3 ?* ?. y X - LDA $0020
0 t0 W% A3 [# c( `; h - STA $06,X
$ L2 ^! T: c. f; {" u/ V/ v$ a - JSR KEY_OPERATE
6 ?1 ?' ~9 P( d* q/ u) ]% O) o - JSR Function ;功能调用# P' o) K' `, ?- J
- JSR Weapon ;武器切换调用# l8 p; M4 z+ N- i0 S( J j5 R
- JSR Power ;威力调用& L$ e/ ^. s7 p; E6 _1 o
- JSR BULLET_NUM ;子弹数目
' M9 b. l% c C+ {8 ]0 X - JSR BULLET ;副武器类型8 W; |% s9 G3 C4 m1 S; `
- RTS; H: v0 v$ C% j% O
-
6 ~1 |0 J# d( Y2 |* y6 ]* ~ - 5 ?5 f6 P1 g, |2 _: |! i$ f; t
, j% R$ Z9 E. r9 O% h2 Z* L8 B- T- .ORG $8050
" t( Y1 L+ |4 J - Function: ;功能
6 {) S5 R# Q$ g1 z: c5 i - WUDI: ;无敌
; p& ?& j D0 s- `3 }) D - LDA $6000,X3 e( p, E" h3 m
- AND #$08 ;开关判断
6 V; A5 d, v& p - BEQ LIFE
4 B3 K7 @1 a! k* \* i' S5 ^% [ - LDA #$05
5 E3 H/ S X" N. X. V) r - STA $05DC,X ;无敌锁定; a! T" G* D2 E: y
- LIFE: ;生命& ?, x4 [/ t. p' P: o1 t& Q
- LDA $6000,X
3 k8 m. T0 J4 \! R - AND #$04 ;开关判断
2 [9 T( b& b* h j4 B- Q - BEQ FUNRTS
8 g) D) \# O! `- K6 D! B4 g) s - LDA #$052 l' o7 D1 M" X+ F9 X- [2 d
- STA $1C,X ;生命赋值
( W1 u) H* k. D6 z% g0 r - FUNRTS:
' N. Y; l, ~& S7 A - RTS5 a+ a \ U$ N* R! T
-
4 a1 V& C* I9 z$ P K v3 d, U - Weapon: ;武器切换
1 Y7 f* f5 |+ b. ?% L/ ^- A6 u1 ? - LDA pause ;暂停状态判断
0 g0 n2 B% T& J6 J - BNE WEARTS. m9 M0 d: [1 M- L- E% S( I
- LDA $04,X8 D w9 K5 B2 c; a8 r* c
- CMP #$20 ;选择键判断+ w7 Q& M' l9 m( W" x1 P n8 e5 o
- BNE WEARTS, Q4 U. R: X$ t% [3 b5 u X
- LDA $12,X
6 _& {- O6 @9 F7 ?* K - CMP #$03 ;武器值判断9 r7 H2 _! _6 {3 M0 t5 f4 ~
- BCC WEAINC
$ o& C$ c+ R7 t; Q! i* s - LDA #$FF' [! G5 ]" Q. [8 F% Z& X/ y2 [
- STA $12,X ;武器重置! c* Y3 Q! @. J7 e
- WEAINC:
& @: y/ g& v3 D' c* g4 _ - INC $12,X ;武器增加, [1 r- w i: u1 K' t
- 8 }0 E9 `: m4 A- x; J! j9 o
- WEARTS:( d, O, I7 o4 h7 w8 B
- RTS2 ~: b; M% I* K/ E
- 8 r' n- z$ c9 t
- Power: ;威力: G8 v- j) h1 f$ C1 z6 e- j
- LDA pause ;暂停状态判断
" Z0 {3 ^6 B3 G0 G% c7 B - BEQ SPERTS
# C. P/ M0 l, g( x8 ^* X- X g - BUT_LEFT:7 V) R4 _, z O
- LDA $04,X
6 R# j* `/ E$ c( q - CMP #$02 ;左按键判断
) R9 g# |- C, O: u1 z- H - BNE BUT_RIGHT
3 _% x. F6 x( Z7 ?8 J5 X6 g - LDA $88,X
0 F7 Y1 d- s- z# i - CMP #$00 ;威力判断# |4 s" B$ e# q2 w; R0 m3 b
- BEQ SPERTS/ |8 W9 _4 k4 d
- SPEDEC, p; _5 S5 `. B3 l7 r% h- }+ c7 ~
- LDA $88,X ;读取武器值% J( U; K1 f, y
- SEC W0 }* Z6 J; ?6 j
- SBC #$08
% M8 l% j1 _7 N5 n6 W. j - STA $88,X ;威力减小
* M9 s7 u- M8 f* F1 _ - BUT_RIGHT:: I+ [4 o: u5 w& t' l2 a7 N/ P
- LDA $04,X% a8 W: I2 K% `
- CMP #$01 ;右按键判断
+ ?0 i* C+ [" ?. E- s/ a. n - BNE SPERTS2 _. p7 H& D2 R% z$ p8 p
- LDA $88,X
& n5 ~6 e% A, h+ ] - CMP #$10 ;威力判断3 h/ _ ]1 K7 T) {' w
- BEQ SPERTS: u# B J+ f: v" f1 F b3 q+ ^
- SPEINC:; o1 }! \, f. D) k6 F
- LDA $88,X ;读取武器值0 J# |1 O( `. D/ s+ r$ ^
- CLC
5 @; i2 g$ ~& u0 z! w8 b( K - ADC #$080 J: M! [0 H2 S0 A: T$ u* s# i
- STA $88,X ;威力增大
% s& P# _ {3 m4 h -
# e8 t3 U- v( m$ u4 k$ ^- l - SPERTS:
5 }5 w, O7 n( A0 K/ Y& _' \ - RTS, c% p3 }' w( c% ?
- ^, g. o! d+ x( [; W- BULLET_NUM: ;子弹数目
' p: h# L' S9 J+ r% b - LDA pause ;暂停状态判断' l% T$ S3 c, J2 }6 v' `
- BEQ BULRTS3 T% N+ }. H" |7 w4 w( [; M
- CPX #$00 ;主机玩家判断
* L0 e; F- s7 H3 P' }5 n2 ? - BNE BULRTS
" ]; F+ L- P0 y( a/ v - LDA $04,X ;主机玩家判断
; E ~/ r% b$ b - AND #$80 ;按键A比较/ o) I9 ~1 [# Y, [6 t: e
- BEQ BULRTS8 u3 k2 F1 c( Z d3 D0 g' p
- LDA $87 ;状态判断
* l1 V. K$ S1 v6 Z - BEQ BUL_2
( a) {. c+ K& T1 o% ?; |4 U, q( i - BUL_1:$ E1 }) e @( m2 _2 I
- LDA #$00
3 R" F4 _, p2 T' N - STA $87 ;1发子弹4 r% p. s1 k6 c0 @; d- C p8 a
- BEQ BULRTS
! j3 e" A6 w0 w l& J - BUL_2:5 t, h3 N) I& `6 a
- LDA #$01' n* `1 w9 L7 R" F4 ?; g
- STA $87 ;2发子弹( b" T: ~: h, @& D0 o- a* z/ R
- 3 V# R6 I$ \( I4 X1 t( H8 f: S
- BULRTS:
( d6 f E4 h7 G- U, b - RTS
) E+ F% h# u5 N, ~5 E% S* A2 s1 k -
* B T+ R8 ?! p0 s n3 t
4 `2 F# [) t: D$ d' ?- BULLET:
* F r5 [; |) Q2 V. M# B7 m - LDA pause ;判断暂停状态
8 y% ]+ M! a7 [$ \, Z9 B" P( k - BEQ BULLETRTS% k0 W4 T R- q `0 L; t# K
- LDA $04,X' [. f" I9 u0 B: t
- CMP #$40 ;按键B比较
7 V. L' U D s2 @ - BNE BULLETRTS. K3 S) d# s6 A
- LDA $6002,X ;读取副武器
' x- X- |# Z) r& x; r, p; ?/ R5 z - CMP #$03
) C R$ a0 s8 o0 P* S9 c - BCC BULLETADD
' ~# Z) \1 I& |8 V+ k0 T+ E - LDA #$FF
, R" m6 ^$ c2 s$ I. u - STA $6002,X
- O6 O9 j# b* k6 W - BULLETADD:
$ F3 O; S2 m. S, _# Z - INC $6002,X
4 B- ^% H/ D) g" l. @ -
5 `5 d& _+ a V) A4 ? - BULLETRTS:7 @: S& t7 W! y$ r% Q+ _( z
- LDA $6002,X. j+ U4 g7 E! \
- TAY
0 ?0 H( V; p3 @ g - LDA BULLET_DATA,Y
: f& ]# g( Y# y( l1 ?. {! y - STA $6004,X ;写入副武器数据7 a7 Q2 m( }4 G+ D! s
- RTS
, o$ D2 _* p. P9 U$ g' E9 L: |7 j -
: y, b" \1 |' n0 G -
8 q4 V6 c" S4 g - BULLET_DATA:- w5 z) a& s8 G2 a6 V I# |
- .BYTE $06,$02,$03,$042 p/ V- [ A' e6 `7 m
-
- v5 ` f2 `# L M. M -
) P _$ l h9 @$ g+ { -
( u% X7 ]9 x! u, i# [8 [! ] - KEY_OPERATE: ;按键开关操作
1 A) L b; Q; Y- w# B7 y - data_protect: ;数据保护
8 w* o8 K. k2 @8 x/ d2 A - PHA
( E' N8 r! H* `9 d" r5 w - TXA
! x& X- P) N+ g - PHA) J4 x) t7 r) ~8 Z- S* a/ S- X
- TYA8 a- o+ }4 m r7 A5 Z+ \
- PHA: _) @% _8 J! [: C
- - h- k) @. t$ T: O( b6 O
- FLAG_INI: ;开关标志初始化
5 @1 t5 E! }0 j$ R" k8 g
. l- ?) g# A b8 ]; L: H- LDA $600F/ F8 l1 J. E* f b0 a+ Z1 L6 }+ ~
- CMP #$016 n3 r7 K' ^% V, @$ {- o, w
- BEQ pause_cmp' w# d0 c9 s5 k$ r
- LDA #$006 z- O4 w: ~- |( a# U F+ r
- STA $60006 s1 x# ]: i. E, s! `
- STA $6001
. G1 n$ z# L2 z - STA $6002- ]: V3 H1 Y/ _% z S* _3 t
- STA $6003
1 w- F! J5 x: ], f* L @; h - STA $6004
. E1 y8 i$ S/ q. i - STA $6005 o0 n; o9 ]* K1 r. P
- LDA #$010 i Z f) ]' G7 w! i; x$ @
- STA $600F6 r8 ]9 P0 T6 \ j5 q( L2 O3 C- n
- w x& k( C. B1 c
- pause_cmp: ;判断暂停状态
3 j ~6 G" }$ z+ ] - LDA pause. r9 a* ^+ v$ d) a% X% _
- CMP #$01 ;判断暂停状态* i4 m/ \+ x% N7 Y$ Z/ T% y( ]( {% S2 h
- BEQ button_press
4 o W# [. X2 C n- d - PLA# {% w9 ^' H5 x! g
- TAY
6 Y( O t6 F" ~6 C, e% W - PLA! l, I) }7 O8 `/ R @; ]6 ?. q
- TAX
) H" w3 X4 U' g4 x H - PLA
7 Z5 P* y z* j5 Q2 g - RTS
/ y8 y8 i: u U2 |$ h - 9 \, ~4 N( q; J" G# ` q
- button_press: ;按压操作
9 t+ ?) w/ l5 L. v/ ? - ini_Y:
- f5 u$ Z) Q- S! r - LDY #$006 s& l% T/ p& C( J) W/ O! X
- button_cmp:7 P5 H$ F% w4 Z% E
- LDA button,X0 v L! `+ B2 G. @7 o0 U2 x
- CMP ora_data,Y I. ^# ~) j* e- Y
- BNE count_Y_cmp
" w( n! ~( B1 q8 c- b - flag_cmp:
0 |9 L- B. U: W - LDA flag,X, s Q/ L, ^8 B# `4 H% @# V* M
- AND ora_data,Y9 @ W/ n5 l* n% p. o2 u1 W
- BNE flag_and
4 M c( d3 O! l. j0 z$ b3 a - flag_ora:0 O/ T& ^+ K4 m! m
- LDA flag,X' A8 U/ T7 B7 i7 a
- ORA ora_data,Y
1 T+ L/ {5 @' n @1 R+ s: J - STA flag,X' O2 B, b" g6 G! d- p1 R9 t( x
- BNE count_Y_cmp
+ S; y" J5 ^$ t( R% S# q* Q - flag_and:
6 E2 H% M4 I9 w7 _ - LDA flag,X
- y0 p5 ]! b+ d( _3 ? - AND and_data,Y
5 t$ n0 K: _$ u/ K. h; {! M - STA flag,X
& n( B9 B% R3 P ` - count_Y_cmp:
' S" l% [$ Q1 ~0 g$ E - INY, D6 K# X8 p5 T7 h
- CPY #$08) G$ o: w4 H# J2 \) `- ~
- BCC button_cmp
: I; S2 o' P- Q X- \- z1 ~ - ! i x2 I: Y% Q0 l" K3 E
- data_extract: ;数据恢复
1 G6 q- W1 }! {3 x7 j: `5 ] - PLA
; t# a |% F/ X3 n$ I" R2 ` - TAY) h& C3 ?( F f# q( U
- PLA9 e: Z: e# z1 H ? m0 D
- TAX' _' u8 ^7 n u% S0 h0 S8 @. m
- PLA$ b3 O! Z4 f+ ~1 r; k9 y/ _- }
-
; ?+ U8 `; \2 l; d. b - return:
, H* F8 z+ O2 v9 l5 g# I9 u - RTS
) l+ R* F) l7 ?% i -
' _' [! t2 W- `3 J- r9 G - ora_data: ;按键相或数据
! z2 W9 N! B" K7 c - .BYTE $08,$04,$02,$01,$80,$40,$20,$107 r6 S( K% R! R; V8 R+ E' O) V& @
- and_data: ;按键相与数据. h6 s. X( K0 F
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF0 u) A+ U: K8 G7 P6 y
-
0 o4 l6 [& }, E0 Y: ? - % X' ~" C" u- K; M0 Z
- 4 e. ?# X: [, ?" E4 ^9 R
- ! p. V3 y+ ~ j
-
1 Y, I) J0 S. d7 E! W( [ - & ]( E" W: I" F2 R
# S+ C d; }* G9 p$ z; i8 Q
3 l% t9 S: e! V- 0 C! |% {1 R1 l
- .ORG $C264 ;自定义的MAPPER2切页程序
6 q5 R, w6 s6 L+ T2 F* }2 J* @' x - PHA% E$ l5 ~# z7 U, K9 |/ y8 ?4 l5 e
- TXA
V0 ~" `1 R; z- T5 d) D - PHA& B. Z/ f0 Q+ ^: L s
- LDA $0066
( s d, d& c$ E9 }+ I - BNE ADDRC2801 h' t; S; u* z7 m2 A
- LDA #$07 [0 _3 H9 r! z, ^1 A" E p4 o
- LDX #$03" {- Z% i" P. i1 a
- JSR $CD9B ;自带的切bank方法
5 ^2 X, P6 P7 Y G$ K - PLA
" V; O4 E: z* Z! F7 D - TAX; D4 J5 M! L/ N0 `) r
- PLA
, G# P* V! K; C- v - JSR $8000
9 f- Z5 G' q' Y) b' N - LDA #$06
/ W5 S1 p. U# X; K, f - LDX #$03: r- A% p7 S7 I1 K5 Q8 n
- JSR $CD9B ;切回原该切得bank(可以不用)
8 `: o# J$ g. r7 [2 E - RTS7 m1 u! b2 l/ A% E. b- S
- ADDRC280:
1 g' h# @0 V; T" M3 [; B( Y$ v% y - PLA }9 S+ D) |: D: c" n' h% v: [
- TAX. @5 e9 j. h: {3 w$ y0 V) X! i
- PLA
4 t( t9 i0 O* n+ g - RTS
. a( o% H! n! i$ G/ M$ Z& o - - r% w, E, r5 v6 l# a* l
-
L2 n6 D; P% T. d { - ;[FC][最终任务PPU][END]; P; `9 s5 Z( B6 N" ?* J
- .ORG $C056 ;跳转到PPU重写程序7 D* v7 P3 D; j0 g( x* I) b' V
- JSR $7000
. z( q4 |. z# l7 p3 P' A - 2 S9 `8 b" u5 T y3 R- x. W6 }( e) s
- .ORG $CEBF. e4 W# l: i0 ]4 c8 K
- JSR STAGE_DATA_WRITE ;跳转到关卡数据写入
% o% ?8 w3 U: r& g7 V -
) X' a. b$ O* k) ]& u5 z- a, l - .ORG $E460
: q g3 y9 r6 V* T* X M6 ` - JSR BULLET_DATA_WRITE ;跳转到副武器数据写入: c+ E0 O" o/ U0 G1 C' [
-
) g) F' Z) Z$ P- i; R" r8 r- F- P - .ORG $71F0
1 |6 { i' d0 J& |0 S - STAGE_DATA_WRITE:9 C0 W( Q! [3 `- e: t9 N! Q
- LDA $6010+ F: p& P; _( _/ b8 U8 E3 M/ ?6 ~) C
- STA $1E ;关卡写入1 K( Q' K+ J6 C# A/ `
- LDA #$00
2 H* _. W0 m P7 ]$ z - RTS
, }+ K H# L3 v5 H7 L# @ - .ORG $71C0
, f- V; e! n0 Z6 j - BULLET_DATA_WRITE: ;副武器数据写入
6 K5 Y$ f$ d4 f' { - CPX #$0E
% ~. S7 ^2 ~4 t7 M3 K) @ - BCS P2_BUL3 X" n: l% b+ T' A4 K R4 J/ i$ n
- P1_BUL:, q% A, Y( p5 a$ n& _
- LDA $6004
5 h1 ^, p0 _* Z: P4 ]2 I - JSR $D7D0 ;P1副武器数据写入
3 J, C2 F$ L- q2 j. I2 X - RTS
4 }* c u0 |3 v7 F: K3 f: H x - P2_BUL:# q. d0 L4 f+ C
- LDA $6005
# m* [. ~0 j" ~0 s" F9 C - JSR $D7D0 ;P2副武器数据写入
# W+ a4 |$ Q" t. x" I: {% P - RTS
7 x E8 o. c. ? - * d4 T @$ l- `3 Y8 @$ y
- ! `# j: {, Q; d2 K7 ]
- .ORG $7000
8 x) d; K0 u/ p) Z+ x2 I4 B) C - + Y# s% [4 c$ q; y2 N- s
- STY $4014 ;补上覆盖的精灵写入指令" N3 a( L5 J3 a) g0 d4 H
- PHA( L2 P4 l: [' I# w5 t
- TXA
9 W3 a2 k# I1 u9 u - PHA
0 c4 y6 v+ t9 x - TYA
2 f+ E" u" d* @( b, z8 X _9 i - PHA$ ~# R5 e" G7 T# j
- LDA $0C
. B4 ~! ]1 m7 [/ Y+ T8 H/ ~ - CMP #$01 ;比较是否为标题画面8 N6 A3 n; l+ x- R$ f7 V
- BEQ PPU_STAGE
+ Y w. ^6 E J) L: n - PLA3 V# q9 i7 Z$ V" ~' ^4 n
- TAY) S6 N& `; A- V2 }& O# s
- PLA
/ p5 s3 m) {. \ - TAX& R; N0 t" ^7 a* A2 s" D& x
- PLA
0 F1 v) y& _2 U5 ]- | - RTS6 D m" ?1 G0 q1 h5 y8 g6 H' R, S
- PPU_STAGE: ;STAGE显示程序& w, u. `5 i! E! f
- LDA PPU_ADDR_DATA
: M% V& q5 e" P- L A - STA $20068 Z. k* u' _; H# t
- LDA PPU_ADDR_DATA+1
; u& ?, ~. S! h8 Z# q: \$ C+ q - STA $2006 ;坐标设置
5 R3 E" w( ^+ X; J+ U0 l - LDX #$00
2 T; Y6 C/ `- z6 u, B+ p6 ], D - PPU_STAGE_WROTE: ;写入STAGE字模" q$ `) g6 R2 d* l2 Q6 _$ t5 F
- LDA STAGE_DATA,X/ ^; V# g) E# L, O3 m6 t
- STA $20072 i3 H7 Y+ i* Y4 Y$ _
- INX
4 S/ E( q' d |; G - CPX #$06" x" K+ k( {# t2 j& @! _* \1 [ k4 ~
- BCC PPU_STAGE_WROTE; O; J3 S% x- A* H( y% W- O
- LDA $6010
' t- s% X# }7 s7 J- y& b - CMP #$FF ;关卡数据初始化条件判断
* z* N; P; {; g O$ ]! j: T9 H% o - BNE KEY_B- d; w9 B& C3 q$ s- w
- LDA #$00+ c' x& s/ ~! [) }0 d
- STA $6010 ;关卡数据初始化
# \2 i# R9 @9 c: e) R - KEY_B: ;关卡减少
* ~$ C; c! i* K* q( u" O5 L9 e - LDA $04& ]+ g; q' y: Y0 G7 Z' H2 R
- AND #$42 ;按键B或左减关
8 j" B' ` k* D/ e" ]/ k l6 E! s - BEQ KEY_A
- M* s% d0 ?/ e" }$ R - LDA $6010: X2 a4 `0 f" Z8 ]( ]
- CMP #$00 ;关卡比较
. z+ @1 R$ `3 R/ |# Y6 Q - BEQ KEY_A
2 |% a7 N7 V. P# n - DEC $6010 ;减关
! B% v$ H0 g) A! f, f1 \+ t - KEY_A: ;关卡增加0 {1 G9 }. r/ v! S
- LDA $046 v0 b% s! f: M8 V' O
- AND #$81 ;按键A或右加关2 e7 m/ z: `9 `, I* _' A2 V
- BEQ PPU_NUM_WRITE4 ~4 K# C8 _- ~/ e1 |8 k
- LDA $6010
" X! q- v D# B3 ~) e8 P - CMP #$04 ;关卡比较: I, w. i9 C2 }0 U6 u/ ]
- BEQ PPU_NUM_WRITE
0 v3 V1 G$ [+ z3 z5 _9 w0 L( _ - INC $6010 ;加关
, T2 e9 D3 r8 c) Q3 P7 `! z7 c0 U - PPU_NUM_WRITE:
: J( ]! v! y7 c8 Y. f R( C( X - LDA $60104 ]& v, i$ I8 k) H. j6 |: Z. J! G
- TAX
4 `& t* w b. _6 B8 c! S F$ K% g/ w - LDA STAGE_NUM,X ;写入数字% V6 A0 c) V. b6 e4 z
- STA $20079 P4 B) ~( S) k6 F3 {4 E+ Q
- PPU_RTS:8 ]3 \* l9 D2 ^
- PLA
7 U, s* h# T. M" t# }$ H6 y - TAY
6 C) T9 ?7 ~- J& ^& W% E8 v& N) y - PLA
: W! {2 x7 Q$ [3 J. P - TAX
, t2 d& V6 A9 Z - PLA n; n! q# W( d u" Q4 j3 {2 r
- RTS& U: Q! n# {2 F9 V' j+ [$ r' P
- ' g' x, f' X5 i. W/ R7 P+ ]
-
+ c% D) o) A4 u/ H - STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据
6 ]/ `1 s4 v, |. s - .BYTE $EC,$ED,$DA,$E0,$DE,00' \+ S, E, y8 {# D; t
- STAGE_NUM: ;关卡数字1,2,3,4,5字模数据
; L/ m) I- M8 [9 @- Z. | - .BYTE $D1,$D2,$D3,$D4,$D5" ]) z! V& C, R8 ~- O/ C4 ]; [) `, r3 i( K
-
. r$ l' {; t' o/ [4 T& B - PPU_ADDR_DATA:" |: d% p" Q+ Z* n& E% U7 B
- .BYTE $23,$0C9 t8 G- p1 A- g! g* o0 D6 z. ~8 @
- ; p: c d! }* T
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
1
查看全部评分
-
|