|
本帖最后由 yandagui 于 2017-4-2 13:23 编辑
$ Z. a, k: q4 N& H9 g, Y! M1 X$ f- x. D
[FC][忍者神龟3][END选关]4 \0 Y/ [" e2 D! H8 E W
$ R. G8 `1 e. Q( c7 ~ W
时间:2017.3.30
+ s7 s; Z/ P1 D7 _+ m作者:FlameCyclone) D. F. R+ e. e7 ^9 B. \# S
内容:& p3 l8 ^% q9 S7 f h7 e, W
1.关卡选择: 标题时,左或B减,右或A加;
8 W d! E; N! a5 o" V( @7 m 2.全屏击杀: 暂停后,按A键切换;
4 `5 a$ {; W! a5 g9 z 3.一击必杀: 暂停后,按B键切换;- .ORG $FEA0
* }9 t! O5 G. G3 o - ora_data:
$ G# @+ {' N& N* T. W - .BYTE $08,$04,$02,$01,$80,$40,$20,$10- W, V }) Q' L: d
- and_data:
% {6 x; M) B& V" G. Q - .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF4 \- t- K! R& r4 Z
- - X; d; k0 T4 O( N. w
- button = $F8
( q; c7 I& o0 \. h0 Y5 Q- j) s - flag = $6000 A$ S9 R- E0 ?
- pause = $0045
/ t& X* g' t& h( Y) M - * F( X& X) q. O4 ]) }& |
- 7 x- a1 i% V/ l7 o8 K V
- .ORG $F90D
" u5 }& Y: G: n. P3 x - JSR $FEC0
0 |& _1 Y8 h5 E# @- L( i0 I! d -
7 `. M$ F5 H2 o4 |# s1 a5 f& g - .ORG $FEC0
8 ?, e+ G* Q8 m/ D! y$ y0 v - STA $54,X
1 R' u1 k e c0 Z0 P - STY $FA,X0 W8 R v$ y5 l5 t# E
- PHA
. B9 {' J4 w6 y2 s/ Z K - TXA$ m4 c8 I: D2 F
- PHA
$ z7 Q5 _0 t: O - TYA
$ z/ c4 G n }, v; v+ ~ e: T- E - PHA: ^, } N8 T# W( Q X2 J$ _
- JSR KEY_OPERATE
k7 Z' d* `2 y' y6 J: l# w6 o - JSR INV8 d' }& Q, G8 ?$ o g3 X2 P) B. l
- JSR LIFE
9 I3 V) r0 w r' D- } - JSR BLOOD
: N t, ]0 s: ~) I* ?0 Z - PLA0 n5 g6 a( T3 K! N
- TAY
# R1 E0 d# E1 M* g0 n# G - PLA7 R J1 B3 O$ \8 C6 \. v
- TAX! X% Q8 t5 K c' z1 c& ~
- PLA
) x( |6 W) R5 M - RTS
1 Q3 J+ T7 M' S6 p1 v# K' Y( F - KEY_OPERATE:$ p( x! S- x8 }- L0 v! g+ w9 @2 ^1 X
- data_protect:/ V5 t c1 E% R" W
- PHA
; N: h2 C" G6 d8 H3 p6 y0 V - TXA
8 Y: X9 N& B+ W. z8 V - PHA
: j* e" L; {% H/ v$ j+ X$ q3 r - TYA. Q0 W, p6 P4 F2 }7 q( s- O, _) J
- PHA; H; |, O0 ^2 @2 [8 J
- 4 e3 b) ?! o4 _/ `* e' L9 Q; V
- FLAG_CMP:% H& X/ F& J) `. D" O% e( |
- LDA $600F
: f5 s: ~3 U+ E! v7 J3 b+ o! c0 z. y - CMP #$7F ;标志数据初始化条件判断9 H" {) v9 {3 C. a9 y
- BEQ pause_cmp' X; |0 H; Q+ _: ]. I2 @
- LDA #$80
7 @: O# D1 R- \4 G* E - STA $A001 ;6000-7FFF写入启用
1 Q1 ?- b5 e: N - LDA #$00* z. d/ a3 J) ?9 {7 o
- STA $6000 ;数据初始化! C$ P* R* ?4 E' y {) e
- STA $6001 ;数据初始化
c: M1 a4 j3 l8 x1 r - LDA #$7F
9 Q1 A7 S0 m7 v) u - STA $600F
' q! Q( I) ^4 H# S7 i - pause_cmp:
6 r3 H# {! L! E3 F/ f& s - LDA pause4 Y( B1 {: ~6 E% k/ @9 N
- CMP #$01
; R* e2 h1 u1 q# t( t7 G - BEQ button_press m/ M, ]8 q+ @% x& R {
- PLA2 _" e# ~: d! d9 l# ?0 \
- TAY
/ \- P: x" o' k" q) h9 B( j( N - PLA
o' g+ ~ c* C - TAX
d8 {0 Y6 g# L5 p - PLA
6 X: I2 Y: [& T$ b4 @0 P - RTS
4 F8 q$ J2 {9 v0 j+ t6 e
3 A0 x0 u$ g+ Z8 x$ x- button_press:
# l6 j/ t( U( L! ? - ini_Y: f* Q) `3 l" z9 r9 F! h
- LDY #$008 @0 ~! r! Y" U1 c
- button_cmp:4 S( |+ z, G9 _( g, R c/ W
- LDA button,X+ m! J, }4 A+ Z5 j1 q
- CMP ora_data,Y
' b- W$ S: o6 d8 _ - BNE count_Y_cmp
8 B5 m8 _8 B- J, s; z& S4 N - flag_cmp:
+ R2 X& _0 f i3 I! T7 @ - LDA flag,X
/ }# T* [0 b$ T) j8 q" g8 w - AND ora_data,Y
8 f. e* ~/ D4 }9 I% M - BNE flag_and. U3 S4 @+ d) V
- flag_ora:
* l" g9 X$ W" x8 g# x- d - LDA flag,X \2 a1 ?3 D" G5 O c: F
- ORA ora_data,Y
* }" l; k! X7 g, c - STA flag,X1 o; S5 `: L) N7 R
- BNE count_Y_cmp
% |7 t. B, O9 Y/ D7 A1 y - flag_and:
9 T+ |( S B( |* A$ H - LDA flag,X' q' L3 c9 ~; Y. E5 b7 j. s4 I
- AND and_data,Y3 _& {# G8 J/ A) E% W0 [' k
- STA flag,X
}1 Q8 D. _! F7 @" [" r* o a - count_Y_cmp:
# {3 Z6 g- `* Q" Q+ r1 { - INY
* ~6 Q: q* o9 o+ g. i - CPY #$088 f) s( a& _. d5 w
- BCC button_cmp. V" D& D# g, F
- * d4 Y5 ` H2 b# r7 z/ J6 ~0 @( f3 A. z
- data_extract:
8 A/ I. H: @% C6 v$ k6 Q - PLA7 s4 ~) D: b+ O# R
- TAY3 b1 C/ d9 |/ x' @4 y
- PLA- F( q, C5 s* M. D6 D( x0 k
- TAX
/ \$ t! O E+ a: Q - PLA8 h4 E d: g6 |0 H6 s& Y- d
-
5 O& n ?4 B0 }! V& ] - return:
6 s; j: _2 y1 p - RTS* y% ~9 k) p$ T/ C5 G
- . D, y, L+ j& J3 h. b' R
- , u) Q7 }# W2 d, b0 B2 V+ ~5 [
- INV: ;无敌
4 w% ?3 c) b) i( A' L1 F: G. ? - LDA $6000,X- m3 h3 o2 G, \
- AND #$08
9 s1 m: p8 X+ H0 s - BEQ INV_RTS0 c3 B: k t0 v+ t9 ?: |) l F( k7 W
- LDA #$05
. K* `- z8 I% u5 u- P9 q8 s - STA $04FF,X
1 l# [/ [9 s& ]/ K; o - INV_RTS:1 G0 r9 m1 N* y, a/ u
- RTS. s# b; K. F4 L$ x8 r f3 I6 X
- # K( n: [. r' h7 y+ ~2 J T: i
-
/ W9 V, n. ^" ~' S/ f; m - LIFE: ;生命$ R, j, }' L, [- K, n9 Z
- LDA $6000,X$ O; X" L M, c" B0 m7 P- c
- AND #$04
5 w* [; s; A6 O4 f/ ]' O - BEQ LIFE_RTS \! l4 {; X$ ~" T- \- i# v2 Z& | E
- LDA #$09
/ i9 P& N- J# m7 a - STA $6A,X
! J) Q% p: r$ Y: l3 |5 x# L - LIFE_RTS:
3 y" J8 c( a$ G% [ - RTS; S/ X) ~! Z6 [- o8 |# I K
7 H) B2 X8 n$ h& j; x/ m; D0 B-
9 B8 E, P# f- p% Q+ |! V) P - BLOOD: ;血量
( W4 K. R0 L9 l+ K$ h; j - LDA $6000,X0 r# k3 ?3 |' g- E( ~
- AND #$01
+ |% @8 Y% o% s$ T - BEQ BLOOD_RTS( ^9 G9 m0 s: c# J0 {2 F
- LDA #$7F
$ D- l4 D3 U, w" }4 x - STA $04F1,X
1 w l, O# G1 p! K" f! Q2 V - BLOOD_RTS:
6 Z3 W3 h- _2 q: I - RTS
! k# J9 W$ [. X2 y* P O% B - 2 u7 N8 g6 n* N& o% U
- 6 @! f: m, B' O# W0 Q
- + {- B- X i6 Z9 J
- . U) f+ |' _& m# j5 d$ c6 a+ r. Y
- .ORG $D29F1 A3 P2 Z) y" k& g! F% y2 O
- JSR $FF80
" X# P: ~& O1 s3 S - 3 u7 i `4 U9 P, l" }( v0 R
- .ORG $FF80
2 E9 n( T7 f. K) B - KILLBOSS_BY_ONE ;BOSS一击必杀
. @6 v8 R8 v n7 B6 N. p - STA $0628- `9 |4 P7 ?: \1 d, R5 o- M
- PHA
* Q# U1 K2 B9 F) Q% e |! k/ S - LDA $6000+ }% z! Z: ?' l
- AND #$403 Y! {& d9 G. M4 z/ V% H
- BEQ ADDRFF8E. m. |0 s- d* ?/ Y/ A" |, U" W
- PLA0 p3 _( Y. v) Q* t; i2 C
- CLC ;敌方死亡状态判定& m0 j4 R) ^: _6 I1 ]& Z+ {* T
- RTS
9 m x* m4 x* f/ F' a - ADDRFF8E:
8 W0 q v2 V# z" d3 O7 H' m - PLA( h' m: L5 w! R4 Q: G
- RTS
6 |, {9 j" w- X1 _1 A1 i( K - . l V; v; M. n
7 ^8 G- I' y9 t( p- .ORG $D151: _3 P/ S: E$ j% S d1 V- `' R
- JMP $FFA04 J9 _1 p3 D8 v5 w a
-
6 m) @ n0 h" t5 g# T - .ORG $FFA0
/ ]: F% \4 _% N+ u1 g - KILL_BY_ONE: ;杂兵一击必杀
; c+ M1 w, _, i, p+ f2 R - STA $0621,X" m; k! |9 P- k$ k8 t) Z
- LDA $6000
8 X$ K$ X# {/ h7 r - AND #$40
6 g/ i4 k0 D, C n) k1 q4 K. o- b. b - BEQ ADDRFFAD
: A! `; {6 b2 W" M+ A9 k) B9 h3 b - JMP $D19A ;敌方死亡程序跳转
5 b3 E) J) R; H4 v" |5 { - ADDRFFAD:
- ]" r( f4 k, q) ~3 H# X6 ]6 m - JMP $D154
0 d5 Z# q, s* w -
% N: q' ~) E6 z -
: N" l1 \) \6 y6 D9 G/ s& W - .ORG $A7F6
4 V# s- b5 a" t( O M - JSR $FFB0
4 z. U& \7 x5 H" {8 z - & R4 k) I: c# j" {- |4 D+ G
- .ORG $FFB0 ;全屏攻击
, S; }+ W$ O* V& F9 M- w - PHA9 {) L( E- K' ?
- LDA $6000
9 Y% L" ]" j b7 L - AND #$80: ?0 V# M' j& K. n& J) w; v
- BNE ADDRFFBD
2 {* r. @4 ]! D, T7 e8 a3 j5 A: ~ - PLA: w+ e' a# D H2 _
- LDA $0015
/ h, \1 k1 U7 k9 m: W - SEC
2 k# s6 s9 U5 E - RTS
3 `! _$ ]: a5 v$ L9 n - ADDRFFBD:
2 {5 ~. n" @/ K4 l6 H - PLA
- a9 P) ^/ F8 O# V! D! }, z - JMP $A826; K4 |! {( E& H/ n' e
- ' B! K$ S4 D/ o' h+ x, v
-
- k) ]: b0 X d9 l2 \# L- L -
' S& H2 r/ H# a( s5 V* J, z - .ORG $AA6A2 d' i1 t; F: T9 N# ^) p# m
- JMP $FFD0
" _2 r% f$ N9 D - , k. x2 F& D- t4 _9 W* B
- .ORG $FFD0 ;敌兵动作忽略
3 u" I/ v, {6 L2 [! o - PHA% j/ c8 G. z' D
- LDA $6000
. S7 R2 l+ v" m - AND #$80; z& S; h& {$ g
- BEQ ADDRFFDC
+ F9 Z+ i3 g! p, [; q8 r - PLA$ m/ H! s" L, c/ { _
- JMP $AA72
1 \, Z9 ]2 `9 c+ w3 T - ADDRFFDC:& ~& o" U d8 e1 _
- PLA, x4 `/ g7 \1 `. p0 u) Z( a
- LDA $0629,X
8 J: R6 c6 q6 S8 k5 X/ E: C - JMP $AA6D
. l2 W( n* \' y4 c- h - " A/ L3 P& O! l; P% w8 g/ }
- ;[FC][忍者神龟3代标题选关程序]
- v" F9 f3 R4 b$ @ - ;作者:FlameCyclone 2017.4.1: L2 R3 ]1 F2 u4 w& t0 g
- 6 _& G7 J) I) e, b1 h+ b
+ p$ m# U$ w, q7 e- ;配置数据- F4 Z' k7 J v( X2 n
- KEY_ADDR = $F8 ;按键地址, i$ Q8 z% Z$ {* J5 L. y
- STAGE_TEMP = $6010 ;关卡临时地址
9 P# w; @4 J1 }; W - STAGE_MAX = $0E ;最大关卡数
- E% h; O8 `6 {5 ? - TITLE_A = $20 ;标题条件A
3 X) G" ?( G2 F# q - TITLE_A_ON = $02 ;标题条件A有效状态判定
1 h, @) f4 W! @. q - TITLE_B = $21 ;标题条件B- U' u+ N2 ~/ y) [: Y2 S& z
- TITLE_B_ON = $03 ;标题条件B有效状态判定
+ g" q. {- [; p+ L8 Y0 @ - PPU_END = $FF ;PPU结束符- C9 }* Y/ T9 _, S2 p$ s( i
- TIME_LAY = $4A ;标题显示延时地址) R9 R/ I; t2 ]% q
- BUTTON_DEC = $42 ;关卡减少按键2 Y+ }3 Q; d6 U+ g# G; D
- BUTTON_INC = $81 ;关卡增加按键
6 I) V8 z; i( `$ z - NUMBER_A = $06 ;数字A距离STAGE偏移量
7 t. _1 B. {& q* N1 h - NUMBER_B = $08 ;数字B距离STAGE偏移量
9 O/ ]4 p3 T: X3 m. G6 K - PPU_ADDR_H = $23 ;STAGE写入地址高位
) W+ f$ |/ r8 L# M1 t. ^3 i# y - PPU_ADDR_L = $8C ;STAGE写入地址低位5 M1 k2 C) T9 E3 E- T! _( u, y
- CHAR_S = $A2 ;字符'S'
( x: q: e4 c$ g) i: w - CHAR_T = $A3 ;字符'T'
: z1 }8 u9 [5 s) b/ G - CHAR_A = $90 ;字符'A'9 \$ U& c+ z- [ G1 ]7 f
- CHAR_G = $96 ;字符'G'
- B# K7 o \6 f2 l9 J - CHAR_E = $94 ;字符'E'
9 q/ b" {, |1 u - CHAR_SPA = $00 ;字符空格& y; I$ A- C) D+ e
- CHAR_LIN = $AE ;字符'-'0 y8 R1 g0 d6 S$ H- e- d: Q
- CHAR_O = $9E ;字符'o'% ~/ w8 o( A4 u
- NUM_1 = $81 ;数字'1'
' c0 V! x6 M) h9 s! c: | - NUM_2 = $82 ;数字'2'# q# z3 B4 a5 B5 \6 g
- NUM_3 = $83 ;数字'3'3 @; l9 I0 Y) l& o
- NUM_4 = $84 ;数字'4', i* g m$ K' e+ a5 R
- NUM_5 = $85 ;数字'5'1 T" `. W' U# F: D
- NUM_6 = $86 ;数字'6'/ J/ L1 G2 c5 M) n
- NUM_7 = $87 ;数字'7'" r" ?2 H: M. F. B: ?
- NUM_8 = $88 ;数字'8'
! H7 [6 z( Z: v) L& N9 O* M - NUM_9 = $89 ;数字'9'4 x1 U5 H7 e. d0 U3 w2 Q1 D: Q
- NUM_0 = $80 ;数字'0'
3 _1 y b7 M+ J3 M$ {8 F - 4 k0 r% x! m% R1 m8 f" w1 n
- .ORG $F82A) I$ \) G$ W4 ?* |& J; ?: p: H( I
- JSR $E700+ D( {/ t) _/ l; b7 y3 X
-
* V1 j1 k( r. r+ a6 R - 6 n% f" z5 G' X, t' w, m; G
- .ORG $E700
) x, }1 o; A3 H5 P7 U( f3 _. x8 I - 1 @$ H7 A A+ d2 _
- STY $4014 ;补上覆盖的精灵写入指令( `( n6 n# K5 e% s& X# W. N6 M+ j
- PROTECT_DATA: ;数据保护9 j" m3 F% s' [0 g# O
- PHA ;数据保护开始
7 N6 h# o3 m8 u; |, [4 E - TXA/ h; Q. Z, Q6 O N5 Z- K: D
- PHA
# h k7 l! S" Z* c# r* X- t - TYA. \/ z& F8 y4 K; x- A; Q
- PHA ;数据保护结束8 }9 A1 ?! p& o& k
- LDA TITLE_A$ Q! W) @( }+ g
- CMP #TITLE_A_ON ;比较是否为标题画面( ]( M6 e6 W* F4 u1 A* B5 {
- BNE RET0 P0 R3 ~' o! F4 P3 j% I
- LDA TITLE_B
* a9 @+ N' P* P - CMP #TITLE_B_ON ;比较是否为标题画面5 t( ]8 ]2 n* \* m
- BEQ PPU_STAGE
1 f" k: h: C$ V5 I- i0 J! @ - RET: ;恢复数据
5 r$ w& @: n& G! H - PLA ;恢复数据开始# ^7 m- y$ y t. M9 d8 V! D
- TAY' p/ D1 ?% D7 i \" z
- PLA5 k& K( v2 @) S$ \) u4 r
- TAX+ a3 _- k# g/ E# p5 O
- PLA ;恢复数据结束7 M9 m3 y! K1 q6 T8 D
- RTS ;返回
, Q# R9 I8 T3 v, g4 u7 z - PPU_STAGE: ;字符STAGE写入程序$ L' v# } e! g! z$ C; C Q2 i
- LDA #PPU_ADDR_H
5 H9 p& h a1 z7 \ - STA $2006 ;设置PPU字符写入高位地址* X; N; J, l& F8 e; ~ t
- LDA #PPU_ADDR_L
, {8 x/ C/ P6 G9 J3 h3 v) T - STA $2006 ;设置PPU字符写入低位地址
* y3 F1 [/ v& D8 r: Q6 J9 ?9 B% }" m - LDX #$001 c ]" w. _& d5 s" o
- PPU_STAGE_WROTE: ;写入STAGE字模/ w8 `3 B* Z! |: K- v- q3 K: m
- LDA STAGE_DATA,X
) p# G5 f: g3 q* Q; m; o2 F - CMP #PPU_END ;判断是否写入结束
0 I2 V6 q& z* b! I z - BEQ STAGE_CMP! P6 |9 p; p- @6 O3 s/ Z7 R
- STA $2007* }3 c% V- A3 k/ Q. y
- INX
/ q( D" Z+ e# M - BCC PPU_STAGE_WROTE
2 e9 S& S% d' v - STAGE_CMP: ;选关操作
: {0 e; k+ ^, f! t: f/ d, X - LDA STAGE_TEMP
+ t3 \' |. t4 t3 ]# C - CMP #$FF ;关卡数据初始化条件判断( g7 q7 h( T9 u% [4 {
- BNE KEY_B
6 u, D, P M' n - LDA #$00
0 ~( J; P+ ?, x - STA STAGE_TEMP ;关卡数据初始化
& v }8 {9 B; ~ - KEY_B: ;关卡减少
; B0 W* I8 X2 G: ] - LDA KEY_ADDR
) E/ n; n. t2 @/ p" J! F5 @% t0 f - AND #BUTTON_DEC ;按键B或左减关
7 Q g) y8 U: Z( D6 L - BEQ KEY_A5 g; a3 |7 B! g1 k; G+ w' i7 N# `
- LDA #$FF
: K- L6 k. n, F3 ~4 I - STA TIME_LAY ;重设标题延时+ g# d; b: W' N! e
- LDA STAGE_TEMP" ^% X `, q w
- CMP #$00 ;关卡比较" E% r9 S: R+ U x* J! b R! t
- BEQ KEY_A
, ?9 v+ j: r* ?; A# K7 ?$ f - DEC STAGE_TEMP ;减关+ U" p0 E# w" @" i B% A2 `; E
- JSR MUSIC ;按键音效* ? c* U& n6 S" C" E% L% f: g/ F
- KEY_A: ;关卡增加% F& U( f6 H) R( i& n5 E: E
- LDA KEY_ADDR* v* Z+ b+ }0 H( H6 x- t1 `9 R
- AND #BUTTON_INC ;按键A或右加关$ Q! S8 u; c) v6 L K( V) ]
- BEQ PPU_NUM_WRITE
F$ U2 }# ~1 B+ z5 J+ o0 I1 `5 I' t - LDA #$FF' Q2 x7 q9 y3 \2 N+ ~9 n
- STA TIME_LAY ;重设标题延时3 ^4 ^9 ^& s6 @5 T8 s% S3 K
- LDA STAGE_TEMP
: t9 N0 o ?+ j$ F - CMP #STAGE_MAX ;关卡比较
; I9 Z- k' G3 C0 u. f; m - BEQ PPU_NUM_WRITE$ C9 v; [! d% |2 r: U
- INC STAGE_TEMP ;加关% Z1 r! ?1 g* }* t8 Q0 G
- JSR MUSIC ;按键音效
; ~- V0 |' h$ _/ p2 t - PPU_NUM_WRITE: ;关卡数字写入地址 U G! J [' x6 q, n4 |
- LDA #PPU_ADDR_H
: P2 T- I4 S. q# h+ O* I+ w3 ^ - STA $2006 ;设置PPU数字写入高位地址
+ `7 R, d7 U1 a8 _' H( H! v8 L - LDA #PPU_ADDR_L- E' z/ W% `* D5 d3 J
- CLC
2 p7 n0 k7 r( S) { - ADC #NUMBER_A
7 }0 a/ _/ R/ r2 Z" o - STA $2006 ;设置PPU字符写入低位地址- U( x, ]5 }2 ~2 k. n
- LDA STAGE_TEMP: V% F/ M( w, j0 W* ?( F6 ~; Q
- TAX
8 u3 Z y+ [2 M - LDA STAGE_D1,X ;写入数字
. f/ f8 S0 _! v9 w. ^; s - STA $2007& d2 c3 J4 W. ? G4 h6 c
- LDA #PPU_ADDR_H
& C( _$ V8 r+ ]+ P - STA $2006 ;设置PPU数字写入高位地址
5 `4 D; ?2 O+ l) Q. L, Q) ~ - LDA #PPU_ADDR_L5 \# x+ a" m- B; w2 C
- CLC7 J" C% ~9 {+ |7 R" p' T' @% w
- ADC #NUMBER_B& L3 g6 _9 ?7 e( c; I
- STA $2006 ;设置PPU字符写入低位地址5 A4 }8 }" J* ?+ j ~% N- e$ q
- LDA STAGE_TEMP
7 q) x0 L$ ] w- P; N - TAX( l' y7 m; |: s& q: O- ~; ?
- LDA STAGE_D2,X ;写入数字8 G) |. k. `5 N
- STA $2007
; F. ]. N1 H1 a) y8 j - STAHE_WRITE:
4 @. d: c* A5 w: ~& s; W$ m - LDA STAGE_TEMP6 c! ^' O3 z! X! i, e' f6 o
- STA $2D ;初始关卡写入
/ m3 I0 |/ o5 O1 P m8 f" y - PPU_RTS: ;恢复数据
8 D1 \1 D8 Q' g0 \$ z1 W% _! a - PLA
) h8 W* [5 ~+ `3 D# b - TAY
2 w* ?( o' B' w4 b3 ?" z% s - PLA
& N( D" {/ B# ]6 U& n- J - TAX' q. r2 B/ h% S( C! f
- PLA
/ K, w! Q5 Z; }" h+ z - RTS
. e" g# V2 I2 _ ]& @4 K8 a -
5 k* Q- d G1 e - STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据# R5 K, F& B! s W
- .BYTE CHAR_S,CHAR_T,CHAR_A,CHAR_G,CHAR_E,CHAR_SPA,CHAR_SPA,CHAR_LIN,CHAR_SPA,CHAR_SPA,PPU_END4 }- p- f& j0 M( E5 L
- 9 a Y1 H5 E& ~ I) ~* |
- STAGE_D1: ;关卡数字
+ R1 u1 @; r# Y/ ] - .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. y; `. @* v K
9 d+ U0 |4 U ]. Q- STAGE_D2: ;场景数字
. Q1 Q B) I' K/ k, ?( r: x - .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
) P0 S8 i2 C6 o - 1 p4 j* b! t9 X/ h7 `1 q' z
-
& N- L7 l" y8 L% e! l) c% L - MUSIC: ;按键音效
; V1 ^, [6 _ U - LDA #$3B ;音乐号- k& H* D8 j) P' V
- JSR $919E ;系统音乐调用
6 @6 u4 A0 a, i- v, y4 T4 |3 M - RTS
复制代码 4.无敌锁定: 暂停后,按上键切换;+ c: X2 d2 x+ c0 F ^
5.生命加满: 暂停后,按下键切换;4 p' M2 i5 e: q1 j
6.血量锁满: 暂停后,按右键切换;
0 U% v4 ?. L" b2 o2 z9 Q- a
& E/ s/ M+ m2 s* G6 e. u
1 G S$ H' \+ @3 L3 F5 v3 i: M- a% n) s, q' C( t8 z
, J0 N1 f0 R/ ~. M( @9 e. C
; R3 ~& P& N# X6 o+ A7 B
FlameCyclone.ys168.com
5 G+ s: h5 Z" P: u% nwww.nesbbs.com
1 F; n, M/ T, q
) S+ F# h" B+ I$ `: \. {0 w* n |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|