|
|
本帖最后由 yandagui 于 2017-4-2 13:23 编辑
1 g7 y, l3 c; E% w6 ?; Z3 S: O" {; c: R; Z! }7 c
[FC][忍者神龟3][END选关]
7 x- {3 Y$ j4 p! u
x+ J, f8 d3 U" H" w时间:2017.3.30 O8 w* U3 ~$ e" J @; L8 v
作者:FlameCyclone. T" |, _6 e; q3 z. y( \7 z
内容:; w# |1 d- j" D5 P. [. U. n3 ~# J4 D
1.关卡选择: 标题时,左或B减,右或A加;) ~8 \5 r; V8 ^3 R/ l# ?
2.全屏击杀: 暂停后,按A键切换;
' ?4 W0 p- q, j4 G6 C 3.一击必杀: 暂停后,按B键切换;- .ORG $FEA0% N4 A0 ^8 w9 l( I I1 n
- ora_data:
, u. t' H! \% N `* g - .BYTE $08,$04,$02,$01,$80,$40,$20,$10; ~* z. A6 ]: e$ x6 ^* _% K; g
- and_data:- q; T7 H! P, |2 @( t( D5 T. B
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF4 ]* j# d+ M6 [' Y
- . K( [2 L+ X, Y' v S. L- [
- button = $F8- r6 J0 O2 a. s9 S% F3 U" o
- flag = $6000, X* Y; P8 D4 ^ B% x5 A
- pause = $00455 ]" c& w% U1 e
- 7 c3 ]6 m, q5 \3 P: [
- ) c7 @4 y' y' g2 h: n' H9 s* h5 @
- .ORG $F90D
/ L6 ~9 T! X5 T7 Z1 V- e - JSR $FEC0 E5 [7 {. d2 _4 _7 N
-
% z# O! G# v. k( M2 m - .ORG $FEC0
7 A. r1 \6 v: i9 r: n( t( K. c - STA $54,X% y5 _0 n# x: z- v
- STY $FA,X
2 A. x* x4 ]$ W* H1 C - PHA3 b: \; t K& z6 _* {
- TXA
, L# M( M1 ?8 C1 @. x7 G - PHA
. v9 E, Z8 F! s2 E8 c9 y& c - TYA
9 z5 Q. e) S K, p e# V- ~ - PHA
9 m- g% P+ T8 F2 Y y - JSR KEY_OPERATE# v' M4 ]5 h' v( I7 l
- JSR INV
, V4 I2 q& s% d/ N, B, V3 t - JSR LIFE
( H9 Q$ T7 o- O( @7 ]1 V( o' r - JSR BLOOD, J$ \. X# T2 ^0 w
- PLA
4 K) G- j) p# U6 r; J) J - TAY
& d3 H7 s3 b+ a; U3 N - PLA
- Y+ p0 w: g! n; w4 x4 q - TAX+ X1 B/ U( s! _) M1 ~+ c( t
- PLA- k- q6 d6 |* V3 F+ o( u( v+ B5 J
- RTS* T5 W: `! E, z2 _' j5 j
- KEY_OPERATE:! X% }# p5 q2 u0 `- c4 g/ I% A
- data_protect:
! }' P4 u! G. ]3 \$ E% v - PHA
$ b$ I" J7 s! q) h - TXA
o1 R7 @8 S4 p6 G$ V - PHA
$ }" C9 C: W! Z6 o - TYA
' Q: F1 N( x6 M5 l) S3 D7 I- A - PHA
d" D! P4 H" j& d! Z9 E+ |
0 C0 G; Z: a9 {! c6 p- FLAG_CMP:
; D" l3 ^0 c0 p8 ]2 W% ~+ c - LDA $600F, y T* P, P3 G8 a) K
- CMP #$7F ;标志数据初始化条件判断2 R4 y, |8 s/ q* C0 p
- BEQ pause_cmp8 n% Q6 L' ^ P. L* j* Q
- LDA #$80
) Z% }$ @9 M5 ^ - STA $A001 ;6000-7FFF写入启用$ F. [& u0 H( N# S! B" d
- LDA #$00
6 b/ \ w W) O5 P5 n2 M. n! ]% Y! v" q - STA $6000 ;数据初始化0 H- s5 E; m5 }7 N0 |5 \
- STA $6001 ;数据初始化
+ T6 f" H* n8 e* W/ h- n0 Y - LDA #$7F
1 o2 X r( {4 \- \- \ - STA $600F
5 ?7 d2 w2 A) ?1 x0 d$ j& ` - pause_cmp:
' h8 m, U: A$ O7 s' m- X! B3 ? - LDA pause9 j- n4 l1 c, g$ D- d
- CMP #$01
) o5 f5 ~& d/ O* @4 v8 | - BEQ button_press- v9 g# H% o1 F: x% G) m) L
- PLA+ R7 z# m y0 S& a {
- TAY/ G \1 A5 m M; q s; F* M3 m
- PLA% M8 V5 S. A0 U( f6 O. |& p
- TAX* M; v, k& k* \
- PLA
/ l6 p5 f9 t% v - RTS
9 I7 w5 A) | c, W7 v- } - . t/ |* c! h4 t/ l: a# A
- button_press:
/ u; P7 [$ i# _' t - ini_Y:
9 {$ j. t; I7 F/ `' v - LDY #$00% T Y5 s/ h% G5 t4 ~1 u
- button_cmp:
1 R7 n W4 D( Q4 P) h: k - LDA button,X9 ~- e% p8 i; C- a6 ?* H o% f
- CMP ora_data,Y
0 {( z. H* x$ f7 M1 Z( \7 ]% i - BNE count_Y_cmp1 G# B- ~& ]' i
- flag_cmp:
& d1 r; y* r9 x0 `, z# } - LDA flag,X. Q$ E5 r- K% }0 A
- AND ora_data,Y
1 i: _ _) s/ n1 ~9 k8 @ - BNE flag_and% Q8 h/ `$ C+ q: R. [
- flag_ora:
% X8 M, |9 G2 @- | - LDA flag,X" V P& E( T2 S! K! w8 X, J
- ORA ora_data,Y6 x0 L; J$ a) U( e% [: b% w
- STA flag,X
( z c6 x! T, H+ k6 K! \& z" c - BNE count_Y_cmp
' r8 O$ y- D3 M; d* d - flag_and:
! W: w' I# z p+ w/ o: G' ?5 } - LDA flag,X, | q* V$ r* L& ~( E; w
- AND and_data,Y6 }! x$ B1 F" k% E, T: h0 _
- STA flag,X
% L( Y1 O2 M8 ^% ]- ? - count_Y_cmp:
& r* [2 t9 N+ {& D' [ - INY
; M2 }- f: r- D1 `+ w" b - CPY #$087 l" Z3 G0 Y+ I: j1 e; }* _3 U0 J
- BCC button_cmp
+ v: F' D/ Y6 _6 c) H5 }) V4 r -
& h R3 l+ U) C% d x+ t% E - data_extract:
( @, x' d5 f ?) l- G# m - PLA/ w. E. d/ T0 j& h' { O. M
- TAY8 v% k- D: s [+ @
- PLA
. r: o3 H R: x6 F q9 \ - TAX
8 Z) {# @5 I6 h0 p - PLA
4 X/ p, F6 M6 x# n6 D3 t -
) y2 @5 l0 |, e4 e { - return:
, K2 ]/ J# S" o6 _& d0 w3 X& m - RTS, `) P+ ]% Z$ T* W2 a G+ V( `# C
-
; K* S0 `, K( p6 L1 Y6 v/ z - + @4 U8 G2 j$ v$ V4 S
- INV: ;无敌
, S$ ]# h; O" e9 H: A' S9 q! v - LDA $6000,X2 b& F: h( T3 `+ j- L
- AND #$08
! a9 b6 t1 S" E5 Z - BEQ INV_RTS8 O; t. K7 s- Y# m
- LDA #$05/ |: W( A, L* o' _& M
- STA $04FF,X4 y# C5 ?" S5 [+ o
- INV_RTS:
/ ~8 B9 S% o9 V% L9 b2 z/ m - RTS
% s. V1 R, C' P% g/ p6 B" @
F. D0 d; u$ F/ P, y1 Y6 p$ v; e9 Z- * }* [9 h U, T8 A) \/ P/ H u
- LIFE: ;生命. y) }9 @" W1 X4 C! z* ~, j& q; D
- LDA $6000,X" _! [- E8 I+ D2 w: \) Q
- AND #$04# B8 ^ F" P$ `: M/ w+ p5 I
- BEQ LIFE_RTS5 ]' y- h8 p8 r* T$ [
- LDA #$09
7 ?- K# G; N' f9 p! p - STA $6A,X u/ n9 Q3 q+ A0 B
- LIFE_RTS:7 x$ M. i8 v1 c e/ v D
- RTS: X/ L3 L) |9 [
4 [: j6 m6 T( }9 ?4 y-
& g) |4 y6 W. N+ @/ {( U - BLOOD: ;血量
( L" z" F. T- d+ x# s+ x; j2 l% ] - LDA $6000,X' J7 |. F( F2 p* B
- AND #$01
! R1 d4 @& L/ j; i - BEQ BLOOD_RTS
& T+ q* }) t1 i7 S. @( u - LDA #$7F7 J& I0 W# @. e, R
- STA $04F1,X
2 O% w* E, ^8 ^. D8 A, ?' N% l: w - BLOOD_RTS:4 g- F8 @& L; U* L
- RTS5 ^0 c# o; d( Z! \2 t- _
- , q5 G; ^1 b V7 c( N- T
-
2 C) S2 t9 g; g. N! p/ A - 2 d! }: s; B5 w. p, V' k, i4 s5 L. \
-
1 @% u+ {# V: x0 Z' h. ? - .ORG $D29F& @& V1 \0 L: x1 @9 ~ u& q0 W
- JSR $FF80
% t3 s! m9 B, `: }& q -
7 F1 A/ O1 t: [2 \2 `7 y* b, B R - .ORG $FF809 }; m9 o& ^& `
- KILLBOSS_BY_ONE ;BOSS一击必杀
! Y3 @1 T' F/ G - STA $06287 |# ?0 p- X4 |2 r5 | a
- PHA
9 o& O! v) o; q - LDA $6000
% g, \4 {2 r( d; x/ B9 j - AND #$40
$ k# A1 v6 {: [. n# T4 \ - BEQ ADDRFF8E
6 n6 A2 i3 V/ w6 A6 } - PLA
0 |7 E7 S; z) S8 _$ }$ J - CLC ;敌方死亡状态判定/ G/ s! e2 J4 {& L, e
- RTS
% z& i7 e3 e2 u8 K5 V - ADDRFF8E:
+ H6 Q E& \* N - PLA$ T1 h0 T# p9 k- l5 a8 M
- RTS. X+ H1 L1 n0 j! e" z. H: ^6 U
- " z$ ]5 |# j+ ?; F9 ]0 t: L% r
1 f2 e {" B& z0 R& ?0 K9 b9 K- .ORG $D151
' J$ |& _+ H' W8 D0 B( k - JMP $FFA0# K6 A: U. s( f8 p
- 3 ^8 T3 h0 b1 I* ^7 m% o, T
- .ORG $FFA0
2 M: |7 L1 I* l M# h) z - KILL_BY_ONE: ;杂兵一击必杀2 D" e3 q, [& ?, j# [, J
- STA $0621,X
* `/ D' G4 b1 k9 J$ B - LDA $6000
9 w1 [$ D' W q. s) t. e) Y - AND #$40
( n% \ ~$ L$ T# t" A8 C - BEQ ADDRFFAD) V: U6 j1 g5 v) c( P8 j
- JMP $D19A ;敌方死亡程序跳转
J$ R2 d" r7 n1 r# \$ F8 h! o - ADDRFFAD:7 V& q2 {& G& f7 `' ?! f! F
- JMP $D1543 t- ~5 |2 Y0 ~( O1 d9 E( m! R% P
- ( D7 P# _ U1 Z _& U
- : L/ y9 w9 w$ I' n7 Z. w2 b o
- .ORG $A7F6
$ Z# @3 a" o' L q0 M; B7 J - JSR $FFB0
9 r7 x3 K" m! } Y2 x- \ -
& ~; L- M* N. N" f4 N, p2 u# C+ J( V - .ORG $FFB0 ;全屏攻击
/ S9 T+ G, b* P* k2 [) b - PHA
; ^* y9 b3 d9 A; Y& ]" v3 C( V' X - LDA $6000! G6 R/ K5 {6 i3 S2 L2 y
- AND #$80
& Q# D v9 Q6 u+ x, g2 ?+ Z- F - BNE ADDRFFBD
& {9 \6 F0 W5 Y( U - PLA& t1 o, k% [: D# B- }0 c
- LDA $0015; u- v' U0 q; n, u& I! B
- SEC
/ e @' W9 l, q) Y - RTS0 J% c; g/ n) S/ C
- ADDRFFBD:" K# i. e9 P0 J" B
- PLA- F9 V1 \7 k# x1 S
- JMP $A826
+ j, l! Q/ Z+ s; \ -
5 N: }3 \" k. ?+ E: c7 K -
9 j# U5 ` z T7 H1 F" k/ v -
, C8 T5 h" K* A" ]/ @0 f7 u9 i - .ORG $AA6A
5 J! ]5 p$ R; D" X5 [: X - JMP $FFD0
b3 ~: m t" Y% W3 B* V+ S - , h. ]1 J0 b/ v6 L6 R
- .ORG $FFD0 ;敌兵动作忽略$ b0 P& }" Z5 m6 B
- PHA
) n# u) y3 e5 b4 ]5 v, D - LDA $60001 H; U. _- K9 ^! R y1 Q f5 X1 {
- AND #$80* t3 R+ O1 ]4 y( w' N3 q# ?7 y
- BEQ ADDRFFDC
4 G0 C; \) K" X$ r8 I - PLA5 ^7 v; X9 k, q: w# W% s9 S
- JMP $AA72% C* S- f. L( G h
- ADDRFFDC:
# c) i+ V- Y) K0 \/ K - PLA# l0 U4 P3 O, E$ r5 Q: R4 g- R
- LDA $0629,X
! \+ o' r* T% A - JMP $AA6D; [+ T$ R# K n1 D! H9 e9 `+ { Z3 ?
9 u- a# {% o' F% G: K- ;[FC][忍者神龟3代标题选关程序]$ O; s; p7 T! [$ {- o
- ;作者:FlameCyclone 2017.4.17 u7 Z1 q& |6 \8 U' [# f$ J4 ?0 Q
- ) \8 J2 w8 H& v; l: ~
- 3 E' n" V0 ]/ F
- ;配置数据% g4 `2 [+ _, J% A, u1 a3 L0 {
- KEY_ADDR = $F8 ;按键地址" j/ [+ z% f) ~% s
- STAGE_TEMP = $6010 ;关卡临时地址& _- _$ A. ~. C" ]& m
- STAGE_MAX = $0E ;最大关卡数
: j. N4 B- R5 A - TITLE_A = $20 ;标题条件A2 f2 a2 s. v" z2 n
- TITLE_A_ON = $02 ;标题条件A有效状态判定
& X3 S8 g( {& R. `) |9 z0 t8 s$ w - TITLE_B = $21 ;标题条件B7 [5 n# q8 T5 E. G& f9 j
- TITLE_B_ON = $03 ;标题条件B有效状态判定! o+ w, A2 P7 P0 _4 b
- PPU_END = $FF ;PPU结束符
5 w- L; G& U$ t8 L' W1 W4 b/ o - TIME_LAY = $4A ;标题显示延时地址* [8 R% k) p" K' H$ I
- BUTTON_DEC = $42 ;关卡减少按键3 P4 ?4 K$ W& X% X0 Q
- BUTTON_INC = $81 ;关卡增加按键
0 G* z; [5 \' i8 J# g( l - NUMBER_A = $06 ;数字A距离STAGE偏移量
' [2 c0 D/ b! w - NUMBER_B = $08 ;数字B距离STAGE偏移量
- R) |& c% ~- p( e# v3 v - PPU_ADDR_H = $23 ;STAGE写入地址高位+ J" Y8 n" `" N' O
- PPU_ADDR_L = $8C ;STAGE写入地址低位
9 H0 t4 Z' ~# T; c/ I - CHAR_S = $A2 ;字符'S'
' ?" T. G1 Z: m0 a: ?* t0 @ - CHAR_T = $A3 ;字符'T'
- c' K: Q8 L$ c) D Q - CHAR_A = $90 ;字符'A'# |. a. ~* v' [- \2 L! K1 u
- CHAR_G = $96 ;字符'G'6 x- X7 U4 H( K" U; m. V
- CHAR_E = $94 ;字符'E'3 F5 q2 _; u# K+ E: J5 |2 W
- CHAR_SPA = $00 ;字符空格4 ]5 v* ]' C! p) X4 G5 s2 C
- CHAR_LIN = $AE ;字符'-'
/ {( J+ k6 t4 N/ O$ A# z5 j1 Y. e - CHAR_O = $9E ;字符'o'# Z; @% o. |3 Y, o8 b+ L X
- NUM_1 = $81 ;数字'1'
6 w- e7 y4 N- j; b0 {) i - NUM_2 = $82 ;数字'2'
V' ~3 }6 M3 Z( I! c - NUM_3 = $83 ;数字'3'' y* G6 S& y6 ?# Q0 }
- NUM_4 = $84 ;数字'4'
9 I$ ^* b* M- w - NUM_5 = $85 ;数字'5'8 ?' \) j8 l8 J
- NUM_6 = $86 ;数字'6': s8 f4 ]: u: `+ s
- NUM_7 = $87 ;数字'7'
# C; [/ L9 h% V$ r) e - NUM_8 = $88 ;数字'8'1 z' L, B4 G& i" g# ?
- NUM_9 = $89 ;数字'9'! W- L5 V4 o( B/ ? K) T. |
- NUM_0 = $80 ;数字'0'
1 F' ^4 r0 }& L+ K - # P6 C [: Q0 w$ P3 n' M
- .ORG $F82A
8 o/ @% V2 G+ D- } - JSR $E7004 k) R6 f$ b: v3 j- D! |
-
) J+ h) n- ^# I - ( y. I! f- D8 ?" u
- .ORG $E700
4 ^% U+ T5 x/ o8 J( C7 E -
. U4 P% Z8 U1 S/ v* T3 x - STY $4014 ;补上覆盖的精灵写入指令9 E+ A& f9 M" ]2 {, E% ~/ ]/ h
- PROTECT_DATA: ;数据保护
; b# H% O) B; w. F3 b - PHA ;数据保护开始
H# d6 K) j! r G1 \; {; V - TXA, X1 Q( v; C0 g4 f
- PHA
7 U1 ]; h9 z: X3 I7 S - TYA1 g+ U# J: q+ e. R# [
- PHA ;数据保护结束. I1 D( `; w9 _( A# m
- LDA TITLE_A
7 t5 o8 \- L1 D - CMP #TITLE_A_ON ;比较是否为标题画面
( q: t5 l# t5 N; x- P1 o( D - BNE RET
/ ?; p0 c7 ]* n$ F, \) Y- s* | - LDA TITLE_B
! a4 R) Z: ~3 ^$ r4 V1 }0 r - CMP #TITLE_B_ON ;比较是否为标题画面6 @& A8 z* g6 r5 g7 ` |, P
- BEQ PPU_STAGE" \' s" j' l+ S( Z. Y4 ]# W
- RET: ;恢复数据+ n& `- j. e" M" B9 c3 r! O
- PLA ;恢复数据开始
1 J2 |: e) i1 E& B8 o - TAY
3 d$ V$ f# J# _/ g7 a, l9 i) @2 c) F - PLA
; d1 i/ I( r: }- I - TAX0 k0 n( S: I. j" C h, B# u
- PLA ;恢复数据结束8 ?/ J# v2 R4 {; w% w3 |
- RTS ;返回
x( I, B; H* R0 f7 B - PPU_STAGE: ;字符STAGE写入程序
" |$ x5 n, Q# G9 C# `1 g/ M& k - LDA #PPU_ADDR_H
: V8 s" B5 \' F$ } - STA $2006 ;设置PPU字符写入高位地址
$ [; C8 m) x |5 {6 u, B - LDA #PPU_ADDR_L- {5 F" I- k3 y! o/ k1 Y' O
- STA $2006 ;设置PPU字符写入低位地址% Z" d7 Z6 l, b
- LDX #$00
6 @4 K7 `4 _( P9 @1 N5 I - PPU_STAGE_WROTE: ;写入STAGE字模/ J4 o2 a6 G5 I# f6 k) C' L
- LDA STAGE_DATA,X' O9 D. W: e- y+ m8 M- J
- CMP #PPU_END ;判断是否写入结束1 x) F) J# C+ Z5 V. G" `$ t# e
- BEQ STAGE_CMP
0 ~$ [, }" a+ a) j, W. T - STA $2007, N! |* ~4 a7 w6 {& l/ L
- INX
* C& H9 I/ ?6 J! k - BCC PPU_STAGE_WROTE
3 Z8 k& t- w( D2 L - STAGE_CMP: ;选关操作
: J l. E: N: x3 H - LDA STAGE_TEMP
9 @" t4 i; Y( a - CMP #$FF ;关卡数据初始化条件判断
: H+ `* \! |8 c3 R' e& { - BNE KEY_B/ H) o' D+ R2 c( i
- LDA #$005 q4 \7 f# ?/ K5 }9 j
- STA STAGE_TEMP ;关卡数据初始化+ v4 Q8 G! k2 n
- KEY_B: ;关卡减少
2 ]2 ~+ o `, A! D/ {/ y' ?1 j - LDA KEY_ADDR6 r% i. [, P* d6 V+ h5 D- d% q/ X
- AND #BUTTON_DEC ;按键B或左减关
3 c0 z" X# a3 Q9 U/ t - BEQ KEY_A; ~/ v4 ]0 U$ u! B
- LDA #$FF
1 e7 ?1 T* J6 P; g - STA TIME_LAY ;重设标题延时8 {; z- H% t6 r) K- h3 a1 Z& D3 K
- LDA STAGE_TEMP
( u* B7 V* ^: }, M2 J, x4 k( v3 [ - CMP #$00 ;关卡比较
/ F' ?' [+ D5 L6 J( R7 i' F( i - BEQ KEY_A
% y0 n( I- A* _8 z - DEC STAGE_TEMP ;减关
8 e7 ?$ Y: k; j* O. ^0 s8 I* Y - JSR MUSIC ;按键音效
$ e) x/ \. b# ^$ V, s; S - KEY_A: ;关卡增加
/ ]8 r0 j. r* R+ E7 L- b - LDA KEY_ADDR9 [# u1 _" a6 F. J9 {) F1 c# ]
- AND #BUTTON_INC ;按键A或右加关
+ J1 W1 L3 |- K3 G - BEQ PPU_NUM_WRITE& {8 a! m; J3 v$ ~7 {9 p
- LDA #$FF+ b2 |( p( {( f9 G
- STA TIME_LAY ;重设标题延时
2 u' }) A( q- t9 x0 w - LDA STAGE_TEMP4 U( X8 t( v" F, A* S e, E6 o, ^( _
- CMP #STAGE_MAX ;关卡比较
; E% ]% c- f" {( X - BEQ PPU_NUM_WRITE0 P' T- q/ `" P; ~9 X4 G# M
- INC STAGE_TEMP ;加关
* |( ?8 J5 ]# f# h4 C - JSR MUSIC ;按键音效
# X& ~; k' g' f8 N - PPU_NUM_WRITE: ;关卡数字写入地址. Q' x3 T4 S7 Z" K5 r
- LDA #PPU_ADDR_H5 K9 j' v* `4 k& {! D9 [
- STA $2006 ;设置PPU数字写入高位地址/ s5 B! ^! H" n0 s6 D
- LDA #PPU_ADDR_L
' q6 e. `; _0 E7 c. ` - CLC* H& q( i' a+ _1 ?/ l4 t
- ADC #NUMBER_A
% I5 m% _+ r& w3 P - STA $2006 ;设置PPU字符写入低位地址
& Z. C, ~3 P7 w R - LDA STAGE_TEMP( E c* D. x- H% \! ~
- TAX+ @* \( f4 ^/ J1 \( |
- LDA STAGE_D1,X ;写入数字
: Y7 K0 `3 A2 v7 o0 A5 Z( s7 D - STA $20075 _ P) J' m; g0 i: ?
- LDA #PPU_ADDR_H
; E* Y/ j% |! S. u3 F; P8 l - STA $2006 ;设置PPU数字写入高位地址9 J2 a5 b3 F# Q4 W1 y8 X
- LDA #PPU_ADDR_L
- q* c& e0 x* S! P# Q: F4 | - CLC8 o% I! X6 }, A$ f: E' ]
- ADC #NUMBER_B
: T# @( {% d) `9 Y* b - STA $2006 ;设置PPU字符写入低位地址
# g {4 h3 ?3 ~8 K& F/ c; Y - LDA STAGE_TEMP
" C4 V |. _2 z+ C J" ]! u: U - TAX
" W5 R8 n9 o$ \( E& r - LDA STAGE_D2,X ;写入数字
& d6 u3 e, c# _* Z - STA $2007* h2 z% q8 v3 J2 ? V; {+ ]! I, S
- STAHE_WRITE:
$ R7 g% G! Q; M - LDA STAGE_TEMP. Y y0 C3 [! W! F# T" }
- STA $2D ;初始关卡写入& p# J1 V: D$ N* G
- PPU_RTS: ;恢复数据
, D9 h% f+ {7 v H ^, S: D( a+ E - PLA
, ~5 P0 f, M& Q# u - TAY& f6 a4 G. n/ _' T3 [
- PLA1 P+ M+ [! ~. i$ n- o1 Q8 m2 y" h
- TAX
) O$ a: Q( w. r' u( Q5 g6 V5 q: o - PLA
( v" c, V3 t1 z. m; o. T) r - RTS$ P( ^+ v5 D. N0 W6 v
- , s$ `2 ~( l' a; r. o C4 F3 |
- STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据
4 `& q4 ^" q' k' G" U' b0 V/ D - .BYTE CHAR_S,CHAR_T,CHAR_A,CHAR_G,CHAR_E,CHAR_SPA,CHAR_SPA,CHAR_LIN,CHAR_SPA,CHAR_SPA,PPU_END
! Y. i: i2 d! P& a0 \
& K: V- v% x% o; P+ x2 ^. ?( a! C- STAGE_D1: ;关卡数字
+ c0 V: U h; Y: v+ S. z5 M - .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
u7 n. p( I* l - - r2 J# b( w) U
- STAGE_D2: ;场景数字6 A2 X, w8 ~- h) z) ^+ ^: `. O+ M! m
- .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
+ y, }" W- w$ y -
1 c, u5 S: E' q8 c! A - , f* |4 H1 F; Q: H
- MUSIC: ;按键音效9 s' z6 x- K3 R! u, x: l
- LDA #$3B ;音乐号7 N3 O C/ n; @
- JSR $919E ;系统音乐调用: {7 @2 J" [) p0 U
- RTS
复制代码 4.无敌锁定: 暂停后,按上键切换;0 T9 o) C4 Z/ y2 j4 p1 T
5.生命加满: 暂停后,按下键切换;. j) i/ X% e2 z5 i8 W9 H, O4 I, N" |# t
6.血量锁满: 暂停后,按右键切换;: S7 a& k' ^8 d6 c# i1 y5 l0 h A5 o
8 E7 U' o+ `/ q& @

2 |+ z: e+ x0 }* D
! }) E+ }, ^! S# w : t+ r( [# ~: o- r9 b0 a" w. g
7 ~( y$ {) @1 p9 aFlameCyclone.ys168.com
& a# a j' X u, f/ hwww.nesbbs.com. Z2 H0 X( }. f9 _
0 X0 j& {* p* |4 M3 z9 l9 Q
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|