|
|
本帖最后由 yandagui 于 2017-4-2 13:23 编辑
& a2 v* ]% T6 `; b" O9 |
8 R7 J$ G5 S) i[FC][忍者神龟3][END选关]% T: U7 G2 j0 U% O, X, q7 Q- @/ E. i
8 g6 |3 v$ j, T; b8 K时间:2017.3.30% g& z" v+ Y4 O5 s( i! f$ }+ V
作者:FlameCyclone
+ ?7 m5 I/ b( k& k' e m4 g内容:/ X6 w9 u/ r6 t# z2 s! c. \" |
1.关卡选择: 标题时,左或B减,右或A加;6 @ ~# ]7 l7 z; M) k& R8 _( ~: a
2.全屏击杀: 暂停后,按A键切换;
; ^+ d* Z8 w+ \, d: Z 3.一击必杀: 暂停后,按B键切换;- .ORG $FEA0
$ {: j/ d* q) p; i' ~ E - ora_data:
4 B: Y( I* B" [7 l, r: l& T" D - .BYTE $08,$04,$02,$01,$80,$40,$20,$10
! }' k: @$ ?5 j& P; `) h2 d$ X. B8 Z. D - and_data:4 o: `0 Z0 V3 Q, G. k0 H& O2 }" S
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF- t/ p p/ D. {( e3 J# Y& p$ U
- . ^2 a' s3 x% A$ ^) ^1 c) ^
- button = $F8
9 b( F$ s5 Y- G0 i3 _7 @ - flag = $6000
, { T: a& }. u0 [6 T - pause = $0045& ^+ x; A' \* Z# K5 D* m' S8 i+ ^
- / t: B, M2 C- ~
K7 R3 X& u- h! W0 l6 ^- .ORG $F90D
$ c8 v! E% o2 o7 Q- _ - JSR $FEC0' s2 B) \3 ]4 G3 _
- 6 t8 ^( W1 }" o
- .ORG $FEC0
; |/ c2 U4 t3 j. o" w N% Z - STA $54,X$ q, _. V, R0 W! d
- STY $FA,X9 g- l0 a7 \# I# }% {% X( s( C
- PHA$ e5 g# V4 s' i; l7 N3 p0 P
- TXA
; Y$ q7 f3 M& g$ T# L - PHA- x/ R* a1 q2 t3 Q+ b7 G2 p( c
- TYA
. h; o7 \3 l N3 E4 Y - PHA
) B. M/ H4 a0 p2 k - JSR KEY_OPERATE
# ^( k% L* ~( h5 } - JSR INV
2 R$ T/ V! L! y7 a |/ B - JSR LIFE
& R5 E. p, U' A9 A - JSR BLOOD
( U6 K& l a& d9 l. }" \$ f6 W- t2 k - PLA
" T: Y# E7 P7 B3 A* {% |0 V" \ - TAY
$ j k7 @/ K2 E3 F w9 p - PLA
; n: U3 y% ~" p+ w; k2 }2 ~3 r - TAX
% j) P4 ^; z1 I; A - PLA
. I3 s, R, n; p$ Q; R) w) @ - RTS" ~. Y- z; ~' h* o# [5 Y7 e
- KEY_OPERATE:" E! E! H+ o5 y9 i) h% x6 A. j
- data_protect:
* P$ Q4 W7 r! ^6 e) T - PHA
" q. W, [" u5 [* s1 H' P - TXA6 I' {+ R9 ^/ d/ k& M+ |9 t
- PHA, z, @0 |1 h' D% \% m
- TYA$ x9 P) E, |9 h& V, w) r
- PHA& F/ c4 {9 h3 \. w& _8 r- ]. w I
- $ ~1 m: Y$ E- J/ k2 j" l
- FLAG_CMP:/ p4 c3 Z( R8 R
- LDA $600F9 J' r' {+ b0 ^1 Y4 F
- CMP #$7F ;标志数据初始化条件判断
0 u) W2 H e$ o- ?8 r$ U - BEQ pause_cmp6 R. t7 o0 _4 x- `% \6 L
- LDA #$804 y0 I! K c O9 q% j) s
- STA $A001 ;6000-7FFF写入启用
& O+ C) W7 r) x" E' s/ {, T - LDA #$00
2 W: {" O% X$ C1 r, F - STA $6000 ;数据初始化
3 H3 i1 [7 P9 t8 \0 { H2 p - STA $6001 ;数据初始化% F1 n8 P; S7 O9 n" d
- LDA #$7F
/ y1 V! D: @) v* ?; E& x& @& F - STA $600F
% w M# s' C0 E; _5 k - pause_cmp:8 k9 {% U- k& ?( a; D
- LDA pause! ? T }$ \: ]6 n7 l3 Z
- CMP #$010 D1 w: t8 A+ S* z) c# X
- BEQ button_press* [$ ^- Y* A0 f* O; t
- PLA
5 i3 S& v/ v `: v - TAY
# y" |+ [5 B. V: C$ t7 ?) E" k/ { - PLA0 ?$ w0 P1 q& A; c
- TAX
' M/ e( T7 D2 F- ~9 j - PLA: f0 Z5 S2 ]$ \' p
- RTS( @) z+ l8 h; U5 u
- 3 R; n. y; S0 @& N8 M
- button_press:& c/ m- e: w( ^3 n2 |
- ini_Y:- n* q' h( g( v E# v. G* x
- LDY #$00* `1 X3 E6 \; A8 D0 [
- button_cmp:
$ i2 \1 y1 |4 ]* D% N* b - LDA button,X% p7 P/ p' P2 W, V# Z4 b+ {
- CMP ora_data,Y
8 M/ }8 m3 E$ v( o% g - BNE count_Y_cmp
1 y; H8 _& I1 k" B9 O- P - flag_cmp:/ B* p4 ]/ k" l" G! ?1 P# u0 W
- LDA flag,X
7 W _* I& ]* a( f9 n - AND ora_data,Y
- u6 Y8 p1 h- N; `& H5 o/ O - BNE flag_and3 T, b1 Y) z# ?
- flag_ora:
5 F7 _. x8 `# @/ y; a- Y! E5 ] - LDA flag,X
1 H5 A6 b0 f% N6 h. X - ORA ora_data,Y
/ Z. V8 T) f1 K0 @7 Q1 O" f( P - STA flag,X3 J4 d& A, P$ l+ W/ v
- BNE count_Y_cmp
( g# T; q% y8 G6 q/ s+ s5 L - flag_and:) p6 [8 F- |! O( R5 z; z) B0 S
- LDA flag,X
$ E8 H h3 z$ G) }$ Y- Z# b- ^ - AND and_data,Y
$ J7 d8 X8 L/ F( {9 x" D k: x - STA flag,X
5 s/ V0 Y/ b$ M, R' Z, o l - count_Y_cmp:7 |4 w( p- @: l0 u
- INY
/ P+ r9 J7 I& d* Q" v4 n - CPY #$08! ~ V! O8 T2 F: s; K
- BCC button_cmp; k" ~9 Q9 R! w0 F" C- J1 q6 |$ {
-
, h/ W/ e( p& g; a8 o - data_extract:
2 M% N0 r6 {5 W# ?. h6 U8 N- _ - PLA4 x4 Y; s! G- e
- TAY
5 o6 c( }' `- ] - PLA
. \" C5 Y& W+ l B" e8 { - TAX
5 Z% p% c0 G2 h( G6 b) \8 F! G" @ - PLA
{" V% h4 C# i; t -
0 x4 E$ ]# z; D - return:$ Q& Q/ C2 e* m
- RTS- ?- |" x, @3 A" X- X
-
2 t8 Z/ j3 ]6 g. N, k -
* G& z7 ]5 |4 Y: U1 U/ M - INV: ;无敌# N) k) Q6 u7 N4 j! `
- LDA $6000,X( v P5 u) p5 q! E" X, ?5 O
- AND #$08
% i1 p- F- ]$ Y) a - BEQ INV_RTS9 E- `( X; Z5 e0 v+ j/ [
- LDA #$05
5 {6 ]# J% X1 Z+ i$ t - STA $04FF,X5 n6 S: H' y: ]3 a6 y
- INV_RTS:
! Z. n' q I9 _5 _# [/ F - RTS9 ?6 ~3 Y2 E' N5 ~. h1 Z- `" s
B0 N" p" b( _0 ^- : V8 U ?7 I% O8 O. J% [) j' p
- LIFE: ;生命
' F/ _( Y2 B2 m& O6 } - LDA $6000,X' R# c s7 R: K' e! Q8 l
- AND #$04/ e' e! M U) Q1 } M. h- X8 G$ v
- BEQ LIFE_RTS
6 _+ y: l& w* I& P+ h% p+ Z - LDA #$09& T/ p" B c) u( g
- STA $6A,X8 b( y5 H) c5 a+ y8 ?- p
- LIFE_RTS:
$ y! B i3 V- a: g k( h - RTS' ~. ~) n/ l' Z- @% c5 { f
4 X1 S6 p5 e; |$ d2 Y8 C- & D, x y2 |/ q6 C. `$ e
- BLOOD: ;血量
$ J( M" p; o8 i" `9 F* r) p* b& v - LDA $6000,X0 X! \* \. D0 k9 E% W
- AND #$018 g' I" u( ~( T2 o1 y+ h8 k7 D1 _! |) M
- BEQ BLOOD_RTS8 @. L$ i7 O* F( ~( t+ ?
- LDA #$7F
$ u' S. Y& G* A' R9 e& J - STA $04F1,X" h& J9 g8 R, P- n8 t7 M8 ~! f
- BLOOD_RTS:# B" E) [% `# j4 ^4 g# n
- RTS
8 c* p: [0 }: W1 j, N -
# _. ~1 |; I6 I. k - & c% L9 r5 j, l( t
-
& ?5 s1 y9 T0 @" y) N - 0 l T J* C8 ^7 M' a0 |
- .ORG $D29F
- A$ Q9 z; E" Q d# A5 ^ - JSR $FF80+ z! Z/ y. h( y7 }% q( ^
- + Q0 w; d, P6 v% U: H/ G
- .ORG $FF80& {+ `' u9 u. ^9 ~& l/ X
- KILLBOSS_BY_ONE ;BOSS一击必杀
$ I& C! v* g9 s: e1 q - STA $0628% y5 B8 W: J& \# u( C
- PHA) c' ^7 f# w5 g2 j9 x8 U6 {! `9 {$ L
- LDA $6000
$ B- t+ L! a* j1 p$ h - AND #$40
+ |0 {, r9 _+ F# Q7 l# o - BEQ ADDRFF8E
& @, s6 R! n) X0 s8 `- F# B - PLA Y& [9 ?0 r E4 c! t6 y# Z# b: Q7 b
- CLC ;敌方死亡状态判定
3 w; W! d/ S) ^. R - RTS' Q$ ?9 l! e. q6 g/ P2 e
- ADDRFF8E:4 I% \5 W; G! J7 ^7 Z! a7 n- A1 _
- PLA
0 W4 p' N% o% z' ? - RTS
P5 n& B( i6 i! I6 G6 ?8 l' d7 m; M% i
. f* S* p( V/ |
: _4 g4 d* {. z+ p3 M: p- .ORG $D151- g4 X1 U, O# H9 y- J
- JMP $FFA0" e* t0 p+ Z% C* b9 A* t3 Z
- . S+ R2 x; c1 |- q, Q: x
- .ORG $FFA0
9 a6 U& l4 E$ U) o7 b. i - KILL_BY_ONE: ;杂兵一击必杀- s% l, B1 z! }: }5 S& t8 s
- STA $0621,X: C+ d3 | H. A$ o6 o" g
- LDA $6000
& f& _( i/ A5 |( m. M. ] [ - AND #$40
( i! G# g d# F! s& M1 D/ m - BEQ ADDRFFAD
0 q" o. d" n0 t2 Y - JMP $D19A ;敌方死亡程序跳转2 |# P# @7 ~ d7 _0 j9 ]2 m& h: J$ X
- ADDRFFAD:/ }; S+ m; [& e4 H, ?" m
- JMP $D1545 ]5 J( ]! g- G8 }! J- ~+ n
-
. h: K+ I, j$ K1 F/ A8 A) V -
' I9 e" _* A0 W) D- v - .ORG $A7F6$ H1 S9 x" ]- K$ v6 Z
- JSR $FFB07 M: R- k- d8 |/ y3 A5 ?
-
) U& q+ {9 c! o2 x a - .ORG $FFB0 ;全屏攻击
1 w0 m- L* o6 ? - PHA
0 R- T' Y: r9 g M# H - LDA $6000
" o9 S" Z! J H, W8 E - AND #$80
3 t4 U+ b1 P8 d6 f& S - BNE ADDRFFBD
; e. O! G" ^0 d! f0 ?9 q - PLA
. s$ @( u2 R0 S/ w" b - LDA $00153 k4 t) B% y6 T! k
- SEC# A7 e& R/ Q' ^8 y( r. Z
- RTS
& n' n* K q- M* }: F+ |- ^5 g - ADDRFFBD:
4 K/ I1 R) p3 i) ~# N - PLA3 r. u! w+ B! t9 k# A# `% J( [
- JMP $A826
6 ?. Y* i& w& t# O. e -
: a. }! t/ w" J" W* F0 H7 b% U -
, G( S" T; Y. j - * n( c$ c2 Z- M( U( v
- .ORG $AA6A
* @7 ]' I3 N4 X - JMP $FFD0
1 w) k7 C5 Z: Z4 ~* f3 N' C2 z -
) u7 s% A# i6 v9 x - .ORG $FFD0 ;敌兵动作忽略
# i) h6 ?! c8 d- Y% ~5 N* _ - PHA
$ k- e) F1 O# K! M8 d8 u( w6 i - LDA $6000
7 Q6 [) b, G# Y B; q - AND #$80/ \' o( O4 j& U2 g; w
- BEQ ADDRFFDC
( H' \. }' K, p5 J - PLA# k6 a5 b. W( y) L; M
- JMP $AA72
) o6 x/ M+ L# N" K' H - ADDRFFDC:
/ A* R" L% q' D - PLA7 E7 M& @7 r% m! V- Z( [. D
- LDA $0629,X/ R4 O' _* w" x x7 G$ w
- JMP $AA6D; S4 |3 x% Z+ U5 r8 z6 k3 u
- & A$ n; U6 ^( c3 I2 [& O7 e% C
- ;[FC][忍者神龟3代标题选关程序]
& r1 s Z: u4 B - ;作者:FlameCyclone 2017.4.1
( D7 }6 F6 F m# r, k. A" ?
) j# V; W6 f/ O; c$ [6 i1 h( Y
1 g5 s! a) w2 v/ m- ;配置数据
& Y/ q. |' w# R1 y; ]+ l) i - KEY_ADDR = $F8 ;按键地址0 b4 `6 X0 I+ {/ r
- STAGE_TEMP = $6010 ;关卡临时地址
) m1 ?3 o6 Y$ M! k7 M& s; G - STAGE_MAX = $0E ;最大关卡数
1 r% g: b( I$ B - TITLE_A = $20 ;标题条件A! O2 T9 P9 z- W! D
- TITLE_A_ON = $02 ;标题条件A有效状态判定
2 I/ P6 w- \* z4 b D# V - TITLE_B = $21 ;标题条件B4 d' z- o7 _$ J; B; B8 _
- TITLE_B_ON = $03 ;标题条件B有效状态判定
* {# `3 y6 R& Y: O1 H9 P: ^* F - PPU_END = $FF ;PPU结束符: [% k1 h/ h2 @- z- d1 w4 u
- TIME_LAY = $4A ;标题显示延时地址/ D. {, T' F5 l) R2 c
- BUTTON_DEC = $42 ;关卡减少按键3 q, b. s! R/ ]$ n9 E. S
- BUTTON_INC = $81 ;关卡增加按键
! ^. s! V2 v; L3 r! D - NUMBER_A = $06 ;数字A距离STAGE偏移量3 z/ X, W# Z ]2 x( A' C' v
- NUMBER_B = $08 ;数字B距离STAGE偏移量
5 ? L: S! K0 W7 t3 P7 v: J9 W - PPU_ADDR_H = $23 ;STAGE写入地址高位* f. K1 O* k1 `7 s' @: q
- PPU_ADDR_L = $8C ;STAGE写入地址低位6 i/ f- Z& V( a! ~
- CHAR_S = $A2 ;字符'S'6 @% I1 s& J6 Q" v
- CHAR_T = $A3 ;字符'T'
4 d- R) J. Z! u. L3 o - CHAR_A = $90 ;字符'A'
$ T: I- ?! w! T& E - CHAR_G = $96 ;字符'G'+ c) u7 s5 ^3 t8 u0 g- g) c, n
- CHAR_E = $94 ;字符'E'3 F% R7 H9 f; J
- CHAR_SPA = $00 ;字符空格! u2 k% J! i0 k9 a4 ^0 h4 i
- CHAR_LIN = $AE ;字符'-'1 U) t8 j J# R0 D4 P3 H$ V
- CHAR_O = $9E ;字符'o'
7 z7 T6 Y2 R# @1 S$ r - NUM_1 = $81 ;数字'1'
. v3 _2 v. Q5 Y& a P* @ - NUM_2 = $82 ;数字'2'
6 e9 B/ W, v# K/ g - NUM_3 = $83 ;数字'3'- l, N6 c% ~1 ?4 V3 p" p
- NUM_4 = $84 ;数字'4'
/ z' o1 p$ B( t. D% _! G7 F - NUM_5 = $85 ;数字'5'! p5 O5 C6 E1 X: n
- NUM_6 = $86 ;数字'6'
4 H1 C% I' d# P! ?6 @ - NUM_7 = $87 ;数字'7'
- m) `+ C* i7 R8 C& B/ M1 W - NUM_8 = $88 ;数字'8'8 k# c4 e# E! e! r( ]* i
- NUM_9 = $89 ;数字'9'
: j1 e# @0 U( H/ e# d% U - NUM_0 = $80 ;数字'0'
& I p6 b: g; i4 J0 Q8 o% [+ ] - 9 P0 ? u ]# J% b- @& i
- .ORG $F82A
/ A; u1 P3 o U' s - JSR $E700$ y& w" I! b" K/ }1 X" d
-
1 A2 a* f5 F1 y# O1 c -
9 D, v( R' K# c8 \ - .ORG $E700
% g* M( X0 n2 ]. s% t. W -
9 Y- v* j& |5 D3 ?; @2 _ - STY $4014 ;补上覆盖的精灵写入指令
1 @/ Y- j+ }" D* K; v2 @+ W - PROTECT_DATA: ;数据保护7 l, {! [& J( ]) ?3 g
- PHA ;数据保护开始
) e. S: [( {9 [ - TXA2 ~+ s8 Q- }6 `# S; H: e# z
- PHA
& X' B$ K& t0 N4 T% m8 K - TYA
1 R: Y1 T% y* ~; H - PHA ;数据保护结束
& M' v+ K2 y% o9 s% ]+ g - LDA TITLE_A
. D1 ?; v, X: Z3 D l* i, H& @/ _ - CMP #TITLE_A_ON ;比较是否为标题画面. @9 T" l" Z5 k# N9 ~! ^! r l! B
- BNE RET
2 P ~5 N# Q" L - LDA TITLE_B
5 V( W( m, ^0 m. Q1 i$ h9 `, b - CMP #TITLE_B_ON ;比较是否为标题画面
. l0 F; ?# B/ m7 t) z M - BEQ PPU_STAGE
9 l# q7 d {2 B/ s8 m% ^. V. z& O - RET: ;恢复数据2 I2 m+ T, P4 h
- PLA ;恢复数据开始) m" A3 E' b2 _& ~% ?. X7 T
- TAY
3 J7 x* Z3 \6 p% P- l/ X3 k - PLA
$ U* c3 S' ^) j5 L8 _7 i - TAX4 {0 T) E9 q6 O1 f, F
- PLA ;恢复数据结束1 d0 }1 l. _" j* E) W
- RTS ;返回
( u7 j/ B2 y: p5 X! N0 k; Y4 B% m- E! H - PPU_STAGE: ;字符STAGE写入程序
' s/ E2 @8 h6 u1 \7 F- V+ k - LDA #PPU_ADDR_H 8 y/ _: I8 `7 c% }: F& R( k
- STA $2006 ;设置PPU字符写入高位地址7 O7 }2 i$ u% i! ~7 q" i0 F
- LDA #PPU_ADDR_L' K0 \& y! _/ D+ i
- STA $2006 ;设置PPU字符写入低位地址
' l: T2 t" b8 S0 s& o - LDX #$00' K' l7 K/ T! |5 f5 W3 R9 e
- PPU_STAGE_WROTE: ;写入STAGE字模$ `7 R: p: h' ~" Z5 N4 S- j% F0 Z
- LDA STAGE_DATA,X' b. {/ `3 [ {5 O. c E
- CMP #PPU_END ;判断是否写入结束
* _" A" v( {+ k. l' Q7 y3 s% I; s - BEQ STAGE_CMP
4 P1 L# J; L* p- ^$ M" L. c - STA $2007! W Y3 E- Q" F: _
- INX4 c4 G( W f( H2 _5 O
- BCC PPU_STAGE_WROTE) e9 ]1 n: H4 \( X0 e! t
- STAGE_CMP: ;选关操作
' k0 V. z7 ]8 ?( o' v5 L5 R, B - LDA STAGE_TEMP/ O, W2 l' a6 I, Z8 J6 p
- CMP #$FF ;关卡数据初始化条件判断
1 S" G# T% |- x W2 A- ^7 _5 V2 N - BNE KEY_B+ s" J8 P$ x; {' ?
- LDA #$00
7 f# n! a9 g# v1 [" X. V/ T7 d - STA STAGE_TEMP ;关卡数据初始化4 ]7 X7 S& ?& ?
- KEY_B: ;关卡减少4 V+ l# ]3 G; J- p0 F F6 z0 f
- LDA KEY_ADDR" N& }2 r/ e$ }8 e: b
- AND #BUTTON_DEC ;按键B或左减关
) _4 a7 S% u4 S: ]+ F$ C - BEQ KEY_A
/ r( l) u4 d9 }7 i; Y: n, ^6 l' ` - LDA #$FF1 J5 \$ |7 r; n
- STA TIME_LAY ;重设标题延时
. `7 R g% I( _: d) { - LDA STAGE_TEMP
4 i3 G! P* M; a3 J - CMP #$00 ;关卡比较) |7 z) Y( f8 F& B8 h9 j
- BEQ KEY_A
3 N" S/ B$ y1 }" K" u# a - DEC STAGE_TEMP ;减关, R& P+ m1 p$ u; a8 W
- JSR MUSIC ;按键音效
! A2 k0 @4 U# U& ^& F0 f' z0 V - KEY_A: ;关卡增加
. K+ C( R6 c a# S - LDA KEY_ADDR
7 j K; K5 ~: {; _, X! S - AND #BUTTON_INC ;按键A或右加关6 @! b5 x$ t" B, G' h* W
- BEQ PPU_NUM_WRITE! F) e k/ h# n; k( P+ {0 b* P3 g" e
- LDA #$FF! G. X d5 I6 s' e& n P& F2 J, L5 A8 A
- STA TIME_LAY ;重设标题延时" I" y! l, I, \! x- A* ]' g) W
- LDA STAGE_TEMP. x) ^' Z! ^ H, `* C9 o" @5 U! ^- o
- CMP #STAGE_MAX ;关卡比较+ X" |. P: n- s$ i8 s3 ?
- BEQ PPU_NUM_WRITE+ j& u ^ I b! S. @! m2 U# K/ H0 ?0 m
- INC STAGE_TEMP ;加关
; P& b4 ~5 \8 ^& m, c - JSR MUSIC ;按键音效
! Z& F. U* R, o m( m$ p. E - PPU_NUM_WRITE: ;关卡数字写入地址2 E# i+ X! g$ N6 E6 ^
- LDA #PPU_ADDR_H
) z4 k1 S* \" g, x' [0 r - STA $2006 ;设置PPU数字写入高位地址
: j% X. f- h: S3 g2 \( ?& v2 N) J - LDA #PPU_ADDR_L* @) o: n. {5 e- f
- CLC2 n* x$ W3 l$ I: s4 y }7 k
- ADC #NUMBER_A l1 G% E7 j4 J& S( [ _) z, [
- STA $2006 ;设置PPU字符写入低位地址
( z0 m& ~5 O/ _* u# v - LDA STAGE_TEMP
9 @: k2 P; _6 F2 B# T: i8 } - TAX& [+ y: v6 U3 q" T1 Y
- LDA STAGE_D1,X ;写入数字1 Z+ w2 _- l9 M/ k
- STA $2007- i8 n# J7 D5 L) f( L( `
- LDA #PPU_ADDR_H8 M* j4 u l4 t! J
- STA $2006 ;设置PPU数字写入高位地址) [3 s' }0 C6 F5 V8 \
- LDA #PPU_ADDR_L
+ ^/ ~5 D! T. h* J) A) T - CLC
$ K2 t# X9 `& P6 D! Z - ADC #NUMBER_B
2 Y) A7 P( r& [4 V, K# p - STA $2006 ;设置PPU字符写入低位地址
" O; [! \7 o1 \# H1 r9 s - LDA STAGE_TEMP
& ^4 q; {# } a7 y- A- u+ Z - TAX
1 h' ^& c' W6 ? - LDA STAGE_D2,X ;写入数字" r/ I3 d9 U+ l! |! [5 Y
- STA $2007
! u1 Z/ S) Y( _5 f - STAHE_WRITE:" ^& ?* o- X5 Z2 I- d. J
- LDA STAGE_TEMP
' U" Y; C% J8 _# d7 C4 W' ^ - STA $2D ;初始关卡写入. ^ u1 O' D" U0 ]; V4 S+ u
- PPU_RTS: ;恢复数据3 A6 \$ }7 g X( s( `* X0 M
- PLA8 ?) Q& m' V& e
- TAY
9 \9 C' g' m& Q8 Y8 a - PLA2 L3 n; h- Y( M. n1 c1 y. [$ |- r
- TAX
' c% p3 X7 H7 @/ J - PLA2 F2 N3 q0 S1 x- ~% d# t$ {
- RTS4 b" c& ~* p2 T1 I0 k/ j* R: N; j
- # p4 b1 R2 C7 @1 `6 e9 a
- STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据
! H/ k* P6 `& s4 R - .BYTE CHAR_S,CHAR_T,CHAR_A,CHAR_G,CHAR_E,CHAR_SPA,CHAR_SPA,CHAR_LIN,CHAR_SPA,CHAR_SPA,PPU_END
, L. ^, F, x7 P/ ~6 m
! P) B& D& W% j& Q2 d1 |2 e; ^- STAGE_D1: ;关卡数字
; f! j3 `" \1 O9 V ? - .BYTE NUM_1,NUM_2,NUM_2,NUM_3,NUM_4,NUM_4,NUM_5,NUM_5,NUM_6,NUM_6,NUM_7,NUM_7,NUM_8,NUM_8,NUM_8
; C i2 b! g+ P% T
3 K' H: d! H0 A& @/ U: @" i7 }4 ^- STAGE_D2: ;场景数字# o7 e$ `# S7 R2 o& p
- .BYTE NUM_1,NUM_1,NUM_2,NUM_1,NUM_1,NUM_2,NUM_1,NUM_2,NUM_1,NUM_2,NUM_1,NUM_2,NUM_1,NUM_2,NUM_3( ]5 n; A# \1 X1 Z
-
! z* a F9 s5 R f- Z -
4 L# e4 K$ ^7 j# M. D - MUSIC: ;按键音效
5 n1 k; ^! [- t, M8 x - LDA #$3B ;音乐号/ m y* s: U3 f
- JSR $919E ;系统音乐调用
" s) s& i: q; J5 \5 I5 c5 x h - RTS
复制代码 4.无敌锁定: 暂停后,按上键切换;: V" u0 D9 Q8 J
5.生命加满: 暂停后,按下键切换;: p: P, j/ f* w$ K
6.血量锁满: 暂停后,按右键切换;
# h8 ^1 l& s4 d& I0 G3 r; T9 V+ ] ) g2 j3 l2 o8 o8 w

; w3 a0 |) H4 B0 H1 ]
& t T7 n4 \* S 1 Q2 ^( a$ _& E" S, F( [
* B: S; g! E& l4 Z! t
FlameCyclone.ys168.com
: V ?+ Q. u. S; ~ K5 Pwww.nesbbs.com
: p3 I# k1 v% ^2 k9 c. L! j1 a# \" q2 K
# S9 o: c/ j* [5 J& B |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
1
查看全部评分
-
|