|
|
本帖最后由 yandagui 于 2017-4-2 13:23 编辑 + M# }0 G( p$ j2 h/ p
% F) D1 x) f) b3 B[FC][忍者神龟3][END选关]
& ~0 `) Q/ h( @% i O
& z( {3 X# Z; ~2 I时间:2017.3.30
, N9 }( ^9 M& d& M* J$ g+ M7 W n作者:FlameCyclone
* F9 S+ ~- R5 j, q \( {: S" k内容:
, b x; i1 i) G; R/ e3 Z$ c 1.关卡选择: 标题时,左或B减,右或A加;
. P2 r: o' W1 `% u3 u1 k8 q; o 2.全屏击杀: 暂停后,按A键切换;
/ s1 t4 C7 L$ B- U 3.一击必杀: 暂停后,按B键切换;- .ORG $FEA0# w2 P7 ]3 y* l) _& n
- ora_data:- g/ B+ G4 ?9 @$ Y
- .BYTE $08,$04,$02,$01,$80,$40,$20,$10
' X0 F1 B5 b# }. O" l' U( c - and_data:1 a! Y! I& a: w9 C, I. k- K' P Y
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF/ T1 W' d3 e! g1 i# ?( L
-
, D- c5 V7 s' X6 \7 L9 C - button = $F8
# P6 t' N: L0 }" V - flag = $6000
9 Z# M2 ~& C6 Y2 t( u - pause = $0045
; t# r! b+ S# g( C' m5 f% t - 8 z- k9 Y" g6 q
0 k3 I- }- P5 J' a- .ORG $F90D |2 M- E# L: V3 c7 ]/ L( _
- JSR $FEC02 T. x" p! z# O9 ^: T6 x1 B
-
/ w% s2 t9 }( M; L* P$ U0 U4 \ - .ORG $FEC0+ R9 U: p9 ^: e9 G, I# ^ H
- STA $54,X" _) S# E& I. r( E6 E- w
- STY $FA,X
5 f- [5 C! i( K1 I0 p% @. F - PHA
9 z0 @ w9 u3 k4 h4 l7 \' R7 b - TXA; `& v: g/ E. W, A: q, O
- PHA3 B3 ~, V" B" q1 Q0 O
- TYA
& T: `% m$ E/ X - PHA: N! g# ?$ H* q
- JSR KEY_OPERATE. L0 d7 ~' g2 ^+ Y8 i
- JSR INV
" s0 u' G8 Z7 {. f - JSR LIFE7 q8 Z& \( x1 n2 [- ~ p- f, c
- JSR BLOOD
6 Q% v. x4 C/ O; C; K" U - PLA
6 C5 b% D9 Q2 I1 Y0 c - TAY) d C0 H$ z9 _- r) ^1 M$ k8 f: N
- PLA
8 S/ m" v0 b) q& v4 s; z" d1 U ?3 Y - TAX
; F. ~! p/ m3 X- s) l+ U - PLA
% d4 I2 }; D& p r& a - RTS
7 P: W2 R; y: D7 B - KEY_OPERATE:
% M$ d4 ^" \8 G2 v6 ?$ K* e$ L - data_protect:- S! K4 S' m& K
- PHA5 Z; J z3 ^! }( e( c n
- TXA" o. }. e1 _6 A0 ~( z
- PHA- [/ t3 |$ } d
- TYA* e7 m1 \0 H* u$ r" W
- PHA
6 S/ H/ v' Z1 |1 ~7 D3 O4 ~ - 1 i4 h5 R/ t! z4 c1 D7 V3 l7 I
- FLAG_CMP:
5 A+ D. n; O0 q$ @ - LDA $600F
) [0 k2 U5 \( _: {$ H, b" G - CMP #$7F ;标志数据初始化条件判断
1 a g: |( J8 B, V - BEQ pause_cmp
# n$ ]1 r3 M( [/ j' i1 V' @' x - LDA #$80
/ I5 A$ u- j0 U1 e1 K) h - STA $A001 ;6000-7FFF写入启用( }- F+ ~9 U8 F* m! u' L
- LDA #$008 R G) ?0 O4 f
- STA $6000 ;数据初始化0 v S7 V& |& \2 G" {4 a: m
- STA $6001 ;数据初始化
3 O4 k2 _# E2 d; Q - LDA #$7F( t+ W" N$ R# R
- STA $600F8 M- o* R- S) e+ U
- pause_cmp:
: h* b) l! B F3 m; x' K. X - LDA pause$ B/ g, I1 V: J. N7 n
- CMP #$01% F- A+ c- C8 g& s" f8 z m
- BEQ button_press
. q, w9 O% z7 h; d# s - PLA: v4 \3 U2 r- D% T: C
- TAY
' I$ C2 e3 ^, G: t2 ] - PLA8 S0 D( z! |3 G4 b* ?
- TAX
* Q$ Y& Q V2 g% T8 ]9 ~ - PLA
' {2 K7 n* g2 g# |- ?5 j/ d - RTS% M5 w+ M0 T: O$ N6 F' i, f
- ; E( r- J7 |! Q
- button_press:# r) I7 k! ~! c8 s* k
- ini_Y:
* F" K% @% P6 c" S - LDY #$00
9 @0 Y; k( d. [# S* x% W - button_cmp:. T+ n/ Q& U$ a5 n( r* b
- LDA button,X/ ~- Q9 w O0 \; H9 z( {
- CMP ora_data,Y
8 d( ~2 i2 x4 L% J7 n" l - BNE count_Y_cmp& h- l5 E3 B% w$ }. X4 |/ z
- flag_cmp:% W$ L% b( E8 `/ w1 t: Y, ]; D
- LDA flag,X
3 K, H, Z9 ?# P- B% \0 [ - AND ora_data,Y
: a* U- p& X3 j8 T4 Z - BNE flag_and$ j& F* U$ Q6 k# _* p
- flag_ora:
, ^3 k: t- T) `9 j7 |" P - LDA flag,X
5 m D9 {- J- d; K! ?; m E - ORA ora_data,Y
- x/ F, M. K0 R3 d' Q( U - STA flag,X5 R4 z& q `. G7 v+ F
- BNE count_Y_cmp
0 T' [0 F, D8 f+ g - flag_and:, K# m% ^ w1 J# n! i+ q
- LDA flag,X8 i$ M" ]) x# b$ Z& m' x
- AND and_data,Y
) N: F8 Q% O9 ~! `9 j& F/ H3 K. g - STA flag,X0 j6 B6 a+ c, s" o @% s9 Z
- count_Y_cmp:( v# \/ Y Z& V
- INY R) J& R0 A2 R' v5 T7 i' J! L+ {. b6 d! I
- CPY #$08
0 ^* g7 x* Q4 m6 d# P" Q! } - BCC button_cmp- ~* I9 t$ O1 h) f
-
9 l) ?, E1 A2 y9 |5 s9 u3 i4 V) }; t - data_extract:' X; p% h3 k, I8 {2 J4 \7 b( S
- PLA
# A @( Z# N( r2 y3 e+ q* N" @ - TAY
7 S8 q+ j. ^/ E$ c - PLA
: S B6 P: ^* f& K K7 l% } - TAX
# F, ~ E6 e5 [ - PLA# Y4 x$ t) N2 J0 E1 o) J
- * N, l* ]. C# u' [
- return:0 R4 A# z) R5 X6 |+ s( U
- RTS
/ t9 |6 t& S9 ^7 t, S - / i9 j+ }9 H8 x' S* K1 K V1 P
-
. A6 ^; y0 f1 ]) E0 \4 e - INV: ;无敌& q, l8 H7 I5 s
- LDA $6000,X5 v7 S- a9 i2 `' Y0 ]8 a
- AND #$08
7 Z# n! A! @" R2 w - BEQ INV_RTS: ^% \$ _* s2 h( d
- LDA #$05
# F5 F: s5 ~1 i8 x. b n; L F+ ] - STA $04FF,X, m7 y6 r) ]1 X" @7 I( U7 Y
- INV_RTS:
" [, j5 n) G9 Y5 D# o - RTS4 ~! z3 R$ w+ l2 S+ G3 S
2 a, g+ ~* D8 u: X-
% p/ k- k+ r: p$ }( H3 i - LIFE: ;生命& f; z* O; x4 ^3 \
- LDA $6000,X
* V) z4 M, k6 V1 w - AND #$04
" ]6 L4 M: D# F6 Z/ i - BEQ LIFE_RTS
& n5 _, A% h1 U8 J - LDA #$09
! z) Y3 H% W" Y- O - STA $6A,X
/ {% c! ^/ c( L- X4 g - LIFE_RTS:
: M6 u7 r% r' f: C - RTS0 V- F" `6 g$ N. P4 I( _2 w
- 4 E3 [, ]' C4 u+ V$ M A" U
-
' ]( P7 C$ W" |6 q# h5 w, o - BLOOD: ;血量& T" a' r$ D# |" P" t6 T
- LDA $6000,X
8 i$ A4 L. p% N8 p, ~( C+ j9 K4 X/ l - AND #$01
+ o! e9 q! T9 O; n6 j/ v: U - BEQ BLOOD_RTS% q" o* T. x2 x' o
- LDA #$7F' h& L: i' _0 W9 W% c! H% M# c2 V
- STA $04F1,X
7 V8 F" n- Q: G7 v5 C! o - BLOOD_RTS:
* z) {5 I- z$ P- f& k - RTS: K/ |3 Q$ I8 c) b. n
-
9 W3 v+ j/ O# }5 g. e -
3 f) k8 o/ }1 e -
: z" n3 C" ~. D* g3 Z% H -
. o) y+ p; Z1 x. c0 t* k$ E - .ORG $D29F
9 A" F3 j7 z+ [+ Y0 {1 U - JSR $FF805 o" @: q. |! E& t7 K, ~
-
, p, K6 t1 l/ @) L! b - .ORG $FF80* M" S* Y4 D- d, @& ?( S t
- KILLBOSS_BY_ONE ;BOSS一击必杀
, W; L8 _ p) @/ _7 d, O - STA $0628
1 o% I" U5 s& m l, Q - PHA( F2 b z' U. i3 m7 P
- LDA $6000
, [& Q% [0 }( t+ ] - AND #$40, z; R2 Z0 W+ I3 p9 A
- BEQ ADDRFF8E
) K( o4 u8 t* C# B% S% F. g - PLA
% z' m, S# e& A1 F% p K7 N - CLC ;敌方死亡状态判定
+ F7 `9 T0 x2 z0 P8 z1 P# w) _ - RTS3 i/ }! X; C( y2 i; s& A: g5 ^! g
- ADDRFF8E:1 G) }/ @$ u1 b3 ?/ j% q5 {3 j
- PLA
- t% O# W9 r1 ], e5 W& f - RTS
) R! `8 k+ @7 n6 d
7 ]6 Z6 m& o& Z' L E v8 J' E
! Q# R3 ~9 ]+ m2 U W- U) ?6 ?- .ORG $D151
8 D( ^9 v& A/ o - JMP $FFA0
# t' f8 Q& B9 V1 w -
" G. R X. B5 {; n, \" x - .ORG $FFA08 T' t' d' Y6 h7 o
- KILL_BY_ONE: ;杂兵一击必杀7 M! Y6 r5 ~; V- y9 |8 S
- STA $0621,X
" g0 k/ ?1 e1 o7 Y$ i - LDA $6000" j- S! I O2 K) ^4 D" J
- AND #$40
. `. y. G: r3 @. E/ J' b/ Q - BEQ ADDRFFAD
4 _- P! t& |' T' z0 {" e) m, F4 b - JMP $D19A ;敌方死亡程序跳转, \" P0 w: @9 J S9 |
- ADDRFFAD:4 H: z; ]4 n: K& E8 x2 `. Z4 `! m
- JMP $D1543 ]/ [0 w/ u) ?4 r e4 c
-
& d4 _% v! h% P, c/ E - , i) k4 y }, l% E6 j
- .ORG $A7F6
9 p R# {+ D& G# f$ y - JSR $FFB0
- ~ O; U% m7 v$ e+ n -
2 f/ a9 P2 R, {" W1 H2 j! k - .ORG $FFB0 ;全屏攻击
* U- ^1 f7 j. }+ t3 M b - PHA
, m8 L' b# ~& h" q, e1 [; S# n( t5 s( W - LDA $60000 X1 F. U+ p' Y4 w$ @6 f
- AND #$80! i0 w# b" i. k7 ?; }6 b: Q( }* ~" b
- BNE ADDRFFBD: I d$ c+ B4 t* q
- PLA* e. \: K2 e! l
- LDA $0015. B1 s/ s3 `8 X( Q. t& {7 E$ }
- SEC+ s9 ~2 s3 g3 i1 t( d3 ], P
- RTS0 _1 p) X P% K
- ADDRFFBD:. U( V$ q8 L! s( A' v* y4 s$ }
- PLA# D' W& f( U" c' b5 a5 k0 `' u
- JMP $A826
0 R) I: E4 [2 B9 K. I2 z1 c - 4 z+ z- f% M6 K& V
-
$ z7 k: s$ m8 p* F - 2 k6 D/ h8 M, a
- .ORG $AA6A
: |6 N5 }8 ^% }, P - JMP $FFD0% ^4 x$ L3 y8 h9 l* G4 H
-
K/ |+ A7 I( j( Z# o: T( W - .ORG $FFD0 ;敌兵动作忽略
. q3 y$ k' d! a( x - PHA0 C! ^3 z3 b# W" U( s
- LDA $6000
5 g* u0 r$ x. B+ ] - AND #$80( ?- p o, @" }2 E% S3 b+ p* `
- BEQ ADDRFFDC
1 ?, m7 q# M- @, ?2 T/ c# A) _& f4 _ - PLA
3 k) Y3 h4 F# J: _4 x/ O- I* ]$ g/ C - JMP $AA72) q% P9 p& E" `
- ADDRFFDC:& Z* ?5 y! o; h5 N- N
- PLA4 H# ^; g }! l" T
- LDA $0629,X( h* \; D1 K5 E: @4 k
- JMP $AA6D
, k- H1 i! U- L - 2 J- q1 `+ k% |/ H" |
- ;[FC][忍者神龟3代标题选关程序]
' k$ P4 `: K$ D2 p F5 |& D - ;作者:FlameCyclone 2017.4.13 N1 }/ v, d+ k0 K: L6 s2 E/ T: N
- 3 w. M3 S0 P8 a' b K0 o
- - t7 W* D4 j! D% }- j H
- ;配置数据5 ~7 _4 Y7 a$ L7 Q/ c
- KEY_ADDR = $F8 ;按键地址) C- R1 Y3 o; c' B/ B
- STAGE_TEMP = $6010 ;关卡临时地址
4 ^7 F s5 x9 s! ]+ F - STAGE_MAX = $0E ;最大关卡数
0 ^" V2 ]3 O8 \ t3 o% F9 Q' P - TITLE_A = $20 ;标题条件A+ m0 d8 }1 R$ V) L! f! Q( T. p: O
- TITLE_A_ON = $02 ;标题条件A有效状态判定
) a- @4 T h5 U7 j" _# @: e - TITLE_B = $21 ;标题条件B
6 U/ ^. I7 G. B4 K8 N - TITLE_B_ON = $03 ;标题条件B有效状态判定
* S% O! K6 \1 d5 ^9 J. x8 M - PPU_END = $FF ;PPU结束符$ d7 y/ \2 N% n9 S
- TIME_LAY = $4A ;标题显示延时地址' R5 }/ g6 [7 u9 s; N* A1 Z
- BUTTON_DEC = $42 ;关卡减少按键- t, |/ G0 ]2 b$ D' u3 M
- BUTTON_INC = $81 ;关卡增加按键
% H' @0 @* ]6 n6 | - NUMBER_A = $06 ;数字A距离STAGE偏移量) E% L( Y' o4 R9 G8 e/ i6 m
- NUMBER_B = $08 ;数字B距离STAGE偏移量
: ^# R# h4 X5 ?4 b1 y$ @/ q - PPU_ADDR_H = $23 ;STAGE写入地址高位
2 V& I! }1 O& |( l! @% g( j - PPU_ADDR_L = $8C ;STAGE写入地址低位
7 H/ g. f7 q" X! ?# E* U - CHAR_S = $A2 ;字符'S'
4 n* F# f2 x z6 ^! m2 { - CHAR_T = $A3 ;字符'T'
7 s; I3 ]9 Q, Q3 N7 X5 E0 I5 m2 V - CHAR_A = $90 ;字符'A'" X/ {7 a# e6 h2 n
- CHAR_G = $96 ;字符'G'" j. `+ ^9 O/ y8 M1 l3 b
- CHAR_E = $94 ;字符'E'
6 q" @ Q; K& Z% ]$ I - CHAR_SPA = $00 ;字符空格
# g+ e- n0 b" ~* O3 W# Q - CHAR_LIN = $AE ;字符'-'. [1 J2 j p7 @% x+ \! ]3 g
- CHAR_O = $9E ;字符'o'
' i4 {% J! l+ g, p. F) h- E8 u - NUM_1 = $81 ;数字'1'
2 B: M3 a3 M6 D& u a# S j - NUM_2 = $82 ;数字'2'/ `. `3 a3 s0 a0 L+ u
- NUM_3 = $83 ;数字'3': Z3 c! |9 ? J7 d
- NUM_4 = $84 ;数字'4'
/ {& s0 t7 z, w p - NUM_5 = $85 ;数字'5'
7 F7 {; n2 k, J) k2 ~9 m - NUM_6 = $86 ;数字'6'2 N. p/ i$ q' n9 z- ?
- NUM_7 = $87 ;数字'7'+ `4 A' P9 s$ ~; J3 f ]& U
- NUM_8 = $88 ;数字'8'
" j) q! D/ v4 Q0 g2 w8 B - NUM_9 = $89 ;数字'9'
3 w5 N+ E# c# r2 R$ O+ `- ` - NUM_0 = $80 ;数字'0'% P2 X+ t1 q/ v2 }8 t1 x; E/ V5 ~
- & D+ m& F& u1 Z% W
- .ORG $F82A( z7 r& `9 ?1 Z5 o P8 p/ P
- JSR $E700
( ~; G9 T! e9 g. r -
+ X1 B: _" `! h, P -
H4 m m) O7 {' Y - .ORG $E700
! \1 \" J: S0 j% O -
5 z* E1 C) m( M6 L5 _0 ] - STY $4014 ;补上覆盖的精灵写入指令
# w; L$ D+ R! _; t - PROTECT_DATA: ;数据保护) N+ r M4 Q0 X. e1 |4 ^
- PHA ;数据保护开始
4 `# q0 G5 |5 b# } - TXA4 |4 n& L" d9 m) O
- PHA
2 x8 r4 E% Y; u2 N - TYA
: {2 m' ~/ ?% k+ H3 P - PHA ;数据保护结束
/ H: |; E9 ~* J0 z" a - LDA TITLE_A
& a. H* a1 I, k" W - CMP #TITLE_A_ON ;比较是否为标题画面
, l; N& k$ b, s# q* K - BNE RET
3 h, |/ }$ R2 ?, [# `! c - LDA TITLE_B
+ n! h* R0 ~# @; w2 z, ]7 } - CMP #TITLE_B_ON ;比较是否为标题画面
0 v, g7 T' V4 O& | - BEQ PPU_STAGE3 a) Q* Q: B1 ]% O; d
- RET: ;恢复数据
- M6 ]/ ]% e% D/ z - PLA ;恢复数据开始
- M) i4 K W2 Q - TAY
( _3 M" J G5 S- u8 i4 ] - PLA3 J$ l2 B8 V# v
- TAX
1 d3 W4 v2 `# g - PLA ;恢复数据结束
, ]+ a2 m; }3 V A2 c- U" S - RTS ;返回7 b% U) s3 r ^# {* v) }4 ^4 v
- PPU_STAGE: ;字符STAGE写入程序
! X5 l# h" ]* F y0 a: E0 P5 ~ - LDA #PPU_ADDR_H 4 V" T6 g8 R2 s0 M4 S: G1 V
- STA $2006 ;设置PPU字符写入高位地址( G4 c* m+ |& v( Z
- LDA #PPU_ADDR_L
2 Q9 v; _) M0 z' e! A - STA $2006 ;设置PPU字符写入低位地址5 k# t9 c9 a4 d; j- y
- LDX #$00/ c( P6 N' R9 X7 m
- PPU_STAGE_WROTE: ;写入STAGE字模
! D8 H! U2 c. w9 e - LDA STAGE_DATA,X' T. Y) f! W$ Z3 O5 F2 f$ j
- CMP #PPU_END ;判断是否写入结束8 {. M9 o8 i) u1 D# G
- BEQ STAGE_CMP2 X: C- t7 q8 J' M5 e! Z5 a
- STA $2007
0 Q! y1 j1 E. K8 H - INX; ^; t1 u# d( n% i+ K
- BCC PPU_STAGE_WROTE
5 z/ j! Y- w$ j9 H1 X* V - STAGE_CMP: ;选关操作
5 w7 i2 o. U* F9 L% @1 Q - LDA STAGE_TEMP
# G! E s4 Q. x' h: z+ X* ` - CMP #$FF ;关卡数据初始化条件判断
) S4 ~! d3 Y* s7 _0 a* C - BNE KEY_B
t; ?' V0 L; S/ ~0 r4 t - LDA #$009 t- C% Q1 _( O. F
- STA STAGE_TEMP ;关卡数据初始化7 R9 S" f" ]/ Y: ^" `
- KEY_B: ;关卡减少/ \& G D" m0 e* b. z
- LDA KEY_ADDR
, ~) x: i1 E! }- S+ {7 J6 p - AND #BUTTON_DEC ;按键B或左减关' a8 ?* j& O" Z, \; J3 b+ l6 k, _3 f9 l
- BEQ KEY_A1 V9 h8 i7 i& h6 W" K- T7 b
- LDA #$FF
3 m- U+ s" t! N6 D u' R - STA TIME_LAY ;重设标题延时
, Q7 W z- E3 F - LDA STAGE_TEMP9 K: ]2 Q6 { u) d5 h
- CMP #$00 ;关卡比较7 _$ X8 F+ c4 l: \& T) k; m% @
- BEQ KEY_A
6 P! o! H2 Q* H r% I6 q1 | - DEC STAGE_TEMP ;减关/ ~' i& V9 H9 O+ z
- JSR MUSIC ;按键音效/ f( }( ?, W$ K9 u ^- T
- KEY_A: ;关卡增加( C% @- n8 o& o
- LDA KEY_ADDR0 Q* @# M) K( s
- AND #BUTTON_INC ;按键A或右加关; q! K* w$ y9 h- R* l; D% B8 d0 W
- BEQ PPU_NUM_WRITE
( Z9 A( n2 n* b - LDA #$FF+ ? e9 e% C# r' h
- STA TIME_LAY ;重设标题延时0 _. f$ C9 N$ ]$ p
- LDA STAGE_TEMP
% I( u7 s* p1 }# n' b9 g - CMP #STAGE_MAX ;关卡比较0 t1 q9 ]6 Q* o5 ^1 n4 U( p3 {) ]
- BEQ PPU_NUM_WRITE
7 Z; f! z+ T% o2 k6 D7 f - INC STAGE_TEMP ;加关# J( _& g( \+ ?, C
- JSR MUSIC ;按键音效
; e1 k; F& B& Y& B - PPU_NUM_WRITE: ;关卡数字写入地址
J o9 _: B6 v% b" q* Q - LDA #PPU_ADDR_H
; o. h% t5 Q+ c - STA $2006 ;设置PPU数字写入高位地址# m* U* s) r+ ~1 l8 G3 D0 _
- LDA #PPU_ADDR_L' x+ J6 v6 Z# G9 Y- K5 c* v
- CLC
9 E. o( @$ h6 W& H i- V ^! b - ADC #NUMBER_A6 ~0 `6 s! x4 c7 t
- STA $2006 ;设置PPU字符写入低位地址
N/ d6 s& X5 x0 L2 m - LDA STAGE_TEMP8 D6 q% Q0 a3 C9 \% R: T O
- TAX& E q8 }2 Y6 [! b; H v
- LDA STAGE_D1,X ;写入数字9 E& r; ^' \6 O w
- STA $2007" U4 @) {0 O: a% N i2 ^
- LDA #PPU_ADDR_H
- t; }- f" ?% x - STA $2006 ;设置PPU数字写入高位地址
0 y& o2 y' N& V; `2 g - LDA #PPU_ADDR_L2 q0 r" ~8 Y8 h+ Q
- CLC1 c2 A. [% c& w. F' [" v% N' i3 m' n
- ADC #NUMBER_B
) I- c+ z6 I3 ^9 l - STA $2006 ;设置PPU字符写入低位地址
$ P- E- W! `' ^! C4 R* D - LDA STAGE_TEMP* M# r# L- C! a/ I
- TAX
8 ] D: y8 b& T5 V; ?, X" |- j9 j( J - LDA STAGE_D2,X ;写入数字$ m8 j, z- c) L8 @- ?
- STA $2007; c& L) j) U5 G. _$ R
- STAHE_WRITE:
) _+ v6 j9 P0 e+ I0 Z - LDA STAGE_TEMP% A- a; C. V. W$ v
- STA $2D ;初始关卡写入
8 {, i) o) t" W% ~5 m3 j0 H - PPU_RTS: ;恢复数据5 T% R4 i- _# E6 Q1 i
- PLA' |5 l( v" l* h" s8 L. P0 \
- TAY
2 K. u% V) f2 ~- b9 b+ F4 t; d - PLA
( E+ L- r* i/ \. { - TAX
- X% u( d% p, A* d; |. `* D, {8 ?* U( u - PLA
4 O3 H( Q5 p1 R: {* l3 _ - RTS. O! F3 v$ U' N* Q8 B
-
' z5 {0 I. L) k1 `! | - STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据. g% U& C0 P4 m% H4 |1 u) d
- .BYTE CHAR_S,CHAR_T,CHAR_A,CHAR_G,CHAR_E,CHAR_SPA,CHAR_SPA,CHAR_LIN,CHAR_SPA,CHAR_SPA,PPU_END) x8 K2 a$ ^& m
6 b! L$ P2 M5 I7 s& M; P# ^- STAGE_D1: ;关卡数字
9 b% a* ^+ K6 _6 Y" S4 c! r8 Q - .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
7 v- M& \' ~7 F' y4 R - " c1 w' M' W9 F7 m$ |$ e6 e$ X
- STAGE_D2: ;场景数字6 }/ q) ?# q3 t0 D5 z l# ]5 F
- .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_31 J0 \) |( X- `- O0 [. f- ~+ g9 j
- 0 n7 K* K# m. W! Q3 D; r+ [* R
- 8 V: o9 \. s8 z! m+ A; u0 v
- MUSIC: ;按键音效
. L& l) [: j: i( L - LDA #$3B ;音乐号
* v5 I" L7 i3 J2 o# } - JSR $919E ;系统音乐调用
& w6 K5 Y& p6 i9 P1 R: F3 i k - RTS
复制代码 4.无敌锁定: 暂停后,按上键切换;
. B* D# B& f' V8 w' [% @1 N; ~. G/ S 5.生命加满: 暂停后,按下键切换;0 X' a/ }) p: [* C2 b+ r/ a
6.血量锁满: 暂停后,按右键切换;
1 w$ `5 i: O$ ^: ^& v ' k w4 N- Z2 P: V0 s+ l8 \
* j0 |9 w1 @* M

$ M9 [4 `& f3 s 9 Z, x% h3 K4 p1 O" ]1 |4 t
3 @7 Q! F! h7 `# ^) QFlameCyclone.ys168.com
0 }3 }; l+ S: A) ^* y# |www.nesbbs.com2 x8 u0 C3 _4 `% @: g; w
, t+ `1 ?: A5 `# q# H, V8 ^' p4 _ |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
1
查看全部评分
-
|