|
|
本帖最后由 yandagui 于 2017-4-2 13:23 编辑
5 j" ^* O( J/ B7 y: N7 X% P
& m$ e% P. Y0 E/ z[FC][忍者神龟3][END选关]
* `8 R! X% s) m+ |5 s5 z, [# C2 p F! f6 L4 O
时间:2017.3.30/ n2 y0 I7 y9 a& B
作者:FlameCyclone4 O5 ]$ B8 h6 x4 `/ g
内容:$ i4 a4 l7 X1 k) y7 P& R6 `; P
1.关卡选择: 标题时,左或B减,右或A加;6 r% W2 p% G i. K7 X1 R
2.全屏击杀: 暂停后,按A键切换;
; ~$ [! T# g; r) ? 3.一击必杀: 暂停后,按B键切换;- .ORG $FEA0. K& {$ V6 P0 D r2 m
- ora_data:& T t: g& t8 h$ a5 q9 A2 x1 e9 p: W
- .BYTE $08,$04,$02,$01,$80,$40,$20,$10, X9 \' a% n) u, h3 b
- and_data:. ~4 L2 r6 h. J+ ]9 }# x
- .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF2 g J' R# w) ?; f5 m- `+ c( a. \' y
-
: H2 q) ]7 s" J( @ - button = $F8
q3 z, e& A. B# I6 @& q6 k6 S1 i - flag = $60008 d" z9 r; v/ \5 I& p- U
- pause = $0045
* ?$ V, v( m. n5 y - ( N! S( n- f$ @! ^; R( Z4 w: D9 J
- l# g/ J3 ?* S- .ORG $F90D2 M# x* b/ G; t( X! }3 V
- JSR $FEC0
- s$ k7 M# H! A5 d( ^1 B" k -
4 ~" s0 {& { V/ \ - .ORG $FEC0
/ k" h8 E5 X8 c& g8 G' u) ] - STA $54,X+ O' ~- b9 Z7 x7 {# l
- STY $FA,X5 K3 l3 }/ k# r. Q
- PHA
( }2 I5 V5 R$ ^/ M$ H - TXA5 c1 Y1 h6 D4 |3 ^
- PHA2 h c' {+ l f# I" ]+ N/ D, {0 l
- TYA
+ i6 ]% N" Y/ c. N - PHA' @ ^6 T" S8 d7 X
- JSR KEY_OPERATE
/ }/ J( _# z* m% c) P+ d - JSR INV8 z, l J7 i4 h: g2 r+ S
- JSR LIFE
6 k i1 K: `( F. W1 s9 ]+ k - JSR BLOOD
0 T# @. v5 x8 D# L p - PLA
0 C# Z% k0 G: V# [8 R - TAY
. {( z" o* i: h' h' i3 P; E - PLA/ p6 u& ?+ l; `2 T6 u
- TAX- R( a: y- ~+ i* J
- PLA* S. \1 P2 ?0 \& E
- RTS' @4 A: B" t4 J+ `1 {8 t: C
- KEY_OPERATE:! y6 }1 w. x0 a# L; C
- data_protect:# I/ M9 {3 v, r; C
- PHA
; g/ v7 s; W7 Z; v6 b% p - TXA
* n$ F% c+ U+ C7 A - PHA
3 s$ w+ b4 b) C/ K8 [, K - TYA
5 s/ V, @/ [; \* `* N3 H - PHA5 I9 x8 V/ e5 y
1 o+ `9 U- u1 E: R' e% w$ R- FLAG_CMP:
8 a8 x) G) B4 P - LDA $600F
6 s8 O2 }+ T7 J0 N" y2 Y* S7 \ - CMP #$7F ;标志数据初始化条件判断- i& h% P) c) i! _1 M
- BEQ pause_cmp. [+ L- X! e$ x9 R. x, {, o
- LDA #$80
, W! m9 o( e0 r' J F# b9 | - STA $A001 ;6000-7FFF写入启用
+ S$ `) ^$ V1 K: H9 F% V- B - LDA #$00 A% x8 X, z- n
- STA $6000 ;数据初始化
2 Q( c( E* D* E8 s - STA $6001 ;数据初始化
; T" |8 `/ L/ N1 a8 V - LDA #$7F4 S! m* g. ^7 ]2 S+ x: P* H
- STA $600F) s. c, D, w8 L& A ?8 g
- pause_cmp:, H6 ?' l8 C8 S' \ ?" O! @( x% @
- LDA pause h. d* B5 l' J) D, n- D# S' n
- CMP #$01$ p' p2 J q4 d. @" d
- BEQ button_press: S0 l6 U! F F# Q3 ~8 O5 D
- PLA
; ^% E; Z. {3 \0 L9 g0 `* p6 M, o6 M! { - TAY
, r4 w( R8 C) w0 N8 N2 Y. E* @ z - PLA
* [, t* P+ O3 d - TAX
! u8 c) W! C$ c/ X - PLA
/ R5 N4 P6 F$ J: G5 M0 L - RTS+ _; B9 Z' a2 X$ }8 t& h2 c
- & n( t3 F' D) c2 @; b
- button_press:3 O9 r' R: ~/ ^; _$ `6 D! ], L
- ini_Y:4 t- P z7 O# ~+ c5 f. @, w" k0 X
- LDY #$00
' v8 A5 P0 x$ c% _" O - button_cmp:
; A4 m0 X+ [: V) a - LDA button,X
5 ]/ G# V# X$ l& @+ w }- |/ I - CMP ora_data,Y3 T! {# U- \" c2 @7 E
- BNE count_Y_cmp- W* S8 V( [8 C! a) N; C$ C
- flag_cmp:9 i' _9 h1 p% G8 y. [. W
- LDA flag,X
' E5 n" G7 N9 \: G3 O - AND ora_data,Y
% ~; J& x0 C" P3 I9 v2 b6 M1 n' f - BNE flag_and1 Z( C, n$ c2 N: G4 x/ [
- flag_ora:8 O7 }3 _" R2 e
- LDA flag,X. r/ [5 C& u; x, C5 z3 _
- ORA ora_data,Y4 Y! h! {1 R4 V9 v& [1 S2 m: h! U1 s1 K
- STA flag,X
o# b. g/ A0 r) u - BNE count_Y_cmp
5 c0 O. ^& F+ g2 o7 V# q; ^+ C - flag_and:& N! c9 z1 P9 q( `6 |
- LDA flag,X! |) |# }7 c$ M. R4 ?4 n6 }
- AND and_data,Y
4 e3 ~3 K+ |) ]' L. U% K C - STA flag,X3 w, u, v5 }/ V2 E0 }9 a
- count_Y_cmp:
; G) y e- S, k/ R - INY
2 d( B5 b& S9 g# | - CPY #$08: M; r; S7 o6 |) X+ N A
- BCC button_cmp
, b& G5 e0 J/ c& z" ` -
9 ? {" H! D3 q, m - data_extract:: h: S; s- v- c' h' k
- PLA
% e9 x/ L5 ~' L - TAY
: s/ `% y! ~: p9 k - PLA
8 _4 Q7 j) S! k# } - TAX" l" T/ ?( N5 h* c
- PLA
1 {3 m6 }) y/ b5 _& O8 Z, Z -
. q' J% D7 O1 V& a1 n: S: y3 M - return:
% S$ g' @" Y. |# a. C# a4 ^0 X1 K - RTS' L/ ?9 D) R, M6 M9 f
-
3 d* u0 U9 e2 r( _ -
4 E5 r4 T/ L9 x0 y# Y5 k - INV: ;无敌
# L9 i& k0 `4 \8 ]7 k2 i2 ]) ^, v5 u$ J - LDA $6000,X# f* ?) E) L8 k" n1 H1 X
- AND #$08
& Y; ?1 u) v" @1 s' S - BEQ INV_RTS* m% B! e. S2 A5 ]/ d
- LDA #$05; M* R+ [( v4 y# i/ k1 k t
- STA $04FF,X
- O4 P# b6 n' {! t6 x - INV_RTS:$ G+ `: n7 @$ n
- RTS3 P0 o5 R6 h/ F Q! Q9 D
% _% y( |4 T' j, W% c- ( F: a# q. D) e; I. N
- LIFE: ;生命1 J* _/ ?1 v; `/ D% L! v1 q. P
- LDA $6000,X
3 j. |; w+ C% l5 w% b1 m - AND #$04* J* o& z7 ?# E7 R' H
- BEQ LIFE_RTS7 ?9 h, U. N8 V. T" n
- LDA #$09
; o3 d: q! Y0 c! N4 I, y4 s - STA $6A,X9 `( Y+ E$ ?) j: i
- LIFE_RTS:% [, b, `( H' y0 N
- RTS6 D M$ [2 n5 l. B6 l' e
$ L, a) t2 W* l" R, p; N6 E: [-
/ L8 Y- t% B6 E5 O E. X - BLOOD: ;血量2 M$ j5 T/ g9 n6 \- `- `
- LDA $6000,X7 |: k: i1 v/ W' ]1 S
- AND #$01
6 M8 x7 E, [- Y3 e; t1 x+ o9 ~ - BEQ BLOOD_RTS! C/ ?$ \8 u! i7 e' G H
- LDA #$7F
+ b! W5 J; z2 J s - STA $04F1,X
; \$ ~3 E) r+ l( K4 X# V* e) P! t - BLOOD_RTS:5 ~5 r/ d, U# | h, \7 N* Q& |: i
- RTS
4 K" B6 f' T8 I - / b' f, E: V; ~$ R5 T
-
/ ?/ ]' z% j4 k+ A" m1 |5 R - 2 r7 ]! A7 S5 w, j9 W% W. b5 p
- ' g! g# S( z7 R J
- .ORG $D29F2 x/ h, M6 N, `3 o7 M# R: {
- JSR $FF80' v( H( @9 V3 c }7 s
- 7 m5 { s3 u7 X/ _/ a6 Y
- .ORG $FF806 l3 `" {- S3 V, f* X
- KILLBOSS_BY_ONE ;BOSS一击必杀4 z% O. s1 l0 E/ e! q8 R& r( d' t
- STA $0628
/ K) G; a( @- k1 O' r - PHA" J D5 q% Z+ I4 l8 H7 |
- LDA $60005 ?2 S/ [- p3 J. M: Z: q! \
- AND #$40
. n* W+ O" H- _ - BEQ ADDRFF8E! l" M" y' Y1 F7 w: X( |
- PLA8 b+ }; h1 k" g- k7 _2 e
- CLC ;敌方死亡状态判定
! D5 j( _2 x5 j4 h - RTS2 d Y. Z* ]4 V/ d. @# K
- ADDRFF8E:7 G B3 J: }, s8 |' @4 f
- PLA; x) M. O1 m6 F+ X/ L1 ^$ h
- RTS4 P3 M3 P2 {4 ?5 ]( u k
6 I% ]" \" x. F2 }, o4 o! Z9 C- D! _' ?2 }8 ~2 J6 t* ?
- .ORG $D151# a% H* h4 \6 s- ?
- JMP $FFA0
$ [; H. {+ H) {: a# M- A -
) e. ^5 l a/ y6 E7 Z4 L1 u - .ORG $FFA0
' c6 ~3 N/ D# J4 b; m( {$ H1 ] - KILL_BY_ONE: ;杂兵一击必杀) t% V, {' { E- z- B, h
- STA $0621,X
0 b# u" h! h$ S. d - LDA $6000
- b3 h) A) Y; I; @ - AND #$40' f' {* h" ~$ e5 \8 G0 B' [: E6 q
- BEQ ADDRFFAD# }7 J w# m- w
- JMP $D19A ;敌方死亡程序跳转
$ r. ^2 M. { d1 O - ADDRFFAD:
6 U( ^/ v6 l" D$ n. v$ M - JMP $D154
% v6 w( M$ C4 x5 Q$ g( l$ \ -
: A% E# l+ o- A7 \' X( q. F) _ - / `( V0 S" m- p3 e/ e
- .ORG $A7F6
$ X7 J- e! U9 ~% V$ f- I - JSR $FFB05 \; `1 l6 z5 i; o$ D
-
1 S9 J G& t7 c( a& {6 E5 V - .ORG $FFB0 ;全屏攻击' j) Q( q3 ?% L) A8 c: B
- PHA
; N' j# B R8 S - LDA $6000; B6 \- Y+ |$ s$ U* v
- AND #$80, T! a0 e! o/ |- {9 G4 w
- BNE ADDRFFBD
: `* I+ ~" d5 g: [' @, ~+ \ - PLA# [. ? R; J, j9 E2 ^/ A
- LDA $0015: S' G$ w5 |; H a6 E7 i& e! j# h
- SEC
% v& e: V! p, W6 r - RTS
1 T' }/ ]$ C- @8 a! j' Q - ADDRFFBD:
7 ?; |9 f) K3 q/ y - PLA
( c/ | e! m+ _* N. g$ N - JMP $A826; @2 G; a0 G. d+ P3 `9 x: A
- + f! z# t# ~" }- D
- ' h% x) G3 R. m" P, U
- * _0 ]. j4 S# k/ J" ~+ p$ ]
- .ORG $AA6A
9 D. L/ f) C- l9 z+ m - JMP $FFD06 B5 p4 B% H9 o+ V7 N
-
+ t4 \9 H6 K/ d" T% U o2 B1 k - .ORG $FFD0 ;敌兵动作忽略
; ~ O8 d& L+ l/ Z7 q4 V - PHA
2 o* D* I; g, h k" M - LDA $6000
1 V }$ i# i. a9 m0 y4 p5 b - AND #$80+ _3 D1 `% f6 w {( U; p, i1 E
- BEQ ADDRFFDC
0 L4 M+ W% ?" u - PLA; I. _, }9 P& Z9 T
- JMP $AA72! Q+ p: \% n# x/ i
- ADDRFFDC:3 X# ^8 Y0 h+ ]; n( j: l' v2 q7 L/ q) [
- PLA
" ?$ V: d' d( ^0 C; l5 f - LDA $0629,X
m$ E' i- R6 C( P5 {) g9 x - JMP $AA6D
! m( s, Q: l& T. I - " l' O2 l, Q8 l
- ;[FC][忍者神龟3代标题选关程序]
/ x! |/ M; z: e' q6 m' }% s/ E - ;作者:FlameCyclone 2017.4.1
) g7 U( E6 U& A q- b' m
6 z7 N! L* k2 u6 {( f
" ]+ E4 F2 B: O0 R1 y" d7 B1 x B9 {" b# V- ;配置数据
3 a) S% w( d7 W8 y2 e - KEY_ADDR = $F8 ;按键地址
" ]7 n H' M. ?* h; I2 M - STAGE_TEMP = $6010 ;关卡临时地址8 I/ K; j7 e; w8 K( Z
- STAGE_MAX = $0E ;最大关卡数4 q9 Q) P" L9 L2 q2 |
- TITLE_A = $20 ;标题条件A
/ p5 z! `1 P& X% V+ S - TITLE_A_ON = $02 ;标题条件A有效状态判定
1 S% t/ O1 ^/ M! ^ - TITLE_B = $21 ;标题条件B
$ B! k3 M% ~% Q$ L) n - TITLE_B_ON = $03 ;标题条件B有效状态判定
, ~' G" K% S1 h - PPU_END = $FF ;PPU结束符; z8 z6 w, n3 l0 H% L
- TIME_LAY = $4A ;标题显示延时地址
& [0 k3 K* A1 n. T- ]6 ] - BUTTON_DEC = $42 ;关卡减少按键+ {+ E( `$ P' a9 M8 M, ~
- BUTTON_INC = $81 ;关卡增加按键" C9 w9 ]% d, X. W; Y" B
- NUMBER_A = $06 ;数字A距离STAGE偏移量! G$ M3 A0 W, l: W M! y8 W$ c S
- NUMBER_B = $08 ;数字B距离STAGE偏移量
$ k1 K' c: p! W( k- S* k2 o - PPU_ADDR_H = $23 ;STAGE写入地址高位
) m* b. u& X& j$ `' f - PPU_ADDR_L = $8C ;STAGE写入地址低位
) I* k6 `; C$ { - CHAR_S = $A2 ;字符'S'3 \7 s/ m0 v& \! I5 v \5 l9 m( X
- CHAR_T = $A3 ;字符'T'
. L. x, ?) e* z, g' a - CHAR_A = $90 ;字符'A'# h9 A' U7 m0 n6 R p* v6 y+ g2 k @
- CHAR_G = $96 ;字符'G'
1 \) g6 p5 W0 h6 O( V - CHAR_E = $94 ;字符'E'8 k7 K: u8 J0 P0 ~0 y- u% P
- CHAR_SPA = $00 ;字符空格% H/ k7 c {; F6 J
- CHAR_LIN = $AE ;字符'-'7 r6 _, k8 G$ C, a: q2 E: w
- CHAR_O = $9E ;字符'o'7 u( Z( E6 B1 N, J$ p: e; N2 w& f3 `+ b
- NUM_1 = $81 ;数字'1'- g+ \$ O# ?5 n& K8 Z4 ^
- NUM_2 = $82 ;数字'2'4 L* K% [& ?. c$ b. N
- NUM_3 = $83 ;数字'3'
6 F; Y1 e% _9 m - NUM_4 = $84 ;数字'4'% J; x9 z& Z L$ V7 W- r1 A7 k0 m
- NUM_5 = $85 ;数字'5'! [6 B2 I* D$ c; i
- NUM_6 = $86 ;数字'6'
$ j) s( a# W0 R4 P. z0 p - NUM_7 = $87 ;数字'7'+ R8 C Q3 O Z( E
- NUM_8 = $88 ;数字'8'( Q I* b, W5 i" k
- NUM_9 = $89 ;数字'9'
% Y) T+ [- P8 Q, L) c: e - NUM_0 = $80 ;数字'0'
( v) u( R: x! J2 R! h6 y s - 1 t: C0 q/ R9 u
- .ORG $F82A
, O- q* y7 d3 U/ a+ b d - JSR $E700
; H9 X/ o6 `( d9 c$ G - . I9 |/ }6 A* W& N/ A: X
-
- G$ B& p: r, j- u' L - .ORG $E700
+ X% x" V0 I8 ]# S7 }/ @ -
) `9 ^5 F% c$ ` - STY $4014 ;补上覆盖的精灵写入指令
! _1 t4 j! Y8 q% v; G, r - PROTECT_DATA: ;数据保护
! E( ?( I* C E" V! X) s5 g& B2 k. } - PHA ;数据保护开始- r/ P+ Z- \$ E
- TXA$ B# I& O# F; a. M0 J4 j- x, W7 V
- PHA
! Z5 X6 R- X% f/ [ - TYA6 p7 {% S$ G- H: T; N9 p( u; c
- PHA ;数据保护结束- r2 N" a7 }: P. U# V
- LDA TITLE_A: h7 P+ f& e+ F7 L! t
- CMP #TITLE_A_ON ;比较是否为标题画面
* T# v+ t, ~, C% B4 D - BNE RET
9 n/ m; n% B2 U3 z" V - LDA TITLE_B
4 p. m$ u. X l/ H! L, _ - CMP #TITLE_B_ON ;比较是否为标题画面
* M5 P( a- m/ t3 E) A2 n, @ - BEQ PPU_STAGE8 o( |& p% r, k% Q; P9 o' S3 A
- RET: ;恢复数据" {* a; [" f/ |, T) a
- PLA ;恢复数据开始
( _1 l# r/ W4 L5 H - TAY
, b! {1 }. ~; z! h - PLA/ ]- D, U" t6 Z# ^$ a; x ^
- TAX
_; n# n `* S- Z4 x - PLA ;恢复数据结束
( K! \! ~" s) F - RTS ;返回/ K3 p. g) h1 M' S5 y/ w& A
- PPU_STAGE: ;字符STAGE写入程序
, }/ v& d A U; y - LDA #PPU_ADDR_H ! G( g7 E) G" |4 w: k t
- STA $2006 ;设置PPU字符写入高位地址
4 C7 U2 Y& `6 @) p, |7 i0 S. b - LDA #PPU_ADDR_L" {! s: e3 ~" u( O% ?" K$ `
- STA $2006 ;设置PPU字符写入低位地址
3 l3 E7 i* P; I7 ]) u+ K1 ^ - LDX #$000 V' c, E, R; I( p( a) E- G, M
- PPU_STAGE_WROTE: ;写入STAGE字模
" x8 s7 V, [3 N - LDA STAGE_DATA,X* \: U8 H% p2 ^- a* g) g# G
- CMP #PPU_END ;判断是否写入结束& c h W4 K( r0 U" X
- BEQ STAGE_CMP$ |7 S* d; n3 b% n1 C1 B, W+ p
- STA $2007( X: g% B6 c. _" e1 ~) J
- INX3 Z) R# Q+ M" I7 N/ B& F# U
- BCC PPU_STAGE_WROTE" v, f/ Y& N% ~' S7 }
- STAGE_CMP: ;选关操作
9 }" e! | x$ h+ _! s, [ - LDA STAGE_TEMP
1 h' y& k u& t+ Z7 W& g8 P, ?- f - CMP #$FF ;关卡数据初始化条件判断2 O0 q/ F6 X8 R) Y
- BNE KEY_B
9 o' M: A' U0 Y* V% y& O - LDA #$00
. Z. Y7 |5 B: f+ R, c' B' J - STA STAGE_TEMP ;关卡数据初始化$ I( {& L- Y$ b. a) R5 O I9 B
- KEY_B: ;关卡减少
2 q6 r3 u# Y8 q7 ^ - LDA KEY_ADDR( Q; M$ c+ u, D7 m
- AND #BUTTON_DEC ;按键B或左减关
) s N: d9 a% ^% V& ? - BEQ KEY_A6 d' h4 `$ @6 L! ^. A4 t
- LDA #$FF% u* S9 I& w, R( C1 Q/ R" H* ?
- STA TIME_LAY ;重设标题延时0 l. k" x4 q( {+ |4 H# f
- LDA STAGE_TEMP r$ D, c$ i) f: ?" V- Q- i M" w! g; H
- CMP #$00 ;关卡比较
6 s& r' _* u1 A. d% X - BEQ KEY_A
& S3 ]1 w- L) j( k - DEC STAGE_TEMP ;减关3 G4 f/ W" C- `" {
- JSR MUSIC ;按键音效5 o5 ]) A/ u+ n$ w
- KEY_A: ;关卡增加; F' l/ [, P7 n$ ]& l
- LDA KEY_ADDR
( X9 t. T, D* r& J& F - AND #BUTTON_INC ;按键A或右加关 L# u5 p3 X& e* E/ m! o; [
- BEQ PPU_NUM_WRITE
7 t3 n+ ~- D4 G. F0 q2 C - LDA #$FF: W. K+ ]& _. ]) A! d) W: f. q7 w
- STA TIME_LAY ;重设标题延时
% J6 k, O% Z# ]) V3 o - LDA STAGE_TEMP2 y8 t. w. c, F+ `' H
- CMP #STAGE_MAX ;关卡比较
5 ]# Y P5 w3 W8 o - BEQ PPU_NUM_WRITE
# U- c2 ] |: n A9 u9 W) Z - INC STAGE_TEMP ;加关
" n2 k, d) r1 N2 h" L. _9 b( { - JSR MUSIC ;按键音效5 e- s# Z* Z5 q! f( }: t
- PPU_NUM_WRITE: ;关卡数字写入地址
2 f# R* n Y& d: H% g - LDA #PPU_ADDR_H
! ^; u* d% h1 ~, {8 T7 G) q" M Q - STA $2006 ;设置PPU数字写入高位地址: W- l$ e6 Z/ `! V
- LDA #PPU_ADDR_L
$ b4 } X) X; V. ~) n; ~ - CLC& p( ]2 I. H. A2 y6 W6 `- G
- ADC #NUMBER_A
+ w0 T/ O0 L8 C. V2 i - STA $2006 ;设置PPU字符写入低位地址
) }/ t7 m# y% D* b% q( P - LDA STAGE_TEMP
, D) p! o. Q& b$ C8 r7 E& M1 S# M% p - TAX
' m# z+ P! a( A7 a( c; S: R - LDA STAGE_D1,X ;写入数字
( N/ t6 R) b( M6 s' W# ^; E# r! j - STA $2007* j4 K9 b5 d( q. M# ^+ Z* Q
- LDA #PPU_ADDR_H* I* N+ Z3 c0 U4 `# j4 i& K+ e! ~
- STA $2006 ;设置PPU数字写入高位地址
; Y: H. h3 U# }6 [' J - LDA #PPU_ADDR_L
- B: h- L0 t: \( s4 ^+ P - CLC
3 V/ Q* M# e! {3 q - ADC #NUMBER_B
S5 |/ S0 a4 p2 J: ? - STA $2006 ;设置PPU字符写入低位地址' {0 Z, I$ k! F; C+ P$ h
- LDA STAGE_TEMP, c- d3 ~! u. h/ e$ y+ s" K0 Y
- TAX
! ~4 i4 P+ }8 f9 r: ? X# l8 G- J - LDA STAGE_D2,X ;写入数字
+ W- |- V4 Y! M5 f! f - STA $2007* s% W H1 v( ^# [% |1 ~ m/ W
- STAHE_WRITE:
4 B/ x9 q( P3 p% k& D+ Z - LDA STAGE_TEMP
! ]* C" }8 ]) J; V+ m: g" \/ q - STA $2D ;初始关卡写入
& l; v* R7 a+ M' _- n% w: p; w" K - PPU_RTS: ;恢复数据0 I" L" h# W( N
- PLA; f; f* g2 [0 [6 V
- TAY7 D* x, F& j* C# H/ b: ?/ f
- PLA! ^; x# y9 [3 H; X8 k! ?+ @
- TAX. g. r1 i$ Q9 \
- PLA$ s' Y' M0 j: k4 b. H/ l+ F2 W
- RTS9 B+ x4 T1 g3 [, c. O
-
& {& D" R" ^( \+ m$ q - STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据
) M6 [5 I. J: H) |+ @$ T+ n+ S7 @ - .BYTE CHAR_S,CHAR_T,CHAR_A,CHAR_G,CHAR_E,CHAR_SPA,CHAR_SPA,CHAR_LIN,CHAR_SPA,CHAR_SPA,PPU_END: J3 d7 k' ~ }9 v: o3 X3 ~
# O; @0 s* @9 ^( s3 ?' z( e E& F ]- STAGE_D1: ;关卡数字' {! W5 c1 b5 s; B+ a* X4 w' Z
- .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, T* D, ?! t3 t$ D0 `* H
- u$ ?9 o1 _) \5 @+ P- STAGE_D2: ;场景数字
, f/ D" _3 e+ F" 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
, h0 X% S2 E' L% k - / Q7 e& K( J9 I; U/ O9 F
- 4 \) B7 p% y& F
- MUSIC: ;按键音效! r; M: E; A9 T7 C. \1 F, \, g
- LDA #$3B ;音乐号: z. Z0 U- b6 G0 T% f
- JSR $919E ;系统音乐调用
\1 E$ m2 b8 ~3 } - RTS
复制代码 4.无敌锁定: 暂停后,按上键切换;
1 ^$ A3 p3 w& j* R) Z r6 Q# Y) G0 D/ l 5.生命加满: 暂停后,按下键切换;
. l9 W3 U& [! T 6.血量锁满: 暂停后,按右键切换;
, y' @; i) @4 I" @ 2 P) G0 _- M( m

* m: L- u3 Y* C7 p" a7 e
. Z* L5 ~0 x% r d
: u m) h3 a# u v& q0 V
F8 g7 r0 k# [5 `+ ~% o1 IFlameCyclone.ys168.com
5 J, ]& B; {# [: Ewww.nesbbs.com2 j/ q* @9 W: \. G
0 q& h- N9 J) b
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|