|
|
本帖最后由 yandagui 于 2017-4-2 13:23 编辑
7 _: c- ^' K. e9 x, F& D8 w3 m3 p$ j+ p% o6 z
[FC][忍者神龟3][END选关]
4 n" v+ G, @9 V& y) R2 _. p x* r, Y# T
时间:2017.3.30/ F5 f- P# c$ f: \" G
作者:FlameCyclone
* C4 j. y7 x3 O( O- D# k内容:( X' t7 p+ [; L
1.关卡选择: 标题时,左或B减,右或A加;6 y' R$ k& ?8 o; n
2.全屏击杀: 暂停后,按A键切换;: R% G9 P6 f: z2 @1 k8 j1 A3 Z6 a
3.一击必杀: 暂停后,按B键切换;- .ORG $FEA0
# l' ~: c+ D* l0 ]. D) `6 B T - ora_data:
( s n* a8 C7 _! y% c0 d/ a - .BYTE $08,$04,$02,$01,$80,$40,$20,$10, u" p3 h1 M! m: ^: D
- and_data:& B" ~& K2 A% {6 L5 `$ u/ \
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF
. [- p! h/ B+ D - 1 L8 [ R. ?+ M4 X$ u) }
- button = $F8
& H) }( I- |' Q# k9 k - flag = $6000
+ x: _$ }+ C7 w: f/ O - pause = $00453 J$ g3 K* C; F" D
& K5 g; m( u( T3 f1 }
; d4 u0 A- F Z* ]9 [$ R- .ORG $F90D. T! ?$ q3 O0 j* n7 a
- JSR $FEC03 d; P% g4 y7 m* N3 M8 T. ?* {
-
( x. D f Z2 I2 ]* ^5 `& O - .ORG $FEC0
9 _; g8 Y" F: ?5 Y - STA $54,X) N2 ?9 U. l, l/ Y2 C% `3 s
- STY $FA,X
6 v& O" b9 z# W5 c) A: T" x - PHA
7 t' G' S5 D9 I9 \5 ~ - TXA3 z7 }2 C" [! G2 ~" B" K: M
- PHA* G. I( p& n) d& z- \7 S5 Q
- TYA
6 o1 v1 k7 y' Y+ s# R; ~6 d" S - PHA
/ u4 S' J% P+ E" B } - JSR KEY_OPERATE6 t" w# q$ T. S1 ?
- JSR INV
6 j$ v6 I$ Y4 Z, t+ R - JSR LIFE
: `! B. ]+ n u5 @9 w - JSR BLOOD
0 P e# r' n) Z - PLA
7 H! S G* [, y! ]- f - TAY, i! F- w, V6 X: ]9 E9 ~% r
- PLA1 Q- i, j; K' S$ K9 u
- TAX: w& z/ t+ F* a/ f/ k1 W# ]
- PLA
* D7 ?+ l# i6 k6 g* J- R, S - RTS
. A4 `8 D" t, L. z$ C: W - KEY_OPERATE:
3 }+ X/ D- j2 N - data_protect:* j! }4 y8 p. U' J& d1 X+ p/ q. n& P
- PHA. v1 Q/ ]& Y8 ^9 I
- TXA
; b2 C J& ^% F5 L$ \( t& u - PHA
& a. U$ b% A6 ^7 y! Z9 ^' o7 u: M - TYA: V3 }% A0 d6 c- ]7 ^0 I: h
- PHA9 A) j9 a4 V, ^1 R- Q
- 5 D9 L ?. p; z& X2 B' p
- FLAG_CMP:! x; R4 P: ]1 J0 \
- LDA $600F
' X; ]) M; o5 g% J5 S - CMP #$7F ;标志数据初始化条件判断1 H' k6 J, z; [( Q' G# `
- BEQ pause_cmp
3 {3 j% ~! c) { - LDA #$80
1 S. v" ] G9 X: C& R/ @& ]9 e: l" i9 q - STA $A001 ;6000-7FFF写入启用8 e9 E, ~8 L" P* y; o
- LDA #$00, ?2 I0 O9 E/ y
- STA $6000 ;数据初始化& P6 c( C. Q$ A* I# z3 b: v3 ]( m. r0 Z7 {
- STA $6001 ;数据初始化
1 @0 j# S! o8 Z) v, u - LDA #$7F
- a% q& E6 |7 a; H( ` - STA $600F
, O9 G- k5 M. Z U5 p - pause_cmp:
; U: w; j; |+ l* p3 g) D( F6 @7 [ - LDA pause: c# u. h- d4 o2 L% P
- CMP #$01. c) @+ j$ i6 Q/ |
- BEQ button_press( N6 k/ `) W& Z$ o$ h- v; M4 g
- PLA: g1 C5 u8 l9 Y M- V5 u( R5 s
- TAY, C& L7 Y( H( M0 G
- PLA$ {# Z' m( ~0 G/ ?! g$ W% I( O, Y0 [: Z
- TAX
0 S( h- h7 u8 U6 u - PLA5 z% ]3 N9 e1 `* R
- RTS! F/ M6 q# N6 I0 n
' I6 j; {/ x* u, C0 o- button_press:3 ~* R1 V" y5 B& b, u% k# i i: C
- ini_Y:3 Y2 u5 ~' W6 X
- LDY #$000 k6 h' t7 q& n/ K4 t
- button_cmp:
& y+ F) D( z. G8 M" ] - LDA button,X8 f" D% i% c# y1 T- _
- CMP ora_data,Y- _0 x8 l3 p1 ^" W
- BNE count_Y_cmp# Q( D$ i5 {6 m- S( S
- flag_cmp:5 J: ]4 i& z9 i
- LDA flag,X
* z! a4 q$ }$ k$ T9 z4 Q - AND ora_data,Y
+ s# v! L: }0 T& H - BNE flag_and& Y* T. {# Q2 f9 b1 r; _; b' \
- flag_ora:
. Z' {+ ]; Y a - LDA flag,X. B$ R4 w* E Y( O( u8 ?. W) i
- ORA ora_data,Y
0 ]* o3 K) m; W- s - STA flag,X9 d" d* J* h% G9 g
- BNE count_Y_cmp1 n3 X; K9 Z+ T9 \/ v
- flag_and:' ]4 |" c8 Y" g2 P6 r8 L
- LDA flag,X2 l7 ?5 v9 ^; \) O
- AND and_data,Y+ L7 S& c' a! X; |, N; M: R
- STA flag,X W/ k( o2 r) a) J( u" ?+ h' K
- count_Y_cmp:
0 h3 x: l# l; i# Q - INY8 f$ M. S& |1 W' {+ G' X! R
- CPY #$08
. t) C0 h2 q/ c( y - BCC button_cmp
; c0 T" p# t) K$ I3 o" i4 ?# h - 0 ~' e$ y/ N+ e) E
- data_extract:7 e# S& t6 b* t9 ^: X
- PLA
O( g* ?/ g6 Y, }' g - TAY
2 U( T+ {! x7 O - PLA
. j/ ^, A0 [0 |+ ]: F. B, W1 U - TAX. \$ i/ i5 ]# t( x G3 w' Z
- PLA
( g' Q5 x h' S) o - 6 r' ^4 O' X# i. M8 t
- return:
9 Q3 X# Y2 h! [7 l; h6 C+ l - RTS
" J3 Z" N# p, G+ a$ i' b Q - + W# x. Z# h$ ?( O4 o1 H
- . O( Y9 V F! t4 W* E( T3 ~6 O
- INV: ;无敌$ y T) w4 O* }2 n3 i
- LDA $6000,X
- J: V0 Y3 Z/ V. i/ n - AND #$08# M5 H, V! i4 p. g
- BEQ INV_RTS; n4 z, d! `+ @! D8 e; [
- LDA #$05) W) H& E* D" C. T" f
- STA $04FF,X' }6 }4 o3 R# C
- INV_RTS: x: z+ K y* Q4 A7 L
- RTS
: y' S, |) w2 T+ ]5 k) l - ! F+ P' k* q0 ]/ l
-
# ^+ y# p/ k. X - LIFE: ;生命
* |* a0 C: q' n' G; u - LDA $6000,X
* c. p" L& y/ c$ D2 ~ - AND #$04" D7 }. P7 p7 O: n! y- }
- BEQ LIFE_RTS0 r5 }; ` s5 o( a& ` w, {
- LDA #$09, g# o! q; X# Z$ l( R. g
- STA $6A,X
" q, [; @0 ~ E S- S7 f - LIFE_RTS:3 \' f+ C* c" ?* @+ ~
- RTS
9 G2 l2 c7 ^ u/ W: ` - 2 A" g5 c4 m/ d! ?3 S
- 6 M1 _. }0 g ]9 G0 `, y
- BLOOD: ;血量; T4 Y' Q" f. s( X& ^% h4 T% [
- LDA $6000,X! T9 _. _5 Y# ~1 H1 A9 i
- AND #$01
: c4 d" d6 W) }% w) g - BEQ BLOOD_RTS
' J3 C' T) N V- B/ u% V2 P - LDA #$7F
) v% e. t- t( L. N e - STA $04F1,X
7 @. Z) S, e" C: Q6 k - BLOOD_RTS:9 p$ Z2 d. D+ a# T! v/ _
- RTS+ p7 R* A; R' r- E
-
8 l' c0 Z% v' b. C - 1 }9 I; d8 e) d% U+ j
-
& }- z* ~) l. g( D( Q# K! A& N - + k, m) A5 s% C0 @' @5 Y
- .ORG $D29F
8 L% B! p4 w0 }0 L2 A7 Z - JSR $FF80
. ?, h$ U4 h. K0 E4 J- H -
7 ]! l. ^! A, h5 b1 D& g( \ - .ORG $FF80. q! h) J( v' P; f& x0 g
- KILLBOSS_BY_ONE ;BOSS一击必杀+ m% {& M' Z0 }8 [2 a3 a6 t2 d
- STA $06289 p4 o, @0 A8 j1 k+ ]& J' f
- PHA
: P, i$ N% `5 n# ]% e# G0 Q# Y4 Z - LDA $6000* |2 k( j3 y L+ l4 I
- AND #$40$ x4 @0 O* Z; }' e2 W
- BEQ ADDRFF8E
& k" q9 N7 O& ^7 `7 c/ G - PLA
. [0 ?. t0 m- `9 B - CLC ;敌方死亡状态判定( H- m3 U7 l3 z! L! c' [9 F
- RTS
& c& u7 r/ S' ~0 L+ j4 s# e/ J - ADDRFF8E:
' A* |! U% R# A - PLA) Y- Y2 s0 F: D+ p9 u+ f8 _
- RTS8 q5 d5 V( i1 O5 t
- + r! Y/ r# X" s
+ o3 y, K' m# R# j: @0 E- .ORG $D151
6 i F- @* }- m# i( m+ { - JMP $FFA0
2 f) X0 B4 | A. s -
% k! U. I8 K$ ?, j/ ]# s. [/ Y - .ORG $FFA07 ?1 c4 t3 A$ K3 [& w) O1 |
- KILL_BY_ONE: ;杂兵一击必杀% ~; e9 j4 L( w: f8 B0 j+ h
- STA $0621,X
! m8 |6 y0 q- U1 C9 w - LDA $6000) u' C5 o- i. U1 {: v2 z) G
- AND #$40+ Y# m R2 a1 Q5 x. P
- BEQ ADDRFFAD- f6 _+ K" o h7 G1 L e
- JMP $D19A ;敌方死亡程序跳转( `) H* Q6 d7 b7 \
- ADDRFFAD:
& G" [7 k$ O! O9 p - JMP $D154
S- N3 V9 n f; ?7 i) A1 G! m - 8 B3 D; o& r0 O
-
8 X2 b% ]" P! q$ ~2 [+ D - .ORG $A7F6
1 b5 P: S" I& G2 ?5 W" ]- Q- K( Q - JSR $FFB0! F0 k6 B3 c2 J
-
7 A# {" @! J/ c/ d, p. M - .ORG $FFB0 ;全屏攻击
( p& F% n1 }7 u F$ s+ K: `; M - PHA6 {1 `4 v" P5 Y" A9 @
- LDA $6000
$ X8 y5 }8 s w. V - AND #$80
; C+ [% b. \; u6 U - BNE ADDRFFBD$ n8 i2 y7 H9 Z" F9 H X
- PLA7 N5 Z( ], P4 w/ Q7 W/ @% l5 J
- LDA $0015+ K" k0 t! j" i9 b, F& p. V
- SEC
' {( h4 l3 Z8 ? - RTS: O, X& M6 z" k; V0 h: J; V
- ADDRFFBD:
% I' [, x1 e# T' u b; ?* r' t - PLA" I8 \( @+ k0 ~! K/ V' {
- JMP $A826
9 B6 ~0 e/ w8 O" c -
8 N; o& J9 m% T% m) J( H% K - ' {; u. e5 N7 c6 D H2 J! m3 G) F
- 1 a! Q! ^" v# Y* e- G9 ?/ K2 n
- .ORG $AA6A: n1 O2 J4 N2 F% s; F2 |
- JMP $FFD0
" \; [' H( g. g1 j$ L - " l! f+ u+ ?+ q6 q$ U
- .ORG $FFD0 ;敌兵动作忽略7 z3 t9 O# K7 A+ X' c5 E) M
- PHA7 G4 Y" g* [( t, I9 E$ A5 C, ]# D
- LDA $6000. R& P/ b# l& I. g6 m: {; |4 S: |9 t
- AND #$80
+ A( B# w0 d9 q - BEQ ADDRFFDC! S7 _- J0 B7 Q+ {
- PLA
/ A& j- u& ~7 E. o: ]$ N0 f - JMP $AA72
; Z( s4 g3 {8 H+ [ - ADDRFFDC:
) q: Y4 l/ }6 W+ d$ d8 G - PLA
1 U# c* b, ]7 r) `3 H- X9 T - LDA $0629,X! {3 X6 F$ U) {2 a! c
- JMP $AA6D
$ n2 m# Q0 c5 o3 T - Z# w5 D/ T) }6 V9 q U
- ;[FC][忍者神龟3代标题选关程序]
. [5 R3 T4 M0 E7 n - ;作者:FlameCyclone 2017.4.1- D8 A3 q5 V! O6 A0 U* _) W& W
- 5 B) a: A- r1 S6 ]% A, s# Q5 M0 R
# E2 j# H; c& u0 \1 |* v4 d) \1 v- J- ;配置数据# q+ y( @& K4 G. _
- KEY_ADDR = $F8 ;按键地址
" R& y) z- u* O - STAGE_TEMP = $6010 ;关卡临时地址
% R) T) b) U7 s - STAGE_MAX = $0E ;最大关卡数0 M4 Z6 X6 W) `2 I6 i" t& E* E1 t
- TITLE_A = $20 ;标题条件A/ v' p2 X' n- U3 s. c
- TITLE_A_ON = $02 ;标题条件A有效状态判定9 P. q& {# O8 M. [
- TITLE_B = $21 ;标题条件B5 A, w# w) \3 b. j, D
- TITLE_B_ON = $03 ;标题条件B有效状态判定1 _0 o' B2 \2 {! ]3 [# A0 z; s4 {
- PPU_END = $FF ;PPU结束符
4 U& Y( ~1 [& @& M. [ - TIME_LAY = $4A ;标题显示延时地址3 R( ]/ K4 C) @
- BUTTON_DEC = $42 ;关卡减少按键( d" Q7 q) [2 |8 g# L2 J
- BUTTON_INC = $81 ;关卡增加按键% {3 p' H1 M* n7 u. A3 G
- NUMBER_A = $06 ;数字A距离STAGE偏移量: {$ n ]* U" I E+ c& c) Q
- NUMBER_B = $08 ;数字B距离STAGE偏移量& B$ | N- T& z. F7 R, a4 Z
- PPU_ADDR_H = $23 ;STAGE写入地址高位9 \" u! V5 r2 w7 D8 B- B
- PPU_ADDR_L = $8C ;STAGE写入地址低位
8 Y- K4 d7 s6 i* p+ T - CHAR_S = $A2 ;字符'S'& }% u+ S" V& a! A. V5 E% D
- CHAR_T = $A3 ;字符'T'# b# d1 i6 k; c' _
- CHAR_A = $90 ;字符'A'0 u0 i& ]; {, y' z. ?" r5 S- W
- CHAR_G = $96 ;字符'G'
4 r0 |* U2 |5 j - CHAR_E = $94 ;字符'E'
* p! W1 G: u' ^6 D" w9 o, `* N' c - CHAR_SPA = $00 ;字符空格3 b6 S; ]8 E- N5 M# b: X& F
- CHAR_LIN = $AE ;字符'-'2 p. x* a0 O, Z( j9 t1 t7 e) M
- CHAR_O = $9E ;字符'o'
) T# p" a8 W& D% u1 Y# O - NUM_1 = $81 ;数字'1'* E, @' g \( a( H1 ^
- NUM_2 = $82 ;数字'2', g+ F- E7 E7 a6 b
- NUM_3 = $83 ;数字'3'; W! V0 s( W5 W. H
- NUM_4 = $84 ;数字'4'& N5 b! \6 \, @
- NUM_5 = $85 ;数字'5'
! ^! \" J$ @( F3 }6 k4 L - NUM_6 = $86 ;数字'6'
% X( c3 e/ T4 Y E8 B% d - NUM_7 = $87 ;数字'7'3 D m; D& `0 m) Q6 |% m. N& @
- NUM_8 = $88 ;数字'8': P/ ~& G) ^3 P" ?" {: M- a* o
- NUM_9 = $89 ;数字'9'
" |; ?6 a( m+ g6 P& P - NUM_0 = $80 ;数字'0'2 k) [: y3 G. ?2 h$ s( _$ A
- 1 C$ s' x9 L7 q" @& I" I v
- .ORG $F82A
6 X3 j' X# I: T5 o/ p2 n - JSR $E700! \; A$ L7 o. h5 m& |
- # s" G" v3 x. x/ M
-
; F; ?# K8 B' w - .ORG $E700
1 T5 E4 X% Q* L* o. d - ' n/ t/ f6 W# Z8 w
- STY $4014 ;补上覆盖的精灵写入指令
6 l0 @4 ?* i! w- ~+ Q4 h3 X6 g - PROTECT_DATA: ;数据保护
" G7 b# Y; R J - PHA ;数据保护开始1 C" C: M/ [: g* p
- TXA$ d# ^9 X2 ] S8 V& P5 [ U
- PHA/ F6 R2 B" {7 M6 _6 N7 I* R+ I( M
- TYA
; s4 T2 ]% _6 H8 f8 o! F. m- Z - PHA ;数据保护结束
" y6 P: b2 Z% t/ h$ D, K$ w - LDA TITLE_A
) H N3 m% h& M$ T - CMP #TITLE_A_ON ;比较是否为标题画面
% _& }' |+ K% L+ ~! ?) Y9 g - BNE RET6 G( \0 `+ H/ i9 d6 O
- LDA TITLE_B
2 F6 B! g6 U; D7 E - CMP #TITLE_B_ON ;比较是否为标题画面
6 t, D7 z' J9 R - BEQ PPU_STAGE8 V! _' ~" Y0 x# s4 h, T& Z* C( P
- RET: ;恢复数据/ @0 w- m7 m' p2 A. a$ E
- PLA ;恢复数据开始
3 h: w/ v+ c7 } - TAY" X( |6 p/ Y8 I* s% T7 M: A
- PLA
, Y. O1 E$ y* X3 u& m4 ` - TAX
1 b( @3 B5 I) b6 Z8 w - PLA ;恢复数据结束" M3 @8 p6 l6 u/ w
- RTS ;返回0 S& ^6 U4 M3 T- F
- PPU_STAGE: ;字符STAGE写入程序
$ A: M: X; t: k - LDA #PPU_ADDR_H 0 m5 Z+ F4 N0 ?9 E1 V8 e9 V1 Y0 t
- STA $2006 ;设置PPU字符写入高位地址
; ]: O: w" }6 c: e* c# b5 r - LDA #PPU_ADDR_L
8 |7 i6 p$ m; Y# v* w - STA $2006 ;设置PPU字符写入低位地址
+ P) i. M& G/ x* S& P - LDX #$00
% @2 a w$ _9 V3 n" \" B - PPU_STAGE_WROTE: ;写入STAGE字模0 r7 V4 I- d' e$ |6 T4 k& A
- LDA STAGE_DATA,X& _5 M6 J4 {$ v% A
- CMP #PPU_END ;判断是否写入结束
/ k6 m* H1 a" Z B - BEQ STAGE_CMP, s4 @! c3 ]9 P" X: Z
- STA $20071 ~2 m& p% _+ k
- INX
9 `8 d& ]: E3 [+ m. n - BCC PPU_STAGE_WROTE* z0 { V+ E6 X5 c' t; Z( A
- STAGE_CMP: ;选关操作# u8 y( R0 a8 k3 y2 I
- LDA STAGE_TEMP
$ p1 A8 ^4 s' {3 ~1 H- }" K0 _ o - CMP #$FF ;关卡数据初始化条件判断
$ o( G- L: l1 T0 n - BNE KEY_B
/ H1 N" K0 q- c) _- O Y4 a0 T - LDA #$00
- Q# @" z2 O! I - STA STAGE_TEMP ;关卡数据初始化
. k& Y/ J$ d! N% \( ?. |; | - KEY_B: ;关卡减少
8 }; D; [% |1 w7 g0 E - LDA KEY_ADDR1 m' K" j q, ^ O
- AND #BUTTON_DEC ;按键B或左减关+ u5 T6 m# Y& `" A
- BEQ KEY_A
3 N" y+ G( L: W1 d2 x u { P - LDA #$FF
V/ C8 D2 I& V- t) G0 q - STA TIME_LAY ;重设标题延时3 G) Q5 S& `7 y* D4 s
- LDA STAGE_TEMP' v: b9 f7 h: {, }' q' m
- CMP #$00 ;关卡比较, S8 V) L" ^ @0 |6 n# Z
- BEQ KEY_A- J+ `# d+ N$ u' g0 I
- DEC STAGE_TEMP ;减关
$ E1 S2 |, s" P/ h3 K, @/ Z4 Z - JSR MUSIC ;按键音效
. Q5 \: n3 @! ?. P4 ~1 z& ` - KEY_A: ;关卡增加
# q! `; {" Q6 ~1 R5 ^* p8 M - LDA KEY_ADDR
# e3 I' w+ t5 m$ o8 r- }8 R - AND #BUTTON_INC ;按键A或右加关2 w4 O/ O9 E" S* U0 D9 u( y
- BEQ PPU_NUM_WRITE/ n7 Q" u2 X& k- F* I' x1 }. g/ U
- LDA #$FF
; B3 r$ N/ Q6 q- \! E: [ - STA TIME_LAY ;重设标题延时5 v( p5 V! C- k2 N' p- {
- LDA STAGE_TEMP* h" } b) Q$ N7 x: \
- CMP #STAGE_MAX ;关卡比较) P4 [# l# h& H
- BEQ PPU_NUM_WRITE. j9 G2 V& r' t
- INC STAGE_TEMP ;加关% ~8 |5 {- I# ^4 a! |+ G, D t5 O) T
- JSR MUSIC ;按键音效- S9 R# k/ |0 m1 c" E
- PPU_NUM_WRITE: ;关卡数字写入地址1 J. _4 \: @7 O5 U
- LDA #PPU_ADDR_H0 t3 h- H r. D: C6 u0 y2 N5 \
- STA $2006 ;设置PPU数字写入高位地址* ~# f7 c- X6 P) d
- LDA #PPU_ADDR_L
2 b! l( v: {: A1 P - CLC: c3 P+ F+ C+ N2 V9 y; e
- ADC #NUMBER_A
. N' C+ a* Z. s; i) ?" S/ I - STA $2006 ;设置PPU字符写入低位地址
) {/ c$ V4 ^+ d+ ]; q- o - LDA STAGE_TEMP0 M7 L% y& S/ H. O7 @
- TAX
6 ~! A s+ x8 M3 k# m& X - LDA STAGE_D1,X ;写入数字1 z$ C6 [8 c# J* r
- STA $2007* t Z( p5 p2 o" \% |
- LDA #PPU_ADDR_H
1 r. L, C9 S, U' {; F - STA $2006 ;设置PPU数字写入高位地址" U5 A( ~. l d& ?/ `5 G: Q i6 y6 w
- LDA #PPU_ADDR_L
" T. d! T6 }7 h% V - CLC
& @, U/ u, P+ {. L - ADC #NUMBER_B
2 ]$ @. y7 J* i) F+ P7 L! L - STA $2006 ;设置PPU字符写入低位地址: i' q9 s2 d( L, r; R
- LDA STAGE_TEMP& D( m+ c$ P; a4 i/ I" `( X; X
- TAX
5 j+ A- r3 }$ O - LDA STAGE_D2,X ;写入数字0 P2 y; ^; ^( i! A( Q. F9 U
- STA $2007# _8 ~ q+ {) s5 @( N
- STAHE_WRITE:
o0 m: g9 d1 v; R) ? - LDA STAGE_TEMP* t) G: o; ^+ F2 H4 T
- STA $2D ;初始关卡写入
; ?1 n* c% X- y8 p5 D* @5 x - PPU_RTS: ;恢复数据
8 ] M5 i$ e5 A+ K& u; ^5 h3 \: B - PLA( f1 u+ s5 }/ I8 P! W2 T) t
- TAY
3 z1 }% M4 E+ Y - PLA
$ I- u/ a4 O) x/ L- O3 I - TAX5 ^# t- M# D) F
- PLA
) Y7 s9 a' X5 H5 p9 X - RTS# \" t3 w/ u) P% Y1 [+ M/ z$ ~
- & p3 }0 C' _7 l3 h9 y) m1 P
- STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据: {1 ^5 h" @+ g4 y' O5 F6 f
- .BYTE CHAR_S,CHAR_T,CHAR_A,CHAR_G,CHAR_E,CHAR_SPA,CHAR_SPA,CHAR_LIN,CHAR_SPA,CHAR_SPA,PPU_END* J/ V3 T* }, H) b, Y* H/ Z/ W U
- 6 }) s; \. p, F* s" ^
- STAGE_D1: ;关卡数字% N$ U G. n, Y" \$ o0 j8 a
- .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) `( v5 b' ]1 w2 t o* q. O
9 R# o H q3 r. U- STAGE_D2: ;场景数字
6 ^& r+ X# a0 z0 K - .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* Z* D* B, C8 h* D+ |6 Z
- & `. p. C' W" J7 u b
- 9 r- b2 q0 g& d+ E( o7 D% |
- MUSIC: ;按键音效# \$ P: a! Z/ C) }" d
- LDA #$3B ;音乐号% l# b% y2 v8 X( @% u
- JSR $919E ;系统音乐调用( L( n/ F0 T0 r* M4 S/ @5 a6 N
- RTS
复制代码 4.无敌锁定: 暂停后,按上键切换;: @5 x; {8 t5 W% z7 n6 c
5.生命加满: 暂停后,按下键切换;) d$ ?$ g/ v% z+ t* N0 P2 U: a
6.血量锁满: 暂停后,按右键切换;
$ b+ ~" S, ?$ I % \' j% @; J. O3 c0 f$ J+ y6 z

$ x) u, B1 ^6 Y r6 d1 j. Q % u% b4 \6 O* I% z8 X

' M% K! p0 H& G; I/ N, k8 T3 o- G% H. E) b$ x
FlameCyclone.ys168.com
7 t* o+ j4 J9 C0 m4 @" awww.nesbbs.com
* p4 ^) k- R8 n- I& p3 F7 r2 r* [5 x5 W Y- f; [) r
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|