|
本帖最后由 yandagui 于 2017-4-2 13:23 编辑 2 ]" `- a( w! E) E: H
0 m# Y0 S' q* y3 _2 k' }: P" s+ K
[FC][忍者神龟3][END选关]
' b0 T' n9 S+ t& L; }
2 z/ M/ h5 A5 f" v8 i5 N时间:2017.3.30
* M4 a% i2 ^# O c作者:FlameCyclone
+ `/ I0 s1 \ ?& Y' ^9 a( S! y内容:
1 y1 [/ ]( W( t- D6 A 1.关卡选择: 标题时,左或B减,右或A加;
3 o) c; k& G8 O/ R4 P8 }' \ 2.全屏击杀: 暂停后,按A键切换;
% U% @, ]1 Q5 f# C# z4 v$ S% N) n( i. s 3.一击必杀: 暂停后,按B键切换;- .ORG $FEA0/ m4 Y3 J! F: k1 S' s7 y
- ora_data:
& o+ ~3 f" Q( [+ ?1 V7 z/ M3 } - .BYTE $08,$04,$02,$01,$80,$40,$20,$10
9 _8 u% w# d7 i2 B, j8 l - and_data:! n* U* h$ c+ I( v
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF
3 S8 \7 n6 {6 I* u- G5 q$ \ -
, S6 u! a' k3 w$ K$ y6 y3 P( S8 R - button = $F8
9 G* j$ u, W0 L" X$ h - flag = $6000
9 m& J7 W& Q) Q0 P3 ]6 b - pause = $0045: [1 N3 {# l. i
( |5 S! v" @8 Q0 I
: F# I* d& T0 t- .ORG $F90D8 _6 O' i" V" m O- W! r
- JSR $FEC0
3 z; V% j# C- U9 o+ ]) m; o& _ -
W: [$ e% g4 f - .ORG $FEC0: ~8 R( W _2 B/ P) M2 @' F2 X
- STA $54,X
* U9 x5 F' U+ ]6 c. M - STY $FA,X
4 T; l T/ ~9 c - PHA
7 a# I2 n4 S, R% R6 c; g - TXA
5 B( ?0 q3 k* Y/ v7 i - PHA
' N% K9 E7 a9 P( {0 q% A - TYA) J6 F0 p0 [* V
- PHA' N N( W. @: K* l+ Q1 e) N
- JSR KEY_OPERATE5 A4 H5 @1 s% T9 D% `) s
- JSR INV
2 L( H' x% @8 M9 Y: W% @ - JSR LIFE
+ L$ y' B6 x& @+ v- R+ q - JSR BLOOD! J+ ^( J) [5 R2 Y& [- W" X
- PLA
/ E1 K9 b) A. \5 X* U - TAY
8 q- h6 E3 F ~ - PLA
# V6 ~* R4 d+ A2 b# N - TAX0 }2 b/ s/ Y' [' D+ b
- PLA
$ N# {+ o) j- e; O7 V - RTS
1 D3 g b. n. g; f* Q* E0 J% ? - KEY_OPERATE:8 l+ H+ X1 X8 X6 L R: [. T8 W
- data_protect:
8 \: g. |) i+ Y2 `# h) n' D% I - PHA1 U. x8 \% l& Z& V$ q
- TXA
0 F5 I* G! Y. V7 o! ` - PHA
+ g. u2 `( c3 } - TYA) r( `$ F0 }9 s
- PHA5 K w8 ]% z r9 G% i4 `
- 6 y5 P9 y7 j. z3 _& n
- FLAG_CMP:$ s' v: N! G8 a9 y3 K
- LDA $600F
1 m; M) w! D7 A3 E5 d$ l+ } - CMP #$7F ;标志数据初始化条件判断4 }0 Q$ M& p1 @& U/ P# u% t. c
- BEQ pause_cmp
- u* H7 X# ~' r' V9 J3 t) n/ E - LDA #$80
* ?) ]* |. `+ o2 e - STA $A001 ;6000-7FFF写入启用
U9 t6 z( D; r - LDA #$00
5 S$ ~, C. H: V2 p+ L7 m1 d9 a - STA $6000 ;数据初始化4 y6 b: ]0 M7 D- m
- STA $6001 ;数据初始化* I6 Q" z7 `( I3 o- R. t
- LDA #$7F, z9 r# m" A0 x+ z* _
- STA $600F
- Y* C1 G$ _) s - pause_cmp:
. d- V2 X4 Z# c4 X8 p0 R - LDA pause
0 t0 b0 ~0 D# K. t1 [& L U+ k. C/ t - CMP #$01) O# T+ x1 |+ M' q: p
- BEQ button_press
: r+ r; R5 o& T/ V3 p- ^+ Q/ U w - PLA7 j5 G# f6 ]7 ? G/ X
- TAY
8 W* b1 s; U& p7 v& n4 | - PLA0 ?& b/ z9 h8 z- l, B: N
- TAX
# o2 s6 h/ T- A6 ^1 f/ x8 x - PLA9 B7 {) x* d1 J& Z
- RTS
) D$ d- T. h9 w Z - ) t2 U0 g9 E$ H, U% g. @
- button_press:
2 N; D1 K) U4 L4 H6 J - ini_Y:! H8 Z& _* Q U8 C! E
- LDY #$00! S `/ s/ |' W0 W" M3 n
- button_cmp:' ~% y# \! [7 S3 p
- LDA button,X
7 q5 ^3 r. }- Q `0 o9 u$ H# R - CMP ora_data,Y
9 h& n. h, {8 v8 J1 U/ S5 {$ \5 V - BNE count_Y_cmp
9 J/ q& P" s/ N3 P( s) Q - flag_cmp: Z5 ~* \7 Y- _1 c4 S
- LDA flag,X$ T0 c) H0 H1 c; r; z! t* {
- AND ora_data,Y, O" W' u/ }& w% X9 K* D- s
- BNE flag_and% ~( f# ^- U" K* F2 s0 g
- flag_ora:) f) s) e4 V+ Y" x
- LDA flag,X
0 B4 [& O% z+ A5 {+ f6 n w - ORA ora_data,Y$ x; R0 _4 w, n+ l
- STA flag,X
6 J& u9 ]6 X) T) U - BNE count_Y_cmp! e+ }0 h6 [+ Q( h1 z" f( b
- flag_and:% g4 A0 l: E5 [
- LDA flag,X; ?& x& D* @! g: F
- AND and_data,Y
9 c; W7 w3 L2 f3 ~0 L - STA flag,X
; W) b/ O+ e" ^! D6 ?0 @) A - count_Y_cmp:, U9 X: @3 r, G1 B9 B
- INY
7 P8 e6 z5 N' B, z5 j. b/ a - CPY #$08
( E7 q7 B- {' M2 [2 D# q6 i% }+ f - BCC button_cmp( J5 [2 m, k; d/ ^7 Q
-
0 I1 {" \) b) L- @& s - data_extract:+ g* D3 P F* M5 Y
- PLA# y; b o) D6 K! k. a2 N/ g
- TAY
8 \# E* K8 Q; i2 S2 g - PLA
e! b0 r* J3 ^1 l+ a, d8 P - TAX0 q/ g7 @* N2 c4 t* }8 @
- PLA7 D: J$ |, J$ l: P; X; n
- 4 i! y& ?9 h2 `
- return:0 j ~, e( c+ ?2 E4 g( Y/ t6 b
- RTS
+ q& U8 e4 M7 w8 G. G -
, v* V8 L) [( H' x0 Y -
+ m0 m5 o% P+ I( l - INV: ;无敌
/ i" T1 m7 p# w" D - LDA $6000,X
7 d$ q& _9 S6 C% f* N. M - AND #$08, P+ C6 {) H8 w! a2 \9 I: A
- BEQ INV_RTS. ]! @3 K' S5 `: `# A* X
- LDA #$05
+ j0 F" O1 ]" G$ X* S - STA $04FF,X# f9 a5 P) y: ?
- INV_RTS:
$ j3 H' H7 |$ z' L( W) p- y { - RTS
+ Y! u/ @& {2 s" v% P j
. s. M6 j7 t7 j/ r7 o% m% [- : d& X& N- j, e- m8 Q9 D( A- I
- LIFE: ;生命* L2 w% o" a" V9 ` U$ s
- LDA $6000,X
- O8 c1 {0 ]; o: A9 k - AND #$04
$ \$ E6 D3 M4 J, I( h3 s9 |+ l - BEQ LIFE_RTS
, _) X* W2 U- ]: G- m1 L) p - LDA #$09! T9 [+ y8 d& P+ b0 {
- STA $6A,X
1 Y1 O D2 B$ U' G/ N - LIFE_RTS:
3 v9 ?& c) o+ I* G - RTS
0 }% Q5 D/ {- k* J' V. f+ E& X
% k, p% _2 j8 ?! i8 H-
1 m& V5 \# \* |' t8 n. X - BLOOD: ;血量
# g/ q4 {$ k8 N8 N* J - LDA $6000,X
0 d5 o# |! a# I2 i5 J: e: g - AND #$01
8 e/ x3 @4 }; k2 G# N. v. H - BEQ BLOOD_RTS; ?% q9 j7 |; p! A1 i, N9 O8 g E+ L
- LDA #$7F, d; _8 w; }* B6 p$ s3 L+ {
- STA $04F1,X
5 \$ G3 l; g- C3 o* x4 R1 T% s - BLOOD_RTS:" J9 ^( ]* ~3 D! z7 R7 B
- RTS& z7 G# ~- B* N% T* S4 b) e5 A0 `
-
3 H0 f* D4 J* l0 p) j% F R- J -
$ n9 E' ]& d( j6 T' Q -
& \: S6 Q/ \' e - 1 u: v. W6 a: s4 l
- .ORG $D29F
& D5 D& H* e6 F. I& ~6 S - JSR $FF80: M3 z/ v- U. F! A% J+ h( S5 O
-
1 j: i* ?. b2 k% {9 p3 ` - .ORG $FF807 K8 @8 z. D1 s6 n8 v9 C& v7 b9 v; r
- KILLBOSS_BY_ONE ;BOSS一击必杀0 g1 P0 a: b3 }, V* U+ G
- STA $0628
6 ^0 v0 P2 O3 _4 P - PHA( I/ i! d( i2 P# q2 l
- LDA $6000
. p, \6 I: s7 _) _ - AND #$40
`( ?# f# [- G) \! h# L - BEQ ADDRFF8E
* M+ R3 g$ [ S/ e0 N& H - PLA0 N7 l) b$ r$ g: _ c
- CLC ;敌方死亡状态判定
" Y' i, i9 v/ o, k4 c: T' N - RTS
6 H* W: N9 A- I - ADDRFF8E:
, n8 T$ V, M% ^0 X; i - PLA* g. c# q( q- y) ?
- RTS0 L4 u9 b- v4 n
7 F) z2 Z1 o9 g% a
5 ]0 v, L2 X4 ~9 d E2 a- .ORG $D151
, F- \! p' M' y - JMP $FFA0
7 S' M6 C( N# k. k; J -
% f3 Q) \% q* L% \* X - .ORG $FFA02 n' _% t% }; D# g2 A! n0 a) d
- KILL_BY_ONE: ;杂兵一击必杀
G, W9 O* K' {! M - STA $0621,X
6 u% \. t) P N8 C1 l - LDA $6000
9 M6 b! _8 j2 y9 j7 N2 [) k' q5 B - AND #$40" S) f% R0 K4 x
- BEQ ADDRFFAD
4 f: @. U: X5 u4 U1 k1 y% A. T - JMP $D19A ;敌方死亡程序跳转% t: j: u( G( B. e6 V8 O/ n
- ADDRFFAD:
0 G3 Q& r7 f1 U7 B K - JMP $D1541 u, S* N5 T: J
-
7 p0 l( N' x6 z0 l - ' F' R2 p" p9 M, f9 [
- .ORG $A7F6
. a# O( U8 X) N/ i4 U0 Y - JSR $FFB01 u ~9 E6 f, u; B$ B ~1 q" e) c
-
5 S( x) Z9 E) _, v0 m9 w) K - .ORG $FFB0 ;全屏攻击
+ W0 U1 V- ?1 \2 z i9 O d. F - PHA
; a. i( A* ^0 `, k, ]) o# v$ k - LDA $6000
; y! |9 h( \% Z* p% E1 v7 F - AND #$808 e/ [/ u- z( ~! ]2 t: Q! L
- BNE ADDRFFBD2 E' S8 N3 E3 U
- PLA2 [% f* f, S7 H1 _; L
- LDA $0015/ }2 K* J2 A+ E# V% |: g
- SEC; d; I% h, e( V
- RTS2 e% O! d9 [- i% c1 w
- ADDRFFBD:' U8 P8 N( p W9 W, _$ t
- PLA
" ]' s) P1 g5 R1 _ - JMP $A826" q9 ]3 h; X" O( d# ?
- ; E+ ]3 d/ t! E% b
- # b' L) j- q" N% i& \
- ! O* m" y/ r9 F% _+ T! e( `5 O
- .ORG $AA6A
5 R3 B- \5 t1 r7 u/ @+ Z5 D$ L! X - JMP $FFD00 ?+ W+ ` b; g: a# ?
- # x; Z |. ~6 _3 b
- .ORG $FFD0 ;敌兵动作忽略: Z: |" L& e; q9 N2 j9 N
- PHA5 c) j% J ~0 S* p% @
- LDA $6000- l2 C9 X( S$ q! a5 z$ p
- AND #$80# t$ P7 d* j! L& H/ N% c) H7 d
- BEQ ADDRFFDC
& F( E0 W0 t. L: d - PLA
~+ O \- Y5 a2 f y - JMP $AA72' E. J$ e' u5 G/ E& C
- ADDRFFDC:2 b) n- G1 M" V5 I3 O
- PLA* {' m4 o* b5 O' O% h
- LDA $0629,X) h [) ]) M8 {
- JMP $AA6D
- m" r$ l6 z/ A, l4 w4 t - 0 s* P) B% K* s, O) ?3 H) D
- ;[FC][忍者神龟3代标题选关程序]
6 \" Y. k% i3 [" s# x b - ;作者:FlameCyclone 2017.4.1" `: e) B3 z- w4 z t
7 l" E+ |+ O5 U8 q; ~6 x5 {1 U
2 o0 l! Z, T$ P2 b7 C- ;配置数据
4 z/ D/ v6 L3 I4 y7 }- [, i; \: ? - KEY_ADDR = $F8 ;按键地址: p+ U5 H2 w# }( _7 R8 k
- STAGE_TEMP = $6010 ;关卡临时地址
+ L2 F# x# b; p8 S: G" c, z j" H+ t1 ` - STAGE_MAX = $0E ;最大关卡数
% M0 v" v5 @. Y3 S6 D - TITLE_A = $20 ;标题条件A/ T) ^% d& y+ q! w- ]4 O* Q
- TITLE_A_ON = $02 ;标题条件A有效状态判定
. r, J$ g8 F- Q2 z V" z* l - TITLE_B = $21 ;标题条件B
( w- L( l1 }% p - TITLE_B_ON = $03 ;标题条件B有效状态判定1 ]8 a. y7 N: E5 n! v2 t1 V1 U
- PPU_END = $FF ;PPU结束符) z) M% t# \# i, j1 U4 B4 O
- TIME_LAY = $4A ;标题显示延时地址
1 L. Z r4 k9 x( m4 b* W - BUTTON_DEC = $42 ;关卡减少按键, Z0 Z. `/ q" c' `1 ]7 Z
- BUTTON_INC = $81 ;关卡增加按键' ^: B: B" Z( I
- NUMBER_A = $06 ;数字A距离STAGE偏移量: t% }0 E, e! `2 [7 `
- NUMBER_B = $08 ;数字B距离STAGE偏移量
, r5 A3 i# I7 F$ V6 G" N* R! ^ - PPU_ADDR_H = $23 ;STAGE写入地址高位+ C# ?* P& N; A/ E2 r2 H: Z
- PPU_ADDR_L = $8C ;STAGE写入地址低位+ a0 s, O& t; J/ y) \- @
- CHAR_S = $A2 ;字符'S'( m4 d0 z: z7 s' W0 \
- CHAR_T = $A3 ;字符'T'
! ]% q1 {( ~" P8 }. a# @$ v* C - CHAR_A = $90 ;字符'A'. j4 H: r {1 a- ~( v% K! a$ d
- CHAR_G = $96 ;字符'G'
8 b4 o( K8 l$ S" B - CHAR_E = $94 ;字符'E'6 K0 {& f: A( C: V' _1 ~
- CHAR_SPA = $00 ;字符空格
" ^8 s1 x+ _) g9 P3 y5 p, X - CHAR_LIN = $AE ;字符'-'
* D4 ` d! U7 n. H - CHAR_O = $9E ;字符'o'; ^4 w% K9 j" A, A
- NUM_1 = $81 ;数字'1'/ t* H8 S2 H; F/ t2 \+ J
- NUM_2 = $82 ;数字'2'' m6 C# }1 K/ |6 \( W, N* W
- NUM_3 = $83 ;数字'3'8 ]' a' b; K: i
- NUM_4 = $84 ;数字'4'+ O; q/ \& w( \" `
- NUM_5 = $85 ;数字'5'
) w: m$ x, ~( }( Z+ T+ o - NUM_6 = $86 ;数字'6'
* m) u% s! {; k - NUM_7 = $87 ;数字'7'& r% _: \8 S7 m5 y4 q
- NUM_8 = $88 ;数字'8'
9 I! d, `# o0 _6 d* s9 ~ - NUM_9 = $89 ;数字'9'6 D8 }6 |, H# R- b. k* S
- NUM_0 = $80 ;数字'0'" i x& Y t/ y
- 8 o; p, |* v9 W5 l7 ~ _
- .ORG $F82A
! K6 u; }. G; a" k. G( g - JSR $E700
3 ]9 n% i6 E+ e0 x2 g& |3 W -
0 ^* w" |* T- Q/ v i7 b$ n3 ? -
' q# c& o* J" U! ` - .ORG $E700# Y* \" x+ s! I% t1 {- L
- x8 b* t" L' F' O
- STY $4014 ;补上覆盖的精灵写入指令
% }4 l Q- V$ n- c, ~ V. ~ - PROTECT_DATA: ;数据保护+ r3 S6 O7 M" R3 h1 e5 o v K; Q2 O8 m5 I
- PHA ;数据保护开始
7 C4 r$ K$ f$ U& `3 d - TXA
' ~. h V: S% K- N0 m. E0 M - PHA8 M/ j6 A/ q/ x
- TYA' h3 U; ]/ Q* Z4 X# w
- PHA ;数据保护结束
' o* J7 s; }# {* Q$ ` - LDA TITLE_A, s- }; ^3 p: A9 h
- CMP #TITLE_A_ON ;比较是否为标题画面4 K- a" i% a; j
- BNE RET4 V5 w( b9 F0 k% { V4 e
- LDA TITLE_B# r2 `, ]+ e- B7 _# e
- CMP #TITLE_B_ON ;比较是否为标题画面
9 n) Z: ~5 P/ C) g U' g2 a - BEQ PPU_STAGE
1 [2 {: f1 R, D' b; u% R - RET: ;恢复数据# f7 x0 v6 H' ?2 D6 n
- PLA ;恢复数据开始
- R" X4 f g! W* F - TAY
K4 o6 i% c9 B0 r - PLA
5 j: H4 M" P# V3 L, e1 t - TAX
4 X+ b3 n( \# y% L2 H - PLA ;恢复数据结束1 I& X& }5 }5 p% Y
- RTS ;返回 z: i! v5 B3 x' ?
- PPU_STAGE: ;字符STAGE写入程序9 O4 J+ N6 W! [7 Q* |& u8 Q
- LDA #PPU_ADDR_H
9 ~! G% v# E- Q% Y; z - STA $2006 ;设置PPU字符写入高位地址 n' X2 n4 W3 l: y
- LDA #PPU_ADDR_L. `2 o& h. S( K) u
- STA $2006 ;设置PPU字符写入低位地址
. X% W: ?$ H9 y* u+ }6 d: L0 I - LDX #$008 G; a" o) n$ W: ~
- PPU_STAGE_WROTE: ;写入STAGE字模
- h( P5 c" t, P1 K, S - LDA STAGE_DATA,X
! Q/ f9 x. s; k" Z: t - CMP #PPU_END ;判断是否写入结束; ?; z( X# n2 B; I3 Q/ R
- BEQ STAGE_CMP# O! o! f' y# ^
- STA $2007
3 e2 d. B* N# r7 O - INX8 N" {( e5 b- a( [$ k9 w
- BCC PPU_STAGE_WROTE
1 q& }7 ~+ I$ O" h - STAGE_CMP: ;选关操作
& b6 ?# s7 |1 D - LDA STAGE_TEMP, w# {3 g; n! h
- CMP #$FF ;关卡数据初始化条件判断" D6 O% Q' k8 B0 f
- BNE KEY_B
6 [, G- f% w4 n% g. a5 H# ? - LDA #$00
t( m* f9 S* ?0 u6 U - STA STAGE_TEMP ;关卡数据初始化9 t- c& i; `9 l( X$ R, R
- KEY_B: ;关卡减少, J/ N( K7 [ X* Y- I8 C) O
- LDA KEY_ADDR
( f# d k1 l. G5 J0 y8 Q/ C9 \+ | - AND #BUTTON_DEC ;按键B或左减关8 H$ F, a" w% I1 c& w+ o
- BEQ KEY_A8 r: l' R; j. ^8 q6 C, a) \7 ~: t% Z2 W4 j
- LDA #$FF0 T7 O$ \4 p* [. N/ L! U
- STA TIME_LAY ;重设标题延时* N* ]9 s' g! W/ B6 Y. P5 M. D
- LDA STAGE_TEMP! T! \ z; }# |7 `
- CMP #$00 ;关卡比较
- }( u( f$ w: ? - BEQ KEY_A
1 a% a5 [, v2 B# d0 E - DEC STAGE_TEMP ;减关
' G5 H3 ^, n: B - JSR MUSIC ;按键音效1 E% t" m1 z9 d3 t
- KEY_A: ;关卡增加
, B! Q8 s) P! p" ^ - LDA KEY_ADDR4 A, Z+ A6 x+ [" x* \# P
- AND #BUTTON_INC ;按键A或右加关
- O# f; B0 C* m( H u8 `+ ?5 y - BEQ PPU_NUM_WRITE5 c2 }2 A p& `2 k1 V ]1 G; w
- LDA #$FF
+ Q [7 z; F0 @ - STA TIME_LAY ;重设标题延时: a, e+ {1 }/ E6 J% [$ r
- LDA STAGE_TEMP. g: W, e( h. k# \: ^$ T* k
- CMP #STAGE_MAX ;关卡比较
9 J5 e* ^: M/ f3 u5 H2 Q; k - BEQ PPU_NUM_WRITE
: h$ {) n- x3 h v/ I - INC STAGE_TEMP ;加关
6 G2 D% {" [- P. b. V1 T% p - JSR MUSIC ;按键音效
x9 G9 B/ e: m" S2 e+ e - PPU_NUM_WRITE: ;关卡数字写入地址! _7 t1 ~) K' B4 ~) ~
- LDA #PPU_ADDR_H8 y+ ?# T+ B2 m/ R7 L/ C+ J5 _
- STA $2006 ;设置PPU数字写入高位地址6 o9 b0 R/ F, }3 Q2 Q# ^
- LDA #PPU_ADDR_L
2 s7 H0 D: Q0 ]; N& q2 i7 B0 _! r1 d* b - CLC/ y1 f0 h1 o$ M, h% z: R7 N) ?5 a
- ADC #NUMBER_A
w0 o/ A/ `5 E3 Z, j - STA $2006 ;设置PPU字符写入低位地址
; D$ j6 V e+ O. C5 \ - LDA STAGE_TEMP
5 a( j+ a6 C$ G) s - TAX. `# p% q( H2 u" d; K2 d T* _) u! T& H
- LDA STAGE_D1,X ;写入数字% R' D7 P c* @0 K8 ~9 ` U+ ? a
- STA $20075 S$ |: p& R/ s! I% p
- LDA #PPU_ADDR_H/ [. `7 q. H- |# w2 C, ?! r
- STA $2006 ;设置PPU数字写入高位地址0 q6 h1 g/ P# H2 V2 z$ g0 J* I
- LDA #PPU_ADDR_L: W! @. f6 ^/ I( @' @. H. Q k
- CLC/ c; i8 o- h$ \7 R0 i
- ADC #NUMBER_B( u) t: R% B/ x5 `
- STA $2006 ;设置PPU字符写入低位地址% b; C5 |) l2 G: ?- E- L$ }. j
- LDA STAGE_TEMP
$ z# Y6 o: P) ^' | - TAX
4 f/ U6 _# A4 j |) T9 J2 C - LDA STAGE_D2,X ;写入数字) m2 k: K. \+ p- g2 K
- STA $2007
- H4 ]4 @, Y+ A% i0 m! ` - STAHE_WRITE:% H* a. O4 |% L# }
- LDA STAGE_TEMP j7 W6 ]4 s" A& f+ Q' i
- STA $2D ;初始关卡写入
9 ]6 s! k9 i' L( y - PPU_RTS: ;恢复数据) Z. G) A6 @+ \
- PLA
: f& }; Y1 U: m! y - TAY% p9 _" @9 K3 A% K; }
- PLA7 X9 w1 m+ a6 z5 L- E
- TAX6 l4 ?) U5 |+ K( Y8 z7 {
- PLA2 B4 D, H( O: F# Y$ e, S/ R7 L
- RTS: g$ [4 D3 u$ Z
- + Q+ P2 T) d, Q+ q
- STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据
7 o( z) W$ ?4 ?$ F5 | - .BYTE CHAR_S,CHAR_T,CHAR_A,CHAR_G,CHAR_E,CHAR_SPA,CHAR_SPA,CHAR_LIN,CHAR_SPA,CHAR_SPA,PPU_END
' d" b3 v5 Z* ]- ~" w$ b& _# E! B
- D' L& Y0 K# B r. `- STAGE_D1: ;关卡数字
6 N I- N+ U' l n' o1 p - .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
+ g; q2 v, E$ k9 J3 G( v8 C
6 n' o9 i, e8 I3 q7 z# e! f- STAGE_D2: ;场景数字. }/ `/ ?; R! ~' { ?
- .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- _3 Y1 _) x2 F: x8 f3 I+ o
- 9 {0 T+ k2 Y9 a* P7 {
-
7 t8 N" ]) x6 B& N - MUSIC: ;按键音效& _/ v# Z3 B4 P; u' N/ K* D' p8 Q
- LDA #$3B ;音乐号
0 @' }+ _. [. o @/ ~, a* z0 T - JSR $919E ;系统音乐调用) ~5 j1 h7 e% i) y# i1 x' i# ^
- RTS
复制代码 4.无敌锁定: 暂停后,按上键切换;
1 l7 l3 Z( Y7 _4 I5 ~ 5.生命加满: 暂停后,按下键切换;
: E/ o2 ^2 T/ M& c! p4 p 6.血量锁满: 暂停后,按右键切换;6 A" T( Z6 c: W& A$ l0 O. k1 @
% l7 C$ m/ b8 s/ S2 Z

' G$ n0 b" x& v. B l. R6 _0 ]
4 w% ^2 R z' y. ?- k$ A
6 I. h. S& Z( B+ T) ^# W& v% y+ m
; ^$ g0 |5 m& h% SFlameCyclone.ys168.com7 I0 }9 M2 D4 f
www.nesbbs.com: I9 f6 T; E! h
5 P+ [5 l4 k) [' M
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|