|
|
本帖最后由 yandagui 于 2017-4-21 18:58 编辑
7 z2 ?/ |& V( L9 \# D3 [6 c! d; f* {3 ~( l+ v$ ?
[FC][最终任务][END选关]
0 S3 u. C7 X+ f: e
9 H# Q7 j" r/ @$ U& v& g时间:2017.3.29
1 S0 l2 |# |9 y+ W/ p作者:FlameCyclone
; ` \* d, n$ b. u7 G内容:) R- [1 p# q. @: z' a: ]+ K
1.关卡选择: 标题时,左或B减,右或A加(1-5关);$ }, }( h) _; n; }
2.无敌锁定: 暂停后,按上键切换;
6 |: X: y8 A6 c* t: w) L. N 3.生命加满: 暂停后,按下键切换;( Y+ d: J) P! V4 |5 b
4.速度调节: 暂停后,按左键减,右键加(1,2,3三级);
: ~% s5 |8 W( l2 D1 f4 J 5.子弹切换: 非暂停,选择键切换(普通,W,L,B);, v% r- v3 R0 ~, y: x- f
6.B弹数量: 暂停后,按A键切换(1个或2个);' {1 {3 G. ?9 h" X
7.副武器类型: 暂停后,选择键切换(普通,W,L,B),非普通时子弹方向是向右发射的;3 k& G `6 C, P3 a+ F8 M
- ~" }' S/ K2 t* M" P. l# w

[5 `! p) P5 e- U3 a- a A - w9 ], N8 k$ { D% s7 t3 z- E
2 z* l9 k2 O5 }) c: m/ G2 S

" V% E: E$ u$ b: t
1 W- _1 ~/ j- V2 w% {8 Z- a8 i' g8 u, j0 @ w6 d5 t l" ~
FlameCyclone.ys168.com
6 {; S0 ^+ F% K7 x6 Bwww.nesbbs.com- ;[FC][最终任务KEY][END]
5 E: x# T, M/ W3 H8 B0 f& I4 B - button = $04 ;单次按键
1 {1 p m" M1 x7 F - flag = $6000 ;功能开关标志 w$ Q, S- b! d- |
- pause = $000E ;暂停地址
, G, t" Z _) N5 @4 M: X4 u4 i7 I
1 W, r( D: ?3 S* X! ?1 L- .ORG $80001 A5 e. ^& E3 k/ z& L$ H
- LDY #$08 ;自带的按键程序
3 ^" R. U9 z; c5 W+ I5 v - ADDR8002:
, B V3 o# w$ x% ?- N4 S - LDA $4016,X
( M% J1 O# ]1 f0 r - LSR' Y, P- z4 @- @) \' Y! T% }
- ROL $0021
7 V, p- q) W, ` - LSR4 ]2 V) H* ]" L5 g* J5 R8 Z! Z# p( ?
- ROL $0029- @4 _0 I% E- M& v
- DEY' S' S2 s) |9 H$ C/ v6 ~, F6 P
- BNE $80026 b' U6 u/ T" U# w* [% k
- LDA $0021. `- a$ u' k6 Q) C. K0 J
- ORA $0029
3 C+ f- O( ~: h) N+ n" T, ?9 G - STA $0021$ c' }# U Z) j4 J/ _# _
- LDA $0020
: D. S- K. V, O5 f% ` - AND $0021
& M6 J( j# Y9 I5 Q: `* V - STA $0020: e5 ]1 t1 \4 B
- LDA $06,X
{+ \! g0 A) m - EOR $00208 t( @; z3 t2 B6 X
- AND $00201 [/ a# {; F# ]( s" ^
- STA $04,X5 t4 c7 ~$ P3 V# c
- LDA $00203 L" Z4 v- F" R6 v9 B( G
- STA $06,X _ C$ K/ a6 {8 \2 f
- JSR KEY_OPERATE6 ^/ B" R* _/ X
- JSR Function ;功能调用
, o4 I( o6 b/ D: E - JSR Weapon ;武器切换调用
+ C% J' N4 P: }# u$ y" F! v - JSR Power ;威力调用" j9 G; M2 X1 q5 T% h$ \
- JSR BULLET_NUM ;子弹数目
8 ~" i# a: _! J - JSR BULLET ;副武器类型1 O+ ~, g+ d% N; C# z/ a
- RTS3 `7 w' f, l" l/ B) ]
- & m% J! k6 ?- z/ I+ s
-
1 T. ?/ F& I5 E# ^; L% M5 E
- l: x- a9 ]; ]& J- .ORG $8050
* `0 m3 h4 d* x5 _; v - Function: ;功能# a( b: w; e' d; V+ K6 x3 k; N
- WUDI: ;无敌
+ e( j" ~9 V: O$ ~1 w - LDA $6000,X- j, w' ^$ [7 W+ P6 t2 I
- AND #$08 ;开关判断
5 ]; O0 y- k0 J7 F9 \ - BEQ LIFE5 D9 o l" w& c
- LDA #$05
7 _8 i" y5 O6 y" j( z - STA $05DC,X ;无敌锁定; h# g* ~4 R" a( W; P7 o; h$ c+ g
- LIFE: ;生命
' u1 O9 u5 O; L$ f; F! M1 C! { - LDA $6000,X( K& J6 M: E* A2 K2 y1 L( N, V
- AND #$04 ;开关判断
0 h r1 F' R" H$ W8 S, d - BEQ FUNRTS
/ q6 v+ ^+ }) y/ ~, n) b0 h9 P - LDA #$05
, s$ r! q, ]. \$ c0 b2 g3 [ - STA $1C,X ;生命赋值. ]5 x2 o" O; d v( C; E
- FUNRTS:6 ?5 X6 w' `0 K. R
- RTS4 ~$ x" c+ [8 X% Q+ I G, U) P
-
& C L' h# Q- \0 V - Weapon: ;武器切换/ W% t% _( u/ J
- LDA pause ;暂停状态判断
) t6 H+ a$ L/ U6 h - BNE WEARTS4 U9 H/ H i, @4 g2 y
- LDA $04,X
0 L( a7 W: T/ E: k3 d - CMP #$20 ;选择键判断 C8 Y5 k& L5 R7 y R$ L2 H1 F" ?) p
- BNE WEARTS
& p/ f1 ]. K' T" |! O+ l - LDA $12,X" Z0 v+ Q* k9 K' G* Z2 \% k
- CMP #$03 ;武器值判断
# \/ i" ?/ `& w' w) }7 A - BCC WEAINC
# |- t, u$ q' E U4 @ - LDA #$FF
e& t3 \6 _1 a+ u) T- ^ - STA $12,X ;武器重置
t6 Y; y3 A# |7 |8 h, M/ [! z$ ^ - WEAINC:
- z0 s& ^7 E; _# F5 q - INC $12,X ;武器增加1 R6 z( g3 b- y
-
8 V' s* D- `- Y0 @0 S- c* X+ q/ C - WEARTS:
. q+ B K1 n3 @2 g' e - RTS4 v3 d. r, \% D: e
-
/ Y8 Y$ t V" Q0 c9 u# G: h - Power: ;威力4 N; \% [: ]* `
- LDA pause ;暂停状态判断
! O5 W4 W3 d5 K% z- n - BEQ SPERTS
5 B' }6 K1 E9 ] - BUT_LEFT:
* j4 N0 y: }0 @ - LDA $04,X
+ X9 F. o C" h! M0 h: K% B' y - CMP #$02 ;左按键判断
3 l' E. @# n7 y# x! @2 { - BNE BUT_RIGHT
4 {* b( {& a* }( y: | - LDA $88,X
. q6 P! a3 d+ O- a2 ` - CMP #$00 ;威力判断( x( v1 }8 a1 E% m5 N2 i
- BEQ SPERTS3 q1 C5 Z1 m0 w# k: c- E
- SPEDEC% K0 O) s3 n. m ?- Q
- LDA $88,X ;读取武器值) f5 T; E7 C# B& a2 |3 F
- SEC! A+ h+ w6 A' Z f9 Z3 N
- SBC #$08* T, r9 G9 Z8 d* q
- STA $88,X ;威力减小" R: E5 z6 Y+ g' ?9 S: ?
- BUT_RIGHT:4 n9 k% X8 |" W8 @3 m' _- A1 L
- LDA $04,X
* T- a8 N- v2 x! c7 r4 z1 c - CMP #$01 ;右按键判断
% b/ Y, u* W7 b2 \0 | - BNE SPERTS
" p9 B, W) u1 b - LDA $88,X5 \ {% J$ P8 w8 }0 |4 `% s
- CMP #$10 ;威力判断
2 c/ o& C6 m2 [' X9 }0 Z0 y; q - BEQ SPERTS5 \/ S6 d& L% T& C9 J
- SPEINC:
" ]6 w/ H9 T7 d - LDA $88,X ;读取武器值4 F; r- Q; j" O. h
- CLC
! W: Z4 b+ o' u8 k - ADC #$08
& V% V+ k; V5 m1 K" b4 ? - STA $88,X ;威力增大6 x# I" T9 E B1 K
-
5 f- C6 g3 Q5 ~ - SPERTS:
C* b! }; v1 [( F( Y+ S* r - RTS
7 v( |7 y6 Q3 a! `" W/ W2 p
* O- g) \3 X& \2 S/ ?" O' C- BULLET_NUM: ;子弹数目4 ~4 D5 i& ^" Y" D$ b# d$ Y
- LDA pause ;暂停状态判断
7 a) |! R; T3 F1 W. v - BEQ BULRTS F1 y. Y9 ]7 G$ l" L, E6 C
- CPX #$00 ;主机玩家判断7 r$ ^( S1 l/ v3 n% n$ Q g
- BNE BULRTS
, R! e: F `% X% x& l - LDA $04,X ;主机玩家判断
, P n5 Y3 W% x1 J& q' _' o# ^ - AND #$80 ;按键A比较
7 f% [' ^9 l' k* p4 y - BEQ BULRTS
8 ` _+ |: {# L/ c - LDA $87 ;状态判断
, i; ~, `. u: W, N - BEQ BUL_2' u! @/ _' x4 u8 F; J0 M3 t- q: t
- BUL_1:
& P7 e9 n- ^5 A2 w; d+ ]$ _7 O9 V0 B - LDA #$00
$ D" Y+ ], X! x+ H/ j& r - STA $87 ;1发子弹, r O8 d) v0 v# z
- BEQ BULRTS S3 l/ G$ }" \4 {0 F3 ?
- BUL_2:
( M/ C- h" @! ?! Q - LDA #$01* G+ t' M# s+ q$ K
- STA $87 ;2发子弹: v8 {8 r- _: k. @! I( w% I
- , \$ b; i0 Y/ h2 x6 F. G" \5 X
- BULRTS:) J$ w ?0 Q( q O3 j
- RTS( U6 [+ `8 u+ z$ X6 Z
-
% i3 u9 O" ^$ R6 L1 k8 @
$ u! R/ u0 w1 a! Y- f- BULLET:: h' K% y9 C4 E3 p8 m
- LDA pause ;判断暂停状态9 h2 L! h4 H" b) r
- BEQ BULLETRTS
8 M0 l7 j: k- B. f - LDA $04,X
5 b, l& s1 G! @% M0 ` - CMP #$40 ;按键B比较
8 H' O, ` [/ B - BNE BULLETRTS6 F% s& ]. u, Q. I9 f) e7 p% Y" O
- LDA $6002,X ;读取副武器; w! ^7 \4 H* J* u! u
- CMP #$03
?1 U% [4 b# k7 j4 A2 o+ _1 g - BCC BULLETADD g- y9 D% Q6 s( e3 s# R
- LDA #$FF+ ^& Q) p; N/ @
- STA $6002,X( T$ a! v. ]( m. |' ?6 R' Z/ f
- BULLETADD:
0 k) m" v0 O1 y3 W' p* q - INC $6002,X; S: T% ]( N, M& y$ I
-
% a8 {) T) D ?: Q- x8 i2 f4 J0 q3 y - BULLETRTS:
2 G, S' {4 Q7 \1 Q: Z" z - LDA $6002,X
7 e8 H% U0 H$ f( g4 r; T* M - TAY
9 M8 u& l2 w- x& ?$ T. u$ z/ _ - LDA BULLET_DATA,Y
) X/ s8 I3 x6 J& `" _- F - STA $6004,X ;写入副武器数据7 \( {- g4 X* F, T& G
- RTS
4 m2 M; F7 h# X( {+ b6 @ Q8 B2 w -
5 `3 w0 E$ u+ [9 e - & {5 a/ y9 `# c* E: I
- BULLET_DATA:
& {! `& D: j4 K3 u - .BYTE $06,$02,$03,$04& Z% E: @ m; q" c9 O, B3 z4 b: j
- 9 {$ i# y% Q, _" K/ ~
-
8 y0 s9 S l9 _" t: C -
! n. {' L: T/ ~5 [4 V" z9 c' |: `" e - KEY_OPERATE: ;按键开关操作2 o& A( j- H% u+ O% P' \
- data_protect: ;数据保护
# V8 J# W$ j# k; C$ q$ o* V - PHA3 Q7 [7 C: s+ L) z6 f) M0 j
- TXA
* \7 H. A9 _8 m6 S5 u. f2 }5 ?! _ - PHA& x, f, T7 v0 ]/ e8 @
- TYA: r) f2 S9 G8 \ f
- PHA) V: i8 X, P& e% x0 u
# _+ ?% ^( }- ^1 W( K5 R4 S% O- FLAG_INI: ;开关标志初始化
& M5 e6 ], _4 r- f2 r - 4 F1 L7 s: t% E% E0 N
- LDA $600F) l$ ^1 T! B& u% e( X8 C* }
- CMP #$01
' I9 a" C+ P [1 R - BEQ pause_cmp' \$ d+ s' K' ?
- LDA #$00
p1 p, K& L1 a7 F' s5 [5 N! Z9 a - STA $6000, y' n. s4 f' R! o) c
- STA $6001# F( a5 f4 W3 a6 y
- STA $6002
; v5 x7 W) E1 Y4 o9 G; X& F2 } - STA $6003
% t% c3 h& s8 d& b! C - STA $6004
0 [2 X8 L- ~# [- k1 ~0 n - STA $6005, J# U8 ~) z; L# X1 I
- LDA #$01
! e' W; p2 [5 Z2 y7 z% d/ ^/ u! g - STA $600F
# y( Q8 p: g* u/ _+ u - ! K |" {# U, ~8 l9 Q1 ?# I/ M
- pause_cmp: ;判断暂停状态- a9 R4 S. F" V( {3 |
- LDA pause* [$ p" U: C8 ]' Z$ g, x
- CMP #$01 ;判断暂停状态
0 L! H: v- G% E" F K* @1 f - BEQ button_press; l/ f" ~. c. q- a1 b% o
- PLA% B6 L" Y8 z; N3 l% a
- TAY
% }/ Y- D9 b+ ~' m% }5 m - PLA% ?! O" u6 S- v; c, `$ q
- TAX
0 h% _2 h1 ~6 E% W3 x& Q - PLA
0 O+ N3 k3 [- D - RTS
" o2 A' T6 V4 \
) x6 o9 A; w& V! T- button_press: ;按压操作& T( h! j0 j* W$ J7 n9 [8 G" `
- ini_Y:
. x7 F; g0 j4 k# v$ R - LDY #$007 t6 ]8 b" D n/ t$ Y k: `% I
- button_cmp:+ @: g- c+ |. @$ ]. E9 a
- LDA button,X
$ r- v- i+ L, g6 d/ l: N: b" T - CMP ora_data,Y
" s2 w- m1 A& {; u: {: M - BNE count_Y_cmp% }: Q. J/ I' C1 b
- flag_cmp:
, W+ V& W9 Y1 {( F: U F4 D - LDA flag,X6 w L- r2 F2 u' l) e
- AND ora_data,Y
; z, L- T u' Z - BNE flag_and
9 a/ Q# L" a4 f; ~( J - flag_ora:
. K* a4 @+ c; `3 @ - LDA flag,X
3 t6 }5 S' v1 e0 T# v5 c2 z - ORA ora_data,Y4 K' R) n ?" U3 p, `- z
- STA flag,X
/ i% `4 W. C; F/ R3 r# l8 O8 k) T - BNE count_Y_cmp$ \. P! o; b; N$ a
- flag_and:
9 _' u8 \1 B L, K4 r$ g - LDA flag,X
- w3 S& ~# a1 Q+ ~- Y; q - AND and_data,Y+ q) h4 P, [6 f! N! t
- STA flag,X
1 N3 p4 Z) A8 _/ ?$ A6 r: x - count_Y_cmp:" u% i6 Z/ p, ]7 O' k' d, H
- INY1 {2 A+ e0 g* O, C& G
- CPY #$08
. l, L) S" j) J3 b - BCC button_cmp
/ _1 r5 B! R' {& E -
$ \9 L X1 A7 H5 ^* H; l% W - data_extract: ;数据恢复% M( H1 U5 Y/ T q& H" Q
- PLA. ^( O, _! o4 B! w4 W" t! t
- TAY
1 l$ w9 J4 C" i. o3 ? - PLA
3 ^9 S2 I1 x, ?8 n4 k - TAX
0 B |) n4 e9 p - PLA
9 }" w; Q5 O$ i# F/ K# h3 H - $ F% H- h7 ?1 B# j$ X# r) _2 `3 m
- return:) \* p u3 l% m$ W
- RTS$ F7 ^& F/ A8 x; P3 Z) f5 Y; I
-
- m* X2 X( E# P4 z/ H - ora_data: ;按键相或数据/ {. V. C' Q: r) R
- .BYTE $08,$04,$02,$01,$80,$40,$20,$10( ]/ s8 z3 y1 h* d
- and_data: ;按键相与数据* B$ W8 A( B' R) O. b2 e8 k$ Y# U' x3 j
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF- \0 \( c7 f7 @9 z: p0 x
-
% X( S- R: G# m( k/ T8 E' J8 {5 E - 8 |/ q1 U V+ s" D4 d- h; w
- - g9 m8 P! {$ i" q$ r* }; X
-
' F8 a( @+ t0 ^' k( T6 R -
' B. X2 t6 p! t6 o% B6 I; p2 E. H - / O+ ]: G& X5 t2 M
' V) k5 L- n1 z8 `, E" b9 Z! j- 1 u$ c! v/ ]( v9 Y, Z, i/ ~, p
* k, K$ X s% R* E$ u/ {5 f6 u- .ORG $C264 ;自定义的MAPPER2切页程序 r) c# h6 a( ^* ~
- PHA c1 P g* O( }3 F2 X
- TXA
/ I8 a( f: V- `7 x6 {7 _6 V - PHA* |3 t( L, r$ z$ J) B% x9 u6 w3 k
- LDA $0066: o+ o2 F: R2 b, A2 A ^7 a" B% C
- BNE ADDRC280
" ]) C* S8 }# @ w - LDA #$07" Q$ {& {. |- ]: I
- LDX #$03" X# O- D8 o2 }1 ~" {. |
- JSR $CD9B ;自带的切bank方法2 A% e6 {) C/ ^" S3 B8 o
- PLA
9 q( d+ }6 L+ @5 |* @7 x5 v - TAX
8 r- Q" d' x9 R# @ - PLA7 q; l$ u# L8 I. W- _: Q& E
- JSR $8000
, i! b B3 t, I - LDA #$06" B3 B t" q& B
- LDX #$03
& ?: N5 i* B9 K- l# h - JSR $CD9B ;切回原该切得bank(可以不用)* ^ R, T, ?' |2 h6 A4 u
- RTS
/ {9 P3 D3 T5 e$ [5 }5 M' J7 ^ - ADDRC280:9 J* U( u7 M! D
- PLA
1 \1 D& f# Z# y7 X. t6 N - TAX
; [4 P; {, d( @7 q/ o3 S, P, A - PLA9 q- g. s, t5 X2 T% |8 n; Y% R
- RTS
3 X# }. m8 {1 r/ t - 6 ^3 y+ i0 e7 ]4 G7 r
- # p7 B% L- z! r% Y5 m, k
- ;[FC][最终任务PPU][END]
' G3 Z$ @$ G$ a3 ~ - .ORG $C056 ;跳转到PPU重写程序) A$ D* X9 U7 `& o' b2 g
- JSR $7000
5 z3 O( h. U. ?3 Q, V# |/ G6 v
! z q, l% l* e8 P, H' _6 \( ]- .ORG $CEBF$ u2 _+ i C6 p" I8 K' Z. M
- JSR STAGE_DATA_WRITE ;跳转到关卡数据写入2 L- O' D$ n# r* _9 u$ y5 Q: z0 h' Y
-
/ S: k! I, M4 V- q' q+ x - .ORG $E460
1 Q+ ~2 C) w& Y4 V( J - JSR BULLET_DATA_WRITE ;跳转到副武器数据写入2 ~. c* {: Y0 q) h: I6 x# g
- ) D& \ {8 T. p1 y# _) E
- .ORG $71F0
9 n; K* v( ]9 u" ]: X: @ - STAGE_DATA_WRITE:
8 I1 v& B _" h2 z+ i - LDA $6010/ G% j$ D6 P% ]5 W+ U" e
- STA $1E ;关卡写入
! L8 F* W1 l( ~2 r2 c! C5 N - LDA #$00+ i) `$ u8 V; ~; n' V
- RTS
+ E) f# K$ q3 v9 d: G - .ORG $71C0
8 k8 e4 o* S. M4 r L8 _ - BULLET_DATA_WRITE: ;副武器数据写入: i" e7 l; X0 B8 ^8 M& Y
- CPX #$0E
- e+ B1 b8 q' N) }7 ^, _5 y - BCS P2_BUL5 P4 s3 R# u. M; F! m$ I$ `- l/ L
- P1_BUL:! C6 O8 I9 [2 h+ y3 Z6 L; }! D9 z, }
- LDA $6004
: e) ~# U Q6 T( g/ Z - JSR $D7D0 ;P1副武器数据写入2 u1 c: O5 A: }& [' q
- RTS' ]$ X( z9 A1 Z! i
- P2_BUL:& o% {4 c# b- |# v
- LDA $6005' S3 ]+ U$ |7 q+ J2 J1 o
- JSR $D7D0 ;P2副武器数据写入
. M! |/ {. @/ r1 g( B; a - RTS
8 k( t' \4 I5 l( c
) C! q; ^% B! p- 8 |7 D* {$ [: W6 I; a; n* h8 B
- .ORG $7000
/ ^& o- I9 b- K7 J9 c - 6 J; N9 Z6 r! D& s
- STY $4014 ;补上覆盖的精灵写入指令
( Z6 t/ r. U3 e8 h8 E& k - PHA
2 M0 K) t/ T# H' s. ` - TXA
. E3 I/ B) j2 c8 h6 ~ - PHA
& x1 E/ C/ C8 _6 _7 h( M5 e# G) K - TYA
; E; I$ x% B8 s+ S1 Y - PHA
6 l" F2 o% h2 H5 ^ - LDA $0C" }9 T4 T) V& K6 d( S! T& C
- CMP #$01 ;比较是否为标题画面! @. I5 v$ G! c) W1 A; @8 n
- BEQ PPU_STAGE
* U+ w+ t% l4 T- Y - PLA
8 k2 p2 q1 o/ @( d& y) J2 Y - TAY
1 {% q6 g& [3 r - PLA* W9 }7 | ^( V4 a4 R" N. g
- TAX
% v" N% o0 m6 e - PLA
) L7 s3 p" W, a - RTS
$ ^6 L. d& C! Q, m+ { - PPU_STAGE: ;STAGE显示程序
6 l/ ?3 h" y0 I - LDA PPU_ADDR_DATA
+ p1 s$ G! W. M3 Z: C - STA $2006
6 O$ ~4 @% K/ b - LDA PPU_ADDR_DATA+1
6 ?8 L( j$ m# Y, R/ R - STA $2006 ;坐标设置8 G4 r& i6 n: g
- LDX #$00
9 H" |4 S+ m9 {9 T- L, ~0 I - PPU_STAGE_WROTE: ;写入STAGE字模, H" P0 Q9 o9 @
- LDA STAGE_DATA,X6 U3 [* h; E) {6 s6 v
- STA $2007+ |* D& R; f* n
- INX
! I1 o5 Y, [8 q - CPX #$06( G' W2 Y0 c; i- D
- BCC PPU_STAGE_WROTE
+ f; ~# s: C+ K2 i8 m - LDA $60108 Y9 @7 v% {0 x+ @) v. a- G/ r$ b
- CMP #$FF ;关卡数据初始化条件判断9 ]+ x( B; v( X, o# G$ T
- BNE KEY_B) |4 u4 G, @! S1 i- R6 G% k
- LDA #$00. F# s( `& _' p- z n
- STA $6010 ;关卡数据初始化# K$ I @8 m; b7 n
- KEY_B: ;关卡减少7 ?* E5 U& O5 N; ~0 K$ m7 x
- LDA $04: |) t0 G1 \) X W2 z! ^ e
- AND #$42 ;按键B或左减关
$ n9 o" b, ]4 r$ s( N- C - BEQ KEY_A- P0 R7 i; K7 n+ T
- LDA $6010. Z; a6 x/ l6 v
- CMP #$00 ;关卡比较+ _1 T {0 r Z* X8 y' Z
- BEQ KEY_A/ f# \& E! Z8 J) x5 B6 M( R% \
- DEC $6010 ;减关
0 g; y& D! o8 W0 U/ Z7 E2 M - KEY_A: ;关卡增加
) z: `- s' Q8 N - LDA $04
: n5 ^7 |" s( z( {7 P) Z( @ - AND #$81 ;按键A或右加关: ^# `& I8 N& d/ C m* j
- BEQ PPU_NUM_WRITE8 ]/ J! S: X% F
- LDA $6010
# e2 a6 E1 M9 o) I) g - CMP #$04 ;关卡比较8 c" \; w& F1 d4 G5 ~$ t
- BEQ PPU_NUM_WRITE3 V& `% |! `! }- N* W# C/ d
- INC $6010 ;加关
: P Y# v) K/ Q0 T* A2 ?' Y" q8 l3 | - PPU_NUM_WRITE:
1 g, B9 ~& v8 L; a: P/ [) n - LDA $6010- U6 O$ q/ P8 \6 c/ S$ G/ S
- TAX# g% n7 D/ [+ Y( B
- LDA STAGE_NUM,X ;写入数字
5 X2 I2 I( @. \; G$ M0 @ R3 @ - STA $2007
- E$ Q. f1 b8 d6 F* @/ _: z - PPU_RTS:
& E# h- I# C, P/ M - PLA
7 V5 ?+ |+ a/ g0 v7 a6 d9 k - TAY
7 v1 u; R/ D$ A7 Z" k - PLA% O& t$ l+ \( c" w- T0 @$ P
- TAX& F; X( N2 X2 |. B, t, B4 W/ g8 |
- PLA
: W5 g7 Y# u/ H5 d' w8 j5 n - RTS
- z d9 J5 p% _0 n! s0 J# q7 S - 7 A. R8 P7 g. H/ I7 z! s/ ]6 z
- ) r) ^0 ^% ~8 O. s8 M
- STAGE_DATA: ;关卡文字S,T,A,G,E,字模数据
9 D2 G# e4 J/ Q! p7 x. {( v' m - .BYTE $EC,$ED,$DA,$E0,$DE,00
, z$ q1 {5 n" A9 ]; N% h - STAGE_NUM: ;关卡数字1,2,3,4,5字模数据& M, ]/ S3 Q. j
- .BYTE $D1,$D2,$D3,$D4,$D5
- R- H1 {: X H( M) [ -
1 B0 B* W" T0 n' d3 _ - PPU_ADDR_DATA:1 `1 X o6 N! X
- .BYTE $23,$0C
0 m' B3 f1 L" x3 _5 {. q( l - & ?! L. F$ o# m: @
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|