|
本帖最后由 yandagui 于 2017-4-2 13:23 编辑
$ t& u/ N7 S. a; m$ D5 R# h4 q# q) Z
[FC][忍者神龟3][END选关]/ l. V+ ?4 [ |
% {5 d/ ]- i3 ~ z" }时间:2017.3.30
# n' S6 `- D5 \$ a" N; h; x! w作者:FlameCyclone% ^+ [! X5 q& y* I/ N5 B- Z6 d2 G0 o
内容:
( y1 H7 [5 r" f; [/ F 1.关卡选择: 标题时,左或B减,右或A加;
. K' p R$ L6 v# S 2.全屏击杀: 暂停后,按A键切换;
3 p& o; W" j4 o5 N, H 3.一击必杀: 暂停后,按B键切换;- .ORG $FEA0
* W& \. Y- l0 L0 p0 { - ora_data:& ^- o+ n; ]- N
- .BYTE $08,$04,$02,$01,$80,$40,$20,$10
; O# p+ j/ N7 ~& P; P) {, c" C5 [ - and_data:
6 x* F' x5 [' l v - .BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF* L3 n- ]9 P# y1 g, |# |0 z
-
0 c% f0 ]1 z6 m9 m4 L1 X* k - button = $F8
3 P! N8 B0 F: y* g$ z% I) R - flag = $6000
& p8 z1 U$ H3 [1 ~$ J - pause = $0045
/ s9 G( M, U {0 K, L$ s2 w6 m& D' s' x - 1 N0 f1 R) y( Q3 M
- - b8 U$ M! B: y$ {; x Y: H1 @
- .ORG $F90D
7 V ]* Y) S2 d# P& E/ Z - JSR $FEC09 j2 p b) t8 x/ D5 H) L
- 0 T% p$ C! h3 G, A; R4 _1 G ]- B
- .ORG $FEC0! |) Z( p4 ^# b
- STA $54,X# B- y# k4 A: \ Q, V3 [) g
- STY $FA,X
5 Y( Q$ q4 B5 C9 h4 z - PHA
/ q2 M5 V+ e; g6 V: n" H# y w) p8 @ - TXA7 M* H# n1 i2 s4 h L
- PHA
$ A- g8 x, W5 _9 x - TYA6 F) K/ @5 n/ E
- PHA
. j- S: R. E2 N0 K - JSR KEY_OPERATE
; @; `* n* a2 I/ {& J! G - JSR INV
/ D- F# u! r5 _' A4 x - JSR LIFE3 U; w; ]8 H4 T# c8 u/ L. Q/ `
- JSR BLOOD
0 g! x B& N* E' @/ b& L. z - PLA
2 I: F% d x( e- S" F$ M - TAY
2 b/ p- c9 i5 q# ]) f - PLA
) b% ^5 {' O, j! m: w @( e - TAX9 m: V4 Z# b- c6 @: }$ M+ E1 d
- PLA0 C$ X$ y0 |3 k5 a- U
- RTS _/ r/ l( ^7 n7 H" x
- KEY_OPERATE:) ?9 p1 g8 `9 a4 ~
- data_protect:
, n0 }4 z' G* |" `. ] - PHA
" ^2 c) Q* Q8 R# L: Q/ _ - TXA& u( i3 D2 G; D; ]* l' z5 t0 H3 J
- PHA
o" B1 i% k+ h5 @ - TYA
) ^" ^/ I7 E7 o5 M! W6 \ - PHA
; B7 ?2 }+ M. K' ^! p
; ~0 F @' Y! M- FLAG_CMP:$ I4 ]7 G0 T/ z& J
- LDA $600F
# d6 ?9 `( f2 B6 b% \1 o* g - CMP #$7F ;标志数据初始化条件判断
# Y. J# X: P; q3 `* |5 c0 B - BEQ pause_cmp
9 F5 n& q% r9 U - LDA #$80# h2 t! v' r2 `1 b- s
- STA $A001 ;6000-7FFF写入启用# M0 S i3 i: b9 \
- LDA #$00
t, K- U6 a0 t# t4 K) r' V% H4 ~2 y - STA $6000 ;数据初始化+ M4 p' f0 P+ f& F8 B K
- STA $6001 ;数据初始化2 x8 j8 M- p8 B6 {% {3 w1 T
- LDA #$7F
% w6 d7 k9 J; ?( ] - STA $600F) E, ? I8 ] o7 }% Z% _2 k; Y
- pause_cmp:0 }- o& k2 M9 `) j" A
- LDA pause/ w/ K4 j- c' t' K( ^6 M8 h
- CMP #$01
4 S: h& M8 p$ w - BEQ button_press
/ g- A1 O/ P7 F) q - PLA i! O4 V+ C* ]) f4 K
- TAY8 M- ?% o! h0 W
- PLA) O/ d0 i. {7 ^
- TAX
9 h* w3 ~1 Z$ G4 Y' h ? - PLA/ T4 S' q1 g' H5 t$ ~# C
- RTS
2 \& o/ _! S% g" h. o
1 ~$ y0 r% V/ |# H: `2 ? f- button_press:8 D; Y1 r$ p7 Y+ G: K
- ini_Y:
/ h! l. f" y/ T5 G( m' u2 b9 p* a - LDY #$00( G" p" W/ R& j& R9 s! O
- button_cmp:
6 F5 Y' U' [" K/ ]- ~ - LDA button,X2 |* s. _% R$ U8 M
- CMP ora_data,Y8 b2 S9 A9 p, Q& k7 J
- BNE count_Y_cmp
" [2 E4 r& r! F: a' B - flag_cmp:
3 f% x- z2 Q0 S" L - LDA flag,X' N$ Z, B7 S0 M& K* I: |
- AND ora_data,Y0 t1 L4 k' J0 A$ K
- BNE flag_and
5 A5 Y& H2 {. i; H8 d4 p2 h1 [8 ~ - flag_ora:
! ~' X8 D7 O! F( d4 k% [ - LDA flag,X
: f# i- N( R. G1 x% W) ^/ m - ORA ora_data,Y2 V9 @0 C6 l3 d
- STA flag,X' I! c8 H7 T# Z T# ?) Y
- BNE count_Y_cmp3 D; |2 h$ }0 s1 s& G! R, R
- flag_and:8 C% g" L/ P. \
- LDA flag,X" `1 O$ R, _. o- O; O% V
- AND and_data,Y3 g4 E5 ]0 o1 \
- STA flag,X
& e+ A' H. z4 b z8 N - count_Y_cmp:
3 O# x8 ^/ K6 L# B - INY8 {- p y( _; d! \: i
- CPY #$08! a8 v# j6 L# u" v& L
- BCC button_cmp7 l) w, J- w9 X( o
-
3 D# R1 G2 K' f2 K; Y/ p - data_extract:
" Y8 ?4 R0 \0 E - PLA0 V3 r. w K2 }( J9 y/ j
- TAY7 e! F% ?$ c4 w/ u# n$ |9 Z
- PLA
5 \6 W, \; }6 \+ o6 N j - TAX
' y: p* V, s3 _2 q2 n L - PLA+ m. h' D& ?! p8 ^* T# q
- 1 c- W4 C; |3 c- e& i2 I# b
- return:
. j! o! Q8 ^2 q: Y - RTS7 O8 E# F8 i; m" |* R# J6 n8 b
- 2 Q/ O' v6 o, u* w* B# n+ E
-
, t: z' [" a/ w' A: z! s; g - INV: ;无敌
/ d: M$ y+ l* X4 X/ s - LDA $6000,X
, X i$ s' {% p8 ^- O - AND #$08
f9 Q" M- g* z* ]: s8 V+ }5 \ - BEQ INV_RTS% T0 i5 f9 D0 ~' e
- LDA #$05
$ ^6 m& p$ V" }; {4 T1 ~" N5 I - STA $04FF,X# f) y3 S. g" K' o, O3 t q1 \
- INV_RTS:% Y$ Q+ B6 f, v& {% X, H, b
- RTS
/ k% ~4 L* D) l% {8 g3 s4 c - / e/ f# x+ V. Y" m
- ; [: `' X5 P1 C5 A) }
- LIFE: ;生命3 l" r& {8 D/ u0 g' x: X
- LDA $6000,X
2 W1 a- Q3 k8 ^0 v/ p - AND #$046 D: e5 d& |0 C4 @/ ]+ P
- BEQ LIFE_RTS
+ H! N n0 D3 r F1 V - LDA #$09; N$ S! I# z) } V# k2 s
- STA $6A,X
* A+ d2 `+ V$ Y - LIFE_RTS:- `6 v% J, W0 u" y! Y( j
- RTS
: B) D9 s5 [7 }, q" n - 3 i5 o$ l |3 F) I
-
+ o, _" l4 C \& \0 O ]1 n - BLOOD: ;血量
( S1 T v y: B5 ^5 G - LDA $6000,X
& B# O8 J0 |* [2 D - AND #$01: W& ?$ |, Q: n8 X6 w& k3 R- R
- BEQ BLOOD_RTS
6 Q% E8 V( e; n- h5 b - LDA #$7F
( \( u$ _9 {. x$ e - STA $04F1,X
: m w' a$ Y# R* o - BLOOD_RTS:
& s0 q+ H; I0 w+ A7 S - RTS
# D! q# X# }5 d! ` R n( |- h - 3 v" e- Z4 c. p- C5 M1 L, v2 y
- / D: u# b5 A/ v- a8 O2 O
-
' Y" g( T2 B3 K: Y! J( W* E7 D' \ - " x) ~* \- k" x3 t6 n1 N
- .ORG $D29F0 l0 \5 D2 i" {6 U
- JSR $FF80
3 l2 R8 i* Z/ |: \* y% y - $ i) W) T. C" I6 B
- .ORG $FF804 |/ q/ q* C# w& u0 m& `
- KILLBOSS_BY_ONE ;BOSS一击必杀
1 t& s8 {# E( Q! ? - STA $0628
/ A4 |& h3 p8 D% N/ H - PHA
$ N( t9 ~/ C h2 D5 { X+ o& H - LDA $6000
3 ]9 J9 j+ s! `; y0 V - AND #$40
/ ^' G1 |. w7 A: D; ? - BEQ ADDRFF8E, L2 ]7 q: }& y: C( J% f, L0 i, R- D
- PLA
6 g2 \/ K3 F: n2 ^1 { - CLC ;敌方死亡状态判定
9 n: P, r: X) g+ P' } - RTS" B) p# u4 ^* t Z$ n& n4 ?
- ADDRFF8E:4 {: t8 o6 |! w* d7 ^& z0 q
- PLA
J( v% ]* g+ y$ v! g6 ? - RTS+ m' H' H {) I* A/ M9 N8 ~
1 s' S1 e, x+ b6 k% [- 8 D3 y6 o- Q, C
- .ORG $D151
6 m3 [7 B8 S4 |$ q7 |( T - JMP $FFA0+ I6 [, i) x' B7 k9 d }
- % O2 X. V- \3 X, C4 g6 V
- .ORG $FFA0
. L% R6 u- M& x$ |! Y( u% i - KILL_BY_ONE: ;杂兵一击必杀
% V% ~. I( Z( } - STA $0621,X
0 H4 d" S5 Z4 M" o1 u; R8 u# P - LDA $6000
( S. q8 Y4 p0 ?! N$ V - AND #$40$ G+ q: K# n. r: e ?
- BEQ ADDRFFAD9 Q( p' E3 Y, M( N1 D1 y$ C
- JMP $D19A ;敌方死亡程序跳转
" a- T8 ?, f6 |1 M - ADDRFFAD:
) O O! Z, j1 W2 i$ i, Q0 F - JMP $D154
" ^& N% A+ ]! X2 e& U6 E% V -
- y' R: @/ I- b' X -
5 h1 ]; _. C( S - .ORG $A7F6: A+ O1 f9 `: Q( h9 D
- JSR $FFB02 t1 \" b2 _( k2 u& c' G0 R* t- T
- - }+ r+ p# D/ w1 l( _( X
- .ORG $FFB0 ;全屏攻击
. T) j0 e; d+ C+ ?1 e - PHA- C1 @% t. [, [* d ^7 l a
- LDA $60009 F2 b9 c* [0 J- q
- AND #$80
3 d) v% d y' T/ \1 ^& c - BNE ADDRFFBD
7 i: [" ? }0 S% h* V' D S5 y. H - PLA
! j& L3 n% P$ p% B - LDA $0015
8 x! t6 x* b* C" }8 W& H - SEC
0 m: V7 m" Y: b1 J6 R - RTS7 C0 v O: r1 i$ P( _2 u4 c
- ADDRFFBD:) x! w D& m- n1 W, o4 j
- PLA
) ~6 L! G9 M& U) K/ J: F0 O. c - JMP $A8265 u3 [# U7 `9 `+ ~* |" v# n ~
- 2 k* r4 A' z9 y: p* O% D
- 8 R6 F6 S/ e9 A* j. i% x0 E. Y" A3 M
-
+ G+ h( `! q; z$ F - .ORG $AA6A2 X7 i/ e7 }( y
- JMP $FFD0
% G0 j& a; o# \% ?8 S -
; C5 Z8 t4 d4 [/ D1 N - .ORG $FFD0 ;敌兵动作忽略, M0 C: S. E3 R- e* s
- PHA
* J' Y- L" b% o' K - LDA $60008 s; r: D! P/ O r
- AND #$80
$ @* P9 o2 D8 D4 v - BEQ ADDRFFDC
$ N0 Z' f1 Q2 W' Y! ~ - PLA# W$ N$ ?2 T5 `$ M
- JMP $AA72
7 M+ h( y. G. R( ~6 b# I - ADDRFFDC:$ J1 j3 v: ]+ C* Z8 h
- PLA
6 ^! v2 t+ Z: c; D: f2 x - LDA $0629,X
8 h3 O& e# m0 n - JMP $AA6D
. z9 m2 T2 R5 M - * ]9 r \9 Z% ~7 d. k3 U
- ;[FC][忍者神龟3代标题选关程序]
' Q1 G) T; _% ?# G0 b$ K" l - ;作者:FlameCyclone 2017.4.1
6 |! m" `: \& B: S; T C
1 O( Q9 H; o- U5 H0 X- n- ' }2 o+ v9 X8 S& ]3 y4 h9 ^& j
- ;配置数据8 l9 b, R1 p( s: ^
- KEY_ADDR = $F8 ;按键地址' n( G2 L! K* P$ g+ m, J# u
- STAGE_TEMP = $6010 ;关卡临时地址
( m, e# h% w' f6 D - STAGE_MAX = $0E ;最大关卡数
& w( M3 q# U% \5 r - TITLE_A = $20 ;标题条件A
* K$ S0 v. N* C, c8 B& B, \% Z. `* \ - TITLE_A_ON = $02 ;标题条件A有效状态判定
! V+ Q+ R0 _: I- k/ l - TITLE_B = $21 ;标题条件B0 U( X+ P$ m6 j& V( g
- TITLE_B_ON = $03 ;标题条件B有效状态判定
, |, }5 u) H6 p# ?8 c# Z- V - PPU_END = $FF ;PPU结束符
& z! E- P6 t$ q" u, _ - TIME_LAY = $4A ;标题显示延时地址
: ?' V3 W& r. n/ J$ _8 ` - BUTTON_DEC = $42 ;关卡减少按键- L& @4 a1 c/ P! w
- BUTTON_INC = $81 ;关卡增加按键6 t( a9 ^, X& A$ F2 _) U- \& E# C
- NUMBER_A = $06 ;数字A距离STAGE偏移量0 J' c& Q4 K$ l+ L* h* h
- NUMBER_B = $08 ;数字B距离STAGE偏移量. o. u( F9 W7 d3 h5 U0 b2 G# V
- PPU_ADDR_H = $23 ;STAGE写入地址高位
: c7 C! s3 R- ?6 Q0 D2 O$ N - PPU_ADDR_L = $8C ;STAGE写入地址低位" V* q' _8 X; @( U* O; h! {8 h
- CHAR_S = $A2 ;字符'S'
+ T6 ^- n. ~# M9 ^# ^ - CHAR_T = $A3 ;字符'T') b" L) X9 h. z, D
- CHAR_A = $90 ;字符'A'
: N3 I) ]* j7 j/ N7 \7 ^ - CHAR_G = $96 ;字符'G'
0 C& \. J# H7 U! S8 ~: y: v* _ - CHAR_E = $94 ;字符'E'# ~3 X/ N$ X4 K& B8 l( [1 E! ^
- CHAR_SPA = $00 ;字符空格2 j& ~" x0 `+ N' p* [) Q
- CHAR_LIN = $AE ;字符'-'- \3 m: u, E8 v' y& C1 a& p+ t
- CHAR_O = $9E ;字符'o'- r" L( k" o; R4 N/ W, p
- NUM_1 = $81 ;数字'1'0 v; H, m E7 b# W
- NUM_2 = $82 ;数字'2'
0 t9 r/ w' Q0 w) m& o - NUM_3 = $83 ;数字'3'1 B# A' X: i% y7 u6 M) m- K/ s+ |
- NUM_4 = $84 ;数字'4'4 ]- a2 I* j" v- C
- NUM_5 = $85 ;数字'5', j7 I4 f. X6 m
- NUM_6 = $86 ;数字'6'2 }5 G0 r+ `( {& O
- NUM_7 = $87 ;数字'7'; ~& h& {( r- }: A
- NUM_8 = $88 ;数字'8'
% W: L# [% L+ u2 S! ] - NUM_9 = $89 ;数字'9'
' O0 q# k+ S8 }; a p( y y- r6 Y - NUM_0 = $80 ;数字'0'
+ ?3 | T/ Y a2 g - " r1 S4 I, J1 j' U4 U4 `& K& _
- .ORG $F82A
1 S6 D2 Z7 u& J5 v8 s- h# R1 j/ l0 w - JSR $E700' C0 {$ Y; }+ i
- 3 {- F4 n* d0 x/ i* X
-
- D7 K, G! Z0 ^# f8 W4 Z - .ORG $E700
; C0 |9 m W9 `% l! t - + o; Y+ ]/ s( M2 K# U3 a
- STY $4014 ;补上覆盖的精灵写入指令
) [: d; l7 u( F; i* T+ g - PROTECT_DATA: ;数据保护
2 V/ |9 K& y3 p6 h1 J4 c C - PHA ;数据保护开始9 E6 ]% |, g+ B
- TXA
& A0 r5 @6 i3 D$ }* V - PHA
d; X% a. k& T( S - TYA
: f4 D3 h9 [6 o% j* f - PHA ;数据保护结束3 n; W+ r% O- @
- LDA TITLE_A
+ C3 W! K# B8 u( p$ a+ W - CMP #TITLE_A_ON ;比较是否为标题画面8 ]; S9 _( U s% J" H
- BNE RET$ I* b8 b' Y0 k. W8 z+ {/ B" D
- LDA TITLE_B8 X2 [; V, W9 C* }
- CMP #TITLE_B_ON ;比较是否为标题画面
2 L6 W" M7 O: ], q6 u% o% q# c% H/ U6 w - BEQ PPU_STAGE
6 M7 Y9 Q9 k! g; @$ X - RET: ;恢复数据6 D& w* Q+ z; X1 `! b% M4 s+ J
- PLA ;恢复数据开始
4 M4 X' p# ]# t6 ~ - TAY+ r' g' L8 {9 K0 |+ @3 o
- PLA, d, x D) @4 N- R' {; S5 ^( @
- TAX
/ N# @7 q7 f' C$ q. n$ b7 E$ N8 e6 _7 F; t - PLA ;恢复数据结束3 @6 }( l( v/ h+ S$ E2 X
- RTS ;返回
; ?/ [$ U$ P5 z+ t/ m7 h3 N - PPU_STAGE: ;字符STAGE写入程序1 U$ O2 x: z2 q1 F7 s2 M, L
- LDA #PPU_ADDR_H
+ [) k# v O$ a- u( `+ j5 B - STA $2006 ;设置PPU字符写入高位地址. s& P2 \: l% F( ~3 k/ ^ {% c
- LDA #PPU_ADDR_L
) n" R! r+ r T6 N - STA $2006 ;设置PPU字符写入低位地址
# X4 W8 ?; D1 M, l: S/ E% U2 a - LDX #$00$ S! E1 L( d# R$ B& p
- PPU_STAGE_WROTE: ;写入STAGE字模
0 A. l2 T& A3 z/ [ - LDA STAGE_DATA,X
; g% N$ N ~; R- `: U - CMP #PPU_END ;判断是否写入结束
6 _2 e, }6 X* q- Q - BEQ STAGE_CMP/ L9 u. C+ t ]: j! `6 X# G
- STA $2007
6 ]: X# z4 R/ J. n/ ]$ q3 q. y3 _ - INX2 s1 U0 a& w* S0 e% i
- BCC PPU_STAGE_WROTE3 q6 \4 W& _5 S6 ]% f$ C
- STAGE_CMP: ;选关操作
2 J# @9 z! F* E1 I0 Q# u! X/ h( z$ k+ j - LDA STAGE_TEMP
4 P# i4 T; t8 h- C - CMP #$FF ;关卡数据初始化条件判断 v: N% i1 [. h6 F+ v7 X; l$ L* a
- BNE KEY_B
; |& ?) X! E v0 U) h& Q0 i - LDA #$00
& J9 X# y2 U5 v - STA STAGE_TEMP ;关卡数据初始化: ?5 d5 {% Q$ }5 g$ q* C
- KEY_B: ;关卡减少. s A& @2 R7 M" c- A3 f
- LDA KEY_ADDR4 j# ?# Y" ], ?+ r+ ~+ c0 V
- AND #BUTTON_DEC ;按键B或左减关' p& Z4 T8 o6 B' j% _
- BEQ KEY_A
2 e- I, D4 ~& F3 p - LDA #$FF
6 J- ?. y5 D9 k9 z \ - STA TIME_LAY ;重设标题延时8 u s2 a" G2 l: O0 d
- LDA STAGE_TEMP) W! |% A5 z5 A& l" B8 o
- CMP #$00 ;关卡比较/ j# b& Y6 V; T/ c0 u3 h+ m& F
- BEQ KEY_A
7 \5 _* |: \2 ?, \( w" i - DEC STAGE_TEMP ;减关
$ H: d2 R1 u0 y$ ~ - JSR MUSIC ;按键音效
s7 Z% |$ p1 F - KEY_A: ;关卡增加, Y' f6 J! z) R$ Q- E I1 y" ^9 \
- LDA KEY_ADDR
+ H; D3 G6 k6 u5 G! q+ {3 ? - AND #BUTTON_INC ;按键A或右加关
8 g5 A# E. `: G' y( z - BEQ PPU_NUM_WRITE
3 L9 V1 A( U, o. N, l+ X- E1 f - LDA #$FF7 C' j3 B' d1 E% g
- STA TIME_LAY ;重设标题延时
1 {4 ]! b3 V- a - LDA STAGE_TEMP8 i3 h; ^8 | c0 f: f! f
- CMP #STAGE_MAX ;关卡比较
* K$ w1 e( e; z+ Z& F1 L. B5 z$ ] - BEQ PPU_NUM_WRITE. g d. D- F, g. H8 p$ I8 h
- INC STAGE_TEMP ;加关" j8 {$ s4 C) @) l
- JSR MUSIC ;按键音效" n) u" K, w* o' B7 P
- PPU_NUM_WRITE: ;关卡数字写入地址
; A2 ?2 J* K" i1 Q& y! s - LDA #PPU_ADDR_H5 ?& y* }, |3 T1 ^
- STA $2006 ;设置PPU数字写入高位地址& S$ G. b. Z' C* g
- LDA #PPU_ADDR_L
) R& {% N' |. j, }0 A5 c( \ - CLC
0 p6 r: l" }* m/ O/ H8 i/ k$ j6 z - ADC #NUMBER_A2 w6 e5 {. \8 m K9 K9 B w9 m1 y
- STA $2006 ;设置PPU字符写入低位地址! l w# v1 e0 W) k3 Z
- LDA STAGE_TEMP& ^: [- F% T, P$ l! [
- TAX. D" C7 U& F- R. g. B
- LDA STAGE_D1,X ;写入数字
( I) }' f$ c5 i: h - STA $2007
9 ]6 U9 X5 o# ?# o1 h; ^8 f - LDA #PPU_ADDR_H! j+ Y# z" W. f/ |
- STA $2006 ;设置PPU数字写入高位地址, }/ q B# \5 E4 a# f; j9 u
- LDA #PPU_ADDR_L8 @2 d' [- R5 N+ L
- CLC
6 F7 u9 u$ |+ [/ `0 F5 p0 @8 \. c - ADC #NUMBER_B! n, ]" C2 x9 i& u
- STA $2006 ;设置PPU字符写入低位地址3 O! z: B6 o. d2 q |
- LDA STAGE_TEMP' l H4 S& ^' j( U3 ~
- TAX
7 B. @4 P6 |/ y/ B) ]% n - LDA STAGE_D2,X ;写入数字
$ d; e$ N3 e7 H - STA $2007$ l2 A4 l" z0 O# f2 o# Q O
- STAHE_WRITE:
5 x. z5 J; `( k- l - LDA STAGE_TEMP
) {9 Y* A1 o! I6 I- z - STA $2D ;初始关卡写入& E! @+ o! h7 O- ^) C
- PPU_RTS: ;恢复数据5 I; I; e4 C, K$ H
- PLA0 ]9 {: R+ N: O& L# L
- TAY
% K0 J- ?' y( z1 z9 A - PLA+ G6 m9 {) ]/ v3 y
- TAX
! ^2 x: @9 o' E4 H9 t - PLA8 Y4 }( B4 u9 p' a% F6 S
- RTS; A3 C9 |; \# b/ g( i% J
-
0 ~9 c+ g" c7 b3 Z - STAGE_DATA: ;关卡文字S,T,A,G,E,X,-,X字模数据( @5 e e# m6 _& O( u0 T. ?
- .BYTE CHAR_S,CHAR_T,CHAR_A,CHAR_G,CHAR_E,CHAR_SPA,CHAR_SPA,CHAR_LIN,CHAR_SPA,CHAR_SPA,PPU_END
' e; P3 i1 C/ D9 A* [ - 3 N' B: ^1 Q5 [5 q R D9 E. O
- STAGE_D1: ;关卡数字
3 {4 L8 L, f0 `8 w - .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# N+ M' e3 P+ q& I' ?! I+ a
- ' Y! G, r. _6 G7 q
- STAGE_D2: ;场景数字
C/ O1 W4 D. L& j - .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
) a% s2 d" r" P -
+ d# W3 w: [1 u# G! D - ( W, L4 K* i$ M( o' d5 d
- MUSIC: ;按键音效
' }( r/ w+ B; V* S) x. h' ^ - LDA #$3B ;音乐号3 o" a: [5 B" P
- JSR $919E ;系统音乐调用& }! s8 ~9 }+ B6 I/ W% B$ P) m. a
- RTS
复制代码 4.无敌锁定: 暂停后,按上键切换;# T2 f" Z t! V- r
5.生命加满: 暂停后,按下键切换;" [, r% f7 Z s8 z2 Q; P7 o5 C
6.血量锁满: 暂停后,按右键切换;$ n3 U' y8 N" x5 N2 T+ E. Z7 f4 ]
/ N F+ |) e1 B8 [( b
' P7 [8 X! a1 Z8 X& h& ~
+ V& L. n) R$ B" |6 e) M
$ O% r S) b% l/ w7 p9 Y) w- c- o; ^+ t. g/ J
FlameCyclone.ys168.com
9 ^* y. x& ]$ @; _& {( t. M8 Zwww.nesbbs.com4 m4 R5 U1 X1 _! P1 x
9 j/ U$ r( P" Z7 h a& M+ f
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
1
查看全部评分
-
|