|
|
本帖最后由 yandagui 于 2017-4-2 13:23 编辑 . S% S& ?8 g& o3 U% c
% F8 v+ R( z9 E( j7 b& T[FC][忍者神龟3][END选关]
8 i8 D" E5 s: m# X$ H1 [' @8 K) l; p* z2 h) ]. L$ Q1 q5 p
时间:2017.3.307 x) Q( T7 d5 h3 R+ k' K
作者:FlameCyclone1 Q5 w$ l9 X9 k0 b0 A6 y i9 @6 m N
内容:
- X* N. n+ t. R, T, ^8 Y+ Y 1.关卡选择: 标题时,左或B减,右或A加;
2 V4 a# c9 `7 a 2.全屏击杀: 暂停后,按A键切换;
2 |2 r6 N e% y$ { 3.一击必杀: 暂停后,按B键切换;- .ORG $FEA0& U! n Z& U: N$ R8 i
- ora_data:
" @. m; `* ?: ~ - .BYTE $08,$04,$02,$01,$80,$40,$20,$10" n2 u& `( a$ V W' \0 ^: X
- and_data:6 S4 x! G5 ]1 u$ K v
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF" m3 r$ j7 G" _9 k
- & n/ j3 i8 ^ x7 e6 i
- button = $F8
# g/ H8 x7 m- p9 m& S - flag = $6000 c1 o0 n- `1 [1 a) V$ ?
- pause = $0045
( e; ^$ X/ s0 H6 A' i1 I5 r - : o0 Q& L& m9 w; o3 R# X
# l& {) I. S% ?3 p1 G' q! F- .ORG $F90D9 E. w. v0 B4 u+ X, E
- JSR $FEC07 q, J6 Y) i |+ e3 m* L
-
: Y& y. w# j2 _ - .ORG $FEC0
4 M. J, G9 ?6 A ^( h - STA $54,X2 j& T6 N5 ?7 v; a9 G0 D# ]3 u
- STY $FA,X9 ]( x& g/ ~$ X2 z7 K
- PHA
4 J+ V6 h2 m C* I% } - TXA/ n% y% d8 D/ o+ y3 K2 x
- PHA( x) w* A8 O" N6 v1 }! b0 v
- TYA
, F: I! U+ w" K) x0 c7 i! i - PHA q3 T4 N! ?% _6 p: C' l
- JSR KEY_OPERATE
, ~+ W' s/ e0 T* ^ - JSR INV& I8 S ~; w; M4 `
- JSR LIFE
4 a9 z* P2 a1 d1 J6 e( a - JSR BLOOD/ c6 c$ M8 a+ k% ~ q3 f8 B" e! _
- PLA
. {; N. T9 o( K, X - TAY
! C$ L' M! m* t - PLA
' l7 o, b2 p8 R' |8 E. ` - TAX
9 q6 `& I" @- {$ @6 u1 i - PLA" G8 m# l1 a+ f0 H6 J5 G5 J( G
- RTS
& y/ u( X, O, {% Q7 {# Q - KEY_OPERATE:- u9 C& g4 h* I" R
- data_protect:
5 [+ V$ g3 ?5 f4 m - PHA' H% f' u; X L! Z; o: Z7 l9 E z( [
- TXA" M$ H2 O8 n( p/ H0 G# q0 K& W3 B0 D5 r
- PHA
* U/ A5 t- q" m* V6 h& ]* W - TYA1 A: ^ Z. o- \% {" Q9 `
- PHA8 _7 M4 j* @& O8 B# N) y" n
+ K* g# G; W/ W# s- FLAG_CMP:! A. |7 |* V7 F
- LDA $600F
, C, ^; R& b3 ]' y! s$ y - CMP #$7F ;标志数据初始化条件判断$ \. T* D) j" U
- BEQ pause_cmp4 D8 y( a9 _8 B0 @" }: J
- LDA #$80
3 k8 M: s, L B* T/ b$ m% @ - STA $A001 ;6000-7FFF写入启用; d8 b- {1 d# \6 m- t
- LDA #$00
2 O/ b8 g2 X, O( ? - STA $6000 ;数据初始化
' P) l+ _; H5 Z, S i7 W# L - STA $6001 ;数据初始化
' G9 b) Z" I+ G1 d - LDA #$7F
' @8 H) ^4 S, A$ {1 a1 U7 n - STA $600F
% g, o+ {% W9 u* _ - pause_cmp:
2 b6 A9 k" @* l6 s - LDA pause) `! a$ B4 z1 h# D4 [' m
- CMP #$01
8 E2 E( Z& }# u ^/ [! Y - BEQ button_press
e g% k. \" {$ d, V - PLA
; ]0 Q, S4 o, a, |0 z: ]9 O- L - TAY
% y* z+ G& Y1 t! v c0 c - PLA2 b# }* z3 D" T+ o6 L0 C' b( v
- TAX
0 n2 o2 S$ m; U; t - PLA
8 O, @& J0 z3 L0 C7 X - RTS' I7 R M5 z8 e8 T$ o& v4 I* {: A
- 2 ?/ r7 R4 Z7 m0 m$ W8 b+ b
- button_press:
- L0 o8 U" N7 ] - ini_Y:
2 Q# s4 `- k) r& b - LDY #$00+ q7 J8 z8 o5 Q- x k7 z
- button_cmp:. N0 ~, I# A$ B9 F8 c) z( r
- LDA button,X1 t3 L1 k$ o. S) W6 \* `. l3 g7 i
- CMP ora_data,Y. c* K. y3 D% L7 C G5 I% W8 ]
- BNE count_Y_cmp2 u- L S5 F2 Q V" {$ q+ D" b
- flag_cmp:
- F4 K; c( Y! O0 Y - LDA flag,X
& w* z, X, [% z. n' h9 F& d - AND ora_data,Y- @/ e5 [7 B9 |4 \. X, X5 R
- BNE flag_and3 R, S2 n9 ]$ `' P) @; Z) V/ {2 Q
- flag_ora:( a! o5 @" F. R) n2 m) i' ]$ W5 ^
- LDA flag,X: }" W6 K ~2 O3 R2 _" e/ \6 D' Z; A
- ORA ora_data,Y& k3 I3 V& e' L
- STA flag,X
^5 A) |3 q7 C/ L- x - BNE count_Y_cmp5 S4 |3 g& [. S Z( `
- flag_and:
. U; V& C; c* W1 G# \ - LDA flag,X
: D4 ~! t9 z6 k3 h1 W5 w6 G - AND and_data,Y
6 }8 `, R7 v: Q) q8 ` - STA flag,X
+ S' b4 l# |6 j. H. {) z - count_Y_cmp:
0 |( B, j+ e% s* a) Q# `9 l/ F5 T - INY# l# V9 G0 }! y2 W1 U
- CPY #$08# |; s" X9 `/ T
- BCC button_cmp# ^1 ^- S7 Z: y! ?: m2 C% T
- , I% t5 D- h# e& L \" j
- data_extract:
6 q3 K/ G" l( c8 |0 Z8 I* R2 H - PLA
2 R2 s/ q7 ^; b4 G( m# b. u - TAY
( m7 ^6 _) m" h$ P; f - PLA
* v9 B( w" C5 ?1 s* U! J5 o5 Y - TAX1 W1 \' g) B3 n# k0 s" x" m
- PLA+ V8 S. f( B5 F2 v1 l& _8 a2 r
- ! Y( h/ t) r4 j* Q. z
- return:$ p8 J5 q0 Q+ I4 K+ v' x
- RTS% {4 q6 W2 `. v
-
2 e' r: {& m a& K1 G/ [) F* _ - + z* t) @ R8 e
- INV: ;无敌
5 e( l' B j+ E( N% P, U& \ - LDA $6000,X
% E( d' ^4 P v( y - AND #$08
. W ?' N( z2 q7 A - BEQ INV_RTS
) [% \5 w a, o( G. u - LDA #$05" p- Y% J& l$ m
- STA $04FF,X z2 M, |2 w# S M3 I
- INV_RTS:
2 T; b/ @1 W$ V1 M8 W - RTS
1 L1 a" [5 m1 `. `0 T - . w( m o# U! i" Z; @' Q
- 3 D. A& Q5 f5 p: t
- LIFE: ;生命
- t! L( X6 `' ?# f - LDA $6000,X
2 ?; d. F5 ^, V) I - AND #$048 L6 V% v) \0 |8 `( O+ K
- BEQ LIFE_RTS
- ~7 G6 N* ]. c3 k' r1 C - LDA #$09: }% ~' G' N4 c) Q4 q* ?
- STA $6A,X/ L7 B4 L) i# @* q$ L" z% y! _
- LIFE_RTS:
% ]+ P7 P! S* | - RTS5 n; b, i- {2 I
- - d+ r# T3 t8 _9 h
- 3 ~ r1 ]- B) U3 q8 e
- BLOOD: ;血量
X _( y& ]1 F. a - LDA $6000,X
( ]# @: D, A* N - AND #$01
4 t8 Z, z: @" c$ `0 K2 G* m7 T, u' H - BEQ BLOOD_RTS4 `' h3 Q. a5 m; W
- LDA #$7F2 V3 B. B4 r& t( H4 ^
- STA $04F1,X
9 w: {: E3 |) G G1 B' p# x" c6 O( [ - BLOOD_RTS:
' g0 _3 p3 c: `' P; K2 L/ s& l4 z# j/ _ - RTS
' I: G$ y0 s4 M0 Y9 y# o - 6 G D8 {. E5 `
-
- e6 [5 `: _- L5 v+ t7 S -
; Q4 q1 Y, }& w* \ -
% V+ }8 A; j6 l& y6 W } - .ORG $D29F
- Y# M/ s% j" x0 k, O( b+ B7 h - JSR $FF80
2 G) X) A7 R: [6 U' f X2 E0 { - * k, z: R0 M5 U& Z
- .ORG $FF801 ^0 y' V0 n3 w7 {5 d; y' T$ j
- KILLBOSS_BY_ONE ;BOSS一击必杀
1 |! ~, F9 a8 r' A5 \+ V1 k5 R - STA $0628
5 _7 }0 Y( Z) W3 u - PHA
, W+ e; E/ \9 g - LDA $60003 J) u0 M3 r8 F* a9 ?( G+ V
- AND #$40! T; p( ]) p: ?, W9 C1 @/ p
- BEQ ADDRFF8E
" V! ^: t* y, i4 {' g4 l - PLA
& y$ E- n. [* C; |- |1 _+ J. Y. Z - CLC ;敌方死亡状态判定
) Z) c6 x$ O9 n: w7 X5 M1 l7 @8 E+ t2 R - RTS
8 M( V' @7 V/ m7 s# X) l8 W - ADDRFF8E:
4 v6 s N2 \) G' D% F1 Y4 _9 ` - PLA4 t8 u! Z# e- w1 O0 U' D
- RTS0 M1 D* g, ]5 L7 {; H! y" e
- 8 P+ ~% W' i6 l0 |% R* M8 Z
. Y1 X/ u: F9 j4 d- .ORG $D1517 d! C* q. ?6 }7 f6 W2 y; P
- JMP $FFA0; Q! i4 T/ ~3 J7 @$ i
- ! [2 ?, ~$ Z e
- .ORG $FFA0
" F. e; O- x6 \) y7 A - KILL_BY_ONE: ;杂兵一击必杀
5 c. V- m, k' n5 m - STA $0621,X9 b5 j5 O- ~' t9 k" S
- LDA $6000
; I1 x. c: q" @ - AND #$401 p7 w( R. E5 R, X2 u
- BEQ ADDRFFAD% t' v; m8 H/ n
- JMP $D19A ;敌方死亡程序跳转
1 r# {; m$ Z0 W, u- @ G - ADDRFFAD:
5 a2 ?# ^" \: U* F, y - JMP $D154
% j% e I* s0 x4 k! b; m - # s9 }. B0 Z+ q: i r* l
- 8 Y, t" M) X- \7 K/ e2 [
- .ORG $A7F6- I8 k( {- j5 C4 W* e, @/ j
- JSR $FFB0
( m C* N; m9 [ -
0 I; q& u8 v6 v8 \7 q. x. f - .ORG $FFB0 ;全屏攻击
- Z7 _4 b; K! m - PHA- B. U0 g1 D9 ^3 |, H4 }( R
- LDA $6000* K$ n: d' v- A" \" j
- AND #$80' _4 }9 b, U2 A# s
- BNE ADDRFFBD
* Y# G2 k# Z0 @2 |9 b - PLA2 ~/ J: [. w8 Q; Z
- LDA $0015# b0 M& c+ y4 ~( J N) a4 d
- SEC
+ J0 V- g8 e5 v6 _$ S& J - RTS
' t8 W, ?$ s0 _5 S6 [ - ADDRFFBD:
+ w" }- R6 Y) f$ W - PLA! f, D- R# H- k X/ S' j1 f- K0 a
- JMP $A826& K8 i2 r' l _# C# }
- : l/ g6 i2 F. j4 C+ C# x! f
-
4 T* E" }) W; y- w& t1 h - ( a- [1 S+ O4 c% _4 a. v$ J
- .ORG $AA6A
3 x% Z* x* e1 ?, [( C; H - JMP $FFD0# g7 t8 p* k- D ?
- 7 m- t* H! }$ J$ `
- .ORG $FFD0 ;敌兵动作忽略
2 p7 i' c; o8 i2 D A: H$ W/ F - PHA
4 y7 v8 u$ B& i2 M0 s6 l - LDA $6000 X7 K0 n6 w# D2 f* a
- AND #$80
" W# n$ p5 O4 |. } - BEQ ADDRFFDC/ i/ Q5 o- x* b$ ^
- PLA
- z6 Q) u; G1 L - JMP $AA721 h4 j$ Q N1 L% @0 }% ^) k
- ADDRFFDC:' S2 t& L" J/ y
- PLA7 c& I% _: U' r
- LDA $0629,X7 q& K; k& T( s0 g5 R/ {
- JMP $AA6D
4 D9 l% ^, D& D2 N - ; u& ~5 w1 s2 k6 _+ R2 N9 p9 ]
- ;[FC][忍者神龟3代标题选关程序]! w2 ~$ R" Q M; E9 v* ?
- ;作者:FlameCyclone 2017.4.1
, e9 G0 {7 N3 L: o9 o5 R6 ]
% R: W( j" |# r9 @" [1 n
) S( K5 T4 O0 r: Z: S- ;配置数据
& A: k4 B8 O5 |- }5 e - KEY_ADDR = $F8 ;按键地址8 J2 |: d2 H* k
- STAGE_TEMP = $6010 ;关卡临时地址: D0 n; X. {8 T! f g
- STAGE_MAX = $0E ;最大关卡数
/ s4 r0 }6 ?8 D5 w - TITLE_A = $20 ;标题条件A) k( u" F) {6 U/ ?. r% `
- TITLE_A_ON = $02 ;标题条件A有效状态判定
" o' p1 U" I! z+ O. h( G- ` - TITLE_B = $21 ;标题条件B
6 V7 x$ s/ a9 a$ o# l( i - TITLE_B_ON = $03 ;标题条件B有效状态判定
- H; ^4 x- U1 _ - PPU_END = $FF ;PPU结束符: h, \; o) R" K# v) I
- TIME_LAY = $4A ;标题显示延时地址( u" |: U* Z5 R& I- M. f+ o
- BUTTON_DEC = $42 ;关卡减少按键" P" O! E1 P. F
- BUTTON_INC = $81 ;关卡增加按键
% E! c* Q: C y1 H) D - NUMBER_A = $06 ;数字A距离STAGE偏移量7 j0 M: {" ~2 Z, r6 @
- NUMBER_B = $08 ;数字B距离STAGE偏移量
7 T8 K, k& R$ b1 z% G% a - PPU_ADDR_H = $23 ;STAGE写入地址高位
3 F9 c" T9 `5 X9 I# a0 J) V; ?- t2 d- ? - PPU_ADDR_L = $8C ;STAGE写入地址低位
- t1 B% u8 b; b |' D" h) s0 L - CHAR_S = $A2 ;字符'S' _8 B$ \" ]. G% ^! A+ D8 L
- CHAR_T = $A3 ;字符'T'
1 w* R8 u+ `8 f6 h; Y! l; f - CHAR_A = $90 ;字符'A'3 L# w+ d1 `0 D: G4 Q
- CHAR_G = $96 ;字符'G'
) ?0 |' E; \+ M6 o' r$ f - CHAR_E = $94 ;字符'E'
& _/ G0 z6 d, R! z0 E+ d - CHAR_SPA = $00 ;字符空格
1 c+ ~. \5 M8 Q/ t - CHAR_LIN = $AE ;字符'-'
s" d. S& R1 t - CHAR_O = $9E ;字符'o'% y# ~! H8 H+ m
- NUM_1 = $81 ;数字'1'( C7 n7 i. Q( O Y
- NUM_2 = $82 ;数字'2'! j9 y0 n) h* U8 y) o/ U# c
- NUM_3 = $83 ;数字'3'
) {4 N- D2 D: W2 K+ c - NUM_4 = $84 ;数字'4'6 v! X- H- v6 z+ ^7 |$ w! M0 G
- NUM_5 = $85 ;数字'5'* Y7 e5 e4 T ^9 b9 d: h7 o0 U
- NUM_6 = $86 ;数字'6'
! K3 u- _6 d3 q+ B( w# t% ~ - NUM_7 = $87 ;数字'7'5 J& l# b2 K5 R! X0 ^
- NUM_8 = $88 ;数字'8'4 ~ [8 q: z( U# ~5 X
- NUM_9 = $89 ;数字'9'. f. s( l1 H* `& P9 D+ C
- NUM_0 = $80 ;数字'0'
9 H0 c- U, T3 m, p - 1 [ W- ?5 |- i+ P+ s* B
- .ORG $F82A
9 b: X1 I& P# E - JSR $E700
/ `- D6 ?; Y4 q f - ; v' x1 C6 O( t" @0 H1 l _) I3 f
- 6 M* \# ]& R- n! Y8 I( a
- .ORG $E700( k; w- ^) [& A4 D+ C4 R
-
5 L1 j& o7 j: t7 k$ l+ L6 l - STY $4014 ;补上覆盖的精灵写入指令
; G: Y- ]+ K0 o- X - PROTECT_DATA: ;数据保护
8 _) g! r, `# [' `1 R - PHA ;数据保护开始6 y! Z- a5 A0 g: Q
- TXA/ J1 O2 F/ c8 X8 T- V
- PHA
( R$ M* X3 X9 W! i8 K1 W - TYA- v( ?+ [# \9 m$ q
- PHA ;数据保护结束- L5 x9 G8 h/ s, N' \1 N/ w
- LDA TITLE_A7 E) X$ {+ x: Y! g
- CMP #TITLE_A_ON ;比较是否为标题画面
7 d- z: @* T: m# Z( |: s6 y - BNE RET
. O1 M, ]% K4 R w6 r) K) J - LDA TITLE_B2 g# }: C" S! G
- CMP #TITLE_B_ON ;比较是否为标题画面
* k1 j! a5 y( e8 L, _ - BEQ PPU_STAGE
0 @! o/ G3 p1 s: J! ~; G - RET: ;恢复数据
% J- z; k% k7 e+ K* Q - PLA ;恢复数据开始
9 |& C, Q+ x; n1 E0 f3 K3 S - TAY
/ V4 \! n6 f% `; L; j5 m* z - PLA
0 o: B, E, p0 V4 v$ e- ~2 R - TAX5 m a2 D1 h/ ~" s& ?8 x
- PLA ;恢复数据结束1 r M% z' ?% O6 w! t
- RTS ;返回. w6 l4 g5 K b1 d# k4 Z
- PPU_STAGE: ;字符STAGE写入程序2 Q1 E* @9 d! c; d' V- J
- LDA #PPU_ADDR_H ' W5 m P8 I! Q' L: X
- STA $2006 ;设置PPU字符写入高位地址
n! {4 d J! e. n3 ^ - LDA #PPU_ADDR_L6 h8 ^2 Y% k. W/ d h
- STA $2006 ;设置PPU字符写入低位地址
# `, [1 W7 |, O# Z - LDX #$006 W4 O- g& [" E# A4 T4 L
- PPU_STAGE_WROTE: ;写入STAGE字模7 x, ^& \& O: r" J( e+ _6 R3 |- H
- LDA STAGE_DATA,X( f! q" R- }; E
- CMP #PPU_END ;判断是否写入结束9 H& c; }8 x" ~
- BEQ STAGE_CMP! G: Y" i& Z X6 ?/ O
- STA $20072 |# Z: e5 F3 K9 g
- INX0 c$ O! R0 k$ I! Y. ^- S. y
- BCC PPU_STAGE_WROTE
( V& p) a+ L2 ?& b2 l - STAGE_CMP: ;选关操作+ H3 ~0 p2 f; s5 Q4 m% [
- LDA STAGE_TEMP: i' f( K- c, o- s
- CMP #$FF ;关卡数据初始化条件判断( d7 |$ P" B* n2 |" s
- BNE KEY_B
( o, {3 ?/ M4 P! a3 f' k - LDA #$005 n" g: D6 {9 S! {) c/ v K- ?
- STA STAGE_TEMP ;关卡数据初始化) C7 ]: ~- ? n6 I0 ]
- KEY_B: ;关卡减少& k' [- i' F$ r( o( u7 b7 q' X
- LDA KEY_ADDR$ ?/ c1 L$ K3 I5 Q+ M" y
- AND #BUTTON_DEC ;按键B或左减关% b& b: p4 B3 e
- BEQ KEY_A
; J X$ C, Q" Q) A- w7 b - LDA #$FF4 p& ]: H7 y) W9 p# U8 [% ?0 _5 F
- STA TIME_LAY ;重设标题延时/ R. q$ }% c& X5 t6 V6 x9 j
- LDA STAGE_TEMP y6 @; z* C) {+ H2 `
- CMP #$00 ;关卡比较' D/ M, ^ z, |# ~+ ?% d
- BEQ KEY_A1 a# e5 p9 k" Z
- DEC STAGE_TEMP ;减关
% @: O3 A5 ^1 d7 r( z; T! x8 g - JSR MUSIC ;按键音效9 S4 q1 Q, q. n& u5 \
- KEY_A: ;关卡增加% G4 e) i; L5 l- z$ I
- LDA KEY_ADDR C- Y" @! A( {
- AND #BUTTON_INC ;按键A或右加关& R N1 t9 u+ t/ j7 m1 ?
- BEQ PPU_NUM_WRITE
" K& t0 l: ^5 ^ - LDA #$FF
8 e2 W3 e! A2 p5 v, x - STA TIME_LAY ;重设标题延时
8 \$ f, S: G) U8 k3 S* X - LDA STAGE_TEMP
+ y \4 l. c, G - CMP #STAGE_MAX ;关卡比较
0 S# s# V9 d- L+ ] - BEQ PPU_NUM_WRITE
1 q1 s: d1 X- `! B - INC STAGE_TEMP ;加关/ Y" O, j3 J( W# ^. X" t
- JSR MUSIC ;按键音效9 I. b1 M- y' _. f8 `3 Y& v
- PPU_NUM_WRITE: ;关卡数字写入地址. G4 T6 L; T+ ]4 F' p
- LDA #PPU_ADDR_H/ g1 s( }/ U: m
- STA $2006 ;设置PPU数字写入高位地址* F# v$ `4 @& r, ?
- LDA #PPU_ADDR_L
. R {! v0 O# p' g/ t) M3 O - CLC8 z+ k* r: b/ G6 R; B
- ADC #NUMBER_A
" L a Q6 G7 ~ - STA $2006 ;设置PPU字符写入低位地址
K4 M# x; m5 s0 a+ t) _ - LDA STAGE_TEMP
2 A, G1 `1 G7 r5 w - TAX
( [8 M7 j6 A6 X2 K7 ^ - LDA STAGE_D1,X ;写入数字
1 V c, u& d U' j# X/ [2 X - STA $2007& L3 }1 B% I. ]0 _$ x
- LDA #PPU_ADDR_H
2 z* f H% { O" J - STA $2006 ;设置PPU数字写入高位地址3 o9 f% b( s/ }- p, }3 Z; \
- LDA #PPU_ADDR_L
9 q9 f4 Z- F/ _! ~# O - CLC0 O# } Z; m5 g2 `- \* A. h2 X# h
- ADC #NUMBER_B
3 g0 ?) _3 m) p1 i! d0 g5 ~ - STA $2006 ;设置PPU字符写入低位地址
, p/ P. ]0 i/ G1 H/ I5 P - LDA STAGE_TEMP: C0 g8 [% s# d1 \, p
- TAX
, Z1 j/ U! r$ {$ u* ]2 h v! ^ - LDA STAGE_D2,X ;写入数字
4 c$ y5 e) m# h( v9 g - STA $2007* G ~! ?( m& h/ j" Y- a5 C7 f, a
- STAHE_WRITE:" d8 G0 a3 _ R- G1 N; t% F
- LDA STAGE_TEMP9 N# T, m# z0 P0 ]8 w+ s3 V
- STA $2D ;初始关卡写入
9 k; {) g" _3 c1 Y! `) P2 C6 F - PPU_RTS: ;恢复数据
2 ]' N8 ^( q+ f8 X/ o2 \ - PLA" U- M3 m5 \* R9 S2 w5 n+ ]; \# R
- TAY
9 ?/ i" F- N2 C. h+ c - PLA" Z: @* J7 P& m, q$ O, L
- TAX+ h2 t [1 n R" S( w) M
- PLA8 s: o! J& w+ r, S% c
- RTS
6 R8 b; i/ Q" v& @# W: c, Y, f -
2 d: a7 r: j$ @4 \: N9 o - STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据
9 |% m' ~) C$ I# L - .BYTE CHAR_S,CHAR_T,CHAR_A,CHAR_G,CHAR_E,CHAR_SPA,CHAR_SPA,CHAR_LIN,CHAR_SPA,CHAR_SPA,PPU_END' s; e( N1 M1 d; l$ {
- # ]& u; l) K6 t* b, a6 {
- STAGE_D1: ;关卡数字: C1 h) P v* z2 z2 F( A7 Q, q0 [& f
- .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& Q$ S2 H: P# V( y# K* @. X
' q3 J% q/ ~( e9 E- STAGE_D2: ;场景数字* L- X' n6 Q7 c9 B% r9 x
- .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
( K, }9 @; _8 C5 E4 `0 Y# z -
3 p" e% X* @9 K' y6 X- n -
& v; w5 w, i- X& J6 w+ ^5 [4 E& w - MUSIC: ;按键音效
_" ~2 z, x. d: \0 s2 g - LDA #$3B ;音乐号
4 ^" n* u3 r/ n) [. \% w. Y# y1 a - JSR $919E ;系统音乐调用
* N9 c7 ?7 y7 O) m/ N1 J - RTS
复制代码 4.无敌锁定: 暂停后,按上键切换;6 A v; J# V! S+ U" @" R3 n2 Y
5.生命加满: 暂停后,按下键切换;& U' P' r! r5 ~$ C7 X5 v) z3 }
6.血量锁满: 暂停后,按右键切换;( r0 n& J: G' T8 |* {0 R" Q

3 l; R& _3 Z1 }4 q3 ?+ e# E0 g
8 ^0 l" t a, t
- f) e8 G% A2 U) Y8 q - q ]; P' c* ^" Z4 O' e
) J- H6 |8 `1 x T0 @
FlameCyclone.ys168.com5 ?, a: w, Y2 r% x- U& I
www.nesbbs.com7 u0 `: h3 q4 e& x! f$ d; I
9 K( d) k" Q3 ~5 C
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
1
查看全部评分
-
|