|
本帖最后由 yandagui 于 2017-4-2 13:23 编辑
$ y' I) D( x$ e) p2 t4 @; Z$ O) _) A; J3 Z& D3 K g
[FC][忍者神龟3][END选关]7 h* ^' U0 F I1 m) v" w
" F/ j# g0 |! Z6 ]/ c2 C$ c时间:2017.3.30
" u' y% @; Q! t. G; P) e* |作者:FlameCyclone- \4 P! F2 r4 H, N2 }' a# z
内容:
8 G/ h# {5 v- z8 U 1.关卡选择: 标题时,左或B减,右或A加;, k6 s& n' z, t0 Q( U1 \
2.全屏击杀: 暂停后,按A键切换;( A8 Y: d% C/ S4 I+ H& K
3.一击必杀: 暂停后,按B键切换;- .ORG $FEA0
6 v* n7 b% u3 r0 M2 U - ora_data:: ~/ T) g) v% O; Q0 c
- .BYTE $08,$04,$02,$01,$80,$40,$20,$107 [4 [' T, e6 E* v% u
- and_data:
; B3 K1 q% J/ J& E: G- o - .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF8 Y( s t- L( C0 w
-
" g" E( t" S) v+ w; O - button = $F8+ f6 [5 S2 M( t
- flag = $60000 h1 _% o/ Q% C+ W
- pause = $00459 o$ N. t! h, Y
2 [2 [% ~% B6 X6 l. a- ' ]8 b7 I7 K5 W# |0 f
- .ORG $F90D' P, n4 W3 E4 ~5 y1 O7 q" O
- JSR $FEC06 W0 e# E9 L4 d
- ( e! f- U' Z% z0 C* |4 Z: L
- .ORG $FEC0
, V* C6 p# |9 `! Z7 A - STA $54,X( Z0 c( O2 k, o! p: m' [
- STY $FA,X
, z7 s3 @/ H0 H9 ]5 ?2 m - PHA/ T+ q& z! @5 ^' v3 K; e' j3 C- h
- TXA
3 ^/ q* j" ]/ j' G - PHA* w _9 T% @/ l% [5 l
- TYA" x) Y, s' R7 Y4 y6 u1 G
- PHA
5 U$ X8 r! O$ j8 c$ S6 d# l' ] - JSR KEY_OPERATE7 p e8 v- k' H( ]# ~" R# P
- JSR INV2 c* t4 e4 ?/ l+ U
- JSR LIFE/ X/ {+ B- A0 ?% t# Z, S6 ]6 {4 q" C
- JSR BLOOD& G( Y; D |9 q+ H
- PLA% p1 U8 C# K/ F1 M
- TAY5 S+ U; u1 F) L. u
- PLA
% z1 b- t5 V+ a0 J2 U - TAX
- J8 s+ u6 B8 @4 L - PLA
8 n" |0 n- b; @ - RTS" {1 A. L& k) L1 ?
- KEY_OPERATE:
7 u4 Q) d8 U2 a1 B4 K3 q1 a - data_protect:0 O& i3 K$ u L. g# i7 o+ F
- PHA
* G: x# h: ]1 M - TXA
1 c+ N4 w+ L# u - PHA6 I, ~4 J# X0 i2 n7 {
- TYA
: z3 M [ l! ]2 l - PHA
1 m* Y3 U" s. V" r - ) _) `: t/ V0 ?) `7 z$ Q, P, r1 U. G
- FLAG_CMP:+ g {4 o% V m1 y5 u& ^8 J- y
- LDA $600F
& h. L+ m* G: C/ I0 ^: n8 F - CMP #$7F ;标志数据初始化条件判断& _- F4 \. G7 V# c, U5 J
- BEQ pause_cmp8 x4 l! W" y) b) m z9 E
- LDA #$80: D. B5 X8 u. t+ Y" w* U
- STA $A001 ;6000-7FFF写入启用$ l$ @6 e4 k, @2 Z2 r% A& M
- LDA #$000 S/ c! n# [6 X2 O, d) W7 e
- STA $6000 ;数据初始化
7 ?+ ~- r1 H- ` - STA $6001 ;数据初始化; o' ]3 o! ~! x- R
- LDA #$7F
( C# Z" ~) \( {! [0 Z0 U/ a4 q - STA $600F" o3 r/ ?& ~( K; b
- pause_cmp:
1 G, i( }- @3 R" X4 j l/ ^" L/ f - LDA pause
4 D- I; _2 C2 F# ^$ f3 C - CMP #$01
7 ]; A. w) c f0 ^! W: g1 G - BEQ button_press% h0 D8 S) K7 f" | E
- PLA
' G* |9 K% Q- G- p( R - TAY2 K: T1 l+ f. O" g+ V5 _) s: b
- PLA2 d* k; ^- q& [' n l
- TAX# {2 k" ]% r/ H2 B9 E5 }, g/ X5 v
- PLA, R$ \ X! ?- _3 r
- RTS: X* P; Y- O3 ^* X) b
) z) ?# ~, i& B; Q- button_press:- g# }/ G5 g/ r9 r7 m
- ini_Y:
# M. ?6 x; U3 K: i4 I+ H - LDY #$00$ J3 E' p% q) X4 @
- button_cmp:
0 ` r* j1 U2 @) l* Q! c2 O: W - LDA button,X9 N; k/ y0 X. J# W8 S9 b2 V
- CMP ora_data,Y$ D' \. }+ d7 W7 T9 B! j W' K0 x
- BNE count_Y_cmp
9 B6 g; L% W, T0 p: |; u - flag_cmp:
- Z+ @; }( Y5 @, }8 j0 L3 N - LDA flag,X
) U5 G$ }' s7 x5 i" Y - AND ora_data,Y
6 }7 `' p# n( R* ]4 N6 l - BNE flag_and' b8 X6 d. z$ d8 d
- flag_ora:% A3 q `, j" \! k
- LDA flag,X
/ |2 y+ v4 O6 h - ORA ora_data,Y
* c# A5 d0 U4 J F5 | - STA flag,X1 {- v: }" p1 i! N; m
- BNE count_Y_cmp8 ~$ J1 C: @5 r; Z
- flag_and:$ Z: j; `3 \0 d
- LDA flag,X z6 o$ |; Q) b5 B" f- |+ E( W6 h
- AND and_data,Y0 f$ k; [* J) t+ V
- STA flag,X* D- q3 e) k9 h \& U
- count_Y_cmp:' ~$ k) d3 K6 j' f% z u" \
- INY
- v, ~* U ?; S! N% l. k - CPY #$089 I! N. u2 Q) Q8 O9 I
- BCC button_cmp& @1 A' ?! v" p0 g. @2 C2 ]' R
-
) D! @! j+ G* t! Y - data_extract:4 W f+ F8 I5 N8 b, V
- PLA" u+ K* g' s) z {
- TAY
0 C8 p, H) A- g) k/ c6 h: X - PLA
# G( ?7 L9 L, y - TAX7 F+ O& ?" @* {7 L( a- N* v
- PLA
$ V5 U+ { G& ` -
% c& k* J4 s" a3 `0 V1 w6 q, L ] - return:
, J6 W' s2 S, R P3 F- V8 \- D& S - RTS
/ v/ r! o2 E6 ^; Y# e - ' ^+ z% D' A/ x; s# S* g
-
6 o. i$ ~. [8 p; q/ c - INV: ;无敌1 Q* ~" N0 ^. K$ i
- LDA $6000,X8 f' [, l0 y5 j% A1 p
- AND #$08 X0 I0 {' k" P( @7 F
- BEQ INV_RTS9 n$ v7 W9 C: G# w# |! f
- LDA #$050 e& h8 T8 ?. N8 n" p
- STA $04FF,X) i' N# y o2 \: Z- K
- INV_RTS:
& t$ y0 w2 J3 H - RTS4 o$ O4 k. `7 A4 p3 q" g2 }
. b% y7 v7 f$ s* X2 E1 Q-
1 c6 W# g9 e! g& b- T4 A - LIFE: ;生命% c2 U# n* j* p, @; _
- LDA $6000,X3 `* E1 b! _$ q- |. k# [
- AND #$049 `) o6 h B0 C, }0 V$ u1 ?) H T
- BEQ LIFE_RTS
" G' {+ o, A( @% d$ D* b - LDA #$09
/ g8 \: i* q( A - STA $6A,X
. u. h- V+ s1 T3 X1 z3 @ - LIFE_RTS:8 r' k7 T8 H: r0 D+ g; P
- RTS
9 Z1 p y. e9 U6 q- j - $ B D+ N E5 z( G5 B# Q
-
/ I8 M: O. B; N - BLOOD: ;血量
. Q; \0 R3 S ~* n - LDA $6000,X% e; h' V0 B, |# r7 h6 E
- AND #$01
; k6 u. D S2 N% A2 O - BEQ BLOOD_RTS
, }3 \8 J5 ?+ \6 ~$ I' e, W- v$ m0 C - LDA #$7F
, S4 z; U1 r! n' R - STA $04F1,X
. \3 }7 O0 S" W/ W0 v2 ~ n# \ - BLOOD_RTS: I) J2 x5 I5 N# S% u% K
- RTS
9 W' M; O. x1 f. T0 n - 9 i t# e; w i4 @# z" W3 b
-
: N+ H, d7 n5 t -
Y% \/ Z( r! ]% W - , O8 c) }) B# ? l; e
- .ORG $D29F4 e8 G7 T& y3 R0 S
- JSR $FF80 q1 ~& M1 n1 f7 ]' J3 E; w
-
, i) W1 W2 j# ]' j0 s - .ORG $FF80
$ M& S; P: N3 o6 E- {% c7 L$ o0 E: ` - KILLBOSS_BY_ONE ;BOSS一击必杀
- U4 b3 N$ T" @3 v4 G - STA $06287 `0 D4 H: A8 t
- PHA7 k' Y# u7 e1 C; O* a9 R
- LDA $60003 d0 ^. l; z1 X; G
- AND #$40
' {1 _: Y# |. Y) |7 o - BEQ ADDRFF8E0 U: i/ w2 ^' o$ p6 |" l
- PLA
* q) R+ T( G6 e - CLC ;敌方死亡状态判定/ Y8 _$ I. X: E, m" y
- RTS* T; Q, K( B! }$ h" F& o
- ADDRFF8E:; }/ |1 t+ F$ V8 }
- PLA& z* y6 b9 a2 I* b! i/ h
- RTS
$ q+ w! ?* u0 q7 O9 Q0 u( h - ( ]4 n/ o+ t: y/ z" i+ q
- & H h5 B- V, [/ s, c& j( O& @$ S
- .ORG $D1516 q! K0 v5 [ Y
- JMP $FFA0" o, E/ q1 R6 G3 ~- `3 Q
-
5 F/ `6 ?, C' F% T9 s - .ORG $FFA0
$ A# G8 H; f( c; V9 L - KILL_BY_ONE: ;杂兵一击必杀4 v% `' \' h: Z' o ?! X
- STA $0621,X
! g- D6 B& L5 V. |) C& t" t - LDA $6000
- B% j5 c! l* c) G* a" o, g - AND #$40
( f% ?$ r* r& L - BEQ ADDRFFAD4 x* ?8 m4 M6 v& M9 K) K
- JMP $D19A ;敌方死亡程序跳转
& t" E2 M6 x* M/ }, X3 M - ADDRFFAD:8 @* m8 g' N# f& ?+ D: P! Y
- JMP $D154
6 d ^3 v" g3 b7 ]- g0 S; s1 w- Q1 j" m - ( U, f3 r9 {9 O3 Y9 w
- 3 i3 Q4 ? @. ~* C' s
- .ORG $A7F6
2 [7 a$ ~2 ]( U% q9 Z - JSR $FFB0
3 {( y$ T7 B; U2 q - ' z. f6 q2 {" y$ x- d3 D, a! k$ Z! k5 C
- .ORG $FFB0 ;全屏攻击+ s( ?6 g5 ~2 \9 C9 W7 E/ c5 f
- PHA$ ~' ]& U8 ?+ g" K6 W/ H
- LDA $6000
' P% E! I$ F& |* Q0 }1 e: P+ z2 v - AND #$80
1 b C& z' a/ P - BNE ADDRFFBD, j3 k. i( u9 k* O
- PLA+ d u* J& Q. M" o$ ]/ r' `/ D
- LDA $0015% s, y5 v7 {2 v
- SEC
5 _" ^" g. }( a1 `* z - RTS
2 j( I4 R' e7 z) U8 D9 B/ @ - ADDRFFBD:
7 Y, _% I& u6 u8 P9 |) T - PLA8 d6 _; o* f7 ?, h7 b
- JMP $A826
2 F A$ g" F/ h' P -
) \8 `+ B: \3 Z6 I8 { -
6 g: r( N" U' D7 B* r- o& }, w7 x - : d6 A9 J* x9 V- v# H
- .ORG $AA6A
5 C7 Y8 L" M! t) p8 X8 R4 U% K6 N! k - JMP $FFD0
$ b& y5 P \2 y$ c n6 l5 o& w) R1 f5 M - ( e- r* \# {+ K% D& d* U
- .ORG $FFD0 ;敌兵动作忽略; X9 b v# M3 W( @
- PHA n6 o, z+ g% r
- LDA $6000
( t4 p$ l9 W+ N9 F; f - AND #$803 I: c& S6 H. J* ]
- BEQ ADDRFFDC
7 W! d! x7 H: ?) {" y# f1 z - PLA/ h, l' D: E5 w, u
- JMP $AA726 \3 H5 t- `3 f% f
- ADDRFFDC:4 ?. h+ b4 u5 S( i, z* c2 J" s! S
- PLA
1 @; Y0 D/ j9 R4 ? - LDA $0629,X5 ~; z7 M7 C0 e( C7 z& N1 X7 M
- JMP $AA6D
, w" h2 s: B* t9 d ]8 ~ - 3 p" z; t& ?( z9 G$ [/ o
- ;[FC][忍者神龟3代标题选关程序]
. c3 M& ~, w1 p) d; C' w - ;作者:FlameCyclone 2017.4.1
J5 \4 n4 F0 ` R" y$ N
D# y5 {9 [9 k- \7 ^: p
. }7 S ~- z4 q- M- ;配置数据
6 w* h. c. U# T) a; p P - KEY_ADDR = $F8 ;按键地址
$ w4 N2 P/ u4 \# _, `+ U) m - STAGE_TEMP = $6010 ;关卡临时地址
# p" X; \7 g8 g2 H+ }4 a - STAGE_MAX = $0E ;最大关卡数
8 h9 C+ b$ v% t0 O: r0 ~ Y" {% t1 Z - TITLE_A = $20 ;标题条件A
9 z& U: }5 J$ x - TITLE_A_ON = $02 ;标题条件A有效状态判定
% ]$ p9 O/ O( d& Q( Q0 b8 M - TITLE_B = $21 ;标题条件B
7 K- P$ Z% {, I5 {9 }) ^ G - TITLE_B_ON = $03 ;标题条件B有效状态判定
; x( T! u- d1 x2 F - PPU_END = $FF ;PPU结束符- i& C4 g7 `$ `- s
- TIME_LAY = $4A ;标题显示延时地址: r7 b2 {, _ A4 c& `5 u/ z
- BUTTON_DEC = $42 ;关卡减少按键
+ T1 Y5 a s+ [7 R) p @ - BUTTON_INC = $81 ;关卡增加按键# L- h3 p0 Q4 T4 U3 o7 k4 ~
- NUMBER_A = $06 ;数字A距离STAGE偏移量
1 s7 E- b [" {- v( [ - NUMBER_B = $08 ;数字B距离STAGE偏移量$ P1 ^! \0 Z5 I& `
- PPU_ADDR_H = $23 ;STAGE写入地址高位
' X/ N o) C% l - PPU_ADDR_L = $8C ;STAGE写入地址低位
, ^( A5 m% c" p - CHAR_S = $A2 ;字符'S') w. m% [+ e1 w( o0 z
- CHAR_T = $A3 ;字符'T', {- e- N0 L$ ]/ T: ^- k
- CHAR_A = $90 ;字符'A'* e1 W$ l: d4 W" s% w& O$ D& e
- CHAR_G = $96 ;字符'G'
" ?3 r- c$ \6 t$ J/ y; C+ m - CHAR_E = $94 ;字符'E'
+ y8 c/ ]: C& g* } - CHAR_SPA = $00 ;字符空格/ S1 X" T' f7 V' x! ^+ l
- CHAR_LIN = $AE ;字符'-'
: M6 i3 x+ m+ [/ U" I `* h5 j - CHAR_O = $9E ;字符'o' |: O G9 V% {5 k6 @
- NUM_1 = $81 ;数字'1'$ `" W+ f; ?2 `7 }8 g" u
- NUM_2 = $82 ;数字'2'( A( I" J& V# z1 G/ [
- NUM_3 = $83 ;数字'3'6 s. S; J, p: r+ x
- NUM_4 = $84 ;数字'4'
3 e8 A: B! ~- R: |& ^% `) G4 [$ } - NUM_5 = $85 ;数字'5'5 S2 J- t; u2 p3 r+ g# k
- NUM_6 = $86 ;数字'6'2 w2 B! L: l t
- NUM_7 = $87 ;数字'7'% J, c4 Z# z2 \3 R V6 j/ C; E
- NUM_8 = $88 ;数字'8'
( z( m2 V" x" I$ m! s- T$ R - NUM_9 = $89 ;数字'9'/ R/ B, K0 q: F0 g) ?+ {3 q9 H( z
- NUM_0 = $80 ;数字'0'
2 S: ^( `0 R# F! N - - a; R z8 j+ E0 F
- .ORG $F82A
$ \ R4 a% _) _ r" h - JSR $E700! E& d( W& e8 T9 D! R: N0 R+ j
- 6 u* x. A- |* v( Z
-
! _! U# C# N4 E! h - .ORG $E7006 U% W3 i$ t, E- t. ?+ Z% k) T" U
- & R. Q% P* D) K4 G
- STY $4014 ;补上覆盖的精灵写入指令
8 Y0 U- F8 d1 r - PROTECT_DATA: ;数据保护. z' E/ j" L6 q- w6 Y' O/ ~
- PHA ;数据保护开始; o, \4 X+ z+ E2 U) s8 y
- TXA8 Z C9 G' q z6 K$ @
- PHA
8 H1 [# E1 J. B* F$ ? - TYA" B. N& M6 Q( Z S
- PHA ;数据保护结束
% O. g, t) h& V. S - LDA TITLE_A
& \: W0 ?$ B/ g5 H - CMP #TITLE_A_ON ;比较是否为标题画面5 v( H2 _, L; @9 P! E2 t
- BNE RET
! V2 I6 c) s+ c2 \$ c. c' ]/ T - LDA TITLE_B" [$ \: b! K* R6 e1 o- s* r
- CMP #TITLE_B_ON ;比较是否为标题画面
~$ ~# V' o& V2 ^: x - BEQ PPU_STAGE- ^2 [9 v; I' M; M9 I
- RET: ;恢复数据; I+ b& R: v% {# b
- PLA ;恢复数据开始
! i/ Q0 d! Q3 ^5 z - TAY7 O. O% f( b6 [) s
- PLA3 o1 R+ r3 n M) X
- TAX
0 f0 t9 I: A0 O% D' Z - PLA ;恢复数据结束
3 \, B: C* u9 c6 l2 Y$ O - RTS ;返回
8 S5 v7 f% l' ]5 f1 Q: F - PPU_STAGE: ;字符STAGE写入程序
& c0 \2 X9 |, F1 K; `$ C - LDA #PPU_ADDR_H
. t8 Q+ i: \3 e/ k2 e% v. U - STA $2006 ;设置PPU字符写入高位地址
# A' ~( z4 J8 B. r( K5 @ - LDA #PPU_ADDR_L6 b- J* b3 e4 @8 m, K) S+ C3 v
- STA $2006 ;设置PPU字符写入低位地址
4 ^3 q" l% W( U4 y! I' q - LDX #$00$ f* _" ^$ g. ?# `: y: l5 w
- PPU_STAGE_WROTE: ;写入STAGE字模+ b1 z8 Q) G. R/ `
- LDA STAGE_DATA,X
+ |8 B. @% r+ w O1 T# ]" ? - CMP #PPU_END ;判断是否写入结束
7 {& W( P/ ]) W8 c - BEQ STAGE_CMP, A2 }" J9 R5 `9 U' y# A
- STA $2007
1 x$ ]" \( b) k+ h( v7 c - INX( S; T- h" D) H4 t+ V2 _
- BCC PPU_STAGE_WROTE& v1 h: e7 Q& G0 o7 Q2 ?
- STAGE_CMP: ;选关操作
( A' f4 p. E$ i1 {) Z6 y- Z, Y6 Z; b; D - LDA STAGE_TEMP
! M1 O7 D; c0 G; d+ b* ^3 }1 K- u1 y - CMP #$FF ;关卡数据初始化条件判断
/ o8 g6 O$ c! Y$ o) l6 _( S+ ~+ Y, M - BNE KEY_B
5 @8 _+ |! Y" s+ o8 J8 C/ i - LDA #$003 t7 a% o& D# E+ D+ z3 M* \: {) ~' ?
- STA STAGE_TEMP ;关卡数据初始化3 N, a' R. X Q7 d9 P4 s" I
- KEY_B: ;关卡减少; Q1 F2 X' A1 e, t- Q) ]. |
- LDA KEY_ADDR
# @- X2 U, v) t$ O - AND #BUTTON_DEC ;按键B或左减关
+ y# X! N, x7 `# \" ^& I9 ] - BEQ KEY_A
A2 ~" g' A) J5 b3 A - LDA #$FF
8 ]9 |: l! X3 j$ i: X4 x) S - STA TIME_LAY ;重设标题延时
! y1 S I ]2 P* `- Q' N - LDA STAGE_TEMP
/ }+ t& Q5 O+ h$ P. l( w - CMP #$00 ;关卡比较
, r% k% [* m* o' y) D' T6 v2 o - BEQ KEY_A3 E) B+ s8 [4 a/ ^9 C
- DEC STAGE_TEMP ;减关
c# @: N# |4 } P! B4 b7 I; S0 R - JSR MUSIC ;按键音效
* o4 G2 i4 G1 T" m - KEY_A: ;关卡增加
9 S- _. S7 k. ?5 B" w+ y - LDA KEY_ADDR$ }/ }! H7 z8 [! g. I% z. A& |. D3 _
- AND #BUTTON_INC ;按键A或右加关$ {( B4 R. c& @) V& G5 b3 S
- BEQ PPU_NUM_WRITE
8 n+ n- {4 @9 J% F - LDA #$FF
/ ^7 p; {9 E) ` G" w - STA TIME_LAY ;重设标题延时' V, }) ~( D$ }4 w. P! p' Q+ K
- LDA STAGE_TEMP; ?% u* }+ U% p
- CMP #STAGE_MAX ;关卡比较
: s+ H- i( J3 @( m; i/ c3 z - BEQ PPU_NUM_WRITE" X+ K* x) a& e1 Y* b
- INC STAGE_TEMP ;加关
, W: V6 g/ k% I6 S' N7 h - JSR MUSIC ;按键音效8 X5 ~5 C S/ J
- PPU_NUM_WRITE: ;关卡数字写入地址
0 ^# V' `, j1 Q; }3 m2 L0 ` - LDA #PPU_ADDR_H
" ]" P- Y3 ] W: V" U - STA $2006 ;设置PPU数字写入高位地址
* v" e* z# r5 R h" } - LDA #PPU_ADDR_L
5 z/ X0 ~1 K( Y# P- Q( f2 Y - CLC$ q% s5 s$ S8 ?( E* X4 w
- ADC #NUMBER_A
2 r7 C; w1 q$ U! N# X - STA $2006 ;设置PPU字符写入低位地址
% d! u: b. X7 _" h; q - LDA STAGE_TEMP3 N/ y& r, b' V$ u( J- j
- TAX
' ]4 w! e& f y5 b - LDA STAGE_D1,X ;写入数字7 U z# _$ y# Q/ [3 n
- STA $2007* r9 p* g4 ]5 z) v9 Q9 K+ [
- LDA #PPU_ADDR_H4 v. m% d8 D3 }4 N
- STA $2006 ;设置PPU数字写入高位地址7 j) ]& O, L$ L, ~% ]4 Q
- LDA #PPU_ADDR_L
/ g* B. o; J+ \ - CLC
8 F1 G+ e3 R* ~/ S3 ] - ADC #NUMBER_B$ Q, T m! c; j( ` p( a
- STA $2006 ;设置PPU字符写入低位地址
$ ?9 P# R! n6 A- ]4 I - LDA STAGE_TEMP
) d1 h3 {1 O: ?7 A( g$ h: y - TAX. T, v" D0 J) Q; U
- LDA STAGE_D2,X ;写入数字0 C0 Y0 `* s1 S
- STA $2007
" h/ D$ r0 R" s' C' H# {! C: ^! T - STAHE_WRITE:
# D2 o2 I( W) Y" L - LDA STAGE_TEMP9 u! ^, c5 v* R- l
- STA $2D ;初始关卡写入' a: k0 O3 Q0 p9 j4 m
- PPU_RTS: ;恢复数据$ \& r! Q* Q) E% }. s; S
- PLA+ c3 r6 u4 Y p1 X" t) Y6 {& y
- TAY+ v- k* R- r& x& {
- PLA3 b; T9 H0 x* p+ m
- TAX
; p5 e3 w0 ~& [: q8 Z - PLA9 z0 o4 u& C/ e; ]' N" A
- RTS) m) f% G5 X' T
-
7 _* E% u( h3 b9 A5 ^- n - STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据
# K3 `( f S$ y: W N v' X - .BYTE CHAR_S,CHAR_T,CHAR_A,CHAR_G,CHAR_E,CHAR_SPA,CHAR_SPA,CHAR_LIN,CHAR_SPA,CHAR_SPA,PPU_END
7 m8 K/ `3 x8 A; U; j5 a( i( |8 m
/ u! _: ^: k' O1 e0 q2 e- STAGE_D1: ;关卡数字
1 ]7 R. I m6 r# O6 S1 o - .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
0 `9 p8 l2 j/ J& V/ B
* A- ?$ p9 f: U7 |! n- STAGE_D2: ;场景数字* Z' L" c" O$ c( {
- .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
2 } ?: Z& r3 u+ X7 k - 1 b7 P5 @+ V6 H0 q% h& ^
-
+ H, \7 R" [+ Y4 q$ w ~6 j( h$ B - MUSIC: ;按键音效7 d/ U% X7 S+ ]: y C$ |
- LDA #$3B ;音乐号
* {" h9 K5 T8 L4 \ - JSR $919E ;系统音乐调用
) C4 s2 R e+ d! s; a) w - RTS
复制代码 4.无敌锁定: 暂停后,按上键切换;9 F4 S8 ~/ W! w( M0 x t9 p: W
5.生命加满: 暂停后,按下键切换;- R/ s1 B! \- l) R& ^
6.血量锁满: 暂停后,按右键切换;( ?3 l; |: _* Z3 ?
" ]: i: O" L" I u) r" l" ?
3 D6 J& V& [$ ?% ~
$ S- G, v6 H$ h
! w5 H j% K3 S2 W0 F! D9 k a* z9 b: z* D+ d3 ~1 Y0 ~3 F6 c# I- R$ D: U
FlameCyclone.ys168.com
& h6 j; v, ~6 k/ f& S% a$ fwww.nesbbs.com
% j7 c' O+ v4 ^7 G0 p2 H" R
" k5 @& H# H, B8 ^5 \. X& k |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|