|
|
本帖最后由 yandagui 于 2017-4-2 13:23 编辑 ' W! y% U8 K+ \2 M
6 ]& x9 N9 ]( e, |/ U7 Y" E+ D[FC][忍者神龟3][END选关]
6 |. r% K9 H9 \. W& s% E: e: ?, P5 S# f- b- o0 R- }
时间:2017.3.30* a7 `' |9 C. Z- x4 i2 m/ z
作者:FlameCyclone. G8 W+ K& }% L; R
内容:7 _: G8 S; S3 e% S |- J
1.关卡选择: 标题时,左或B减,右或A加;% K' S# Q! J9 M$ P9 G4 j9 h |
2.全屏击杀: 暂停后,按A键切换;
2 a) Y6 _$ i, ?7 Q5 `, x' ~1 _ 3.一击必杀: 暂停后,按B键切换;- .ORG $FEA0
/ Y. ^+ X3 |* G( o) m5 M, Q1 N: | - ora_data:
1 X5 G1 E/ ^) `8 G - .BYTE $08,$04,$02,$01,$80,$40,$20,$10- I9 _- U, ]7 c( b+ }4 |
- and_data:& }3 j8 |8 @* s V
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF# }( \2 f* ^: [$ L( A
- ; D+ ^ b* R K) p3 X/ y- h5 V
- button = $F8
& A7 L' O/ z: w - flag = $6000/ O# ^ ^9 k5 s; E
- pause = $0045, |+ p7 K5 X, `# M1 ?
- 6 B) V& D/ F/ }) a
- 1 S/ n+ l& [7 Q( c
- .ORG $F90D
6 T( S% q/ X N6 G& g% ~2 d( ^: y - JSR $FEC0
1 a! z. _) }" R+ K -
* @# d) I( M, T. S) C7 O: r - .ORG $FEC0
' N- B; U0 y( A6 O/ G - STA $54,X. m# a3 d+ {, i, E
- STY $FA,X! h' A U; v# e4 D5 p, C; ?
- PHA
" C1 J# i* q' U1 e5 S- ? - TXA9 O: P. B( a9 Y- i& Z A- x
- PHA
* j- Z0 e; b% t; O; M' z" Q. v8 J - TYA
8 c7 \& T" E" j1 {! E: W% B4 U3 K6 V! o - PHA, f; q( @( U* q% m/ S
- JSR KEY_OPERATE
3 @7 B% s c9 z ` w/ ~* |" s - JSR INV
' E! @1 f% a, } - JSR LIFE
; ~1 ^ W+ p6 J" C# X$ C - JSR BLOOD
7 A. Q) K& W1 A" k6 T5 c1 j. v5 X2 M - PLA) b" f8 ?% b* h* N4 c
- TAY/ a& j/ w5 {7 X; V9 m: ]
- PLA* l3 m: F, ]+ N& S8 [: R
- TAX; j8 {4 S" D- E
- PLA
8 S `6 O: e o. `7 F- {( p - RTS' B6 L6 m q' f
- KEY_OPERATE:! }: o( s. B* ?8 Y& q: Y, i
- data_protect:
* O, W; z: ]! f7 B; M( E. r - PHA+ L1 R! R$ @ C2 z& {- A2 d$ O! F
- TXA+ t. u4 b u4 b: u
- PHA% q# _/ C4 S6 h5 M5 v7 v3 C
- TYA0 T( @# v% n6 w4 i
- PHA
, P* l( q+ C. g, L5 c
# M! w9 O. X( y0 ]* \, m- FLAG_CMP:
' V& F+ `* e) }/ \ - LDA $600F( Y6 ~. o5 |6 O! G6 Q
- CMP #$7F ;标志数据初始化条件判断, s/ r- t ~/ \7 }6 k5 z
- BEQ pause_cmp
?& E7 S" P% H# x! Q1 C - LDA #$802 Z0 A. \: N8 n# H
- STA $A001 ;6000-7FFF写入启用/ E6 q/ j* l' {
- LDA #$00
6 T* ^5 w! N4 u$ H; I - STA $6000 ;数据初始化& H3 K: J) ~% L7 U7 \
- STA $6001 ;数据初始化+ p9 i4 Z3 n3 f
- LDA #$7F
3 y" m( U/ P$ j5 o. s( Y" ?4 u2 h4 O - STA $600F) |& p2 R: L! k9 l
- pause_cmp:
; {$ u* g" R* L, F - LDA pause
2 q% w4 G5 r- _ {( Y% N# {* Z - CMP #$014 ^4 G9 U4 V6 l& G9 [! |4 Z
- BEQ button_press! M; s! G2 @' j P! U+ x6 M" W- s
- PLA
2 t3 R/ ?) S2 ?' P% a# M! ^# F - TAY5 z6 T9 s" L7 v; t# r& r* z$ P5 ~/ t/ k- r
- PLA- @( n% h, A/ @& O% e8 s1 K
- TAX
$ ^ r0 c4 s" i# ` - PLA" p7 ]$ B% Y$ j) x5 a
- RTS
, ~: q$ q! _+ E
3 V' d6 p5 W, N- button_press:
& t8 h4 ~8 I: C: x: Y# W" c - ini_Y:0 K/ @; ]: U O4 {% h
- LDY #$009 P; i- N& L7 K; l
- button_cmp:: t: V. P0 {& |0 D( a
- LDA button,X
0 |, [; {4 z& x U; H& ]! Z. W - CMP ora_data,Y
9 X2 ?# G5 d8 o# I - BNE count_Y_cmp
+ `, I+ A8 Y) E. t5 p - flag_cmp:' c, c7 ~' E( n. {
- LDA flag,X+ X; h$ D" z8 m2 F# |4 O& T
- AND ora_data,Y
! P5 T( i3 o+ L. R - BNE flag_and5 a& x! w+ d+ B' d
- flag_ora:
+ x8 h8 b, j6 a N4 J1 K+ j4 l - LDA flag,X& B9 C1 r8 a+ S0 M4 e/ a
- ORA ora_data,Y1 d! k0 R; m& I# y- l
- STA flag,X7 C! G4 u7 C9 y {
- BNE count_Y_cmp
, T( \1 I" _2 N! c' L1 d2 O - flag_and:0 x3 p; Y: P. D
- LDA flag,X
4 Z5 E5 T: g, j7 P( Y - AND and_data,Y& y+ o$ _# s; [% z! n0 M1 o
- STA flag,X
3 F7 L, u6 s6 p* `5 T7 o - count_Y_cmp:" B' k5 K# d, ~5 q) f9 z2 w
- INY
2 M" \- R9 k; G; s2 x/ e* G - CPY #$08# L& \8 Y/ P; r6 E: Y/ b; E
- BCC button_cmp
C8 M4 n2 r9 E) K. s. z& [/ P2 p# M - 7 q# {% \, X a
- data_extract:7 d O) w* a3 l+ g, B. ^8 z, v
- PLA
% X4 g* {/ O! P7 ?% \5 G - TAY
6 v/ Z$ y0 Z: m1 Y- f, | - PLA) C- `7 E0 p8 D( c
- TAX% N! k5 ^2 p# ?3 c; N* ^+ m
- PLA0 Q7 k. ~- B4 h: H f
-
- Z( ^) p; i: r3 T - return:* W# P0 O" Y& c) W
- RTS
& D5 e/ m. P S! z1 n7 o - * e1 N# S$ r3 d9 P6 D( T! l* y
- ' X6 V4 }$ g. f D
- INV: ;无敌( t% k- X5 y9 n( ]
- LDA $6000,X U' d8 ?: r3 ~" o) t5 ?
- AND #$080 {+ N" v3 X1 A" P3 w" y& ]
- BEQ INV_RTS
. j6 A$ H/ D$ C+ \! B1 \ - LDA #$052 L, ?" }$ a( r! s
- STA $04FF,X) ^# x* d9 s+ \ v* j
- INV_RTS:8 `/ S7 G; \0 @+ x% r/ s0 D3 M
- RTS
, h$ w3 v' l% Z; I
$ H: ^8 T: ]. i9 m& Y# f% s9 A- 4 s/ A$ d* y5 P; H2 ]4 l# e
- LIFE: ;生命% f4 ?% @. h7 P# J" G, \0 Q; _
- LDA $6000,X
9 F/ R6 _% Z4 u+ e6 q - AND #$04, i# D& ?+ q4 h/ Y: R9 d
- BEQ LIFE_RTS9 i* q" w% ~' ?- U, r3 C7 Z
- LDA #$09
- ~6 B' O; n, s$ U$ y) B - STA $6A,X1 }5 q. O8 q; ]8 a1 \6 L
- LIFE_RTS:
. O0 ]: g) g& `, J1 C6 q' \ - RTS
. I2 s- O# E: Y. Y! o8 P - & K4 f" B& z9 O" K* s# P
- ' J) M9 E+ f# \3 A. R8 H* H4 }
- BLOOD: ;血量
3 i+ B( l$ _0 O: K' w - LDA $6000,X6 W" g/ f( N9 m1 Y, j
- AND #$01
6 S+ m: N |, U5 H% {3 C* ] - BEQ BLOOD_RTS6 j* {8 q' m& Y! Z4 m) F
- LDA #$7F# g7 F; L$ q' z$ W# ^
- STA $04F1,X
. x/ x0 @: b& U: p - BLOOD_RTS:: K" ?5 H) ~2 G* U7 s" h
- RTS0 K) f5 o5 B" ~3 @ d
- % W6 @* D& R3 p4 E7 T2 e
-
" r5 N2 {/ F K5 D" q4 d - 8 a' T* |& \( x) b, a
-
6 l# T( s5 Z* C0 c1 E% J - .ORG $D29F# Y/ p7 B# [# k3 e
- JSR $FF80) e5 d; R, l: L* o
-
' f7 q5 i5 I2 d: a/ B2 A - .ORG $FF80+ {8 [- u8 Y6 d$ v" g' v
- KILLBOSS_BY_ONE ;BOSS一击必杀
- q2 ^' i) [1 b: j - STA $06288 ` s$ C2 R$ _
- PHA
# S8 d( x0 g1 q4 o9 Q - LDA $6000
% E$ {- y$ |. ] G8 s' { - AND #$40% H6 l5 E; G0 } j
- BEQ ADDRFF8E
% _4 B8 b- j3 M - PLA
, L6 k0 I7 x- ]# M, _2 m - CLC ;敌方死亡状态判定
/ z" [, w$ u; g - RTS
( y; c4 H' g4 r5 `1 t' t1 f8 G - ADDRFF8E:1 l7 b! @; k, g; h) y" ?
- PLA
' g% k9 P" } X - RTS
, |) {: I3 ~( S% X6 K - 9 Q0 c7 ~! ]' K$ v
' }2 M2 u8 Q0 w, d% B9 k- .ORG $D1519 u# d5 v* d" E% h. i2 g; V7 S, T
- JMP $FFA0
( c7 E% l+ G* h* p& \9 ` - * L1 j3 ~% Q* z( e
- .ORG $FFA0
1 J3 P" z$ b! j! V; X4 w4 _/ ?$ v3 c - KILL_BY_ONE: ;杂兵一击必杀/ s* q% U0 F3 G0 b, `# U
- STA $0621,X% E! z3 x, j1 l3 P
- LDA $6000
! Z) l+ o& w% d0 a - AND #$40
* s8 k9 e0 B# b" _. g7 t- E0 {, C - BEQ ADDRFFAD
0 ~' b+ D: d: j3 X - JMP $D19A ;敌方死亡程序跳转' z$ P6 |& o. D) d- ]- G7 U0 k
- ADDRFFAD:
+ W% P4 E: c, E) {& _9 Q - JMP $D154
, T! ~" k7 w2 i7 c/ e$ t7 H - 0 N$ t4 v- n b% M. V$ H
-
* y7 y' f1 k4 D - .ORG $A7F6: X) O8 S t' _
- JSR $FFB0
5 U8 `4 O! l) ~' A7 S& b - e/ ?# X% y- \0 T: S. C
- .ORG $FFB0 ;全屏攻击
$ y, G& ]' P% c - PHA0 z# }( U0 k2 H: G
- LDA $6000
& G9 V- }& Z2 R. Z% F - AND #$800 I7 ]1 r' p% ?
- BNE ADDRFFBD8 C' ^) }# l1 d
- PLA
3 Y* y4 a- P; H1 L( `! o - LDA $0015
. s% _( Z7 {; Z$ H9 j$ K - SEC
; t$ o% f$ y( h5 v4 L - RTS9 a2 U% M2 K7 `! A V" \
- ADDRFFBD:+ v" B, x x! f/ W7 a
- PLA
4 v, P0 ~8 d- U( ] - JMP $A826
) |9 d% w! r- B' S -
; ]* ?5 G) j8 v - % r& w1 R. l) z
- ; ]9 L; t3 ^: {$ ~) s7 q% i4 p8 \4 W# r
- .ORG $AA6A y; o1 `4 @: L6 I: j. C4 w: H" Q
- JMP $FFD09 t s% R9 M8 D, q& m
- ( g) J5 ^; z+ ~* c% g
- .ORG $FFD0 ;敌兵动作忽略
7 c9 W( _# {* r: O0 I: D4 w - PHA
( ]8 l( S5 h, _; `" |# A - LDA $6000
$ H* u$ A; l* d# n& a9 m - AND #$80
, I% } z( b7 t% K - BEQ ADDRFFDC8 k$ }8 z% U) X: R
- PLA
, v% k* G' @- Q3 @0 @ - JMP $AA72. p" r P u' Y) m8 w
- ADDRFFDC:
. n: B" `9 u+ i - PLA
; p' ^! [! O5 L# L8 d: |4 Q - LDA $0629,X% C6 }6 v$ [$ K# Y2 w5 w
- JMP $AA6D. @6 v$ Z0 _! x+ X7 ~7 ?9 Y$ J
+ ]1 V3 E- E& G- ;[FC][忍者神龟3代标题选关程序]
! P* r2 p0 Y8 F9 b" y7 @1 ^- N - ;作者:FlameCyclone 2017.4.14 ?+ ?2 E+ I. ^- l- l
- 6 C. \0 W, v2 { y' U; ?
- + r* ~* I( \( _2 P
- ;配置数据
) H8 n- g) x% V7 o - KEY_ADDR = $F8 ;按键地址
/ ~* h( S" V: z4 G- L$ A - STAGE_TEMP = $6010 ;关卡临时地址
# a1 E1 s% `' K& l( a - STAGE_MAX = $0E ;最大关卡数
4 {4 T/ \( x7 @" R) n% H' Z - TITLE_A = $20 ;标题条件A1 k+ I4 C) D9 C$ O
- TITLE_A_ON = $02 ;标题条件A有效状态判定4 A- `8 G4 Y& {
- TITLE_B = $21 ;标题条件B
, R0 v$ ]# y$ y x! l# d! h - TITLE_B_ON = $03 ;标题条件B有效状态判定! H. q0 q! K4 z, x
- PPU_END = $FF ;PPU结束符
8 y- K! K \% e7 O - TIME_LAY = $4A ;标题显示延时地址
' V: I+ [# F0 Y j2 w+ } - BUTTON_DEC = $42 ;关卡减少按键
( r# {) ?: ^& r1 M# b - BUTTON_INC = $81 ;关卡增加按键- o) E* x5 D% v1 s! J8 l6 y) [( d
- NUMBER_A = $06 ;数字A距离STAGE偏移量
4 j0 [5 R- T$ [; x. s - NUMBER_B = $08 ;数字B距离STAGE偏移量
$ t# C3 U+ J( s" e/ p5 B - PPU_ADDR_H = $23 ;STAGE写入地址高位1 R* j; ]0 A' c$ V
- PPU_ADDR_L = $8C ;STAGE写入地址低位
+ A. l* q& W* {6 G8 f - CHAR_S = $A2 ;字符'S'
9 w4 Q9 i) \2 X' s1 i% @ - CHAR_T = $A3 ;字符'T'0 a, ]! i' \( j3 q0 R
- CHAR_A = $90 ;字符'A'
9 Y# W, Y, g# y0 Z! a& M$ r. z - CHAR_G = $96 ;字符'G'
" K8 d9 P% ]* W7 Y6 x m - CHAR_E = $94 ;字符'E'
% {' w- ^- m9 M/ f - CHAR_SPA = $00 ;字符空格
; s5 G8 n0 \5 ~; \ - CHAR_LIN = $AE ;字符'-'7 F' I' t# {0 z6 x6 W9 r T
- CHAR_O = $9E ;字符'o': u; Q8 l7 t9 W3 x+ K
- NUM_1 = $81 ;数字'1'0 m- T8 y( H, W9 Z( N5 z- R
- NUM_2 = $82 ;数字'2'5 G$ [+ x. n6 y* ^, [
- NUM_3 = $83 ;数字'3'. k8 u. c c" T! a6 Z
- NUM_4 = $84 ;数字'4', A9 J/ B; Y0 {
- NUM_5 = $85 ;数字'5'
' l2 ]; M+ E4 m - NUM_6 = $86 ;数字'6'
) M. K, t4 U1 \: V7 S9 T ?- b - NUM_7 = $87 ;数字'7'2 E- W4 W/ U$ y) R4 l; d- w6 h, l' p
- NUM_8 = $88 ;数字'8'
+ p( }+ Q4 V6 C" D; D - NUM_9 = $89 ;数字'9'3 H* Z- f" F6 R0 p7 Y
- NUM_0 = $80 ;数字'0'
% E! e5 b' O: e8 s0 X0 d6 y6 k+ ~1 }& W - 5 g3 E6 ^8 V7 E
- .ORG $F82A
% X, K% O/ X6 P5 ~" ~( D - JSR $E7000 p% w: @6 C7 W3 t) Y3 L
-
( h- g L; q. g! m -
' B$ B9 o8 r( f5 m! B6 R0 S: h0 g - .ORG $E700
& d( l: ~% T& H: X0 H/ N - / Z( U+ Z2 T" X4 [) z ?
- STY $4014 ;补上覆盖的精灵写入指令
/ f4 o. r6 b/ k3 F7 A) ~. x - PROTECT_DATA: ;数据保护- ~) \1 W% G |6 O- Y% ]7 Z
- PHA ;数据保护开始7 k/ }/ @$ l7 U4 j1 [; G* |
- TXA. E& f0 j, I( A; A
- PHA
& Y+ ]9 L& s- B7 H' O! o) w' Q7 _ - TYA; E, u7 p- t0 p3 r- F4 I9 N
- PHA ;数据保护结束
% T9 w d( l! p$ c6 x5 s. E# `% s - LDA TITLE_A) X5 @# v- ~5 Q1 Y
- CMP #TITLE_A_ON ;比较是否为标题画面9 ]# l* ~! {8 J% [* k& o0 t/ T
- BNE RET
. K8 C) Q! a8 I# | - LDA TITLE_B5 _. N# M# S$ }
- CMP #TITLE_B_ON ;比较是否为标题画面
7 H4 U0 w4 Z# d6 ? - BEQ PPU_STAGE
0 c. [/ }2 z* Q5 Q7 _) E* w - RET: ;恢复数据8 M8 p* \% W5 g. u
- PLA ;恢复数据开始: Y- W% S- f2 r& }3 v9 w" a' M p
- TAY: }; m9 k7 e- \4 |. F
- PLA
& M0 w% T$ \1 B+ G5 M2 k: Z! L! f - TAX
0 ]- \6 v% m0 \) R - PLA ;恢复数据结束+ O- D- H5 ?& d0 @: V. V
- RTS ;返回
& n+ K$ Q; s7 Z - PPU_STAGE: ;字符STAGE写入程序2 ~1 u, Z9 \ U% J/ ^
- LDA #PPU_ADDR_H
( ?3 i+ G2 H" d( @, P2 c - STA $2006 ;设置PPU字符写入高位地址
1 r2 T6 @2 n/ @+ Z1 v, I - LDA #PPU_ADDR_L8 f6 }$ ~ s" \" i9 ?; b
- STA $2006 ;设置PPU字符写入低位地址8 ~1 y1 I' b& e/ M5 B8 e* m) `
- LDX #$00( Q2 b. z& }5 ?1 B v# R
- PPU_STAGE_WROTE: ;写入STAGE字模; a5 _% q6 P# ^& t6 _
- LDA STAGE_DATA,X
. j# ]( ?( f& x6 s; R: Z - CMP #PPU_END ;判断是否写入结束) b4 [3 j1 p' g7 w, V- ?8 `& y
- BEQ STAGE_CMP
: o, F2 ?7 n c6 |/ T1 g( Z - STA $2007
* a- u" t6 X+ T+ V - INX( P$ Z9 I% u- x' z& h, h# J" v+ o& V
- BCC PPU_STAGE_WROTE
% u2 }3 F" Y2 Q7 ` - STAGE_CMP: ;选关操作
. f) L2 y4 U2 y - LDA STAGE_TEMP! C! h: ]6 Q+ E, U. h
- CMP #$FF ;关卡数据初始化条件判断
x9 o2 T: ?) S, ]; c - BNE KEY_B
/ W. k( R$ i# M) f E6 _* @ - LDA #$00( z5 B# S" V+ v# z0 ]9 f/ o0 D
- STA STAGE_TEMP ;关卡数据初始化/ {( ]/ W9 ~* L& S! o; Y
- KEY_B: ;关卡减少! }$ O' D- i- c) `
- LDA KEY_ADDR. C4 J) W) V: A1 Q) P& ]% b: P
- AND #BUTTON_DEC ;按键B或左减关
G' y6 ?4 X7 m - BEQ KEY_A7 H5 { d' q5 l% M
- LDA #$FF. c% l6 w. x7 J" A# J
- STA TIME_LAY ;重设标题延时8 k# _9 ]' G* q1 J3 h' @7 u, K
- LDA STAGE_TEMP! b3 e" D$ T+ m( n8 \' A2 v
- CMP #$00 ;关卡比较
. U2 v. `0 E& w# H; M) F1 | - BEQ KEY_A
* |. m& ?( D) ` r9 T1 b7 \# ~ - DEC STAGE_TEMP ;减关9 K6 c9 e4 u# s4 o
- JSR MUSIC ;按键音效
, R3 I, h6 i. k9 N: I - KEY_A: ;关卡增加" n1 I! o$ F( h* `& [' f Z) K
- LDA KEY_ADDR8 g+ A0 A U, ? x
- AND #BUTTON_INC ;按键A或右加关
) V- p9 k! a0 X* S& w" k" U - BEQ PPU_NUM_WRITE5 C$ R5 @. c: E- x$ @) L4 G
- LDA #$FF& c+ }/ p5 S, M2 D
- STA TIME_LAY ;重设标题延时
1 ?" n: g+ Y, @7 ?6 o - LDA STAGE_TEMP. n( |) d2 i4 u
- CMP #STAGE_MAX ;关卡比较
& a! E8 G0 B, B$ c - BEQ PPU_NUM_WRITE: a, a* k( p, G1 u; I+ m9 N- j
- INC STAGE_TEMP ;加关2 @% t4 S5 c( j8 M0 R" ]
- JSR MUSIC ;按键音效
* H. e4 { p6 h: W |+ l U - PPU_NUM_WRITE: ;关卡数字写入地址
4 l; Q0 ^/ Z8 J) E5 c - LDA #PPU_ADDR_H
# c4 A( n+ E( k( p/ d& E5 w - STA $2006 ;设置PPU数字写入高位地址
" s, m4 d2 t! l) d - LDA #PPU_ADDR_L
! W* u2 j4 C l8 E: e7 c- |8 {! o - CLC
' e( I) ?1 U& X, V5 _2 Y - ADC #NUMBER_A: I8 a- W. z! _1 S8 ^
- STA $2006 ;设置PPU字符写入低位地址
& N. L a* J% h$ H - LDA STAGE_TEMP
& u0 A( Z, q# }$ N - TAX: T7 e: I3 q' E* ~: y
- LDA STAGE_D1,X ;写入数字2 T; H( O6 b7 X/ _0 U
- STA $2007( F9 b4 n) N$ }! K
- LDA #PPU_ADDR_H/ [7 I0 g/ Y; K/ x+ `: g
- STA $2006 ;设置PPU数字写入高位地址. i* s- {5 u( J& H4 [1 b7 R, o
- LDA #PPU_ADDR_L
4 H {+ h" W# ^" w2 t8 K - CLC
6 K) k: W$ G4 W9 |6 K. U* @ - ADC #NUMBER_B0 l; p# a5 x# i& }% m! g
- STA $2006 ;设置PPU字符写入低位地址
) f- Z3 i, o0 O - LDA STAGE_TEMP
: L( }8 X( X6 a$ e* R5 l - TAX4 C. m B" X. j, X9 t
- LDA STAGE_D2,X ;写入数字- |7 Q# Q; H; ]2 d2 D
- STA $2007. ]# F* k$ S# a$ g4 H- H
- STAHE_WRITE:
6 p7 A0 g9 R+ J$ M( i0 B - LDA STAGE_TEMP
( K4 Z. b5 s8 v# Y0 q - STA $2D ;初始关卡写入
1 H6 ]! u" d: U' U. e7 B, g - PPU_RTS: ;恢复数据
+ K4 h% W' K1 s, Q5 o - PLA
3 c# E8 J: \7 Y' [ - TAY7 f6 ~' U9 h4 H/ l9 ?1 w
- PLA7 z" `1 X, t: T' J; R$ K7 a, Y5 K
- TAX
8 m ]7 c: J* W - PLA
( G4 m2 O, _; ^8 p5 w; E3 ~- V - RTS
9 _( p+ C) ?* P2 C6 y e- h - 4 T- N, c! A0 C3 J" B; @
- STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据4 O! d n5 {; ?' j/ `
- .BYTE CHAR_S,CHAR_T,CHAR_A,CHAR_G,CHAR_E,CHAR_SPA,CHAR_SPA,CHAR_LIN,CHAR_SPA,CHAR_SPA,PPU_END2 Y* n# m3 y, `% m, _* C
& u" [9 f) B3 M8 r8 }' T/ w- STAGE_D1: ;关卡数字
) S C+ ?/ m- R: R - .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, G3 O4 ^5 [ - 4 I6 s `5 `: M
- STAGE_D2: ;场景数字' Y3 w" c' u+ S
- .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
1 _0 J: l: B* L& j) m! W: }" _4 Y -
6 h! w }3 x6 D/ r S9 q6 \6 n1 | - 8 D- d a2 v* w; J( M+ [( v
- MUSIC: ;按键音效$ q8 `- M8 f: c% c* T' a8 T* y
- LDA #$3B ;音乐号3 p) A6 n4 ?7 _
- JSR $919E ;系统音乐调用
+ u- B, r- N2 Q. J2 w$ h. U - RTS
复制代码 4.无敌锁定: 暂停后,按上键切换;# G! o+ ^; P, h) |5 g' A" V2 V2 f D
5.生命加满: 暂停后,按下键切换;* J# A4 w" y2 f# `, h/ g
6.血量锁满: 暂停后,按右键切换;
7 s2 c h5 s m
* b5 H9 B! u* P$ j 3 F* @' q+ o1 [) v0 @ S
/ z& y& R6 w) p
* D! Q2 N. G' }( S- y
! e( n$ S- J. t, tFlameCyclone.ys168.com
1 }8 i( H# f) b) F' ~- v$ j$ Z Zwww.nesbbs.com
9 u( x4 p7 T% s- y, x2 ?) D' s1 l) u& F
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|