|
本帖最后由 yandagui 于 2017-4-2 13:23 编辑 / u4 `# v1 z# ^ Q
$ s( C- ~. ^" @) l% U4 A6 }
[FC][忍者神龟3][END选关]
+ k+ C8 D7 f/ B* N4 x( H1 U' _5 k7 ~
5 t6 u8 K0 W8 `* v时间:2017.3.30) @% a# Z0 z2 l* x! r0 |
作者:FlameCyclone
2 Y# c. I. f4 m内容:9 f8 I* }% e# X9 y0 l1 _# x- S
1.关卡选择: 标题时,左或B减,右或A加;
0 r, z4 _/ {; z0 { 2.全屏击杀: 暂停后,按A键切换;* P0 i: l' b" s' k5 [) L4 B
3.一击必杀: 暂停后,按B键切换;- .ORG $FEA0
1 V# l5 o) @$ }" j1 R2 Z. \ - ora_data:
4 I# @" k1 c& ? - .BYTE $08,$04,$02,$01,$80,$40,$20,$10
! M$ c+ J( G& s0 c1 ]( _6 N) P - and_data:
$ c9 T0 F" A9 m$ i3 m( I - .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF
6 n; \( p8 P1 `' A V -
' C: o& l% r& U/ z% z - button = $F8
$ _# V& e) V/ g - flag = $6000
- c* L9 t! z' ]& W% G - pause = $0045
+ N |# }/ d* n( Y4 p - C( Q" d( b9 v6 N
- . z9 U5 J q0 j, y2 Z! ^
- .ORG $F90D6 S7 i o) P, q5 E2 K
- JSR $FEC0# ?9 L7 z8 _$ @) E
- - T: D; k; o/ s3 a
- .ORG $FEC0' C& U% q" @( A" W
- STA $54,X
) V4 m& [5 g+ N# |' l% k- f - STY $FA,X/ `# O0 G* e5 y
- PHA
/ M) q4 _, S4 ~& Z2 `! n; H - TXA9 r* e( a; y1 U# e/ a9 a
- PHA- t/ b6 }+ Q/ _. p" U* \/ E
- TYA7 d9 _$ k+ H% O! {% m
- PHA4 _) i1 k9 o% L3 j
- JSR KEY_OPERATE
/ T) [; Z. }" q; R, }+ q - JSR INV
; z0 v' U1 w- l0 ?+ @# O+ H- K - JSR LIFE
; g: s" H$ y7 W" { - JSR BLOOD
! ?( r' i# {0 ^( E9 T - PLA) l6 d1 L1 o' ^+ j. b' Q
- TAY
" J9 w% Y+ P& V- g- a - PLA
0 w3 i& P' \! b/ R7 X O3 [0 L) q - TAX
& a$ |( j! u1 o `- y, S - PLA
* [+ `$ j+ B4 L9 z - RTS
5 l1 k5 B6 s3 T/ X7 O - KEY_OPERATE:
0 a i# z. }4 X - data_protect:
8 s& K* g% }3 b4 S - PHA+ |" K( t+ [: z8 u8 X8 z n5 l
- TXA
, \4 @. L1 {- }# e - PHA( N) g8 d! D" a7 m1 E$ b
- TYA
$ e5 E3 ~8 u+ ~; J6 e - PHA
+ n! s* w1 s5 ^- d; x) C
: K5 e0 S' K ~( V K+ c. A, s* f- FLAG_CMP:
; T8 T( K1 }# R$ p1 ]$ u! C - LDA $600F, W* E" U; [ }- ]
- CMP #$7F ;标志数据初始化条件判断
6 y! T ?8 s8 ]7 r7 I - BEQ pause_cmp: n/ ^( Z7 f! r+ Q" E
- LDA #$80
2 ]& @: y8 ^6 [ - STA $A001 ;6000-7FFF写入启用
1 L6 v+ S M. c* j - LDA #$003 U% C9 |9 `8 |+ T1 \
- STA $6000 ;数据初始化5 ?+ a( ^9 E$ ?9 A* f' ~
- STA $6001 ;数据初始化2 t$ s) a0 C) K' Z
- LDA #$7F
' Y+ y' ?3 D' K8 n4 d1 G - STA $600F
6 S0 z3 d' l8 z: l5 N: u4 } - pause_cmp:
% }/ X' U, S2 ` - LDA pause
* K! {# v5 ]& l- F+ c - CMP #$01( n$ b: x& }. H# v& x; `: T% l
- BEQ button_press
$ l w- d+ e0 s& l! x+ W - PLA/ u( q2 d9 U3 ?
- TAY
' \+ H& p) {* @) {6 v3 C" h3 F - PLA! F5 P3 U" E* c! i0 J
- TAX
7 ^; y4 A/ A! [: x; K C$ e - PLA7 W0 R, q3 p2 s6 F3 U0 P$ k$ `
- RTS- z0 n$ n& e1 S5 P) Z
- ( [8 X6 t Y; n1 v: Y
- button_press:
4 y; g* U4 { \& M - ini_Y:
* r5 }9 |5 V* B5 U - LDY #$004 y2 _9 x. E) t' M4 f& y# X) ~7 F
- button_cmp:6 A/ {' Y; [3 W |1 }
- LDA button,X
' w8 M& m6 A$ x+ k, w' n - CMP ora_data,Y3 _* F6 x$ S2 y, H& k+ v
- BNE count_Y_cmp2 j. }% p* Z) ^% B8 I, F) u1 N
- flag_cmp:
! c) S3 H$ H4 Z0 Z7 A4 N$ s - LDA flag,X
# n- V3 \5 Y* I! I( w+ w - AND ora_data,Y" W3 w) g2 ^9 l+ O) V J
- BNE flag_and) S$ P: E3 P( a& K
- flag_ora:
2 [+ H2 }3 e; _# [0 B& o - LDA flag,X, d+ k1 t- O2 A. @
- ORA ora_data,Y" J+ Y |4 G+ J# H
- STA flag,X7 z/ Z* S$ u( x! _7 \9 k
- BNE count_Y_cmp
/ _" z/ T' S7 @ Z: d- R# Q+ | - flag_and:+ G- t8 Y" y( |! M
- LDA flag,X: b5 T8 Q# g' X+ b, J7 R
- AND and_data,Y
" M8 x3 S- M7 W4 I - STA flag,X( X8 g K1 x/ p3 m% Y2 i- [
- count_Y_cmp:# ~2 E( w4 a7 f( o
- INY
; R0 g3 U/ P% I# D2 E - CPY #$08
- `* a7 Y* k/ y( Y6 O+ H - BCC button_cmp
; } l/ c: \: ?& A1 L9 z; ^ - : P) m. e1 x6 ?; |; q1 O
- data_extract:7 f2 r' V' M7 D1 Y* e
- PLA
7 S# ` m) r9 j b - TAY
; n' b r! i; `2 V" e - PLA
5 \9 B5 ?8 o) j" L1 f2 R; y, c2 A - TAX
0 g2 G$ f, F( Q - PLA
# u$ }0 N4 U; b9 L -
* L+ B+ w1 m8 [4 g$ l+ P - return:: e6 P |+ Z7 V+ `" V5 P, d4 \
- RTS
" `1 z2 u, q, g1 ]+ y+ j' l' c - ) Y! F2 f# e9 N/ `2 t2 G
- " I, x0 G) ?$ C' y& g& \& h( Z2 H
- INV: ;无敌
1 c$ o) }0 x7 G0 ~" ] - LDA $6000,X
( R- s6 b3 x/ k3 r x. [+ ~8 q5 P: X - AND #$08. ]. J8 V' U! G" D; L
- BEQ INV_RTS
! w R2 u- M l# R. g - LDA #$05
, x [" B7 J+ r4 K3 v. A5 N - STA $04FF,X
& T! i; j1 M3 c, x - INV_RTS:
* q, E5 I; j* Z3 z% I* |. _ - RTS7 \' h& f8 N% [+ _: C+ `- ^+ b
3 {( m5 y- {/ j; v' u- O% Y-
1 t2 |, @5 r- R F9 H/ R - LIFE: ;生命& i, w. P+ ?! a1 `
- LDA $6000,X
/ y n5 V" s1 i) T$ ]1 i/ K - AND #$04
) t$ k) Z5 g J# \, C - BEQ LIFE_RTS
* M, |/ o3 t8 [% W' i - LDA #$09) F: n. ^' K2 F; G) D
- STA $6A,X, {7 M1 @9 A0 y2 u& |
- LIFE_RTS:
$ [, J6 @* g4 V& e0 s - RTS' I! }: \# [8 Q4 k' X' |- v. j7 o
- & ~9 o- b6 H1 G$ g) }
-
( t4 p$ V, B" F- z9 e- B- T+ @ - BLOOD: ;血量3 R- ]* W& F) g: ?0 o5 q9 X
- LDA $6000,X
6 E! r0 n0 Y2 o0 e" j - AND #$01% v& Q3 n3 y3 r" x: n
- BEQ BLOOD_RTS1 E; O" r' S0 L/ W
- LDA #$7F. @+ z0 h5 W7 P+ `7 |, A
- STA $04F1,X3 O# A$ ]! h5 z& f4 U0 e
- BLOOD_RTS:! Z/ x8 b, D: g* E9 I, B
- RTS: ?0 a' i1 a7 ~/ J! o, ]2 D o0 \
- : r) j \6 R& A' b
-
7 g c# L6 L) N" r1 h1 t - 4 Y' Q2 o, D6 }' P4 }
-
6 K# U! L% x' H4 G - .ORG $D29F5 j3 @) {0 S% A' b" E- Q
- JSR $FF80% C, i% z" {' O g: v, b' d
- 7 T9 ~3 E4 y# Y1 Q- R2 }# Q! j
- .ORG $FF808 H ]8 N) ?. G! T/ E
- KILLBOSS_BY_ONE ;BOSS一击必杀2 m* V9 S9 l* B9 A% [
- STA $06287 @$ Y5 r$ e+ e! T% W7 h1 i
- PHA
8 n; G, [1 s- y$ R$ o( C" b - LDA $6000
2 v& u! Y/ O8 `( @3 e" i6 H6 R - AND #$406 N/ H; L% M) i, M. M) L( O8 J
- BEQ ADDRFF8E
3 a& _/ s' }/ h8 M - PLA3 r k9 W D2 M$ u* V
- CLC ;敌方死亡状态判定
# d. k. e6 ~. s7 A. b2 L% [ - RTS
. d2 ?* Z: z# } - ADDRFF8E:
3 @: c( U' v: O, Z/ r2 B - PLA
; G8 h! x" e2 ~2 S% S1 ?- m - RTS' h3 J" o0 ?3 o# i
5 m, K% r9 i$ F# P- f+ l: `$ Q& J; z
& O' h- J; Q4 d! L8 c- .ORG $D151
M5 w. g4 m$ B9 I+ D* \/ a' ]/ I - JMP $FFA0/ v2 Z, y* N! v% {& e& }7 q
- U* A4 P) ~, r$ C- X+ ^
- .ORG $FFA0( P: i% y M3 C
- KILL_BY_ONE: ;杂兵一击必杀
0 O, x' K6 n( w5 p - STA $0621,X$ N' ]3 x9 q& K
- LDA $6000
2 b$ o$ n9 X0 }( a: w2 y' i$ W - AND #$40
' o1 i7 {3 ~( S# M0 r6 } - BEQ ADDRFFAD
0 K- S3 {0 e- U - JMP $D19A ;敌方死亡程序跳转, X, c2 r9 n, J! D$ b: c3 p
- ADDRFFAD:: y# Z9 C1 G( F; C! X
- JMP $D154' W9 [ _& m, X
- 5 d, q# S, Q; @* I/ A
-
" ]! v9 ~! R7 v - .ORG $A7F6
9 z/ k( J. s& a$ j - JSR $FFB0
& X% O. A1 N8 w" J" s$ d8 ^ O -
/ x$ P: Q' [* q) o, B0 F. I - .ORG $FFB0 ;全屏攻击
6 u6 z/ l9 p6 K2 F) ] - PHA& E5 A$ B8 {& v( i5 _7 i1 V3 g
- LDA $6000
' H; n5 s, h% H4 P4 o* h& \: ? - AND #$808 N* a5 J( L6 I0 x# @7 e$ {
- BNE ADDRFFBD6 X2 w1 C. R- @# D+ y# U6 Z
- PLA9 ], k0 L/ b- S. F+ h& S4 d( R- b+ Q
- LDA $0015/ |2 i, q5 M# X4 m5 Q
- SEC
, {7 V5 i: b; ~& }1 ` - RTS
& m4 ^/ }1 o7 r0 z' h - ADDRFFBD:7 S; e* t ^- {- E
- PLA
2 E5 e! o+ u3 Z5 y - JMP $A826
0 _& e& m! x) ~ -
W$ t6 k8 ]* o: ]! Z* }/ [ - * ]9 ?$ l( I0 D* ~, i2 d
- % G$ a4 y N. ?& L2 g B* g/ [
- .ORG $AA6A$ q. k4 g" q# v7 g; {
- JMP $FFD0
/ Q4 @7 T; m5 E4 V - ~8 t# r% p, L2 c% P4 D3 C
- .ORG $FFD0 ;敌兵动作忽略8 M |: Z9 h( B/ f- d
- PHA
" P4 f1 h) b' d- f - LDA $6000
5 C6 h* U3 l! E3 y+ X; B: B - AND #$80
5 z/ G1 _* ~6 Q - BEQ ADDRFFDC
4 u+ ?" `: m$ W - PLA' ^( @8 W7 a' r9 Q- ?# F4 e
- JMP $AA72
! W4 C4 _' X, L6 F* j8 }& D - ADDRFFDC:
& ?. m \6 C6 w7 O5 W - PLA# t; m, X0 v4 I/ h# h" G4 ^2 _, d
- LDA $0629,X3 W4 l& h4 c2 A- D
- JMP $AA6D) y- _- `7 N) A3 n
+ z+ G/ u* E4 K: h7 z5 t- r: L) i- ;[FC][忍者神龟3代标题选关程序]
3 u0 B/ }4 g. z0 K0 c - ;作者:FlameCyclone 2017.4.1% x; b& h; Q8 f3 R
- - v! b! i, @4 S# b) h5 Q+ t
- ! x( f& E. `" ~3 c9 y2 D
- ;配置数据4 _. Y/ t' o) h* {" _' r! x2 @) N
- KEY_ADDR = $F8 ;按键地址3 K4 }) n& [" s! L
- STAGE_TEMP = $6010 ;关卡临时地址
% i. j9 r4 F8 u G3 f - STAGE_MAX = $0E ;最大关卡数+ t: I' l# c2 k( m+ H1 L% c7 \- z
- TITLE_A = $20 ;标题条件A' K9 [: D/ f. d4 E4 X, X
- TITLE_A_ON = $02 ;标题条件A有效状态判定/ ]" `0 }( h- H3 t2 C) Y5 K6 D
- TITLE_B = $21 ;标题条件B
) [, w+ B6 b( z8 p/ C/ ^" R - TITLE_B_ON = $03 ;标题条件B有效状态判定# ]0 m4 }- r1 w" n
- PPU_END = $FF ;PPU结束符+ \( Q, I: D: j/ O$ m; X
- TIME_LAY = $4A ;标题显示延时地址
" t9 B, Q3 ?/ h - BUTTON_DEC = $42 ;关卡减少按键; r7 g+ j4 P4 s* B) f, m$ a$ u
- BUTTON_INC = $81 ;关卡增加按键 O# |, V+ t3 T9 U
- NUMBER_A = $06 ;数字A距离STAGE偏移量# N5 M' j8 ?- J5 T
- NUMBER_B = $08 ;数字B距离STAGE偏移量
; ?( V, T6 i: P4 C+ A8 \+ Q( W - PPU_ADDR_H = $23 ;STAGE写入地址高位8 F0 |* ~+ U/ F4 _ b
- PPU_ADDR_L = $8C ;STAGE写入地址低位
! m* }5 S' K" Y- K4 H* k* f# H - CHAR_S = $A2 ;字符'S'- I9 B& c0 A0 C
- CHAR_T = $A3 ;字符'T'
+ `0 d0 L0 w- Z. N - CHAR_A = $90 ;字符'A'
N' c7 `- Z( @% _2 S! q1 k( l - CHAR_G = $96 ;字符'G'+ g) h- ]8 d: `; u
- CHAR_E = $94 ;字符'E'
7 S( s$ l/ I( a6 N; w8 {2 t - CHAR_SPA = $00 ;字符空格% c' t2 b9 k+ _
- CHAR_LIN = $AE ;字符'-'
2 i$ o3 M+ }2 j* E - CHAR_O = $9E ;字符'o'
) p9 {6 \- Q8 q2 S$ r! O1 c - NUM_1 = $81 ;数字'1'
. t+ s9 N$ X7 E7 `; r6 ~) t - NUM_2 = $82 ;数字'2'
0 `1 j" N. E* I- H8 T( b - NUM_3 = $83 ;数字'3'. `- R) Z5 ?. X5 K
- NUM_4 = $84 ;数字'4'
: t, p% A. J# b3 k# X - NUM_5 = $85 ;数字'5'
" ^/ J3 g* B) M9 o1 B' u, m+ Q - NUM_6 = $86 ;数字'6'
8 T" ^5 V/ p. \ - NUM_7 = $87 ;数字'7'$ H: z7 `3 c! u' i, C1 z7 Z) B
- NUM_8 = $88 ;数字'8'
$ P) g% e \2 D7 W$ I - NUM_9 = $89 ;数字'9'- O. H0 f+ H, o: y( c
- NUM_0 = $80 ;数字'0'
+ b& Z- f% B) g7 o6 {
# s: @2 j; F/ ?- .ORG $F82A7 }& _# J) ~, k- o* I! L
- JSR $E700
$ q L4 |3 j2 r- r% x3 E -
/ L& d4 P# g: @& ~ -
9 U& r8 v7 z! ?" X' r3 H - .ORG $E700
$ B$ ]3 Y- {2 X - : I! j* j5 @$ `
- STY $4014 ;补上覆盖的精灵写入指令0 J4 y- R3 ?9 i
- PROTECT_DATA: ;数据保护) L* o# y q0 v) B, I) i
- PHA ;数据保护开始, b* e; f1 o! ^2 o8 \8 s
- TXA
1 T. _; t" |% K Y% G+ P' ?: F - PHA6 x# r) a& `; a
- TYA1 z+ J/ i H& R+ o0 i
- PHA ;数据保护结束/ u4 r7 I! z$ I3 w8 H
- LDA TITLE_A
@4 ^3 n9 b+ P3 ]% A G) E/ {7 z - CMP #TITLE_A_ON ;比较是否为标题画面
. e7 @; j2 l& w, L - BNE RET- t; n+ |, y5 P( E( \% X
- LDA TITLE_B
+ ?: |" d3 l6 |! X6 L - CMP #TITLE_B_ON ;比较是否为标题画面 e4 L$ ^/ ~7 z9 P
- BEQ PPU_STAGE
$ ?& E, u/ H O4 C- ] - RET: ;恢复数据
, Q8 h( i# }/ ?; b- i# ~- B' | - PLA ;恢复数据开始: U* d7 l$ S2 s. d# P+ }6 f
- TAY. b% A* B6 d( T& \3 W; I
- PLA
7 r. i2 M8 g" G6 w8 s - TAX
7 Q. f, {1 N( _, u+ r - PLA ;恢复数据结束& P( t# p- z: a
- RTS ;返回
: K: R9 N6 D8 P0 ] - PPU_STAGE: ;字符STAGE写入程序
9 V& ]$ n! ]8 G! p' {8 a - LDA #PPU_ADDR_H
% }" ^- f" a1 L; ^# i O - STA $2006 ;设置PPU字符写入高位地址' s0 {: q' T; Z& r& v
- LDA #PPU_ADDR_L5 I y; C: O- B' {2 m" {2 h( A! L6 t
- STA $2006 ;设置PPU字符写入低位地址
6 j# l1 P) C' p: T$ z8 n( F7 O8 ^ - LDX #$00
1 j+ ?. F, U# d( w4 g - PPU_STAGE_WROTE: ;写入STAGE字模
& e. G2 N. x& Q$ p$ V - LDA STAGE_DATA,X! A2 i$ p# v) r. M* x
- CMP #PPU_END ;判断是否写入结束
: N/ d0 H5 {7 c" r% a7 A/ p - BEQ STAGE_CMP- V# G8 b3 `1 ^# b
- STA $2007+ Z1 ^! q: ]7 p0 F9 |, l
- INX
4 H( ? F* T' \$ L: y) H7 t - BCC PPU_STAGE_WROTE3 V# q( a2 G/ }
- STAGE_CMP: ;选关操作' o1 _' i. `# T! i- n9 d' A
- LDA STAGE_TEMP' _! a6 G" n5 P& W7 d! @
- CMP #$FF ;关卡数据初始化条件判断
- N! }; l7 W7 A. I+ S' o( y4 T - BNE KEY_B1 ]+ x/ s* f! u/ U& A
- LDA #$00
4 x W. u7 P7 I9 i - STA STAGE_TEMP ;关卡数据初始化5 W2 t+ [- y& b- C6 v
- KEY_B: ;关卡减少( q/ }6 q# v6 a, G* A, g) h
- LDA KEY_ADDR5 e: V+ z$ H+ Y" T4 U
- AND #BUTTON_DEC ;按键B或左减关5 N0 ]' _7 N T5 B G
- BEQ KEY_A, L; A6 w) y( `* X% ~1 ]. N$ c
- LDA #$FF
5 y/ v7 r8 c$ n# Z) n - STA TIME_LAY ;重设标题延时
`0 n- B9 E% s: C/ ]" T - LDA STAGE_TEMP
% l# v! D; l i" k0 j" f' y - CMP #$00 ;关卡比较: X, R. h6 u* n$ w* Y% U- D: J
- BEQ KEY_A
7 Q% N) k; G6 e( U; m% j ?6 c$ C, D! } - DEC STAGE_TEMP ;减关
% f2 N* m* p# N6 a* a2 m8 O; [: U - JSR MUSIC ;按键音效8 u8 t+ I) I: e& j6 @
- KEY_A: ;关卡增加9 I: T, ^8 d* T
- LDA KEY_ADDR* X$ e2 }! W, [0 @! C- X; d; v
- AND #BUTTON_INC ;按键A或右加关& Y* H% P4 z- x; Y7 \' X+ G9 |, ]
- BEQ PPU_NUM_WRITE
l6 Q- B1 H7 a6 b& w. c1 ]' ? - LDA #$FF
w( h9 q& X7 \' g8 e; {6 j( j - STA TIME_LAY ;重设标题延时8 H7 W% b, c% H- ^& `# G
- LDA STAGE_TEMP
6 x) O8 O. ~ C* j7 f - CMP #STAGE_MAX ;关卡比较
* l) a. u% Z& E7 i# M# H/ ?! O8 M6 C - BEQ PPU_NUM_WRITE' A! Z; |% Y+ u) `/ H l
- INC STAGE_TEMP ;加关; Q6 q- l4 C7 G4 p
- JSR MUSIC ;按键音效# P+ h6 f6 H0 T+ E
- PPU_NUM_WRITE: ;关卡数字写入地址
2 d( N$ j! w! G# R$ \' W+ Y! C, ~ - LDA #PPU_ADDR_H
! K6 a2 [0 ~& V - STA $2006 ;设置PPU数字写入高位地址- n5 w E/ X0 G& i8 O1 G
- LDA #PPU_ADDR_L; \* n0 w2 Q. z+ h3 {
- CLC9 W. g r0 ]1 g. R
- ADC #NUMBER_A, t% ?1 o G8 a( I. h7 v
- STA $2006 ;设置PPU字符写入低位地址
+ h. J3 j" L4 K! Q9 Z - LDA STAGE_TEMP
; ^ N% p" t( e# X7 Q* u6 M - TAX* b6 @% l; {" }$ h2 i2 ^
- LDA STAGE_D1,X ;写入数字- j1 I( B0 [6 _) g0 j
- STA $2007
% y) ]' T) {, a - LDA #PPU_ADDR_H
4 _, C" b2 G& E' r4 \: O- M) T& C - STA $2006 ;设置PPU数字写入高位地址
3 V3 p) @# W' @$ H8 y - LDA #PPU_ADDR_L
0 [# I/ } E1 z% g( @& \; ` - CLC
) ]: w+ B5 y% T* N; G4 D - ADC #NUMBER_B) Y0 M+ u- X8 {( F4 G
- STA $2006 ;设置PPU字符写入低位地址$ |: [+ T# i7 v Q) X- j$ `
- LDA STAGE_TEMP: o' N7 M- G3 A) {1 n# Z, ?4 q
- TAX% ?& L1 H, G3 r5 J/ g
- LDA STAGE_D2,X ;写入数字
9 ?! m/ H2 H2 `" f( k - STA $2007
, O1 s: }3 o7 ^3 W- }5 C, y5 m - STAHE_WRITE:
! _. G0 `, c1 j - LDA STAGE_TEMP) I- A, V; l6 d" v% J
- STA $2D ;初始关卡写入3 ?) `5 p* q( l: |: |3 p* s
- PPU_RTS: ;恢复数据1 x6 J$ C3 B9 D7 |! U
- PLA" N1 C! ?0 M4 v! b) o O
- TAY
. U% {( B+ {& p i5 D7 y( n" X - PLA* u5 ^' P# [, w2 a; C: T, O
- TAX* J- @' {5 r- Q7 Y2 G- A
- PLA' w( A/ U9 j5 f; l0 j4 T
- RTS
1 Z2 K. X" q. `6 p$ L( Z -
4 q$ Z' L: Q8 k! b1 l4 ?% M - STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据) a. r6 t- Y) w8 ?3 C& L7 ]
- .BYTE CHAR_S,CHAR_T,CHAR_A,CHAR_G,CHAR_E,CHAR_SPA,CHAR_SPA,CHAR_LIN,CHAR_SPA,CHAR_SPA,PPU_END
- `( F" J7 ]2 ^7 B1 I - , O2 f4 Y" O) V+ [
- STAGE_D1: ;关卡数字
5 P( A* w r- h5 C' l! ]/ t - .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_82 W4 A) b$ r* p/ p" S" ?! Q7 G
- $ @; s; ?0 l: n4 V- @/ {3 t
- STAGE_D2: ;场景数字3 s) _0 O3 y) T) r
- .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
% j. M. R# ~" `6 S' I& P* Q; U -
5 C; w6 R: ^: q0 f h+ R+ B -
9 T( n8 j/ O/ v1 C( w+ C - MUSIC: ;按键音效
2 h0 a3 K, w; I2 F: n% Y5 Q - LDA #$3B ;音乐号
/ @8 U! n% |$ P/ n M3 b8 l# z0 w - JSR $919E ;系统音乐调用
& D9 P% V: _7 F& q( U - RTS
复制代码 4.无敌锁定: 暂停后,按上键切换;3 B2 p: }: f, t$ ]+ U! N5 \( N
5.生命加满: 暂停后,按下键切换;% K. K) V& b& I! M0 K/ g
6.血量锁满: 暂停后,按右键切换;: S6 G8 U. u) }; @! i6 ]
" Q9 F" [- Y! b' ^5 V
. f. e3 N2 ~( e: M+ _+ m
5 n& W; w2 A( u7 e2 Y; J8 ^. K
$ \7 P- |/ Y# Z) m' u
- ^9 o P7 b4 X4 a" \# |' U
FlameCyclone.ys168.com& T$ p$ F2 f) j6 V( G, Y: O `4 N, C
www.nesbbs.com
: @; V6 {# y. ~. d- X& ~' _+ |" I0 }+ {2 q; b' H8 o9 h3 C
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|